{{Infobox version
| title = Minecraft 1.21.2
| image = 1.21.2 banner.png
| image2 = Java Edition 1.21.2.png
| name = [[Bundles of Bravery]]
| edition = Java
| vernum = 1.21.2
| date = October 22, 2024
| jsonhash = 4bbdf99e16b7c3e7ecec0902b997eec23a217998
| clienthash = c7ac2d0d86f4ca416cab9064ff8a281852ad0c7b
| clientmap = ce0ed2eb99175df9ec5166324e3fdd1f87cee827
| serverhash = 7bf95409b0d9b5388bfea3704ec92012d273c14c
| servermap = ce1d4ab050af87c41fc3d51050ef6862385da784
| prevparent = 1.21
| prev = 1.21.1
| next = 1.21.3
| nextparent = 
}}
{{relevant guide|Java Edition guides/Bundles of Bravery}}

'''1.21.2''', the release of '''[[Bundles of Bravery]]''', is a [[game drop]] for {{JE}} released on October 22, 2024.<ref>{{mcnet|minecraft-java-edition-1-21-2|Minecraft Java Edition 1.21.2|October 22, 2024}}</ref>

It adds [[bundle]]s, more [[banner pattern]]s to match {{BE}}, and reorganizes [[rarity]] to better reflect gameplay. In addition, it introduces [[Winter Drop]] features to [[experimental gameplay]], including the [[pale garden]] and the [[creaking]], as well as new [[data component format#Upcoming components|data components]] that grant more options for item customization.

== Additions ==
{{Additions table
|Bundle
|White Bundle
|Light Gray Bundle
|Gray Bundle
|Black Bundle
|Brown Bundle
|Red Bundle
|Orange Bundle
|Yellow Bundle
|Lime Bundle
|Green Bundle
|Cyan Bundle
|Light Blue Bundle
|Blue Bundle
|Purple Bundle
|Magenta Bundle
|Pink Bundle
|Bordure Indented Banner Pattern
|Field Masoned Banner Pattern
}}

=== Items ===
; [[Banner pattern]]s
* Two new banner patterns have been added to achieve parity with {{BE}}:
** [[File:Field Masoned Banner Pattern JE1 BE2.png|32px]] [[Field masoned banner pattern]]
** [[File:Bordure Indented Banner Pattern JE1 BE2.png|32px]] [[Bordure indented banner pattern]]

; [[File:Bundle_JE2 BE2.png|32px]] [[Bundle]]
* A new item that can hold a mixed stack of up to 64 items.
* Crafted from a [[string]] and a piece of [[leather]].
{{Crafting Table
|B1 = String
|B2 = Leather
|Output = Bundle
}}
* Can be dyed into 16 colors. Once dyed, the color can not be reset to default.<ref>{{bug|MC-276814|||Invalid}}</ref>
{{Crafting Table
|A1 = Any Bundle
|B1 = Matching Dye
|Output = Matching Dyed Bundle
}}
* Items that stack up to 16 take up more space, while items that do not stack take up the entire bundle (except other bundles).
** [[Shulker box]]es can not be placed in bundles.
** Bundles can be placed in other bundles; this takes up 4 slots plus the number of slots already used by the inner bundle.
* Has a tooltip that shows the items inside.
** If a bundle has less than 8 item types inside, the tooltip shows all of them.
** Otherwise the tooltip shows the top 3 rows of items and the others are hidden below, always showing at least 12 item types.
* When holding a bundle in hand, the player can throw out one group of items onto the ground by pressing {{control|use}}.
* It is possible to select any of the visible items to pull out of the bundle.
** Pressing {{control|use}} takes the selected item, or the first item if nothing is selected.
** Using the scroll wheel selects a different item.
** When selecting an item to remove, the bundle icon shows that item poking out of the bundle.

=== Mobs ===
; [[File:Dolphin.png|32px]] [[Dolphin]]s, [[File:Glow Squid.png|32x32px]] [[glow squid]], [[File:Squid.png|32x32px]] [[squid]]
* Now have a baby variant to achieve parity with {{BE}}.

; [[File:Salmon.png|32px]] [[Salmon]]
* Now have small and large variants to achieve parity with {{BE}}.

=== Gameplay ===
; [[Death messages]]
* Added a new death message for when killed by a mace smash attack.
**'''{{ph|player/mob}} was smashed by {{ph|player/mob}}'''
**'''{{ph|player/mob}} was smashed by {{ph|player/mob}} with {{ph|item}}'''

; [[Sound]]s
* Added unique break, fall, hit, place, and step sounds for [[monster spawner]]s.
{{collapse
|title=The new sounds:
|content=
{{Sound table/Block/Monster spawner/JE}}
}}

=== General ===
; [[Experiments]]
* Added the [[Minecart Improvements]], [[Redstone Experiments]], and [[Winter Drop]] experimental data packs.

; [[Language]]s
* Added support for [[w:Høgnorsk|High Norwegian]].

; [[Options]]
* Added new video setting "Reduce FPS when" that controls when the game limits its maximum frame rate.
** Options include：
*** AFK: FPS limited to 30 if the game hasn't received input for 1 minute, and further limits FPS to 10 after 9 minutes. Also limits FPS to 10 when the game is minimized.
*** Minimized: Only limits FPS to 10 when the game is minimized.
** Defaults to AFK.
* Added new accessibility setting "Increase block outline contrast" that increases the contrast of the outline shown on blocks.

== Changes ==
=== Blocks ===
; [[Loom]]
* Now requires [[field masoned banner pattern]] and [[bordure indented banner pattern]] to craft corresponding banners.

; [[Nether portal]]
* Reduced teleport cooldown for [[minecart]]s and [[boat]]s from 15 seconds to 0.5 seconds.
* Reduced teleport cooldown for [[projectile]]s from 15 seconds to 0.1 seconds.

; [[Redstone torch]]
* The textures and models have changed.

; [[Redstone comparator]]s and [[redstone repeater]]s
* The powered models have changed to include the updated redstone torch textures and models.

; [[Slime block]]s
* Now cancel fall damage when sneaking.

=== Items ===
; [[Banner pattern]]s
* Added unique item textures for each banner pattern.
* Each banner pattern item now includes their pattern in their name instead of as a subtitle.

; [[Bee nest]]s and [[beehive]]s
* Now show information about their honey level and number of bees in their inventory tooltip.
* Now use their "full" texture when held or in the inventory, and they are at max level of honey.

; [[Bundle]]
* No longer experimental.
* Updated textures, models and sounds for bundles.
** Bundle icon has new models and textures.
** The bundle UI has new textures and scaling.
** Added a new sound for when failing to add an item to a bundle.
* Now only drop one group of items at a time when {{control|used}} in the hotbar, instead of all contents at once.

; [[Carpet]]
* Now shows the enchantment glint on [[llama]]s when enchanted.

; [[Carved pumpkin]]
* Equipping it on the player's head now removes the player marker from other players' [[map]]s.

; Dyed [[shulker box]]
* Can no longer be dyed twice with the same color.

; [[Ender pearl]]
* Thrown ender pearls now load and tick chunks around them in a 3x3 chunk area.
** Now ensure that the chunk they are in or travel into is always loaded and ticking.
** An ender pearl creates a ticket for chunk loading any time it moves into a new chunk, and also periodically every 10 seconds.
** They also load chunks when crossing to a new dimension, so that they can always continue to travel.
** This ensures that ender pearls can always land, and makes cross dimensional ender pearl traveling more predictable.
** Now unload when a player logs out, and reappear whenever that player logs back in, similar to how mounts currently behave.

; [[Milk bucket]]
* Drinking a milk bucket in Creative mode no longer gives the player an empty bucket.

; [[Redstone torch]]
* The textures and models have changed.

; [[Shield]]
* Enchanted shields now have the same reduced glint as enchanted armor.

; [[Smithing template]]s
* Are now named after their template type instead of the generic "Smithing Template" name.
** They instead specify that they are a smithing template through a subtitle in the hover text.

; [[Splash potion]]
* The calculation for the duration of the effect has been changed. Splash potions thrown at the player's feet now apply the effect for almost the same duration as when thrown at the head.<ref>{{bug|MC-276970}}</ref>

; [[Suspicious stew]]
* Recipes for suspicious stew are now shown in [[recipe book]].

; [[Wolf armor]]
* Now shows the enchantment glint on [[wolves]] when enchanted.

=== Mobs ===
; [[Bat]]
* Can now spawn at any height, not just below sea level, as long as it is dark enough and there is a solid block to spawn on.

; [[Bee]]
* Now wander around randomly for less time after exiting a nest/hive.
* If a bee has a known nest/hive, it travels less far from it, thus being less likely to get lost.
* Significantly increased the amount of time a bee can take to return to a known nest/hive before it gives up trying to return home.
* Bees are now a lot less likely to get stuck on corners or when they are close to a nest/hive they are trying to return to.
* Bees are also now a lot less likely to try and pathfind to a flower they cannot reach.

; [[Blaze]]
* Changed the texture for the bottom face of a blaze's rods from [[File:Blaze rods_JE1_(facing_NWU).png|32px]] to [[File:Blaze rods_JE2_(facing_NWU).png|32px]].

; [[Breeze]]
* No longer have a minimum distance required to attack a target.

; [[Squid]]
* There is a 5% chance of squids spawned in groups in the wild to be a baby squid.

; [[Wolf]]
* Can now also be fed cod, cooked cod, salmon, cooked salmon, tropical fish, pufferfish and rabbit stew to heal, breed them or speed up their growth.

=== Non-mob entities ===
; [[Projectile]]s
* [[Arrow]]s and [[trident]]s now bounce on the [[world border]] if hit.
* Other projectiles such as [[ender pearl]]s and [[snowball]]s no longer go through the world border.

=== World generation ===
; [[Trial chambers]]
* Added new variations to the hallways, including "Encounters": short challenges leading to a larger chamber.
* Numerous changes are made, such as removing the [[oak tree]] in <code>corridor/entrance_1</code> and tweaking <code>corridor/straight_6</code>{{info needed|Full list of changes?}}
* Beds in intersections now have their colors randomized.
* Replaced the empty chests at the entrance of chamber with a hopper and barrel to better show the players that these are meant for disposal and inventory management.

=== Gameplay ===
; [[Advancement]]s
* The Over-Overkill advancement now requires a smash attack.

; [[Creative]] mode
* Throwing items out of the inventory quickly in creative mode is now throttled.

; [[Damage#Drowning|Oxygen]] bar
* Added an empty state for air bubbles ([[File:Empty Bubble (icon).png|class=pixel-image|18px]]) along with a wobble when the player is drowning.
* Added a popping sound for when bubbles pop on the oxygen bar, increasing in pitch depending on the oxygen left.

; [[Raid]]s
* A triggered raid no longer starts if the raiders cannot find a place to spawn within a reasonable distance of the village they are trying to raid.
* Raiders must find a place to spawn no more than 96 blocks vertically above or below the village center, or a raid cannot start.
* It is now much less likely for raiders to not find a valid place to spawn when raiding.

; [[Rarity]]
* Reevaluated rarity values for the following items:

:'''Common'''
* {{ItemLink|End Crystal}}
* {{ItemLink|Golden Apple}}

:'''Uncommon'''
{{columns-list|colwidth=16em|
*{{BlockLink|Sniffer Egg}}
*{{ItemLink|Chainmail Helmet}}
*{{ItemLink|Chainmail Chestplate}}
*{{ItemLink|Chainmail Leggings}}
*{{ItemLink|Chainmail Boots}}
*{{ItemLink|Recovery Compass}}
*{{ItemLink|Disc Fragment 5}}
*{{ItemLink|Nautilus Shell}}
*{{ItemLink|Echo Shard}}
*{{ItemLink|Goat Horn}}
*{{ItemLink|Pottery Sherd}}
*{{ItemLink|Ominous Bottle}}
*{{ItemLink|Ominous Banner}}
*{{ItemLink|Netherite Upgrade}}
*{{ItemLink|Sentry Armor Trim}}
*{{ItemLink|Dune Armor Trim}}
*{{ItemLink|Coast Armor Trim}}
*{{ItemLink|Wild Armor Trim}}
*{{ItemLink|Tide Armor Trim}}
*{{ItemLink|Snout Armor Trim}}
*{{ItemLink|Rib Armor Trim}}
*{{ItemLink|Wayfinder Armor Trim}}
*{{ItemLink|Shaper Armor Trim}}
*{{ItemLink|Raiser Armor Trim}}
*{{ItemLink|Host Armor Trim}}
*{{ItemLink|Flow Armor Trim}}
*{{ItemLink|Bolt Armor Trim}}
*{{ItemLink|Music Disc 13}}
*{{ItemLink|Music Disc Cat}}
*{{ItemLink|Music Disc Blocks}}
*{{ItemLink|Music Disc Chirp}}
*{{ItemLink|id=music-disc-creator-music-box|Music Disc Creator (Music Box)}}
*{{ItemLink|Music Disc Far}}
*{{ItemLink|Music Disc Mall}}
*{{ItemLink|Music Disc Mellohi}}
*{{ItemLink|Music Disc Stal}}
*{{ItemLink|Music Disc Strad}}
*{{ItemLink|Music Disc Ward}}
*{{ItemLink|Music Disc 11}}
*{{ItemLink|Music Disc Wait}}
*{{ItemLink|Music Disc Relic}}
*{{ItemLink|Music Disc 5}}
*{{ItemLink|Music Disc Precipice}}
}}

:'''Rare'''
{{columns-list|colwidth=16em|
*{{ItemLink|Enchanted Golden Apple}}
*{{ItemLink|Trident}}
*{{ItemLink|Nether Star}}
*{{ItemLink|Ward Armor Trim}}
*{{ItemLink|Eye Armor Trim}}
*{{ItemLink|Vex Armor Trim}}
*{{ItemLink|Spire Armor Trim}}
*{{ItemLink|Wither Skeleton Skull}}
*{{ItemLink|Skull Charge Banner Pattern}}
*{{ItemLink|Thing Banner Pattern}}
*{{ItemLink|Music Disc Pigstep}}
*{{ItemLink|Music Disc otherside}}
*{{ItemLink|Music Disc Creator}}
}}

:'''Epic'''
* {{ItemLink|Elytra}}
* {{ItemLink|Dragon Head}}
* {{ItemLink|Silence Armor Trim}}

; [[Recipe book]]
* Now repeats the last selected recipe when a "selected" key is pressed (space or enter key).
* [[Shulker box]] coloring recipes are now shown in the recipe book.

=== General ===
; Performance
* Improved server performance when the render distance is high.
* Reduced performance impact when loading and generating chunks.
* Framerate has been improved when using higher render distances.
* Significantly reduced the performance impact when turning the camera.

; [[Realms]]
* Now uses the normal, fully featured world creation screen.
** Enables game rule customization.
** Enables data pack customization.
* Hardcore mode is now available in Realms and is accessible by creating a new world or recreating an existing one.
* The game mode for the last active world on a Realm are now visible on the main Realms screen if applicable.

; Reporting
* Added skin reporting reason "Sexually inappropriate" for skins that are graphic in nature relating to sexual acts, sexual organs, and sexual violence.
* Removed skin reporting reason "Defamation" due to lack of relevance for skins.
* Removed skin reporting reason "Threat of harm to others" due to already being covered by "Harassment or bullying" reporting reason.
* Added a text label above the name reporting description box to clarify that only the name of the player is subject to the report.

; [[UI]]
* Updated slot highlight so that item texture has better visibility.
** The previous textures have been added to Programmer Art resource pack.

== Experimental ==
=== Minecart Improvements ===
{{main|Minecart Improvements}}

==== Changes ====
; [[File:Minecart JE4 BE2.png|32px]] [[Minecart]]s
* Minecarts articulate their movement better when going fast, riding on the rail all the time.
** Minecarts now smoothly turn along with the track and are less likely to halt or derail.
* Can now jump better.
** They keep their vertical momentum when the track ends with a slope.
** Minecarts tilt to visually articulate while in the air.
** No rail grinding sound is played when minecarts are flying through the air.
* Can no longer be placed within another minecart by the player.
** Dispensers are allowed to stack minecarts.
* Can now consistently be placed next to each other along a track
* Can now pick up mobs more consistently when moving along a track
* Minecarts no longer forcefully snap to the center of a block when landing on a rail.
** Minecarts snap to corners along the diagonal, and snaps after being pushed by a piston.
** This allows for piston bolts and similar contraptions.
* Minecarts now more easily come to rest at opposing slopes.
* Minecarts no longer tilt during a short fall, or when they are falling straight down.
* Minecarts are now placed (or dispensed) with the correct rotation straight away when put on rails.
** They are also placed with the correct rotation onto slopes.
* Minecarts no longer phase through blocks on slopes when going up or down, they collide instead.

; [[Game rule]]s
* Added new gamerule <code>minecartMaxSpeed</code> that changes the maximum speed of minecarts.
** Defaults to <code>8</code> and goes up to <code>1000</code> blocks per second.
** Setting it to a specific value does not guarantee that a minecart reaches that particular max speed - there are built in air resistances and similar effects that the speed added through slopes or powered rails need to overcome.
** This gamerule only exists in worlds with the experiment Minecart Improvements enabled.

; [[Options]]
* Added a new accessibility setting that makes players follow the rotation of minecarts they ride.
** Defaults to off.
** Only has effect when within a world with the experiment Minecart Improvements enabled.

=== Redstone Experiments ===
{{main|Redstone Experiments}}

==== Changes ====
; [[Redstone wire]]
* The performance impact of redstone wire (connected blocks of redstone dust) has been improved.
* Now only triggers block updates on blocks that may receive power from the wire.
* Before a line of wire causes block updates, the new signal strength of all connected wires is set.
* The update order around redstone wire has been changed. 
* Updates now have a left-first preference, meaning the left side is updated first if both sides of a fork have equal power.
** This removes most of the random behavior.
** The remaining edge cases that are still random are situations where the wire gets powered from above or below without enough context.

=== Winter Drop ===
{{main|Winter Drop}}

==== Additions ====
===== Blocks =====
; {{Animate|Creaking Heart JE1 BE1.png; Active Creaking Heart JE1 BE1.png|32px}} [[Creaking heart]]
* A creaking heart is a “living” block generating in pale oak trees, covered on all sides by pale oak wood logs.
** It can spawn a creaking mob when it is nighttime, and it is placed between two correctly aligned pale oak log blocks.
** Is active during night and dormant during day.
* Sends a trail of particles toward the connected creaking when the creaking gets hit by the player.
** Particle speed is affected by the distance of the creaking from the heart block.
* Mining the block is most efficiently done with an axe, but it only drops when using a [[Silk Touch]] tool.
** When creaking heart block is destroyed, the connected creaking is removed.
* A [[redstone comparator]] that is attached to the creaking heart block outputs a signal strength dependent on the distance to the connected creaking.

; [[File:Invicon Pale Hanging Moss.png|32px]] [[Pale hanging moss]]
* Pale hanging moss generates naturally in the pale garden biome under the foliage of pale oaks.
** Pale hanging moss does not grow randomly but can be bonemealed to grow down.
* It only drops when cut with shears or destroyed using a tool with Silk Touch.

; [[File:Pale Moss Block JE1 BE1.png|32px]] [[Pale moss block]]
* Generates naturally in the pale garden biome.
** Pale moss blocks can be bonemealed to spread to compatible blocks.

; [[File:Pale Moss Carpet JE1 BE1.png|32px]] [[Pale moss carpet]]
* Generates naturally in the pale garden biome.
** When placed, pale moss carpet grows up to two blocks on the solid faces of any block that borders it.
** Pale moss carpet can be bonemealed to grow to full on all solid faces of any block that borders it.
* Is more efficient to destroy with a Sword.

; [[File:Pale Oak Leaves JE1.png|32px]] [[Pale oak leaves]]
* A new type of leaves.
* The color of the leaves stays the same regardless of the biome it is placed in. <ref>{{bug|MC-277208|||WAI}}</ref>

; [[File:Pale Oak Log JE1 BE1.png|32px]] [[Pale oak log]]
* A new type of log, as well as a stripped variant.
* Can be used to craft pale oak wood and planks.

; [[File:Pale Oak Planks JE1 BE1.png|32px]] [[Pale oak planks]]
* A new type of plank.
* Can be used to craft pale oak [[boat]]s, [[boats with chests]], [[button]]s, [[door]]s, [[fence]]s, [[fence gate]]s, [[hanging sign]]s, [[pressure plate]]s, [[sign]]s, [[slab]]s, [[stairs]], and [[trapdoor]]s.

; [[File:Invicon Pale Oak Sapling.png|32px]] [[Pale oak sapling]]
* A new type of sapling.
* Can be placed in [[flower pot]]s.

; [[File:Pale Oak Wood JE1 BE1.png|32px]] [[Pale oak wood]]
* A new type of wood, as well as a stripped variant.
* Can be used to craft pale oak planks.

===== Mobs =====
; [[File:Creaking JE1.png|x32px]] [[Creaking]]
;<!-- Technically the creaking is a dummy mob the actual mob with the properties described is called the transient creaking. I don't know how to mention that though due to formatting. Please don't change until a unanimous consensus is met. -->
* Spawns at night in the pale garden biome if there is a creaking heart block that has been generated in a pale oak tree.
** Is not affected by light levels but spawns and despawns based on day/night cycle.
* It follows and attack players up to 32 blocks away from its creaking heart block.
** An activated creaking does not move if a player is looking at it.
** A player wearing a carved pumpkin on their head can look at creaking without it freezing in place.
* Creaking is invulnerable to damage.
** When hit, a particle trail is shown between the creaking and the creaking heart block it is connected to.
** When the creaking heart block the creaking is connected to is destroyed, the creaking is removed, with no loot or experience dropped from the mob.
* Cannot enter [[boat]]s without the use of glitches.
* Creakings spawned from a creaking heart can not go through portals without the use of glitches.
* Creakings spawned from a creaking heart can not be named with a [[name tag]].
* The creaking spawn egg spawns a creaking mob that is not connected to a creaking heart. The creaking mob persists through day and night, loads and saves, and takes damage from attacks and other damage sources. It has one point of health (half a heart).
** Creakings summoned from the creaking heart cannot be spawned with a spawn egg, nor can they be summoned with commands. They can only exist as a part of the creaking heart block.

===== World generation =====
; {{BiomeLink|Pale garden}}
* A new biome that contains pale oaks and pale moss blocks/carpet.
* It is a variation of the [[dark forest]] biome, with pale oak trees instead of dark oak trees.
* Animal mobs do not spawn naturally.
* The grass in the pale garden has a desaturated, grayish look, the sky is a smoky gray, and water is a pale light blue.
** Any tinted leaves places in the biome also get a desaturated, gray look.

; {{EnvLink|Pale oak}}
* A new type of tree that can be grown from pale oak saplings in a 2x2 configuration.
** Generates naturally in the pale garden biome. 

===== General =====
; [[Sound]]s
* Ambient sounds in the pale garden biome do not come from the biome settings but are generated by blocks found in the biome.
** Pale hanging moss emits subtle atmospheric sounds when it is attached to pale oak logs and pale oak leaves.
** Creaking heart block emits a set of eerie sounds when it is active during night and surrounded by logs on all sides.

; [[Tags]]
* Added the <code>#pale_oak_log</code> block and item tags.

==== Changes ====
===== Mobs =====
; [[Illager]]s and [[ravager]]s
* Are now afraid of the creaking.

; [[Parrot]]s
* Can now imitate the creaking.

===== Gameplay =====
; [[Advancement]]s
* The pale garden is now a requirement for "Adventuring Time".
* Breaking the creaking heart grants "Monster Hunter", and is now a requirement for "Monsters Hunted".

===== General =====
; [[Tag]]s
* Added <code>pale_garden</code> to the <code>#is_overworld</code>, <code>#is_forest</code>, <code>#stronghold_biased_to</code> and <code>#has_structure/trial_chambers</code> biome tags.
* Added the pale oak wood types to their respective tags.
* Added <code>pale_oak_log</code> to the <code>#overworld_natural_logs</code> block tag.
* Added <code>pale_moss_block</code>, and <code>pale_moss_carpet</code> to the <code>#mineable/hoe</code> block tag.
* Added <code>pale_moss_carpet</code> to the <code>#combination_step_sound_blocks</code>, and <code>#sword_efficient</code> block tags.
* Added <code>pale_oak_chest_boat</code> to the <code>#chest_boats</code> item tag.

== Technical ==
=== Additions ===
==== Entities ====
; [[TNT]] and [[minecart with TNT]]
* Added optional field <code>explosion_power</code>.
** Defaults to 4.
** For TNT minecarts, field value is added to speed-based explosion power.

==== Commands ====
; {{cmd|rotate}}
* New command to rotate entities.
* Syntax:
** {{cmd|rotate <target> <rotation>}}
** {{cmd|rotate <target> facing <facingLocation>}}
** {{cmd|rotate <target> facing entity <facingTarget> [<facingAnchor>]}}
* Parameters:
** <code>target</code>: The entity to rotate.
** <code>rotation</code>: Two rotation values in degrees denoting horizontal and vertical rotation.
*** May use relative (~) coordinate notation to specify rotation relative to current context rotation.
** <code>facingLocation</code>: The coordinates of a location in the world for the rotated entity to face.
** <code>facingTarget</code>: An entity for the rotated entity to face.
** <code>facingAnchor</code>: Specifies the anchor of the <code>facingTarget</code> entity to rotate toward - feet or eyes (by default feet).

; [[Data component format|Data components]]
<code>minecraft:consumable</code>
<div class="treeview">
:* {{nbt|compound|minecraft:consumable}}: If present, this item can be consumed on use.
:** {{nbt|float|consume_seconds}}: The amount of seconds it takes for a player to consume the item. Defaults to 1.6.
:** {{nbt|string|animation}}: The animation used during consumption of the item. Must be one of {{cd|none|eat|drink|block|bow|spear|crossbow|spyglass|toot_horn|brush|d=or}}. Defaults to <code>eat</code>.
:** {{nbt|string}}{{nbt|compound|sound}}: Sound event, the sound used during and on completion of the item's consumption. Defaults to <code>entity.generic.eat</code>.
:*** {{nbt inherit/sound event|sounds}}
:** {{nbt|bool|has_consume_particles}}: Whether consumption particles are emitted while consuming this item. Defaults to <code>true</code>.
:** {{nbt|list|on_consume_effects}}: An optional list of effects that take place as a result of consuming this item.
:*** {{nbt|compound}}: A single consume effect.
:**** {{nbt|string|type}}: The kind of consume effect. Must be one of {{cd|apply_effects|remove_effects|clear_all_effects|teleport_randomly|play_sound|d=or}}.
:**** ''If '''type''' is <code>apply_effects</code>'':
:***** {{nbt|list|effects}}: A list of [[effect]] instances applied once consumed.
:****** {{nbt|compound}}: A single effect.
:******* {{nbt|string|id}}: The ID of the effect.
:******* {{nbt|byte|amplifier}}: The amplifier of the effect, with level I having value 0. Optional, defaults to 0.
:******* {{nbt|int|duration}}: The duration of the effect in [[tick]]s. Value -1 is treated as infinity. Values 0 and values less then -2 are treated as 1. Optional, defaults to 1 tick.
:******* {{nbt|boolean|ambient}}: Whether or not this is an effect provided by a beacon and therefore should be less intrusive on the screen. Optional, defaults to <code>false</code>.
:******* {{nbt|boolean|show_particles}}: Whether or not this effect produces particles. Optional, defaults to <code>true</code>.
:******* {{nbt|boolean|show_icon}}: Whether or not an icon should be shown for this effect. Optional, defaults to <code>true</code>.
:***** {{nbt|float|probability}}: The probability the above effects are applied once consumed. Defaults to 1.0.
:**** ''If '''type''' is <code>remove_effects</code>'':
:***** {{nbt|list}}{{nbt|string|effects}}: A set of effects removed once consumed, as either a single ID or list of IDs.
:**** ''If '''type''' is <code>clear_all_effects</code>'': Clears all effects of the consumer.
:**** ''If '''type''' is <code>teleport_randomly</code>'':
:***** {{nbt|float|diameter}}: The diameter that the consumer is teleported within. Defaults to 16.0
:**** ''If '''type''' is <code>play_sound</code>'':
:***** {{nbt|string}}{{nbt|compound|sound}}: The sound event played once when consumed.
:****** {{nbt inherit/sound event|sounds}}
</div>
:* e.g. <code>consumable={consume_seconds:3.0, animation:'eat', sound:'entity.generic.eat', has_consume_particles:true, on_consume_effects:[{type:'minecraft:clear_all_effects'}]}</code>


<code>minecraft:damage_resistant</code>
<div class="treeview">
:* {{nbt|compound|minecraft:damage_resistant}}: If specified, this item is invulnerable to the specified damage types when in [[Item (entity)|entity form]] or equipped.
:** {{nbt|string|types}}: A [[Tag#Damage type tags|damage type tag]] prefixed with <code>#</code>.
</div>
:* e.g. <code>damage_resistant={types:"#minecraft:is_fire"}</code>


<code>minecraft:death_protection</code>
<div class="treeview">
:* {{nbt|compound|minecraft:death_protection}}: If present, this item protects the holder from dying by restoring a single [[health]] point.
:** {{nbt|list|death_effects}}: An optional list of effects that are applied when the item protects the holder.
:*** {{nbt|compound}}: A single revive effect.
:**** {{nbt|string|type}}: The kind of revive effect. Must be one of {{cd|apply_effects|remove_effects|clear_all_effects|teleport_randomly|play_sound|d=or}}.
:**** ''If '''type''' is <code>apply_effects</code>'':
:***** {{nbt|list|effects}}: A list of [[effect]] instances applied once revived.
:****** {{nbt|compound}}: A single effect.
:******* {{nbt|string|id}}: The ID of the effect.
:******* {{nbt|byte|amplifier}}: The amplifier of the effect, with level I having value 0. Optional, defaults to 0.
:******* {{nbt|int|duration}}: The duration of the effect in [[tick]]s. Value -1 is treated as infinity. Values 0 or less than -2 are treated as 1. Optional, defaults to 1 tick.
:******* {{nbt|boolean|ambient}}: Whether or not this is an effect provided by a beacon and therefore should be less intrusive on the screen. Optional, defaults to <code>false</code>.
:******* {{nbt|boolean|show_particles}}: Whether or not this effect produces particles. Optional, defaults to <code>true</code>.
:******* {{nbt|boolean|show_icon}}: Whether or not an icon should be shown for this effect. Optional, defaults to <code>true</code>.
:***** {{nbt|float|probability}}: The probability the above effects are applied once revived. Defaults to 1.0.
:**** ''If '''type''' is <code>remove_effects</code>'':
:***** {{nbt|list}}{{nbt|string|effects}}: A set of effects removed once revived, as either a single ID or list of IDs.
:**** ''If '''type''' is <code>clear_all_effects</code>'': Clears all effects of the holder.
:**** ''If '''type''' is <code>teleport_randomly</code>'':
:***** {{nbt|float|diameter}}: The diameter that the holder is teleported within. Defaults to 16.0.
:**** ''If '''type''' is <code>play_sound</code>'':
:***** {{nbt|string}}{{nbt|compound|sound}}: The sound event played once when revived.
:****** {{nbt inherit/sound event|sounds}}
</div>


<code>minecraft:enchantable</code>
<div class="treeview">
:* {{nbt|compound|minecraft:enchantable}}: If present, and applicable enchantments are available, items with the component can be enchanted in an enchanting table.
:** {{nbt|int|value}}: Positive integer, a higher value allows enchantments with a higher cost to be picked.
</div>
:* e.g. <code>enchantable={value:15}</code>


<code>minecraft:equippable</code>
<div class="treeview">
:* {{nbt|compound|minecraft:equippable}}: If present, this item can be equipped in the specified slot.
:** {{nbt|string|slot}}: The slot to put the item on. Can be one of <code>head</code>, <code>chest</code>, <code>legs</code>, <code>feet</code>, <code>body</code>, <code>mainhand</code>, or <code>offhand</code>.
:** {{nbt|string}}{{nbt|compound|equip_sound}}: Sound event to play when the item is equipped. Defaults to <code>item.armor.equip_generic</code>.
:*** {{nbt inherit/sound event|sounds}}
:** {{nbt|string|model}}: The [[resource location]] of the equipment model to use when equipped. If not specified, falls back to rendering as the item itself when in the head, offhand or mainhand slot (or no rendering if not applicable). The directory it refers to is <samp>assets/<namespace>/models/equipment/<id>.json</samp>
:** {{nbt|string}}{{nbt|list|allowed_entities}}: Entity ID, entity tag, or list of entity IDs to limit which entities can equip this item. Defaults to all entities.
:** {{nbt|boolean|dispensable}}: Whether the item can be dispensed by using a [[dispenser]].<ref group="note">If the item type has special dispenser behavior, this has no effect.</ref> Defaults to <code>true</code>.
:** {{nbt|boolean|swappable}}: Whether the item can be equipped into the relevant slot by {{control|using}} the item. Defaults to <code>true</code>.
:** {{nbt|boolean|damage_on_hurt}}: Whether this item is damaged when the wearing entity is damaged. Defaults to <code>true</code>.
:** {{nbt|string|camera_overlay}}: The [[resource location]] of the overlay texture to use when equipped. The directory this refers to is <samp>assets/<namespace>/textures/<id></samp>.
</div>
:* e.g. <code>equippable={slot:'chest',equip_sound:'item.armor.equip_chain',camera_overlay:"minecraft:misc/pumpkinblur"}</code>.


<code>minecraft:glider</code>
<div class="treeview">
:* {{nbt|compound|minecraft:glider}}: If present, this item allows players to glide (as with [[elytra]]) when equipped.
</div>
:*e.g. <code>glider={}</code>.


<code>minecraft:item_model</code>
<div class="treeview">
:* {{nbt|string|minecraft:item_model}}: The [[resource location]] that references model <samp>/assets/<namespace>/models/item/<id></samp>
</div>
:* e.g. <code>item_model="minecraft:diamond_sword"</code>


<code>minecraft:repairable</code>
<div class="treeview">
:* {{nbt|compound|minecraft:repairable}}: Items with this component can be repaired, if damageable, in an anvil using the specified ingredient.
:** {{nbt|string}}{{nbt|list|items}}: The items that can be used to repair this item. Can be an item ID or an item tag with a <code>#</code>, or a list of item IDs.
</div>
:* e.g. <code>repairable={items:'stick'}</code>


<code>minecraft:tooltip_style</code>
<div class="treeview">
:* {{nbt|string|minecraft:tooltip_style}}: The [[resource location]] of the custom sprites for the tooltip background and frame that references textures <samp>/assets/<namespace>/textures/gui/sprites/tooltip/<id>_background</samp> and <samp>/assets/<namespace>/textures/gui/sprites/tooltip/<id>_frame</samp>.
</div>
:*e.g. <code>tooltip_style='minecraft:special_sword'</code>.


<code>minecraft:use_cooldown</code>
<div class="treeview">
:* {{nbt|compound|minecraft:use_cooldown}}: If present, this item applies a cooldown to all items of the same type when it has been used.
:** {{nbt|float|seconds}}: The duration of the cooldown in seconds.
:** {{nbt|string|cooldown_group}}: The unique [[resource location]] to identify this cooldown group. If present, the item is included in a cooldown group and no longer shares cooldowns with its base item type, but instead with any other items that are part of the same cooldown group. Optional.
</div>
:*e.g. <code>use_cooldown={seconds:1.5, cooldown_group:"minecraft:custom_weapon"}</code>


<code>minecraft:use_remainder</code>
<div class="treeview">
:* {{nbt|compound|minecraft:use_remainder}}: If present, replaces the item with a remainder item if its stack count has decreased after use.
:** {{nbt inherit/itemnoslot}}
</div>
:* e.g. <code>use_remainder={id:'minecraft:stick', count:1}</code>

; [[Attribute]]s
* Added <code>tempt_range</code> attribute that can be used to change the range, in blocks, at which temptable mobs can be tempted.

; [[Game rule]]s
* Added the <code>disablePlayerMovementCheck</code> game rule.
** Controls the player movement speed restriction.
** This behaves the same as the <code>disableElytraMovementCheck</code> rule, but applies irrespective of flying with elytra.
** Default to <code>false</code>.

; [[Particles (Java Edition)|Particles]]
* Added particles <code>block_crumble</code> and <code>trail</code>.
* <code>block_crumble</code> has the following options:
** <code>block_state</code>: The [[block states]] of the block.
* <code>trail</code> has the following options:
** <code>color</code>: Color of the trail.
** <code>target</code>: Where the trail points at.

==== [[Data pack]]s ====
; [[Goat horn instrument definition|Goat horn instruments]]
* Are now data-driven.
* They are now defined in a data pack registry folder called <code>instrument</code>.
** Like other registries, changing this content in data packs is considered experimental and requires a full world re-load to take effect.
** Fields:
*** <code>sound_event</code>: The sound event the instrument plays.
*** <code>range</code>: The maximum range (in blocks) at which the sound can be heard.
*** <code>use_duration</code>: The amount of time (in seconds) the instrument is considered in use after triggering, which also serves as its cooldown.
*** <code>description</code>: A text component used as the description of the instrument in item tooltips.

; [[Loot table]]s
* Chickens laying eggs is now controlled by a loot table found at <code>gameplay/chicken_lay</code>.
* Armadillos randomly dropping scutes is now controlled by a loot table found at <code>gameplay/armadillo_shed</code>.
* The loot given by villagers is now controlled by two additional loot tables:
** <code>gameplay/hero_of_the_village/unemployed_gift</code> - used if the villager is unemployed.
** <code>gameplay/hero_of_the_village/baby_gift</code> - used if the villager is a baby.

; [[Painting variant definition|Painting variants]]
* Added new optional fields <code>author</code> and <code>title</code>, holding text components to be displayed in the creative menu tooltip.
** This replaces previous mechanism where those values were derived from variant name.
* Author tooltip has been removed for <code>earth</code>, <code>wind</code>, <code>fire</code>, <code>water</code> and <code>wither</code> variants.

; [[Predicates]]
* Added a new field in the player sub-predicate, <code>input</code>, that can be used to detect which movement keys the player is pressing.
** If specified the predicate matches with the corresponding keybind that the player is pressing; it supports detecting the following input:
*** <code>forward</code>: boolean (optional).
*** <code>backward</code>: boolean (optional).
*** <code>left</code>: boolean (optional).
*** <code>right</code>: boolean (optional).
*** <code>jump</code>: boolean (optional).
*** <code>sneak</code>: boolean (optional).
*** <code>sprint</code>: boolean (optional).
* Added <code>minecraft:salmon</code> entity sub-predicate.
** Fields:
*** <code>variant</code>: one of small, medium, large.

; [[Recipe]]s
* Added the <code>crafting_transmute</code> recipe type.
** When matched, output copies the input item stack, changing the item type but preserving all stack components.
** This completely replaces <code>crafting_special_shulkerboxcoloring</code>.
** Used for shulker boxes and bundles.
** Fields:
*** <code>category</code> - crafting book category, one of building, redstone, equipment, misc
*** <code>group</code> - optional string
*** <code>input</code> - ingredient for item to copy
*** <code>material</code> - additional ingredient to use
*** <code>result</code> - item type to use for output

; [[Tag]]s
* Added the <code>bats_spawnable_on</code> block tag.
** Controls the blocks that bats can spawn on.

* Added the following item tags:
** <code>brewing_fuel</code>: Controls what items that can be used as fuel in a brewing stand.
** <code>bundles</code>: Includes all bundle items.
** <code>duplicates_allays</code>: Controls what items can be used to duplicate allays when dancing.
** <code>furnace_minecart_fuel</code>: Items that can be used to refuel a furnace minecart.
** <code>gaze_disguise_equipment</code>: Items that can be equipped to disguise the player looking for other mobs.
** <code>map_invisibility_equipment</code>: Items that can be equipped to hide the player marker on other players' maps.
** <code>panda_eats_from_ground</code>: Controls what items a panda picks up from the ground and eat.
** <code>piglin_safe_armor</code>: Items that, when worn by a player, cause [[piglin]]s to not get angry.
** <code>shulker_boxes</code>: Includes all shulker boxes.
** <code>villager_picks_up</code>: Items that a villager tries to pick up from the ground.
** Added new tags to control which items can be used to craft and repair various tool sets:
*** <code>wooden_tool_materials</code>
*** <code>iron_tool_materials</code>
*** <code>gold_tool_materials</code>
*** <code>diamond_tool_materials</code>
*** <code>netherite_tool_materials</code>
** Added new tags to control which items can be used to repair various armor sets:
*** <code>repairs_leather_armor</code>
*** <code>repairs_iron_armor</code>
*** <code>repairs_chain_armor</code>
*** <code>repairs_gold_armor</code>
*** <code>repairs_diamond_armor</code>
*** <code>repairs_netherite_armor</code>
*** <code>repairs_turtle_helmet</code>
*** <code>repairs_wolf_armor</code>
* Added the <code>mace_smash</code> damage tag.
* Added the <code>boat</code> entity type tag.

==== [[Resource pack]]s ====
; Core [[shader]]s
* New <code>lightmap</code> shader that is responsible for rendering the lightmap texture.

; High Contrast resource pack
* Added textures for the following:
** Frame and background textures for tooltips.
** Slot background and highlight textures for the bundle tooltip (however, it's an empty transparent texture, and has no <code>[[mcmeta]]</code> file next to it).

=== Removals ===
==== Commands ====
; [[Data component format|Data components]]
* Removed the <code>minecraft:fire_resistant</code> data component in favor of the new <code>minecraft:damage_resistant</code> data component.

==== [[Data pack]]s ====
; [[Feature]]
* Removed unused <code>seagrass_simple</code> feature.

; [[Predicate]]s
* Removed the <code>minecraft:boat</code> entity sub-predicate, since boats no longer have variants.

==== [[Resource pack]]s ====
; Core [[shader]]s
* The <code>rendertype_entity_glint_direct</code> shader has been removed and replaced by <code>rendertype_entity_glint</code>.
* The <code>rendertype_entity_translucent_cull</code> shader has been removed and replaced by <code>rendertype_item_entity_translucent_cull</code>.

==== Servers ====
* Temporary option for ignoring connection errors on client side (<code>strictErrorHandling</code>) has been removed.

=== Breaking changes ===
==== Block entities ====
; Container locks
* The <code>Lock</code> field of containers has been renamed to <code>lock</code> and is now an [[Argument types#minecraft:item_predicate|item predicate]].
** Any items matching the predicate can open the container.

==== Entities ====
; Mobs
* When a [[mob]] converts from one type to another (ex: [[piglin]] to [[zombified piglin]]), some of the original mob's data gets transferred to the converted mob.
* Mobs that split into several mobs rather than converting from one type into another do not transfer the following properties:
** <code>ArmorDropChances</code>
** <code>ArmorItems</code>
** <code>fall_distance</code>
** <code>FallFlying</code>
** <code>HandDropChances</code>
** <code>HandItems</code>
** <code>HurtByTimestamp</code>
** <code>HurtTime</code>
** <code>Leash</code>
** <code>Motion</code>
** <code>OnGround</code>
** <code>Passengers</code>
** <code>Position</code>
** <code>Rotation</code>
** <code>SleepingX</code>
** <code>SleepingY</code>
** <code>SleepingZ</code>
* Some properties mentioned in {{bug|MC-88967}} are intentionally not transferred in any conversion:
** <code>Attributes</code>
** <code>Gossips</code>
** <code>Health</code>
** Loot tables
** <code>VillagerData</code>
** <code>Xp</code>

; [[Boat]]s and [[boats with chests]]
* The entity IDs for boats and boats with chests have been split into separate types, one per existing variant, instead of <code>Type</code> field. <!-- Should we have boats for the new wood type in this diagram, I would argue no as its showing a difference between versions and the new wood type is a experiment but -->
{|class="mw-collapsible wikitable"
! [[Java Edition data values|Old ID]]
! [[Java Edition data values|New ID]]
|-
| rowspan="9" | {{EntitySprite|boats}} <code>boat</code>
| {{EntitySprite|oak-boat}} <code>oak_boat</code>
|-
| {{EntitySprite|spruce-boat}} <code>spruce_boat</code>
|-
| {{EntitySprite|birch-boat}} <code>birch_boat</code>
|-
| {{EntitySprite|jungle-boat}} <code>jungle_boat</code>
|-
| {{EntitySprite|acacia-boat}} <code>acacia_boat</code>
|-
| {{EntitySprite|dark-oak-boat}} <code>dark_oak_boat</code>
|-
| {{EntitySprite|mangrove-boat}} <code>mangrove_boat</code>
|-
| {{EntitySprite|cherry-boat}} <code>cherry_boat</code>
|-
| {{EntitySprite|bamboo-raft}} <code>bamboo_raft</code>
|-
| rowspan="10" | {{EntitySprite|boats-with-chests}} <code>chest_boat</code>
|-
| {{EntitySprite|oak-boat-with-chest}} <code>oak_chest_boat</code>
|-
| {{EntitySprite|spruce-boat-with-chest}} <code>spruce_chest_boat</code>
|-
| {{EntitySprite|birch-boat-with-chest}} <code>birch_chest_boat</code>
|-
| {{EntitySprite|jungle-boat-with-chest}} <code>jungle_chest_boat</code>
|-
| {{EntitySprite|acacia-boat-with-chest}} <code>acacia_chest_boat</code>
|-
| {{EntitySprite|dark-oak-boat-with-chest}} <code>dark_oak_chest_boat</code>
|-
| {{EntitySprite|mangrove-boat-with-chest}} <code>mangrove_chest_boat</code>
|-
| {{EntitySprite|cherry-boat-with-chest}} <code>cherry_chest_boat</code>
|-
| {{EntitySprite|bamboo-raft-with-chest}} <code>bamboo_chest_raft</code>
|}

==== Commands ====
; {{cmd|ride}}
* No longer makes players ride [[leash knot]]s, [[lightning bolt]]s, and [[fishing bobber]]s.

; [[Data component format|Data components]]
* Re-arranged the priority of item stack components that modify the name of the item in the following way:
** The {{nbt|compound|title}} field in the <code>minecraft:written_book_content</code> component (the highest priority)
** The <code>minecraft:custom_name</code> component
** The new {{nbt|string|custom_name}} field in the <code>minecraft:potion_contents</code> component
** The <code>minecraft:item_name</code> component (the lowest priority)

; [[Attribute]]s
* Removed the <code>generic.</code>, <code>player.</code>, and <code>zombie.</code> prefixes from attribute IDs.

; <code>minecraft:food</code>
* Is now a data container that only holds the food stats applied when the item is consumed.
** This component no longer gives it the ability to be consumed, and can be done instead with the new <code>minecraft:consumable</code> item stack component.
** Removed the <code>eat_seconds</code>, <code>using_converts_to</code> and <code>effects</code> fields.

; <code>minecraft:item_name</code>
* Is now always present on every item.

; <code>minecraft:lock</code>{{info needed|Is there anything that was missed? Are all of these correct?}}
* Has been changed to the following format:
<div class="treeview">
:* {{nbt|compound|minecraft:lock}}: An [[Argument types#minecraft:item_predicate|item predicate]] representing the "key" to open this container item.
:** {{nbt|string}}{{nbt|list|items}}: The items that can be used to open this container. Can be an item ID or an item tag with a <code>#</code>, or a list of item IDs.
:** {{nbt|int}}{{nbt|compound|count}}: The range in the stack size of the item that can open this container. If specified as an integer, specifies the exact stack size of the item that can open this container.
:*** {{nbt|int|max}}: The maximum stack size of the item that can open this container.
:*** {{nbt|int|min}}: The minimum stack size of the item that can open this container.
:** {{nbt|compound|components}}: Items that exactly match these components can open this container.
:*** See [[Data component format]].
:** {{nbt|compound|predicates}}: An [[item sub-predicate]]. If an item matches these predicates, it can open this container.
</div>

; Particles
* The format of color fields in particle options is now more standardized:
** RGB fields can always be encoded either as a vector of floats (order: <code>[R,G,B]</code>) or as a single packed integer (order: <code>RGB</code>).
** ARGB fields can always be encoded either as a vector of floats (order: <code>[R,G,B,A]</code> or as a single packed integer (order: <code>ARGB</code>).
** Changed fields:
*** <code>minecraft:trail.color</code> (previously accepted only integer).
*** <code>minecraft:dust.color</code> (previously accepted only vector of floats).
*** <code>minecraft:dust_color_transition.from_color</code> (previously accepted only vector of floats).
*** <code>minecraft:dust_color_transition.to_color</code> (previously accepted only vector of floats).

; [[Raw JSON text format|Raw JSON text]]
* Invalid <code>selector</code> patterns in chat components now cause commands to fail to parse, instead of resolving to an empty string.

==== [[Data pack]]s ====
* The [[pack format]] version is now <code>57</code>.
** [[Trial spawner]] configurations in fields <code>normal_config</code> and <code>ominous_config</code> are now defined in registry <code>trial_spawner</code>.
*** This allows for easier customization of Trial Spawner configurations in data packs.
*** Inlined configuration data is still supported.
** Entities' rotation on the x axis is now clamped between -90 and 90.
** {{cmd|loot}} command now returns an error when trying to drop from a block without a loot table (like [[air]]).
** Removed the <code>bundle</code> feature flag and built-in datapack.

; [[Advancement definition|Advancements]]
* The trigger <code>minecraft:killed_by_crossbow</code> has been renamed to <code>minecraft:killed_by_arrow</code>.
** Now trigger whenever an arrow kills an entity, not just when fired from a crossbow.
** Has a new optional item predicate field, <code>fired_from_weapon</code>.
*** Can be used to match the item used to shoot the arrow.

; [[Enchantment definition|Enchantments]]
* Entity effect <code>damage_item</code> has been renamed to <code>change_item_damage</code> and now allows a negative value.

; [[Loot table]]s
* Special loot table empty has been removed and is no longer defined in vanilla data pack.
* Sheep now always uses a single loot table <code>entities/sheep</code>.
* Wool drops are still defined in sub-tables in <code>entities/sheep/{{ph|color}}</code>, but they are now just dispatched from the main table.
** Note: mutton drop is now controlled by the main table, while sub-tables are responsible only for wool drop.

; [[Recipes]]
* The <code>crafting_special_suspiciousstew</code> recipe type has been removed.
* The format used for recipe ingredients has been simplified and aligned with other fields that accept item lists (like item predicates):
** For items: <code>{ "item": "{{ph|item id}}" }</code> now becomes <code>"{{ph|item id}}"</code>.
** For tags: <code>{ "tag": "{{ph|tag id}}" }</code> now becomes <code>"#{{ph|tag id}}"</code>.
** Lists of items are still allowed, but tags can no longer appear in such list.
** Remaining restrictions:
*** <code>minecraft:air</code> can't appear anywhere in ingredient.
*** ingredient must have at least one tag or item.
** Fields <code>template</code>, <code>base</code> and <code>addition</code> in <code>smithing_transform</code> and <code>smithing_trim</code> recipes are now optional instead of accepting empty list.

==== [[Resource pack]]s ====
* All equipment-related textures were moved to subfolders of the <samp>textures/entity/equipment</samp> directory.
** Player armor textures were moved to <samp>textures/entity/equipment/humanoid</samp> and <samp>textures/entity/equipment/humanoid_leggings</samp>
*** <samp><material>_layer_1</samp> textures were renamed to <samp><material></samp>, and moved into the <samp>humanoid</samp> subdirectory.
*** <samp><material>_layer_2</samp> textures were renamed to <samp><material></samp>, and moved into the <samp>humanoid_leggings</samp> subdirectory.
*** <samp>leather_layer_1_overlay</samp> and <samp>leather_layer_2_overlay</samp> textures were renamed to <samp>leather_overlay</samp> in their respective subdirectories.
** <samp>wolf_armor</samp> and <samp>wolf_armor_overlay</samp> textures have moved to <samp>textures/entity/equipment/wolf_body/</samp> and were renamed to <samp>armadillo_scute</samp> and <samp>armadillo_scute_overlay</samp> respectively.
** <samp>turtle_layer_1</samp> has been renamed to <samp>turtle_scute</samp>.
** Llama decor textures were moved to <samp>textures/entity/equipment/llama_body</samp>
** Horse armor textures were moved to <samp>textures/entity/equipment/horse_body</samp>
** The elytra texture has been moved to <samp>textures/entity/equipment/wings/elytra</samp>
* Armor trim textures have also been moved to match the folder structure of the regular <code>equipment</code> textures.
** Textures in <samp>textures/trims/models/armor</samp> were divided between <samp>textures/trims/entity/humanoid</samp> and <samp>textures/trims/entity/humanoid_leggings</samp>
** For leggings textures, the <samp>_leggings</samp> suffix is dropped.

==== [[Shader]]s ====
; [[Shader]] program configurations
* Can now specify preprocessor define directives to be injected into the shader source, which can be referenced in the shader
** In the vanilla assets, this is used to combine multiple shaders into one program. For example, <code>rendertype_cutout</code>, <code>rendertype_solid</code>, <code>rendertype_cutout_mipped</code>, <code>rendertype_transluscent</code> and <code>rendertype_tripwire</code> now use the <code>terrain.fsh / .vsh</code> shaders. Define directives are used alongside an <code>#ifdef ALPHA_CUTOUT</code> statement in the <code>terrain.fsh</code> program to control if the shader program should discard transparent pixels.
** These can be specified in a new <code>defines</code> object in the root of the shader json file
<div class="treeview">
* {{nbt | compound}} The root tag
** {{nbt | compound | defines}} Preprocessor directives that can be used in shader programs.
*** {{nbt | compound | values}} Preprocessor directives with a value, can be used with <code>#ifdef</code>, <code>#ifndef</code> or directly as a variable in a program.
**** {{nbt | string | value}} A preprocessor directive. The key is the name of the directive. It can be anything, but must be in all capitals. Injected as <code>#define <key> <value></code> at the top of the shader source.
*** {{nbt | list | flags}} Flag directives, can be used with <code>#ifdef</code> or <code>#ifndef</code> in a program.
**** {{nbt | string | flag}} The name of a flag. This can be anything, but must be in all capitals. Injected as <code>#define <key></code> at the top of the shader source.
</div>
* The <code>blend</code> field has been removed, as it had no use
* The <code>attributes</code> field has been removed, instead the <code>Position</code> attribute is always bound
* The <code>vertex</code> and <code>fragment</code> shader references in program definitions are now namespaced ids
** A vertex shader <code><namespace>:<path></code> resolves to <code>assets/<namespace>/shaders/<path>.vsh</code>
** A fragment shader <code><namespace>:<path></code> resolves to <code>assets/<namespace>/shaders/<path>.fsh</code>

; Uniforms
* The <code>ChunkOffset</code> uniform in terrain shaders has been renamed to <code>ModelOffset</code>
* The <code>Time</code> uniform for post-processing shaders has been replaced with the <code>GameTime</code> uniform from core shaders 
* There are 9 new uniforms that are available in the new <code>lightmap</code> shader.
** <code>AmbientLightFactor</code>, <code>SkyFactor</code>, <code>BlockFactor</code>, <code>UseBrightLightmap</code>, <code>SkyLightColor</code>, <code>NightVisionFactor</code>, <code>DarknessScale</code>, <code>DarkenWorldFactor</code> and <code>BrightnessFactor</code>

; Imports
* The <code>#moj_import</code> directive now supports namespaced includes with absolute paths
** <code>#moj_import <<namespace>:<shader program>></code> resolves to <code>assets/<namespace>/shaders/include/<shader program></code>
* Relative imports are not namespaced and behave as before

; Post-processing effects
* Post-processing effect configurations have been moved from <code>assets/<namespace>/shaders/post</code> to <code>assets/<namespace>/post_effect</code>
* Vertex and fragment shaders used by post-processing effects have been moved from <code>assets/<namespace>/shaders/program</code> to <code>assets/<namespace>/shaders/post</code>.
* The format of post-processing effect configurations have been updated.
* <code>name</code> has been renamed to <code>program</code>, and is now a namespaced id of a shader program configuration.
** <code><namespace>:<path></code> resolves to <code>assets/<namespace>/shaders/<path>.json</code>.
* <code>intarget</code> and <code>auxtargets</code> have been merged into a single <code>inputs</code> list, as specified by the input format below.
* <code>outtarget</code> has been renamed to <code>output</code> with the same format.
* <code>targets</code> is now a map between target name and target definition, as opposed to a list
** Inline target names are replaced with an empty object
*** For example, <code>["swap"]</code> becomes <code>{"swap": {}}</code>
** Target definitions with a specific size remain the same, with the <code>name</code> field moved into the map key
*** For example, <code>[{"name": "potato", "width": 16, "height": 16}]</code> becomes <code>{"potato": {"width": 16, "height": 16}}</code>

; Inputs
* For both render targets and texture inputs, the following fields may be specified:
** {{nbt | string | sampler_name}} The prefix to set up both <code>_Sampler</code> and <code>_Size</code> uniforms.
** {{nbt | boolean | bilinear}} (default: false) If true, the input is sampled with a bilinear filter. For render targets, this replaces the removed <code>use_linear_filter</code> field on the pass definition.

* For inputs from a render target, the following fields may be specified:
** {{nbt | string | target}} The render target id, a namespaced id. Either a custom target id defined in the same file, or <code>minecraft:main</code> to reference the main screen target. This replaces the former <code>id</code> field, which was a free-form string.
** {{nbt | boolean | use_depth_buffer}} (default: false) Set to true to sample from the depth texture, false to sample from the color texture. This replaces the former <code>:depth</code> suffix applied to the target id.

* For inputs from a static texture, the following fields may be specified:
** {{nbt | string | location}} The location to a static texture file that can be sampled by the effect. As the <code>id</code> field did before, this resolves to a texture at <code>assets/<namespace>/textures/effect/<path>.png</code>
** {{nbt | int | width}} Width of the texture in pixels, must be a positive integer.
** {{nbt | int | width}} Height of the texture in pixels, must be a positive integer.

; External inputs
* The 'Fabulous' graphics transparency post-processing config no longer specifies the sorted framebuffers as custom targets.
** These are instead imported in the same way as the <code>minecraft:main</code> target.
** <code>translucent</code>, <code>itemEntity</code>, <code>particles</code>, <code>weather</code>, <code>clouds</code> are now <code>minecraft:translucent</code>, <code>minecraft:item_entity</code>, <code>minecraft:particles</code>, <code>minecraft:weather</code>, and <code>minecraft:clouds</code> respectively.
* The entity outline processing shader similarly imports the <code>minecraft:entity_outline</code> target

; Core shaders
* Some core shaders now share the same shader programs.
** The <code>rendertype_clouds</code> shader no longer gets the cloud texture sampler.
** The <code>rendertype_cutout</code>, <code>rendertype_solid</code>, <code>rendertype_cutout_mipped</code>, <code>rendertype_transluscent</code> and <code>rendertype_tripwire</code> shaders now use the <code>terrain.fsh</code> and <code>terrain.vsh</code> programs.
** The <code>rendertype_armor_cutout_no_cull</code>, <code>rendertype_breeze_wind</code>, <code>rendertype_energy_swirl</code>, <code>rendertype_entity_cutout_no_cull_z_offset</code>, <code>rendertype_entity_cutout_no_cull</code>, <code>rendertype_entity_cutout</code>, <code>rendertype_entity_no_outline</code>, <code>rendertype_entity_smooth_cutout</code>, <code>rendertype_entity_solid</code>, <code>rendertype_entity_translucent_emissive</code>, <code>rendertype_entity_translucent</code> and <code>rendertype_eyes</code> shaders now use the <code>entity.fsh</code> and <code>entity.vsh</code> programs.
* Most UI elements such as buttons, the inventory, menu backgrounds, the hotbar, etc are now rendered with <code>position_tex_color</code> instead of <code>position_tex</code>

=== Changes ===
==== [[Commands]] ====
; [[Data component format|Data components]]
<code>minecraft:potion_content</code>
* Added {{nbt|string|custom_name}} field.
** Used to generate the name of the item. The game uses the translation key <code>item.minecraft.<item type>.effect.<value></code>. 
** This name has a higher priority than the <code>minecraft:item_name</code> component, but lower than the <code>minecraft:custom_name</code> component.

==== [[Data pack]]s ====
; [[Enchantment definition|Enchantments]]
* Added support for enchantment trigger <code>projectile_spawned</code> in the following items:
** Snowballs
** Tridents
** Small fireballs
** Thrown potions
** Ender pearls
** Fishing rod
** Firework rocket
** Wind charge
** Eggs

; [[Loot table]]s
* Sheep shearing is now controlled by loot table found as <code>shearing/sheep</code>.
* Mooshroom shearing is now controlled by loot table found as <code>shearing/mooshroom</code>.
* Snow golem shearing is now controlled by a loot table found as <code>shearing/snow_golem</code>.
* The tool value (used for functions like <code>match_tool</code>) is now available for some additional loot table types.
** <code>archaeology</code> - used brush.
** <code>vault</code> - inserted key (not available when displaying items).
** <code>shearing</code> - shears.

; [[Predicate]]s
* New entity sub-predicate for testing sheep wool.
** Fields:
*** <code>sheared</code> - optional boolean.
*** <code>color</code> - optional wool dye color.

; [[Trim]]s
* All equippable items with an equipment model defined support rendering trims, based on the <code>trim</code> component.
* Trim textures are loaded from the appropriate folder in the <samp>textures/trims/entity</samp> directory.
** For example, armor with wolf_body layers fetch trims from <samp>textures/trims/entity/wolf_body</samp>

==== [[Resource pack]]s ====
* The version is now <code>42</code>.
* Removals and renames of some deprecated translations is now automatically applied at startup.
** Packs that used those translations need to re-add them manually.
** The full list is available in <code>/assets/minecraft/lang/deprecated.json</code> file inside the game's built [[w:JAR (file format)|JAR]] file.
* Added support for emissive layers for block models.
** Added an optional <code>light_emission</code> field to block model elements.
** Integer value between 0 and 15, with 0 being the default value of no light emitted.
** If specified and non-zero, this behaves as the minimum light level that the element can receive.
* The texture map for the arrow and bee stinger models have been updated.
* The model and UV mapping of the Dragon Egg have been updated.
* The tooltip background and frame may now be customized by replacing sprites:
** <code>tooltip/background</code>: The background of the tooltip
** <code>tooltip/frame</code>: The frame appearing around the tooltip
** Items with a custom <code>tooltip_style</code> component uses sprites with IDs:
*** <code><namespace>:tooltip/<path>_background</code> and <code><namespace>:tooltip/<path>_frame</code>
* The <code>nine_slice</code> GUI sprite scaling mode has a new optional boolean (true or false) property: <code>stretch_inner</code>
** If <code>true</code>, the inner parts of the texture (i.e. not the corners) are stretched instead of tiled
** If not specified, defaults to <code>false</code> as before.
* The appearance of a highlighted slot can now be customized by replacing sprites (this supports the use of animated textures):
** <samp><code>container/slot_highlight_front</code></samp>: The sprite to render in front of highlighted slots.
** <samp><code>container/slot_highlight_back</code></samp>: The sprite to render behind highlighted slots.
* Likewise, the appearance of a highlighted item within the bundle can be customized with the following sprites:
** <code><samp>container/bundle/slot_highlight_front</samp>.</code>
** <code><samp>container/bundle/slot_highlight_back</samp>.</code>
* The appearance of highlighted items has been updated to improve visibility of the item.
* The models and UV mapping related to the [[torch]] and blocks containing [[redstone torch]] have been updated.
** The "inverted" model now uses 6 separate faces creating the same effect as a model with a negative size.
** The UV layout for the inverted model was updated.
* Added texture and sound for tweaked air bubble UI.
** New texture added for empty air bubble.
** Sound added for when air bubble pops.
* Added <code>container/bundle/slot_background</code> texture for bundle slot background.

; [[Model]]s
* All [[Item (entity)|item]] models can now use the <code>broken</code> property in model overrides that was previously limited to just the [[elytra]].
** This has a value of 1 if the item has 1 durability left, or 0 otherwise.
* The appearance of equipment when equipped by players or certain mobs can now be customized by defining 'equipment models' in the [[resource pack]].
** [[Equipment]] model definitions are loaded from <code>assets/<namespace>/models/equipment/<path>.json</code>
*** These can then be referenced by the <code>equippable</code> component with a model id of <code>namespace:path</code>
** The model definition is an object with fields: <code>wolf_body</code>, <code>horse_body</code>, <code>llama_body</code>, <code>humanoid</code>, <code>humanoid_leggings</code>, <code>wings</code>
*** All fields are optional, and can be used to specify a list of layers for the given model layer type
*** Each field contains list of layer objects:
**** <code>texture</code>: namespaced texture location for this layer
***** <code>namespace:path</code> resolves to <code>assets/<namespace>/textures/entity/equipment/<layer_type>/<path>.png</code>
**** <code>dyeable</code>: object with fields (optional), specifying how this layer behaves when dyed (in the <code>dyeable</code> item tag, and has <code>dyed_color</code> component)
***** <code>color_when_undyed</code>: RGB color integer (optional)
***** If specified, this layer is tinted by the color contained in the <code>dyed_color</code> component
****** If the item is not able to be dyed or is not currently dyed, then it is tinted based on the color specified by <code>color_when_undyed</code>
****** If <code>color_when_undyed</code> is not specified and the item is not dyed, the layer is hidden
**** <code>use_player_texture</code>: boolean (default: <code>false</code>), true if this layer texture should be overridden by a texture given by the player
***** Only used for <code>wings</code> layers, which overrides with the player's custom elytra texture

==== Servers ====
; Network protocol
* Added <code>minecraft:client_tick_end</code> server-bound packet during play phase, sent when the client finishes processing its current tick.<!-- Changelog says Vanilla doesn't use it but it's wrong. -->
* Added ability for custom servers to override the order that players appear in the 'tab list'.
** This is controlled by a non-negative ordering index that is sorted highest to lowest.
* The client now shares the state of the 'Particles' limiter option to be used by custom servers.

; [[Hardcore]]
* Hardcore is now implemented properly in the server software.
** Prior to this, the <code>hardcore</code> option in [[server.properties]] only controlled whether the player can respawn after death. It could be changed independently the world's hardcore mode (set on the world creation screen), which only controlled whether the client is informed hardcore mode is enabled on the server (which in turn decided on the hearts texture and death screen) and forced hard difficulty.
** The world's hardcore mode is now used for controlling whether the player can respawn, informing the client that the server is hardcore mode and forcing hard difficulty.
** The <code>hardcore</code> option in server.properties is now only used for enabling the world's hardcore mode during world generation.

; [[server.properties]]
* Added the option <code>pause-when-empty-seconds</code>.
** When set to a positive value, causes the server to pause when no player has been online for that many seconds.
** Defaults to <code>60</code>.
* Removed the options: <code>spawn-animals</code> and <code>spawn-npcs</code>.
* Added the option <code>text-filtering-version</code>.
** Defaults to <code>0</code>.
** The purpose of this option was not announced.

; [[Realms]]
* Extended the <code>text-filtering-config</code> in order to support an internal migration for Realms profanity filtering.
** Servers currently utilizing the <code>text-filtering-config</code> can continue to do so without any changes.

==== General ====
; [[Telemetry]]
* Added some information about data pack structure (for example, data-driven registries) to generated reports.

== Fixes ==
{{fixes|fixedin=24w33a,24w34a,24w35a,24w36a,24w37a,24w38a,24w39a,24w40a,1.21.2 Pre-Release 1,1.21.2 Pre-Release 2,1.21.2 Pre-Release 3,1.21.2 Pre-Release 4, 1.21.2 Pre-Release 5, 1.21.2 Release Candidate 1
|;From released versions before 1.21
|379|{{cd|spawn-animals}} and {{cd|spawn-npcs{{=}}false}} removes all villagers and prevents summoning new mobs.
|1673|Several mobs can pop off paintings, item frames and leads and destroy minecarts, armor stands and anything in item form even when {{cd|mobGriefing}} is turned off.
|3266|The player's experience level overflows once it exceeds the integer limit.
|3697|TNT submerged in water can destroy item frames, paintings, armor stands, and other similar entities.
|4665|Anvil consuming two unbroken items of the same kind when renaming them.
|13246|On certain enchanted items, the anvil displays a "too expensive" message before attempting to repair, combine, or rename them
|14800|When zombie villagers, husks, drowned or zombified piglins are damaged, they spawn regular zombie reinforcements.
|16829|The horse armor model does not show the enchantment glint effect.
|38022|Order of rendering translucent block faces fails to update with camera position.
|39263|Cannot set horizontal motion for squid on land.
|49628|When in Spectator mode, the head overlay shows even if it is set not to show in the skin customization options.
|53602|Projectiles don't collide with the world border.
|54532|Sneaking while falling on Slime Blocks inflicts fall damage.
|58294|Squids and glow squids do not collide properly with solid blocks.
|59471|String can be duplicated using tripwire hooks.
|64265|Teleporting passengers does not dismount them.
|72494|In Statistics screen "m" is the same unit for both minutes and meters.
|73178|Villagers' "{{cd|CanPickUpLoot}}" tag cannot be set to zero.
|75494|Lead item drop is not affected by {{cd|doEntityDrops}} gamerule.
|86252|Shields can continue to block after entity changes dimensions due to client and server desync.
|88967|Most NBT tags are not kept when a mob converts to another mob.
|89883|Squid and glow squid collision error and rubberbanding.
|92875|Collisionless blocks ignore entities with high velocity.
|101376|Elytra appearance doesn't update in first-person mode; only in third-person.
|108323|Underlines in chat and {{cmd|/title}} command intersect each other, causing an ugly effect when fading.
|112257|Some NBT tags require the correct suffix.
|116618|Dropping items rapidly inside the "Survival Inventory" tab in creative mode deletes items.
|119369|Boats crash/break and can kill their passengers when falling certain distances.
|120417|The dragon egg block model is incorrect.
|121013|"{{cd|follow_range}}" attribute only targets mobs on (roughly) the same Y level.
|124331|Redstone lamps do not show on maps.
|125642|Bone meal is consumed when used on fern, grass and seagrass even if it cannot grow.
|127995|The player can use bone meal on sea pickles in situations where no sea pickles grows.
|129055|Issues breaking tripwire with shears.
|129298|Drowned don't chase the player if they are in 1 block deep water.
|129826|{{cd|["shade": false]}} is missing from potted cross models, resulting in most potted plants appearing darker than they should.
|130097|Tropical fish fin UV mapping is wrong.
|131215|Cannot teleport an entity that is in a boat.
|132804|Low follow range attribute also affects mobs' idle wandering range.
|133862|Optimize world screen backup button has inaccurate text.
|134626|Squids/glow squids bounce up and down in bubble columns, teleporting high up in the air.
|135898|Teams are not retained when a mob converts to another mob.
|135971|Can't use {{key|Ctrl}}+{{key|Q}} in crafting table.
|137053|The player cannot set the "{{cd|CanBreakDoors}}" NBT tag of drowneds to "{{cd|1b}}".
|144327|The bottom face texture of a blaze's rods is the same as their top face texture.
|144761|Animated texture interpolation ignores alpha channel during transition from/to transparent pixels.
|145656|Attribute "{{cd|follow_range}}" is not working for hostile mobs before they find the target.
|146805|Trader Llamas don't attack zombies, drowned, husks, zombie villager and illagers.
|148041|Two separate translation lines for the same thing, "Bells Rung" statistic.
|148982|Map color for wheat is incorrect.
|151828|Woodland mansion structure "{{cd|1x1_b3}}" has dark oak leaf block with persistent tag set to "false".
|154053|Trader llama spitting far distance when attacked.
|156579|Creative players can fly through portals when going quickly enough using elytra or Riptide trident.
|158389|Raid results in victory if it cannot find a valid spawn point.
|161913|Misalignment on edges/corners of clouds.
|162551|When shooting an arrow on top of a player in Creative mode, a closed shulker, or an invincible mob, the arrow glitches around on top of the entity.
|162713|Clouds are generated with offset to east and south.
|164258|Recipe book search field is not selected when clicking on the search icon.
|165182|Inventory/GUI textures no longer handle translucent pixels correctly.
|166880|Pufferfish spikes model seems to be broken.
|167242|Bed stays occupied after a lightning turns the villager sleeping in it into a witch.
|167906|Beehive items at full honey level do not appear with honey in inventory/as item/in hand.
|168329|Bees do not leave their hives in the Nether/End in some cases.
|168546|Bee nest/hive items have no lore.
|169660|{{cmd|teleport}} without {{cd|<targets>}} can change the entity's rotation
|170863|Dropping item stacks from the player's hotbar in any creative inventory tab other than "Survival Inventory" deletes items.
|174214|Fireworks for crossbow go through an entity if it is close to a player.
|174732|Semi-transparent status effect textures do not render correctly in the inventory or beacon UI.
|176937|Deleting items using the drop key while a tab is open in the Creative inventory plays hand animation, even if the item isn't dropped.
|177452|Unneeded faces inside repeater models.
|177453|Unneeded faces inside comparator models.
|179629|Faces in between cloud "blocks" can still render from outside of the cloud.
|180272|{{samp|en_us.json}} contains unused strings.
|182478|Mob armor generates starting with boots rather than helmet.
|182877|Piglins use one hand to hold a loaded crossbow.
|183518|High CPU usage on hypervisor host possibly due to excessive syscall usage by Minecraft server.
|183636|{{cd|follow_range}} attribute not working for piglins.
|185144|Item durability bar and all items render incorrectly in the villager trade UI.
|186362|Casting issue: Translucent block rendering breaks down at high distances.
|187920|Bees sometimes give up when returning home.
|188217|Bees circle above flowers that are covered by all sides.
|190163|Zoglin spawn eggs don't occasionally spawn baby zoglins on their own accord.
|190484|Sneaking players' name tags are partly invisible depending on what angle you're facing.
|191431|Player spectator head is invisible/does not render in the inventory after switching to "Fabulous!".
|195754|Illagers in raids continuously try and fail to pick up ominous banners if they can't reach them.
|196556|When projectiles (such as arrows and tridents) move too fast, they can't be teleported by portals and end gateways.
|196736|Hoglins break their leash when zombifying, despite zoglins being leashable.
|196964|Fall damage is reset when an entity converts to another entity.
|199238|Unneeded faces and missing cullface in dragon egg model.
|203748|Filled lava cauldrons are able to be put under water.
|204050|Subtitle for shooting amethyst blocks is "Block breaking".
|206074|Survival tab of Creative inventory desyncs if changed manually after an external change.
|206436|Stonecutter ignores anything over 64 when shift-clicking.
|207101|When a lingering potion lands on top of a player/mob, the area effect cloud spawns above the player/mob instead of inside it, rendering the lingering potion useless.
|209947|{{cd|minecraft:block/scaffolding_unstable}} has incorrect cullfaces.
|212213|Squids unable to be affected by Knockback enchantment.
|214625|Unlit redstone torches are unaffected by block shading / are evenly lit on all sides.
|214662|Redstone torches on repeaters and comparators are shaded differently from normal redstone torches.
|215332|Glow squids lack a baby variant.
|215752|Z-fighting with paintings and item frames in solid blocks.
|216016|Launching fireworks into a crystal sound block makes the breaking noise.
|219083|Hunger client/server desync when natural regeneration is off in peaceful mode.
|220360|Gifts given by baby villagers, nitwits and unemployed villagers when under the Hero of the Village effect are hardcoded.
|224035|Small dripleaf's model is inconsistent.
|224454|Entities don't recognize azaleas or flowering azaleas as obstacles when pathfinding.
|225060|Burning entity sound repeats every tick.
|225270|Goats can move armor stands even with {{cd|mobGriefing}} turned off.
|225417|Squids and glow squids can break free from leads when attacked.
|225422|Squids and glow squids do not move smoothly in the water compared to other aquatic mobs.
|226038|Scheduled functions are part of weather in profile results.
|226687|Sea Level is assumed to be Y{{=}}63 in numerous parts of Minecraft.
|227139|Sky fog stutters.
|228070|Name tags rendered in blocks have letters brighter depending on your angle.
|230317|Lead disappears when mooshroom cow is sheared.
|233603|HUD / Hotbar rendering can heavily impact frame rate performance.
|234318|Small dripleaf stems intersect its leaves.
|235953|Entity eyes render type doesn't blend non-black transparent pixels properly.
|239581|Bees do not become angry at the closest player when hive is exploded.
|240001|The white and red highlights from recipe book previews render above potion tooltips.
|240948|Filled powder snow cauldrons are able to be put under water.
|241873|Ravagers can move armor stands even with {{cd|mobGriefing}} turned off.
|243413|Some explorer maps are missing their icon.
|244720|"Erased cached data" button in Optimize World is not labeled in the right order when using {{key|tab}}.
|245510|Piglin brute's {{cd|generic.follow_range}} attribute functions oddly.
|247238|Sky fog is not cylindrical.
|249067|Ominous banners lose their rarity color when renamed using anvils.
|249414|The "Shader {{cd|rendertype_entity_translucent_emissive}} could not find sampler named {{cd|Sampler2}} in the specified shader program." warning is logged in the game output console when launching the game.
|249901|Frogs don't play the frog eating sound when given a slime ball.
|250924|Goat horns are missing sounds.
|256422|Some words within some strings use right single quotation marks instead of apostrophes.
|257309|Monster spawner tries to spawn wardens and zoglins when the difficulty is Peaceful.
|257318|Non-transparent toasts and some buttons that should be transparent in custom Resource Pack.
|258971|{{cd|ClientboundUpdateRecipesPacket}} breaks after multiple recipes use big tags.
|259376|{{cd|ServerboundMovePlayerPacket}}'s xRot can have invalid value.
|259651|<code>updateSkyBrightness()</code> is not used client-side, causing multiple issues.
|259687|"Distance by Elytra" statistic is approximately doubled.
|259798|Block hitboxes cause semi-transparent blocks not to render behind them in lower than "Fabulous" graphics settings.
|259936|Equipping armor in hand via right-click equips entire stack.
|260013|Baby llama's head has incorrect scale method.
|260537|Tree growth can replace leaves that have the {{cd|persistent}} block state set to {{cd|true}}.
|260858|The word "ticks" within a "{{cmd|schedule}}" command feedback message is always pluralized.
|260859|Some words within a tick profiling feedback message are always pluralized.
|260860|Some words within some chat delay strings are always pluralized.
|260913|The word "blocks" within some "{{cmd|spreadplayers}}" command feedback messages is always pluralized.
|260914|"{{cmd|spreadplayers}}" strings for entities consist of inconsistent noun usage.
|261666|Armor given to villagers is lost when they convert to zombie villagers.
|261691|Bees get stuck while trying to pathfind to inaccessible flowers.
|262112|Wither skull's bounding box is wrongly positioned in the first tick, and cannot be selected with volume checks in commands.
|262175|The "{{cd|advancements.adventure.trim_with_any_armor_pattern.description}}" text contains incorrect English grammar.
|262498|Underground seagrass feature files exist despite never generating.
|262598|Tripwire textures in the tripwire hook "{{cd|attached: true}}" state have a wrong black rendering when the tripwire hook is attached to a non-transparent block.
|262652|Dragon egg's side texture is mapped strangely as of 1.8 (and the model is also unoptimized).
|263838|{{cd|doLimitedCrafting}} gamerule does not work on suspicious stew.
|263858|Text displays are rendered differently compared to name tags.
|264886|Geode features ignore the {{cd|invalid_blocks}} field.
|264986|Item count of fuel slot affects the way smelting recipe book moves ingredients.
|265399|Players' heads are incorrectly positioned while exiting the swimming/crawling state when other players are on screen.
|265554|Aaron Cherof listed as "Aaron Cherof\u00a0" in {{samp|credits.json}}.
|265693|Movement does not reset a player's last action time.
|265695|The feedback for setting the idle timeout to 0 minutes does not reflect the actual behavior.
|265703|{{cd|BrushableBlock}}'s codec misspells "completed" as "comleted".
|265990|Burning arrows can light candles and cakes with candles outside the world border.
|266441|Multiple trial chambers templates have missing or incorrect blocks.
|266480|Breeze can jump on top of honey blocks.
|266494|Jump Boost does not affect the breeze's jump.
|266949|Monster spawner tries to spawn breezes when the difficulty is Peaceful.
|267006|The "Distance Flown" statistic rapidly increases when standing in ender dragon's hitbox.
|267107|Spawners unsuccessfully try to summon hostile entities on Peaceful difficulty.
|267308|Profiling with {{key|F3+L}} while game is frozen spams output with errors.
|267401|All the player skin report's category descriptions use the chat message ones.
|267838|Projectile yaw rotations have incorrect interpolation, causing flickering.
|268045|The name of entity argument is plural in query literal node of the {{cmd|experience}} command.
|268220|Zoglins ignore monster spawning requirements when spawning naturally.
|268241|The bottom faces of vaults aren't culled when covered by blocks.
|268518|Attribute {{cd|generic.luck}} only affects players.
|268528|Cave vines can be pollinated infinitely (instead of limit of 10).
|268645|Scheduling a macro function silently fails.
|268929|{{samp|pack.png}} does not support translucent pixels.
|269083|Effect background texture in inventory renders translucent pixels as opaque.
|269152|{{cd|nine_slice}} texture scaling causes ridiculous levels of lag when used on small textures.
|269352|The breeze rod uses an incorrect model for holding.
|269375|Breeze's wind charge attack can move or break armor stands when {{cd|mobGriefing}} is disabled.
|269376|Breeze fires wind charge from center of hitbox.
|269428|Mace fall damage multiplier does not apply to mobs.
|269440|Text fields render translucent pixels as opaque.
|269441|Difficulty lock button renders translucent pixels as opaque.
|269445|Some empty slot icons render translucent pixels as opaque.
|269447|Hover text background box cannot be retextured.
|269528|Recipe book tabs are rendered over items held by the mouse cursor.
|269549|Items held in cursor are rendered behind recipe book UI elements.
|269622|Previous/Next Page buttons render translucent pixels as opaque.
|269627|Toasts render translucent pixels as opaque.
|269656|Feeding parrots poison while holding mace grants Over-Overkill challenge.
|269715|Food won't be eaten when the component {{cd|food.eat_seconds}} is less than 0.05.
|269738|Recipe book cannot quick-move oversized item stacks into applicable recipe slots.
|269751|Advancement frames render translucent pixels as opaque.
|269814|Can’t feed fish to wolves.
|269832|Gamemode switcher sprites render translucent pixels as opaque.
|269834|Statistics screen sprites render translucent pixels as opaque.
|269851|Breeze idle animations are different than Bedrock Edition.
|269873|Egg laying drop from chickens is hardcoded.
|269895|Breezes missing higher fidelity jump animation from Bedrock Edition.
|269936|Transferable list (resource pack, data pack) screen buttons render translucent pixels as opaque.
|269937|World list buttons render translucent pixels as opaque.
|269996|Custom names of interaction entities render at wrong location.
|270051|Recipe book button renders translucent pixels as opaque.
|270113|Trial spawner {{cd|ominous_config}} doesn't save setting values to default.
|270183|Lingering potions do not give effects when hit on the target's head.
|270254|Item slot highlight effect cannot be retextured.
|270299|New data pack component crafting doesn't work with suspicious stews.
|270314|"Use a Bundle" toast pops up repeatedly if player constantly left-clicks on a bundle while holding an item.
|270348|Some slime trial spawners in trial chambers won't spawn slimes without player intervention.
|270510|{{cd|youJustLostTheGame}} is not the first item in the mappings.
|270518|Scrollers in block UIs render translucent pixels as opaque.
|270519|"Error" textures in block/entity GUIs do not support translucent textures.
|270563|Furnace, blast furnace and smoker smelting progress and burn time indicators do not support translucent textures.
|270564|Brewing stand fuel, bubbles and progress sprites do not support translucent textures.
|270570|TPS chart uses OS locale specific number formatting.
|270571|{{cmd|tick}} command uses OS locale specific number formatting.
|270614|A trapdoor in {{cd|chamber_8}} is rotated the wrong way.
|270640|Anvil text field does not support translucent textures.
|270641|Crafter UI sprites do not support translucent pixels.
|270678|Tabs in recipe book and Creative inventory do not support translucent pixels.
|270680|Buttons in the beacon GUI do not support translucent pixels.
|270692|Textures for empty slots do not support translucent pixels.
|270696|Traps are generated behind walls in trial chambers.
|270697|Stonecutter recipe buttons render translucent pixels as opaque.
|270698|Loom recipe buttons render translucent pixels as opaque.
|270726|Advancement backgrounds render translucent pixels as opaque.
|270741|Realms main menu icons do not render translucent pixels correctly, but accessibility/language icons do.
|270742|Displays don't rotate properly between {{cd|179}} and {{cd|180}}.
|270764|Recipe book buttons and icons do not render translucent pixels correctly.
|270765|Bundle background does not handle translucent pixels correctly.
|270775|Ominous vaults sometimes fail to generate.
|271113|Bees occasionally freeze right before they enter the hives.
|271191|Poor saving performance due to large amount of item frames.
|271826|Armor default attribute modifier component can't be removed.
|271961|Parity Issue: No empty bubbles on the oxygen bar and popping sound.
|272020|Players' capes don't move with the yaw of their bodies when swinging.
|272414|Redundant calculation causes 2x lag during explosions.
|272506|Fast switching between servers causes disconnect.
|;From 1.21
|271486|The tree in the "{{cd|entrance_1}}" room of trial chambers is not removed.
|271628|Enchantment effect "{{cd|projectile_spawned}}" doesn't trigger for fishing rods and tridents.
|272207|Trial chambers no longer generate a bed in the secret room nearing the entrance.
|272327|Attribute effects not properly postfixed with slot name.
|272345|Some trial spawners don't have an extra breeze out at once when ominous.
|272603|Riding an entity into the end fountain skips the credits.
|272643|Items containing {{cd|using_converts_to}} cannot be stacked with the original items after restarting the world.
|272649|After a chest with the item component "{{cd|container_loot}}" is opened, it appears on the subsequent pick block.
|272766|When riding a minecart through a portal, the direction the player is facing after they go through the portal is not the same as when they entered.
|272802|Ender pearls deal no damage to their owners after switching dimensions and landing.
|272804|The mining fatigue animation plays in reverse.
|272805|Command blocks made from pick block still do not activate when placed near sources of power.
|272821|Wind charges incorrectly negate fall damage.
|272932|Auto-save text in the pause menu is rendered at the wrong position.
|272946|The block outline is nearly invisible for some blocks.
|273076|Breeze immediately forgets the player once line of sight is lost, even through transparent blocks.
|273239|Trial spawners rapidly change block state when switching gamerule "{{cd|doMobSpawning}}" from false to true.
|273263|Attributes are retained even if destroyed by "{{cd|damage_item}}".
|273281|"{{cd|projectile_spawned}}" enchantment component runs predicates and effects on projectiles before all of their data has been assigned.
|273288|Dropping a stack of items while in the Creative mode inventory deletes them.
|273300|Horse armor and wolf armor swap from off-hand to main hand upon pressing the Use Item/Place Block key.
|273311|Taking near {{cd|Float.MAX_VALUE}} damage from mob attack through commands on Hard causes NaN Absorption and Health.
|273328|Stars are smaller than supposed to.
|273329|Drinking milk buckets in Creative mode gives empty buckets.
|273361|Entities teleported to the player from a force loaded chunk are not rendered.
|273377|Blocks can be edited without having a debug stick in the player's hand.
|273400|Baby zombified piglin chicken jockeys immediately teleport.
|273427|Respawn anchor loses charges when returning from the End.
|273464|Incorrect partial tick during screen render.
|273489|Sneaking players' name tags are barely visible.
|273578|Interaction entities position passengers incorrectly.
|273601|The Channeling enchantment no longer functions on tridents without an owner.
|273629|Adding effects with an {{cd|effects_changed}} advancement causes a packet error ({{cd|ConcurrentModificationException}}) if it was triggered by milk.
|273662|Trial spawners cannot spawn silverfish at all/have unusually long delays between spawns.
|272670|Crash while saving entity NBT - {{cd|Cannot encode empty ItemStack}}.
|273672|When {{cd|spectatorsGenerateChunks}} is set to false, the player cannot stop spectating an entity without running {{cmd|spectate}}.
|273745|Soul Speed momentum resets when jumping on soul sand.
|273758|Ominous item spawner's animation breaks if the {{samp|level.dat}} "Time" value is over a certain number.
|273771|Passengers can glitch into walls when their mounts are killed.
|273811|Ender pearls don't teleport the player if they haven't been in the pearl's dimension after relog.
|273812|Intersection chests in trial chambers not generating correctly.
|273822|The words "forwards" and "backwards" within two movement key bind strings aren't spelled in American English.
|273828|Movement predicate is incorrect for stationary players until either mouse is moved or one second elapses.
|273848|Players can spawn underwater again in 1.21.
|273850|Shield enchantment glint is too bright to clearly see banner patterns.
|273914|Client game options that do not constitute sending a network packet send one anyway.
|273939|Capes clip through the player when taking knockback.
|273960|The NBT data stored in the world affects copying a decorated pot in Creative mode.
|274030|Item stacks with a count over 99 cause the player to get kicked from their world in Creative mode.
|274244|{{cd|minecraft:villager_plantable_seeds}} tag does not allow farmer villagers to pick up items.
|274371|Depleting a respawn anchor doesn't play any sound.
|274372|{{cd|using_item}} advancement trigger keeps being activated even after the item stops being used, after teleporting to another dimension.
|274400|Dispensers firing a wind charge play the crafter crafting world event, showing incorrect particles beneath the block.
|274519|Minecraft resaves all maps with every autosave.
|274657|Ominous banner's orange name is handled as a custom text color, rather than as a rarity.
|274708|Exiting the end portal first time removes player attribute modifiers.
|274852|"{{cd|item_name}}" component has priority over signed book title.
|274911|If the raid begins more than 112 blocks above the ground, all illagers are summoned and the player wins.
|274960|Registries allow duplicate entries.
|;From 1.21.1
|275792|Bottom faces of torches and soul torches are not culled against solid blocks.
|275919|issues with hit detection/registration in PvP since server switch to 1.21.
|275998|Menu blur turns glowing outlines black.
|276005|The text of sneaking players' name tags is rendered completely invisible or barely visible when the "Text Background Opacity". accessibility option is set to high values.
|276007|Players' name tags that are behind blocks or entities are rendered invisible or partly invisible depending on the angle you're facing.
|276134|Can't scroll in Creative inventory while hovered over the bundle.
|276433|{{cd|set_enchantments}} function removes enchantments component from books.
|276459|Item display rotation wrapping does not interpolate cleanly.
|276852|Shulker boxes can be colored in the same color they are made of.
|;Private bugs
|273555|Using a crossbow enchanted with Quick Charge 0 crashes the game.<ref>https://web.archive.org/web/20240619090548/https://bugs.mojang.com/browse/MC-273555</ref>
}}

== Video ==
{{yt|Fyf9gibpX1c}}
{{slicedlime|7UE7M1-XbPk|https://youtu.be/-n7DOa_Obek?si&#61;igaAGWugbZvhvm6_}}

== See also ==
* [[Bedrock Edition 1.21.40]]

== Notes ==
{{notelist}}

== References ==
{{reflist}}

== Navigation ==
{{Navbox Java Edition versions|1.2x}}

[[de:1.21.2]]
[[es:Java Edition 1.21.2]]
[[fr:Édition Java 1.21.2]]
[[ja:Java Edition 1.21.2]]
[[pt:Edição Java 1.21.2]]
[[ru:1.21.2 (Java Edition)]]
[[uk:1.21.2 (Java Edition)]]
[[zh:Java版1.21.2]]
