Java Edition 26.1 Snapshot 1
Jump to navigation
Jump to search
Minecraft 26.1 Snapshot 1
| Edition | ||||||
|---|---|---|---|---|---|---|
| Release date |
December 16, 2025 | |||||
| Type | ||||||
| Snapshot for | ||||||
| Downloads | ||||||
| Protocol version |
dec: 1073742111 | |||||
| Data version |
4764 | |||||
| Resource pack format |
76.0 | |||||
| Data pack format |
95.0 | |||||
| Minimum Java version | ||||||
| ||||||
{
"title": "Minecraft 26.1 Snapshot 1",
"images": [
"26.1-snapshot-1.jpg",
"Java Edition 26.1 Snapshot 1.png"
],
"rows": [
{
"field": "''(link to Java Edition article, displayed as Java Edition)''",
"label": "(link to Edition article, displayed as Edition)"
},
{
"field": "December 16, 2025",
"label": "Release date"
},
{
"field": "(link to Snapshot article, displayed as Snapshot)",
"label": "(link to Version types article, displayed as Type)"
},
{
"field": "(link to Java Edition 26.1 article, displayed as 26.1)",
"label": "Snapshot for"
},
{
"field": "[https://piston-data.mojang.com/v1/objects/bd354bbd46835d7c7753e0b19c718777fb2386ba/client.jar Client] ([https://piston-meta.mojang.com/v1/packages/b9345ee364d36ef1c7ec26df6bf99d3e4a4393f5/26.1-snapshot-1.json .json])<br />[https://piston-data.mojang.com/v1/objects/99786473e61ff6fcf0df4db9e0d6c9012c196116/server.jar Server]",
"label": "(link to Tutorial:Installing a version#Manual version installation article, displayed as Downloads)"
},
{
"field": " <span style=\"font-size:smaller\"><abbr title=\"decimal\">dec</abbr>: </span>1073742111<br /> <span style=\"font-size:smaller\"><abbr title=\"hexadecimal\">hex</abbr>: </span>4000011F",
"label": "(link to Protocol version article, displayed as Protocol version)"
},
{
"field": "4764",
"label": "(link to Data version article, displayed as Data version)"
},
{
"field": "76.0",
"label": "<span style=\"white-space: normal;\">(link to Pack format#List of pack formats article, displayed as Resource pack format)</span>"
},
{
"field": "95.0",
"label": "<span style=\"white-space: normal;\">(link to Pack format#List of pack formats article, displayed as Data pack format)</span>"
},
{
"field": "<span class=\"plainlinks\">[https://en.wikipedia.org/wiki/Java_version_history#Java_SE_25_.28LTS.29 Java SE 25]</span>",
"label": "<span style=\"white-space: normal;\">Minimum Java version</span>"
}
],
"invimages": [],
"footer": "<table style=\"margin: auto; word-break: break-word;\">\n<tr style=\"background: inherit;\">\n<td style=\"padding: 0.4em\" rowspan=\"2\">[[Java Edition 1.21.11|<span style=\"margin-right:-0.35em\">◄</span>◄ 1.21.11]]</td>\n<td style=\"padding: 0.4em\">'''[[Java Edition 26.1|26.1]]'''</td>\n<td style=\"padding: 0.4em\" ></td>\n</tr>\n<tr style=\"background: inherit;\">\n\n<td style=\"padding: 0.4em\">''' 26.1 Snapshot 1'''</td>\n<td style=\"padding: 0.4em\">\n[[Java Edition 26.1 Snapshot 2| 26.1 Snapshot 2 ►]]\n</td>\n</tr>\n</table>"
}
26.1 Snapshot 1 (known as 26.1-snapshot-1 in the launcher) is the first snapshot for Java Edition 26.1, released on December 16, 2025.[1] It adds data pack-controlled trading, improves the game's lighting and the look of the Night Vision effect, and makes other technical changes (i.e. related to data packs).
This is the first snapshot to use the new version format announced earlier that month,[2] the first snapshot to require Java 25, the first snapshot to be released with only an unobfuscated build, and the final snapshot released in 2025.
Additions
[edit | edit source]Command format
[edit | edit source]- New command that enables swinging of entities' arms.
- Not all entities support swing animation.
/swingwill succeed for those entities, but clients will only display it when possible.- For example, this makes it possible to swing mannequin arms.
- Returns the amount of entities for which a swing was sent.
- Syntax:
/swing <entity selector> <mainhand|offhand>
- Syntax:
General
[edit | edit source]- Added
minecraft:additional_trade_cost- Transient component used to modify the amount of items wanted in a villager trade.
- Removed after a trade has been generated.
- Format: integer
- Transient component used to modify the amount of items wanted in a villager trade.
- Trades offered by villagers and wandering traders are now data-driven and can be customized by datapack developers.
- Villager Trades
- Present in the
villager_tradefolder, represents a blueprint for trades which is used by villagers and wandering traders to generate actual trades. - Entry Format:
wants, an object representing an item type and number of them needed to trade.id, the id of the itemcount, an optional number provider representing how many of the item is needed for the trade.- Defaults to a constant
1
- Defaults to a constant
components, an optional component map representing the expected data components on the item.- Defaults to an empty map.
additional_wants, an optional object representing an additional item required by the merchant, has the same format as wants.gives, an item Stack representing the resulting item given by the merchant when trading.- Uses the existing format for item stacks.
given_item_modifiers, a optional list of item Modifiers representing modifiers to apply to the item in gives such as enchantments or potions, used to add dynamism to the trade rather than hardcoding certain values.- Uses the existing format for item modifiers (also known as loot modifiers, item functions, loot functions...).
- If any of these returns an empty item the entire trade will be discarded.
- Item Modifier references are not supported.
- If the final item has a
stored_enchantmentcomponent containing an enchantment in the#double_trade_pricetag, then the count ofwantsis doubled.
max_uses, an optional number provider representing the maximum number of times a trade may be used.- Is set to
1if the number provider returns a lower value. - Defaults to
4
- Is set to
reputation_discount, an number provider representing how much factors such as demand, discounts or penalties affects the cost represented by wants.- Is set to
0.0if the number provider returns a lower value. - Defaults to
0.0
- Is set to
xp, an optional number provider representing the amount of xp a merchant gets when the trade is done.- Is set to
0if the number provider returns a lower value. - Defaults to
1
- Is set to
merchant_predicate, a predicate representing conditions on the merchant that need to be met for the trade to be offered.- Uses the existing format for predicates.
- Predicate references are not supported.
double_trade_price_enchantments, an optional enchantment id, list of namespaced enchantment IDs, or hash-prefixed enchantment tag representing enchantments that will double the additional cost fromminecraft:enchant_randomlyandminecraft:enchant_with_levelsif they haveinclude_additional_cost_componentset totrueand if the item has one of the provided values in itsminecraft:stored_enchantmentscomponent.
- Present in the
- An example trade of an emerald and a book for an enchanted book offered only by desert villagers.
- Villager Trades
{
"additional_wants": {
"id": "minecraft:book"
},
"double_trade_price_enchantments": "#minecraft:double_trade_price",
"given_item_modifiers": [
{
"function": "minecraft:enchant_randomly",
"include_additional_cost_component": true,
"only_compatible": false,
"options": "#minecraft:trades/desert_common"
},
{
"function": "minecraft:filtered",
"item_filter": {
"items": "minecraft:enchanted_book",
"predicates": {
"minecraft:stored_enchantments": [
{}
]
}
},
"on_fail": {
"function": "minecraft:discard"
}
}
],
"gives": {
"count": 1,
"id": "minecraft:enchanted_book"
},
"max_uses": 12.0,
"merchant_predicate": {
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"predicates": {
"minecraft:villager/variant": "minecraft:desert"
}
}
},
"reputation_discount": 0.2,
"wants": {
"id": "minecraft:emerald"
}
}
minecraft:visual/block_light_tint- Tint of the block light. Block light color start as dark grey at low light levels, becomes tinted by this attribute at medium levels and turns white at high levels. By default, it provides the yellowish tint of torches. Bright colors work best for this attribute, with at least one color component being fully bright. The tint applies globally to all light sources visible on the screen. Individual lights can not be tinted differently.
- Value type: RGB color
- Default value:
#FFD88C - Modifiers: RGB Color Modifiers
- Interpolated: yes
- Resolved at the camera's position
minecraft:visual/ambient_light_color- Defines both the ambient light tint and brightness. This light is applied to the world at 0 light level. Block and sky light are added on top of it.
- Value type: RGB color
- Default value:
#000000. - Modifiers: RGB Color Modifiers
- Interpolated: yes
- Resolved at the camera's position.
- Set to
#0A0A0A in the Overworld,
#302821 in the Nether, and
#3f473f in the End.
minecraft:visual/night_vision_color- This color is used similarly to ambient light color. When the Night Vision effect is active, per-component maximum of
minecraft:visual/night_vision_colorandminecraft:visual/ambient_light_coloris used as ambient color. Night Vision is not tinted by default. - Value type: RGB color
- Default value:
#999999 - Modifiers: RGB Color Modifiers
- Interpolated: yes
- Resolved at the camera's position
- This color is used similarly to ambient light color. When the Night Vision effect is active, per-component maximum of
Lightmap debug renderer
- A new debug renderer for the lightmap was added, which can be enabled using the F3 + 4 keybind.
- It is mutually exclusive with FPS/TPS and networking charts.
- It shows the lightmap texture in real-time in the bottom right corner of the screen.
- The vertical axis of the texture represent sky light levels (0-15 from bottom to top).
- The horizontal axis of the texture represent block light levels (0-15 from left to right).
- The color of each pixel represents the resulting color that will be applied to blocks and entities lit with the corresponding block and sky light levels.
- Added
minecraft:villager_tradewhich takes the following parameters:this, the entity offering the trade.origin, the block position of the entity at its feet.
- Added
minecraft:set_random_dyes- Additively adds dyes to an item's
minecraft:dyed_colordata component if the item is in the#dyeabletag Fields: conditions- conditions for the function to apply.number_of_dyes- number provider representing the number of random dyes out of sixteen to apply to the item.- The same dye might be selected repeatedly.
- Additively adds dyes to an item's
- Added
minecraft:set_random_potion- Randomly sets the minecraft:potion_contents data component on an item Fields:
conditions- conditions for the function to apply.options- optional potion id, list of namespaced potion IDs, or hash-prefixed potion tag, representing the possible potions to select from.- Defaults to any potion in the potions registry.
- Added
minecraft:sum- Returns the sum of a list of number providers.
- Fields:
summands, a list of number providers.
- Added several tags representing groups of villager trades from which villagers and wandering traders derive their trading pools.
- Villagers have the following tags representing each profession and level of trade in the format:
#<profession>/level_<level>, up to level 5.- Smiths have the
#common_smith/level_<level>tags representing common trades among armorers, weaponsmiths and toolsmiths, up to level 5.
- Smiths have the
- Wandering Traders have the following tags:
#wandering_trader/buying,#wandering_trader/special,#wandering_trader/common.
- Villagers have the following tags representing each profession and level of trade in the format:
- Potion tags
- Added
#tradeable- Contains all potion effects that can appear in villager trades.
- Added
- What trades are unlocked by villager professions are now determined using deterministic random sequences, like loot drops and barter loot.
- Present in the
trade_setfolder, they are groupings of trades offered by villagers and wandering traders. - Currently only hardcoded ones are available in
<profession>/level_<level>for villagers, as well aswandering_trader/buying,wandering_trader/special,wandering_trader/commonfor wandering traders. - Entry Format:
trades, a villager trade id, list of namespaced villager trade IDs, or hash-prefixed villager trade tag representing the trades that are part of this trade set.amount, a number provider representing the amount of trades to be generated from this set when used.- If the generated number is greater than the number of available
tradesthen it will only generate until alltradeshave been used once, unlessallow_duplicatesis set totrue
- If the generated number is greater than the number of available
allow_duplicates, a boolean representing if the trade set can use the same villager trade multiple times to generate trades.- Defaults to
false
- Defaults to
random_sequence, an optional named random sequence that determines which trades are generated.- Defaults to a non-deterministic random sequence.
- An example trade set offering 2 trades from the
#minecraft:armorer/level_1tag, allowing duplicates.
{
"amount": 2.0,
"trades": "#minecraft:armorer/level_1",
"random_sequence": "minecraft:trade_set/armorer/level_1",
"allow_duplicates": true
}
Changes
[edit | edit source]General
[edit | edit source]- The pack format version is now
95.0.
- The
looking_at_blockandlooking_at_fluiddebug entries no longer show tags. - New debug entries have been added:
looking_at_block_tagslooking_at_fluid_tagslooking_at_entity_tags
- Renamed debug entries:
looking_at_block->looking_at_block_statelooking_at_fluid->looking_at_fluid_state
- The
post_piercing_attackcomponent no longer only works for a player if that player has a certain food level.
Lightmap algorithm
- The algorithm that maps block and sky light levels to how bright things appear on screen has been fully rewritten.
- A new algorithm that is supposed to mostly provide the same overall results as previous one, but:
- It is simpler and more straightforward, and fixes multiple issues of the previous one.
- The darkness effect and world darkening effect of the Wither fight now works the same way in all dimensions.
- The night vision effect now simply adds ambient light instead of scaling the resulting colors.
- It means that fully dark areas no longer look brighter than areas lit by block or sky light.
- Other aspects of the algorithm such as block light tint, ambient light color and night vision color are now data-driven through environment attributes.
Lightmap shader
- The
lightmap.fshshader was significantly modified.- The
LightmapInfouniform now has two new fields:BlockLightTintNightVisionColor
- The
AmbientLightFactorfield was removed, its value is now premultiplied intoAmbientColor - The
DarkenWorldFactorwas renamed toBossOverlayWorldDarkeningFactor
- The
- Text and items rendered in UI now use a separate 1x1 white lightmap texture, so the lightmap shader does not always have to keep the 15, 15 pixel purely white.
- Changed
minecraft:enchant_with_levels- Now also takes the following field:
include_additional_cost_component- optional boolean representing if aminecraft:additional_trade_costcomponent should be added to the item based on the cost of the enchantment.- Defaults to
false - The value is determined by the levels number provider and is the same that is used to determine what enchantment level is used for enchanting.
- Defaults to
- Now also takes the following field:
- Changed
minecraft:enchant_randomly- Now also takes the following field:
include_additional_cost_component- optional boolean representing if aminecraft:additional_trade_costcomponent should be added to the item based on the cost of the enchantment.- Defaults to
false - The value is determined by the value selected by levels or its default value using the following formula:
- Defaults to
- Now also takes the following field:
- Entity Predicates
playerSub-Predicate- New optional field:
food - A Food predicate
- Format: Object with fields:
level- optional integer min/max range specifying the required food level.saturation- optional float min/max range specifying the required saturation level.
- New optional field:
- The version is now
76.0.
- Changed "Java 16 + 1 + 4 = 21!" to "Java 16 + 1 + 4 * 2 = 25!".
- Enchantment Tags
- Removed the following tags:
trades/desert_specialtrades/jungle_specialtrades/plains_specialtrades/savanna_specialtrades/snow_specialtrades/swamp_specialtrades/taiga_special
- Removed the following tags:
General
- If a server's disk space is low, a toast will now be shown to server operators.
- The game now requires Java 25.
- The included Java distribution is now the Microsoft build of OpenJDK 25.
- Piglin inventory slots can now be accessed using
piglin.*similar to how villager inventories can be accessed usingvillager.*.
Fixes
[edit | edit source]From released versions before 26.1
- MC-64087 – Revengeful zombies / Zombie reinforcements will try to attack you in Creative mode.
- MC-179949 – You cannot edit the inventories of piglins by using
/item replace. - MC-197497 – Smooth lighting transition from level 1 to 0 is not smooth.
- MC-199589 – Hitting mobs in Creative mode then switching into Survival causes the mob to target you.
- MC-219981 – Leader zombie-type mobs spawn with 20 health despite having an increased maximum health.
- MC-300465 – Maps with the maximum number of markers cannot be placed in item frames.
- MC-302186 – Ambient lighting in the Nether appears discolored compared to previous versions.
- MC-302408 – Inconsistent underwater lighting with the Conduit Power effect applied.
- MC-302528 – Low sky & block light look outright broken when cast on the same area.
- MC-303119 – Feeding a cat or wolf in Survival mode with only one item in the selected item slot does not restore as much health as it should.
- MC-303125 – Creepers can blow up after the player dies.
- MC-303389 – The ender dragon's velocity can be affected by attacks while perched.
- MC-303692 – Debug overlay text has an indent when improved transparency is disabled.
- MC-304023 – Redundant level data fixer files are saved in worlds' "data" folder.
- MC-304217 – Lunge's hunger requirement applies to
post_piercing_attackeffects of custom enchantments. - MC-304599 – Dolphins don't follow players riding nautiluses like in Bedrock Edition.
- MC-304631 – Anisotropic filtering set to 8x causes opaque translucent textures to become transparent in the distance when there are odd-sized block textures.
- MC-304725 – Zombie villagers summoned with default spawn eggs always spawn as their plains variant.
- MC-304991 – Clicking on a chest with loot that hasn't been generated in Spectator mode makes the "
block.chest.locked" sound. - MC-305012 – The description of the "Universal anger" game rule still uses the old ID of the "Forgive dead players" game rule.
Videos
[edit | edit source]Videos made by slicedlime:
References
[edit | edit source]- ↑ "Minecraft 26.1 Snapshot 1" – Minecraft.net, December 16, 2025.
- ↑ "Minecraft’s new version numbering system" – Minecraft.net, December 2, 2025.