Minecraft: Java Edition 26.3
새로운 기능, 변경 사항과 버그 수정 내역
이 업데이트의 목차 231개 항목
Wilderness Bound is out now in Minecraft Java Edition! Pack your supplies and set off on an expedition into the dappled forest where the trails end and adventure begins. Seek out abandoned camps, build outposts among the poplar trees, sleep under the stars on straw beds, and share campfire stories atop cushions. Just remember that the wilderness rewards the prepared - and maps are lighter than regrets!
Happy camping!
New Features
- Added Dappled Forest Biome
- Added Poplar Trees
- Added fallen Poplar Trees
- Added Red Poplar Leaves, Orange Poplar Leaves, and Yellow Poplar Leaves blocks
- Added Poplar wood set
- Added Shelf Mushrooms
- Added Red Shrubs
- Added Abandoned Camp structures
- Added new Explorer Maps
- Added Cushions
- Added Straw Beds
- Added Wool Stairs and Wool Slabs for all Wool blocks
- Added Concrete Stairs and Concrete Slabs for all Concrete blocks
- Players in spectator mode can now interact with portals to teleport
- Improvements to Realms, including the ability to create and manage Invite Codes
- Added Gothic language support
Dappled Forest Biome
- A new type of forest biome which can be found near cold biomes
- Poplar Trees and fallen Poplar Trees generate here
- Shelf Mushrooms can be found here, placed on Poplar Trees and fallen Poplar Trees
- Red Shrubs generate here
- The following passive and neutral mobs spawn in the Dappled Forest, using their cold variants where applicable:
- Sheep
- Chicken
- Cow
- Pig
- Rabbit
- Fox
- A Dappled Forest variant of the new Abandoned Camp structure can be found here
Poplar Trees
- A new type of tree which comes in three color variations:
- Red Poplar Leaves
- Orange Poplar Leaves
- Yellow Poplar Leaves
- Each variant of the tree has its own variant of falling leaf particles matching the color of the leaves
- Poplar Leaves drop Poplar Saplings which will randomly grow into any of the three different variants
- Poplar Saplings can be found in trades with the Wandering Trader
- Shelf Mushrooms and Leaf Litter naturally generate on or around Poplar Trees
- The trunk of the trees are made of Poplar Logs
- Poplar Logs can be crafted into a new set of Poplar wood blocks
Shelf Mushroom
- A new type of mushroom that generates on Poplar Trees and fallen Poplar Trees
- Can be found in two sizes, small and large
- A small Shelf Mushroom can be grown into a large Shelf Mushroom by using Bone Meal
- A large Shelf Mushroom drops two Shelf Mushroom items when broken
- Can be used like other mushrooms to make Stews
- Can be found in trades with the Wandering Trader
- Shelf Mushrooms have a slight bounciness when stepped on, similar to Beds
- The Shelf Mushroom makes a bouncing sound when a living entity bounces on it
Red Shrub
- A new type of decorative plant block that can be found in small patches in the Dappled Forest
- Can be used in the Composter
- Using Bone Meal on a Red Shrub grows a Red Shrub in a random adjacent space if possible
Abandoned Camp Structure
- A new kind of structure which can be found in the following biomes:
- Meadow
- Cherry Grove
- Forest
- Birch Forest
- Old Growth Birch Forest
- Flower Forest
- Windswept Forest
- Dappled Forest
- Taiga
- Snowy Taiga
- Old Growth Spruce Taiga
- Old Growth Pine Taiga
- Sparse Jungle
- Bamboo Jungle
- Swamp
- Savanna
- Wooded Badlands
- Pale Garden
- Each of these biomes has its own variant of the structure with a design based on the biome
- Certain structure pieces are generic for all biome variants of the structure
- Various Chests and Barrels with loot can be found at Abandoned Camps
Cushion
- The Cushion is an item that the player can place in the world and interact with to sit on
- Can be crafted in 16 colored variants
- Cushions are crafted by using 3 Wool Slabs of the same color
Cushion Placement Rules
- A Cushion can be placed on any flat surface
- Cushions always align horizontally to the grid, but vertically sit on top of the supporting surface
- Cushions cannot be moved by pistons
- Cushions break if the supporting block is removed
- Cushions do not have collision and can overlap with other objects (except other Cushions)
Straw Bed
- The Straw Bed is a new type of bed which can be used to sleep through the night without setting your spawn point
- It can only be used once and will be destroyed after use
- It cannot be used in the Nether or the End and will be destroyed if you try to sleep on it there
- It is crafted by using 3 Hay Bales and will give you 4 Straw Beds
- There's a new statistic in the Statistics window for the amount of times you've slept in a Straw Bed
Wool Stairs and Wool Slabs
- Each colored Wool block now has a new Stair and Slab variant
- Wool Stairs and Wool Slabs can be used like other Wool blocks to dampen vibrations

Concrete Stairs and Concrete Slabs
- Each colored Concrete block now has a new Stair and Slab variant
- Concrete Slabs and Stairs can also be crafted using a Stone Cutter
Abandoned Camp Explorer Maps
- New Explorer Maps have been added to the Abandoned Camps
- Added maps showing the location of other Abandoned Camps in the following biomes:
- Bamboo Jungle
- Cherry Grove
- Birch Forest
- Dappled Forest
- Flower Forest
- Pale Garden
- Swamp
- Windswept Forest
- Added maps for the following structures:
- Ancient City
- Trial Chambers
- Mineshaft
- Desert Pyramid
- Jungle Pyramid
- Warm Ocean Ruins
- Woodland Mansion
Realms
- Realm owners can now create and manage Invite Codes
- Each Realm can have up to five Invite Codes
- Invite Codes can be configured to be active/inactive and deleted
- The expiration of an Invite Code can also be configured
- Players can now easily join a Realm by entering an Invite Code in a new "Join Realm" screen, found in the Realms main menu
- Added render distance and simulation distance sliders to the Realm configuration settings
- Added a new Realms introduction screen showcasing Realms key features
- Accessible from the "Add Realm" button
- Automatically shown when entering Realms if a trial is available

Changes
- The Main Menu now has an updated background panorama showing the new Dappled Forest biome with an Abandoned Camp
- Removed fallen leaf particles from Spruce Trees
- Suspicious Stews can now be crafted with 2 of any mushroom
- Mushroom Stew can now be crafted with 2 of any mushroom
- The player icon on maps has been updated to always show the direction the player is facing
- New Villager trades, unlocked from a Villager leveling up their profession, will now update even if the player is in the process of trading with them
- Persistent mobs' random walk/swim behaviors will now deactivate when players are not nearby, in the same way as non-persistent mobs
- Replaced the current "Improved Transparency" approach with a new order-independent transparency algorithm which is expected to be much better at solving translucency issues
- Added a rebindable debug key combination "F3 + X" to toggle "Improved Transparency"
- When using a Shield together with a Hoe or a Shovel, raising the Shield will take precedence over tilling and path making
- Changed the Adventure Mode icon in the Game Mode Switcher to the Buried Treasure Map
- Improvements to performance when trying to locate structures
- Improvements to chunk generation performance
Explorer Maps
- Explorer Maps are now their own items instead of renamed Filled Maps, and each has its own icon:
- Ocean Monument Map
- Woodland Mansion Map
- Buried Trial Chambers Map
- Jungle Pyramid Map
- Swamp Hut Map
- Desert Village Map
- Plains Village Map
- Savanna Village Map
- Snowy Village Map
- Taiga Village Map
- Buried Treasure Map
- Buried Ancient City Map
- Buried Mineshaft Map
- Desert Pyramid Map
- Abandoned Camp Map
- Warm Ocean Ruins Map
- These items cannot be obtained from the Creative inventory
- Existing Explorer Maps in old worlds are converted to the matching new item on load
- The following Explorer Maps have been renamed to have more consistent naming
- Ocean Monument Explorer Map → Ocean Monument Map
- Swamp Hut Explorer Map → Swamp Hut Map
- Trial Chambers Explorer Map → Buried Trial Chambers Map
- Woodland Mansion Explorer Map → Woodland Mansion Map
- Jungle Pyramid Explorer Map → Jungle Pyramid Map
- Explorer Maps can still be cloned in a Crafting Table, and the copies keep their own item type
- Explorer Maps and Buried Treasure Maps can no longer be zoomed out, neither in a Crafting Table nor at a Cartography Table
- Buried Treasure Maps could previously be zoomed out at both
- Explorer Maps could previously be zoomed out at a Cartography Table
- Only maps in the
#minecraft:extendable_mapstag can be zoomed out
- Map and Empty Map have new icons

