Java Edition 26.3
Minecraft Wiki article. Categories: Java_Edition_versions, Planned_versions, Testing_needed
This article is reproduced from Java Edition 26.3 on the Minecraft Wiki. Mirrored from revision 3724939. It is licensed CC BY-NC-SA 3.0 by the Minecraft Wiki contributors — not under the Codex’s CC BY-SA 4.0, and it may not be used commercially. Edits belong upstream, not here.
{
"title": "Minecraft 26.3",
"images": [],
"rows": [
{
"field": "''(link to Java Edition article, displayed as Java Edition)''",
"label": "(link to Edition article, displayed as Edition)"
},
{
"field": "Q3 2026",
"label": "Planned release date"
},
{
"field": "<div class=\"hlist\"><span to :Category:Java Edition 26.3 snapshots article, displayed as '''Snapshots''') (9) </span><br/>((link to Java Edition 26.3/Development versions article, displayed as View all))</div>",
"label": "<span normal;\">Development versions</span>"
}
],
"invimages": [],
"footer": "<table auto; word-break: break-word;\">\n<tr inherit;\">\n<td 0.4em\" rowspan=\"2\">[[Java Edition 26.2|<span 26.2]]</td>\n<td rowspan=\"2\" 0.4em\">'''26.3'''</td>\n<td 0.4em\" rowspan=\"2\"></td>\n</tr>\n<tr inherit;\">\n</tr>\n</table>"
}
26.3, the release of the third game drop of 2026, is an upcoming game drop for Java Edition set to release in the third quarter of 2026, which adds the dappled forest biome including the new poplars, red shrubs, shelf mushrooms, it also adds wool stairs and slabs, concrete stairs and slabs, straw beds, cushions, and a new structure called the abandoned camp.
Additions
Blocks
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Concrete stairs and slabs
- Can be crafted with concrete, as well as converted from a stonecutter.
Poplar wood set:
Poplar sapling
- Grows into any one of red, orange or yellow poplar trees.
- Can be sold by a wandering trader.


Poplar leaves
- Comes in red, orange, and yellow variants.

Poplar log and stripped poplar log
- Unstripped poplar logs can be sold by a wandering trader.

