Java Edition 1.21.5/Development versions

Jump to navigation Jump to search

This is a list of Java Edition 1.21.5 development versions.

25w02a

25w02a is the first snapshot for Java Edition 1.21.5 released on January 8, 2025,[1] which adds leaf litter, wildflowers, new pig variants and fixes bugs. This is the first snapshot released in 2025.

Additions

Blocks

Leaf litter

  • A new type of decorative block which can be found in forests, dark forests and wooded badlands.
  • Can have different amounts of leaves in one block space.
    • Up to four leaf litter pieces can be placed in the same block space like pink petals.
    • Placing a leaf litter into an already placed leaf litter block increases the amount of leaves.
  • Can be placed in four orientations.
  • Can be created by smelting any type of Leaves block.
  • Can be used as fuel for smelting.
  • Has unique block sounds.
Ingredients [hide]Smelting recipe
Any leaves block
Invicon Oak Leaves.png: Inventory sprite for Oak Leaves in Minecraft as shown in-game linking to Oak Leaves with description: Oak LeavesInvicon Spruce Leaves.png: Inventory sprite for Spruce Leaves in Minecraft as shown in-game linking to Spruce Leaves with description: Spruce LeavesInvicon Birch Leaves.png: Inventory sprite for Birch Leaves in Minecraft as shown in-game linking to Birch Leaves with description: Birch LeavesInvicon Acacia Leaves.png: Inventory sprite for Acacia Leaves in Minecraft as shown in-game linking to Acacia Leaves with description: Acacia LeavesInvicon Jungle Leaves.png: Inventory sprite for Jungle Leaves in Minecraft as shown in-game linking to Jungle Leaves with description: Jungle LeavesInvicon Dark Oak Leaves.png: Inventory sprite for Dark Oak Leaves in Minecraft as shown in-game linking to Dark Oak Leaves with description: Dark Oak LeavesInvicon Mangrove Leaves.png: Inventory sprite for Mangrove Leaves in Minecraft as shown in-game linking to Mangrove Leaves with description: Mangrove LeavesInvicon Cherry Leaves.png: Inventory sprite for Cherry Leaves in Minecraft as shown in-game linking to Cherry Leaves with description: Cherry LeavesInvicon Pale Oak Leaves.png: Inventory sprite for Pale Oak Leaves in Minecraft as shown in-game linking to Pale Oak Leaves with description: Pale Oak LeavesInvicon Azalea Leaves.png: Inventory sprite for Azalea Leaves in Minecraft as shown in-game linking to Azalea Leaves with description: Azalea LeavesInvicon Flowering Azalea Leaves.png: Inventory sprite for Flowering Azalea Leaves in Minecraft as shown in-game linking to Flowering Azalea Leaves with description: Flowering Azalea Leaves
Invicon Coal.png: Inventory sprite for Coal in Minecraft as shown in-game linking to Coal with description: CoalInvicon Charcoal.png: Inventory sprite for Charcoal in Minecraft as shown in-game linking to Charcoal with description: CharcoalInvicon Oak Log.png: Inventory sprite for Oak Log in Minecraft as shown in-game linking to Oak Log with description: LogInvicon Oak Planks.png: Inventory sprite for Oak Planks in Minecraft as shown in-game linking to Oak Planks with description: Overworld PlanksInvicon Lava Bucket.png: Inventory sprite for Lava Bucket in Minecraft as shown in-game linking to Lava Bucket with description: Lava BucketInvicon Block of Coal.png: Inventory sprite for Block of Coal in Minecraft as shown in-game linking to Block of Coal with description: Block of Coal

Invicon Leaf Litter.png: Inventory sprite for Leaf Litter in Minecraft as shown in-game linking to Leaf Litter with description: Leaf Litter

Wildflowers

  • A new type of flower which grow in birch forests, old growth birch forests and meadows.
  • Can have different amounts of flowers in one block space.
    • Up to four wildflowers can be placed in the same block space like pink petals.
    • Placing a wildflower into an already placed wildflowers block increases the amount of flowers.
    • Using bone meal on wildflowers will produce more Wildflowers.
  • Can be placed in four orientations.
  • Can be crafted into yellow dye.
Ingredients [hide]Crafting recipe
Wildflowers
Invicon Wildflowers.png: Inventory sprite for Wildflowers in Minecraft as shown in-game linking to Wildflowers with description: Wildflowers
Invicon Yellow Dye.png: Inventory sprite for Yellow Dye in Minecraft as shown in-game linking to Yellow Dye with description: Yellow Dye

Mobs

Pig

General

Data components minecraft:weapon

  • When present, the 'Item Used' statistic will be incremented for each attack with the item.
  • The specified amount of damage can be done to the item with each attack.
  • Format: object with fields:
    • damage_per_attack - non-negative integer (default: 1)
      • The amount to damage the weapon for each attack performed.
    • can_disable_blocking - boolean (default: false)
      • If true, will disable a blocking Shield on successful attack.
  • e.g. weapon={damage_per_attack:2}

minecraft:potion_duration_scale

  • When present, for items that have the potion_contents component, the duration of the applied effects will be scaled by this factor.
  • This also applies to custom_effects in the potion_contents component, unlike the previous hard-coded scaling factor.
  • If not specified, defaults to 1.0.
  • Format: non-negative float
  • e.g. potion_duration_scale=0.25

Tags

  • Block Tags
    • Added #replaceable_by_mushrooms - exhaustive list of all blocks that can be replaced as a mushroom is placed or grows.
    • Added #sword_instantly_mines - blocks that are instantly mined by Swords.
  • Item Tags
    • Added #book_cloning_target - item that can be crafted together with a Written Book to clone it.
  • Biome Tags
    • Added #spawns_cold_variant_farm_animals - all biomes where cold variant of farm animals spawn.
    • Added #spawns_warm_variant_farm_animals - all biomes where warm variants of farm animals spawn.

Changes

Blocks

Bubble column

  • Bubble columns produce less particles and sounds when entities that are unaffected by them are inside them.

Creaking heart

  • Creaking hearts correctly placed between logs have a new dormant texture during the day.
  • The transition between the awake and dormant states of creaking hearts is now based on the fixed day time.

Eyeblossom

  • The transition between the states of eyeblossoms is now based on the fixed day time.

Iron bars, iron block, iron trapdoor, iron door and heavy weighted pressure plate

  • Added new break, place, step, fall and hit sounds.

Leaves

Lodestone

Ingredients [hide]Crafting recipe
Chiseled Stone Bricks +
Iron Ingot
Invicon Chiseled Stone Bricks.png: Inventory sprite for Chiseled Stone Bricks in Minecraft as shown in-game linking to Chiseled Stone Bricks with description: Chiseled Stone BricksInvicon Chiseled Stone Bricks.png: Inventory sprite for Chiseled Stone Bricks in Minecraft as shown in-game linking to Chiseled Stone Bricks with description: Chiseled Stone BricksInvicon Chiseled Stone Bricks.png: Inventory sprite for Chiseled Stone Bricks in Minecraft as shown in-game linking to Chiseled Stone Bricks with description: Chiseled Stone BricksInvicon Chiseled Stone Bricks.png: Inventory sprite for Chiseled Stone Bricks in Minecraft as shown in-game linking to Chiseled Stone Bricks with description: Chiseled Stone BricksInvicon Iron Ingot.png: Inventory sprite for Iron Ingot in Minecraft as shown in-game linking to Iron Ingot with description: Iron IngotInvicon Chiseled Stone Bricks.png: Inventory sprite for Chiseled Stone Bricks in Minecraft as shown in-game linking to Chiseled Stone Bricks with description: Chiseled Stone BricksInvicon Chiseled Stone Bricks.png: Inventory sprite for Chiseled Stone Bricks in Minecraft as shown in-game linking to Chiseled Stone Bricks with description: Chiseled Stone BricksInvicon Chiseled Stone Bricks.png: Inventory sprite for Chiseled Stone Bricks in Minecraft as shown in-game linking to Chiseled Stone Bricks with description: Chiseled Stone BricksInvicon Chiseled Stone Bricks.png: Inventory sprite for Chiseled Stone Bricks in Minecraft as shown in-game linking to Chiseled Stone Bricks with description: Chiseled Stone Bricks
Invicon Lodestone.png: Inventory sprite for Lodestone in Minecraft as shown in-game linking to Lodestone with description: Lodestone

Pale oak leaves and pale oak sapling

  • Now have an updated map color.

Items

Elytra

Mobs

General

Bees

  • Are now attracted to, and can be bred using wildflowers.

Creaking

  • Can now be named using name tags.
    • Named creakings will persist through the day.
      • However, it will still be torn down if stuck with a player or if it is too far from its heart.
    • Named creakings are still resistant to all damage, and can communicate with their hearts via particles.

Zombified piglin

  • Must now be killed by a player to drop its Player-specific loot.

World generation

Pale garden

Short grass

  • Now generates slightly sparser in meadows.

Gameplay

Narrator

  • The volume of the narrator is now affected by the game's configured volume in the 'Voice' category.

Player movement

  • Moving diagonally by holding down two movement keys no longer increases the player's speed.[3]

Command format

  • Text components in commands such as /tellraw or /title are now specified with SNBT instead of JSON.
  • Text style in the /scoreboard command when specifying the styled number format is now specified with SNBT instead of JSON.
  • The behavior of /setblock and /fill commands have changed in how they handle block entity data:
    • If the block entity data is not specified, and the existing block has data, the block entity data will be preserved.
    • If the block entity data is specified, the block entity data will be set to the specified value.
    • To clear the block entity data explicitly, the block entity data must be specified as {}.
    • The operation is now successful if either the block state changed or the block entity data changed.

/fill

  • The replace option in the fill command is no longer terminal, and can be followed with additional options.

/fill, /clone, /setblock and /place template

  • Accepts a new option: strict.
    • If specified, the command will place blocks as-is without triggering block updates and shape updates.
  • New syntax for commands to use the new strict option, and more flexible use of replace:
    • fill <from> <to> <block> keep
    • fill <from> <to> <block> [replace <filter>] [strict|destroy|hollow|outline]
    • clone [from <sourceDimension>] <begin> <end> [to <targetDimension>] <destination> [strict] [[replace|masked|filtered <filter>] [force|move|normal]]
    • setblock <pos> <block> [destroy|keep|replace|strict]
    • place template <template> [<pos> [<rotation> [<mirror> [<integrity> [<seed> [strict]]]]]]

General

General

  • If the game detects that the last startup did not complete normally, the fullscreen option will now be reset.
  • Chunks loaded by a portal will now be re-loaded again automatically when the world is reopened.

Data components minecraft:tool

  • Added new optional field: can_destroy_blocks_in_creative (bool)
    • If false, players cannot break blocks while holding this tool in Creative Mode.
    • If not specified, defaults to true.

Data pack

Entity format

  • The ArmorDropChances, HandDropChances, and body_armor_drop_chance fields have been merged into a drop_chances field
    • Format: map between equipment slot type and chance value
      • Valid equipment slots: head, chest, legs, feet, mainhand, offhand, body.
    • If not specified or removed, chances will be assumed as default (0.085f).
    • e.g. drop_chances:{chest:0.1,feet:1.0}
  • Drop chances with a default value will no longer be stored, and the drop_chances field is removed entirely if all defaults.
  • Area effect clouds have a new field: potion_duration_scale (float).
    • If not specified, defaults to 1.0.
    • The duration of the potion effect applied is scaled by this factor.
    • Area effect clouds created by lingering potions will have a scale of 0.25.

Realms

  • Uploading a world to Realms will now enable command blocks by default.
  • It's now possible to upload hardcore singleplayer worlds to Realms.

Recipes

  • crafting_transmute
    • The result field now supports specifying a count and a components patch to apply to the result.
    • The components patch is applied to the final transmuted item.
    • The new format is an object with fields:
      • id - item id
      • count - positive integer (default: 1)
      • components - a component patch object (default: empty)
      • e.g. "result": {"id": "minecraft:stick", "count": 3, "components": {"!minecraft:damage": {}, "minecraft:enchantment_glint_override": {}}}
    • The field can still be defined as before as an inline item id (e.g. "result": "minecraft:stick")

Resource pack

  • The pack format version is now 47.
  • Added textures for new falling leaves particles.
  • Added textures for new wildflowers block.
  • Added break, place, step, fall and hit sounds for iron blocks, iron bars, iron Trapdoors, iron doors and heavy weighted pressure plates.
  • Added new textures for pig variants:
    • cold_pig
    • warm_pig
  • Changed the size of pig texture.
  • Pig variants can be data-driven by adding entries to data/<namespace>/pig_variant/<id>.json
    • This feature is experimental
  • Fields in file:
    • model - one of: normal, cold .
    • texture - texture id for this variant, resolves to assets/<namespace>/textures/<path>.png.
    • biome - single entry, list or a tag describing biomes in which this variant naturally spawns.
      • If not specified, this variant will only be selected if no other variant matches the current biome.

Tags

  • Added wildflowers to the #bee_attractive, and #flowers block tags, and the #bee_food item tag.
  • Added wildflowers, and leaf_litter to the #inside_step_sound_blocks block tag.
  • Added leaf_litter to the #replaceable_by_trees block tag.
  • Changed the #big_dripleaf_placeable block tag, effectively removing pale_moss_block from the contents.
  • Added pale_garden to the #has_structure/woodland_mansion biome tag.