Order-independent Transparency (OIT)
- Generally, translucent surfaces need to be rendered back-to-front to avoid visual issues
- In order to do so, the translucent geometry has to be sorted before rendering
- This is very expensive and even with perfect sorting of individual triangles, intersecting triangles are not possible to render correctly
- Before this release, the "Improved Transparency" video setting attempted to mitigate translucency-related visual issues
- It did this by rendering different types of translucent objects (entities, particles, water, etc.) to different textures that were later combined to create the final image
- This allowed us to fix some of the issues with some performance impact
- However, it introduced some other less noticeable issues
- Now, the "Improved Transparency" video setting will instead enable a new order-independent transparency algorithm (which we will refer to as OIT)
- This makes it possible to render translucent objects in any order without sorting
- It fixes all existing major translucency-related visual issues (such as certain objects disappearing when viewed through translucent objects)
- However, the algorithm is an approximation, and so it introduces some new minor visual artifacts (such as the color of clouds being somewhat incorrect when viewed through multiple layers of translucent surfaces)
- We expect OIT to have a higher performance impact than the previous implementation of "Improved Transparency"
- When "Improved Transparency" is turned off, the behavior hasn't meaningfully changed and the game will still prioritize performance over correctness while sorting geometry as necessary
Developer's Note: Special thanks to Rubén Osorio López, Jozufozu, and the Minecraft modding community in general for sharing the information that helped us to deliver this.
Minor Tweaks to Blocks, Items, and Entities
- Endermen will now take damage from projectiles if they're riding something
- Teleporting randomly after eating a Chorus Fruit now shows particles into the direction of the teleportation
- Endermen and Shulkers no longer teleport onto Bedrock
- Armadillos no longer try to roll up when submerged in liquids
- Data set on a Spawn Egg will now transfer to a Mob Spawner when a player with operator permissions uses the Egg on the Spawner
- Sherds dropped from breaking a Decorated Pot will now preserve data, for example custom names
- Enchantments now apply to items being damaged from protecting an undead mob from the sun
- Teleporting with an Ender Pearl now resets the momentum of the player being teleported
UI
- Removed the Raw Input mouse setting
- Mouse input now always uses relative mouse mode while playing in-game
- Key bindings now use physical keys instead of keyboard-layout-specific key codes
- Borderless Fullscreen is now the default fullscreen mode
- Switching between Borderless and Exclusive Fullscreen no longer requires restarting the game
- The cursor is now confined to the window while Exclusive Fullscreen is active
- The minimum window size is now 320 by 240 pixels
- On macOS, holding a key while entering text now displays the native accent and candidate popup
- On Linux systems, the game will now use and prefer Wayland natively if available
- Fixed an issue where Realm owners could not select automatic region preference as their Realm region
- Added a "Quit Shortcuts" option in Controls settings, which controls whether keyboard shortcuts can close the game (Alt + F4 on Windows/Linux, Cmd + Q and Cmd + W on macOS)
- On by default
- On macOS, added a "Right Click Emulation" option in Controls settings, which treats Control + left-click as a right-click
- Off by default
- On macOS, added a "Menu/Dock Visibility" option in Video Settings, which controls whether the macOS Menu bar and Dock can be revealed by moving the mouse to the edge of the screen while in fullscreen
- Added support for Realms to use additional server regions in Canada, Mexico, South Africa, and Arizona, USA if they become available in the future
Debug Overlay
- The debug overlay now supports a separate GUI scale from the rest of the game
- This is customizable through the Debug Options screen,
F3 + F6 - The default scale is "Auto", which tries to stay at a higher resolution than normal
- Another option is "Unchanged", which matches your regular GUI scale
- The rest of the options work the same as in the normal "GUI Scale", controlling the scale directly
- This is customizable through the Debug Options screen,
- Added a "player_speed" debug entry that displays the speed of the player in blocks per tick
- The debug overlay now shows the display refresh rate
World Options
- The World Options button has been moved to where the Open to Lan button used to be, accessible from the pause menu
- The World Options screen is divided into two sections: "General" and "Multiplayer"
- The "General" section contains the following options:
- Default Game Mode: the default game mode of the world (equivalent to the
/defaultgamemodecommand) - Personal Game Mode: your active game mode in the current world (equivalent to the
/gamemodecommand, or F3 + F4) - Allow Commands: Controls whether you can use commands in this world or not
- Difficulty: Controls the difficulty of the world (equivalent to the
/difficultycommand) - Edit Game Rules: Opens the Game Rules screen, which allows you to view and edit the game rules of the world
- Restrictions: View your restrictions in the world
- Default Game Mode: the default game mode of the world (equivalent to the
- The "Multiplayer" section contains the following options:
- LAN: changes the multiplayer scope of the world
- Port: the port number to use when opening the world to LAN
- Command Access: controls whether players that join your world can use commands or not
- Force Game Mode: controls whether other players' game mode is forced to match the default game mode of the world or not
- The "General" section contains the following options:
- The World Options screen is divided into two sections: "General" and "Multiplayer"
- The Online button used to access the Online Options screen will now always be shown in the Options menu instead
Accessibility
- Subtitles now point to the most recent sound in range
Creative Inventory
- Reordered mineral item and block ordering to have non-tiered ingredients up first, then tiered ingredients that craft into equipment last
- Ingredients
- Non-tiered minerals
- Unrefined tiered minerals
- Refined tiered minerals
- Nuggets
- Ingots
- Building Blocks
- Non-tiered mineral blocks and variants
- Refined tiered mineral blocks and variants
- Copper block family
- Copper Blocks continue to be pushed to the end of the order in Building Blocks since they have a large list of content
- Ingredients
- Improved the ordering of the Natural Blocks tab so that all inner ordering of group content sequentially progresses from Overworld → Nether → End to stay consistent with other tabs
Technical Changes
- The Data Pack version is now 121.0
- The Resource Pack version is now 97.1
- Some log lines that server software might look out for have been removed
- The Minecraft Server Management Protocol can be used instead
- If you are missing access to specific events, please create a feature request on the Feedback site
- The
definitionfield from theblocks.jsondata generation report has been removed - Terrain blocks are now rendered with MultiDrawIndirect on supported devices
level.datnow contains aversion_historylist with prior data versions of the file
Windowing and Input Backend
- Minecraft now uses SDL3 instead of GLFW for window management, input, and platform integration
- Keyboard input now uses SDL scancodes for physical key positions and SDL keycodes for layout-dependent text editing shortcuts
Server Properties
- The
white-listproperty is nowtrueby default
Minecraft Server Management Protocol 3.1.0
- Added notifications indicating when the server performs a full world upgrade on startup
minecraft:notification/world/upgrade_startedminecraft:notification/world/upgrade_progressminecraft:notification/world/upgrade_finishedminecraft:notification/world/upgrade_failed
Data Pack Versions 108.0 through 121.0
- Commands like
/give,/unpublish, and/tickshould now properly signal errors - Pottery sherds are now data-driven
- Entries stored in the
minecraft:pot_decorationscomponent andminecraft:decorated_potblock entity are now full item stacks - Signs no longer automatically execute click events in custom text
- Potion recipes are now data-driven
- The
minecraft:number_providerandminecraft:number_provider_typeregistries have been split into separate registries for integer calculations (minecraft:context_int_provider,minecraft:context_int_provider_type) and float calculations (minecraft:context_float_provider,minecraft:context_float_provider_type) - Loot table types that have a dedicated registry now support registry element and tag references
- This means that the majority of fields of such types that previously accepted single elements will now accept either a namespaced ID or an inline value, while fields that previously accepted lists can now accept an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID
- Affected types:
minecraft:advancementminecraft:item_modifierminecraft:loot_tableminecraft:context_int_providerminecraft:context_float_providerminecraft:predicateminecraft:recipeminecraft:slot_source
- Existing
referencetypes for predicates, item modifiers, and slot sources are now obsolete and have been removed
- The codec for element lists/tags now allows mixing inline values and references
- For example, item modifiers like
[{type:set_count, ...}, "minecraft:some_modifier"]are now allowed
- For example, item modifiers like
- The following Block State fields have been renamed
Nameis nowidPropertiesis nowproperties
- The default Block State of a Block can now be referred to in a compact form directly by the Block id

Commands
Added posteffect
- Allows adding or removing "post effects" to players
- These are postprocessing shaders that are applied to the player's screen, after the game has finished normal rendering
- Post effects exist on the client (in resource packs), not the server – the server cannot know if one will actually apply
- Post effects themselves were already part of the resource pack format, but only a few hardcoded ones were available to use
Developer's Note: This now makes custom shaders fully available to use from resource packs, but please be aware that shaders are still subject to be changed at-will, and the features involved (the command, post effects, or shaders) may be redesigned in the future.
Syntax:
/posteffect add <player> <posteffect>- adds the post effect to the player, if it doesn't already exist/posteffect clear <player>- removes all post effects from the player, if any exist/posteffect list <target>- lists all post effects applied to the player, if any exist/posteffect remove <player> <posteffect>- removes the post effect from the player, if it exists
Changes to publish
- The
gamemodeargument has been removed- Instead, the default game mode of the world should be set using the
defaultgamemodecommand or the Game Mode button in the World Options screen, while player-specific game modes should be set using thegamemodecommand
- Instead, the default game mode of the world should be set using the
Added compute
- Evaluates
minecraft:context_int_providerandminecraft:context_float_providervalues in various contexts - In all contexts,
originis set to the current command context position, whilethisentity is set to@s - If the evaluation fails (for example due to division by zero), this command will fail
Syntax:
/compute <target> integer <int_provider>OR/compute <target> float <float_provider> [<scale>], where:<target>- one of:default- runs the provider in theminecraft:command_compute_defaultcontext, where only common arguments (position andthisentity) are availableblock <pos>- runs the provider in theminecraft:command_compute_positioncontext, where block state and block position are set based on the block at position<pos>entity <entity selector>- runs the provider in theminecraft:command_compute_entitycontext, wheretarget_entityis set to the selector result
<int_provider>- either an element of theminecraft:context_int_providerregistry or an inline value<float_provider>- either an element of theminecraft:context_float_providerregistry or an inline value<scale>- optional scale value, defaults to1.0- The final result will be multiplied by
<scale>and rounded towards negative infinity
- The final result will be multiplied by
Changes to data
- Added new source to
/data modify ... append|insert|merge|prepend|setcalledcompute - It evaluates a
minecraft:context_int_providerorminecraft:context_float_providervalue and then provides the result either as an integer or a float tag - Example:
/data modify storage foo bar set compute entity @n[type=minecraft:armor_stand] integer {type:score,target:{type:context,target:target_entity},score:baz}
Syntax:
compute <target> (integer <int_provider> | float <float_provider>), where the syntax oftarget,int_provider,float_provideris the same as in the/computefunction- Note: unlike
/compute, there is noscale, since the result is directly stored as a float, instead of being returned from the command as an integer
- Note: unlike
Changes to give
- When the amount of items passed to the
givecommand is above the limit, the command will now signal an error instead of just printing an error message and returning0
Changes to tellraw
- The
nbtcomponent in a raw chat message will only be resolved up to 64k times
Changes to tick
- The following subcommands will now signal an error instead of just printing an error message and returning
0:tick steptick step stoptick sprint stop
Changes to team
- The result of the
team joinandteam leavesubcommands now reflects the exact count of entities that have joined or left (i.e. excluding entities for which teams have not changed)
Changes to item
- Now takes a slot source as an argument in place of anywhere a slot was previously used
- It will be evaluated with the
minecraft:command_slot_sourceloot type - Can be a slot source in either inline or reference form
- Can be a slot source targeting multiple slots
- The
replacesub-command has new semantics:- The contents of each destination slot are replaced with the corresponding source item one by one in the order they are provided by the slot source
- When there are more destination slots than there are source items, the remaining slots are ignored
- Example:
replace [12345] with (ABC)→[ABC45]
- Example:
- When there are fewer destination slots than there are source items, the remaining items are ignored
- Example:
replace [123] with (ABCDE)→[ABC]
- Example:
- String notation slot ranges in the form
<slot_type>or<slot_type>.<slot_number>are still permitted- Can be a single slot, such as
armor.chest - Can be multiple slots, such as
container.* - Acts as shorthand for a
minecraft:slot_rangeslot source using that slot range- Example:
hotbar.4is the same as{type:"minecraft:slot_range",slots:"hotbar.4"}
- Example:
- Can be a single slot, such as
- It will be evaluated with the
- The entity argument in the
from entityitem source can now be a selector targeting multiple entities- When more than a single entity is targeted, the slots sourced from each are concatenated
- Added new
fillandoverridesub-commands, each with syntax identical to/item replace/item fill- Fills each destination slot with a source item
- When there are more destination slots than there are source items, the items repeat until every slot is filled
- Example:
fill [12345] with (ABC)→[ABCAB]
- Example:
/item override- Overrides the contents of each destination slot with the corresponding source item
- When there are more destination slots than there are source items, the remaining slots are cleared
- Example:
override [12345] with (ABC)→[ABC__](where_represents an empty slot)
- Example:
Changes to execute
- Added new
slotscondition sub-command- Counts the number of slots from the slot source that are present on the targeted block or entity
- The slot source will be evaluated with the
minecraft:command_slot_sourceloot type - Syntax:
/execute if|unless slots block <pos> <slot source>/execute if|unless slots entity <targets> <slot source>
- The
itemscondition sub-command now takes a slot source as argument instead of a slot- The slot source will be evaluated with the
minecraft:command_slot_sourceloot type - Syntax:
/execute if|unless items block <pos> <slot source> <item predicate>/execute if|unless items entity <targets> <slot source> <item predicate>
- The slot source will be evaluated with the
Changes to place
- The
featuresub-command now allows inline definition of the Feature
Changes to spreadplayers
- Whether a block is safe to spread a player to is now controlled by the
#entities_can_teleport_toblock tag
Changes to swing
- When used on a player, the player's attack strength will no longer be reset
- Added a new optional argument to set the swing animation to play
- Allowed values:
none,whack,stab - If omitted, defaults to
whack
- Allowed values:
- Added a new argument to set the duration of the swing animation, if provided
- Format: positive time value (by default in ticks)
- If omitted, defaults to
6t
Environment Attributes
Added minecraft:gameplay/natural_mob_spawns
- Defines mob spawns in an Environment Attribute Source
- During worldgen placement, only Dimensions and Biomes will apply this Environment Attribute
- Format: object with fields:
spawns_by_category- map of spawn category to weighted list of spawn data- Spawn data format: object with fields:
type- entity type, the entity to spawncount- int provider, amount to spawn
- Spawn data format: object with fields:
spawn_costs- map of entity type to object with fields:energy_budget- float, energy change allowed per spawncharge- float, how much existing mobs will attract or repulse other charged mobs
- Available attribute modifiers:
overlay- For each mob category, overrides the lower layer's spawn settings with the higher layer's, unless the category is not included
- Merges each layer's spawn costs together, overriding the lower layer's spawn costs with the higher layer's if both define the same entity type
- Default: Empty
Added minecraft:gameplay/creature_world_gen_spawn_probability
- Sets the probability to run an iteration in which mobs defined to spawn in the
creaturemob category will spawn during world generation - Only Dimensions and Biomes will apply this Environment Attribute
- Format: float with range
[0,1) - Default:
0.1
Changed minecraft:gameplay/bed_rule
- Field
explodeshas been renamed todestroy_on_use - Added
destroy_on_leave- optional boolean, iftrue, the Bed will be destroyed when leaving it- If omitted, defaults to
false
- If omitted, defaults to
Added minecraft:gameplay/straw_bed_rule
- Same format as
minecraft:gameplay/bed_rule, but used for the Straw Bed
Changed minecraft:visual/ambient_particles
- Now supports interpolation between Timeline keyframes (probabilities will be crossfaded)
- Introduced support for new modifier:
append- Unlike
overridewhich totally replaces the particle list, this modifier concatenates all elements with the layers below
- Unlike

Data Components
Added minecraft:provides_pottery_pattern
- Describes the pottery pattern stored on a stack
- Format:
- namespaced ID pointing to an element of the
minecraft:decorated_pot_patternregistry
- namespaced ID pointing to an element of the
Added minecraft:cooking_fuel
- Describes an item that can be used as fuel for a Furnace, Smoker, or Blast Furnace
- Format: object with fields
burn_time- inline integer number, or a namespaced ID pointing to an element of theminecraft:context_int_providerregistry representing the time in ticks for which this fuel will burnspeed_multiplier- inline float number, or a namespaced ID pointing to an element of theminecraft:context_float_providerregistry representing the speed of the cooking/smelting
- Cooking fuel items with remainders will be handled as follows:
- If there is fuel remaining in the fuel slot, the remainder item will be dropped on the ground
- If the fuel has run out, the remainder item will remain in the fuel slot
Added minecraft:brewing_fuel
- Describes an item that can be used as fuel for a Brewing Stand
- Format: object with fields
uses- inline integer number, or a namespaced ID pointing to an element of theminecraft:context_int_providerregistry representing the number of times this fuel will brew before being consumedspeed_multiplier- inline float number, or a namespaced ID pointing to an element of theminecraft:context_float_providerregistry representing the speed of the brewing
- Brewing fuel items with remainders will be handled as follows:
- If there is fuel remaining in the fuel slot, the remainder item will be dropped on the ground
- If the fuel has run out, the remainder item will remain in the fuel slot
- This behavior matches items placed in the input and reagent slots of the brewing stand
- Note: the
#brewing_fuelitem tag has been removed and will no longer function to register new brewing fuels
Changed minecraft:pot_decorations
Instead of taking a list of 4 item IDs, this component now takes an object with 4 optional item stack fields named:
backleftrightfront
Changed minecraft:trim_material
- The format of inline material definitions has been updated as described below
Added minecraft:block_transformer
- Allows an item to transform blocks into other blocks on player interaction
- Format:
- a namespaced ID of a
minecraft:block_transformerregistry type
- a namespaced ID of a
Added minecraft:sign_text_front and minecraft:sign_text_back
- Two identical components that represent text on the front and back of a sign
- Contents will be displayed in the item's tooltip
- The format is the same as the
front_textandback_textfields on theminecraft:signandminecraft:hanging_signblock entities, i.e.messages- a list of text componentsfiltered_messages- an optional list of text components, if omitted, it will be set to the same value asmessagesmessagesandfiltered_messagesmust have the same entry count
color- optional dye color, default:blackhas_glowing_text- optional boolean, default:false
Added minecraft:waxed
- A marker for blocks with contents that are waxed
- No fields
Added minecraft:cushion/color
- Applied to Cushion entities when they get placed using an item
- Format: one of 16 dye colors
Added minecraft:compostable
- Represents the ability to compost an item and how it adds layers to the composter
- Format: object with fields
layers- inline integer number, or namespaced ID pointing to an element of theminecraft:context_int_providerregistry
Added minecraft:villager_food
Represents items that Villagers can eat. Villagers will pick up items with this component in addition to items in the #villager_picks_up tag.
- Format: object with fields
nutrition- positive integer, how much hunger the item satiates in the Villager once eaten
Added minecraft:mob_visibility
Represents the visibility percentage provided by an item with the appropriate minecraft:equippable component, modifying the range at which mobs are able to detect an entity.
- Format: object with fields
targeting_entity_types- an entity ID, a list of namespaced entity IDs, or a hash-prefixed entity tag to matchvisibility- float (between 0.0 and 10.0), with 0.0 reducing the range at which mobs detects the entity to 2 blocks while 10.0 increases the detection range tenfold- While multiple items with this component stack, the maximum vision will still never exceed 10.0
Added minecraft:attack_animation
- The animation to play when the item is being used to attack something
- Format: object with fields:
type- swing animation type, one ofnone,whack,stabduration- non-negative integer, the length of the animation in ticks
Added minecraft:interact_animation
- The animation to play when the item is being used to interact with something
- Format: Same as
minecraft:attack_animation
Changed minecraft:consumable
- Added a new optional field to the
teleport_randomlyconsume effect:directional_particles- boolean, whether to show a particle trail into the direction of the teleportation- If not present, defaults to
true
- If not present, defaults to
Removed minecraft:swing_animation
- This has been replaced by
minecraft:attack_animationandminecraft:interact_animation- Setting both of these new components to the same value will be functionally identical to the old component, except for:
- The
/swingcommand - animation type now specified by the command - Items being dropped by entities
- The
- Setting both of these new components to the same value will be functionally identical to the old component, except for:
Removed minecraft:map_color
- Maps are no longer drawn as a tinted overlay, so there is nothing left for the color to apply to
- Existing maps have the component stripped on load
- See the Resource Pack section for the matching removal of the
minecraft:map_colortint source
Trim Materials
The format of elements in the trim_material registry has been updated:
asset_namehas been replaced withpalette- Palette Texture ID to be used for this materialoverride_armor_assetshas been removed- Overrides are now defined in the Resource Pack Equipment Asset
- See the Resource Pack section for details about Palette Texture IDs
Instruments
The format of elements in the instrument registry have been updated:
- Added
durability_damagefield - optional non-negative integer, amount of durability to consume on each use - Updated
use_durationfield - can now be0for no cooldown
Entity Data
- Added
invulnerable_timetag which makes an entity temporarily invulnerable for a specific number of ticks

Block Entity Data
Changed minecraft:decorated_pot
The sherds field no longer stores a list of 4 item IDs. Instead, the new format is an object with 4 optional item stack fields named:
backleftrightfront
Changed minecraft:sign and minecraft:hanging_sign
- By default, commands and other click events contained in Sign text are no longer executed when the block is clicked
- Additionally, text components on newly placed Signs are no longer resolved by default
- A new boolean field called
allow_op_features(defaults tofalse) has been added to restore previous behavior - Placed Signs and items with the
minecraft:block_entity_datacomponent containing Sign data stored in worlds saved before this version will haveallow_op_featuresset totrue - Any newly created Sign will need to have that field set explicitly
- Changed the rules for opening the Sign edit screen after a block is placed:
- Previously, the screen would open unless
minecraft:block_entity_datawas applied successfully - Now, the screen will open only if it could be opened normally by clicking the block (i.e. it's not waxed and only has editable text on the front side)
- Previously, the screen would open unless
- Signs will now accept and return the
minecraft:sign_text_front,minecraft:sign_text_back, andminecraft:waxedcomponents
Changed minecraft:brewing_stand
The following fields are now stored as integers rather than shorts:
- Changed the
BrewTimefield from a short to an integer, this is the amount of time that the current brewing process has taken so far - Changed the
Fuelfield from a byte to an integer, this is the amount of fuel remaining
The following new fields have been added:
total_brew_time- integer, the total amount of time the current brewing process will taketotal_fuel- integer, represents the amount of fuel that was added in the last refuelspeed_multiplier- float, used to speed up or slow down the next brewing process
Changed minecraft:furnace, minecraft:smoker, and minecraft:blast_furnace
The following fields are now stored as integers rather than shorts:
- Changed the
cooking_time_spentfield from a short to an integer, this is the amount of time that the current cooking process has taken so far - Changed the
cooking_total_timefield from a short to an integer, this is the total amount of time the current cooking process will take - Changed the
lit_time_remainingfield from a short to an integer, this is the amount of burn time remaining - Changed the
lit_total_timefield from a short to an integer, this is the total amount of burn time that was added in the last refuel
The following new fields have been added:
speed_multiplier- float, used to speed up or slow down the next brewing process
Advancements
Validation
- Visible root advancements (i.e. ones that have a
displayfield, but noparentfield) must always declare abackgroundfield in thedisplaystructure - Only root advancements can have a
backgroundfield in thedisplaystructure
Rewards
- The
lootsub-field in therewardsfield now accepts an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:loot_tabletype
Triggers
- Multiple fields that accepted a list of loot conditions are now stricter:
- The previous functionality of a list of conditions being equivalent to a single
minecraft:all_ofcondition has been removed - Additionally, the
typefield is now mandatory (previously it defaulted tominecraft:entity_properties)
- The previous functionality of a list of conditions being equivalent to a single
- Some fields that previously accepted only inline loot conditions now also accept a namespaced ID of a
minecraft:predicate - The
playerfield, available on all triggers exceptminecraft:impossible, now accepts an inline value or a namespaced ID of aminecraft:predicatetype- To avoid duplication, this field is not mentioned in entries below
Changed minecraft:any_block_use
- The
locationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:bee_nest_destroyed
- The
blockfield has been renamed toblocksand now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:blocktype - Added field
statethat matches block state properties (same format asminecraft:enter_block)
Changed minecraft:bred_animals
- The
child,parent, andpartnerfields now accept an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:brewed_potion
- The
potionfield now accepts aminecraft:potion_contentsdata component predicate
Changed minecraft:cured_zombie_villager
- The
villagerandzombiefields now accept an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:default_block_use
- The
locationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:effects_changed
- The
sourcefield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:enter_block
- The
blockfield has been renamed toblocksand now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:blocktype
Changed minecraft:fall_after_explosion
- The
causefield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:fishing_rod_hooked
- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:placed_block
- The
locationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:item_used_on_block
- The
locationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:allay_drop_item_on_block
- The
locationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:player_killed_entity
- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype - The
killing_blow.tags.idfield now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:damage_typetype
Changed minecraft:entity_killed_player
- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype - The
killing_blow.tags.idfield now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:damage_typetype
Changed minecraft:kill_mob_near_sculk_catalyst
- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype - The
killing_blow.tags.idfield now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:damage_typetype
Changed minecraft:lightning_strike
- The
bystanderandlightningfields now accept an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:player_generates_container_loot
- The
loot_tablefield has been renamed toloot_tablesand now accepts a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:loot_tabletype- If a tag or a list is used, the trigger will run when any listed loot table is generated
Changed minecraft:thrown_item_picked_up_by_player
- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:thrown_item_picked_up_by_entity
- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:player_hurt_entity
- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype - The
damage.type.tags.idfield now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:damage_typetype
Changed minecraft:entity_hurt_player
- The
damage.type.tags.idfield now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:damage_typetype
Changed minecraft:player_interacted_with_entity
- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:player_sheared_equipment
- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:crafter_recipe_crafted
- The
recipe_idfield has been renamed torecipesand now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:recipetype- If a tag or a list is used, the trigger will run when any listed recipe is used
Changed minecraft:recipe_crafted
- The
recipe_idfield has been renamed torecipesand now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:recipetype- If a tag or a list is used, the trigger will run when any listed recipe is used
Changed minecraft:recipe_unlocked
- The
recipefield has been renamed torecipesand now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:recipetype- If a tag or a list is used, the trigger will run when any listed recipe is unlocked
Changed minecraft:slide_down_block
- The
blockfield has been renamed toblocksand now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:blocktype
Changed minecraft:summoned_entity
- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:tame_animal
- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:target_hit
- The
projectilefield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:villager_trade
- The
villagerfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Slot Sources
- Slot sources can now be defined as files inside a Data Pack, within the
slot_sourcefolder- Can be used in commands which take slot sources as arguments
minecraft:contentsis no longer restricted to only selecting non-empty slots
Changed minecraft:group
- The
termsfield now accepts an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:slot_sourcetype - The inline format of
minecraft:group(previously only a list of inline slot sources) can now also accept a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:slot_sourcetype- This format is now consistently available for all fields of a slot source (but not for stand-alone files)
Changed minecraft:filtered
- The
slot_sourcefield now accepts an inline value or a namespaced ID of aminecraft:slot_sourcetype
Changed minecraft:contents
- The
slot_sourcefield now accepts an inline value or a namespaced ID of aminecraft:slot_sourcetype
Changed minecraft:limit_slots
- The
slot_sourcefield now accepts an inline value or a namespaced ID of aminecraft:slot_sourcetype
Changed minecraft:slot_range
- The
sourcefield has a new valid typecontainer, which sources slots from a container or inventory provided through loot context - The
sourcefield is now optional- Defaults to the
containersource type when absent
- Defaults to the
Loot Tables
- Added
till/rooted_dirtloot table for drops when Rooted Dirt is tilled with a hoe - Multiple block loot tables now reference predicates for checking if a tool has Silk Touch and is Shears instead of inlining a copy of those checks
- The
rollsfield now accepts an inline value or a namespaced ID of aminecraft:context_int_providertype - The
bonus_rollsfield now accepts an inline value or a namespaced ID of aminecraft:context_float_providertype
Loot Table Types
Added minecraft:command_slot_source
- Currently used to evaluate slot sources with the
/itemand/executecommands - It takes the following parameters:
container, the container or inventory being evaluatedorigin, the position at which the command was executedthis_entity, the@sentity of the command being executed (optional)
Added minecraft:command_compute_default
- Currently used for the
/compute defaultcommand - It takes the following parameters:
origin, the position at which the command was executedthisentity, the@sentity of the command being executed (optional)
Added minecraft:command_compute_position
- Currently used for the
/compute blockcommand - It takes the following parameters:
- Everything included in
minecraft:command_compute_default block_entity, the block entity of the block at the position given in a commandblock_state, the current state of the block at the position given in a command
- Everything included in
Added minecraft:command_compute_entity
- Currently used for the
/compute entitycommand - It takes the following parameters:
- Everything included in
minecraft:command_compute_default target_entity, the entity selected by the selector given in a command
- Everything included in
Added minecraft:container_process
- Currently used to evaluate cooking and brewing fuel values
- It takes the following parameters:
container, the container or inventory being evaluatedblock_entity, the block entity being fueledblock_state, the current state of the block being fueledorigin, the location of the block being fueled
Changed minecraft:advancement_location
- Block entities are now available in context and can be matched by conditions like
minecraft:match_block
Changed minecraft:block_interact
originis now available in context, as the center of the block being interacted with
Loot Pool Entries
- The
conditionsfield in loot pool entries has been renamed toconditionand now accepts an inline value or a namespaced ID of aminecraft:predicatetype - The
functionsfield in loot pool entries has been renamed tomodifierand now accepts an inline value (including a list as a short form ofminecraft:sequence) or a namespaced ID of aminecraft:item_modifiertype- This field is now present on all loot entries, including previously omitted
minecraft:alternatives,minecraft:sequence, andminecraft:group
- This field is now present on all loot entries, including previously omitted
Changed minecraft:tag
- The
namefield has been renamed toitemsand now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:itemtype
Changed minecraft:loot_table
- The
valuefield now accepts a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:loot_tabletype - Added
expandfield, working the same as in theminecraft:tagpool entry:- if
true, each entry inside the tag will be added to the outer pool, with weights equal to the weight of this entry - if
false, this pool entry will operate as a single entry in the outer pool- If this entry gets selected, it will return all items from all referenced loot tables
- if
Loot Functions
- The
conditionsfield is now available in all loot functions and has been renamed tocondition- It now also accepts an inline value or a namespaced ID, but no longer an inline list of conditions
- The functionality of the old condition list format can be achieved by explicitly using the
minecraft:all_ofloot condition type
- The
functionfield (describing the function type) has been renamed totype
Changed minecraft:sequence
- The
functionsfield now accepts an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:item_modifiertype - Added an optional
conditionfield which accepts an inline value or a namespaced ID of aminecraft:predicatetype - The inline format of
minecraft:sequence(previously only a list of inline functions) can now also accept a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:item_modifiertype- This format is now consistently available for all fields of a loot function type (but not for stand-alone files), which means that every such field can accept an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a
minecraft:item_modifiertype
- This format is now consistently available for all fields of a loot function type (but not for stand-alone files), which means that every such field can accept an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a
Changed minecraft:modify_contents
- The
modifierfield now accepts an inline value or a namespaced ID of aminecraft:item_modifiertype
Changed minecraft:set_attributes
- Number providers in the
amountsub-fields of themodifierslist now accept an inline value or a namespaced ID of aminecraft:context_float_providertype
Changed minecraft:enchanted_count_increase
- The
countfield now accepts an inline value or a namespaced ID of aminecraft:context_float_providertype
Changed minecraft:enchant_with_levels
- The
levelsfield now accepts an inline value or a namespaced ID of aminecraft:context_int_providertype
Changed minecraft:set_custom_model_data
- Elements in the
floatslist can now be an inline value or a namespaced ID of aminecraft:context_float_providertype - Elements in the
colorslist can now be an inline value or a namespaced ID of aminecraft:context_int_providertype
Changed minecraft:set_enchantments
- Values in the
enchantmentsmap can now be an inline value or a namespaced ID of aminecraft:context_int_providertype
Changed minecraft:set_count
- The
countfield now accepts an inline value or a namespaced ID of aminecraft:context_int_providertype
Changed minecraft:limit_count
- The
minandmaxfields inside thelimitstructure now accept an inline value or a namespaced ID of aminecraft:context_int_providertype - The
limitfield no longer accepts a single number
Changed minecraft:set_damage
- The
damagefield now accepts an inline value or a namespaced ID of aminecraft:context_float_providertype
Changed minecraft:set_ominous_bottle_amplifier
- The
amplifierfield now accepts an inline value or a namespaced ID of aminecraft:context_int_providertype
Changed minecraft:set_random_dyes
- The
number_of_dyesfield now accepts an inline value or a namespaced ID of aminecraft:context_int_providertype
Changed minecraft:set_stew_effect
- The
durationfield in the elements of theeffectslist now accepts an inline value or a namespaced ID of aminecraft:context_int_providertype
Changed minecraft:set_loot_table
- Removed unused field
type - The
namefield has been renamed toloot_table_id
Changed minecraft:exploration_map
- The
destinationfield is no longer optional and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:structuretype - The
map_colorfield has been removed - The function no longer changes the type of the item it is applied to - it now only adds map data to the existing item
- Previously it required a
minecraft:mapand produced aminecraft:filled_map - The item to produce is now chosen by the loot entry or villager trade itself, so a data pack that produced exploration maps has to change its item from
minecraft:maptominecraft:filled_map(or one of the explorer map items) - If no matching structure is found, the item is left without a
minecraft:map_id- useminecraft:filteredwithminecraft:discard_itemto drop those, as the vanilla loot tables and villager trades now do
- Previously it required a
Removed minecraft:reference
- This function has become obsolete, as any field that takes a function now accepts (among other things) a namespaced ID to other functions
Predicates
- The
conditionfield (describing the predicate type) has been renamed totype
Changed minecraft:all_of
- The
termsfield now accepts an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:predicatetype - Note: values of this type can no longer be shortened to a single list, a full object with the type
minecraft:all_ofneeds to be used explicitly
Changed minecraft:any_of
- The
termsfield now accepts an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:predicatetype
Changed minecraft:inverted
- The
termfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
Changed minecraft:random_chance
- The
chancefield now accepts an inline value or a namespaced ID of aminecraft:context_float_providertype
Removed minecraft:value_check
- This condition has been split into integer and float variants
Added minecraft:int_value_check
- Checks a value against some range
Fields:
value- an inline value or a namespaced ID of aminecraft:context_int_providertypetest- one of:- an inline value (including a single integer) or a namespaced ID of a
minecraft:context_int_providertype- Will test if the result of
valueis equal to the providedtestvalue
- Will test if the result of
- an object with fields:
min- an optional inline value (including a single integer) or a namespaced ID of aminecraft:context_int_providertypemax- an optional inline value (including a single integer) or a namespaced ID of aminecraft:context_int_providertype- Will test if the result of
valueis betweenminandmax(inclusive)
- an inline value (including a single integer) or a namespaced ID of a
Added minecraft:float_value_check
- Checks value against some range
Fields:
value- an inline value or a namespaced ID of aminecraft:context_float_providertypetest- one of:- an inline value (including a single float) or a namespaced ID of a
minecraft:context_float_providertype- Will test if the result of
valueis equal to the providedtestvalue
- Will test if the result of
- an object with fields:
min- an optional inline value (including a single float) or a namespaced ID of aminecraft:context_float_providertypemax- an optional inline value (including a single float) or a namespaced ID of aminecraft:context_float_providertype- Will test if the result of
valueis betweenminandmax(inclusive)
- an inline value (including a single float) or a namespaced ID of a
Changed minecraft:time_check
- The
minandmaxfields inside thevaluestructure now accept an inline value or a namespaced ID of aminecraft:context_int_providertype - The
valuefield itself now accepts an inline value or a namespaced ID of aminecraft:context_int_providertype (previously only integers were allowed)
Changed minecraft:entity_scores
- The
minandmaxfields inside the values of thescoresmap now accept an inline value or a namespaced ID of aminecraft:context_int_providertype - The
scoresfield itself now accepts an inline value or a namespaced ID of aminecraft:context_int_providertype (previously only integers were allowed)
Changed minecraft:damage_source_properties
- The
predicate.tags.idfield now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of aminecraft:damage_typetype
Removed minecraft:reference
- This condition has become obsolete, as any field that takes a loot condition now accepts (among other things) a namespaced ID to other conditions
Added Vanilla Predicates
New entries added to the previously empty minecraft:predicate:
minecraft:tool/can_silk_touchminecraft:tool/can_shearminecraft:block/fast_cooking
Added minecraft:match_block Condition Type
Matches block state and optionally block entity data and components (if present)
Fields (same as the elements of the minecraft:can_place_on component):
blocks- optional block id, list of namespaced block IDs, or hash-prefixed block tag to matchstate- optional map of block state property keys to values to matchnbt- optional block entity NBT to match- The match will fail if this field is present but no block entity is available in the context
components- optional map of exact components to match- The match will fail if this field is present but no block entity is available in the context
predicates- optional map of component predicates to match- The match will fail if this field is present but no block entity is available in the context
Removed minecraft:block_state_property Condition Type
- This has been fully replaced by
minecraft:match_block
Potion Predicates
The minecraft:potion_contents Data Component Predicate has been changed to allow matching on specific potion effects.
The previous predicate format used a list of potion types, the new format allows for more refined matching.
The following fields can be used in any combination, all are optional:
potions- a list of potion types or a potion tag to matcheffects- a Collection Predicate ofmob_effectspredicates to match- The Collection Predicate format is as follows:
contains- a list ofmob_effectspredicates to matchcount- a list of options for matching a specific number of mob effect predicates, which follow the same format as theminecraft:effectsentity sub-predicatetest- themob_effectspredicate to matchcount- the number of matches required, or withminandmaxwill match a range of counts
size- require the mob effects list to have a specific size, or withminandmaxwill match a range of sizes
- The Collection Predicate format is as follows:
The mob_effects predicate format is a mapping of effect types to properties of that effect. All fields are optional, only the provided fields will be used for matching:
{
"minecraft: <effect type>": {
"duration": <integer bounds representing a duration in ticks>,
"amplifier": <integer bounds>,
"ambient: true/false,
"visible": true/false
}
)
Here is an example of matching on several different effects and criteria:
"effects": {
"minecraft:jump_boost": {
"duration": 3600,
"amplifier": 5,
"ambient: true,
"visible": true
},
"minecraft:speed": {
"duration": {
"min": 360,
"max": "3600
},
"amplifier: {
"min": 2
}
},
"minecraft:resistance": {}
}
All criteria are optional.
Number Providers
- The
minecraft:number_providertype has been split into two separate types:minecraft:context_int_provider(integer number providers) andminecraft:context_float_provider(float number providers) - Note: those new types should not be confused with the already existing
minecraft:int_provider_typeandminecraft:float_provider_type, which are context-free providers, used mostly for world generation
Integer Number Providers
- Added the
minecraft:context_int_providerregistry - All calculations are performed using 32-bit integers
- The result of calculations that provide invalid values (like division by zero) is undefined
- Fields:
type- a namespaced ID fromminecraft:context_int_provider_typeregistry<type-specific fields>
Added Vanilla Integer Number Providers
minecraft:compostable/low- returns
1if theminecraft:block_statecontext parameter is an empty composter, otherwise has a 30% chance of returning1
- returns
minecraft:compostable/low_medium- returns
1if theminecraft:block_statecontext parameter is an empty composter, otherwise has a 50% chance of returning1
- returns
minecraft:compostable/medium- returns
1if theminecraft:block_statecontext parameter is an empty composter, otherwise has a 65% chance of returning1
- returns
minecraft:compostable/medium_high- returns
1if theminecraft:block_statecontext parameter is an empty composter, otherwise has an 85% chance of returning1
- returns
minecraft:compostable/always_add_one- always returns
1
- always returns
minecraft:cooking/time_bamboo- Returns the burn time in ticks for Bamboo and Scaffolding
minecraft:cooking/time_blaze_rod- Returns the burn time in ticks for Blaze Rods
minecraft:cooking/time_boats- Returns the burn time in ticks for Boats
minecraft:cooking/time_coal- Returns the burn time in ticks for Coal
minecraft:cooking/time_coal_block- Returns the burn time in ticks for Coal Blocks
minecraft:cooking/time_dried_kelp_block- Returns the burn time in ticks for Dried Kelp Blocks
minecraft:cooking/time_dry_plants- Returns the burn time in ticks for various dry plants
minecraft:cooking/time_hanging_signs- Returns the burn time in ticks for Hanging Signs
minecraft:cooking/time_lava_bucket- Returns the burn time in ticks for Lava Buckets
minecraft:cooking/time_roots- Returns the burn time in ticks for Mangrove Roots
minecraft:cooking/time_wood_blocks- Returns the burn time in ticks for wood blocks
minecraft:cooking/time_wood_items_extra_small- Returns the burn time in ticks for very small wood items such as Buttons
minecraft:cooking/time_wood_items_large- Returns the burn time in ticks for large wood items such as Doors
minecraft:cooking/time_wood_items_small- Returns the burn time in ticks for small wood items such as Bows
minecraft:cooking/time_wood_slabs- Returns the burn time in ticks for wood slabs
minecraft:cooking/time_wool- Returns the burn time in ticks for most Wool blocks
minecraft:cooking/time_wool_carpets- Returns the burn time in ticks for Wool Carpets
minecraft:cooking/time_wool_slabs- Returns the burn time in ticks for Wool Slabs and Cushions
minecraft:cooking/normal_burn_time_reduction_factor- Returns the burn time reduction factor for cooking fuel when used in a normal furnace
minecraft:cooking/fast_burn_time_reduction_factor- Returns the burn time reduction factor for cooking fuel when used in a block matching the
block/fast_cookingpredicate
- Returns the burn time reduction factor for cooking fuel when used in a block matching the
minecraft:brewing/uses_default- Returns the default number of brews provided by brewing fuel
Added minecraft:abs
- Returns the absolute value of
input - If the final result does not fit inside a 32-bit integer, the calculation will be canceled
- Fields:
input- an inline value or a namespaced ID of aminecraft:context_int_providertype
Added minecraft:avg
- Evaluates multiple integer providers and returns the arithmetic mean of all results
- Division rounds towards
0 - Fields:
inputs- an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:context_int_providertype- Requires at least one value
Added minecraft:binomial
- Makes
nrandom coin flips with the probability of succeeding equal top, then returns the number of successes - Fields:
n- the number of coin flips, an inline value or a namespaced ID of aminecraft:context_int_providertypep- the probability of a single coin flip succeeding ([0.0, 1.0]), an inline value, or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:conditional
- Returns the value from
on_trueif its condition is fulfilled oron_falseif not - Fields:
condition- an inline value or a namespaced ID of aminecraft:predicatetypeon_true- an inline value or a namespaced ID of aminecraft:context_int_providertype which is executed if its condition is fulfilledon_false- an optional inline value or a namespaced ID of aminecraft:context_int_providertype- Defaults to a constant
0if omitted
- Defaults to a constant
Added minecraft:constant
- Returns a constant value
- Fields:
value- an integer
- Can also be written inline as a plain number (
foo: 1is equivalent tofoo: {type:"minecraft:constant",value:1})
Added minecraft:sub
- Returns
leftminusright - If the final result does not fit inside a 32-bit integer, the calculation will be canceled
- Fields:
left- an inline value or a namespaced ID of aminecraft:context_int_providertyperight- an inline value or a namespaced ID of aminecraft:context_int_providertype
Added minecraft:from_float
- Evaluates a float provider and converts it to an integer value
- Noninteger values will be truncated (i.e. rounded towards zero)
- Values that don't fit inside a 32-bit integer (including
NaN) are treated as errors and will cancel the calculation - Fields:
input- an inline value or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:max
- Evaluates multiple integer providers and returns the largest of all results
- Fields:
inputs- an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:context_int_providertype- Requires at least one value
Added minecraft:min
- Evaluates multiple integer providers and returns the smallest of all results
- Fields:
inputs- an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:context_int_providertype- Requires at least one value
Added minecraft:mod
- Returns the modulus of
leftbyright - Uses truncated integer division (rounds towards zero)
- Division by zero is treated as an error and will cancel the calculation
- Fields:
left- an inline value or a namespaced ID of aminecraft:context_int_providertyperight- an inline value or a namespaced ID of aminecraft:context_int_providertype
Added minecraft:floor_mod
- Returns the modulus of
leftbyright - Uses floored integer division (rounds towards negative infinity)
- Division by zero is treated as an error and will cancel the calculation
- Fields:
left- an inline value or a namespaced ID of aminecraft:context_int_providertyperight- an inline value or a namespaced ID of aminecraft:context_int_providertype
Added minecraft:environment_attribute
- Fetches and provides the value of an Environment Attribute (
minecraft:environment_attribute) - Fields
attribute- the Environment Attribute ID to fetch (must be representable as an int)
Added minecraft:negate
- Returns the negation of
input - If the final result does not fit inside a 32-bit integer, the calculation will be canceled
- Fields:
input- an inline value or a namespaced ID of aminecraft:context_int_providertype
Added minecraft:number_dispatcher
- Returns the first case which fulfills its condition or the
defaultif none do - Fields:
cases- a list of cases in the order that the dispatcher will try to execute them- Fields:
condition- an inline value or a namespaced ID of aminecraft:predicatetypevalue- an inline value or a namespaced ID of aminecraft:context_int_providertype which is executed if the condition is fulfilled
- Fields:
default- an optional inline value or a namespaced ID of aminecraft:context_int_providertype- Defaults to a constant
0if omitted
- Defaults to a constant
Added minecraft:pow
- Returns
baseto the power ofexponent - If the exponent is negative, the calculation will be canceled
- If both the base and the exponent are zero, the calculation will be canceled
- If the final result does not fit inside a 32-bit integer, the calculation will be canceled
- Fields:
base- an inline value or a namespaced ID of aminecraft:context_int_providertypeexponent- an inline value or a namespaced ID of aminecraft:context_int_providertype
Added minecraft:mul
- Evaluates multiple integer providers and returns the product of all results
- If the final result does not fit inside a 32-bit integer, the calculation will be canceled
- Fields:
inputs- an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:context_int_providertype- Requires at least one value
Added minecraft:div
- Returns
leftdivided byright - Uses truncated integer division (rounds towards zero)
- Division by zero is treated as an error and will cancel the calculation
- Fields:
left- an inline value or a namespaced ID of aminecraft:context_int_providertyperight- an inline value or a namespaced ID of aminecraft:context_int_providertype
Added minecraft:floor_div
- Returns
leftdivided byright - Uses floored integer division (rounds towards negative infinity)
- Division by zero is treated as an error and will cancel the calculation
- If the final result does not fit inside a 32-bit integer, the calculation will be canceled
- Fields:
left- an inline value or a namespaced ID of aminecraft:context_int_providertyperight- an inline value or a namespaced ID of aminecraft:context_int_providertype
Added minecraft:score
- Returns a score of the selected target
- If the score is not present, the provider returns the value of
fallback - Fields:
score- objective nametarget- score holder (same format as in the number provider version)fallback- an optional inline value or a namespaced ID of aminecraft:context_int_providertype- Defaults to a constant
0if omitted
- Defaults to a constant
Added minecraft:storage
- Returns an integer value from a command storage
- If the value is not present, is not a number, or the path returned multiple values, the provider returns the value of
fallback - The conversion of numeric NBT values that are not an integer is undefined
- Fields:
storage- a namespaced ID of a command storagepath- an NBT pathfallback- an optional inline value or a namespaced ID of aminecraft:context_int_providertype- Defaults to a constant
0if omitted
- Defaults to a constant
Added minecraft:add
- Evaluates multiple integer providers and returns the sum of all results
- If the final result does not fit inside a 32-bit integer, the calculation will be canceled
- Fields:
inputs- an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:context_int_providertype- Requires at least one value
Added minecraft:uniform
- Picks a random integer from a closed range
- Fields:
min- minimum value (inclusive), an inline value, or a namespaced ID of aminecraft:context_int_providertypemax- maximum value (inclusive), an inline value, or a namespaced ID of aminecraft:context_int_providertype
Added minecraft:weighted_list
- Returns a value from a distribution of weighted number providers
- Fields:
distribution- a list of objects with the following fields- Fields:
data- an inline value or a namespaced ID of aminecraft:context_int_providertypeweight- a positive integer
- Fields:
Float Number Providers
- Added a
minecraft:context_float_providerregistry - All calculations are performed using single-precision floating-point numbers ("floats")
- The result of calculations that produce NaN and Infinity is undefined
- Format:
type- a namespaced ID fromminecraft:context_float_provider_typeregistry<type-specific fields>
Added Vanilla Float Number Providers
minecraft:cooking/speed_default- Returns the default speed multiplier for cooking fuel
minecraft:cooking/normal_speed_multiplier- Returns the speed multiplier for cooking fuel when used in a normal Furnace
minecraft:cooking/fast_speed_multiplier- Returns the speed multiplier for cooking fuel when used in a block matching the
block/fast_cookingpredicate
- Returns the speed multiplier for cooking fuel when used in a block matching the
minecraft:brewing/speed_default- Returns the default speed multiplier for brewing fuel
Added minecraft:abs
- Returns the absolute value of
input - Fields:
input- an inline value or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:avg
- Evaluates multiple float providers and returns the arithmetic mean of all results
- Fields:
inputs- an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:context_float_providertype- Requires at least one value
Added minecraft:ceil
- Returns the ceiling (i.e. rounded towards positive infinity) value of
input - Fields:
input- an inline value or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:conditional
- Returns the value from
on_trueif its condition is fulfilled oron_falseif not - Fields:
condition- an inline value or a namespaced ID of aminecraft:predicatetypeon_true- an inline value or a namespaced ID of aminecraft:context_float_providertype which is executed if its condition is fulfilledon_false- an optional inline value or a namespaced ID of aminecraft:context_float_providertype- Defaults to a constant
0.0if omitted
- Defaults to a constant
Added minecraft:constant
- Returns a constant value
- Fields:
value- a float
- Can also be written inline as a plain number (
foo: 1.0is equivalent tofoo: {type:"minecraft:constant",value:1.0})
Added minecraft:cos
- Returns the cosine of
input - Fields:
input- argument in radians, an inline value, or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:sub
- Returns
leftminusright - Fields:
left- an inline value or a namespaced ID of aminecraft:context_float_providertyperight- an inline value or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:enchantment_level
- Evaluates Enchantment Level-Based (
minecraft:enchantment_level_based_value_type) parameter - Fields:
amount: A Level-Based Value giving a value based on the level of the Enchantment
Added minecraft:environment_attribute
- Fetches and provides the value of an Environment Attribute (
minecraft:environment_attribute) - Fields
attribute- the Environment Attribute ID to fetch (must be representable as a float)
Added minecraft:floor
- Returns the floored (i.e. rounded towards negative infinity) value of
input - Fields:
input- an inline value or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:from_int
- Evaluates an integer provider and converts it to a float value
- Fields:
input- an inline value or a namespaced ID of aminecraft:context_int_providertype
Added minecraft:length
- Evaluates multiple float providers and returns the square root of the sum of squares
- Fields:
inputs- an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:context_float_providertype- Requires at least one value
Added minecraft:max
- Evaluates multiple float providers and returns the largest of all results
- Fields:
inputs- an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:context_float_providertype- Requires at least one value
Added minecraft:min
- Evaluates multiple float providers and returns the smallest of all results
- Fields:
inputs- an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:context_float_providertype- Requires at least one value
Added minecraft:mod
- Returns the modulus of
leftbyright - Fields:
left- an inline value or a namespaced ID of aminecraft:context_float_providertyperight- an inline value or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:negate
- Returns the negation of
input - Fields:
input- an inline value or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:number_dispatcher
- Returns the first case which fulfills its condition or
defaultif none do - Fields:
cases- a list of cases in the order that the dispatcher will try to execute them- Fields:
condition- an inline value or a namespaced ID of aminecraft:predicatetypevalue- an inline value or a namespaced ID of aminecraft:context_float_providertype which is executed if the condition is fulfilled
- Fields:
default- an optional inline value or a namespaced ID of aminecraft:context_float_providertype- Defaults to a constant
0.0if omitted
- Defaults to a constant
Added minecraft:pow
- Returns
baseto the power ofexponent - Fields:
base- an inline value or a namespaced ID of aminecraft:context_float_providertypeexponent- an inline value or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:mul
- Evaluates multiple float providers and returns the product of all results
- Fields:
inputs- an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:context_float_providertype- Requires at least one value
Added minecraft:div
- Returns
leftdivided byright - Fields:
left- an inline value or a namespaced ID of aminecraft:context_float_providertyperight- an inline value or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:round
- Returns the rounded (towards the nearest integer, with ties rounding towards positive infinity) value of
input - Fields:
input- an inline value or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:sin
- Returns the sine of
input - Fields:
input- argument in radians, an inline value, or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:sqrt
- Returns the square root of
input - Fields:
input- an inline value or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:storage
- Returns a float value from a command storage
- If the value is not present, is not a number, or the path returned multiple values, the provider returns the value of
fallback - The conversion of numeric NBT values that are not a float is undefined
- Fields:
storage- a namespaced ID of a command storagepath- an NBT pathfallback- an optional inline value or a namespaced ID of aminecraft:context_float_providertype- Defaults to a constant
0.0if omitted
- Defaults to a constant
Added minecraft:add
- Evaluates multiple float providers and returns the sum of all results
- Fields:
inputs- an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of aminecraft:context_float_providertype- Requires at least one value
Added minecraft:truncate
- Returns the truncated (rounded towards zero) value of
input - Fields:
input- an inline value or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:uniform
- Picks a random number from a range
- Fields:
min- minimum value, an inline value, or a namespaced ID of aminecraft:context_float_providertypemax- maximum value, an inline value, or a namespaced ID of aminecraft:context_float_providertype
Added minecraft:weighted_list
- Returns a value from a distribution of weighted number providers
- Fields:
distribution- a list of objects with the following fields- Fields:
data- an inline value or a namespaced ID of aminecraft:context_float_providertypeweight- a positive integer
- Fields:

Recipes
Potion Brewing Recipes
Potion brewing recipes are now data-driven. New recipes can be added via data packs, and vanilla recipes may be modified. Brewing recipes use the minecraft:brewing type.
The main contents are:
input- a potion ingredient with a requireditemfield and an optionalpotion_contentsfield using aminecraft:potion_contentsData Component Predicatereagent- a potion ingredient with a requireditemfield and an optionalpotion_contentsfield using aminecraft:potion_contentsData Component Predicateoutput- item stack, the resulting item
Here is an example of a vanilla recipe:
{
"type": "minecraft:brewing",
"input": {
"item": "minecraft:potion",
"potion_contents": {
"potion": "minecraft:water"
}
},
"output": {
"components": {
"minecraft:potion_contents": {
"potion": "minecraft:awkward"
}
},
"id": "minecraft:potion"
},
"reagent": {
"item": "minecraft:nether_wart"
}
}
Any items may be used in any of the 3 slots, for example:
{
"type": "minecraft:brewing",
"input": { "item": "minecraft:bucket" },
"output": { "id": "minecraft:sulfur_cube_bucket" },
"reagent": { "item": "minecraft:potent_sulfur" }
}
Cooking Recipes
The cookingtime field of all cooking recipes is no longer optional.
The recipes for Smokers and Blast Furnaces now use the same cooking time in their data definition as their Furnace counterparts.
The cooking time speedup is now done through the minecraft:cooking/speed_default Number Provider used by the furnace fuel components.
Custom Smoker and Blast Furnace recipes should be updated accordingly, by setting cookingtime to twice the previous value.
If a custom cooking recipe was previously relying on the default cookingtime value, 200 can be used to maintain the same timing.
Block Transformers
- Added a
minecraft:block_transformerregistry containing rules for transforming a block into another block - Format: list of objects with fields:
block_state_provider- Block State Provider, used to provide the state for the transformed block- If the Block State Provider returns no result (as by
rule_based, for example), the next rule in the list will be attempted - The set of Block State Providers are the same as the Block State Providers used in World Generation
- If the Block State Provider returns no result (as by
sound- optional field, Sound Event to play on interaction, e.g.minecraft:item.axe.strip- If not present, defaults to play no Sound Event
particle- optional field, particles to play on interaction- One of:
nonescrapewax_onwax_off
- If not present, defaults to
none
- One of:
disallowed_faces- optional field, list of directions specifying faces on the clicked Block that cannot be interacted with- One of:
updownnorthsoutheastwest
- If a disallowed face is interacted with, the next rule in the list will be attempted
- If not present, defaults to an empty list
- One of:
loot- optional Loot Table, the Loot Table to use for dropping items on a successful transformation, e.g.minecraft:till/rooted_dirt- If not present, defaults to using no Loot Table
drop_strategy- optional field, configures from where in the Block any loot should drop- One of:
from_middle- from the middle of the Blockclicked_face- from the face interacted with
- If not present, defaults to
from_middle
- One of:
update_from_neighbors- optional boolean, if the transformed block should update based on neighboring blocks. This allows e.g. fences to connect- If not present, defaults to true
transform_type- optional field, configures how nearby blocks should be affected by the transformation- One of:
single_block- only affects the Block interacted withcopper_chest- if input and output blocks are both copper chests of any weathering state, waxed or unwaxed, this transformation will affect both sides of a double chest
- If not present, defaults to
single_block
- One of:
consume_on_use- optional boolean, determines if the item should be consumed or not- Only applies to stackable items
- If not present, defaults to
true
item_damage_per_use- optional integer, determines how much damage the item takes with each use- Only applies to non-stackable items
- If not present, defaults to
0
- Default values in vanilla:
minecraft:shovel- default value for shovelsminecraft:axe- default value for axesminecraft:hoe- default value for hoes

World Generation
- Cave Air is no longer generated in Nether caves
Biomes
- Removed the
spawners,spawn_costs, andcreature_spawn_probabilityfields- These values have been moved to the new Environment Attributes
Features
- The
worldgen/configured_featureregistry has moved toworldgen/featureand configuration is now done inline in the root object rather than separated into aconfigfield - Removed feature types:
minecraft:coral_mushroomminecraft:kelpminecraft:seagrassminecraft:sea_pickleminecraft:nether_forest_vegetationminecraft:twisting_vinesminecraft:weeping_vinesminecraft:desert_well
Developer's Note: These feature types are no longer needed, since the features they previously hardcoded are now implemented with other, more configurable functionality.
Changed minecraft:coral_claw and minecraft:coral_tree
- Added field
feature, a Placed Feature that is used to place at every desired block position
Changed minecraft:stepped_column_cluster (renamed from minecraft:basalt_columns)
Now exposes more control over the feature functionality.
Format changes:
- Renamed field
reachtocolumn_reach - Added fields:
block- Block state provider, which block to placecan_replace- Block predicate, which blocks can be replaced by the columncontinue_through- Block predicate, which pre-existing blocks to accept as part of a columncannot_place_on- Block ID, list of Block IDs, or hash-prefixed Block Tag ID, which blocks are avoided when starting placementcolumn_count- int provider (between 1 and 150), the number of columns to generatecluster_reach- int provider (between 0 and 13), the size of the square to attempt to generate columns in- The effective reach is also limited by
height
- The effective reach is also limited by
Changed minecraft:single_block_pillar (renamed from minecraft:basalt_pillar)
Now exposes more control over the feature functionality.
- Added fields:
block- Block state provider, which block to placecan_replace- Block predicate, which blocks to replacedirection- one ofupanddown, vertical direction of the pillarchance_to_continue- optional float between0and1, probability that the pillar continues another block (assumingcan_replacematches)- If omitted, defaults to
1
- If omitted, defaults to
cap_feature- optional Placed Feature, placed at the end of the pillar
Changed minecraft:random_neighbor_spread (renamed from minecraft:glowstone_blob)
Now exposes more control over the feature. Places blocks randomly in an area starting at the origin, each block placing so it has exactly one accepted neighbor.
- Added fields:
block- Block state provider, which block to placeaccepted_neighbors- Block ID, list of Block IDs, or hash-prefixed Block Tag, which blocks count as a valid neighborcan_replace- Block predicate, which blocks to replaceattempts- int provider (between 1 and 3000), how many placement attempts to makexz_offset- int provider (between -16 and 16), what offsets to try along the x and z axesy_offset- int provider (between -16 and 16), what offsets to try along the y-axis
Changed minecraft:sculk_patch
- Removed
extra_rare_growthsandcatalyst_chancefields
Added minecraft:overlay
Places a set of features in the same location. Note that as opposed to the minecraft:sequence Feature Type, all features are placed regardless of individual placement success.
- Format: object with fields:
features- Placed Feature ID, non-empty list of Placed Feature IDs, or hash-prefixed Placed Feature Tag, the features to place
Added minecraft:projected_random_patchy_square
Generates a square where each block is randomly placed or not placed with its probability based on the distance from the center of the square, with the center more likely to generate than the edges. Each placed block can be projected downwards if the appropriate conditions are met.
- Format: object with fields:
block- Block state provider, which block to placeproject_through- Block Predicate, which blocks are considered "empty" and should be projected throughsize- int provider (between 1 and 16), determines the size of the square as measured from the center to the edgemax_projection_height- non-negative integer, the maximum change in y level from the original height to the placement height for a block in the square
Added minecraft:end_podium
- Places the End Podium
- Two feature instances are now used to place the podium from in-game events:
end_podium_activeend_podium_inactive
- Format: object with fields:
active- boolean, whether the portal is active
Changed minecraft:template
- Added field
processors: Namespaced ID or inline definition of a structure processor list to apply to the template
Changed minecraft:tree
Added shelf_mushroom Tree Decorator Type
- Places Shelf Mushrooms on logs with the specified probability
- Format: object with fields:
probability- float (between 0 and 1), the probability that any Shelf Mushrooms will be placed for a given feature
Added poplar_foliage_placer Foliage Placer Type
- Places Leaf blocks for Poplar trees in a rhombus shape in one of two possible directions
- Format: Common fields for all foliage placers plus:
height- int provider (between 5 and 16), the height of the foliageside_hole_chance- float (between 0.0 and 1.0), the chance for blocks to be randomly removed at the edge of the foliage
Added poplar_trunk_placer Trunk Placer Type
- Places Log blocks for Poplar trees in a straight shape with branches by the start of the foliage
- Format: Common fields for all trunk placers plus:
trunk_height_above_branches- int provider (between 0 and 8), the height of the trunk above the branchesbranch_amount- int provider (between 1 and 4), the amount of branches to create by the foliage
Placement Modifiers
Added minecraft:cuboid
Repeats a feature in a cuboid shape.
- Added fields:
xz_size- int provider (between 1 and 16), the size of the cuboid along x and z axesy_size- int provider (between 1 and 16), the size of the cuboid along the y-axisinclude_interior- optional boolean, whether to place interior blocks of the cuboid- If omitted, defaults to
true
- If omitted, defaults to
include_edges- optional boolean, whether to place edge blocks of the cuboid- Setting this to
falsegenerates a somewhat "rounded" cuboid - If omitted, defaults to
true
- Setting this to
Added minecraft:random_chance
Gates the feature being placed behind a random chance.
- Format: object with fields:
chance- float (between0and1), the chance that the feature gets placed
Added minecraft:randomly_selected
Randomly selects a Placement Modifier from a list and delegates placement to it.
- Format: object with fields:
placements- non-empty list of Placement Modifiers to pick from
Changed minecraft:offset (renamed from minecraft:random_offset)
- Format changes:
- Removed fields
xz_spreadandy_spread - Added fields
x,y,z- integer providers (between -16 and 16), the axis-specific offset
- Removed fields
Block State Providers
Block State Providers can now be defined as stand-alone types in the worldgen/block_state_provider registry and referenced by using a namespaced string for a field that expects a Block State Provider.
An inline Block State definition is now an accepted shorthand form for a minecraft:simple block state provider providing that state. The Block State has to be in the form of an object with fields, a shorthand Block ID is not allowed.
Renamed Provider Types
The following providers types have been renamed:
minecraft:dual_noise_providerrenamed tominecraft:dual_noiseminecraft:noise_providerrenamed tominecraft:noiseminecraft:noise_threshold_providerrenamed tominecraft:noise_thresholdminecraft:randomized_int_state_providerrenamed tominecraft:randomized_intminecraft:rule_based_state_providerrenamed tominecraft:rule_basedminecraft:simple_state_providerrenamed tominecraft:simpleminecraft:weighted_state_providerrenamed tominecraft:weighted
Added minecraft:copy_properties
Copies common Block State properties from the Block at the evaluated position to the resulting state
- Format: object with fields:
source- Block State Provider, the Block State which the copied properties are copied on top of- Only properties common between both the source and the target blocks will be copied
Added minecraft:random_block
Returns the default block state for a randomly chosen block.
- Format: object with fields:
blocks: Block ID, list of Block IDs, or hash-prefixed Block Tag, the set of blocks to randomly pick from
Changed minecraft:rotated
Now works on any block with axis or facing properties.
- Format changes:
- Changed field
state- now a Block State Provider - Added field
direction- optional direction, the direction to set- If omitted, a random direction is chosen
- Changed field
Changed minecraft:rule_based
- If a rule yields no result, the following rules will be evaluated
- If no rule or
fallbackyields a result, will now also yield no result
Noise Settings
- The
surface_rulefield has been renamed tomaterial_rule- Format: inline Material Rule or Material Rule ID reference
- The
final_densityfield no longer has thebeardifierDensity Function implicitly added to the final result - Renamed
preliminary_surface_leveltochunk_surface_level- This Density Function is no longer implicitly interpolated across the entire chunk
- The
aquifers_enabledfield has been replaced by an optionalaquifersobject:- If not present, no aquifers will be generated
- Fields:
barrier- Density Function, moved fromnoise_router.barrierfluid_level_floodedness- Density Function, moved fromnoise_router.fluid_level_floodednessfluid_level_spread- Density Function, moved fromnoise_router.fluid_level_spreadlava- Density Function, moved fromnoise_router.lavasurface_level- Density Function, duplicated fromnoise_router.preliminary_surface_levelexclusion- Density Function, any aquifer cell where this value is positive will have no fluid
- The
ore_veins_enabledfield has been removed, and replaced by theminecraft:ore_veinMaterial Rule - The following fields from
noise_routerhave been moved:barrier,fluid_level_floodedness,fluid_level_spread,lava- moved intoaquifersfieldvein_toggle,vein_ridged,vein_gap- moved into theminecraft:ore_veinMaterial Rule
- Removed
noise.size_horizontalandnoise.size_verticalfields, these are now specified in theinterpolateddensity function - Added optional
debug_functionsfield - list of objects with fields, Density Function values to show in thechunk_generation_statsdebug entry- Fields:
label- string, label to identify this Density Functionfunction- Density Function, the Density Function to compute and show at the player position
- If not specified, no density function values will be shown
- Fields:
Spawn Target
The spawn_target field has been updated to allow use of any Density Function, instead of just a subset of those defined within the noise_router field.
The suitability of a candidate spawn position is determined by evaluating, in some arbitrary n-dimensional space, the squared Euclidean distance to a set of target hypercubes.
For example, one axis might be temperature and the second erosion - and suitability determined by distance to the square between temperature=0.1, erosion=0.2 and temperature=0.3, erosion=0.5. This would prefer any candidate spawn within those ranges equally, while penalizing candidate spawns very far out of that range.
Format: list of target hypercubes
- Target format: map between Density Function ID and a range on that axis:
- Range is specified as one of:
- Float, an exact target value
- Array of 2 floats, a range of target values in form
[min, max] - An object with fields:
min- float, the minimum value of the target rangemax- float, the maximum value of the target range
- Range is specified as one of:
Material Rules
Material Rule Registry
A new data-driven registry has been introduced, loaded from data/<namespace>/worldgen/material_rule/<id>.json.
Elements in this registry define a pipeline for selecting what base block to place in the world at a given position.
The format is identical to that which was formerly written in the surface_rule field within Noise Settings files, with the following extensions:
- Material Rules can now be specified either inline (as previously), or as an ID reference to an element in the
worldgen/material_ruleregistry - Material Conditions can also now be specified as an ID reference to an element in the
worldgen/material_conditionregistry
Material Condition Registry
A new data-driven registry has been introduced, loaded from data/<namespace>/worldgen/material_condition/<id>.json.
Elements in this registry define a condition that can be referenced within a Material Rule pipeline (e.g. testing biome or surface depth).
The format is identical to that which was formerly written within the condition Material Rule type, with the following extension:
- Material Conditions can also now be specified as an ID reference to an element in the
worldgen/material_conditionregistry
Added minecraft:ore_vein
- Format: object with fields:
ore_block- Block State, the ore block to placeraw_ore_block- Block State, the raw ore block to placefiller_block- Block State, the filler block to placeraw_ore_chance- float between 0 and 1, the probability for araw_ore_blockto be placed instead of anore_blockdensity- Density Function, the probability between 0 and 1 for the ore vein to replace a block- If
0or lower, no block will be replaced
- If
richness- Density Function, the probability between 0 and 1 forore_blockorraw_ore_blockto be placed (as opposed tofiller_block)- If
0or lower, all blocks will befiller_block - If
1or greater, no blocks will befiller_block
- If
filler_gap- Density Function, acts as an override torichness: if positive,filler_blockwill always be placed
Noises
The format of Noises (defined in the worldgen/noise registry, or inline in noise-based Block State Providers) has been updated.
Noises define a fractal Brownian motion (fBm) configuration with the following properties:
Produces output values (approximately) fitting a normal distribution
Unless otherwise specified, fits the output amplitude to
[-1; 1]- Due to the normal distribution, in practice this means that 99.7% of all samples will fit in that range - but values may still be encountered outside of this range
Parameterized by persistence=0.5, lacunarity=2.0
- i.e. between each octave, the amplitude is halved and the frequency doubled
Has stable seeding such that an octave can be boosted, muted, or added without affecting the rest of the octaves
Renamed
firstOctavetobase_octaveAdded
base_amplitude- positive float, a scale factor to apply to the noise output- If not specified, defaults to
1.0
- If not specified, defaults to
Added
octave_count- integer between 1 and 32, the number of octaves to sampleAdded
normalize- boolean, or"legacy", controls how the output amplitude should be normalized- If
true,base_amplitudeis the expected amplitude of the output (i.e. 99.7% of all samples in[-base_amplitude; base_amplitude]) - If
false,base_amplitudeis the amplitude of the first octave - If
"legacy", inherits the same normalization behavior as expressed by the previous format- This would generally fit to a range smaller than expected
- If not specified, defaults to
true - Note: normalization is not affected by the
amplitude_modifiersfield - as such, modifying the amplitude of a single octave will not affect the amplitude of others
- If
Renamed
amplitudestoamplitude_modifiers- list of floats, a scaling factor to apply to each octave- The number of elements in this list must match
octave_count - As described above, this scaling factor bypasses normalization and will affect the output amplitude
- This field is no longer required - if not specified, defaults to all
1.0
- The number of elements in this list must match
Density Functions
- Density Functions and noises are no longer evaluated with double-precision floating point values, but instead with single-precision
- This affects all intermediate steps, not just the final result
Developer's Note: _We are aware that the details of floating point rounding have been used in some Data Packs, and this change may affect specific configurations. We have introduced alternatives for the use-cases that we are aware of, but please do share with us on feedback.minecraft.net or in the feedback Discord if you encounter use-cases that are no longer possible to support.
Changed minecraft:constant
argumenthas been renamed tovalue
Changed minecraft:noise
The following fields have been introduced:
shift_x- optional Density Function, a domain warp to apply on x- If not specified, no warping will be applied (equivalent to
0)
- If not specified, no warping will be applied (equivalent to
shift_y- optional Density Function, a domain warp to apply on y- If not specified, no warping will be applied (equivalent to
0)
- If not specified, no warping will be applied (equivalent to
shift_z- optional Density Function, a domain warp to apply on z- If not specified, no warping will be applied (equivalent to
0)
- If not specified, no warping will be applied (equivalent to
Removed minecraft:shifted_noise
- Replaced by
minecraft:noise
Changed minecraft:add, minecraft:mul, minecraft:min, and minecraft:max
argument1has been renamed toleftargument2has been renamed toright
Changed minecraft:abs, minecraft:square, minecraft:cube, minecraft:half_negative, minecraft:quarter_negative, minecraft:squeeze, minecraft:interpolated, minecraft:flat_cache, minecraft:cache_2d, minecraft:cache_once, minecraft:cache_all_in_cell, and minecraft:blend_density
argumenthas been renamed toinput
Changed minecraft:shift_a, minecraft:shift_b, and minecraft:shift
argumenthas been renamed tonoise
Added minecraft:sub
Performs subtraction between two arguments.
- Format: object with fields:
left- Density Function, the left-hand side of the operationright- Density Function, the right-hand side of the operation
Added minecraft:div
Performs division between two arguments.
- Format: object with fields:
left- Density Function, the left-hand side of the operationright- Density Function, the right-hand side of the operation
Changed minecraft:reciprocal (renamed from minecraft:invert)
- No changes to the format
Added minecraft:negate
Negates the input.
- Format: object with fields:
input- Density Function, the function to negate
Added minecraft:lerp
Performs (unclamped) linear interpolation between two arguments based on an alpha.
- Format: object with fields:
alpha- Density Function, the interpolation factor (0=first,1=second)- Any value outside of
[0; 1]will extrapolate
- Any value outside of
first- Density Function, the value atalpha=0second- Density Function, the value atalpha=1
Added minecraft:floor, minecraft:round, minecraft:ceil, and minecraft:truncate
Rounds the input value to an integer multiple of a given function in a type-dependent direction:
floorrounds towards negative infinityroundrounds towards the nearest integer (ties round up)ceilrounds towards positive infinitytruncaterounds towards 0
Format: object with fields:
input- Density Function, the input to roundmultiple- Density Function, the output will be rounded to an integer multiple of this value- If not specified, defaults to constant
1(i.e. rounding to integer)
- If not specified, defaults to constant
Added minecraft:pow
Raises the given base value to an exponent.
- Format: object with fields:
base- Density Function, the base valueexponent- Density Function, the exponent
Added minecraft:sqrt
Computes the square root of the given input.
- Format: object with fields:
input- Density Function, the value for which to compute the square root
Added minecraft:log
Computes the natural logarithm of the given input.
- Format: object with fields:
input- Density Function, the value for which to compute the natural logarithm
Added minecraft:sign
Computes the sign of the input:
- If the input is positive, returns
1 - If the input is
0, returns0 - If the input is negative, returns
-1
Format: object with fields:
input- Density Function, the value of which to compute the sign
Added minecraft:distance_to_point
Computes the distance to a fixed point using the specified distance function.
- Format: object with fields:
point- array of 3 integers in form[x, y, z], the point to compute distance tometric- one of:euclidean- i.e.sqrt(dx^2 + dy^2 + dz^2)euclidean_squared- i.e.dx^2 + dy^2 + dz^2manhattan- i.e.abs(dx) + abs(dy) + abs(dz)chebyshev- i.e.max(abs(dx), abs(dy), abs(dz))
Changed minecraft:gradient (renamed from minecraft:y_clamped_gradient)
- Format: object with fields:
axis-x,y, orz, the axis over which to define this gradienttiling- one of:clamp_to_edge- outside the gradient boundaries, the value at the nearest boundary will be usedrepeat- the gradient will be repeated outside its boundariesmirrored_repeat- the gradient will be repeated such that odd repetitions are mirrored, ensuring continuity between repetitions
from_coordinate- int, the coordinate at which the gradient startsto_coordinate- int, the coordinate at which the gradient ends- Must not be equal to
from_coordinate
- Must not be equal to
from_value- float, the value at which the gradient startsto_value- float, the value at which the gradient ends
Added minecraft:slice
Removes a dimension from the input domain by taking a "slice" along an axis with a specific coordinate. For example, with axis=y and coordinate=0, a slice will be taken along the XZ plane, with all values sampled at y=0.
- Format: object with fields:
axis-x,y, orz, the axis to removecoordinate- int, the fixed coordinate to be passed to the input functioninput- Density Function, the input function
Added minecraft:beardifier
Outputs the structure bearding density. Generally summed together with the base terrain density to produce ground below, carve air around, or bury structures.
Format: no fields
Changed minecraft:end_outer_islands (renamed from minecraft:end_islands)
No longer computes the density of the main island.
Changed minecraft:interpolated
- Added fields:
cell_size_xz- positive int, size in blocks of the interpolation grid cells on the XZ axescell_size_y- positive int, size in blocks of the interpolation grid cells on the Y axis
Changed minecraft:cache (renamed from minecraft:cache_once)
- No format change
Removed minecraft:cache_2d, minecraft:cache_all_in_cell, and minecraft:flat_cache
- May be replaced with
minecraft:cache minecraft:slicemay be used to always pick Y=0, as formerly handled byminecraft:flat_cache
Structure Pool Elements
Changed minecraft:feature_pool_element
- Can now connect to Jigsaw blocks with any target name, instead of just
minecraft:bottom
Structure Placements
Added minecraft:dimension_origin
- Places a single instance of the structure at the dimension origin
- The dimension origin is defined as the
spawn_targetfor noise settings based dimensions, otherwise Chunk (0, 0)
- The dimension origin is defined as the
- No additional fields
Block Predicates
Added minecraft:height_range
Checks the height of the position against a given range.
- Format: object with fields:
min_inclusive- Vertical Anchor, the minimum height requiredmax_inclusive- Vertical Anchor, the maximum height required
Added minecraft:volume_match
Checks that every block in a volume matches a given Block Predicate.
- Format: object with fields:
min- list of 3 integers in range-16to16, the lower corner of the volume as an offset from the test positionmax- list of 3 integers in range-16to16, the upper corner of the volume as an offset from the test positionmatch- Block Predicate to test on each position
Vertical Anchors
- Added a new option for Vertical Anchors:
relative_to_sea_level- specifies an offset to the sea level of the dimension
Rule Tests
These are the predicates used by ore Features (targets[].target), and rule Structure Processors (rules[].input_predicate and rules[].location_predicate).
Added minecraft:height_match
- Checks the y-level of a block, returning
trueonly if it's higher than or equal tomin_inclusiveand lower than or equal tomax_inclusive - Format: object with fields:
min_inclusive- int, the minimum y value of allowed blocks (inclusive)max_inclusive- int, the maximum y value of allowed blocks (inclusive)
Added minecraft:all_of
- Checks a list of Rule Tests for whether all of them return
truefor the same block - Format: object with fields:
rules- list of Rule Tests, the rules to test the block against
Added minecraft:any_of
- Checks a list of Rule Tests for whether any of them returns
truefor the same block - Format: object with fields:
rules- list of Rule Tests, the rules to test the block against
Added minecraft:not
- Checks a Rule Test for whether it returns
falsefor a given block - Format: object with fields:
rule- Rule Test, the rule to test the block against
Carvers
- The
worldgen/configured_carverregistry has been renamed toworldgen/carver
Changed minecraft:cave
- All fields previously under the
configfield have been inlined to the top-level - Added
countfield - non-negative Int Provider, the number of Cave tunnels to create from a seed chunk - Renamed
yScaletoroom_vertical_radius_multiplier - Added optional
start_vertical_radius_multiplierfield - Float Provider, acts as a multiplier for the vertical radius of the first segment in each tunnel- If not specified, defaults to
1.0
- If not specified, defaults to
- Added
thicknessfield - non-negative Float Provider, acts as a multiplier for the radius of carved tunnels - Added optional
weird_thickness_biasfield - Boolean- If
true, thickness will be multiplied by, with a 10% chance:random(0, 1) * random(0, 3) + 1 - If not specified, defaults to
false
- If
- Removed
replaceablefield, carvers will replace any block (excluding features) - Removed
lava_levelfield, fluids are now always selected by theaquiferorsea_levelconfiguration in the dimension - Removed
debug_settingsfield
Changed minecraft:canyon
- All fields previously under the
configfield have been inlined to the top-level - Renamed and moved
yScaletoshape.y_scale - Removed
replaceablefield, carvers will replace any block (excluding features) - Removed
lava_levelfield, fluids are now always selected by theaquiferorsea_levelconfiguration in the dimension - Removed
debug_settingsfield
Removed minecraft:nether_cave
- Replaced by
minecraft:cave
Int Providers
Added minecraft:very_biased_to_bottom Int Provider Type
Picks a random value in the provided range, with a quadratic bias towards the minimum value.
- Format: object with fields:
min_inclusive- integer, the minimum selected value (inclusive)max_inclusive- integer, the maximum selected value (inclusive)
Villager Trades
- The
given_item_modifiersfield has been renamed togiven_item_modifier- Note: unlike other fields of type
minecraft:item_modifier, this field does not support namespaced elements or tag IDs
- Note: unlike other fields of type
- The
max_usesandxpfields now require an inline value of aminecraft:context_int_providertype - The
countfield in thewantsandadditional_wantsstructures now require an inline value of aminecraft:context_int_providertype - The
reputation_discountfield now requires an inline value of aminecraft:context_float_providertype
Tags
Block Tags
- Added
#poplar_logs- all Poplar log blocks - Added
#wool_stairs- all Wool Stairs blocks - Added
#wool_slabs- all Wool Slabs blocks - Added
#cushion_uses_collision_shape- Blocks where Cushion placement raycasts against collision shape instead of interaction shape - Added
#wool_stairsand#wool_slabsto#dampens_vibrations - Added
#ores- collection tag containing all types of ores - Added
#skulls- collection tag containing all head and skull blocks - Added
#blocks_motion- collection tag containing all blocks that are considered to block motion in some way - Added
#blocks_motion_no_leaves- collection tag containing all blocks that are considered to block motion in some way, but excluding leaf blocks - Added
#entities_can_teleport_to- blocks that entities are allowed to teleport to - Added
#blocks_dolphin_jump- blocks that Dolphins cannot move through when jumping out of water - Added
#ice_melts_when_destroyed_above- blocks that causes ice to melt into water if the ice is destroyed when placed above them - Added
#blocks_motion_in_heightmap- blocks that are taken into account for themotion_blockingheightmap - Added
#blocks_motion_in_heightmap_no_leaves- blocks that are taken into account for themotion_blocking_no_leavesheightmap - Added
#blocks_lava_fire_spread- blocks that block the creation of fire by lava - Added
#blocks_fluid_flow- blocks that block fluid flow - Added
#washed_away_by_fluids- blocks that break when a fluid flows through them - Added
#required_for_poplar_leaf_ambience- blocks which can satisfy requirement for Poplar leaves to make ambient sound - Added
#turns_into_dirt_path- blocks that turn into Dirt Path blocks when a Shovel is used for path making - Added
#sculk_growth_inhibitors- blocks which keep Sculk from spreading when more than 2 are in the 8x2x8 area around it - Added
#uncarvable- blocks that Carvers can never carve - Added
#cats_can_sit_on- blocks which Cats can randomly sit on - Added
#cats_can_lie_on- blocks which Cats can randomly lie on - Added
#speeds_up_zombie_villager_curing- blocks which can increase Zombie Villager curing time if placed nearby - Added
#villagers_can_sleep_on_bed- Bed blocks which Villagers can sleep on - Added
#villager_babies_can_jump_on_bed- Bed blocks which Villager kids can jump on - Added
#height_specific_ore_replaceables- blocks which Ore Features will turn into Stone Ores if found above y-level 0 and into Deepslate Ores if found below y-level 8 - Added
#concrete_stairs- all Concrete Stairs blocks - Added
#concrete_slabs- all Concrete Slabs blocks - Added
#dangerous_for_teleportation- collection tag defining blocks that are dangerous to teleport on - Added
#cat_does_not_teleport_to- blocks that Cats do not teleport to - Added
#enderman_does_not_teleport_to- blocks that Endermen do not teleport to - Added
#shulker_does_not_teleport_to- blocks that Shulkers do not teleport to - Added
#consumable_does_not_teleport_to- blocks that entities do not teleport to when they consume food that teleports randomly when eaten - Added
#nether_portal_frame- blocks that can be used to create a Nether Portal - Added
#conduit_effect_block- blocks that can be used to build a Conduit - Removed
#overworld_carver_replaceablesand#nether_carver_replaceables
Item Tags
- Added
#poplar_logs- all Poplar log items - Added
#wool_stairs- all Wool Stairs items - Added
#wool_slabs- all Wool Slabs items - Added
#mushrooms- all Mushroom items - Added
#ores- collection tag containing all types of ores - Added
#douses_campfires- items that can douse a lit Campfire block - Added
#concrete_stairs- all Concrete Stairs items - Added
#concrete_slabs- all Concrete Slabs items - Added
#cloneable_maps- Filled Map plus all Explorer Map items and Buried Treasure Maps, used as the input to themap_cloningrecipe - Added
#extendable_maps- maps that can be zoomed out with paper, either in a Crafting Table or at a Cartography Table - Added
#brewing_potion_inputs- items that can be placed in a Brewing Stand potion slot, regardless of whether they are brewing recipe inputs - Added
#furnace_fuel_bottom_takeable- items that can be taken out of furnace by a hopper attached to the bottom face - Removed
#brewing_fuel- thebrewing_fuelitem component is now used to identify brewing fuels
Biome Tags
- Added tags for biomes which will generate the respective Abandoned Camp variant:
#has_structure/abandoned_camp_bamboo_jungle#has_structure/abandoned_camp_birch_forest#has_structure/abandoned_camp_cherry_grove#has_structure/abandoned_camp_dappled_forest#has_structure/abandoned_camp_flower_forest#has_structure/abandoned_camp_forest#has_structure/abandoned_camp_meadow#has_structure/abandoned_camp_old_growth_birch_forest#has_structure/abandoned_camp_old_growth_pine_taiga#has_structure/abandoned_camp_old_growth_spruce_taiga#has_structure/abandoned_camp_savanna#has_structure/abandoned_camp_pale_garden#has_structure/abandoned_camp_snowy_taiga#has_structure/abandoned_camp_sparse_jungle#has_structure/abandoned_camp_swamp#has_structure/abandoned_camp_taiga#has_structure/abandoned_camp_windswept_forest#has_structure/abandoned_camp_wooded_badlands
Entity Type Tags
- Added
#cannot_be_dismounted_by_item_usage- entities which cannot be dismounted by items
Damage Type Tags
- Added
#no_wolf_retaliation- damage types that should not cause tamed Wolves to attack their source in order to defend their owner
Potion Tags
- Added
#douses_fire- Potions that douse Fire blocks when they hit something - Added
#hurts_water_sensitive_entities- Potions that will hurt entities which are sensitive to water (e.g. Endermen) - Added
#extinguishes_entities- Potions that can extinguish entities - Added
#rehydrates_axolotls- Potions that will cause Axolotls to rehydrate
Structure Tags
- Added
#abandoned_camp- all variants of Abandoned Camps - Renamed
#on_woodland_explorer_mapsto#on_woodland_mansion_maps - Renamed
#on_ocean_explorer_mapsto#on_ocean_monument_maps - Renamed
#on_jungle_explorer_mapsto#on_jungle_pyramid_maps - Renamed
#on_swamp_explorer_mapsto#on_swamp_hut_maps - Renamed
#on_trial_explorer_mapto#on_buried_trial_chambers_map
Fluid Tags
- Added
#axolotl_try_find_liquid- all fluids Axolotls are trying to find - Added
#dolphin_try_find_liquid- all fluids Dolphins are trying to find - Added
#frog_try_find_land_near_liquid- all fluids Frogs are trying to find land near to - Added
#entity_floatable- all fluids that make entities float
Particles
Added minecraft:red_poplar_leaves
- Falls from Red Poplar Leaves blocks
- Has no fields
Added minecraft:orange_poplar_leaves
- Falls from Orange Poplar Leaves blocks
- Has no fields
Added minecraft:yellow_poplar_leaves
- Falls from Yellow Poplar Leaves blocks
- Has no fields

Resource Pack Versions 89.0 through 97.1
Palette Textures
- All armor trim palette textures have been moved from
textures/trim/color_palettes/totextures/palettes/trim/- The base armor trim palette texture has instead been moved to
textures/palettes/trim_base.png
- The base armor trim palette texture has instead been moved to
- Entity armor trim material textures are no longer generated into the
minecraft:trimsatlas withpaletted_permutations, but rather generated on-demand- The base palette ID is now specified in a new
palettemcmeta section field - This section has a single field:
base_palette- the base Palette Texture ID to remap from
- The base palette ID is now specified in a new
- Item armor trim material textures are still generated with
paletted_permutationsas before
paletted_permutations Sprite Source
- Palette Texture locations in the
palette_keyandpermutationsfields have been replaced by Palette Texture IDs - i.e.<namespace>:<path>now resolves to<namespace>:textures/palettes/<path>.png
Equipment Assets
A new optional trim_overrides field can be used to swap out the texture or palette used with specific trim materials or patterns for a given equipment asset. This replaces functionality formerly supported by override_armor_assets in the trim material, as well as custom atlas overrides.
- Format: list of override entries with fields:
when- object with fields, the material and/or pattern to matchmaterial- optional Trim Material ID, the material to match (if specified)pattern- optional Trim Pattern ID, the pattern to match (if specified)- At least one of
materialorpatternmust be specified - If both are specified, both must match for the entry to be used
texture- optional trim pattern asset ID, a replacement texture to use if this entry matches- Textures are specified in the same format as
asset_id - If not specified, the default texture for the pattern will be used
- Textures are specified in the same format as
palette- optional palette ID, a replacement palette to use if this entry matches- If not specified, no palette remapping will be applied to the texture
- The first matching entry will always be selected
- At least one of
textureorpalettemust be defined
Block Sprites
- Added new Block textures:
block/orange_poplar_leaves.pngblock/poplar_door_bottom.pngblock/poplar_door_top.pngblock/poplar_log.pngblock/poplar_log_top.pngblock/poplar_planks.pngblock/poplar_sapling.pngblock/poplar_shelf.pngblock/poplar_sign.pngblock/poplar_trapdoor.pngblock/red_poplar_leaves.pngblock/red_shrub.pngblock/shelf_mushroom_stage0.pngblock/shelf_mushroom_stage1.pngblock/straw_bed.pngblock/stripped_poplar_log.pngblock/stripped_poplar_log_top.pngblock/poplar_hanging_sign.pngblock/yellow_poplar_leaves.png
Item Sprites
- Added new Item textures:
item/abandoned_camp_map.pngitem/black_cushion.pngitem/blue_cushion.pngitem/brown_cushion.pngitem/buried_ancient_city_map.pngitem/buried_mineshaft_map.pngitem/buried_treasure_map.pngitem/buried_trial_chambers_map.pngitem/cyan_cushion.pngitem/desert_pyramid_map.pngitem/desert_village_map.pngitem/gray_cushion.pngitem/green_cushion.pngitem/jungle_pyramid_map.pngitem/light_blue_cushion.pngitem/light_gray_cushion.pngitem/lime_cushion.pngitem/magenta_cushion.pngitem/ocean_monument_map.pngitem/orange_cushion.pngitem/pink_cushion.pngitem/plains_village_map.pngitem/poplar_boat.pngitem/poplar_chest_boat.pngitem/poplar_door.pngitem/poplar_hanging_sign.pngitem/poplar_sign.pngitem/purple_cushion.pngitem/red_cushion.pngitem/savanna_village_map.pngitem/snowy_village_map.pngitem/swamp_hut_map.pngitem/taiga_village_map.pngitem/warm_ocean_ruins_map.pngitem/white_cushion.pngitem/woodland_mansion_map.pngitem/yellow_cushion.png
- Removed Item textures:
item/filled_map_markings.pngitem/light.png
UI Sprites
- Added new UI textures:
gui/hanging_signs/poplar.pnggui/signs/poplar.pnggui/realms/friends.pnggui/realms/minigames.pnggui/realms/private_server.pnggui/sprites/widget/realms_button.pnggui/sprites/widget/realms_button_disabled.pnggui/sprites/widget/realms_button_highlighted.png
Entity Textures
- Added new Entity textures:
entity/boat/poplar.pngentity/chest_boat/poplar.pngentity/cushion/black_cushion.pngentity/cushion/blue_cushion.pngentity/cushion/brown_cushion.pngentity/cushion/cyan_cushion.pngentity/cushion/gray_cushion.pngentity/cushion/green_cushion.pngentity/cushion/light_blue_cushion.pngentity/cushion/light_gray_cushion.pngentity/cushion/lime_cushion.pngentity/cushion/magenta_cushion.pngentity/cushion/orange_cushion.pngentity/cushion/pink_cushion.pngentity/cushion/purple_cushion.pngentity/cushion/red_cushion.pngentity/cushion/white_cushion.pngentity/cushion/yellow_cushion.png
Map Sprites
- Added new Map textures:
abandoned_camp.pngancient_city.pngdesert_pyramid.pngmineshaft.pngwarm_ocean_ruins.png
- The following Icons have been updated in order to show player rotation on the map:
player.pngplayer_off_limits.pngplayer_off_map.png
Block Crumbling Overlay Textures
- Added new block crumbling overlay textures that replace the existing ones for translucent blocks rendered with OIT:
block/destroy_oit_stage_0.pngblock/destroy_oit_stage_1.pngblock/destroy_oit_stage_2.pngblock/destroy_oit_stage_3.pngblock/destroy_oit_stage_4.pngblock/destroy_oit_stage_5.pngblock/destroy_oit_stage_6.pngblock/destroy_oit_stage_7.pngblock/destroy_oit_stage_8.pngblock/destroy_oit_stage_9.png
Sounds
- Added new sound events:
block.shelf_mushroom.breakblock.shelf_mushroom.fallblock.shelf_mushroom.placeblock.shelf_mushroom.stepblock.shelf_mushroom.bounceblock.poplar_leaves.ambientblock.straw_bed.breakblock.straw_bed.break_leaveblock.straw_bed.stepblock.straw_bed.placeblock.straw_bed.hitblock.straw_bed.fallblock.poplar_leaves.breakblock.poplar_leaves.fallblock.poplar_leaves.placeblock.poplar_leaves.stepblock.poplar_leaves.hitblock.red_shrub.breakblock.red_shrub.placeentity.cushion.breakentity.cushion.placeentity.cushion.get_upentity.cushion.sit
Particles
- Added new Particle textures:
orange_poplar_1.pngorange_poplar_2.pngorange_poplar_3.pngorange_poplar_4.pngred_poplar_1.pngred_poplar_2.pngred_poplar_3.pngred_poplar_4.pngyellow_poplar_1.pngyellow_poplar_2.pngyellow_poplar_3.pngyellow_poplar_4.pngshelf_mushroom_particle.pngstraw_bed_particle.png
Item Models
- Added optional
shade_direction_overrideto block model elements- Accepted values are cardinal directions (
down,up,north,south,west,east) - When set, this overrides directional shading for the element regardless of face orientation
- Accepted values are cardinal directions (
- Removed
shadefrom block model elements- Use
shade_direction_override: "up"to get the previousshade: falsebehavior
- Use
Tint Sources
- Removed
minecraft:map_color- The
minecraft:map_colorcomponent it read no longer exists
- The
Shaders & Post-process Effects
terrain.vshandterrain.fshshaders are refactored to support multi-draw- Some of the members in
GlobalsandDynamicTransformsare shuffled to use less memory for those uniform blocks
Developer's Note: Although it is possible in Resource Packs, overriding Core Shaders is considered as unsupported and not an intended Resource Pack feature. These shaders exist as part of the internal implementation of the game, and as such, may change at any time as the game's internals evolve. We understand that overriding Core Shaders is used for very cool Resource Pack features, many of which lack supported alternatives. We would like to provide better, supported alternatives in the future.
Order-independent Transparency (OIT)-related Shader Changes
- Added new shaders to support order-independent transparency:
core/blit_depth.fshcore/oit_composite.fshcore/oit_depth_bounds_cull.fshinclude/oit.glslinclude/oit_add_transmittance.glslinclude/oit_common.glslinclude/oit_depth_bounds.glslinclude/oit_depth_sample.glslinclude/oit_sample.glsl
- Extracted the texture sampling logic from
core/terrain.fshintoinclude/texture_sampling.glsl - Renamed the following core shaders:
core/rendertype_clouds.vsh→core/clouds.vshcore/rendertype_clouds.fsh→core/clouds.fshcore/rendertype_world_border.vsh→core/world_border.vshcore/rendertype_world_border.fsh→core/world_border.fsh
- Updated core shaders to support order-independent transparency
- Introduced new defines:
OIT- If present, indicates that OIT is enabledOIT_DEPTH_BOUNDS- If present, indicates that the depth bounds pass is being executedOIT_TRANSMITTANCE- If present, indicates that the transmittance pass is being executedOIT_ACCUMULATE- If present, indicates that the accumulate pass is being executedOIT_ALPHA_ONLY- If present, indicates that either the depth bounds or transmittance pass is being executedOIT_ADDITIVE- If present, indicates that the OIT algorithm should emulate additive blending for the executing pipelineOIT_WAVELET_RANK- An integer internal to the OIT algorithmOIT_COEFF_COUNT- An integer internal to the OIT algorithmOIT_COEFF_ATTACHMENT_COUNT- An integer internal to the OIT algorithmRENDERPEARL_DEPTH_IS_ZERO_TO_ONE- If present, indicates that the current rendering backend uses the depth range of[0, 1], it is available globally to all shaders independently of the OIT settingRENDERPEARL_EXPLICIT_DEPTH_INVARIANCE- If present, indicates that an OIT shader should explicitly output a depth value because a device it is running on can produce a slightly different implicit value- Affected shaders:
core/block.fshcore/block.vshcore/clouds.fshcore/clouds.vshcore/entity.fshcore/entity.vshcore/item.fshcore/item.vshcore/particle.fshcore/position_color.fshcore/rendertype_beacon_beam.fshcore/rendertype_clouds.fshcore/rendertype_crumbling.fshcore/rendertype_entity_shadow.fshcore/rendertype_lightning.fshcore/rendertype_lines.fshcore/rendertype_world_border.fshcore/terrain.fshcore/terrain.vshcore/text.fshcore/world_border.fshcore/world_border.vsh
- Introduced new defines:
- Removed the old transparency post chain:
post_effect/transparency.jsonshaders/post/transparency.fsh
New Core Shaders
core/integrate_depth.fshwas added and is used to integrate the "3d hud" and always-on-top gizmo depth buffers into the main depth buffer
Removed Core Shaders
core/text_background.fshandcore/text_background.vshwere removed and text background in Text Display Entities is now rendered using the text shaders
Shader Compilation Changes
- Shaders are now compiled by ShaderC when using OpenGL as well, identically to when using Vulkan
- Shader includes are now handled by ShaderC using
#includeinstead of#moj_import - Shader inputs and outputs must have a location specified in shader source
- Vertex input names must still match expected names
- Vertex outputs are matched to fragment inputs solely by location, the name is now ignored
- Introduced new define
RENDERPEARL_INSTANCE_INDEX_INCLUDES_BASE_INSTANCE- A boolean indicating ifgl_InstanceIndexfollows Vulkan or OpenGL (gl_InstanceID) semantics
Developer's Note: Vertex inputs in previous versions using OpenGL were not allowed to specify a location. Compatibility can be preserved by only specifying locations when the "VULKAN" macro is defined.
Developer's Note: Vertex outputs and fragment inputs in previous versions were matched based on name alone. Compatibility can be preserved by continuing to use identical names.
Always-on Post Effect Support
- A resource pack can now define a
minecraft:end_of_framepost effect - It will be applied before other post effects, including the ones enabled by the new
posteffectcommand - This post effect is always on as long as the resource pack is loaded, and cannot be controlled by the
posteffectcommand - As usual with resource pack resources, in case of multiple packs defining this effect, the one from the last resource pack in the list will apply

Fixed bugs in 26.3
- MC-4 - Item drops sometimes appear at the wrong location
- MC-2157 - Particles emitted from dragon eggs when teleporting do not point in the correct direction
- MC-5269 - Updating a server's address in the multiplayer menu does not update its status
- MC-40597 - The interaction of the game's built-in fullscreen mode and macOS fullscreen can glitch the game window
- MC-44654 - Some entities' positions are not updated on the client when teleported
- MC-46421 - You cannot use Nether portals, End portals, and End gateways while in Spectator mode
- MC-51859 - The line spacing of text within all hover tooltips is larger between the first and second lines
- MC-58061 - Endermen can teleport onto signs
- MC-59810 - Cannot break blocks while sprinting on macOS
- MC-73162 - Breaking an entity that instantly breaks sometimes destroys the block behind it in Creative mode
- MC-90148 - When a player gets out of a boat, the other passenger's head remains rotated sideways
- MC-91006 - Some entities lose their name when placed or broken
- MC-96365 - Boats and rafts retain their rotational momentum after exiting and entering them
- MC-102732 - Arrows can visually bounce off of entities when barely missing them
- MC-102836 - Endermen can teleport to some dangerous places
- MC-102881 - Shulkers do not emit any particles when teleporting
- MC-106416 - Endermen and entities eating chorus fruit can teleport outside the world border and into powder snow
- MC-110989 -
/spreadplayersconsiders signs to be valid blocks to be spread onto - MC-112580 - Structure blocks' GUI does not pause the game in singleplayer
- MC-112744 - The
TeamNBT tag only exists for living entities - MC-113006 - Items reeled in with fishing rods do not move smoothly but appear to teleport
- MC-116286 -
/spreadplayerscan spread entities on structure void - MC-121278 - Key combinations are mapped to the US keyboard layout even if using another layout
- MC-121367 - The game doesn't use borderless fullscreen
- MC-121375 - The Command (⌘) key on macOS is displayed as "Win" in the Key Binds screen
- MC-122477 - Opening the chat sometimes appends the character the used key types to the message on Linux
- MC-122717 - Success messages for some commands include unaffected entities, unlike the command result
- MC-122731 - Camera movement stutters when turning in a boat
- MC-127939 - Several keys are displayed as "scancode.number" in the Key Binds menu
- MC-133407 - Key binds switch when upgrading from before 1.13 if not using a QWERTY keyboard
- MC-148541 -
/spreadplayerscan spread players to seagrass near the surface of the water - MC-149058 - Using hotkeys to move items into the anvil UI appends the character the used key types to the new item name
- MC-151857 - The success message of
/givewhen affecting multiple players uses the wrong string - MC-154881 - Dropping an item from your hotbar at the same time as switching to another hotbar slot desyncs the second item
- MC-159283 - Terrain generation fails in progressively shrinking rings centered around the End's center
- MC-161885 - Many transparent things do not render behind slimes
- MC-161898 - Transparent particles make other particles behind them invisible
- MC-161926 - The block breaking animation is more transparent when mining ice or stained glass
- MC-162159 - Riding boats above bubble columns causes players to teleport up 2 blocks
- MC-168446 - Single dark oak and pale oak saplings accept bone meal despite not being able to grow
- MC-168653 - Mobs, particles, clouds, water and transparent blocks don't render behind the transparent parts of shulker bullets
- MC-174958 -
/gamerulesucceeds even when the value is not changed - MC-175180 - The
SilentNBT tag still doesn't make some entities fully silent - MC-183446 - Endermen still avoid projectiles when riding minecarts or boats
- MC-187669 - The world border is too dark with the "Improved Transparency" option enabled
- MC-189953 - The Super key on macOS is displayed as "Win" in the Key Binds screen
- MC-190203 - Transparent and specially rendered blocks, entities, clouds, water and particles don't render behind wind charges, and charged creeper, wither and breeze armor
- MC-202197 - Entities' name tag background is rendered behind transparent things
- MC-206356 - The motion of falling blocks is visually slow
- MC-206540 - Increased input delay when riding an entity
- MC-210117 - Sculk sensors don't detect ice and snow melting
- MC-210584 - Water does not render behind items modified to use semi-transparent textures
- MC-210734 - Translucent blocks and other entities render over invisible spiders' eyes regardless of positions
- MC-212671 - Loot table entries of type
tagwithexpandset to true do not apply loot functions to the items - MC-214113 - Endermen and shulkers can teleport onto the Nether roof
- MC-218015 - Translucent blocks and other entities render over invisible endermen's eyes regardless of positions
- MC-218156 - Shipwrecks and ocean ruins can generate with empty buried treasure maps
- MC-222559 - Block hitboxes and entity hitboxes don't render behind semi-transparent entities
- MC-222818 - You can ignite TNT in Adventure mode
- MC-223321 - You can destroy turtle eggs by standing or jumping on them in spawn protection
- MC-223323 - You can trample farmland in spawn protection
- MC-223559 - Transparent blocks, particles, and clouds are not rendered behind semi-transparent marker armor stands
- MC-224528 - Two splash texts use curly single quotes (’) instead of apostrophes (')
- MC-227008 - Endermen constantly try to teleport when riding a vehicle under daylight
- MC-228273 - Goats do not move correctly after they are tempted during a long jump
- MC-229405 - The inside of boats blocks the rendering of most translucent objects with the "Improved Transparency" option enabled
- MC-229831 - Enchanting tables' GUI has three pixels in the top right corner that shouldn't be there
- MC-233888 - Pressing the Space or Enter keys to interact with elements results in the pressed key being executed again
- MC-236497 - The head rotations of passengers in boats are not correctly displayed for other players
- MC-237053 - Block breaking particles cannot be seen by other players
- MC-237165 - Block breaking sounds cannot be heard by other players
- MC-237679 - The head rotations of passengers in boats are constantly forced to turn in certain directions if the rider were to dismount the boat while moving left or right
- MC-239401 -
items/light.pngnever appears in-game; is pointlessly referenced by other game assets - MC-245030 - The "Bee buzzes" closed caption only appears when a bee buzzes for the first time
- MC-247034 - Particles produced from entities growing cannot be seen by other players
- MC-248600 - Particles produced from moving in powder snow cannot be seen by other players
- MC-248666 - Particles produced from dragon eggs teleporting cannot be seen by other players
- MC-249200 - Several entities constantly deviate visually from their actual positions on the client when teleported
- MC-252369 - Data packs can fail to load due to a feature cycle when one does not exist
- MC-252934 - Placing structures with paintings, item frames, or glow item frames logs
Block-attached entity at invalid position: [BlockPosition] - MC-253023 - Breaking paintings, item frames, or glow item frames cannot trigger sculk shriekers
- MC-254353 - A packet to remove the score is always broadcast when a score is reset
- MC-254370 - The
entity_scorespredicate type cannot check all possible scores - MC-254547 - Villagers do not level up when exiting the world immediately after filling their experience bar
- MC-254661 -
/schedule clearrequires a namespace in its function argument - MC-256073 - Miscolored pixel in
tab_inventory.png - MC-256096 - Some entities on a team can harm teammates that walk into them when friendly fire is disabled
- MC-256097 - Some entities on a team can harm their teammates when they explode when friendly fire is disabled
- MC-258347 - Endermen no longer create an extra trail of particles when teleporting
- MC-258579 - The player's head does not rotate with a delay from the camera in third person view while riding a vehicle
- MC-259512 - Horizontal camera rotation lags when riding
- MC-259583 - Brewing with a single bottle of dragon's breath does not return a glass bottle afterward
- MC-259812 - Block and item displays, beds, clouds, signs, shulker boxes, and semi-transparent blocks and entities don't render behind text displays
- MC-260780 - Shulker bullets always push fireballs south
- MC-263100 - Cave biomes interfere with relief on exploration maps
- MC-263708 - The Key Binds screen renders keypad keys the same as regular keys
- MC-264003 - Boats carrying players sometimes stop abruptly when sliding along ice
- MC-265423 - When villagers acquire enough experience to level up more than once, they only gain a single level
- MC-265584 - TNT dispensed in bubble columns with soul sand right under visually moves through blocks above
- MC-265743 - Entities, block entities, clouds and semi-transparent blocks are always rendered in front of text displays with
see_throughenabled - MC-266231 - Mouse buttons above 8 can't be set as key binds
- MC-266429 - Holding Shift on macOS causes the hotbar scroll direction to reverse when scrolling with the mouse
- MC-267902 - The failure message of
/randomwhen the specified range is too large states an incorrect maximum for the range - MC-268145 -
cache_oncedensity functions don't work - MC-268155 - Rendering gaps in the world under specific conditions
- MC-268521 - The game window doesn't have a minimal width and height
- MC-269968 - Can't scroll with the mouse while holding Shift on macOS (except in the hotbar)
- MC-270706 - Trying to brew an uncraftable potion into a splash or lingering potion consumes the reagent but keeps the potion exactly as is
- MC-270970 - The player's camera shakes when attempting to step up blocks with a boat above them
- MC-271069 - Item entities appear to fly towards the player when picked up by a dolphin that isn't being rendered
- MC-271297 -
/fillbiomedoesn't fail when no changes are made - MC-271723 - Translucent blocks and other entities render over invisible phantoms' eyes regardless of positions
- MC-271724 - Translucent blocks and other entities render over invisible breezes' eyes regardless of positions
- MC-272801 - Particles and translucent objects do not render when behind the ender dragon's death animation
- MC-273327 - The
#convertable_to_mudblock tag misspells "convertible" as "convertable" - MC-273708 - Endermen taking environmental damage attempt to teleport when riding an entity
- MC-274924 - Angry endermen suffocating while in boats or minecarts can attack their target from really far away
- MC-275111 - Two animals in a boat look sideways instead of at the player when lured
- MC-275532 - The abbreviation "fps" is inconsistently capitalized across strings
- MC-276079 - Sending a swing packet to the client causes it to send one back to the server
- MC-276692 - Lingering potions which land on the target's head do not grant their effects to the target
- MC-277772 - Stained glass renders incorrectly through item models in stained glass with the "Improved Transparency" option enabled
- MC-277906 - Ender pearls land incorrectly at high speeds
- MC-278336 - The player model still flickers at very high speeds
- MC-278557 - Exiting a spinning boat and then inserting a mob makes its head spin forever
- MC-278771 - The incorrect command context is used when providing suggestions for redirected commands
- MC-279185 - The
selectWorld.load_folder_accessstring is missing an article before the word "folder" - MC-279285 - Experience orbs that have been stuck inside blocks rapidly accelerate toward the ground if they've been disturbed by a player's presence
- MC-279395 - Trees can generate floating over ruined portals
- MC-279561 - Resin brick walls without a center post are not solid
- MC-279586 - Closed captions continue to fade when their sound plays again from farther away, causing visual delays in the overlay
- MC-279819 - The mining speed factor of Mining Fatigue is inconsistent at level 3
- MC-280250 - Projectiles sometimes desync when thrown or shot while moving
- MC-293615 - Tooltip formatting of "[item] x [number]" is inconsistent across different types of items
- MC-293755 - The ender dragon's neck and tail disconnect from its body when it turns
- MC-295678 - Translucent blocks above water flicker when crossing chunk borders
- MC-295756 - Pistons desync on the client, causing players to be moved differently compared to other entities
- MC-296006 - Entities do not face the player correctly while in a boat
- MC-296368 - The
entity.happy_ghast.ridingsound event displays no closed caption - MC-296773 - Taken screenshots are rendered as a black image on Intel graphics of Gen7 and Gen7.5 architecture
- MC-297741 - Gravity-affected blocks in upwards bubble columns can visually clip through solid blocks above them
- MC-298066 - Directly entering a bed from a mount places the player in the wrong place
- MC-298431 - Boats are launched by slime blocks inconsistently
- MC-298659 - Translucent blocks and some entities render above text displays with
see_throughenabled - MC-298762 - Phantoms deflect arrows shot from bows or crossbows
- MC-299019 - Using a bed while riding a rideable mob causes the player to sleep either on the ground, or on top of the mob
- MC-299460 - Saddled pigs in boats carried by happy ghasts can cause a desync when unequipping a carrot on a stick
- MC-299582 - Special crafting recipes cannot be given or taken with
/recipeand do not respect thelimited_craftinggame rule - MC-300000 - Players desync when teleporting all users riding a happy ghast
- MC-300831 -
/test locatealways fails - MC-301804 - Test blocks' GUI does not pause the game in singleplayer
- MC-302221 - Moving entities deflect arrows
- MC-302271 - Sniffers stop sniffing after relog
- MC-302537 -
/givesucceeds when trying to give more than 100 stacks of an item despite the failure message and no items being given - MC-302661 - Interacting with something while holding spears plays the spear jab animation
- MC-302687 - Throwing items out of your inventory while holding spears plays the spear jab animation
- MC-302705 - Having a spear in the main hand affects the hand animation speed for items held in the off hand
- MC-303360 - Flat-cached shifted noise density functions are recalculated for every Y level
- MC-303493 - The
apply_impulseentity effect does not apply components of the impulse that would cause the affected entity to hit a solid block when used with atickorlocation_changedadvancement trigger - MC-303626 - Block hitboxes, particles, semi-transparent blocks and non-block items render behind entity hitboxes with the "Improved Transparency" option enabled
- MC-303789 - Looking directly up with an
apply_impulseenchantment entity effect will limit the impulse's effect on the X and Z axes to only apply on one of the two horizontal axes - MC-304195 - The arm overlay textures of parched have unused pixels not used by the model
- MC-304213 - Zombies, husks and drowned hold out the incorrect arm when holding spears
- MC-304594 - Spears can dismount interaction entities from their vehicles
- MC-304719 - The
InhabitedTimeNBT tag for some chunks can be set to impossibly high values when a world is opened - MC-304920 - Spears in third person look wrong when the left hand is the main hand
- MC-305214 - Arrows deflecting off of entities get offset
- MC-305422 - Players can sometimes get kicked due to a waypoint packet the client fails to handle
- MC-305535 - Elytra are activated after only single tapping the "Jump" key when the player is in lava
- MC-305707 -
/timereports success when no changes are made - MC-306012 - Armadillos can escape fenced areas when at the edge of the simulation distance
- MC-306127 - Block outlines are no longer visible behind translucent items
- MC-306156 - Breezes, slimes and players between translucent blocks or fluids appear behind them with the "Improved Transparency" option enabled
- MC-306231 - Boats are filled with water when viewed through translucent blocks with the "Improved Transparency" option enabled
- MC-306318 - Translucent items render through the head of players with a translucent item equipped on their head with the "Improved Transparency" option enabled
- MC-306619 - Cannot jump while sneaking while using a Chinese input method
- MC-306778 - The fog color no longer transitions smoothly when the weather changes at night while under the Night Vision effect
- MC-306891 - Sneaking and then opening the chat forces the IME to switch to the corresponding CJK mode
- MC-307122 - The hanging roots drop from hoeing rooted dirt appears to be hardcoded
- MC-307206 -
Std140Builderincorrectly padsvec3sandivec3s - MC-307285 - Translucent blocks don't render behind sulfur cubes
- MC-307319 - Low performance with the Vulkan rendering backend on Intel Arc GPUs (especially on Linux)
- MC-307345 - The smoke particles produced by potent sulfur do not render behind stained glass
- MC-307376 - The CPU and GPU isn't fully utilized; the framerate is stuck at 25-35 fps
- MC-307384 - Screen tearing occurs with the Vulkan rendering backend in fullscreen mode with lower framerates, even if VSync is enabled
- MC-307449 - Spawners with their light limits set no longer spawn mobs underground at night time
- MC-307452 - Significant performance regression with the Vulkan rendering backend
- MC-307596 - The OpenGL rendering backend seems to be very laggy
- MC-307616 - Typo in a log message in
ActiveProfiler: "aprox" - MC-307618 - Typo in a log message in
SoundEngine: "disapeared" - MC-307625 - The glowing effect is not visible on block displays displaying End portals or End gateways
- MC-307648 - "non-heap" is misspelled as "non-head" in the system details section of crash reports
- MC-307660 - Typo in a log message in
GameRenderer: "coudln't" - MC-307709 - The texture of upward facing sulfur spikes' merged tip has a single wrong pixel at the very top
- MC-307890 - Some textures of geyser plume particles use the wrong color in some spots
- MC-307902 - Partially transparent blocks inside sulfur cubes don't render correctly
- MC-307918 - Sculk patches can cause errors in the log during world generation
- MC-307933 - Deepslate ores can generate on the surface by replacing tuff around sulfur springs
- MC-307938 - Low performance with the Vulkan rendering backend on AMD GPUs
- MC-307996 - The game cannot use hardware acceleration on devices lacking the
fillModeNonSolidVulkan feature - MC-308008 - The success message of
/tagreports that it affected more entities than it did - MC-308009 - The success message of
/scoreboard players enablereports that it affected more players than it did - MC-308011 - The success message of
/recipereports that it affected more players than it did - MC-308012 - The success message of
/enchantreports that it affected more entities than it did - MC-308013 - The success message of
/effectreports that it affected more entities than it did - MC-308014 - The success message of
/clearreports that it affected more players than it did - MC-308125 - Scroll wheel tilting/sideways scrolling appears to move the selected hotbar slot the wrong way
- MC-308127 - The "Friends Screen" key bind overrides debug hotkeys using the same key
- MC-308222 - World generation heightmaps do not persist properly through chunk saving and loading
- MC-308254 - Dying to a sulfur cube with a magma block doesn't increment the player's
killed_by:sulfur_cubestatistic - MC-308314 - Custom player heads do not render their texture properly when inside a sulfur cube
- MC-308344 - Validation error when compiling shaders containing in/out array or matrix variables with the Vulkan rendering backend
- MC-308405 -
/unpublishsucceeds when the game is not published despite the failure message - MC-308406 - Item models are shown incorrectly in the smithing table menu's armor stand
- MC-308460 - Some of the stems in wildflowers and pink petals render brighter
- MC-308469 - Hitting the ender dragon's head hitbox no longer causes the ender dragon to take more damage
- MC-308490 - The "regular" sulfur cube archetype produces stone sounds, despite no longer using stone blocks
- MC-308593 - Animated blocks (notably water and lava) render incorrectly on some graphics
- MC-308647 - The resource packs screen can cache font glyphs incorrectly after toggling the "Font Settings" option
- MC-308694 - Using
/defaultgamemodechanges everyone's game mode to the one set in "Settings for Other Players" in LAN worlds - MC-308699 - Switching the host's game mode causes new LAN players to ignore the forced game mode
- MC-308749 - Exiting and rejoining the same LAN session resets your game mode
- MC-308752 - Frame presentation stutters heavily with the OpenGL rendering backend on Intel Arc if a GUI is opened in borderless fullscreen mode
- MC-308765 - Ender pearls don't cancel the player's velocity
- MC-308789 - Pointed dripstone and sulfur spikes can be destroyed by tridents in Adventure mode
- MC-308798 - Dolphins take much longer to pick up items
- MC-308804 - The input method does not switch to the corresponding CJK mode in the Create New World screen
- MC-308809 - Full-width spaces take up more space on signs now
- MC-308830 - Placing beds does not send block updates to the foot half's neighboring blocks
- MC-308836 - Obfuscated text no longer keeps a consistent width
- MC-308849 - Creakings can take knockback
- MC-308851 - The
chat_restriction.disabled_by_profile.actionstring is improperly capitalized - MC-308866 - Unable to change online settings when in a world
- MC-308914 - End portals or End gateways held by glowing endermen do not glow
- MC-308915 - End portals and End gateways do not glow when inside glowing minecarts
- MC-308916 - Glowing TNT that renders as an End portal or End gateway does not glow
- MC-308917 - Items with the
end_cubespecial model type do not show a glowing outline where expected - MC-308961 - When changing the game mode using debug hotkeys while in the World Options screen, the "Game Mode" button does not update
- MC-309081 - Decorated pots and chorus flowers can be destroyed by projectiles in Adventure mode
- MC-309262 - Falling blocks disappear for a split second when landing
- MC-309298 - Sending chat messages while having the "Chat Delay" option set to a nonzero value can sometimes kick you from the game
- MC-309479 - The game crashes during the loading screen with the message "Failed to wait for frame completion" on some systems
- MC-309501 - Dropped shelves rotate off-center
- MC-309565 - Block outlines are rendered behind translucent elements if the "High Contrast Block Outlines" option is enabled
- MC-309872 - The system freezes when pressing the Windows key with the "Exclusive Fullscreen" option enabled
- MC-309875 - New translations for the tooltip of the "Improved Transparency" option are wrongly backported
- MC-309891 - The
chat_restriction.disabled_by_launcherstring lacks a period, unlike similar strings - MC-309893 - The
gamerule.minecraft.fire_spread_radius_around_player.descriptionstring lacks a period, unlike similar strings - MC-309897 - The
gui.report_to_serverstring is improperly capitalized - MC-309898 - The
editGamerule.inGame.discardChanges.titlestring is improperly capitalized - MC-309901 - The
structure_block.position.xstring is improperly capitalized - MC-309902 - Some strings contain stray spaces adjacent to line breaks
- MC-309903 - The "Isn't It Iron Pick" advancement name is missing a question mark
- MC-309907 - The word "whoosh" is misspelled as "woosh" in the
subtitles.block.bubble_column.upwards_insidestring - MC-309908 - The
subtitles.entity.copper_golem.no_item_getstring is missing an article before the word "item" - MC-309911 - The words "blocks" and "seconds" in the
commands.worldborder.set.growstring are always pluralized - MC-309914 - The
commands.op.failedstring has awkward and inconsistent adverb placement, unlike similar strings - MC-309915 - The
commands.kick.owner.failedstring is missing articles before the words "server" and "LAN" - MC-309916 - Some
/stopwatchstrings incorrectly capitalize the word "Stopwatch" mid-sentence, which is inconsistent with other commands - MC-309918 - The
commands.perf.startedstring is missing a hyphen between the words "10" and "second" and an article before the word "10" - MC-309919 - The
mco.errorMessage.6002string is improperly capitalized - MC-309920 - The
mco.configure.world.close.question.line1string is improperly capitalized - MC-309921 - The
mco.snapshot.subscription.infostring uses the "to" preposition instead of "with" - MC-309922 - The
advMode.trackOutputstring is improperly capitalized - MC-309923 - The
gamerule.minecraft.entity_drops.descriptionstring is improperly capitalized - MC-309924 - The
argument.enum.invalidstring surrounds the placeholder with double quotes instead of single quotes, unlike every other command - MC-309925 - The
mount.onboardstring is improperly capitalized - MC-309926 - The
selectWorld.edit.backupSizestring is improperly capitalized - MC-309927 - The
gui.friends.error.unauthorizedstring lacks a period, unlike similar strings - MC-309928 - The
multiplayer.confirm_command.signature_requiredstring lacks a period - MC-309937 - The
argument.pos.outofboundsstring ends with a period, unlike similar strings - MC-309938 - The
quickplay.error.invalid_identifierstring is missing an article before the word "world" - MC-309940 - The
datapackFailure.safeMode.failed.titlestring ends with a period, unlike similar title strings - MC-310041 - Under specific conditions, chunk loading frequently fails
- MC-310057 - Pressing the "Advancements" key bind while its menu was opened from the pause menu closes both menus
- MC-310062 - Armadillos stop following players holding spider eyes after relog
- MC-310076 - Mobs sometimes stop just far enough away from the player to be unable to attack them
- MC-310182 - Some descriptive tooltip strings lack a period, unlike similar strings
- MC-310184 - The
commands.bossbar.set.max.unchangedstring abbreviates "maximum" to "max", unlike similar strings - MC-310186 - The
options.languageWarningstring lacks a period, unlike similar strings - MC-310187 - The
commands.bossbar.get.visible.visiblestring uses "shown" instead of "visible", unlike similar strings - MC-310188 - Some
/tag listsuccess strings always pluralize the word "tags" - MC-310232 - Resizing the game window in the Realms players menu misplaces UI elements
- MC-310233 - Some strings that contain percentages have spaces before the percentage sign, unlike similar strings
- MC-310236 - Some strings use an ampersand instead of the word "and", unlike similar strings
- MC-310289 - Entity collisions fully above an entity's hitbox are ignored when stepping up blocks
- MC-310300 - Other windows cannot be displayed on top of the game window even with the "Exclusive Fullscreen" option disabled
- MC-310337 - The game log outputs the incorrect minimum format version requiring the
pack_formatfield inpack.mcmeta - MC-310372 - Tripwires depowering breaks cross-chunk block tick processing order
- MC-310476 - Projectiles only collide outright with the world border when underwater
- MC-310595 - The Option key on macOS is displayed as "Alt" in the Key Binds screen
- MC-310676 - The
savanna_lamp_post_01village structure contains a trailing closing square bracket in the jigsaw block's NBT - MC-310684 - Camels stop following players holding cacti after relog
- MC-310787 - Villagers do not level up until the trading window is closed for several seconds
- MC-310939 - Interacting with camels with two passengers is preferred over using items
- MC-310962 - The trading UI opens and immediately closes when interacting with a villager whose trades were altered with commands
- MC-311094 - Villager discounts do not apply until the trading window is closed and reopened
- MC-311113 - The game does not hand off focus when clicking links on Wayland
- MC-311186 - The water overlay and fog does not render when the player's head is inside a block underwater
- MC-311235 - Upgrading a world from before 26.1 can cause data from other worlds to get saved inside it
- MC-311245 - Ruined portals can generate replacing End portal frames
- MC-311271 - Some loot context parameters are missing from the
genericloot context type - MC-311272 - The game crashes when referenced loot context parameters are not provided by certain loot tables
- MC-311323 - Locating a structure creates an empty region file for every candidate chunk in ungenerated terrain
- MC-311414 - Players can teleport arbitrary distances by using a desynced carrot on a stick on a pig
- MC-311419 - Breaking a falling block with another one on top causes the top block to briefly become invisible when landing, revealing unlit block particles
- MC-311453 - Particles from feeding flowers to brown mooshrooms cannot be seen by other players
- MC-311454 - Particles from water evaporating in the Nether are not properly displayed
- MC-311579 - The player can see through blocks when inside snow layers
- MC-311593 - Spears' charging animation jitters from another player's perspective when swapping to a spear and charging it in the same tick
- MC-311722 - Pressing Windows+↓ in fullscreen mode incorrectly restores the game window to a borderless windowed state