Poplar wood and stripped poplar wood
Poplar planks
- A bush-like plant block found in small patches in the dappled forest.
- Using bone meal on a red shrub attempts to grow another shrub on a neighboring block.
- Can be used in the composter.
- A mushroom variant found on poplar trees and fallen poplar trees.
- Comes in two sizes.
- A small shelf mushroom can be grown into a large shelf mushroom with bone meal.
- A large shelf mushroom drops two shelf mushroom items when broken.
- Is bouncy when fallen on by entities, similar to a bed.
- Shelf mushroom makes a bouncing sound when a living entity bounces on it.
- Can be used to make mushroom stew and suspicious stew.
- Can be sold by a wandering trader.
- Can be used in the composter.
- A new type of bed which can be used to sleep through the night without resetting the player's spawn point.
- Can only be used once and is destroyed after use.
- Cannot be used in the Nether or the End and will be destroyed upon attempt to use, without dropping as an item.
- Won't be used by villagers, unlike other beds.
- Generates naturally in abandoned camps.
- 4 straw beds are crafted with 3 hay bales.
- Can stack up to 16.
| Ingredients | Crafting recipe |
|---|---|
| Hay Bale |
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Wool stairs and slabs
- Comes in sixteen colors.
- Crafted using wool.
- Can be used to dampen sounds, like wool and carpets.
- They are also not usable in other ways like wool.
Items
New explorer maps
Added abandoned campsite maps showing the location of other abandoned camps in the following biomes:
- Can be found in the "common chest" loot of abandoned camps.
- Added explorer maps for the following structures:
- Can be found in the "secret chest" loot of abandoned camps in addition to jungle pyramid, swamp hut, and trial chambers explorer maps.
Non-mob entities
- A new entity that players can interact with to sit on.
- Has 16 variants, crafted with its respective variant of wool slab.
- Can stack up to 16.
| Ingredients | Crafting recipe |
|---|---|
| Matching Wool Slab |
- Can be placed on any flat surface.
- Always aligns horizontally to the grid, but vertically sit on top of the supporting surface.
- Breaks if the supporting block is removed.
- Cushions are destroyed only when they are fully covered by blocks that cause suffocation.
- Cannot be moved.
- Does not have collision and can overlap with other objects except for other cushions.
![]()
Poplar boat and ![]()
Poplar boat with chest
- Boat variants that are crafted using poplar planks.
World generation
Biomes
- An autumn-themed forest biome which can be found near cold biomes that consists of poplar trees, red shrubs, leaf litter, brown mushrooms, shelf mushrooms, and rarely spruce trees.
- Fallen poplar trees generate here, they generate more frequently than other fallen trees.
- Shelf mushrooms can be found here, placed on poplar trees and fallen poplar trees.
- The following passive and neutral mobs spawn in the dappled forest, using their cold variants where applicable:
Features
- A tree that generates in dappled forests.
- Comes in three different colors of leaves, orange, red, and yellow, randomly chosen at generation.
- 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.
- Generate with leaf litter around or shelf mushrooms on them.
Fallen poplar trees have shelf mushrooms on them.- The trunk of the trees are made of poplar logs.
- Poplar logs can be crafted into a new set of poplar wood blocks.
Structures
- A structure that generates in the following biomes:
- Abandoned camps of each biome have their own different variants, consisting of wool stairs of various colors, straw beds and cushions, or having leaves, cobwebs, a tree or a crop farm.
- In these structures can be found chests and barrels with randomly generated loot.
- The barrels contain an assortment of common items, perhaps most notably a chance for cobweb.
- The common chests can contain loot such as copper weapons and armor, buckets, compasses, maps and gunpowder.
- The secret chests can contain loot such as iron weapons and armor, diamonds, gold and potions.
- Abandoned campsite maps showing the location of other abandoned camps can be found in the "common chest" loot of abandoned camps.
- Explorer maps for several other structures can be found in the "secret chest" loot of abandoned camps.
Command format
- Allows adding or removing post effects to players.
- These are post processing 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.
- Syntax:
/posteffect add <player> <posteffect>– adds the post effect to the player, if it does not 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.
General
- Added
minecraft:height_range- Checks the height of the position against a given range.
- Format:
min_inclusive: Vertical Anchor describing the minimum height required.max_inclusive: Vertical Anchor describing the maximum height required.
- 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 ofwhackorstab.duration– positive 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
- Added
minecraft:block_transformer- This component allows items to transform a block into another block on player interaction.
- 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_state_provider, 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.- If not present, defaults to
nonenonescrapewax_onwax_off
- If not present, defaults to
disallowed_faces- optional field, list of directions specifying which faces on the clicked block that cannot be interacted with.- If a disallowed face is interacted with, the next rule in the list will be attempted.
- If not present, defaults to an empty list.
- Values:
updownnorthsoutheastwest
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.- If not present, defaults to
from_middle - Values:
from_middle- from the middle of the block.clicked_face- from the face interacted with.
- If not present, defaults to
transform_type- optional field, configures how nearby blocks should be affected by the transformation.- If not present, defaults to
single_block - Values:
single_block- only affects the block interacted with.copper_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
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
1.
update_from_neighbors- optional boolean field.- Controls if the transformed block should update based on neighboring blocks.
- Defaults to
true
- Interactions related to the block (rather than the item) have higher priority. See Interactable blocks § Mechanics of use on block for more details.
- Used, by default, in axes[1], hoes[2], and shovels[3].
- Debug stick, ender eye, honeycomb, all water bottles and shears remained hardcoded.
- Armor stand, block items (included powder snow bucket), bone meal, brush, debug stick, end crystal, ender eye, fire charge, firework rocket, flint and steel, all hanging entity items (painting, (glow) item frame), honeycomb, lead, all minecarts, all potions, and all spawn eggs has hardcoded effects when interacting with blocks, whereas this data component has no effect whatsoever.
- Added
minecraft:compostable- Represents the ability to compost an item and how it adds layers to the composter.
- Format: object with fields
layers– namespaced ID pointing to an element of theminecraft:number_providerregistry.layerscan additionally be defined by an inline number.
- Added
minecraft:provides_pottery_patterndata component- Describes the pottery pattern stored on a stack.
- Format:
- namespaced ID pointing to an element of
minecraft:decorated_pot_patternregistry.
- namespaced ID pointing to an element of
- 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– namespaced ID pointing to an element ofminecraft:number_providerregistry representing the time, in ticks, for which this fuel will burn.speed_multiplier– namespaced ID pointing to an element ofminecraft:number_providerregistry representing the speed of the cooking/smelting.burn_timeandspeed_multipliercan additionally be defined by an inline number.
- Added
minecraft:brewing_fuel- Describes an item that can be used as fuel for a brewing stand.
- Format: object with fields
uses– namespaced ID pointing to an element ofminecraft:number_providerregistry representing the number of times this fuel will brew before being consumed.speed_multiplier– namespaced ID pointing to an element ofminecraft:number_providerregistry representing the speed of the brewing.usesandspeed_multipliercan additionally be defined by an inline number.
- Note: the #
brewing_fuelitem tag has been removed and will no longer function to register new brewing fuels.
- Added
minecraft:sign_text_frontandminecraft:sign_text_back- Two identical components that represent text in front and back of a sign.
- Contents will be displayed in item tooltip.
- The format is the same as
front_textandback_textfields onminecraft: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 as messages.messagesandfiltered_messagesmust have 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:villager_food- Represents items that villagers can eat. Villagers will pick up items with this component in addition to items in the
#villager_picks_uptag. - Format: object with fields
nutrition– positive integer, how much hunger the item satiates in the villager once eaten.
- Represents items that villagers can eat. Villagers will pick up items with this component in addition to items in the
- Added
minecraft:mob_visibility- Represents the visibility percentage provided by an item with the appropriate
minecraft:equippablecomponent, modifying the range at which mobs are able to detect an entity. - Format: object with fields
targeting_entity– an entity ID, a list of namespaced entity IDs, or a hash-prefixed entity tag to match.visibility– float (between0.0and10.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.
- Represents the visibility percentage provided by an item with the appropriate
- Added
invulnerable_timetag which makes a mob temporarily invulnerable for a specific number of ticks.
- Added
minecraft:gameplay/straw_bed_rule- Same format as
minecraft:gameplay/bed_rule, but used for the straw bed
- Same format as
- 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 spawn.count– 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 spawn.charge– 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 creature mob category will spawn during world generation.
- Only dimensions and biomes will apply this environment attribute.
- Format: float with range
[0,1] - Default:
0.1
- Added the
minecraft:copy_properties_providerblock state provider- Copies common Block State properties from the Block at the evaluated position to the resulting state. Format: object with fields:
source_block_state_provider[note 1]: Block State Provider, provides 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.
- Copies common Block State properties from the Block at the evaluated position to the resulting state. Format: object with fields:
- Added
minecraft:end_podiumfeature type- Places the end podium.
- Two feature instances are now used to place the podium from in-game events:
end_podium_activeend_podium_inactive
- Fields:
active: boolean field controlling if the portal is active.
- Added
minecraft:overlayfeature type- Places a set of features in the same location.
- Note that as opposed to the
minecraft:sequencefeature type, all features are placed regardless of individual placement success.
- Note that as opposed to the
- Format:
features: Placed Feature ID, non-empty list of Placed Feature IDs or hash-prefixed Placed Feature Tag for the features to place
- Places a set of features in the same location.
- Added
minecraft:projected_random_patchy_squarefeature type- 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:
block: Block state provider for which block to placeproject_through: Block Predicate for which blocks are considered "empty" and should be projected throughsize: Int provider between1and16that determines the size of the square as measured from the center to the edgemax_projection_height: Non-negative integer representing the maximum change in y level from the original height to the placement height for a block in the square
- Added new key codes for the following keys:
| ID | Displayed name | Physical key or button | Translation key | |
|---|---|---|---|---|
key.keyboard.keypad.plus.minus
|
Numpad ± | key.keyboard.keypad.plus.minus
| ||
key.keyboard.keypad.left.parenthesis
|
Numpad ( | key.keyboard.keypad.left.parenthesis
| ||
key.keyboard.keypad.right.parenthesis
|
Numpad ) | key.keyboard.keypad.right.parenthesis
| ||
key.keyboard.keypad.period
|
Numpad .[4] | key.keyboard.keypad.period
| ||
key.keyboard.keypad.comma
|
Cannot be assigned[5] | key.keyboard.keypad.comma
| ||
key.keyboard.application
|
≣ Menu[6] | key.keyboard.application
| ||
key.keyboard.mute
|
🔇︎ Mute | key.keyboard.mute
| ||
key.keyboard.volume.down
|
🔉︎ Volume Down | key.keyboard.volume.down
| ||
key.keyboard.volume.up
|
🔊︎ Volume Up | key.keyboard.volume.up
| ||
key.keyboard.media.play.pause
|
Play/Pause | key.keyboard.media.play.pause
| ||
key.keyboard.stop
|
Stop | key.keyboard.stop
| ||
key.keyboard.cut
|
Cut | key.keyboard.cut
| ||
key.keyboard.copy
|
Copy | key.keyboard.copy
| ||
key.keyboard.paste
|
Paste | key.keyboard.paste
| ||
key.keyboard.undo
|
⎌ Undo | key.keyboard.undo
| ||
key.keyboard.again
|
Redo[7] | key.keyboard.again
| ||
key.keyboard.new
|
📄 New | key.keyboard.new
| ||
key.keyboard.save
|
💾 Save | key.keyboard.save
| ||
key.keyboard.help
|
Help | key.keyboard.help
| ||
key.keyboard.find
|
Find | key.keyboard.find
| ||
key.keyboard.left.alt,key.keyboard.right.alt,key.keyboard.left.win, andkey.keyboard.right.winnow have different display names depending on the user's operating system.- The following keycodes, which existed before but could only be set by file editing and would still not result in physical buttons being recognised, are now accessible via macOS (9-32) and Linux (9-48) systems, and can have controls bound to them properly:
- Added support for the Gothic language.
- Added
minecraft:command_slot_sourceloot table type.
- Added
till/rooted_dirtloot table for drops when rooted dirt is tilled with a hoe.
- Added a
minecraft:number_providerregistry - Added vanilla 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 a 85% chance of returning1
- Returns
minecraft:compostable/always_add_one- Always returns
1
- Always returns
- Added
minecraft:number_dispatchertype- 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– aminecraft:predicatenumber_provider– aminecraft:number_providerwhich is executed if the condition is fulfilled.
- Fields:
default– an optionalminecraft:number_provider- Defaults to a constant
0if omitted.
- Defaults to a constant
- Returns the first case which fulfills its condition or the
- Added
minecraft:conditionaltype- Returns the value from
on_trueif its condition oron_falseif not. - Fields:
conditions– aminecraft:predicateon_true– aminecraft:number_providerwhich is executed if its condition is fulfilled.on_false– an optionalminecraft:number_provider- Defaults to a constant
0if omitted.
- Defaults to a constant
- Returns the value from
- 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– aminecraft:number_providerweight– a positive integer
- Fields:
- Added Quit Shortcuts option.
- Can be accessed in the Controls section.
- Allows keyboard shortcuts that close the game, such as ⌥ Alt + F4 on Windows and ⌘ Command + Q on macOS.
- Disabled by default.[needs testing]
- 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.
- Realms owners can now create invite codes to their Realm.
- Up to 5 invite codes are allowed.
- They can be configured to be either active or inactive.
- Expiration of the invite code can be configured.
- Players can now join Realms by entering an invite code in the new "Join Realm" screen.
- Added Times Slept in a Straw Bed statistic.
- 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
- Added tags for biomes which will generate the respective abandoned camp variant:
- Block Tags
- Added
#blocks_dolphin_jump- Contains all blocks that dolphins cannot move through when jumping out of water.
- Added
#blocks_fluid_flow- Contains all blocks that block fluid flow.
- Currently, this tag does nothing.[8]
- Added
#blocks_lava_fire_spread- Contains all blocks that block the creation of fire by lava.
- Added
#blocks_motion- Collection tag containing all blocks that are considered to block motion in some way.
- Added
#blocks_motion_in_heightmap- Contains all blocks that are taken into account for the
motion_blockingheightmap.
- Contains all blocks that are taken into account for the
- Added
#blocks_motion_in_heightmap_no_leaves- Contains all blocks that are taken into account for the
motion_blocking_no_leavesheightmap.
- Contains all blocks that are taken into account for the
- Added
#blocks_motion_no_leaves- Collection tag containing all blocks that are considered to block motion in some way, but excluding leaf blocks.
- Added
#cannot_place_basalt_pillar_on - Added
#cats_can_lie_on- Contains blocks which cats can randomly lie on.
- Added
#cats_can_sit_on- Contains blocks which cats can randomly sit on.
- Added
#causes_suffocation- Contains all blocks where entities can suffocate.
- Added
#concrete_slabs- Contains all concrete slab blocks.
- Added
#concrete_stairs- Contains all concrete stair blocks.
- Added
#cushion_uses_collision_shape- Contains blocks where cushion placement raycasts against collision shape instead of interaction shape.
- Added
#entities_can_teleport_to- Contains all blocks that entities are allowed to teleport to.
- Added
#height_specific_ore_replaceables- Contains all blocks which ore features will turn into stone ores if found above Y=0 and into deepslate ores if found below Y=8.
- Added
#ice_melts_when_destroyed_above- Contains all blocks that causes ice to melt into water if the ice is destroyed when placed above them.
- Added
#ores- Collection tag containing all types of ores.
- Added
#poplar_logs- Contains all poplar log blocks.
- Added
#required_for_poplar_leaf_ambience- Contains the blocks which can satisfy requirement for Poplar leaves to make ambient sound.
- Added
#sculk_growth_inhibitors- Contains blocks which keep sculk from spreading when more than 2 are in the 8×2×8 area around it.
- Added
#skulls- Collection tag containing all head and skull blocks.
- Added
#speeds_up_zombie_villager_curing- Contains blocks which can increase zombie villager curing time if placed nearby.
- Added
#turns_into_dirt_path- Contains all blocks that turn into dirt path blocks when a shovel is used for pathmaking.
- Added
#turns_into_farmland- Contains all blocks that turn into farmland blocks when a hoe is used for tilling.
- Added
#villager_babies_can_jump_on_bed- Contains Bed blocks which Villager kids can jump on.
- Added
#villagers_can_sleep_on_bed- Contains bed blocks which villagers can sleep on.
- Added
#washed_away_by_fluids- Contains all blocks that break when a fluid flows through them.
- Currently, this tag does nothing, causing blocks like redstone components and cobwebs to not be broken by flowing water.[8]
- Added
#wool_slabs- Contains all wool slabs blocks.
- Added
#wool_stairs- Contains all wool stairs blocks.
- Added
- Damage Type Tags
- Added
#no_wolf_retaliationfor all damage types that should not cause tamed wolves to attack their source in order to defend their owner.
- Added
- Entity Tags
- Added
#cannot_be_dismounted_by_item_usage- Contains all entities which cannot be dismounted by items.
- Added
- Item Tags
- Added
#clonable_maps- Contains filled maps plus all explorer maps items and buried treasure maps, used as the input to the
map_cloningrecipe.
- Contains filled maps plus all explorer maps items and buried treasure maps, used as the input to the
- Added
#concrete_slabs- Contains all concrete slab items.
- Added
#concrete_stairs- Contains all concrete stair items.
- Added
#cushions - Added
#douses_campfires- Contains items that can douse a lit campfire block.
- Added
#extendable_maps- Contains maps that can be zoomed out with paper, either in a crafting table or at a cartography table.
- Added
#mushrooms- Contains all mushroom items.
- Added
#ores- Collection tag containing all types of ores.
- Added
#poplar_logs- Contains all poplar log items.
- Added
#wool_slabs- Contains all wool slabs items.
- Added
#wool_stairs- Contains all wool stairs items.
- Added
- Structure Tags
- Added
#abandoned_camp- Contains all variants of abandoned camps.
- Added 12 tags, regarding the structures used in each exploration map:
#on_abandoned_camp_bamboo_jungle,#on_abandoned_camp_birch_forest,#on_abandoned_camp_cherry_grove,#on_abandoned_camp_dappled_forest,#on_abandoned_camp_flower_forest,#on_abandoned_camp_pale_garden,#on_abandoned_camp_swamp,#on_abandoned_camp_windswept,#on_ancient_city_maps,#on_desert_pyramid_maps,#on_mineshaft_maps, and#on_ocean_ruin_warm_maps
- Added
Changes
Blocks
- Items (bricks and pottery sherds) dropped from breaking a decorated pot side will now preserve data.
- Decorated pot can now have empty sides which causes it to not drop anything when broken unless it has an item in it.
- In survival mode, this is accessible via naturally generated undecorated pots and by crafting using the
decorated_pot_simplerecipe from the recipe book. - It is also accessible via the Creative inventory or through commands where at least one side is not defined in
sherds. - Previously, empty sides were treated as brick.
- In survival mode, this is accessible via naturally generated undecorated pots and by crafting using the
- Updated sides texture from
so that the two red twines appear symmetrically distant from the top/bottom edges; the twines now line up with the straw bed texture too.
- Signs no longer automatically execute click events in custom text.
Items
- Updated existing explorer maps' inventory icon textures:
| Structure | Before | After |
|---|---|---|
| Buried Treasure | ||
| Desert Village | ||
| Plains Village | ||
| Savanna Village | ||
| Snowy Village | ||
| Taiga Village | ||
| Jungle Pyramid | ||
| Swamp Hut | ||
| Ocean Monument | ||
| Woodland Mansion | ||
| Trial Chambers |
- All explorer maps are now unique items; previously they used the same item ID as filled maps.
- These items cannot be obtained from the Creative inventory.
- Existing explorer maps in old worlds are converted to the matching new item on load.
- 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 in a cartography table.
- Buried treasure maps could previously be zoomed out in both.
- Explorer maps could previously be zoomed out in a cartography table.
- Only maps in the
#minecraft:extendable_mapstag can be zoomed out.
Map and Empty Map
Map decorations
- The map icons for players on maps and explorer maps has been updated to always show the direction the player is facing.
| Name | Before | After |
|---|---|---|
| Player Locator | ||
| Player Off Map | ||
| Player Off Limits |
- Pottery sherds are now data-driven.
- When using a shield together with a hoe or a shovel, raising the shield will take precedence over tilling and pathmaking.
- Crouching will allow tilling and pathmaking.
Suspicious stew and mushroom stew
- Can now be crafted with 2 of any mushroom.
Mobs
General
- Persistent mobs' random walk/swim behaviors will now deactivate when players are not nearby, in the same way as non-persistent mobs.
- No longer try to roll up when submerged in liquids.
- Drowned with tridents will now use a melee attack if the player is within 3 blocks of them to match Bedrock Edition.
- This attack deals a base attack damage of 11.
- Changed the sounds of the "regular" sulfur cube archetype.
- Can now sell poplar logs, poplar saplings, and shelf mushrooms.
Non-mob entities
- Paintings with custom names now also show those names when the player looks at them in the world.
Command format
General
- 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:
- The items condition sub-command now takes a slot source as argument instead of a slot.
/give
- When the amount of items passed to the give command is above limit, the command will now signal an error instead of just printing an error message and returning
0.
/item
- Now takes a slot source as 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:- One by one in the order they are provided by the slot source, the contents of each destination slot are replaced with the corresponding source item.
- 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_range slotsource 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:
- The
featuresub-command now allows in-line definition of the feature.
- 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 the/gamemodecommand.
- Instead, the default game mode of the world should be set using the
- Whether a block is safe to spread a player to is now controlled by the
#entities_can_teleport_toblock tag.
- 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:
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.
/team
- The result of
/team joinand/team leavesubcommands now reflects the exact count of entities that have joined or left (i.e. excluding entities for which teams have not changed).
- The
nbtcomponent in a raw chat message will only be resolved up to 64k times.
/tick
- The following subcommands will now signal an error instead of just printing an error message and returning
0:
Gameplay
- Visiting the dappled forest is now required for the "Adventuring Time" advancement.
- Rearranged mineral items and blocks in the inventory.
- They are now sorted to have non-tiered ingredients first, followed by tiered ingredients that craft into equipment last.
- Affects the ingredients and building blocks tabs.
- 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 ordering of Natural Blocks tab so that all inner ordering of group content sequentially progresses from Overworld -> Nether -> End to stay consistent with other tabs.
- Players in Spectator mode can now interact with portals to teleport.
- New villager trades, unlocked from a villager leveling up their profession, will now update even if the player has the trading UI open.
General
- 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.
- The
- Triggers
- Multiple fields that accepted a list of loot conditions (AKA predicates) are now stricter:
- A list of predicates is no longer accepted as a shorthand for a
minecraft:all_ofcondition containing that list. - Additionally, the
conditionfield of predicates has been renamed totypeand is now mandatory (previously it defaulted tominecraft:entity_properties).
- A list of predicates is no longer accepted as a shorthand for a
- 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.
- Multiple fields that accepted a list of loot conditions (AKA predicates) are now stricter:
- Changed
minecraft:any_block_usetrigger- The
locationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:bee_nest_destroyed- The block field has been renamed to blocks and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a
minecraft:blocktype. However, it still only actually triggers for block types using theBeehiveBlockclass (i.e. a bee nest or beehive). - Added field
statethat matches block state properties (same format asminecraft:enter_block).
- The block field has been renamed to blocks and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a
- Changed
minecraft:bred_animalstriggerchild,parent, andpartnerfields now accept an inline value or a namespaced ID of aminecraft:predicatetype.
- Changed
minecraft:brewed_potiontrigger- The
potionfield now acceptsminecraft:potion_contentsdata component predicate.
- The
- Changed
minecraft:channeled_lightningtrigger- Entries in the
victimsfield can no longer be an entity predicate nor a list of predicates; the entries can now be either inline values or namespaced IDs of aminecraft:predicatetype.
- Entries in the
- Changed
minecraft:cured_zombie_villagertriggervillagerandzombiefields now accept an inline value or a namespaced ID of aminecraft:predicatetype.
- Changed
minecraft:default_block_usetrigger- The
locationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:effects_changedtrigger- The
sourcefield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- 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.
- The
- Changed
minecraft:fall_after_explosiontrigger- The
causefield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:fishing_rod_hookedtrigger- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:placed_blocktrigger- The
locationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:item_used_on_blocktrigger- The
locationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:allay_drop_item_on_blocktrigger- The
locationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:player_killed_entitytrigger- 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.
- The
- Changed
minecraft:entity_killed_playertrigger- 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.
- The
- Changed
minecraft:kill_mob_near_sculk_catalysttrigger- 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.
- The
- Changed
minecraft:lightning_striketriggerbystanderandlightningfields now accept an inline value or a namespaced ID of aminecraft:predicatetype
- Changed
minecraft:player_generates_container_loottrigger- 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, trigger will run when any listed loot table is generated.
- The
- Changed
minecraft:thrown_item_picked_up_by_playertrigger- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:thrown_item_picked_up_by_entitytrigger- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:player_hurt_entitytrigger- 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.
- The
- Changed
minecraft:entity_hurt_playertrigger- 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.
- The
- Changed
minecraft:player_interacted_with_entitytrigger- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:player_sheared_equipmenttrigger- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:crafter_recipe_craftedtrigger- 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, trigger will run when any listed recipe is used.
- The
- Changed
minecraft:recipe_craftedtrigger- 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, trigger will run when any listed recipe is used.
- The
- Changed
minecraft:recipe_unlockedtrigger- 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, trigger will run when any listed recipe is unlocked
- The
- 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.
- The
- Changed
minecraft:summoned_entitytrigger- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:tame_animaltrigger- The
entityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:target_hittrigger- The
projectilefield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:villager_tradetrigger- The
villagerfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
minecraft:signandminecraft: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.
- 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_backandminecraft:waxedcomponents.
- By default, commands and other click events contained in sign text are no longer executed when the block is clicked.
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.
- Changed the
- The following new fields have been added:
- Added the
total_brew_timeinteger field, this is the total amount of time the current brewing process will take. - Added the
total_fuelinteger field, this represents the amount of fuel that was added in the last refuel. - Added the
speed_multiplierfloat field, this will be used to speed up or slow down the next brewing process.
- Added the
- The following fields are now stored as integers rather than shorts:
minecraft:furnace,minecraft:smokerandminecraft: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.
- Changed the
- The following new fields have been added:
- Added the
speed_multiplierfloat field, this will be used to speed up or slow down the next cooking process.
- Added the
- The following fields are now stored as integers rather than shorts:
minecraft:decorated_pot- Field
sherdsno longer stores a list of 4 item IDs. Instead, the new format is an object with 4 optional item stack fields named:backleftrightfront
- Field
- 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.
- Up to 48 mouse buttons are now supported for controls rebinding.
- Previously, only up to mouse button 8 could have controls bound to it.
- This change presumably only affects macOS and Linux systems.
- KEY_KPPLUSMINUS, KEY_KPLEFTPAREN and KEY_KPRIGHTPAREN now appear to be supported, at least on Linux.
- The names are a bit wrong though.[9][10]
- Renamed some key code display names:
key.keyboard.left.win: "Left Win" → "Left Meta"key.keyboard.right.win: "Right Win" → "Right Meta"
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
- Instead of taking a list of 4 item IDs, this component now takes an object with 4 optional item stack fields named:
minecraft:trim_material- The format of inline material definitions has been updated
- Trim Materials
- The format of elements in the
trim_materialregistry has been updated:asset_namehas been replaced withpalette_id- Palette Texture ID to be used for this material.override_armor_assetshas been removed, overrides are now defined in the Resource Pack Equipment Asset.
- The format of elements in the
- Removed
minecraft:swing_animation- This has been replaced by
minecraft:attack_animationandminecraft:interact_animation.- The
noneswing animation type has been removed. - Existing items in the world will be migrated to using the default
whack. - 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
- The
- This has been replaced by
- 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.
- The pack format version is now
116.0. - The
definitionfield from theblocks.jsondata generation report has been removed - 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 debug overlay now supports a separate GUI scale than 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 the regular GUI scale.
- The rest of the options work the same as in the normal "GUI Scale", controlling the scale directly.
- 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.
- Density function 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.
minecraft:gameplay/bed_rule- Field
explodeshas been renamed todestroy_on_use - Added
destroy_on_leave– optional boolean; if set totrue, the bed will be destroyed when leaving it.- If omitted, defaults to
false
- If omitted, defaults to
- Field
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
Equipment assets
- The
trim_palette_replacementsfield has been replaced withtrim_overrides. This can be used to swap out the texture or palette used with specific trim materials or patterns for a given equipment asset, not just swap specific palettes.- Format: list of override entries with fields:
when– object with fields, the material and/or pattern to match.material– optional trim material ID, the material to match (if specified).pattern– optional trim pattern ID, the pattern to match (if specified).- Note: this is not the palette ID, as
trim_palette_replacementsused to be.
- Note: this is not the palette ID, as
- At least one of material or pattern must 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 texture or palette must be defined.
- Format: list of override entries with fields:
- The
worldgen/configured_featureregistry has moved toworldgen/featureand configuration is now done inline in the root object rather than separated into a config field. - Removed the following feature types:
minecraft:coral_mushroomminecraft:kelpminecraft:nether_forest_vegetationminecraft:seagrassminecraft:sea_pickleminecraft:twisting_vinesminecraft:weeping_vinesminecraft:desert_well- The desert well feature now uses the type
minecraft:template.[11]
- The desert well feature now uses the type
- Removed the
extra_rare_growthsandcatalyst_chancefields fromminecraft:sculk_patch.
- Changed
minecraft:template- Added the field
processors– namespaced ID or inline definition of a structure processor list to apply to the template.
- Added the field
- Changed
minecraft:treefeature type- Added
shelf_mushroomtree decorator type.- Places shelf mushrooms on logs with the specified probability.
- Format: object with fields:
probability- float (between0and1), the probability that any shelf mushrooms will be placed for a given feature.
- Added
poplar_foliage_placerfoliage placer type- Places leaves blocks for poplar trees in a rhombus shape in one of two possible directions
- Format: object with fields:
height- int provider (between5and16), the height of the foliage.side_hole_chance- float (between0.0and1.0), the chance for blocks to be randomly removed at the edge of the foliage.
- Added
poplar_trunk_placertrunk placer type- Places log blocks for poplar trees in a straight shape with branches by the start of the foliage.
- Format:
trunk_height_above_branches- int provider (between0and8), the height of the trunk above the branches.branch_amount- int provider (between1and4), the amount of branches to create by the foliage.
- Added
- Changed the
minecraft:random_neighbor_spreadfeature type- 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.
- Format changes:
- Added field
block: Block state provider for which block to place. - Added field
accepted_neighbors: Block ID, list of block IDs or hash-prefixed block tag for which blocks count as a valid neighbor. - Added field
can_replace: Block predicate for which blocks to replace. - Added field
attempts: Int provider between1and3000for how many placements attempts to make. - Added field
xy_offset[note 2]: Int provider between-16and16for what offsets to try along the x and z axes. - Added field
y_offset: Int provider between-16and16for what offsets to try along the y axis.
- Added field
- Renamed from
- Changed the
minecraft:single_block_pillarfeature type- Renamed from
minecraft:basalt_pillar.- Now exposes more control over the feature functionality.
- Format changes:
- Added field
block: Block state provider for which block to place. - Added field
can_replace: Block predicate for which blocks to replace. - Added field
direction: Vertical direction of the pillar - one ofupanddown. - Added field
chance_to_continue: Optional probability between0and1(default:1) that the pillar continues another block (assumingcan_replacematches) - Added field
cap_feature: Optional placed feature placed at the end of the pillar.
- Added field
- Renamed from
- Changed the
minecraft:stepped_column_clusterfeature type- Renamed from
minecraft:basalt_columns.- Now exposes more control over the feature functionality.
- Format changes:
- Added the field
block: Block state provider for which block to place. - Added the field
can_replace: Block predicate for which blocks can be replaced by the column. - Added the field
continue_through: Block predicate for which pre-existing blocks to accept as part of a column. - Added the field
cannot_place_on: Block ID, list of block IDs or hash-prefixed block tag ID representing which blocks are avoided when starting placement. - Renamed the field
reachtocolumn_reach - Added the field
column_count: int provider (between1and150) - the number of columns to generate. - Added the field
cluster_reach: int provider (between0and13) - 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
- Added the field
- Renamed from
minecraft:coral_clawandminecraft:coral_tree- Added the field
feature– a placed feature that is used to place at every desired block position.
- Added the field
Game window and input backend
- The minimum window size is now 320×240 pixels.
- 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.
- The sub-headings and categories in different tabs of options now use a boldface, underlined and centered format.
- The format of elements in the instrument registry have been updated:
- Added the
durability_damagefield - optional non-negative integer, amount of durability to consume on each use. - Updated the
use_durationfield - can now be0for no cooldown.
- Added the
- 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 elementsshade_direction_override: "up"to get the previousshade: falsebehavior.
- Tint source
- Removed
minecraft:map_color- The
minecraft:map_colorcomponent it read no longer exists.
- The
- Removed
level.datnow contains aversion_historylist with prior data versions of the file.
- 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.
- Functionality of old condition list format can be achieved by explicitly using
minecraft:all_ofloot condition type.
- Functionality of old condition list format can be achieved by explicitly using
- The
functionfield (describing function type) has been renamed totype.
- It now also accepts an inline value or a namespaced ID, but no longer an inline list of conditions.
- 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 optional condition field which accepts an inline value or a namespaced ID of a
minecraft:predicatetype. - 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 consistenly available for all fields of loot function type, 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 consistenly available for all fields of loot function type, 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
- The
- Changed
minecraft:modify_contents- The
modifierfield now accepts an inline value or a namespaced ID of aminecraft:item_modifiertype.
- The
- Changed
minecraft:set_attributes- Number providers in
amountsub-fields ofmodifierslist now accept an inline value or a namespaced ID of aminecraft:number_providertype.
- Number providers in
- Changed
minecraft:exploration_map- The
map_colorfield has now 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
- The
- Changed
minecraft:enchanted_count_increase- The
countfield now accepts an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- Changed
minecraft:enchant_with_levels- The
levelsfield now accepts an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- Changed
minecraft:set_custom_model_data- Elements in
floatsandcolorslists can now be an inline value or a namespaced ID of aminecraft:number_providertype.
- Elements in
- Changed
minecraft:set_enchantments- Values in
enchantmentsmap can now be an inline value or a namespaced ID of aminecraft:number_providertype.
- Values in
- Changed
minecraft:set_count- The
countfield now accepts an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- Changed
minecraft:limit_count- The
minandmaxfields insidelimitstructure now accept an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- Changed
minecraft:set_damage- The
countfield now accepts an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- Changed
minecraft:set_ominous_bottle_amplifier- The
amplifierfield now accepts an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- Changed
minecraft:set_random_dyes- The
number_of_dyesfield now accepts an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- Changed
minecraft:set_stew_effect- The
durationfield in elements of effects list now accepts an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- Changed
minecraft:set_loot_table- The
namefield has been renamed totag
- The
- 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
- 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.
- 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
rollsandbonus_rollsfields now accept an inline value or a namespaced ID of aminecraft:number_providertype. - 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:number_providerminecraft:predicateminecraft:recipeminecraft:slot_source
- Existing
referencetypes for predicates, item modifiers and slot sources are now obsolete and have been removed
- Loot table types
- Added the
minecraft:container_processloot table type- Currently used to evaluate cooking and brewing fuel values.
- It takes the following parameters:
container, the container or inventory being evaluated.block_entity, the block entity being fueled.block_state, the current state of the block being fueled.origin, 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
- Block entities are now available in context and can be matched by conditions like
- Changed
minecraft:block_interactoriginis now available in context, as the center of the block being interacted with.
- Added the
- Loot pool entries
- The
conditionsfield in loot pool entries has been renamed to condition and now accepts an inline value or a namespaced ID of aminecraft:predicatetype. - The
functionsfield in loot pool entries has been renamed to modifier and now accepts an inline value (including 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:sequenceandminecraft:group.
- This field is now present on all loot entries, including previously omitted
- Changed
minecraft:tagloot pool entry- 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.
- The
- Changed
minecraft:loot_tableloot pool entry- 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 inminecraft:tagpool entry:- If
true, each entry inside tag will be added to outer pool, with weights equal to weight of this entry. - If
false, this pool entry will operate as a single entry in outer pool. If this entry gets selected, it will return all items from all referenced loot tables.
- If
- The
- The
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
- 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. - 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 replaced by an optional list ofore_veinsobjects:- If not present, no ore veins will be generated
- Fields:
ore_block- Block State, the ore block to placeraw_ore_block- Block State, the raw ore block to place.filler_block- Block State, the filler block to place.- raw_ore_chance - float between
0and1, the probability for araw_ore_blockto be placed instead of anore_block. - density - Density Function, the probability between
0and1for 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 for
ore_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 to richness: if positive,filler_blockwill always be placed.
- The following fields from
noise_routerhave been moved:- barrier, fluid_level_floodedness,
fluid_level_spread,lava- moved intoaquifersfield. vein_toggle,vein_ridged,vein_gap- moved intoore_veinsfield.
- barrier, fluid_level_floodedness,
- Spawn Target
- The
spawn_targetfield has been updated to allow use of any density function, instead of just a subset of those defined within thenoise_routerfield. - 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.2andtemperature=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 range.max- float, the maximum value of the target range.
- Range is specified as one of:
- Target format: map between Density Function ID and a range on that axis:
- The
- The
typefield always needs to be specified explicitly when using an inline number provider (it was previously defaulting tominecraft:uniform). - Added vanilla number providers
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/speed_default- Returns the default speed multiplier for cooking fuel.
minecraft:brewing/speed_default- Returns the default speed multiplier for brewing fuel.
minecraft:brewing/uses_default- Returns the default number of brews provided by brewing fuel.
- Changed
minecraft:number_dispatcher- 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:predicatetype.number_provider- an inline value or a namespaced ID of aminecraft:number_providertype which is executed if the condition is fulfilled.
- Fields:
default- an optional inline value or a namespaced ID of aminecraft:number_providertype.- Defaults to a constant 0 if omitted.
- Fields:
- Changed
minecraft:conditional_value- Fields:
conditions- an inline value or a namespaced ID of aminecraft:predicatetype.on_true- an inline value or a namespaced ID of aminecraft:number_providertype which is executed if its condition is fulfilled.on_false- an optional inline value or a namespaced ID of aminecraft:number_providertype.- Defaults to a constant 0 if omitted.
- Fields:
- Changed
minecraft:weighted_list- Fields:
distribution- a list of objects with the following fields.- Fields:
data- an inline value or a namespaced ID of aminecraft:number_providertype.weight- a positive integer
- Fields:
- Fields:
- Changed
minecraft:uniform- The
minandmaxfields now accept an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- Changed
minecraft:binomial- The
nandpfields now accept an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- Changed
minecraft:sum- The
summandsfield 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:number_providertype.
- The

- The World Options button has been moved to the Game Menu where the Open to LAN button used to be, replacing it.
- The "Game Mode" button has been renamed to "Default Game Mode"
- The World Options screen is divided into two sections: "General" and "Multiplayer".
- The "General" section contains the same options as the previous World Options screen.
- The Lock World screen has been changed.
- The "General" section has a new addition, Personal Game Mode: the player's active game mode in the current world (equivalent to the
/gamemodecommand, or F3 + F4)
- The "Multiplayer" section contains four options:
- LAN: changes the multiplayer scope of the world.
- Command Access: Controls whether players that join a world can use commands or not.
- Port: the port number to use when opening the world to LAN.
- Force Game Mode: controls whether other players game mode is forced to match the default game mode of the world or not.
- The Online button used to access the Online Options screen will now always be shown in the Options menu.
- Falling leaves particles no longer appear for spruce leaves.
- The
conditionfield (describing 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 type
minecraft:all_ofneeds to be used explicitly.
- The
- 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.
- The
- Changed
minecraft:inverted- The
termfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype.
- The
- Changed
minecraft:random_chance- The
chancefield now accepts an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- Changed
minecraft:value_check- The
valuefield now accepts an inline value or a namespaced ID of aminecraft:number_providertype. - The
minandmaxfields insiderangestructure now accept an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- Changed
minecraft:time_check- The
minandmaxfields insidevaluestructure now accept an inline value or a namespaced ID of a minecraft:number_provider type.
- The
- Changed
minecraft:entity_scores- The
minandmaxfields insidevaluesof scores map now accept an inline value or a namespaced ID of aminecraft:number_providertype.
- The
- 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.
- The
- 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 previously empty-in-vanilla
predicateregistry:minecraft:tool/can_silk_touchminecraft:tool/can_shearminecraft:block/fast_cooking
- New entries added to previously empty-in-vanilla
- Potion predicates
- The
minecraft:potion_contentsdata 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 match.effects– A collection predicate ofmob_effectspredicates to match.- The collection predicate format is as follows:
contains– A list ofmob_effectspredicates to match.count– A list of options for matching a specific number of mob effect predicates, which follow the same format asminecraft:effectsentity sub-predicate.test– Themob_effectspredicate to match.count– 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_effectspredicate format is a mapping of effect types to properties of that effect. All fields are optional, only provided fields will be used for matching:
- The
{
"minecraft:<effect type>": {
"duration": "<integer bounds representing a duration in ticks>",
"amplifier": "<integer bounds>",
"ambient": true/false,
"visible": true/false
}
}
- 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": {}
}
- Added
minecraft:match_blockcondition type- Matches block state and optionally block entity data and components (if present).
- Fields (same as elements of
minecraft:can_place_oncomponents):blocks– optional block id, list of namespaced block IDs, or hash-prefixed block tag to match.state: optional map of block state property keys to values to match.nbt: optional block entity NBT to match.- match will fail if this field is present, but block entity is not available in context.
components– optional map of exact components to match.- match will fail if this field is present, but block entity is not available in context.
predicates– optional map of component predicates to match.- match will fail if this field is present, but block entity is not available in context.
- Removed
minecraft:block_state_propertycondition type- This has been fully replaced by
minecraft:match_block
- This has been fully replaced by
- Added support for Realms to use additional server regions in Canada, Mexico, South Africa, and Arizona, USA if they become available in the future.
- 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_defaultnumber provider used by the furnace fuel components.
- The cooking time speedup is now done through the
- 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:brewingtype. - The main contents are:
input– A potion ingredient with a requireditemfield and an optionalpotion_contentsfield using aminecraft:potion_contentsdata component predicate.reagent– A potion ingredient with a requireditemfield and an optionalpotion_contentsfield using aminecraft:potion_contentsdata component predicate.output– item stack, the resulting item.
- 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, e.g.:
{
"type": "minecraft:brewing",
"input": { "item": "minecraft:bucket" },
"output": { "id": "minecraft:sulfur_cube_bucket" },
"reagent": { "item": "minecraft:potent_sulfur" }
}
Rendering
- Terrain blocks are now rendered with MultiDrawIndirect on supported devices.
- The version is now
96.0.
- Some log lines that server software might look out for have been removed.
- The Minecraft Server Management Protocol can be used instead.
- The
white-listproperty is nowtrueby default.
- Replaced current "Improved Transparency" approach with a new Order-independent Transparency (OIT) algorithm which is expected to be much better at solving translucency issues.
- Added new shaders to support order-independent transparency:
- core/oit_composite.fsh
- core/oit_depth_bounds_cull.fsh
- include/oit.glsl
- include/oit_add_transmittance.glsl
- include/oit_common.glsl
- include/oit_depth_bounds.glsl
- include/oit_depth_sample.glsl
- include/oit_sample.glsl
- Extracted the texture sampling logic from core/terrain.fsh into include/texture_sampling.glsl
- Renamed the following core shaders:
- core/rendertype_clouds.vsh -> core/clouds.vsh
- core/rendertype_clouds.fsh -> core/clouds.fsh
- core/rendertype_world_border.vsh -> core/world_border.vsh
- core/rendertype_world_border.fsh -> core/world_border.fsh
- Updated core shaders to support order-independent transparency
- Introduced new defines:
OIT- A boolean indicating if OIT is enabled.OIT_ALWAYS_WRITE_DEPTH- A boolean indicating that the OIT algorithm should always write depth for the executing pipeline during the depth bounds stag.OIT_DEPTH_BOUNDS- A boolean indicating if the depth bounds pass is being executed.OIT_TRANSMITTANCE- A boolean indicating if the transmittance pass is being executed.OIT_ACCUMULATE- A boolean indicating if the accumulate pass is being executed.OIT_ALPHA_ONLY- A boolean indicating if either the depth bounds or transmittance pass is being executed.OIT_ADDITIVE- A boolean indicating that the OIT algorithm should emulate additive blending for the executing pipeline.OIT_OPAQUE_PARTS_THRESHOLD- A float determining above which alpha threshold a fragment should be considered solid and not go through OIT.OIT_WAVELET_RANK- An integer internal to the OIT algorithm.OIT_COEFF_COUNT- An integer internal to the OIT algorithm.OIT_COEFF_ATTACHMENT_COUNT- An integer internal to the OIT algorithm.RENDERPEARL_IS_ZERO_TO_ONE- A boolean indicating if the current rendering backend uses the depth range of[0, 1], it is available globally to all shaders independently of the OIT setting.RENDERPEARL_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.fsh
- core/block.vsh
- core/clouds.fsh
- core/clouds.vsh
- core/entity.fsh
- core/entity.vsh
- core/item.fsh
- core/item.vsh
- core/particle.fsh
- core/position_color.fsh
- core/rendertype_beacon_beam.fsh
- core/rendertype_clouds.fsh
- core/rendertype_crumbling.fsh
- core/rendertype_entity_shadow.fsh
- core/rendertype_lightning.fsh
- core/rendertype_lines.fsh
- core/rendertype_world_border.fsh
- core/terrain.fsh
- core/terrain.vsh
- core/text.fsh
- core/text_background.fsh
- core/world_border.fsh
- core/world_border.vsh
- Introduced new defines:
- Removed the old transparency post chain:
- post_effect/transparency.json
- shaders/post/transparency.fsh
- core/integrate_depth.fsh was added and is used to integrate the "3d hud" and always-on-top gizmo depth buffers into the main depth buffer.
- There's a new debug keybind for toggling this functionality on and off, by default set to F3 + X.
- Added new shaders to support order-independent transparency:
- terrain.vsh and terrain.fsh shaders are refactored to support multi-draw.
- Some of the members in
GlobalsandDynamicTransformsare shuffled to use less memory for those uniform blocks. - 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.
- 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.
- A resource pack can now define a
- 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, name is now ignored.
- Introduced new define
RENDERPEARL_INSTANCE_INDEX_INCLUDES_BASE_INSTANCE– a boolean indicating ifgl_InstanceIndexfollows Vulkan or OpenGL (gl_InstanceID) semantics.
- Slot sources can now be defined as files inside a datapack, within the
slot_sourcefolder.- Can be used in commands which take slot sources as arguments.
- Can be used in inline slot sources using the
minecraft:referencetype.
minecraft:contentsis no longer restricted to only selecting non-empty slots.
- Added
minecraft:reference- Uses the referenced slot source.
- Fields:
name- the namespaced id of the slot source.
- Changed
minecraft:slot_range- The
sourcefield has a new valid type container, which sources slots from a container or inventory provided through loot context. - The
sourcefield is now optional.- Defaults to the container source type when absent.
- The
- 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. - Inline format of
minecraft:group(previously only a list of inline slot source) 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 available consistently available for all fields of slot source.
- The
- Changed
minecraft:filtered- The
slot_sourcefield now accepts an inline value or a namespaced ID of aminecraft:slot_sourcetype.
- The
- Changed
minecraft:contents- The
slot_sourcefield now accepts an inline value or a namespaced ID of aminecraft:slot_sourcetype.
- The
- Changed
minecraft:limit_slots- The
slot_sourcefield now accepts an inline value or a namespaced ID of aminecraft:slot_sourcetype.
- The
- Removed
minecraft:reference- This slot source has become obsolete, as any field that takes slot source now accepts (among other fields) a namespaced ID of a
minecraft:slot_sourcetype.
- This slot source has become obsolete, as any field that takes slot source now accepts (among other fields) a namespaced ID of a
- Added new sound events:
block.poplar_leaves.ambientblock.poplar_leaves.breakblock.poplar_leaves.fallblock.poplar_leaves.placeblock.poplar_leaves.stepblock.poplar_leaves.hitblock.red_shrub.breakblock.red_shrub.placeblock.shelf_mushroom.breakblock.shelf_mushroom.fallblock.shelf_mushroom.placeblock.shelf_mushroom.stepblock.shelf_mushroom.bounceblock.straw_bed.breakblock.straw_bed.break_leaveblock.straw_bed.stepblock.straw_bed.placeblock.straw_bed.hitblock.straw_bed.fallentity.cushion.breakentity.cushion.placeentity.cushion.get_upentity.cushion.sit
- Biome Tags
- Added
dappled_forestto#is_forest,#is_overworld,#spawns_cold_variant_farm_animals, and#has_structure/trial_chamberstags.
- Added
- Block Tags
- Added
red_shrubto#replaceable, and#replaceable_by_mushroomstags. - Added
red_poplar_leaves,orange_poplar_leaves, andyellow_poplar_leavesto#leavestag. - Added
potted_poplar_saplingto#flower_potstag. - Added
#poplar_logsto#logs_that_burntag. - Added
poplar_logto#overworld_natural_logstag. - Added
poplar_planksto#plankstag. - Added
poplar_signto#standing_signstag. - Added
poplar_hanging_signto#ceiling_hanging_signstag. - Added
poplar_wall_signto#wall_signstag. - Added
poplar_wall_hanging_signto#wall_hanging_signstag. - Added
poplar_buttonto#wooden_buttonstag. - Added
poplar_doorto#wooden_doorstag. - Added
poplar_fenceto#wooden_fencestag. - Added
poplar_fence_gateto#fence_gatestag. - Added
poplar_pressure_plateto#wooden_pressure_platestag. - Added
poplar_saplingto#saplingstag. - Added
poplar_shelfto#wooden_shelvestag. - Added
poplar_slabto#wooden_slabstag. - Added
poplar_stairsto#wooden_stairtag. - Added
poplar_trapdoorto#wooden_trapdoorstag. - Added
#wool_slabs, and#concrete_slabsto#slabstag. - Added
#wool_stairs, and#concrete_stairsto#stairstag. - Added
#wool_slabs, and#wool_stairsto#dampens_vibrations, and#shears_major_breaking_speedtags. - Added 32 values to
#mineable/pickaxetag:
- Added
white_concrete_stairs,orange_concrete_stairs,magenta_concrete_stairs,light_blue_concrete_stairs,yellow_concrete_stairs,lime_concrete_stairs,pink_concrete_stairs,gray_concrete_stairs,light_gray_concrete_stairs,cyan_concrete_stairs,purple_concrete_stairs,blue_concrete_stairs,brown_concrete_stairs,green_concrete_stairs,red_concrete_stairs,black_concrete_stairs,white_concrete_slab,orange_concrete_slab,magenta_concrete_slab,light_blue_concrete_slab,yellow_concrete_slab,lime_concrete_slab,pink_concrete_slab,gray_concrete_slab,light_gray_concrete_slab,cyan_concrete_slab,purple_concrete_slab,blue_concrete_slab,brown_concrete_slab,green_concrete_slab,red_concrete_slab, andblack_concrete_slab
- Renamed tag
#convertable_to_mudto#convertible_to_mud. - Removed
#nether_carver_replaceables, and#overworld_carver_replaceablestags. - Removed
tufffrom#deepslate_ore_replaceablestags.
- Renamed tag
- Entity Tags
- Added
poplar_boatto#boattag.
- Added
- Item Tags
- Added
red_poplar_leaves,orange_poplar_leaves, andyellow_poplar_leavesto#leavestag. - Added
#poplar_logsto#logs_that_burntag. - Added
poplar_planksto#plankstag. - Added
poplar_signto#signstag. - Added
poplar_hanging_signto#hanging_signstag. - Added
poplar_buttonto#wooden_buttonstag. - Added
poplar_doorto#wooden_doorstag. - Added
poplar_fenceto#wooden_fencestag. - Added
poplar_fence_gateto#fence_gatestag. - Added
poplar_pressure_plateto#wooden_pressure_platestag. - Added
poplar_saplingto#saplingstag. - Added
poplar_shelfto#wooden_shelvestag. - Added
poplar_slabto#wooden_slabstag. - Added
poplar_stairsto#wooden_stairtag. - Added
poplar_trapdoorto#wooden_trapdoorstag. - Added
poplar_boatto#boatstag. - Added
poplar_chest_boatto#chest_boatstag. - Added
#wool_slabs, and#concrete_slabsto#slabstag. - Added
#wool_stairs, and#concrete_stairsto#stairstag. - Added
#wool_slabs, and#wool_stairsto#dampens_vibrationstag. - Removed
#brewing_fueltag.- The
brewing_fuelitem component is now used to identify brewing fuels.
- The
- Eighteen tags no longer have the function of adding an item like fuel item, due to
cooking_fuelcomponents.
- Added
#logs,#bamboo_blocks,#planks,#wooden_stairs,#wooden_slabs,#wooden_trapdoors,#wooden_pressure_plates,#wooden_shelves,#wooden_fences,#fence_gates,#banners,#signs,#hanging_signs,#boats,#wool,#wooden_buttons,#saplings, and#wool_carpets
- The tag
#non_flammable_woodno longer prevents an item from being classified as fuel item.
- The tag
- 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 - 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
- All armor trim palette textures have been moved from
- Equipment Assets
- A new optional
trim_palette_replacementsfield controls which trim material palettes should be replaced for this equipment asset (formerly controlled byoverride_armor_assetsin the trim material)- Format: map from original Palette ID to a replacement Palette ID
- A new optional
- Block Sprites
- Added new Block textures:
block/orange_poplar_leaves.pngblock/red_poplar_leaves.pngblock/yellow_poplar_leaves.pngblock/poplar_door_bottom.pngblock/poplar_door_top.pngblock/poplar_log_top.pngblock/poplar_log.pngblock/poplar_planks.pngblock/poplar_trapdoor.pngblock/stripped_poplar_log.pngblock/stripped_poplar_log_top.pngblock/poplar_log.pngblock/shelf_mushroom_stage0.pngblock/shelf_mushroom_stage1.pngblock/poplar_hanging_sign.pngblock/poplar_sign.pngblock/poplar_sapling.pngblock/poplar_shelf.pngblock/red_shrub.pngblock/straw_bed.pngblock/straw_bed_particle.png
- Added new Block textures:
- Item Sprites
- Added new Item textures:
item/poplar_door.pngitem/poplar_hanging_sign.pngitem/poplar_sign.pngitem/poplar_boat.pngitem/poplar_chest_boat.png
- Removed item/filled_map_markings.png
- Added new Item textures:
- Map sprites
- Added new explorer map textures:
- abandoned_campsite_map.png
- ancient_city_map.png
- desert_pyramid_map.png
- mineshaft_map.png
- warm_ocean_ruins_map.png
- Updated the following map and explorer map textures:
- buried_treasure_map.png
- filled_map.png
- map.png
- desert_village_map.png
- plains_village_map.png
- snowy_village_map.png
- snowy_village_map.png
- taiga_village_map.png
- savanna_village_map.png
- trial_chamber_map.png
- woodland_mansion_map.png
- ocean_monument_map.png
- Added new map decorations textures:
- abandoned_camp.png
- ancient_city.png
- desert_pyramid.png
- mineshaft.png
- warm_ocean_ruins.png
- The following map decoration icons have been updated in order to show player rotation on the map:
- /player.png
- /player_off_limits.png
- /player_off_map.png
- Added new explorer map textures:
- UI Sprites
- Added new UI textures:
gui/hanging_signs/poplar.pnggui/signs/poplar.png
- Added new UI textures:
- Entity Textures
- Added new Entity textures:
entity/boat/poplar.pngentity/chest_boat/poplar.png
- Added new Entity textures:
- 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.png
- Added new Particle textures:
- 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.
- Exclusive fullscreen mode on macOS is no longer supported.
- 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.
- The
given_item_modifiersfield has been renamed togiven_item_modifier- Note: unlike other fields of type
minecraft:item_modifierthis field does not support namespaced element or tag IDs.
- Note: unlike other fields of type
- 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.
- Removed the
- Block predicates
- Added
minecraft:volume_match- Checks that every block in a volume matches a given Block Predicate.
- Format:
min– list of 3 integers in range -16 to 16 specifying the lower corner of the volume as an offset from the test position.max– list of 3 integers in range -16 to 16 specifying the upper corner of the volume as an offset from the test position.match– block predicate to test on each position.
- Added
- Block state providers
- Updated
minecraft:copy_properties_provider- Renamed field
source_block_state_providertosource
- Renamed field
- Added
minecraft:random_block_provider- Returns the default block state for a randomly chosen block.
- Format:
blocks: block ID, list of block IDs or hash-prefixed block tag, specifying the set of blocks to randomly pick from.
- Changed
minecraft:rotated_block_provider- Now works on any block with axis or facing properties.
- Format:
- Changed the field
state: Now a block state provider. - Added the field
direction: Optional field describing the direction to set.- If omitted, a random direction is chosen.
- Changed the field
- Updated
- Carvers
- The
worldgen/configured_carverregistry has been renamed toworldgen/carver - Updated
minecraft:cavecarver type- All fields previously under the config field have been inlined to the top-level.
- Added the
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 the
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: - If not specified, defaults to
false
- If
- Removed the
replaceablefield, carvers will replace any block (excluding features). - Removed the
lava_levelfield, fluids are now always selected by theaquiferorsea_levelconfiguration in the dimension. - Removed the
debug_settingsfield.
- Updated
minecraft:canyoncarver type- All fields previously under the config field have been inlined to the top-level.
- Renamed and moved
yScaletoshape.y_scale - Removed the
replaceablefield, carvers will replace any block (excluding features). - Removed the
lava_levelfield, fluids are now always selected by theaquiferorsea_levelconfiguration in the dimension. - Removed the
debug_settingsfield.
- Removed
minecraft:nether_cavecarver type- Replaced by the
minecraft:cavecarver type
- Replaced by the
- The
- Density functions
- Updated
constantargumenthas been renamed tovalue
- Updated
add,mul,min, andmaxargument1has been renamed toleft.argument2has been renamed toright.
- Updated
abs,square,cube,half_negative,quarter_negative,squeeze,interpolated,flat_cache,cache_2d,cache_once,cache_all_in_cell, andblend_densitydensity functionsargumenthas been renamed toinput.
- Updated
shift_a,shift_b, andshiftargumenthas been renamed tonoise
- Added
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
div- Performs division between two arguments.
- Format: object with fields:
left- Density Function, the left-hand side of the operation.right- Density Function, the right-hand side of the operation.
- Updated
reciprocal- Renamed from
invert
- Renamed from
- Added
negate- Negates the input.
- Format: object with fields:
input- Density Function, the function to negate.
- Added
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
floor,round,ceil, andtruncate- Rounds the input value to an integer multiple of a given function in a type-dependent direction:
floor: rounds towards negative infinity.round: rounds towards the nearest integer (ties round up).ceil: rounds towards positive infinity.truncate: rounds towards 0.
- Format: object with fields:
input- Density Function, the input to round.multiple- 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
- Rounds the input value to an integer multiple of a given function in a type-dependent direction:
- Added
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
- Added
pow- Raises the given base value to an exponent.
- Format: object with fields:
base– density function, the base value.exponent– density function, the exponent.
- Added
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
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
sign- Computes the sign of the input:
- If the input is positive, returns
1 - If the input is 0, returns
0 - If input is negative, returns
-1
- If the input is positive, returns
- Format: object with fields:
input– density function, the value of which to compute the sign.
- Computes the sign of the input:
- Added
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 to.metric– one of:euclidean– i.e.euclidean_squared– i.e.manhattan– i.e.chebyshev– i.e.
- Updated
gradient(renamed fromy_clamped_gradient)- Format: object with fields:
axis–x,y, orz, the axis over which to define this gradient.tiling– one of:clamp_to_edge– outside the gradient boundaries, the value at the nearest boundary will be used.repeat– the gradient will be repeated outside its boundaries.mirrored_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 starts.to_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 starts.to_value– float, the value at which the gradient ends.
- Format: object with fields:
- Added
slice- Removes a dimension from the input domain by taking a "slice" along an axis with a specific coordinate. For example, with
axis=yandcoordinate=0, a slice will be taken along the XZ plane, with all values sampled aty=0. - Format: object with fields:
axis–x,y, orz, the axis to remove.- coordinate – int, the fixed coordinate to be passed to the input function.
- input – density function, the input function.
- Removes a dimension from the input domain by taking a "slice" along an axis with a specific coordinate. For example, with
- Changed
end_outer_islands- Renamed from
end_islands. No longer computes the density of the main island.
- Renamed from
- Updated
- Int Providers
- Added
minecraft:very_biased_to_bottomInt 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).
- Added
- 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.
- Material Conditions can also now be specified as an ID reference to an element in the
- 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_rulefield 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 rules can now be specified either inline (as previously), or as an ID reference to an element in the
- 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 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_octave. - Added
base_amplitude– non-negative 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 between1and32, the number of octaves to sample. - Added 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
- Placement Modifiers
- Changed
minecraft:offsetplacement modifier- Renamed from
random_offset. - Format:
- Removed the fields
xz_spreadandy_spread. - Added the fields
x,y,z: Integer providers between -16 and16specifiying the axis-specific offset.
- Removed the fields
- Renamed from
- Added
minecraft:cuboid- Repeats a feature in a cuboid shape.
- Added fields:
xz_size: int provider between1and16representing the size of the cuboid alongxandzaxes.y_size: int provider between1and16representing the size of the cuboid along theyaxis.include_interior: optional boolean (defaulttrue) for whether to place interior blocks of the cuboid.include_edges: optional boolean (defaulttrue) for whether to place edge blocks of the cuboid.- Setting this to
falsegenerates a somewhat "rounded" cuboid.
- Setting this to
- Added
minecraft:random_chance- Gates the feature being placed behind a random chance.
- Format:
chance: float value between0and1representing 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:
placements– non-empty list of Placement Modifiers to pick from.
- Changed
- Rule Tests
- These are the predicates used by ore features (
targets[].target) and rule structure processors (rules[].input_predicateandrules[].location_predicate). - Added rule test type
minecraft:height_match- Checks the y-level of a block, returning
trueonly if it is greater than or equal tomin_inclusiveand less 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).
- Checks the y-level of a block, returning
- Added rule test type
minecraft:all_of- This checks a list of Rule Tests for whether all of them return true for the same block.
- Format: object with fields:
rules- list of Rule Tests, the rules to test the block against.
- Added
minecraft:any_of- This checks a list of rule tests for whether any of them returns true for the same block.
- Format: object with fields:
rules– list of rule tests, the rules to test the block against.
- Added
minecraft:not- This checks a rule test for whether it returns false for a given block.
- Format: object with fields:
rule– rule test, the rule to test the block against.
- These are the predicates used by ore features (
- Structure Placements
- Added
minecraft:dimension_origin - New structure placement that 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.
- Added
- Structure pool elements
- Changed
minecraft:feature_pool_element- Can now connect to jigsaw blocks with any target name, instead of just
minecraft:bottom.
- Can now connect to jigsaw blocks with any target name, instead of just
- Changed
- Vertical Anchors
- Added a new option for vertical Anchors:
relative_to_sea_level- Specifies an offset to the sea level of the dimension.
- Added a new option for vertical Anchors:
Misc
This version contains the model for straw_bed_head twice, once in the correct spot of assets/minecraft/models/block/straw_bed_head.json and another misplaced inside of assets/minecraft/textures/block/straw_bed_head.json
Fixes
From released versions before 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 Minecraft'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-73162 – Breaking an entity that instantly breaks sometimes destroys the block behind it in Creative mode.
- MC-91006 – Some entities lose their name when placed/broken.
- MC-102732 – Arrows can visually bounce off of entities that don't wear a shield.
- MC-110989 –
/spreadplayersconsiders signs to be a valid block 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 – Keybindings (e.g. ⎈ Control + A) are being mapped to the US keyboard layout even if you're using another layout.
- 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 – Command success messages for some commands include unaffected entities, unlike the command result.
- MC-122731 – Camera movement stutters when turning in a boat.
- MC-133407 – Keybinds switch when upgrading to 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 /give when affecting multiple players uses the wrong string.
- MC-159283 – The End terrain does not generate in multiple rings centered around the world center.
- MC-161885 – Many transparent things do not render behind slimes.
- MC-161898 – Transparent particles make other particles 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 when the value is not changed. - MC-175180 – The
SilentNBT tag still doesn't make some entities fully silent. - 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 block entities is visually slow.
- MC-206540 – Increased input delay when riding an entity.
- MC-210584 – Semi-transparent textures on an item that doesn't have it by default doesn't render water behind it.
- MC-212671 – Loot table tag entry with "
expand":truedoes not apply functions. - MC-218156 – Shipwrecks and ocean ruins can generate with empty buried treasure maps.
- 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-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-236497 – The head rotations of passengers in boats are not correctly displayed for 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-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 item frames, paintings, or cushions logs
Block-attached entity at invalid position: [BlockPosition]. - MC-253023 – Breaking paintings, item frames, glow item frames cannot trigger sculk shriekers.
- MC-254353 – A packet to remove the score is always broadcast when a score is reset.
- 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-258579 – The player's head does not rotate smoothly (with delay) 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-263708 – Keybinds menu renders Keypad keys the same as regular keys.
- MC-264003 – Boats carrying players sometimes stop abruptly when sliding along ice.
- 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_through enabled.
- MC-266429 – Holding shift on macOS causes hotbar scroll direction to reverse (mouse only).
- MC-267902 – The failure message of
/randomwhen the specified range is too large states an incorrect maximum for the range. - MC-268521 – The game window doesn't have a minimal width and height.
- MC-269968 – Can't scroll while holding shift on macOS (except in the hotbar) (mouse only).
- 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-273327 – The
#convertable_to_mudblock tag misspells "convertible" as "convertable". - 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-278771 – The incorrect command context is used when providing suggestions for redirected commands.
- MC-279185 – The "
selectWorld.load_folder_access" string is missing an article before the word "folder". - MC-279395 – Trees can generate floating over ruined portals.
- MC-279819 – The mining speed factor of Mining Fatigue is inconsistent at level 3.
- MC-280250 – Projectiles sometimes desync when thrown/shot while moving.
- MC-293615 – Tooltip formatting of "Items 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-side, causing players to be moved differently compared to other entities.
- MC-296006 – Entities do not face the player correctly whilst in a boat.
- MC-297741 – Gravity-affected blocks in upwards bubble columns can clip through solid blocks above them (on the client).
- MC-298431 – Boats are launched by slime blocks inconsistently.
- MC-298659 – Translucent blocks and some entities render above text displays with see_through enabled.
- MC-298762 – Phantoms deflect arrows shot from bows/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-299582 – Special crafting recipes behave differently than other recipe types with
/recipeand thelimited_craftinggame rule. - MC-300000 – Players desync when teleporting all users riding a happy ghast.
- 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-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-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-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-306127 – Block outlines are no longer visible behind translucent items.
- MC-306156 – Breezes, slimes and players between translucent blocks or fluids appear behind them if "Improved Transparency" is 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 "Improved Transparency" enabled.
- MC-306619 – Cannot jump while sneaking while using a Chinese input method.
- MC-306628 – TNT minecarts don't delete piercing arrows.
- MC-307206 –
Std140Builderincorrectly padsvec3sandivec3s. - MC-307285 – Translucent blocks don't render behind sulfur cubes.
- MC-307345 – The smoke particles produced by potent sulfur do not render behind stained glass.
- 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-307996 – The game cannot use hardware acceleration on devices lacking the
fillModeNonSolidVulkan feature. - MC-308008 – The success message of /tag reports that it affected more entities than it did.
- MC-308009 – The success message of /scoreboard players enable reports that it affected more players than it did.
- MC-308011 – The success message of /recipe reports that it affected more players than it did.
- MC-308012 – The success message of /enchant reports that it affected more entities than it did.
- MC-308013 – The success message of /effect reports that it affected more entities than it did.
- MC-308127 – The "Friends Screen" key bind overrides debug hotkeys using the same key.
- MC-308222 – Worldgen heightmaps do not persist properly through chunk saving/loading.
- MC-308254 – Dying to a sulfur cube with a magma block doesn't increment the player's killed_by:sulfur_cube statistic.
- 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 – /unpublish succeeds 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-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-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 to replace tall grass doesn't break the other half.
- 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-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-309298 – Sending chat messages while having the "Chat Delay" option set to a nonzero value can sometimes kick you from the game.
- MC-309565 – Block outlines are rendered behind translucent elements if the "High Contrast Block Outlines" option is 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 mispelled 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 do not follow players holding spider eyes.
- MC-310337 – The game log outputs the incorrect minimum format version requiring the
pack_formatfield inpack.mcmeta. - 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-310787 – Villagers do not level up until the trading window is closed for several seconds.
Notes
- ↑ Named
block_state_providerin the official changelog. - ↑ Named
xz_offsetin the official changelog.
References
- ↑ Iron axe default data component
- ↑ Iron hoe default data component
- ↑ Iron shovel default data component
- ↑ MC-310826
- ↑ MC-310845
- ↑ MC-310723
- ↑ MC-310863
- ↑ a b MC-309259 – Block Tags "#blocks_fluid_flow" and "#washed_away_by_fluids" do not work as expected
- ↑ MC-310109
- ↑ MC-310110
- ↑ worldgen/feature/desert_well.json – misode.mcmeta
Navigation
Sources
- Java Edition 26.3 — Minecraft Wiki, CC BY-NC-SA 3.0, revision 3724939.