Text component format

  • Text Components are no longer stored as JSON wrapped by a string.
  • The format itself is the same as before, but inlined directly into the outer structure.
  • For example, the item component minecraft:custom_name="{"text":"Renamed item"}" will become minecraft:custom_name={text:'Renamed item'}.
  • This includes Text Components passed as arguments to commands such as /tellraw or /title.
    • For example, /tellraw @s '{"text":"Hello world"}' may become tellraw @s {text:'Hello world'}}.
  • Note: in the case where Text Components are embedded in NBT, no distinction exists between boolean and integer types.
    • To pass boolean arguments to translations, the string form must be used.
  • For Text Components with the NBT type and interpret set to true, Text Components will be parsed from the given NBT directly rather than converting to string and parsing as JSON.
  • Hover Events
    • The hoverEvent field has been renamed to hover_event.
    • The legacy value field (which was parsed from a rendered text component) is no longer supported.
    • For the show_text action:
      • contents field has been renamed to text.
      • e.g. {action:'show_text',contents:'Hello world'} becomes {action:'show_text',text:'Hello world'}
    • For the show_item action:
      • The contents field has been inlined.
      • e.g. {action:'show_item',contents:{id:'minecraft:stick',count:2}} becomes {action:'show_item',id:'minecraft:stick',count:2}
      • If contents was specified only as an item id, it is replaced with the full format and inlined.
      • e.g. {action:'show_item',contents:'minecraft:stick'} becomes {action:'show_item',id:'minecraft:stick'}
    • For the show_entity action:
      • The contents field has been inlined.
      • The id field has been renamed to uuid.
      • The type field has been renamed to id.
      • e.g. {action:'show_entity',contents:{id:[I;0,0,0,0],type:'minecraft:pig'}} becomes {action:'show_entity',uuid:[I;0,0,0,0],id:'minecraft:pig'}
  • Click Events
    • The clickEvent field has been renamed to click_event
    • For the open_url action:
      • The value field has been renamed to url
      • The click event will no longer parse if not a valid URI with either https:// or http:// schemes, instead of simply not working.
      • e.g. {action:'open_url',value:'https://minecraft.net'} becomes {action:'open_url',url:'https://minecraft.net'}
    • For the open_file action:
      • The value field has been renamed to path
    • For the run_command action:
      • The value field has been renamed to command.
      • The click event will no longer parse if the command contains disallowed characters, instead of simply not working.
      • It is no longer required that the specified command field has a / prefix.
      • e.g. {action:'run_command',value:'/say Hi'} becomes {action:'run_command',command:'/say Hi'}.
    • For the suggest_command action:
      • The value field has been renamed to command.
      • The click event will no longer parse if the command contains disallowed characters, instead of simply not working.
      • e.g. {action:'suggest_command',value:'/help'} becomes {action:'suggest_command',command:'/help'}
    • For the change_page action:
      • The value field has been renamed to page.
      • The page value now requires a positive integer instead of a string.
      • e.g. {action:'change_page',value:'1'} becomes {action:'change_page',page:1}
    • The copy_to_clipboard format is unchanged.

Fixes

78 issues fixed

From released versions before 1.21

  • MC-7697 – Tridents or arrows shot through lava sometimes don't catch fire.
  • MC-55800 – Successful "/fill air destroy" commands give error message and return 0 for result/success.
  • MC-56653 – Zombified Piglins drop XP and rare drops if killed by anything while in angered state.
  • MC-90212 – You cannot hang on to climbable blocks while gliding with elytra.
  • MC-93185 – The exit portal in the end generates at highest block at 0 0 which can make it generate incomplete.
  • MC-97244 – The "minecraft:enchant.thorns.hit" sound event doesn't play when non-player entities are damaged by the thorns enchantment.
  • MC-113878 – Attribute modifiers description for chest is misleading / "When on body" instead of "When on chest".
  • MC-117574 – Using /setblock or /fill to re-place a block entity keeps old NBT (if no NBT specified) but clears inventories, even when the command fails.
  • MC-118092 – Crafting recipe unlock toast says "New Recipes Unlocked!" even when only one recipe was unlocked.
  • MC-118470 – Narrator plays at full volume when volume is off.
  • MC-128079 – Statistic for using shears doesn't increase when mining certain blocks.
  • MC-135192 – Boats are immediately sunken if there is a string on the surface of the water.
  • MC-141297 – You cannot set lit state of redstone torches using /setblock, debug stick and BlockStateTag, to be to opposite of the situation it would be in.
  • MC-160304 – Sneaking on ice can change direction of movement to lines along axis.
  • MC-167125 – Rounding error on fall damage.
  • MC-183329 – Nether portal teleport overlay does not show up if the player has the nausea effect.
  • MC-183623 – Hardcore worlds in the world menu have a comma after the red exclamation mark.
  • MC-184530 – Player movement at low speeds is biased towards cardinal directions.
  • MC-184681 – Customized worlds still say "Buffet world customization" since 20w21a.
  • MC-193404 – Changing a powered or activator rail to powered using a debug stick or /setblock does not work.
  • MC-202226/recipe give or take for one recipe says "recipes".
  • MC-220672 – Inconsistent pluralization in customize world preset heading source string.
  • MC-222876 – "Buffet world customization" is incorrectly capitalized.
  • MC-226772 – Shulker box opening / closing subtitle shows "Shulker".
  • MC-239705 – Sprinting forward while facing a certain angle pushes the player either to the left or to the right.
  • MC-241951 – Player momentum on X and Z axis are cancelled separately at low values.
  • MC-248099 – Mob pathfinding breaks after falling into water accidentally while walking.
  • MC-253721 – Wrong logs when running /op @a.
  • MC-260440 – Players can no longer activate swimming mode in water while flying with elytra.
  • MC-261385 – Bubble columns act differently at the surface depending on non-air blocks.
  • MC-262928 – The "minecraft:entity.player.hurt" sound is no longer played when players receive thorns damage from guardians or elder guardians.
  • MC-262939 – Changing dimensions or respawning with nausea effect active displays nether portal overlay.
  • MC-265514 – HRTF stuck on even when directional audio is set to off in update 1.20.2.
  • MC-267221 – "value" within "change_page" clickEvent json looks for a string instead of an integer.
  • MC-267323 – Items fields with old boolean JSON formatting are cleared upon world update.
  • MC-268942 – The swimming animation no longer displays when gliding with an elytra and swimming at the same time.
  • MC-270220 – Granting all advancements results in prolonged, disruptive and loud audio spam.
  • MC-271065 – Diagonal movement is not normalized when crouching or using certain items.

From 1.21

  • MC-273338 – Flying boat glitch using string and rising bubble columns.
  • MC-274187 – The sweeping attack from a sword enchanted with Fire Aspect can ignite other players with PVP disabled.

From 1.21.2

  • MC-275994 – Having the pie chart open while the window is unfocused spams the logs.
  • MC-277403 – Flaming arrows and tridents still don't extinguish when water is placed in their location.
  • MC-277537 – Pale moss carpets sometimes generate disjointed.
  • MC-277780 – Minecraft resaves all maps with every autosave even after the 1st patch.
  • MC-277865 – The animation of boats in bubble columns breaks when over a certain "Time" in level.dat.
  • MC-277922 – Boats in 1 block high downward bubble column will continue to rock back and forth.
  • MC-278040 – Creaking swim pathfinding breaks after being submerged.
  • MC-278639 – Tripwire hooks are not activated by shulker bullets.

From 1.21.3

  • MC-277807 – Teleporting the player's mount causes rotation de-sync, previously did not.
  • MC-278375 – Feeding wheat or hay bale to llama or trader llama with maximum Temper causes item stack to be desynced.
  • MC-278376 – Arrows and tridents act weirdly in one block deep bubble columns.
  • MC-278455 – Slow sideways movement in spectator mode is wrong at angles which aren't (close to) a multiple of 45°.

From 1.21.4

  • MC-278096 – "Fabulous!" graphics and clouds disabled causes all particles to linger in frame buffer for one frame.
  • MC-278140 – The /fill command doesn't work properly with the directional states of several blocks placed adjacent to one another.
  • MC-278164 – Click sound is played twice when you click a setting button and there's a slider under the mouse in the next screen.
  • MC-278204 – Blaze fireballs now cause TNT minecarts to explode instantly.
  • MC-278249 – Experience orb positions desync severely and abruptly correct themselves.
  • MC-278422 – Reloading the world after removing Owner tag from a sitting tamed wolf with /data remove makes the wolf moving and sitting at the same time.
  • MC-278493 – Tamed wolves which are angry at creakings remain angry when said creakings despawn.
  • MC-278502 – Weeping and twisting vines disconnect.
  • MC-278552minecraft:entity.player.big_fall no longer plays the sound when falling from great height.
  • MC-278585 – Players can get stuck when landing on the edge of powder snow.
  • MC-278591 – Ender dragon spawn egg is no longer given when using pick block on the ender dragon entity.
  • MC-278615 – Reinforcement zombified piglins are angry at you even if you killed the "caller" in one hit.
  • MC-278621 – Client/server desync when placing powder snow while landing in it.
  • MC-278627 – Players wearing leather boots will take fall damage when landing on the edge of powder snow.
  • MC-278634 – Trying to /setblock a 'waterlogged=true' state on (glow_lichen, resin_clump, sculk_vein, etc.) produces an error.
  • MC-278659 – Attacking a natural stationary creaking does not trigger sculk sensors.
  • MC-278683 – Mobs spawned from spawners or /summon never drop their equipment.
  • MC-278708 – Throwing ender pearls while mounted only dismounts you, without teleporting.
  • MC-278728smithing_transform recipes can't set an item's components back to default.
  • MC-278733 – Breaking a double resin brick slab block only returns a single slab.
  • MC-278734 – Sheep's heads stutter when they look up or down.
  • MC-278755 – Teleporting far away while riding an entity softlocks the game.
  • MC-278801 – The closed eyeblossom to gray dye recipe is not grouped with the other gray dye recipe.
  • MC-278841 – Powder snow no longer slows down the player falling from a high place.
  • MC-279145 – Shulker bullets are no longer affected by bubble columns.
  • MC-279152 – Shulker bullets can't teleport through nether or end portals, end gateways.

25w03a

25w03a is the second snapshot for Java Edition 1.21.5 released on January 15, 2025,[4] which adds test block, test instance block and fixes bugs.

Additions

Blocks

Test block

  • A technical block used in game test.
  • Can be obtained by /setblock, /fill, or /give commands, or through the Operator Items Tab.
  • The test block is a block used for implementing block-based tests. It has four modes:
    • start: Triggers a redstone pulse when the test starts
    • log: Logs a message to the server log file when powered by redstone (prints twice, due to a bug[5])
    • fail: Fails the test when powered by redstone
    • accept: Completes the test when powered by redstone
  • Block-based tests are required to have at least one start block and one accept block in the structure.

Test instance block

  • A technical block used in game test.
  • Can be obtained by /setblock, /fill, or /give commands, or through the Operator Items Tab.
  • To run a test in a world, a test instance block is used. This type of block represents the test as placed in the world and is used to interact with that test, to save the structure, reset or run the test.
  • Using the /test command to run or create a test will also place a test instance block to control that test.

Command format

/test

  • A new command used to create and run tests.
    • Syntax:
      • /test clearall [<radius>]
      • /test clearthat
      • /test clearthese
      • /test create <test> [<width>] [<height> <depth>]
      • /test locate <selector>
      • /test resetclosest
      • /test resetthese
      • /test resetthat
      • /test pos [<variable>]
      • /test run <selector> [<numberOfTimes>] [<untilFailed>] [<rotationSteps>] [<testsPerRow>]
      • /test runclosest [<numberOfTimes>] [<untilFailed>]
      • /test runfailed [<numberOfTimes>] [<untilFailed>] [<rotationSteps>] [<testsPerRow>]
      • /test runmultiple <selector> [<amount>]
      • /test runthat [<numberOfTimes>] [<untilFailed>]
      • /test runthese [<numberOfTimes>] [<untilFailed>]
      • /test stop
      • /test verify <tests>
    • Parameters:
      • radius:
        • The radius to clear tests within.
      • test:
        • The namespaced ID of a test.
      • selector:
        • A wildcard-enabled selector for test IDs
        • Supports * and ? for matching namespaced IDs
        • If namespace is not supplied, defaults to minecraft
        • Examples:
          • *:*
            • Matches all IDs
          • *
            • Matches everything in the minecraft namespace
          • custom:folder/*_test_?
            • Matches IDs in the folder folder of the custom namespace, with a prefix followed by _test_ followed by a single valid character
      • width:
        • The width of the test structure.
          • If omitted, 5 is used.
      • height:
        • The height of the test structure .
          • If omitted, the width is used.
      • depth:
        • The depth of the test structure.
          • If omitted, the width is used.
      • variable:
        • The variable name to include in the copied code snippet.
      • numberOfTimes:
        • The number of times to repeat each test.
          • If omitted, 1 is used.
      • untilFailed:
        • Boolean (default false) noting that the test should be stopped as soon as one iteration fails.
      • rotationSteps:
        • Number of extra 90 degree steps to apply to the test.
          • If omitted, 0 is used.
      • testsPerRow:
        • Number of tests to place per row in a grid layout.
          • If omitted, 8 is used.
  • /test clear*
    • These subcommands clear the structures and blocks associated with the selected tests.
  • /test create
    • This subcommand creates a test setup in the current location for the given test, preparing for a structure of the given size.
    • This gives a starting point for creating the structure for the test.
  • /test locate
    • Attempts to locate the given test.
      • Note that only loaded chunks are searched.
  • /test reset*
    • These subcommands reset the structures for the selected tests, removing any surrounding barriers and placing the structure in from scatch.
  • /test pos
    • Shows the local coordinates to the block pointed at in the test.
    • If the optional variable name is specified, this variable name is used in a code fragment obtained by clicking on the coordinates in the output message.
  • /test run*
    • Runs one or more tests.
      • If multiple tests are run at once, they are placed in a grid and run in parallel, although only up to a certain limit. Beyond that limit, tests are run in rounds where each round completes before any tests from the next round are started.
      • For each test, loads the given structure and runs the associated test. Each test location will have a beacon beam showcasing the test status.
        • Gray beacon = in progress
        • Red = fail (required test)
        • Orange = fail (optional test)
        • Green = success
      • If a test fails, the error is shown on a lectern book and an overlay.
  • /test stop
    • Stops all running tests.
      • Note that gameplay events triggered by tests may still remain.
  • /test verify*
    • Verifies one or more tests by running multiple instances of the same test.

General

Block-based tests

  • Use test blocks in the test structure to run the test and indicate success or failure.

Function tests

  • Rely on built-in functions to run a test and indicate success or failure.
    • They have one additional field:
      • function:
        • The namespaced ID of the Test Function to run.

Game tests

  • The Game Tests system is a new integrated system for testing aspects of the game.
  • Each test is an asset defining some parameters for how the test gets executed, combined with a saved structure file containing a base setup.
  • Generally, the test framework expects to run tests in a separate superflat world.

Items model definition

  • Select Property
    • minecraft:component
      • New data source has been added to select item model: component.
      • Returns value of component on item, if any.
      • Fields:
        • component - namespaced ID of component type.
      • Possible values: depends on component type.

Tags

  • Added the #can_equip_saddle entity tag.
    • Contains entities that can be equipped with a saddle.
    • This does not mean that the Saddle will function, just that it can be equipped into the saddle slot.

Test environments

  • Test Environments are a way to group up tests and give them the right preconditions to run.
  • A test environment is an asset in the test_environment registry.
  • Each test environment definition has a type field that determines its setup:
    • all_of definitions
      • Apply the setup from several sub-definitions in the definitions field.
    • function definitions
      • Use mcfunction files as setup and teardown.
      • setup:
        • Optional namespaced ID of the mcfunction to use for setup, if any.
      • teardown:
        • Optional namespaced ID of the mcfunction to use for teardown, if any.
    • game_rules: definitions
      • Set any number of game rules.
      • bool_rules:
        • A list of boolean game rules to set and the value to set.
      • int_rules:
        • A list of integer game rules to set and the value to set.
      • Each rule is an object with two fields:
        • rule:
          • The exact name of the rule to set.
        • value:
          • The value to set
      • Game rules are reset to their default values after the test environment has completed.
    • weather definitions (not working in this snapshot[5])
      • Sets the weather state
      • weather:
        • The weather to set.
        • One of clear, rain and thunder.
    • time_of_day definitions
      • Set a given time of day.
      • time:
        • The time of day to set in number of ticks, as a non-negative integer.
  • The game provides a single, empty test environment by default: minecraft:default.

Test instances

  • Test instances are defined in the registry test_instance.
    • They're small assets defining a test to run.
    • Fields:
      • batch (wrongly called environment in the changelog[5]):
        • Namespaced ID of the test environment to run this test as part of.
      • structure:
        • Namespaced ID of the structure to use for the test.
      • max_ticks:
        • A positive integer representing the maximum number of ticks allowed to pass before the test is considered timed out.
      • setup_ticks:
        • Optional non-negative integer.
        • Default: 0
        • Represents a number of ticks to wait after placing the structure before starting the test.
      • required:
        • Optional boolean.
        • Default true
        • Whether the test is considered required to pass for the full test suite to pass.
      • rotation:
        • Optional rotation to apply to the test structure.
        • One of none (default), clockwise_90, 180 and counterclockwise_90.
      • manual_only:
        • Optional boolean.
        • Default false
        • Set to true for tests that are not included as part of automated test runs.
      • sky_access:
        • Whether the test needs clear access to the sky.
        • Default: false
        • Tests are enclosed in barrier blocks.
        • If set to true, the top is left open.
      • max_attempts:
        • Number of attempts to run the test.
        • Default: 1
      • required_successes:
        • Number of attempts that must succeed for the test to be considered successful .
        • Default: 1
      • type:
        • The type of test.
        • One of block_based and function.

Changes

Blocks

Leaf litter

Items

Saddles

  • Saddles equipped onto pigs or striders will now maintain properties such as custom name when dropped.
  • Saddles equipped onto camels and equines (horses, donkeys, mules) now remain visible if the mob equipped with them is inflicted with Invisibility.
  • Saddles equipped onto camels and equines no longer turn red when the mob wearing it takes damage.
  • When enchanted now show the enchantment glint on mobs wearing it.
  • Thorns and Curse of Binding enchantments now work on mobs that are wearing it.

Command format

Item slots

  • The horse.saddle item slot has been renamed to saddle, and now supports any entity that can equip a Saddle.
    • Driven by the equippable component.
    • Only mobs that normally support saddles will support riding and rendering of the saddle.
    • Items in the saddle slot can apply attribute modifiers as with other equipment.

Gameplay

End portal and exit portal

  • When changing state, any blocks that are in its radius will be dropped as items and also make breaking sounds, rather than outright overwritten.[6]

General

Data component format

  • weapon component
    • damage_per_attack field was renamed to item_damage_per_attack
  • equippable component
    • Can now apply to saddle slot.
    • Any mob can now have equipment added in the body slot as long as the component allows it (allowed_entities).
    • Added new optional field: equip_on_interact (boolean).
      • If true, players can equip this item onto a target mob by right-clicking it (as long as this item can be equipped on the target at all).
      • The item will not be equipped if the target already has an item in the relevant slot.
      • If not specified, defaults to false.

Data pack

Entity format

  • The ArmorItems, HandItems, and body_armor_item fields have been merged into an equipment field.
    • Format:
      • Map between equipment slot type and item stack.
        • Valid equipment slots: head, chest, legs, feet, mainhand, offhand, body, saddle.
      • If not specified or removed, the entity will have no equipment.
      • e.g. equipment:{chest:{id:'minecraft:diamond_chestplate'}}.
      • This affects all mobs and armor stands, but players are unaffected.
    • The data format of saddles has been unified between mobs such as horses and pigs, becoming a new kind of equipment slot (and stored in the equipment.saddle field)
      • This also replaces the boolean Saddle flag from pigs and striders.
      • The Saddle dropping on death is now affected by the drop_chances field, as with other equipment slots.
    • The FallDistance field has been changed from float to double and is now called fall_distance.

Entity variant components

  • Entities now have a set of components for configuring variants and other aspects of apperance.
  • If those components are present on spawning item (like spawn eggs, mob buckets, minecraft:painting, minecraft:item_frame), they will be applied to new entity
  • Components are currently not restored when spawn egg is picked from existing entity
  • Added components:
    • villager/variant - one of desert, jungle, plains, savanna, snow, swamp, taiga
    • wolf/variant - namespaced id from wolf_variant registry
    • wolf/collar - one of 16 dye colors
    • fox/variant - one of red, snow
    • salmon/size - one of small, medium, large
    • parrot/variant - one of red_blue, blue, green, yellow_blue, gray
    • tropical_fish/pattern - one of kob, sunstreak, snooper, dasher, brinely, spotty, flopper, stripey, glitter, blockfish, betty, clayfish
    • tropical_fish/base_color - one of 16 dye colors
    • tropical_fish/pattern_color - one of 16 dye colors
    • mooshroom/variant - one of red, brown
    • rabbit/variant - one of brown, white, black, white_splotched, gold, salt, evil
    • pig/variant - namespaced id from pig_variant registry
    • frog/variant - namespaced id from frog_variant registry
    • horse/variant - one of white, creamy, chestnut, brown, black, gray, dark_brown
    • painting/variant - namespaced id from painting_variant registry
    • llama/variant - one of creamy, white, brown, gray
    • axolotl/variant - one of lucy, wild, gold, cyan, blue
    • cat/variant - namespaced id from cat_variant registry
    • cat/collar - one of 16 dye colors
    • sheep/color - one of 16 dye colors
    • shulker/color - one of 16 dye colors
  • Mob buckets and paintings available in creative menu will now use new variants instead of minecraft:entity_data component.
  • Custom tooltips for bucket of tropical fish and painting items are now based on new components instead of minecraft:bucket_entity_data and minecraft:entity_data.

Equipment assets

  • Equipment assets may now define new layer types:
    • pig_saddle - equipment layer for Pig saddles
    • strider_saddle - equipment layer for Strider saddles
    • camel_saddle - equipment layer for Camel saddles
    • horse_saddle - equipment layer for Horse saddles
    • donkey_saddle - equipment layer for Donkey saddles
    • mule_saddle - equipment layer for Mule saddles
    • skeleton_horse_saddle - equipment layer for Skeleton Horse saddles
    • zombie_horse_saddle - equipment layer for Zombie Horse saddles
  • The following textures have been moved to support the use of equipment assets for saddles:
    • entity/pig/pig_saddle.png -> entity/equipment/pig_saddle/saddle.png
    • entity/strider/strider_saddle.png -> entity/equipment/strider_saddle/saddle.png
  • The following textures have been split from their base entity texture to support the use of equipment assets for saddles:
    • entity/camel/camel.png -> entity/equipment/camel_saddle/saddle.png
    • entity/horse/horse_<variant>.png -> entity/equipment/horse_saddle/saddle.png
    • entity/horse/donkey.png -> entity/equipment/donkey_saddle/saddle.png
    • entity/horse/mule.png -> entity/equipment/mule_saddle/saddle.png
    • entity/horse/horse_skeleton.png -> entity/equipment/skeleton_horse_saddle/saddle.png
    • entity/horse/horse_zombie.png -> entity/equipment/zombie_horse_saddle/saddle.png

Predicates

  • Entity predicates
    • A new optional field was added to entity predicate: components.
      • When present, predicate will match contents of entity components.
      • Format:
        • Map of component type key to matching component values.
    • The following entity sub-predicates have been removed and replaced with combination of components predicate and variant entity components:
      • minecraft:axolotl
      • minecraft:fox
      • minecraft:mooshroom
      • minecraft:rabbit
      • minecraft:horse
      • minecraft:llama
      • minecraft:villager
      • minecraft:parrot
      • minecraft:salmon
      • minecraft:tropical_fish
      • minecraft:painting
      • minecraft:cat
      • minecraft:frog
      • minecraft:wolf
      • minecraft:pig
    • The field color has been removed from minecraft:sheep sub-predicate.

Resource pack

  • The pack format version is now 48.
  • Added new equipment asset layer type for Pigs and Striders, and moved saddle textures.
  • Changed the size of pig_saddle texture.

Server.jar

  • Added the entry point net.minecraft.gametest.Main.
    • Automatically starts a server, runs all available game tests and then exits.
    • Options:
      • --help - Shows usage information
      • --packs <path> - Set a folder of datapacks to include in the world
        • Any zip file or folder with a pack.mcmeta file is included
      • --report <path> - Exports results in a junit-like XML report at the given path
      • --tests <selection> - Specify which tests to run with a selection - a wildcard expression matching namespace test instance IDs
        • If omitted, or used with an empty ID, runs all tests
      • --universe <path> - The path to where the test server world will be created
        • Any existing folder will be replaced
        • Default: gametestserver
      • --verify <boolean> - Enables test verification
        • Runs the tests specified with test or testNamespace 100 times for each 90 degree rotation step
        • Default: false
    • Example usage: java -DbundlerMainClass="net.minecraft.gametest.Main" -jar server.jar --packs mytestpacks

Tags

  • Added leaf_litter to the #replaceable_by_mushrooms block tag.
  • Fixed the #is_overworld, and #has_structure/trial_chambers biome tags to contain all required biomes.

Text component format

  • Hover Events
    • show_text action:
      • The text field has been renamed to value.

Fixes

39 issues fixed

From released versions before 1.21

  • MC-13738 – Invisible saddle when using invisibility potion on a horse, donkey or mule.
  • MC-80243 – Saddles don't apply attribute modifiers when worn by entities.
  • MC-189525 – Armored entities from pre-1.9 worlds upgrade to dual wielding armor.
  • MC-190000 – Saddles equipped on horses cannot be replaced without removing them first.
  • MC-227097 – End portals delete blocks that are inside of the portal.
  • MC-256469 – Invisible camels don't show their saddles.
  • MC-266912 – Saddle equipping sounds aren't played when saddles are equipped on horses, donkeys, mules, or camels shortly after the said entity is summoned.
  • MC-269637 – Horses can wear multiple saddles but not multiple horse armor.
  • MC-270192 – The saddles of some entities stay visible through their death animation.
  • MC-270197 – The saddle on pigs and striders stays visible through their death animation.
  • MC-272100 – Unused palette pixels in horse textures (horse_[brown/chestnut/creamy/white].png).
  • MC-272790 – Shulker boxes and other blocks in the end exit portal when it changes state are not dropped as items.

From 1.21

  • MC-274258 – All horse textures contain an unused chest bag texture.

From 1.21.2

  • MC-279340 – Baby polar bears are too small.

From 1.21.4

  • MC-278673 – The x-rotation of /teleport is limited to ±90 degrees relative to the entity's original angle.

From the previous development version

  • MC-279206 – Leaf Litter cannot be composted.
  • MC-279208 – Players can no longer begin sprinting when pressing a sideways movement key first.
  • MC-279211 – Shulker boxes both keep and drop their contents upon being broken via certain methods causing item duplication.
  • MC-279213 – Mushroom Blocks can't replace Leaf Litter.
  • MC-279221 – Leaf Litter replaces leaves in world gen.
  • MC-279224 – Using bone meal in meadows doesn't generate wildflowers.
  • MC-279226 – Experience orbs of any value all render as the smallest value.
  • MC-279233 – Shulker boxes drop their contents when broken.
  • MC-279234 – The minecraft:entity.generic.extinguish_fire sound does not play when the fire on an entity is extinguished.
  • MC-279238 – Dying to a minecart with TNT ignited by a blaze fireball doesn't count as the blaze's kill.
  • MC-279239 – The motion of primed TNT is choppy and jittery.
  • MC-279245 – Most hostile mobs aren't spawning even under the right conditions.
  • MC-279248 – Lava collision is too high.
  • MC-279281 – Fall damage occurs from jumping from 2 blocks up.
  • MC-279282 – Parrots with non-player owner UUID cause crash upon spawning.
  • MC-279301 – Player dies by falling from 22.00001 blocks instead of 23 blocks.
  • MC-279313 – The motion of item entities is choppy and jittery under certain circumstances.
  • MC-279314 – Projectiles twitch up and down slightly while flying through the air.
  • MC-279316 – The motion of fishing bobbers is choppy and jittery.
  • MC-279326 – Lit observers no longer send block updates when moved by a piston.
  • MC-279339 – Update order for sloped rails is incorrect.
  • MC-279345 – Pink petals and Wildflowers can no longer be grown by bone meal.
  • MC-279357 – Player can fall off edges while sneaking.
  • MC-279459/setblock and other fills don't properly update block entities.

25w04a

25w04a is the third snapshot for Java Edition 1.21.5, released on January 22, 2025,[7] which adds new data components and fixes bugs.

Additions

General

Data component format

  • blocks_attacks component
    • When present, this item can be used like a Shield to block attacks to the holding player.
    • Format: object with fields
      • block_delay_seconds
        • Non-negative float (default: 0).
        • The number of seconds that right-click must be held before successfully blocking attacks.
      • disable_cooldown_scale
        • Non-negative float (default: 1).
        • Multiplier applied to the number of seconds that the item will be on cooldown for when attacked by a disabling attack (disable_blocking_for_seconds on the weapon component).
        • If 0, this item can never be disabled by attacks.
      • damage_reductions
        • List of object with fields (optional)
        • Controls how much damage should be blocked in a given attack.
        • If not specified, all damage is blocked.
        • Each entry in the list contributes an amount of damage to be blocked, optionally filtered by damage type.
        • Each entry adds to blocked damage, determined by clamp(base + factor * dealt_damage, 0, dealt_damage).
        • The final damage applied in the attack to the entity is determined by dealt_damage - clamp(blocked_damage, 0, dealt_damage)
        • Entry format:
          • type - damage type id, list of damage type ids, or hash-prefixed damage type tag (optional).
            • This entry will only contribute to the blocked damage if the dealt damage type matches this field.
            • If not specified, any damage type will be accepted.
          • base - float
            • Constant amount of damage to be blocked.
          • factor - float
            • Fraction of the dealt damage that should be blocked.
      • item_damage
        • Object with fields (optional)
        • Controls how much damage should be applied to the item from a given attack.
        • If not specified, a point of durability is removed for every point of damage dealt.
        • The final damage applied to the item is determined by: floor(base+factor*dealtdamage).
        • The final value may be negative, causing the item to be repaired.
        • Format:
          • threshold - non-negative float
            • The minimum amount of damage dealt by the attack before item damage is applied to the item.
          • base - float
            • Constant amount of damage applied to the item, if threshold is passed.
          • factor - float
            • Fraction of the dealt damage that should be applied to the item, if threshold is passed.
      • block_sound
        • Sound event (optional).
        • If specified, this sound will be played when an attack is successfully blocked.
      • disable_sound
        • Sound event (optional).
        • If specified, this sound will be played when the item goes on its disabled cooldown due to an attack.
  • break_sound component
    • When present, this sound will be played when the item runs out of durability and breaks.
    • If not present, no sound will be played on break.
    • This component is present by default on every item type.
    • Format: sound event
      • e.g. break_sound='item.wolf_armor.break'
  • provides_banner_patterns component
    • When present, this item can be placed in the pattern slot of a Loom.
    • Format: hash-prefixed banner pattern tag.
      • e.g. provides_banner_patterns='#minecraft:pattern_item/globe'
  • provides_trim_material component
    • When present, this item will provide the specified trim material when used in a trimming recipe.
      • Note that to be used in the built-in smithing recipes, the item must also be in the #trim_material tag.
      • As such, the trim material registry definition no longer specifies an item.
    • Format: trim material id
      • e.g. provides_trim_material='minecraft:iron'
  • tooltip_display component
    • This component allows the tooltips provided specifically by any given item component to be surpressed.
    • This replaces the previous show_in_tooltip fields, hide_additional_tooltip and hide_tooltip components.
    • Format: object with fields:
      • hide_tooltip - boolean (default: false).
        • If true, the item will have no tooltip when hovered.
      • hidden_components - list of item component ids (default: []).
        • The tooltips provided by any component in this list will be hidden.
        • If that component provides no tooltip, it will have no effect.

Language

  • Added support for Kyrgyz language.

Tags

  • Added the #can_wear_horse_armor entity tag.
    • Contains entity that can hold horse armor in their body slot.

Changes

Items

Crossbows

  • Will now show all charged projectiles in their tooltip instead of just the first

Command format

SNBT

  • SNBT (textual representation of NBT-like data) has been expanded to accept heterogenous lists, i.e. ones where elements are not of the same type.
  • NBT format is not changed
    • If SNBT command argument transforms value to NBT (like arguments of /data or /summon), lists might be transformed to bypass NBT constraints
      • Example transform: ['a', {'b':3}] is stored as [{'':'a'},{'b':3}]
    • This transform is not reversed by /data

General

Advancement definition

  • The field background no longer contains textures/ prefix and .png suffix.

Atlas

  • minecraft:paletted_permutations sprite source
    • New field:
      • separator
        • Optional string (default: _).
        • Value to be used when joining texture and permutation names to produce sprite name.

Data component format

  • hide_additional_tooltip component
    • Has been removed and replaced by use of the tooltip_display component and hidden_components field.
      • The following components previously covered by the hide_additional_tooltip component may need to be hidden:
        • minecraft:banner_patterns
        • minecraft:bees
        • minecraft:block_entity_data
          • Specifically, Mob Spawner and Trial Spawner block entity data will display the configured mob.
        • minecraft:block_state
          • Specifically, the honey_level property will be displayed in the tooltip for any item with this specified.
        • minecraft:bundle_contents
        • minecraft:charged_projectiles
        • minecraft:container
        • minecraft:container_loot
        • minecraft:firework_explosion
        • minecraft:fireworks
        • minecraft:instrument
        • minecraft:map_id
        • minecraft:painting/variant
        • minecraft:pot_decorations
        • minecraft:potion_contents
        • minecraft:tropical_fish/pattern
        • minecraft:written_book_content
      • This additionally means that tooltips from the above listed components are no longer restricted to specific item types.
        • Note: for existing items in a world with the hide_additional_tooltip component, any of the above listed components also present on the same item will be added to the list to hide in tooltip_display.
  • hide_tooltip component
    • Has been removed and replaced by use of the tooltip_display component and hide_tooltip field.
  • attribute_modifiers component
    • Removed the show_in_tooltip field, replaced by tooltip_display component.
    • This component now always uses its simplified form, with the modifiers field inlined to top-level.
      • e.g. attribute_modifiers={modifiers:[...]}] -> attributes_modifiers=[...]
  • dyed_color component
    • Removed the show_in_tooltip field, replaced by tooltip_display component.
    • This component now always uses its simplified form, with the rgb field inlined to top-level.
      • e.g. dyed_color={rgb:12345}] -> dyed_color=12345]
    • The specified color now supports the RGB array format.
      • e.g. dyed_color=[0.5, 1.0, 0.2]
  • can_place_on and can_break components
    • Removed the show_in_tooltip field, replaced by tooltip_display component.
    • The predicates field has been inlined to top-level, and supports either a single element or list.
      • e.g. can_place_on={predicates:[{blocks:'stone'},{blocks:'dirt'}]}] -> can_place_on=[{blocks:'stone'},{blocks:'dirt'}]]
      • or: can_place_on={predicates:[{blocks:'stone'}]}] -> can_place_on={blocks:'stone'}]
  • enchantments and stored_enchantments components
    • Removed the show_in_tooltip field, replaced by tooltip_display component.
    • These components now always use their simplified form, with the levels field inlined to top-level.
      • e.g. enchantments={levels:{sharpness:2}}] -> enchantments={sharpness:2}]
  • jukebox_playable component
    • Removed the show_in_tooltip field, replaced by tooltip_display component.
  • trim component
    • Removed the show_in_tooltip field, replaced by tooltip_display component.
  • unbreakable component
    • Removed the show_in_tooltip field, replaced by tooltip_display component.
  • weapon component
    • can_disable_blocking field was replaced with disable_blocking_for_seconds.
    • disable_blocking_for_seconds
      • Non-negative float (default: 0)
      • If non-zero, will disable a blocking Shield on successful attack for the specified amount of seconds.
  • Some existing components are now also transferred from spawning item to spawned entity:
    • minecraft:custom_name - any entity.
    • minecraft:potion_contents - Lingering Potion to Area Effect Cloud.
    • minecraft:potion_duration_scale - Lingering Potion to Area Effect Cloud.

Data pack

  • The pack format version is now 64.
  • Trim pattern and trim material items are no longer specified in the trim registries, but instead in the recipes and items respectively.
  • The potion entity type has been split into splash_potion and lingering_potion
  • Filled Maps without any map_id component no longer show an 'Unknown Map' tooltip (invalid IDs will still produce this tooltip)

Entity variant components

  • Cat and Frog variants are now data-driven.
  • Added uniform way to define variant selection rules.

Items model definition

  • Select Property
    • minecraft:component
      • If the selected value comes from a registry and the current datapacks does not provide it, the entry will be silently ignored.
        • In previous snapshot, unrecognized elements caused the whole item model to be ignored.
  • Boolean Property
    • minecraft:component
      • New conditional model property has been added to condition item model: component
      • Uses component predicates (like ones used in item predicates) to match item components.
        • However, instead of encoding them as a map of <predicate type>:<predicate value>, a single predicate is encoded in two fields.
      • Fields:
        • predicate - type of component predicate (member of minecraft:data_component_predicate_type registry)
        • value - predicate-specific value

Loot Functions

  • toggle_tooltips
    • Now supports any component id in the toggles map.
    • Any component specified will be toggled in the tooltip_display component.

Particle format

  • The particle type tinted_leaves now has a parameter:
    • color
      • Tint color, specified either as packed int or list of 4 floats.

Recipes

  • smithing_transform recipe type
    • The base ingredient field is no longer optional
      • Previously, if no base ingredient was given, the recipe would parse but never be usable.
  • smithing_trim recipe type
    • The base, template, and addition ingredient fields are no longer optional.
      • Previously, if these ingredients were not given, the recipe would parse but never be usable.
    • Added new pattern field, controlling which trim pattern will be applied in the recipe.
      • As such, the trim pattern registry definition no longer specifies the item.
      • Format: trim pattern id
        • e.g. "pattern": "minecraft:bolt"

Resource pack

Reversion of bug fixes

After consideration, we have decided to revert both fixed bugs. While we do want to revisit these mechanics in the future, it's clear that these recent fixes alone didn't quite hit the mark and caused too many negative side-effects for parkour, speedbridging, and movement in general.

Developer's Note

The reverted bug fixes include:

  • MC-152728 — The player continues sprinting when performing actions that slow them down
  • MC-271065 — Diagonal movement is not normalized when crouching or using certain items

Tags

  • Renamed #bypasses_shield damage type tag to #bypasses_blocking.
  • Removed #default_spawns and #full_moon_spawns cat variant tags.
  • Added test_block, and test_instance_block to the #dragon_immune, and #wither_immune block tags.

Uniform variant selection

  • Variants that have spawn rules now use uniform approach for selecting.
    • Selection process:
      • Every variant field spawn_conditions that contain a list of entries.
      • Every entry has a condition and an integer priority.
      • Conditions for all variants for given entity type are evaluated for position where entity is being spawned.
      • Entries with priority lower than maximum priority of remaining entries are removed.
      • The game randomly picks one entry out of remaining ones.
      • If no conditions are remaining, variant remains unchanged from default.
    • Entry format:
      • priority - integer
      • condition - optional structure
        • Fields:
          • type
          • Additional fields dependent on type.
        • If field is not present, condition is always true.
  • Spawn conditions
    • minecraft:biome
      • Checks if entity is spawning in specific biomes.
      • Fields:
        • biomes - single entry, list or a tag describing biomes.
    • minecraft:moon_brightness
      • Checks if current moon brightness is within certain range.
      • Fields:
        • range - floating point range (a single number or an object like {"min": 1, "max": 2}).
    • minecraft:structure
      • Checks if entity is spawning in specific structures.
      • Fields:
        • structures - single entry, list or a tag describing structures.
  • Wolf Variants
    • The fields angry_texture, tame_texture and wild_texture have been grouped in field assets and renamed to angry, tame and wild.
    • Added the field spawn_conditions.
  • Pig Variants
    • texture and biome fields are replaced with asset_id and spawn_conditions respectively.
    • Fields in file:
      • asset_id - namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.png.
      • spawn_conditions - field described in uniform variant selection above
  • Cat variants
    • Cat variants can be data-driven by adding entries to data/<namespace>/cat_variant/<id>.json.
    • This feature is experimental.
    • Fields in file:
      • asset_id - namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.png.
      • spawn_conditions - field described in uniform variant selection above
  • Frog variants
    • Frog variants can be data-driven by adding entries to data/<namespace>/frog_variant/<id>.json.
    • This feature is experimental.
    • Fields in file:
      • asset_id - namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.png.
      • spawn_conditions - field described in uniform variant selection above

Fixes

47 issues fixed

From released versions before 1.21

  • MC-98271 – The sound of blocking with a shield is only hearable by other players (not the person blocking).
  • MC-101556 – Nether Portal teleport range is too large (equivalent to a full block).
  • MC-165421 – Bubble columns have the opposite effect on wind charges.
  • MC-165461 – Crossbow loading animation stops after loading, even when still holding down right click.
  • MC-176233 – Crossbows no longer have a transition after loading.
  • MC-200311 – Advancement background texture referencing is inconsistent with models.
  • MC-255756 – When the shield is broken between players, the attacking side has no shield breaking sound.
  • MC-279646 – Toggling fullscreen with F11 does not visually update the fullscreen option in the video settings menu.

From 1.21.1

  • MC-276061 – Decorated pot sherds don't visually update until relog when replacing with blank pot.

From 1.21.3

  • MC-278400 – Arrows and tridents move after hitting a block in flowing lava.

From 1.21.4

  • MC-279653 – Block Entity Data desynchronizes after subsequent setblock commands.

From the Java Edition 1.21.5 development versions

  • MC-279217 – Arrows and tridents constantly spin after hitting a block in flowing lava.
  • MC-279218 – The minecraft:enchant.thorns.hit sound does not play when mobs or players are killed by the Thorns enchantment.
  • MC-279225 – Players jitter and land slightly too high up when landing on powder snow while wearing leather boots.
  • MC-279232 – SNBT text components prevent mixing text styles in lists.
  • MC-279389 – The minecraft:entity.arrow.hit_player sound is played when player is hit by an arrow shot by himself.
  • MC-279454hide_additional_tooltip no longer hides author and generation on written books.

From the previous development version

  • MC-279480 – The "test_instance_block.reset_success" string incorrectly spells the word "succeeded" as "succeded".
  • MC-279481 – Leaf litter no longer generates in forests or wooded badlands.
  • MC-279482 – Elements within the test block and test instance block menus are not selected in order when using the TAB key.
  • MC-279483 – Test blocks set to start mode show the "Message:" text despite no text field being present.
  • MC-279485 – Test block and test instance block menus have blurred backgrounds.
  • MC-279486 – Some strings displayed within the test instance block interface are untranslatable.
  • MC-279487 – The "Test Instance ID" and "Test Structure Size" text within the test instance block interface are positioned too far to the right.
  • MC-279488 – Leaf litter generates very sparsely in Dark Forests.
  • MC-279489 – An unexpected error occurs when attempting to create tests with large sizes.
  • MC-279490 – No command feedback messages are displayed when attempting to reset tests that don't exist.
  • MC-279491 – The "commands.test.no_tests" raw translation key is displayed when using "/test run..." commands in situations where no tests exist.
  • MC-279492 – An unexpected error occurs when attempting to locate tests that don't exist.
  • MC-279493 – No command feedback messages are displayed when using the "/test create" command.
  • MC-279498 – Test blocks and test instance blocks aren't part of the "#minecraft:dragon_immune" or "#minecraft:wither_immune" tags.
  • MC-279502 – Axolotl variants are no longer saved when bucketing.
  • MC-279504 – "minecraft:enchantments" component does not work on the select property of Item Models.
  • MC-279505 – Horse-esque mobs that disallow horse armor still show an non-interactive slot.
  • MC-279511 – Using "minecraft:always_pass" while the player is inside the test zone breaks the world.
  • MC-279518 – Test environment accepts minecraft:raining instead of minecraft:weather.
  • MC-279519 – Some words within some test command strings are always pluralized.
  • MC-279522 – GameTest entrypoint doesn't load zip datapacks.
  • MC-279527 – GameTest entrypoint doesn't load custom tests from datapacks.
  • MC-279538 – The key name of the test instances field that represents the namespaced ID of the test environment is different from the changelog.
  • MC-279539 – Villager variant is not applied to spawned zombie villagers.
  • MC-279553 – Players using items no longer turn their body in the moving direction while moving diagonally.
  • MC-279570 – Some piston operations don't send neighbor updates.
  • MC-279573 – The "test_instance_block.error.no_test" string is missing the word "no".
  • MC-279588 – Test instance field typo 'sky_accesss'.
  • MC-279599/test pos is offset by one on the y and z axis.
  • MC-279601 – "test.error.expected_entity_at_pos" translation is missing.

25w05a

25w05a is the fourth snapshot for Java Edition 1.21.5, released on January 29, 2025,[8] which adds the bush, firefly bush, new cow variants and fixes various bugs.

Additions

Blocks

Bush

Firefly bush

  • Generates in Swamps and near Rivers.
  • When it's dark, glowing firefly particles appear around the firefly bush, up to 5 blocks away.
  • Can be used in the Composter, with a 30% chance to add a layer.
  • Using bone meal on a firefly bush will spawn another firefly bush item.
  • Emits a light level of 2.
  • Can be instantly broken without any particular tool.

Mobs

Cow

General

Sound

  • Dead bush blocks have a chance of playing ambient sounds when placed on top of two blocks that are any color of terracotta, sand or red sand blocks in any biome.
  • Sand, red sand and terracotta of any color have a chance of playing ambient sounds when surrounded by any one of them on at least 3 sides 8 blocks away.
    • block.sand.idle can be played in any biome.
    • block.sand.wind only plays when in desert or badlands biomes.

Tag

  • Added the #plays_ambient_desert_block_sounds block tag.
    • Contains blocks that will play ambient desert block sounds.

Changes

Blocks

Beacons

  • Beacons and their beams now render beyond 16 chunks up to the client render distance.
    • To keep it easily visible at large distances, the beam is rendered thicker the further away it is from the player.
    • The beam now renders up to 2048 blocks high, up from 1024.

Powder Snow

  • Landing on powder snow with leather boots equipped after falling further than 2.5 blocks will now make entities fall through the snow.
    • Jumping or falling less than 2.5 blocks allows the entity to land on top of the snow like before.

Mobs

Pigs

Command format

/bossbar, /scoreboard and /team

  • Text component arguments are now resolved before use in context of entity held in @s.

General

Data component format

  • blocks_attacks
    • Added the bypassed_by field - hashtagged damage type tag (optional)
      • If specified, blocking is bypassed by these damage types.
    • The objects within the damage_reductions list now have a new field:
      • horizontal_blocking_angle- angle in degrees as a positive float
      • Default: 90
        • The maximum angle between the user's facing and the incoming attack for the block to be effective.

Data pack

Entity variant components

  • Cow variants can be data-driven adding entries to data/<namespace>/cow_variant/<id>.json.
    • This feature is experimental.
    • Fields in file:
      • model - one of: normal, cold, warm.
      • asset_id - namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.png.
      • spawn_conditions - field described in uniform variant selection above.

Resource pack

  • The pack format version is now 50.
  • Added new textures for cow variants.
    • cold_cow
    • warm_cow
  • Changed the size of temperate_cow texture.
  • Changed the size of red_mooshroom and brown_mooshroom textures.
  • The temperate Cow has an updated model and texture.
    • Cow models now have a snout.
    • Cow models now have their legs mirrored.
  • The texture cow has been renamed to temperate_cow.
  • The texture pig has been renamed to temperate_pig.

Tag

  • Renamed the #bypasses_blocking damage type tag back to #bypasses_shield.
  • Replaced windswept_hills with windswept_savanna in the #spawns_warm_variant_farm_animals biome tag.

Fixes

22 issues fixed

From released versions before 1.21

  • MC-108495 – Non-LivingBase entities can be on a team (and show color) but can't be targeted using team=.
  • MC-165711 – Eye of ender hitbox always lags behind the animation.

From 1.21.2

  • MC-279390 – Baby zombified piglin helmet clipping.

From 1.21.4

  • MC-279857 – Piglins summoned by the /summon command do not pick up gold items.

From the Java Edition 1.21.5 development versions

  • MC-279257crafting_transmute recipes don't give output if the resulting item has the same ID as the input item.
  • MC-279280windswept_hills is in both the warm and cold variant farm animal biome tags.
  • MC-279315 – Warm pigs do not spawn in windswept savannas.
  • MC-279353 – The minecraft:fall_damage_multiplier attribute doesn't function when riding specific rideable mobs.
  • MC-279497 – Structure preview outline breaks for max integer-length sizes.
  • MC-279531 – GameTest entrypoint doesn't report failures to spawn the structure.
  • MC-279534 – Display entities use interpolation duration value for teleport duration.
  • MC-279543 – Neutral Mobs don't attack the player back when attacked under certain conditions.
  • MC-279556 – The "/execute on attacker" command does not target an entity previously targeted by the "/data" command.
  • MC-279577 – Test blocks are restricted to one within a block-based structure.

From the previous development version

  • MC-279684 – Shield blocking animation no longer plays when blocking an attack.
  • MC-279685 – Shields no longer consume durability when blocking attacks.
  • MC-279688 – Sprinting is canceled upon flying with elytra.
  • MC-279692 – Instrument component crashes the game.
  • MC-279693 – Summoned lingering potions render as splash potions.
  • MC-279697 – Llamas show a non-interactive saddle slot.
  • MC-279698provides_banner_pattern component does not use hash prefix.
  • MC-279760 – Typing an inline definition in the provides_trim_material component crashes the game.

25w06a

25w06a is the fifth snapshot for Java Edition 1.21.5, released on February 5, 2025,[9] which adds cactus flowers, short and tall dry grass, new chicken variants and fixes bugs.

Additions

Blocks

Cactus Flower

  • A new type of flower which has a chance of generating on cacti in deserts and badlands.
  • Can be placed on cactus blocks or any block which has center support at the top of the block.
  • Has a chance of growing on cactus blocks.
    • If a cactus is one or two blocks high the flower has a 10% chance to grow instead of the cactus getting higher.
    • If a cactus is three blocks or higher the flower has a 25% chance to grow.
    • Cactus flowers will only grow if they have space on all four sides.
  • Can be mined without any tool.
  • Can be used in the composter, with a 30% chance to add a layer.
  • Can be used to craft 1 pink dye.
Ingredients [hide]Crafting recipe
Cactus Flower
Invicon Cactus Flower.png: Inventory sprite for Cactus Flower in Minecraft as shown in-game linking to Cactus Flower with description: Cactus Flower
Invicon Pink Dye.png: Inventory sprite for Pink Dye in Minecraft as shown in-game linking to Pink Dye with description: Pink Dye

Short Dry Grass

  • Is one block high.
  • Generates in the desert and badlands.
  • Can be placed on types of sand, terracotta and dirt blocks like the dead bush.
  • Can be obtained using shears or a Silk Touch tool.
  • Can be bone mealed.
    • Using bone meal on short dry grass grows it into a tall dry grass.
  • Can be used in the composter, with a 30% chance to add a layer.
  • Sheep can eat short dry grass to regrow its wool.
  • Can be used as fuel for smelting, where they smelt half an item.

Tall Dry Grass

  • Is one block high.
  • Generates in the desert and badlands.
  • Can be placed on types of sand, terracotta and dirt blocks like the dead bush.
  • Can be obtained using shears or a Silk Touch tool.
  • Can be bone mealed.
    • Using bone meal on tall dry grass places a neighbouring short dry grass next to the block if possible.
  • Can be used in the composter, with a 30% chance to add a layer.
  • Sheep can eat tall dry grass to regrow its wool.
  • Can be used as fuel for smelting, where they smelt half an item.

Items

Blue Egg

  • A variant of the egg laid by the cold chicken variant.
  • Spawns the cold chicken variant when hatched.

Brown Egg

  • A variant of the egg laid by the warm chicken variant.
  • Spawns the warm chicken variant when hatched.

Mobs

Chicken

General

Game rule

  • Added the allowFireTicksAwayFromPlayer game rule.
    • Default value: false.
    • When true, Fire and Lava ticks can occur outside of an 8 chunk range of a player.

Tag

  • Added the #edible_for_sheep block tag.
    • Contains blocks that can be eaten by sheep to regrow their wool.
  • Added the #eggs item tag.
    • Contains all variants of the egg item.

Changes

Blocks

Bush

  • The hitbox now reaches all the way to the ground.
  • No longer prevents trees from growing.

Fire

  • Will no longer burn or spread if no player is within 8 chunks.

Firefly Bush

  • Conditions for the firefly bush playing ambient sounds have changed. It now plays when all of the following conditions are met:
    • The firefly bush is not blocked from above by any collidable block (except leaves).
    • It is nighttime.
  • No longer prevents trees from growing.

Leaf Litter

  • Can now be placed on any block which has center support at the top of the block.
  • Now have a more appropriate color on maps.

General

  • Any block in the simulation distance of a player or loaded by another source of chunk loading (such as ender pearls) may now receive random ticks, instead of just 8 chunks around players.
    • For example: if a chunk is loaded by an ender pearl or is in the spawn chunks, crops are able to grow, ice can melt, snow can fall, and a cauldron can be filled by rain.
    • Mob spawning, lava spreading fire, and lightning strikes still occur in the previous radius of 8 chunks around players.

Items

Cakes and pumpkin pies

Mobs

Bees

World generation

Villages

  • Pigs and cows spawned in desert villages are now of the warm variant.

Gameplay

Advancements

  • The "Country Lode, Take Me Home" advancement has been moved from the Nether category to the Adventure category.

General

Data pack

Entity data

  • The armor and off-hand equipment of players is now also stored in the equipment field.
    • Although items written into the Inventory using armor and off-hand slot numbers still work.

Entity variant components

  • Chicken variants can be data-driven adding entries to data/<namespace>/chicken_variant/<id>.json.
    • This feature is experimental.
    • Fields in file:
      • model - one of: normal, cold.
      • asset_id - namespaced id for this variant asset, resolves to assets/<namespace>/textures/<path>.png.
      • spawn_conditions - field described in uniform variant selection above.

Resource pack

  • The pack format version is now 51.
  • Added new textures for chicken variants:
    • cold_chicken
    • warm_chicken
  • The texture chicken has been renamed to temperate_chicken.
  • The temperate_chicken texture has been moved to a new folder:
    • entity/chicken.png -> entity/chicken/temperate_chicken.png

Tag

  • The #dead_bush_may_place_on block tag has been renamed to #dry_vegetation_may_place_on.
  • Added cactus_flower to the #bee_attractive, and #flowers block tags, and the #bee_food item tag.
  • Added bush, firefly_bush, short_dry_grass, and tall_dry_grass to the #replaceable_by_mushrooms, and #replaceable_by_trees block tags.
  • Added short_dry_grass, and tall_dry_grass to the #replaceable block tag.
  • Added many biomes to the #spawns_cold_variant_farm_animals, and #spawns_warm_variant_farm_animals biome tags.

Tooltip

  • Tooltips for fireworks and crossbows now show a compact form of multiple repeated stars or projectiles that are identical.

Fixes

19 issues fixed

From released versions before 1.21

  • MC-157196 – Tamed animals cannot be added to a team.
  • MC-186241 – World border faces are rendered incorrectly with "Fabulous!" graphics.

From the Java Edition 1.21.5 development versions

  • MC-279205 – Leaf litter map color is incorrect.
  • MC-279207 – Leaf Litter can only be placed on dirt-like blocks.
  • MC-279223 – Country Lode Take Me Home Advancement can be completed in the overworld but is still listed as a Nether advancement.
  • MC-279235 – Certain farm animals are not spawned as their cold variant in some cold biomes due to an incomplete tag.
  • MC-279242 – Kelp, twisting vines, weeping vines, and cave vines can no longer be stacked above or below one another by placing.
  • MC-279261 – Making a mob its own owner causes persistent crashes.
  • MC-279279 – Dismounting places player in same space as mount.
  • MC-279292 – Pigs spawn as temperate in desert villages.
  • MC-279309 – Wildflowers item has a misplaced transparent pixel.
  • MC-279464 – Fire placed with /setblock doesn't tick/burn out.
  • MC-279719 – Tooltip description for saddle attribute modifier slot is not translated.

From the previous development version

  • MC-279912 – You can use bone meal on bushes in situations where nothing grows.
  • MC-279914 – The hitboxes of bushes don't reach the ground and are too wide compared to other similar blocks.
  • MC-279924 – Bushes cannot be replaced by trees or mushrooms.
  • MC-279933 – Firefly bushes cannot be replaced by trees or mushrooms.
  • MC-279950 – Modifying command data storage throws an error.
  • MC-279972 – Using /setblock & /fill with fluids of levels at a non-full-block no longer updates the fluid.

25w07a

25w07a is the sixth snapshot for Java Edition 1.21.5, released on February 13, 2025.[10]

Additions

General

Tags

  • Block tags
    • Added #camels_spawnable_on
      • Contains blocks that camels can spawn on.
  • Structure tags
    • Added #on_savanna_village_maps.
      • Contains structures that can appear on savanna village maps.
    • Added #on_desert_village_maps.
      • Contains structures that can appear on desert village maps.
    • Added #on_plains_village_maps.
      • Contains structures that can appear on plains village maps.
    • Added #on_taiga_village_maps.
      • Contains structures that can appear on taiga village maps.
    • Added #on_snowy_village_maps.
      • Contains structures that can appear on snowy village maps.
    • Added #on_swamp_explorer_maps.
      • Contains structures that can appear on swamp explorer maps.
    • Added #on_jungle_explorer_maps.
      • Contains structures that can appear on jungle explorer maps.

Changes

Blocks

Bush

  • Now only drops when broken with shears or a Silk Touch tool.
  • Is now replaceable when building.

Firefly Bush

  • Now spreads to neighboring blocks when applied bone meal.

Items

Bundle

  • Can now be found in some of the chests in villages.

Mobs

Camels

Cartographer

  • The changes to cartographer trades have been moved from experimental features and are now available during normal gameplay.
    • Added seven new maps which cartographers can sell, each pointing to a different village or other structures in a different biome, depending on the biome they come from.
      • Village maps points to a village in a specific biome. Jungle explorer map points to a jungle pyramid. Swamp explorer map points to a swamp hut.
      • Cartographers from different village types will sell a different range of maps and colored banners.
    • Some prices and quantities have also been adjusted.

An image referring to how the different maps for the different village types are connected.
A graph showing where each type of cartographer's maps leads to

Available new tradable maps
Desert Jungle Plains Savanna Snow Swamp Taiga
Group 1 Savanna Village Map Savanna Village Map Savanna Village Map Desert Village Map Plains Village Map Snowy Village Map Plains Village Map
Group 2 Plains Village Map Desert Village Map Taiga Village Map Plains Village Map Taiga Village Map Taiga Village Map Snowy Village Map
Group 3 Jungle Explorer Map Swamp Explorer Map Jungle Explorer Map Swamp Explorer Map Jungle Explorer Map Swamp Explorer Map
Cartographer Economic Trades
LevelBedrock EditionJava EditionItem wantedItem givenTrades in
stock
Price multiplierVillager XP
SlotProbabilityProbability
Novice1100%100%24 × PaperEmerald16Low2
2100%100%7 × EmeraldEmpty Map12Low1
Apprentice3100%50%11 × Glass PaneEmerald16Low10
4100%100%8 × Emerald
+ Compass
Explorer Map[t 1]12High5
Journeyman550%67%CompassEmerald12Low10
50%67%13 × Emerald
+ Compass
Ocean Explorer Map[t 2]12High10
6100%67%12 × Emerald
+ Compass
Trial Explorer Map[t 2]12High10
Expert7100%12%7 × EmeraldItem Frame12Low15
8100%100%3 × EmeraldInvicon White Banner.png: Sprite image for White Banner in MinecraftInvicon Light Gray Banner.png: Sprite image for Light Gray Banner in MinecraftInvicon Gray Banner.png: Sprite image for Gray Banner in MinecraftInvicon Black Banner.png: Sprite image for Black Banner in MinecraftInvicon Brown Banner.png: Sprite image for Brown Banner in MinecraftInvicon Red Banner.png: Sprite image for Red Banner in MinecraftInvicon Orange Banner.png: Sprite image for Orange Banner in MinecraftInvicon Yellow Banner.png: Sprite image for Yellow Banner in Minecraft
Invicon Lime Banner.png: Sprite image for Lime Banner in MinecraftInvicon Green Banner.png: Sprite image for Green Banner in MinecraftInvicon Cyan Banner.png: Sprite image for Cyan Banner in MinecraftInvicon Light Blue Banner.png: Sprite image for Light Blue Banner in MinecraftInvicon Blue Banner.png: Sprite image for Blue Banner in MinecraftInvicon Purple Banner.png: Sprite image for Purple Banner in MinecraftInvicon Magenta Banner.png: Sprite image for Magenta Banner in MinecraftInvicon Pink Banner.png: Sprite image for Pink Banner in Minecraft
Any color Banner[t 3]
12Low15
Master9100%100%8 × EmeraldGlobe Banner Pattern12Low30
10100%100%14 × Emerald
+ Compass
Woodland Explorer Map12High30
  1. The structure that the map leads to depends on the biome the villager is from. See the table above for more details. Each of the three possible maps are counted as independent trades, so a villager trading multiple maps is possible.
  2. Jump up to: a b in Java Edition, all copies of the map traded by a particular villager lead to the same structure. In worlds that do not have the structure, this trade is not offered. in Bedrock Edition, Cartographers adopting the profession in the Nether or the End do not offer explorer maps.
  3. The list of possible offers contains individual offers for each color, so multiple colors may be offered by the same villager as separate trades.
New cartographer trade prices.

Mooshroom

  • Model and textures for both variants have been updated to be more inline with the cow.

Sheep

Wandering Trader

  • The changes to wandering trader trades have been moved from experimental features and are now available during normal gameplay.
    • The Wandering Trader now has better prices, more trades and a larger amount of stock for many items.
    • They will also now buy basic supplies from players.
    • The Wandering Trader will offer to buy two items from this list:
    • Wandering Traders now have a chance of selling these items (in addition to their previous trades):
    • Trade list now made up by following trades, in order:
      • Buying Trade (new) × 2
      • Special Selling Trade × 2
      • Ordinary Selling Trade × 5
    • Added new buying trades, some selling trades, and changed some existing selling trades:
New trades of wandering traders
Category Item wanted Quantity Item given Quantity Trades until disabled
Buying Baked Potato 4 Emerald 1 1
Buying Fermented Spider Eye 1 Emerald 3 1
Buying Hay Bale 1 Emerald 1 1
Buying Milk Bucket 1 Emerald 2 1
Buying Water Bottle 1 Emerald 1 1
Buying Water Bucket 1 Emerald 2 1
Special Selling Emerald 1 Acacia Log 8 4
Special Selling Emerald 1 Birch Log 8 4
Special Selling Emerald 1 Cherry Log 8 4
Special Selling Emerald 1 Dark Oak Log 8 4
Special Selling Emerald 1 Jungle Log 8 4
Special Selling Emerald 1 Oak Log 8 4
Special Selling Emerald 1 Spruce Log 8 4
Special Selling Emerald 1 Pale Oak Log 8 4
Special Selling Emerald 6-20 Iron Pickaxe (Enchanted) 1 1
Special Selling Emerald 5 Potion of Invisibility (Long) 1 1
Changed trades of wandering traders
Category Item wanted Quantity Item given Quantity Trades until disabled
Special Selling Emerald 1 Gunpowder 1 → 4 8 → 2
Special Selling Emerald 3 → 1 Packed Ice 1 6
Special Selling → Ordinary Selling Emerald 5 → 3 Bucket of Pufferfish 1 4
Special Selling → Ordinary Selling Emerald 5 → 3 Bucket of Tropical Fish 1 4
Ordinary Selling Emerald 1 Lily Pad 2 → 5 5 → 2
Ordinary Selling Emerald 1 Brown Mushroom 1 → 3 12 → 4
Ordinary Selling Emerald 1 Red Mushroom 1 → 3 12 → 4
Ordinary Selling Emerald 1 Vines 1 → 3 12 → 4
New wandering trader trade prices.

Gameplay

Sounds

  • Ambient block sounds in deserts, badlands and pale gardens which are only used for ambience have been moved from "Blocks" to "Ambient/Environment" category.
  • The breaking sound for grass sound type has been lowered, affecting all blocks using this sound.
  • The breaking, stepping, placing sounds for leaf litter have been lowered.

General

Block entity format

  • The CustomName field will no longer be preserved when removed.
  • The LootTable field will no longer be preserved when removed.
  • end_gateway
    • The exit_portal field will no longer be preserved when removed.
  • furnace, smoker, blast_furnace
    • The RecipesUsed field will no longer be preserved when removed.
  • skull
    • The note_block_sound field will no longer be preserved when removed.

Data pack

Entity format

  • Pos, Motion, and Rotation values without the correct number of components (3, 3, and 2 respectively) will now be fully discarded, instead of only selecting the specified components.
  • The SleepingX, SleepingY, and SleepingZ fields have been collected into a single sleeping_pos field.
    • e.g. sleeping_pos: [I;1,2,3]
  • Block States in the entity data of arrows, minecarts, block displays, endermen, falling blocks, primed TNT, or piston moving blocks are no longer allowed to be specified as an empty object.
  • The Tags field will no longer be preserved if removed.
  • allay
    • Removed the CanDuplicate field (controlled by DuplicationCooldown).
  • cat
    • The CollarColor field now defaults to 14 (red) if not specified.
  • dolphin
    • Removed TreasurePosX, TreasurePosY, TreasurePosZ fields.
  • falling_block
    • The BlockState field can now be air (will despawn immediately).
      • If otherwise not specified or invalid, defaults to sand.
  • fox
    • The Trusted field now defaults to empty if not specified (and will no longer be merged with the previous state if modified by /data).
  • item
    • The Owner and Thrower fields will no longer be preserved when removed.
  • phantom
    • The Size field has been renamed to size.
    • The AX, AY, and AZ fields have been collected into a single anchor_pos field.
  • player
    • The SpawnX, SpawnY, SpawnZ, SpawnAngle, SpawnDimension, and SpawnForced fields have been collected into a single respawn field.
      • Format: object with fields
        • pos - block position to spawn at.
        • angle - float, angle to spawn with (default: 0.0).
        • dimension - dimension id to spawn in (default minecraft:overworld).
        • forced - boolean, true if this spawn was set through commands (default: false).
    • The enteredNetherPosition field has been renamed to entered_nether_pos, and is now formatted as a list of doubles.
      • e.g. entered_nether_pos: [1.0, 2.0, 3.0]
  • primed_tnt
    • The block_state field now defaults to tnt if not specified.
  • shulker_bullet
    • The Dir and Target fields will no longer be preserved when removed.
  • turtle
    • The HomePosX, HomePosY, and HomePosZ fields have been collected into a single home_pos field.
    • Removed TravelPosX, TravelPosY, and TravelPosZ fields.
    • The HasEgg field has been renamed to has_egg.
  • vex
    • The LifeTicks field has been renamed to life_ticks.
    • The BoundX, BoundY, and BoundZ fields have been collected into a single bound_pos field.
  • villager
    • The Gossips field will no longer be preserved when removed.
  • wandering_trader
    • The wander_target field will no longer be preserved when removed.
  • wolf
    • The CollarColor field now defaults to 14 (red) if not specified.
  • zombie_villager
    • The Gossips field will no longer be preserved when removed.
  • evoker_fangs, area_effect_cloud, and all projectiles
    • The Owner field will no longer be preserved when removed.
  • item_frame, glow_item_frame, painting, and leash_knot
    • The TileX, TileY, and TileZ fields have been collected into a single block_pos field.
  • arrow, spectral_arrow, trident
    • The inBlockState and SoundEvent fields will no longer be preserved when removed.
  • minecart, *_minecart
    • The CustomDisplayTile field has been removed.
    • DisplayState will now always override the default displayed block state if specified.
    • DisplayOffset may now be specified to override the default offset even without a custom display block state set.
  • block_display, item_display, and text_display
    • The glow_color_override field will no longer be preserved when removed.
  • witch, ravager, pillager, illusioner, evoker, and vindicator
    • The patrol_target field will no longer be preserved when removed.

Predicate

  • The stepping_on entity predicate can only evaluate to true if the entity is on ground.

Resource pack

  • Item rendering
    • Item Display
      • firstperson_lefthand and thirdperson_lefthand transforms are now rendered the same as when held in hand.
    • Item Entity
      • When on ground, model size is now taken into account when determining hovering motion.
        • That means that models should never clip into the block below, no matter what size they are.
      • Positioning of items in an item stack on ground now depends on model size and model type.
        • If model depth (Z coordinate) is below 1/16th of a block, item is rendered as flat stack of items.
        • Otherwise model is rendered as a cluster of items offset in all directions around center.
        • Previously, flat stack rendering happened only for models with builtin/generated parent.
  • The version is now 52.

Shaders

  • Shader program definitions for core shaders and post-processing effects as JSON files have been removed.
  • The shader programs themselves are still available and can be overridden.
  • The post-processing effects are still configurable as JSON.
  • Post-process Effect Definitions
    • The field program was replaced with vertexShader and fragmentShader.
      • <namespace>:<path> will resolve to assets/<namespace>/shaders/<path>.<vsh|fsh>.
    • type is now a required field for each uniform.
      • Possible values are currently int, ivec3, float, vec2, vec3, vec4, matrix4.
    • values in each uniform is now optional.
      • Leaving it unset is not recommended and is used for runtime configuration of the blur effect.
    • Leaving a uniform unspecified results in undefined behavior, the player must specify each one that will be used by the shaders.

Tags

  • Added bush to the #replaceable block tag.

Fixes

24 issues fixed

From released versions before 1.21

  • MC-122840 – "/data remove" cannot delete beam_target tag in End Crystals.
  • MC-152382 – End gateways and end portals don't fade away with render distance fog.
  • MC-153392 – Unable to remove villager gossips using /data remove.
  • MC-220091 – Summoning falling_block entities with BlockState NBT set to any air block (air, cave_air, void_air) default to sand.
  • MC-230445 – End portals and end gateways are not rendered properly with the Blindness or Darkness effects.

From 1.21.4

  • MC-279196 – Block loot tables cannot be removed with /data remove
  • MC-279364CustomName cannot be removed from block entities.
  • MC-279472 – Void appears lower & more faded than before.
  • MC-279572 – End portals and end gateways aren't affected by water, lava or powder snow fog.

From the Java Edition 1.21.5 development versions

  • MC-279434 – Standing on powder snow and fire at the same time spams the fire extinguish sound.
  • MC-279598 – Parts of test structures sometimes remain after running /test clearall.
  • MC-279637 – Game crashes when /test verify-ing a test instance with max_attempts greater than 1.
  • MC-279711 – Test instance block "Entities" flips when closing UI.
  • MC-279913 – Mooshroom snout no longer matches cows.
  • MC-279921 – The "Light as a Rabbit" advancement is granted even when the player sinks in powder snow.
  • MC-279934block.sand.idle and block.sand.wind are not in the Ambient/Environment sound category.
  • MC-279936 – The "commands.test.success" raw translation key is displayed when using "/test create..." command.
  • MC-279948 – Cold cow variant's horns are not mirrored.
  • MC-279992 – Jumping when wearing leather boots and landing on powder snow from some specific heights can cause the player to get stuck in the powder snow.
  • MC-280067 – Scaffolding can no longer be placed if the player is intersecting it.
  • MC-280134 – Sneaking with a Sneaking Speed attribute of 0 causes the game to freeze.

From the previous development version

  • MC-280132 – Leaf litter generation is inconsistently interrupted by non-grass blocks.
  • MC-280133 – The world border produces graphical glitches when moving near it.
  • MC-280167 – Profiling with F3 + L outputs many errors to log.

25w08a

25w08a is the seventh snapshot for Java Edition 1.21.5, released on February 19, 2025, which adds new sound personalities for wolves, overhauls spawn egg textures, and fixes bugs.[11]

Additions

Mobs

Wolf

  • Added six new sound variants.
    • The variants are called Classic, Big, Cute, Puglin, Angry, Grumpy, and Sad. The existing wolf sounds are used for the Classic variant.
    • Wolves receive a random sound variant when they spawn.
    • Sound variants are not related to texture variants.

General

Entity components

  • wolf/sound_variant
    • Namespaced ID from wolf_sound_variant registry.

Changes

Blocks

Leaf litter

  • Leaf litter is now tinted based on which biome it is in.

Items

Spawn eggs

A collection of the new spawn egg textures.
  • Changed the visuals of all spawn eggs to make them easier to distinguish: each type of spawn egg now has its own unique icon instead of all just being colored variants of the same spotted egg.
    • Each egg visual varies in shape to reflect the in-world properties of the mob it spawns: for example, smaller mobs tend to have a smaller Spawn Egg icon.

Mobs

Sheep

  • Reverted the change from 25w07a that allowed blue, light blue, cyan, yellow, orange and red sheep to spawn naturally in different biomes.
    • Common sheep color in cold biomes remains black, and uncommon colors are now gray, light gray, white and brown.
    • Common sheep color in warm biomes remains brown, and uncommon colors are now gray, light gray, white and black.
    • Pink sheep will still be very rare and able to spawn anywhere where sheep can spawn.
  • The wool undercoat of sheep is now also colored when dyed, matching existing behavior in Bedrock Edition.
  • Sheep can now eat ferns, matching Bedrock Edition.

Wandering Trader

Gameplay

Creative mode

  • The tab icon for the Spawn Eggs inventory tab has changed from the pig spawn egg to the creeper spawn egg.

General

Biome effects

  • dry_foliage_color field
    • Defines the color used for tinting blocks using dry foliage tinting.

Data component format

  • blocks_attacks
    • If the blocked damage has no position, the compared angle will be assumed to be the maximum 180 for horizontal_blocking_angle field of damage_reductions.

Data pack

Equipment Assets

  • Equipment layers configured to be dyeable will now show if the dyed_color component is present on the item, even if the item is not in the #dyeable tag.

Resource pack

  • The version is now 53.
  • Added the possibility to tint blocks based on a dry foliage color map.
  • Added colormap texture for tinting dry foliage tinted blocks.
  • Removed spawn_egg.png and spawn_egg_overlay.png.
  • The texture sheep_fur has been renamed to sheep_wool.

Tags

  • Added fern to the #edible_for_sheep block tag.
  • Added cactus, campfire, dry_out, hot_floor, in_fire, lava, lightning_bolt, and sweet_berry_bush to the #bypasses_shield damage type tag.

Fixes

Note: The bug tracker was offline for most of the preceding week, therefore many bugs from 25w07a may not have been reported on the tracker and are therefore not listed. Bugs were officially reported in the game's Discord server during this week.

4 issues fixed

From released versions before 1.21

  • MC-177522 – Wolf barking and whining sounds are subtitled as "Wolf pants".
  • MC-258253 – Spawn egg particles use an uncolored spawn egg overlay.

From the Java Edition 1.21.5 development versions

  • MC-280182 – Shields can block some environmental damage sources.

From the previous development version

  • MC-280230DeathLootTable field is incorrectly named DeathLoothTable.

25w09a

25w09a is the eighth snapshot for Java Edition 1.21.5, released on February 26, 2025, which adds fallen trees for parity with Bedrock Edition, updates firefly bushes to generate in more biomes and fixes bugs.[12]

Additions

World generation

Fallen tree

  • Fallen trees are a new decorative variant of trees.
  • Fallen trees come in four different wood type variants:
  • Birch fallen trees can come in a shorter version or a longer version.
  • Some fallen trees can be decorated with mushroom or vines.
  • Fallen trees can be found in all biomes where their standing tree variant grow, except the following:

Changes

Blocks

Dead Bush

Firefly Bush

  • The Firefly Bush can now generate near water in mangrove swamps and all types of badlands (very rarely), like other biomes with water.

Leaf Litter

  • Leaf Litter is now replaceable by other blocks.

Short Dry Grass and Tall Dry Grass

  • Are now randomly offset within the block they are on.

Command format

/data

  • Can now create and modify heterogeneous lists transparently.
  • Can no longer traverse paths with an empty key (e.g. /data get ... foo..bar)

General

Block entity format

  • campfire
    • The CookingTimes and CookingTotalTimes fields will no longer be preserved when removed.
  • chiseled_bookshelf
    • The last_interacted_slot field now defaults to -1 if not specified.
  • hopper
    • The TransferCooldown field now default to -1 if not specified.
  • jigsaw
    • The name, target, and pool fields now default to minecraft:empty if not specified.
    • The final_state field now defaults to minecraft:air if not specified.
  • sculk_shrieker
    • The warning_level field now defaults to 0 if not specified.
  • structure_block
    • The ignoreEntities and showboundingbox fields now default to true if not specified.
    • The posY field now defaults to 1 if not specified.

Data pack

  • The pack format version is now 69.
  • New command line argument --renderDebugLabels is available for the client.
    • Adds debug labels to relevant OpenGL objects, making debugging rendering easier for developers.

Entity format

  • The FallFlying field will no longer be preserved if removed.
    • The Health and Air fields now default to their respective maximum value if not specified.
  • area_effect_cloud
    • The Duration field now defaults to -1 if not specified.
    • If the Duration field is -1, the Area Effect Cloud will never run out.
    • This means that an Area Effect Cloud summoned with no duration specified will no longer immediately disappear.
  • creeper
    • The Fuse field now defaults to 30 if not specified.
    • The ExplosionRadius field now defaults to 3 if not specified.
  • dolphin
    • The Moistness field now defaults to 2400 if not specified.
  • ender_dragon
    • The DragonDeathTime field now defaults to 0 if not specified.
  • falling_block
    • The BlockState field can now be air (will despawn immediately) - if otherwise not specified or invalid, defaults to sand.
    • The HurtEntities field now defaults to false if not specified (or true if BlockState is anvil).
    • The FallHurtAmount field now defaults to 0 if not specified.
    • The FallHurtMax field now defaults to 40 if not specified.
    • The DropItem field now defaults to true if not specified.
    • The TileEntityData field will no longer be preserved if removed.
  • firework_rocket
    • The ShotAtAngle field now defaults to false if not specified.
  • fox
    • The Trusted field now defaults to empty if not specified (and will no longer be merged with the previous state if modified by /data).
  • ghast
    • The ExplosionPower field now defaults to 1 if not specified.
  • goat
    • The HasLeftHorn and HasRightHorn fields now default to true if not specified.
  • interaction
    • The width and height fields now default to 1 if not specified.
  • item
    • The Health field now defaults to 5 if not specified.
    • The PickupDelay field now defaults to 0 if not specified.
    • The Age field now defaults to 0 if not specified.
    • The Owner and Thrower fields will no longer be preserved when removed.
  • item_frame and glow_item_frame
    • The ItemDropChance field now defaults to 1.0 if not specified
  • primed_tnt
    • The fuse field now defaults to 80 if not specified.
    • The explosion_power field now defaults to 4 if not specified.
  • shulker
    • The Color field now defaults to 16 (no color) if not specified.
  • skeleton
    • The StrayConversionTime field will no longer be preserved when removed.
  • spectral_arrow
    • The Duration field now defaults to 200 if not specified.
  • snow_golem
    • The Pumpkin field now defaults to true if not specified.
  • tnt_minecart
    • The fuse field now defaults to 80 if not specified.
    • The explosion_power field now defaults to 4 if not specified.
    • The explosion_speed_factor field now defaults to 1 if not specified.
  • trader_llama
    • The DespawnDelay field now defaults to 47999.
  • villager
    • The FoodLevel and Xp fields now default to 0 if not specified.
    • The ConversionTime field will no longer be preserved when removed.
  • wandering_trader
    • The DespawnDelay field now defaults to 0 if not specified.
  • zombie
    • The DrownedConversionTime field will no longer be preserved when removed.
  • zombie_villager
    • The Xp field now defaults to 0 if not specified.
    • The ConversionTime field will no longer be preserved when removed.
  • arrow, spectral_arrow, trident
    • The damage field now defaults to 2 if not specified.
  • dragon_fireball, wind_charge, breeze_wind_charge, wither_skull, small_fireball, and large_fireball
    • The acceleration_power field now defaults to 0.1 if not specified.
  • small_fireball and large_fireball
    • The ExplosionPower field now defaults to 1 if not specified.
  • block_display, item_display, and text_display
    • The interpolation_duration, teleport_duration, and start_interpolation fields now default to 0 if not specified.
    • The view_range field now defaults to 1 if not specified.
    • The shadow_radius field now defaults to 0 if not specified.
    • The shadow_strength field now defaults to 1 if not specified.
    • The width and height fields now default to 0 if not specified.

NBT format

  • Any interface with NBT data within the game (SNBT representation, /data) now supports heterogeneous lists, i.e. ones where elements are not of the same type
    • Inserting or replacing into a list of a different type with /data will no longer give an error.
    • Inserting into an array type (e.g. [I;1,2,3]) is still type-restricted.
    • This means that the 'wrapper' objects previously used to represent heterogeneous lists will no longer be observable by in-game means.
  • The NBT file format is unchanged.
    • Heterogeneous lists are transformed before storage to bypass NBT constraints.
      • Example transform: ['a', {'b':3}] is stored as [{'':'a'},{'b':3}].
    • Existing external tools will still be able to read NBT files as before, but heterogeneous lists will be displayed in the transformed form.
  • No data produced by the game has changed: objects such as Text Components were already producing heterogeneous lists in this form.
  • Note: these wrapper objects may never be observed in-game, they are only relevant to developers working with the NBT file or network format directly.

SNBT format

  • The text format for describing object-like data in commands (like NBT, text components, predicates, etc.) has been extended.
  • Number Format
    • Either whole or fraction parts of a float number can be omitted
      • Examples: .1 and 1. are valid now
    • Float numbers now use E notation
      • Example: both 1.2e3 and 1.2E3, 1.2E+3, 12000e-1 are now a valid way to represent 1200.0
    • Integer numbers can now be prefixed with 0x to represent hexadecimal numbers and 0b to represent binary numbers
      • Example: 0xbad (equal to 2989), 0xCAFE (equal to 51966), 0b101 (equal to 5)
    • Integer numbers now can't start with 0
      • Normally (e.g. in Java) it would mean number is in base-8, but this usage is not implemented, to avoid accidental misuse
    • Numbers can now contain _ character between sequences of digits (but not at the start or the end of sequence)
      • Example: 0b10_01, 0xAB_CD, 1_2.3_4__5f, 1_2e3_4
    • NaN, Inf or hexadecimal float representation are NOT supported
    • Type suffixes have been extended:
      • Integer type suffixes (b or B - byte, s or S - short, i or I - integer, l or L) can now be prefixed with s (signed) or u unsigned
      • New suffixes only affect valid range when parsing - values are still stored as signed
        • Example: 240ub is equal to -16sb, while 240sb does not parse
      • When a suffix is used without u or s, it defaults to signed for decimal numbers and unsigned for binary and hexadecimal numbers
      • Note: since b is also a valid hexadecimal digit, byte sized hexadecimal values can only be written with a signed suffix, like 0x11ub or 0x11sb
  • Strings
    • Quoted strings can now use escape sequences beyond ', " and \:
      • Unicode escapes:
        • \x - two digit escape, like \x42
        • \u - four digit escape, like \u2603
        • \U - eight digit escape, like \U00002603
        • \N{<name>} - named Unicode character, like \N{Snowman}
      • Built-in escape sequences:
        • \b - backspace, Unicode \x08
        • \s - space, Unicode \x20
        • \t - horizontal tab, Unicode \x09
        • \n - linefeed, Unicode \u0a
        • \f - form feed, Unicode \u0c
        • \r - carriage return, Unicode \u0d
    • Unquoted strings now can't start with 0-9, ., +, - to avoid accidental collision with numbers
  • Number Arrays
    • Values in arrays ([B;], [I;], [L;]) without a suffix are now assumed to have suffix matching the type of the array
      • Example: [B;1,2] is equivalent to [B; 1b, 2b]
    • Arrays can now also accept types smaller than the array type
      • Example: [I;1b,2s,3] is valid and equivalent to [I;1i,2i,3i]
  • Lists
    • Lists now accept trailing commas
      • Example: [1,2,] is valid and equivalent to [1,2]
      • Only one trailing comma is allowed, and it must come after a valid element - both [,] and [1,,] are invalid
  • Compounds
    • Compounds (maps) now accept trailing commas
      • Example: {a:b,}
      • Only one trailing comma is allowed, and it must come after a valid key-value pair - both {,} and {a:b,,} are invalid

Tags

  • Added farmland to #dry_vegetation_may_place_on block tag.
  • Added leaf_litter to #replaceable block tag.
  • Added cactus_flower to #wall_post_override block tag.

Fixes

19 issues fixed

From released versions before 1.21

  • MC-168262 – Dead bushes cannot be placed on farmland.
  • MC-236100 – End crystal beam appears to be black.

From 1.21.2

  • MC-276861 – The player can sometimes teleport through blocked end portals when moving very fast.

From the Java Edition 1.21.5 development versions

  • MC-279229 – SNBT text components prevent \n and \t from working.
  • MC-279236 – Flying into water with an elytra puts the player into an erroneous state.
  • MC-279250 – SNBT text components prevent unicode escapes from working.
  • MC-279252 – Changing a single line of a sign with /data is no longer possible in some situations.
  • MC-279278 – Strafing twice in rapid succession while walking forward causes player to sprint.
  • MC-279928 – Beacon beam clips into beacon block when far enough away.
  • MC-279932 – Beacon beam disappears and reappears when approaching it.
  • MC-279942 – Beacon beam can render over fog when outside render distance.
  • MC-279947 – Snout of the new cow model is offset vertically by 0.1 pixels.
  • MC-280022 – Players can be lit by lava while stepping onto solid blocks next to it.
  • MC-280033 – Beacon beams render beyond client render distance.
  • MC-280121 – Leaf litter can be placed on walls and fences.
  • MC-280123 – Short dry grass and tall dry grass aren't randomly offset, unlike similar blocks.
  • MC-280155 – Random ticks can cause entity build-up in lazy chunks.
  • MC-280170 – Goats can no longer ram armor stands unless the game rule mobGriefing is set to false.
  • MC-280211 – End crystal beams cause OpenGL errors with glDebugVerbosity set to 3.

25w09b

25w09b is the ninth snapshot for Java Edition 1.21.5, released on February 27, 2025,[13] which fixes numerous rendering bugs and crashes in the 25w09a snapshot.

Fixes

10 issues fixed

From the previous development version

  • MC-280302 – Text does not render in menus until entering a world.
  • MC-280303 – Game crashes when trying to render a warden.
  • MC-280305 – GUI elements incorrectly overlap on macOS.
  • MC-280308 – Crash from GL error when opening world.
  • MC-280310 – The game crashes near a trial chamber.
  • MC-280322 – Game crashes when trying to render a breeze.
  • MC-280324 – Game crashes when entering the End from the Nether.
  • MC-280329 – Game sometimes crashes when saving a world.
  • MC-280334 – The Report Player screen is broken.
  • MC-280346 – The loading screen initially appears black and only changes to red at the end.

25w10a

25w10a is the tenth and final snapshot for Java Edition 1.21.5, released on March 5, 2025.[14]

Additions

General

Game rule

  • Added the tntExplodes game rule.
    • When false, TNT will not explode and cannot be primed by any means.
      • Trying to do so directly, like with a flint and steel, will show a message on the action bar.
      • Powering a TNT block with redstone makes it simply vanish, as does blowing it up with a creeper.
      • A TNT block on fire can burn up as if it was a plank.
    • Default value: true

Tag

  • Added #flowers item tag.
    • Corresponds to the #flowers block tag.

Changes

Blocks

Cactus flower

Test block and test instance block

  • Their textures have been updated.

Mobs

Cow

  • The new models have been tweaked so the horn placement and leg positioning now match the model on Bedrock Edition.
  • The textures of temperate cow legs no longer have harsh borders due to a mirroring issue.
  • The heads of baby cows are now positioned correctly.

Sheep

  • Its wool texture has been tweaked to remove the stark line at the back.

General

Data pack

Entity data

  • Custom data (previously present only on markers) is now available on all entities.
    • It is exposed as a minecraft:custom_data component, so it can be set by spawning items and matched by predicates.
    • The component is currently stored in a field called data.
    • It is stored only if it's non-empty.

Predicates

  • Block predicates
    • New optional fields have been added to block predicates: components and predicates.
    • Their functionality and format are identical to the fields components and predicates on item predicates, but they operate on block entity components (when present).
      • When present, components will match exact contents of block entity components.
      • When present, predicates will match partial contents of block entity components.
  • Entity predicates
    • A new optional field has been added to entity predicates: predicates.
      • Its functionality and format is identical to the field predicates on item predicates, but they operate on entity components.
        • When present, predicates will match partial contents of entity components.

Resource pack

  • The version is now 54.
  • "Global" uniforms may now be defined in any shader, and the game will attempt to fill it.
    • Currently, these are: ModelViewMat, ProjMat, TextureMat, ScreenSize, ColorModulator, Light0_Direction, Light1_Direction, GlintAlpha, FogStart, FogEnd, FogColor, FogShape, LineWidth, GameTime, ModelOffset.
    • The type of the uniform must match what it would normally be, or it'll be undefined behavior.

SNBT format

  • SNBT now also supports following operations:
    • bool(arg) - converts argument to boolean.
      • If argument is a boolean value, returns value directly.
      • If argument is a number value, returns true if it is non-zero.
    • uuid(str) - converts string representation of UUID to integer array.
  • Implicit infinite float values (like 1e1000) are now rejected.

Sounds

  • Blocks that are broken by a piston now play their breaking sound.

Tag

  • Added cactus_flower to #enderman_holdable block tag.
  • Removed blocks that mine instantly without a tool from the #mineable/axe, and #sword_efficient block tags.

Title screen

Fixes

26 issues fixed

From released versions before 1.21

  • MC-203550 – Blocks broken by pistons do not play breaking sounds.
  • MC-269386 – Flow Pottery Sherd is not in the correct spot in the creative inventory.
  • MC-270043 – Reduced armor glint applies to tridents.

From the Java Edition 1.21.5 development versions

  • MC-279414 – Flying far away in spectator mode and switching to creative softlocks the game for a while.
  • MC-279920 – Beacons play the deactivation sound every game tick while on the death screen.
  • MC-279967 – Temperate cows have strange mapping/harsh borders because of the leg texture becoming mirrored.
  • MC-279993 – Baby cows' heads are incorrectly positioned.
  • MC-280050 – The mule saddle texture is missing in the Programmer Art resource pack.
  • MC-280061 – Test instance block has flipped lighting direction.
  • MC-280063crafting_transmute recipes don't give an output if the output stack has the same count as the stack in the crafting grid.
  • MC-280106 – Cactus flowers cannot be held by endermen.
  • MC-280109 – Leash all frog variants advancement is not deterministic in data generation.
  • MC-280113 – Shears no longer consume durability when used on insta-mined blocks.
  • MC-280143 – Monster spawner and trial spawner tooltip no longer displays the "Interact with Spawn Egg" hint.
  • MC-280159 – New cow model does not match Bedrock Edition.
  • MC-280242 – Not all ambient sounds have been moved to the "Ambient/Environment" category.
  • MC-280244 – Temperate cow model in Java does not have its new horn placement from Bedrock Edition.
  • MC-280285 – Some game events can crash the game when attempting to create vibration resonance with an amethyst block.
  • MC-280315 – Crash when listing suggestions with invalid Unicode escapes.

From the previous development version

  • MC-280325 – The player hand flickers in first-person mode.
  • MC-280337 – Slimes freeze the game.
  • MC-280360 – The game stops updating frames while loading chunks.
  • MC-280379 – Frozen screen when entering any UI or after a few minutes of playing.
  • MC-280383 – Items in inventories sometimes do not render.
  • MC-280423 – Block textures flicker randomly.
  • MC-280439 – Values out of bounds for float and double parse successfully in SNBT resulting in storing the value Infinity.

1.21.5 Pre-Release 1

1.21.5 Pre-Release 1 (known as 1.21.5-pre1 in the launcher) is the first pre-release for Java Edition 1.21.5, released on March 11, 2025.[15] This is the first pre-release released in 2025.

Changes

Items

Spawn Eggs

World generation

Fallen trees

  • The longer versions of fallen birch trees now generate properly.
    • This version is up to 15 blocks long, as opposed to the shorter version which can only reach 8 blocks at most.

Command format

General

  • Arguments in commands that accept inline values like loot tables, predicates, modifiers, data components, formatted text (/loot, /give, /tellraw, /execute if predicate, data components in /execute if items, etc.) have been reverted to accept numbers in place of booleans.

General

Network protocol

  • The client-bound player_chat packet now contains an index increasing for every message sent to the client.
    • The index starts at 0 when logging in (or is reset by configuration phase and the login packet).
    • For every message, the server should increment this value by 1.
    • If this value updates in an unexpected way, the client will disconnect.
    • As the protocol requires that every chat packet reaches the client in produced order, the goal is to enable faster detection of missed/reordered chat messages for custom server developers.
  • The server-bound chat and chat_command_signed packets now contain a checksum byte along with the 'last seen' update.
    • This is a simple hash of the 'last seen' signatures which should be reconstructed by the server, allowing quicker detection of desynchronized state.
    • This can be passed as 0 to disable the check, for compatibility with protocol translation.

Resource pack

  • The version is now 55.
  • Tweaked leaf litter block models.

Fixes

15 issues fixed

From released versions before 1.21

  • MC-170134 – Minecraft uses several times more VRAM than needed after exploring terrain for a while.

From the 1.21.5 development versions

  • MC-279350 – Leaf litter multipart model system is unoptimized, causing render lag.
  • MC-280141 – Baby farm animals from spawn eggs with a variant differing from the parent flash the wrong variant initially.
  • MC-280241 – Cold Cows have improperly mirrored and incorrectly aligned ear textures.
  • MC-280249 – Spawn eggs don't use their old textures with the Programmer Art resource pack enabled.
  • MC-280278 – Sheep wool uses 1.14 texture with Programmer Art resource pack enabled.
  • MC-280326 – When teleporting across dimensions an error is often thrown.
  • MC-280361 – When a fallen tree replaces the bottom half of tall vegetation, the top part of the vegetation still generates.

From the previous development version

  • MC-280474 – TNT minecarts explode regardless of tntExplodes gamerule.
  • MC-280477 – TNT still explodes when summoned or dispensed while tntExplodes gamerule is false.
  • MC-280479 – TNT is completely deleted when attempting to ignite it using redstone pulses when the "tntExplodes" gamerule is disabled.
  • MC-280480 – No flint and steel clicking sound when attempting to ignite. TNT with a flint and steel when the "tntExplodes" gamerule is disabled.
  • MC-280493 – If the tntExplodes game rule is changed to false while primed TNT already exists in the world, the primed TNT explodes as normal.
  • MC-280501 – The "Fire extinguishes" sound plays every game tick while on fire in rain.
  • MC-280520ItemDropChance on an item frame is not serialized when there is no item anymore, leading to inconsistencies.

1.21.5 Pre-release 2

1.21.5 Pre-release 2 (known as 1.21.5-pre2 in the launcher) is the second pre-release for Java Edition 1.21.5, released on March 12, 2025.[16]

Changes

General

Data pack

Fixes

2 issues fixed

From the Java Edition 1.21.5 development versions

  • MC-280482 – Main menu is totally broken when using Mesa 25.0

From the previous development version

  • MC-296644 – Game crashes while rendering section / java.lang.NullPointerException: Cannot read field "b" because "$$3" is null

1.21.5 Pre-Release 3

1.21.5 Pre-Release 3 (known as 1.21.5-pre3 in the launcher) is the third and final pre-release for Java Edition 1.21.5, released on March 18, 2025.[17]

Fixes

4 issues fixed

From the Java Edition 1.21.5 development versions

  • MC-297384 – The second horn in the cold cow texture is unused by the model

From the previous development version

  • MC-295387 – fireball and small_fireball can no longer have their Owner, HasBeenShot, or LeftOwner fields modified
  • MC-299223 – F3 debug crosshair lost its outline
  • MC-299543 – Experience orbs follow players in Spectator mode

1.21.5 Release Candidate 1

1.21.5 Release Candidate 1 (known as 1.21.5-rc1 in the launcher) is the first release candidate for Java Edition 1.21.5, released on March 20, 2025.[18] This is the first release candidate released in 2025.

Fixes

3 issues fixed

From the Java Edition 1.21.5 development versions

  • MC-295383 – "Received missed or reordered chat message from server" string doesn't make logical sense

From the previous development version

  • MC-295412 – Lighting of magma block is incorrect
  • MC-295416 – Beacon receives wrong shading from nearby blocks

1.21.5 Release Candidate 2

1.21.5 Release Candidate 2 (known as 1.21.5-rc2 in the launcher) is the second and final release candidate for Java Edition 1.21.5, released on March 24, 2025 to fix the final issues before the Spring to Life drop releases.[19]

Fixes

2 issues fixed

From the Java Edition 1.21.5 development versions

  • MC-295665 – There is no blending in new chunks

From the previous development version

  • MC-295688 – Piston movement is not applying block effects to entities

Notes and references

  1. "Minecraft Snapshot 25w02a"Minecraft.net, January 8, 2025.
  2. MC-279280 — windswept_hills is in both the warm and cold variant farm animal biome tags, and MC-279315 — Warm pigs do not spawn in windswept savannas — resolved as "Fixed".
  3. Was actually a bug: MC-271065 — Diagonal movement is not normalized when crouching or using certain items — resolved as "Fixed".
  4. "Minecraft Snapshot 25w03a"Minecraft.net, January 15, 2025.
  5. Jump up to: a b c "Mojang just added some WEIRD new blocks. Here's how they work." (Archive) by Conure [@conure512] – YouTube, 2025-01-15.
  6. "25w02a to 25w03a"EndPodiumFeature) (Archive) – cdn.skye.lol.
  7. "Minecraft Snapshot 25w04a"Minecraft.net, January 22, 2025.
  8. "Minecraft Snapshot 25w05a"Minecraft.net, January 29, 2025.
  9. "Minecraft Snapshot 25w06a"Minecraft.net, February 5, 2025.
  10. "Minecraft Snapshot 25w07a"Minecraft.net, February 13, 2025.
  11. "Minecraft Snapshot 25w08a"Minecraft.net, February 19, 2025.
  12. "Minecraft Snapshot 25w09a"Minecraft.net, February 26, 2025.
  13. "Minecraft Snapshot 25w09b"Minecraft.net, February 27, 2025.
  14. "Minecraft Snapshot 25w10a"Minecraft.net, March 5, 2025.
  15. "Minecraft 1.21.5 Pre-Release 1" – Minecraft.net, March 11, 2025.
  16. "Minecraft 1.21.5 Pre-Release 2" – Minecraft.net, March 12, 2025.
  17. "Minecraft 1.21.5 Pre-Release 3" – Minecraft.net, March 18, 2025.
  18. "Minecraft 1.21.5 Release Candidate 1" – Minecraft.net, March 20, 2025.
  19. "Minecraft 1.21.5 Release Candidate 2" – Minecraft.net, March 24, 2025.

Navigation