# Minecraft: Java Edition 26.3 Wilderness Bound is out now in Minecraft Java Edition! Pack your supplies and set off on an expedition into the dappled forest where the trails end and adventure begins. Seek out abandoned camps, build outposts among the poplar trees, sleep under the stars on straw beds, and share campfire stories atop cushions. Just remember that the wilderness rewards the prepared - and maps are lighter than regrets! Happy camping! ## New Features - Added Dappled Forest Biome - Added Poplar Trees - Added fallen Poplar Trees - Added Red Poplar Leaves, Orange Poplar Leaves, and Yellow Poplar Leaves blocks - Added Poplar wood set - Added Shelf Mushrooms - Added Red Shrubs - Added Abandoned Camp structures - Added new Explorer Maps - Added Cushions - Added Straw Beds - Added Wool Stairs and Wool Slabs for all Wool blocks - Added Concrete Stairs and Concrete Slabs for all Concrete blocks - Players in spectator mode can now interact with portals to teleport - Improvements to Realms, including the ability to create and manage Invite Codes - Added Gothic language support ### Dappled Forest Biome - A new type of forest biome which can be found near cold biomes - Poplar Trees and fallen Poplar Trees generate here - Shelf Mushrooms can be found here, placed on Poplar Trees and fallen Poplar Trees - Red Shrubs generate here - The following passive and neutral mobs spawn in the Dappled Forest, using their cold variants where applicable: - Sheep - Chicken - Cow - Pig - Rabbit - Fox - A Dappled Forest variant of the new Abandoned Camp structure can be found here ### Poplar Trees - A new type of tree which comes in three color variations: - Red Poplar Leaves - Orange Poplar Leaves - Yellow Poplar Leaves - Each variant of the tree has its own variant of falling leaf particles matching the color of the leaves - Poplar Leaves drop Poplar Saplings which will randomly grow into any of the three different variants - Poplar Saplings can be found in trades with the Wandering Trader - Shelf Mushrooms and Leaf Litter naturally generate on or around Poplar Trees - The trunk of the trees are made of Poplar Logs - Poplar Logs can be crafted into a new set of Poplar wood blocks ### Shelf Mushroom - A new type of mushroom that generates on Poplar Trees and fallen Poplar Trees - Can be found in two sizes, small and large - A small Shelf Mushroom can be grown into a large Shelf Mushroom by using Bone Meal - A large Shelf Mushroom drops two Shelf Mushroom items when broken - Can be used like other mushrooms to make Stews - Can be found in trades with the Wandering Trader - Shelf Mushrooms have a slight bounciness when stepped on, similar to Beds - The Shelf Mushroom makes a bouncing sound when a living entity bounces on it ### Red Shrub - A new type of decorative plant block that can be found in small patches in the Dappled Forest - Can be used in the Composter - Using Bone Meal on a Red Shrub grows a Red Shrub in a random adjacent space if possible ### Abandoned Camp Structure - A new kind of structure which can be found in the following biomes: - Meadow - Cherry Grove - Forest - Birch Forest - Old Growth Birch Forest - Flower Forest - Windswept Forest - Dappled Forest - Taiga - Snowy Taiga - Old Growth Spruce Taiga - Old Growth Pine Taiga - Sparse Jungle - Bamboo Jungle - Swamp - Savanna - Wooded Badlands - Pale Garden - Each of these biomes has its own variant of the structure with a design based on the biome - Certain structure pieces are generic for all biome variants of the structure - Various Chests and Barrels with loot can be found at Abandoned Camps ### Cushion - The Cushion is an item that the player can place in the world and interact with to sit on - Can be crafted in 16 colored variants - Cushions are crafted by using 3 Wool Slabs of the same color #### Cushion Placement Rules - A Cushion can be placed on any flat surface - Cushions always align horizontally to the grid, but vertically sit on top of the supporting surface - Cushions cannot be moved by pistons - Cushions break if the supporting block is removed - Cushions do not have collision and can overlap with other objects (except other Cushions) ### Straw Bed - The Straw Bed is a new type of bed which can be used to sleep through the night without setting your spawn point - It can only be used once and will be destroyed after use - It cannot be used in the Nether or the End and will be destroyed if you try to sleep on it there - It is crafted by using 3 Hay Bales and will give you 4 Straw Beds - There's a new statistic in the Statistics window for the amount of times you've slept in a Straw Bed ### Wool Stairs and Wool Slabs - Each colored Wool block now has a new Stair and Slab variant - Wool Stairs and Wool Slabs can be used like other Wool blocks to dampen vibrations ![Efe is standing on a rainbow platform made of concrete stairs and slabs, with a backdrop of poplar leaves, logs and shelf mushrooms.](https://launchercontent.mojang.com/v2/images/concrete1280x720.jpg) ### Concrete Stairs and Concrete Slabs - Each colored Concrete block now has a new Stair and Slab variant - Concrete Slabs and Stairs can also be crafted using a Stone Cutter ### Abandoned Camp Explorer Maps - New Explorer Maps have been added to the Abandoned Camps - Added maps showing the location of other Abandoned Camps in the following biomes: - Bamboo Jungle - Cherry Grove - Birch Forest - Dappled Forest - Flower Forest - Pale Garden - Swamp - Windswept Forest - Added maps for the following structures: - Ancient City - Trial Chambers - Mineshaft - Desert Pyramid - Jungle Pyramid - Warm Ocean Ruins - Woodland Mansion ### Realms - Realm owners can now create and manage Invite Codes - Each Realm can have up to five Invite Codes - Invite Codes can be configured to be active/inactive and deleted - The expiration of an Invite Code can also be configured - Players can now easily join a Realm by entering an Invite Code in a new "Join Realm" screen, found in the Realms main menu - Added render distance and simulation distance sliders to the Realm configuration settings - Added a new Realms introduction screen showcasing Realms key features - Accessible from the "Add Realm" button - Automatically shown when entering Realms if a trial is available ![Trading with a villager who is holding a new explorer map.](https://launchercontent.mojang.com/v2/images/explorer1280x720.jpg) ## Changes - The Main Menu now has an updated background panorama showing the new Dappled Forest biome with an Abandoned Camp - Removed fallen leaf particles from Spruce Trees - Suspicious Stews can now be crafted with 2 of any mushroom - Mushroom Stew can now be crafted with 2 of any mushroom - The player icon on maps has been updated to always show the direction the player is facing - New Villager trades, unlocked from a Villager leveling up their profession, will now update even if the player is in the process of trading with them - Persistent mobs' random walk/swim behaviors will now deactivate when players are not nearby, in the same way as non-persistent mobs - Replaced the current "Improved Transparency" approach with a new order-independent transparency algorithm which is expected to be much better at solving translucency issues - Added a rebindable debug key combination "F3 + X" to toggle "Improved Transparency" - When using a Shield together with a Hoe or a Shovel, raising the Shield will take precedence over tilling and path making - Changed the Adventure Mode icon in the Game Mode Switcher to the Buried Treasure Map - Improvements to performance when trying to locate structures - Improvements to chunk generation performance ### Explorer Maps - Explorer Maps are now their own items instead of renamed Filled Maps, and each has its own icon: - Ocean Monument Map - Woodland Mansion Map - Buried Trial Chambers Map - Jungle Pyramid Map - Swamp Hut Map - Desert Village Map - Plains Village Map - Savanna Village Map - Snowy Village Map - Taiga Village Map - Buried Treasure Map - Buried Ancient City Map - Buried Mineshaft Map - Desert Pyramid Map - Abandoned Camp Map - Warm Ocean Ruins Map - These items cannot be obtained from the Creative inventory - Existing Explorer Maps in old worlds are converted to the matching new item on load - The following Explorer Maps have been renamed to have more consistent naming - Ocean Monument Explorer Map → Ocean Monument Map - Swamp Hut Explorer Map → Swamp Hut Map - Trial Chambers Explorer Map → Buried Trial Chambers Map - Woodland Mansion Explorer Map → Woodland Mansion Map - Jungle Pyramid Explorer Map → Jungle Pyramid Map - Explorer Maps can still be cloned in a Crafting Table, and the copies keep their own item type - Explorer Maps and Buried Treasure Maps can no longer be zoomed out, neither in a Crafting Table nor at a Cartography Table - Buried Treasure Maps could previously be zoomed out at both - Explorer Maps could previously be zoomed out at a Cartography Table - Only maps in the `#minecraft:extendable_maps` tag can be zoomed out - Map and Empty Map have new icons ![A slime sits in front of a geyser inside of a waterfall in a cave.](https://launchercontent.mojang.com/v2/images/oit21280x720.jpg) ### Order-independent Transparency (OIT) - Generally, translucent surfaces need to be rendered back-to-front to avoid visual issues - In order to do so, the translucent geometry has to be sorted before rendering - This is very expensive and even with perfect sorting of individual triangles, intersecting triangles are not possible to render correctly - Before this release, the "Improved Transparency" video setting attempted to mitigate translucency-related visual issues - It did this by rendering different types of translucent objects (entities, particles, water, etc.) to different textures that were later combined to create the final image - This allowed us to fix some of the issues with some performance impact - However, it introduced some other less noticeable issues - Now, the "Improved Transparency" video setting will instead enable a new order-independent transparency algorithm (which we will refer to as OIT) - This makes it possible to render translucent objects in any order without sorting - It fixes all existing major translucency-related visual issues (such as certain objects disappearing when viewed through translucent objects) - However, the algorithm is an approximation, and so it introduces some new minor visual artifacts (such as the color of clouds being somewhat incorrect when viewed through multiple layers of translucent surfaces) - We expect OIT to have a higher performance impact than the previous implementation of "Improved Transparency" - When "Improved Transparency" is turned off, the behavior hasn't meaningfully changed and the game will still prioritize performance over correctness while sorting geometry as necessary > **Developer's Note**: _Special thanks to Rubén Osorio López, Jozufozu, and the Minecraft modding community in general for sharing the information that helped us to deliver this._ ### Minor Tweaks to Blocks, Items, and Entities - Endermen will now take damage from projectiles if they're riding something - Teleporting randomly after eating a Chorus Fruit now shows particles into the direction of the teleportation - Endermen and Shulkers no longer teleport onto Bedrock - Armadillos no longer try to roll up when submerged in liquids - Data set on a Spawn Egg will now transfer to a Mob Spawner when a player with operator permissions uses the Egg on the Spawner - Sherds dropped from breaking a Decorated Pot will now preserve data, for example custom names - Enchantments now apply to items being damaged from protecting an undead mob from the sun - Teleporting with an Ender Pearl now resets the momentum of the player being teleported ### UI - Removed the Raw Input mouse setting - Mouse input now always uses relative mouse mode while playing in-game - Key bindings now use physical keys instead of keyboard-layout-specific key codes - Borderless Fullscreen is now the default fullscreen mode - Switching between Borderless and Exclusive Fullscreen no longer requires restarting the game - The cursor is now confined to the window while Exclusive Fullscreen is active - The minimum window size is now 320 by 240 pixels - On macOS, holding a key while entering text now displays the native accent and candidate popup - On Linux systems, the game will now use and prefer Wayland natively if available - Fixed an issue where Realm owners could not select automatic region preference as their Realm region - Added a "Quit Shortcuts" option in Controls settings, which controls whether keyboard shortcuts can close the game (Alt + F4 on Windows/Linux, Cmd + Q and Cmd + W on macOS) - On by default - On macOS, added a "Right Click Emulation" option in Controls settings, which treats Control + left-click as a right-click - Off by default - On macOS, added a "Menu/Dock Visibility" option in Video Settings, which controls whether the macOS Menu bar and Dock can be revealed by moving the mouse to the edge of the screen while in fullscreen - Added support for Realms to use additional server regions in Canada, Mexico, South Africa, and Arizona, USA if they become available in the future #### Debug Overlay - The debug overlay now supports a separate GUI scale from the rest of the game - This is customizable through the Debug Options screen, `F3 + F6` - The default scale is "Auto", which tries to stay at a higher resolution than normal - Another option is "Unchanged", which matches your regular GUI scale - The rest of the options work the same as in the normal "GUI Scale", controlling the scale directly - Added a "player\_speed" debug entry that displays the speed of the player in blocks per tick - The debug overlay now shows the display refresh rate #### World Options - The World Options button has been moved to where the Open to Lan button used to be, accessible from the pause menu - The World Options screen is divided into two sections: "General" and "Multiplayer" - The "General" section contains the following options: - Default Game Mode: the default game mode of the world (equivalent to the `/defaultgamemode` command) - Personal Game Mode: your active game mode in the current world (equivalent to the `/gamemode` command, or F3 + F4) - Allow Commands: Controls whether you can use commands in this world or not - Difficulty: Controls the difficulty of the world (equivalent to the `/difficulty` command) - Edit Game Rules: Opens the Game Rules screen, which allows you to view and edit the game rules of the world - Restrictions: View your restrictions in the world - The "Multiplayer" section contains the following options: - LAN: changes the multiplayer scope of the world - Port: the port number to use when opening the world to LAN - Command Access: controls whether players that join your world can use commands or not - Force Game Mode: controls whether other players' game mode is forced to match the default game mode of the world or not - The Online button used to access the Online Options screen will now always be shown in the Options menu instead ### Accessibility - Subtitles now point to the most recent sound in range ### Creative Inventory - Reordered mineral item and block ordering to have non-tiered ingredients up first, then tiered ingredients that craft into equipment last - Ingredients - Non-tiered minerals - Unrefined tiered minerals - Refined tiered minerals - Nuggets - Ingots - Building Blocks - Non-tiered mineral blocks and variants - Refined tiered mineral blocks and variants - Copper block family - Copper Blocks continue to be pushed to the end of the order in Building Blocks since they have a large list of content - Improved the ordering of the Natural Blocks tab so that all inner ordering of group content sequentially progresses from Overworld → Nether → End to stay consistent with other tabs ## Technical Changes - The Data Pack version is now 121.0 - The Resource Pack version is now 97.1 - Some log lines that server software might look out for have been removed - The Minecraft Server Management Protocol can be used instead - If you are missing access to specific events, please create a feature request on the [Feedback site](https://feedback.minecraft.net/) - The `definition` field from the `blocks.json` data generation report has been removed - Terrain blocks are now rendered with MultiDrawIndirect on supported devices - `level.dat` now contains a `version_history` list with prior data versions of the file ### Windowing and Input Backend - Minecraft now uses SDL3 instead of GLFW for window management, input, and platform integration - Keyboard input now uses SDL scancodes for physical key positions and SDL keycodes for layout-dependent text editing shortcuts ### Server Properties - The `white-list` property is now `true` by default ### Minecraft Server Management Protocol 3.1.0 - Added notifications indicating when the server performs a full world upgrade on startup - `minecraft:notification/world/upgrade_started` - `minecraft:notification/world/upgrade_progress` - `minecraft:notification/world/upgrade_finished` - `minecraft:notification/world/upgrade_failed` ## Data Pack Versions 108.0 through 121.0 - Commands like `/give`, `/unpublish`, and `/tick` should now properly signal errors - Pottery sherds are now data-driven - Entries stored in the `minecraft:pot_decorations` component and `minecraft:decorated_pot` block entity are now full item stacks - Signs no longer automatically execute click events in custom text - Potion recipes are now data-driven - The `minecraft:number_provider` and `minecraft:number_provider_type` registries have been split into separate registries for integer calculations (`minecraft:context_int_provider`, `minecraft:context_int_provider_type`) and float calculations (`minecraft:context_float_provider`, `minecraft:context_float_provider_type`) - Loot table types that have a dedicated registry now support registry element and tag references - This means that the majority of fields of such types that previously accepted single elements will now accept either a namespaced ID or an inline value, while fields that previously accepted lists can now accept an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID - Affected types: - `minecraft:advancement` - `minecraft:item_modifier` - `minecraft:loot_table` - `minecraft:context_int_provider` - `minecraft:context_float_provider` - `minecraft:predicate` - `minecraft:recipe` - `minecraft:slot_source` - Existing `reference` types for predicates, item modifiers, and slot sources are now obsolete and have been removed - The codec for element lists/tags now allows mixing inline values and references - For example, item modifiers like `[{type:set_count, ...}, "minecraft:some_modifier"]` are now allowed - The following Block State fields have been renamed - `Name` is now `id` - `Properties` is now `properties` - The default Block State of a Block can now be referred to in a compact form directly by the Block id ![Looking at several villagers while having the spider vision effect enabled.](https://launchercontent.mojang.com/v2/images/posteffects1280x720.jpg) ### Commands #### Added `posteffect` - Allows adding or removing "post effects" to players - These are postprocessing shaders that are applied to the player's screen, after the game has finished normal rendering - Post effects exist on the client (in resource packs), not the server – the server cannot know if one will actually apply - Post effects themselves were already part of the resource pack format, but only a few hardcoded ones were available to use > **Developer's Note**: _This now makes custom shaders fully available to use from resource packs, but please be aware that shaders are still subject to be changed at-will, and the features involved (the command, post effects, or shaders) may be redesigned in the future._ Syntax: - `/posteffect add ` - adds the post effect to the player, if it doesn't already exist - `/posteffect clear ` - removes all post effects from the player, if any exist - `/posteffect list ` - lists all post effects applied to the player, if any exist - `/posteffect remove ` - removes the post effect from the player, if it exists #### Changes to `publish` - The `gamemode` argument has been removed - Instead, the default game mode of the world should be set using the `defaultgamemode` command or the Game Mode button in the World Options screen, while player-specific game modes should be set using the `gamemode` command #### Added `compute` - Evaluates `minecraft:context_int_provider` and `minecraft:context_float_provider` values in various contexts - In all contexts, `origin` is set to the current command context position, while `this` entity is set to `@s` - If the evaluation fails (for example due to division by zero), this command will fail Syntax: - `/compute integer ` OR - `/compute float []`, where: - `` - one of: - `default` - runs the provider in the `minecraft:command_compute_default` context, where only common arguments (position and `this` entity) are available - `block ` - runs the provider in the `minecraft:command_compute_position` context, where block state and block position are set based on the block at position `` - `entity ` - runs the provider in the `minecraft:command_compute_entity` context, where `target_entity` is set to the selector result - `` - either an element of the `minecraft:context_int_provider` registry or an inline value - `` - either an element of the `minecraft:context_float_provider` registry or an inline value - `` - optional scale value, defaults to `1.0` - The final result will be multiplied by `` and rounded towards negative infinity #### Changes to `data` - Added new source to `/data modify ... append|insert|merge|prepend|set` called `compute` - It evaluates a `minecraft:context_int_provider` or `minecraft:context_float_provider` value and then provides the result either as an integer or a float tag - Example: `/data modify storage foo bar set compute entity @n[type=minecraft:armor_stand] integer {type:score,target:{type:context,target:target_entity},score:baz}` Syntax: - `compute (integer | float )`, where the syntax of `target`, `int_provider`, `float_provider` is the same as in the `/compute` function - Note: unlike `/compute`, there is no `scale`, since the result is directly stored as a float, instead of being returned from the command as an integer #### Changes to `give` - When the amount of items passed to the `give` command is above the limit, the command will now signal an error instead of just printing an error message and returning `0` #### Changes to `tellraw` - The `nbt` component in a raw chat message will only be resolved up to 64k times #### Changes to `tick` - The following subcommands will now signal an error instead of just printing an error message and returning `0`: - `tick step` - `tick step stop` - `tick sprint stop` #### Changes to `team` - The result of the `team join` and `team leave` subcommands now reflects the exact count of entities that have joined or left (i.e. excluding entities for which teams have not changed) #### Changes to `item` - Now takes a slot source as an argument in place of anywhere a slot was previously used - It will be evaluated with the `minecraft:command_slot_source` loot type - Can be a slot source in either inline or reference form - Can be a slot source targeting multiple slots - The `replace` sub-command has new semantics: - The contents of each destination slot are replaced with the corresponding source item one by one in the order they are provided by the slot source - When there are more destination slots than there are source items, the remaining slots are ignored - Example: `replace [12345] with (ABC)` → `[ABC45]` - When there are fewer destination slots than there are source items, the remaining items are ignored - Example: `replace [123] with (ABCDE)` → `[ABC]` - String notation slot ranges in the form `` or `.` 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` slot source using that slot range - Example: `hotbar.4` is the same as `{type:"minecraft:slot_range",slots:"hotbar.4"}` - The entity argument in the `from entity` item 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 `fill` and `override` sub-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]` - `/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) #### Changes to `execute` - Added new `slots` condition 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_source` loot type - Syntax: - `/execute if|unless slots block ` - `/execute if|unless slots entity ` - The `items` condition sub-command now takes a slot source as argument instead of a slot - The slot source will be evaluated with the `minecraft:command_slot_source` loot type - Syntax: - `/execute if|unless items block ` - `/execute if|unless items entity ` #### Changes to `place` - The `feature` sub-command now allows inline definition of the Feature #### Changes to `spreadplayers` - Whether a block is safe to spread a player to is now controlled by the `#entities_can_teleport_to` block tag #### Changes to `swing` - When used on a player, the player's attack strength will no longer be reset - Added a new optional argument to set the swing animation to play - Allowed values: `none`, `whack`, `stab` - If omitted, defaults to `whack` - Added a new argument to set the duration of the swing animation, if provided - Format: positive time value (by default in ticks) - If omitted, defaults to `6t` ### Environment Attributes #### Added `minecraft:gameplay/natural_mob_spawns` - Defines mob spawns in an Environment Attribute Source - During worldgen placement, only Dimensions and Biomes will apply this Environment Attribute - Format: object with fields: - `spawns_by_category` - map of spawn category to weighted list of spawn data - Spawn data format: object with fields: - `type` - entity type, the entity to spawn - `count` - int provider, amount to spawn - `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` #### Changed `minecraft:gameplay/bed_rule` - Field `explodes` has been renamed to `destroy_on_use` - Added `destroy_on_leave` - optional boolean, if `true`, the Bed will be destroyed when leaving it - If omitted, defaults to `false` #### Added `minecraft:gameplay/straw_bed_rule` - Same format as `minecraft:gameplay/bed_rule`, but used for the Straw Bed #### Changed `minecraft:visual/ambient_particles` - Now supports interpolation between Timeline keyframes (probabilities will be crossfaded) - Introduced support for new modifier: `append` - Unlike `override` which totally replaces the particle list, this modifier concatenates all elements with the layers below ![Zuri is creating a trail of shroomlights using a blaze rod as a custom block transformer.](https://launchercontent.mojang.com/v2/images/blocktransform1280x720.jpg) ### Data Components #### Added `minecraft:provides_pottery_pattern` - Describes the pottery pattern stored on a stack - Format: - namespaced ID pointing to an element of the `minecraft:decorated_pot_pattern` registry #### Added `minecraft:cooking_fuel` - Describes an item that can be used as fuel for a Furnace, Smoker, or Blast Furnace - Format: object with fields - `burn_time` - inline integer number, or a namespaced ID pointing to an element of the `minecraft:context_int_provider` registry representing the time in ticks for which this fuel will burn - `speed_multiplier` - inline float number, or a namespaced ID pointing to an element of the `minecraft:context_float_provider` registry representing the speed of the cooking/smelting - Cooking fuel items with remainders will be handled as follows: - If there is fuel remaining in the fuel slot, the remainder item will be dropped on the ground - If the fuel has run out, the remainder item will remain in the fuel slot #### Added `minecraft:brewing_fuel` - Describes an item that can be used as fuel for a Brewing Stand - Format: object with fields - `uses` - inline integer number, or a namespaced ID pointing to an element of the `minecraft:context_int_provider` registry representing the number of times this fuel will brew before being consumed - `speed_multiplier` - inline float number, or a namespaced ID pointing to an element of the `minecraft:context_float_provider` registry representing the speed of the brewing - Brewing fuel items with remainders will be handled as follows: - If there is fuel remaining in the fuel slot, the remainder item will be dropped on the ground - If the fuel has run out, the remainder item will remain in the fuel slot - This behavior matches items placed in the input and reagent slots of the brewing stand - Note: the `#brewing_fuel` item tag has been removed and will no longer function to register new brewing fuels #### Changed `minecraft:pot_decorations` Instead of taking a list of 4 item IDs, this component now takes an object with 4 optional item stack fields named: - `back` - `left` - `right` - `front` #### Changed `minecraft:trim_material` - The format of inline material definitions has been updated as described below #### Added `minecraft:block_transformer` - Allows an item to transform blocks into other blocks on player interaction - Format: - a namespaced ID of a `minecraft:block_transformer` registry type #### Added `minecraft:sign_text_front` and `minecraft:sign_text_back` - Two identical components that represent text on the front and back of a sign - Contents will be displayed in the item's tooltip - The format is the same as the `front_text` and `back_text` fields on the `minecraft:sign` and `minecraft:hanging_sign` block entities, i.e. - `messages` - a list of text components - `filtered_messages` - an optional list of text components, if omitted, it will be set to the same value as `messages` - `messages` and `filtered_messages` must have the same entry count - `color` - optional dye color, default: `black` - `has_glowing_text` - optional boolean, default: `false` #### Added `minecraft:waxed` - A marker for blocks with contents that are waxed - No fields #### Added `minecraft:cushion/color` - Applied to Cushion entities when they get placed using an item - Format: one of 16 dye colors #### Added `minecraft:compostable` - Represents the ability to compost an item and how it adds layers to the composter - Format: object with fields - `layers` - inline integer number, or namespaced ID pointing to an element of the `minecraft:context_int_provider` registry #### Added `minecraft:villager_food` Represents items that Villagers can eat. Villagers will pick up items with this component in addition to items in the `#villager_picks_up` tag. - Format: object with fields - `nutrition` - positive integer, how much hunger the item satiates in the Villager once eaten #### Added `minecraft:mob_visibility` Represents the visibility percentage provided by an item with the appropriate `minecraft:equippable` component, modifying the range at which mobs are able to detect an entity. - Format: object with fields - `targeting_entity_types` - an entity ID, a list of namespaced entity IDs, or a hash-prefixed entity tag to match - `visibility` - float (between 0.0 and 10.0), with 0.0 reducing the range at which mobs detects the entity to 2 blocks while 10.0 increases the detection range tenfold - While multiple items with this component stack, the maximum vision will still never exceed 10.0 #### Added `minecraft:attack_animation` - The animation to play when the item is being used to attack something - Format: object with fields: - `type` - swing animation type, one of `none`, `whack`, `stab` - `duration` - non-negative integer, the length of the animation in ticks #### Added `minecraft:interact_animation` - The animation to play when the item is being used to interact with something - Format: Same as `minecraft:attack_animation` #### Changed `minecraft:consumable` - Added a new optional field to the `teleport_randomly` consume effect: - `directional_particles` - boolean, whether to show a particle trail into the direction of the teleportation - If not present, defaults to `true` #### Removed `minecraft:swing_animation` - This has been replaced by `minecraft:attack_animation` and `minecraft:interact_animation` - Setting both of these new components to the same value will be functionally identical to the old component, except for: - The `/swing` command - animation type now specified by the command - Items being dropped by entities #### Removed `minecraft:map_color` - Maps are no longer drawn as a tinted overlay, so there is nothing left for the color to apply to - Existing maps have the component stripped on load - See the Resource Pack section for the matching removal of the `minecraft:map_color` tint source ### Trim Materials The format of elements in the `trim_material` registry has been updated: - `asset_name` has been replaced with `palette` - Palette Texture ID to be used for this material - `override_armor_assets` has been removed - Overrides are now defined in the Resource Pack Equipment Asset - See the Resource Pack section for details about Palette Texture IDs ### Instruments The format of elements in the `instrument` registry have been updated: - Added `durability_damage` field - optional non-negative integer, amount of durability to consume on each use - Updated `use_duration` field - can now be `0` for no cooldown ### Entity Data - Added `invulnerable_time` tag which makes an entity temporarily invulnerable for a specific number of ticks ![Noor is sitting on a cushion waiting for smelting to finish, while snacking on a carrot.](https://launchercontent.mojang.com/v2/images/furnace1280x720.jpg) ### Block Entity Data #### Changed `minecraft:decorated_pot` The `sherds` field no longer stores a list of 4 item IDs. Instead, the new format is an object with 4 optional item stack fields named: - `back` - `left` - `right` - `front` #### Changed `minecraft:sign` and `minecraft:hanging_sign` - By default, commands and other click events contained in Sign text are no longer executed when the block is clicked - Additionally, text components on newly placed Signs are no longer resolved by default - A new boolean field called `allow_op_features` (defaults to `false`) has been added to restore previous behavior - Placed Signs and items with the `minecraft:block_entity_data` component containing Sign data stored in worlds saved before this version will have `allow_op_features` set to `true` - 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_data` was 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) - Signs will now accept and return the `minecraft:sign_text_front`, `minecraft:sign_text_back`, and `minecraft:waxed` components #### Changed `minecraft:brewing_stand` The following fields are now stored as integers rather than shorts: - Changed the `BrewTime` field from a short to an integer, this is the amount of time that the current brewing process has taken so far - Changed the `Fuel` field from a byte to an integer, this is the amount of fuel remaining The following new fields have been added: - `total_brew_time` - integer, the total amount of time the current brewing process will take - `total_fuel` - integer, represents the amount of fuel that was added in the last refuel - `speed_multiplier` - float, used to speed up or slow down the next brewing process #### Changed `minecraft:furnace`, `minecraft:smoker`, and `minecraft:blast_furnace` The following fields are now stored as integers rather than shorts: - Changed the `cooking_time_spent` field 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_time` field from a short to an integer, this is the total amount of time the current cooking process will take - Changed the `lit_time_remaining` field from a short to an integer, this is the amount of burn time remaining - Changed the `lit_total_time` field from a short to an integer, this is the total amount of burn time that was added in the last refuel The following new fields have been added: - `speed_multiplier` - float, used to speed up or slow down the next brewing process ### Advancements #### Validation - Visible root advancements (i.e. ones that have a `display` field, but no `parent` field) must always declare a `background` field in the `display` structure - Only root advancements can have a `background` field in the `display` structure #### Rewards - The `loot` sub-field in the `rewards` field 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 a `minecraft:loot_table` type #### Triggers - Multiple fields that accepted a list of loot conditions are now stricter: - The previous functionality of a list of conditions being equivalent to a single `minecraft:all_of` condition has been removed - Additionally, the `type` field is now mandatory (previously it defaulted to `minecraft:entity_properties`) - Some fields that previously accepted only inline loot conditions now also accept a namespaced ID of a `minecraft:predicate` - The `player` field, available on all triggers except `minecraft:impossible`, now accepts an inline value or a namespaced ID of a `minecraft:predicate` type - To avoid duplication, this field is not mentioned in entries below ##### Changed `minecraft:any_block_use` - The `location` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### 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:block` type - Added field `state` that matches block state properties (same format as `minecraft:enter_block`) ##### Changed `minecraft:bred_animals` - The `child`, `parent`, and `partner` fields now accept an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:brewed_potion` - The `potion` field now accepts a `minecraft:potion_contents` data component predicate ##### Changed `minecraft:cured_zombie_villager` - The `villager` and `zombie` fields now accept an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:default_block_use` - The `location` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:effects_changed` - The `source` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft: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 `minecraft:block` type ##### Changed `minecraft:fall_after_explosion` - The `cause` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:fishing_rod_hooked` - The `entity` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:placed_block` - The `location` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:item_used_on_block` - The `location` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:allay_drop_item_on_block` - The `location` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:player_killed_entity` - The `entity` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type - The `killing_blow.tags.id` field now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a `minecraft:damage_type` type ##### Changed `minecraft:entity_killed_player` - The `entity` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type - The `killing_blow.tags.id` field now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a `minecraft:damage_type` type ##### Changed `minecraft:kill_mob_near_sculk_catalyst` - The `entity` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type - The `killing_blow.tags.id` field now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a `minecraft:damage_type` type ##### Changed `minecraft:lightning_strike` - The `bystander` and `lightning` fields now accept an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:player_generates_container_loot` - The `loot_table` field has been renamed to `loot_tables` and now accepts a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:loot_table` type - If a tag or a list is used, the trigger will run when any listed loot table is generated ##### Changed `minecraft:thrown_item_picked_up_by_player` - The `entity` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:thrown_item_picked_up_by_entity` - The `entity` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:player_hurt_entity` - The `entity` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type - The `damage.type.tags.id` field now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a `minecraft:damage_type` type ##### Changed `minecraft:entity_hurt_player` - The `damage.type.tags.id` field now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a `minecraft:damage_type` type ##### Changed `minecraft:player_interacted_with_entity` - The `entity` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:player_sheared_equipment` - The `entity` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:crafter_recipe_crafted` - The `recipe_id` field has been renamed to `recipes` and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a `minecraft:recipe` type - If a tag or a list is used, the trigger will run when any listed recipe is used ##### Changed `minecraft:recipe_crafted` - The `recipe_id` field has been renamed to `recipes` and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a `minecraft:recipe` type - If a tag or a list is used, the trigger will run when any listed recipe is used ##### Changed `minecraft:recipe_unlocked` - The `recipe` field has been renamed to `recipes` and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a `minecraft:recipe` type - If a tag or a list is used, the trigger will run when any listed recipe is unlocked ##### Changed `minecraft:slide_down_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 `minecraft:block` type ##### Changed `minecraft:summoned_entity` - The `entity` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:tame_animal` - The `entity` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:target_hit` - The `projectile` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ##### Changed `minecraft:villager_trade` - The `villager` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type ### Slot Sources - Slot sources can now be defined as files inside a Data Pack, within the `slot_source` folder - Can be used in commands which take slot sources as arguments - `minecraft:contents` is no longer restricted to only selecting non-empty slots #### Changed `minecraft:group` - The `terms` field 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 a `minecraft:slot_source` type - The inline format of `minecraft:group` (previously only a list of inline slot sources) can now also accept a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:slot_source` type - This format is now consistently available for all fields of a slot source (but not for stand-alone files) #### Changed `minecraft:filtered` - The `slot_source` field now accepts an inline value or a namespaced ID of a `minecraft:slot_source` type #### Changed `minecraft:contents` - The `slot_source` field now accepts an inline value or a namespaced ID of a `minecraft:slot_source` type #### Changed `minecraft:limit_slots` - The `slot_source` field now accepts an inline value or a namespaced ID of a `minecraft:slot_source` type #### Changed `minecraft:slot_range` - The `source` field has a new valid type `container`, which sources slots from a container or inventory provided through loot context - The `source` field is now optional - Defaults to the `container` source type when absent ### Loot Tables - Added `till/rooted_dirt` loot table for drops when Rooted Dirt is tilled with a hoe - Multiple block loot tables now reference predicates for checking if a tool has Silk Touch and is Shears instead of inlining a copy of those checks - The `rolls` field now accepts an inline value or a namespaced ID of a `minecraft:context_int_provider` type - The `bonus_rolls` field now accepts an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Loot Table Types ##### Added `minecraft:command_slot_source` - Currently used to evaluate slot sources with the `/item` and `/execute` commands - It takes the following parameters: - `container`, the container or inventory being evaluated - `origin`, the position at which the command was executed - `this_entity`, the `@s` entity of the command being executed (optional) ##### Added `minecraft:command_compute_default` - Currently used for the `/compute default` command - It takes the following parameters: - `origin`, the position at which the command was executed - `this` entity, the `@s` entity of the command being executed (optional) ##### Added `minecraft:command_compute_position` - Currently used for the `/compute block` command - It takes the following parameters: - Everything included in `minecraft:command_compute_default` - `block_entity`, the block entity of the block at the position given in a command - `block_state`, the current state of the block at the position given in a command ##### Added `minecraft:command_compute_entity` - Currently used for the `/compute entity` command - It takes the following parameters: - Everything included in `minecraft:command_compute_default` - `target_entity`, the entity selected by the selector given in a command ##### Added `minecraft:container_process` - 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` ##### Changed `minecraft:block_interact` - `origin` is now available in context, as the center of the block being interacted with #### Loot Pool Entries - The `conditions` field in loot pool entries has been renamed to `condition` and now accepts an inline value or a namespaced ID of a `minecraft:predicate` type - The `functions` field in loot pool entries has been renamed to `modifier` and now accepts an inline value (including a list as a short form of `minecraft:sequence`) or a namespaced ID of a `minecraft:item_modifier` type - This field is now present on all loot entries, including previously omitted `minecraft:alternatives`, `minecraft:sequence`, and `minecraft:group` ##### Changed `minecraft:tag` - The `name` field has been renamed to `items` and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a `minecraft:item` type ##### Changed `minecraft:loot_table` - The `value` field now accepts a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:loot_table` type - Added `expand` field, working the same as in the `minecraft:tag` pool entry: - if `true`, each entry inside the tag will be added to the outer pool, with weights equal to the weight of this entry - if `false`, this pool entry will operate as a single entry in the outer pool - If this entry gets selected, it will return all items from all referenced loot tables ### Loot Functions - The `conditions` field is now available in all loot functions and has been renamed to `condition` - It now also accepts an inline value or a namespaced ID, but no longer an inline list of conditions - The functionality of the old condition list format can be achieved by explicitly using the `minecraft:all_of` loot condition type - The `function` field (describing the function type) has been renamed to `type` #### Changed `minecraft:sequence` - The `functions` field 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 a `minecraft:item_modifier` type - Added an optional `condition` field which accepts an inline value or a namespaced ID of a `minecraft:predicate` type - The inline format of `minecraft:sequence` (previously only a list of inline functions) can now also accept a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:item_modifier` type - This format is now consistently available for all fields of a loot function type (but not for stand-alone files), which means that every such field can accept an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:item_modifier` type #### Changed `minecraft:modify_contents` - The `modifier` field now accepts an inline value or a namespaced ID of a `minecraft:item_modifier` type #### Changed `minecraft:set_attributes` - Number providers in the `amount` sub-fields of the `modifiers` list now accept an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Changed `minecraft:enchanted_count_increase` - The `count` field now accepts an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Changed `minecraft:enchant_with_levels` - The `levels` field now accepts an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Changed `minecraft:set_custom_model_data` - Elements in the `floats` list can now be an inline value or a namespaced ID of a `minecraft:context_float_provider` type - Elements in the `colors` list can now be an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Changed `minecraft:set_enchantments` - Values in the `enchantments` map can now be an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Changed `minecraft:set_count` - The `count` field now accepts an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Changed `minecraft:limit_count` - The `min` and `max` fields inside the `limit` structure now accept an inline value or a namespaced ID of a `minecraft:context_int_provider` type - The `limit` field no longer accepts a single number #### Changed `minecraft:set_damage` - The `damage` field now accepts an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Changed `minecraft:set_ominous_bottle_amplifier` - The `amplifier` field now accepts an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Changed `minecraft:set_random_dyes` - The `number_of_dyes` field now accepts an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Changed `minecraft:set_stew_effect` - The `duration` field in the elements of the `effects` list now accepts an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Changed `minecraft:set_loot_table` - Removed unused field `type` - The `name` field has been renamed to `loot_table_id` #### Changed `minecraft:exploration_map` - The `destination` field is no longer optional and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a `minecraft:structure` type - The `map_color` field has been removed - The function no longer changes the type of the item it is applied to - it now only adds map data to the existing item - Previously it required a `minecraft:map` and produced a `minecraft: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:map` to `minecraft:filled_map` (or one of the explorer map items) - If no matching structure is found, the item is left without a `minecraft:map_id` - use `minecraft:filtered` with `minecraft:discard_item` to drop those, as the vanilla loot tables and villager trades now do #### Removed `minecraft:reference` - This function has become obsolete, as any field that takes a function now accepts (among other things) a namespaced ID to other functions ### Predicates - The `condition` field (describing the predicate type) has been renamed to `type` #### Changed `minecraft:all_of` - The `terms` field 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 a `minecraft:predicate` type - Note: values of this type can no longer be shortened to a single list, a full object with the type `minecraft:all_of` needs to be used explicitly #### Changed `minecraft:any_of` - The `terms` field 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 a `minecraft:predicate` type #### Changed `minecraft:inverted` - The `term` field now accepts an inline value or a namespaced ID of a `minecraft:predicate` type #### Changed `minecraft:random_chance` - The `chance` field now accepts an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Removed `minecraft:value_check` - This condition has been split into integer and float variants #### Added `minecraft:int_value_check` - Checks a value against some range Fields: - `value` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type - `test` - one of: - an inline value (including a single integer) or a namespaced ID of a `minecraft:context_int_provider` type - Will test if the result of `value` is equal to the provided `test` value - an object with fields: - `min` - an optional inline value (including a single integer) or a namespaced ID of a `minecraft:context_int_provider` type - `max` - an optional inline value (including a single integer) or a namespaced ID of a `minecraft:context_int_provider` type - Will test if the result of `value` is between `min` and `max` (inclusive) #### Added `minecraft:float_value_check` - Checks value against some range Fields: - `value` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type - `test` - one of: - an inline value (including a single float) or a namespaced ID of a `minecraft:context_float_provider` type - Will test if the result of `value` is equal to the provided `test` value - an object with fields: - `min` - an optional inline value (including a single float) or a namespaced ID of a `minecraft:context_float_provider` type - `max` - an optional inline value (including a single float) or a namespaced ID of a `minecraft:context_float_provider` type - Will test if the result of `value` is between `min` and `max` (inclusive) #### Changed `minecraft:time_check` - The `min` and `max` fields inside the `value` structure now accept an inline value or a namespaced ID of a `minecraft:context_int_provider` type - The `value` field itself now accepts an inline value or a namespaced ID of a `minecraft:context_int_provider` type (previously only integers were allowed) #### Changed `minecraft:entity_scores` - The `min` and `max` fields inside the values of the `scores` map now accept an inline value or a namespaced ID of a `minecraft:context_int_provider` type - The `scores` field itself now accepts an inline value or a namespaced ID of a `minecraft:context_int_provider` type (previously only integers were allowed) #### Changed `minecraft:damage_source_properties` - The `predicate.tags.id` field now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a `minecraft:damage_type` type #### Removed `minecraft:reference` - This condition has become obsolete, as any field that takes a loot condition now accepts (among other things) a namespaced ID to other conditions #### Added Vanilla Predicates New entries added to the previously empty `minecraft:predicate`: - `minecraft:tool/can_silk_touch` - `minecraft:tool/can_shear` - `minecraft:block/fast_cooking` #### Added `minecraft:match_block` Condition Type Matches block state and optionally block entity data and components (if present) Fields (same as the elements of the `minecraft:can_place_on` component): - `blocks` - optional block id, list of namespaced block IDs, or hash-prefixed block tag to match - `state` - optional map of block state property keys to values to match - `nbt` - optional block entity NBT to match - The match will fail if this field is present but no block entity is available in the context - `components` - optional map of exact components to match - The match will fail if this field is present but no block entity is available in the context - `predicates` - optional map of component predicates to match - The match will fail if this field is present but no block entity is available in the context #### Removed `minecraft:block_state_property` Condition Type - This has been fully replaced by `minecraft:match_block` #### Potion Predicates The `minecraft:potion_contents` Data Component Predicate has been changed to allow matching on specific potion effects. The previous predicate format used a list of potion types, the new format allows for more refined matching. The following fields can be used in any combination, all are optional: - `potions` - a list of potion types or a potion tag to match - `effects` - a Collection Predicate of `mob_effects` predicates to match - The Collection Predicate format is as follows: - `contains` - a list of `mob_effects` predicates to match - `count` - a list of options for matching a specific number of mob effect predicates, which follow the same format as the `minecraft:effects` entity sub-predicate - `test` - the `mob_effects` predicate to match - `count` - the number of matches required, or with `min` and `max` will match a range of counts - `size` - require the mob effects list to have a specific size, or with `min` and `max` will match a range of sizes The `mob_effects` predicate format is a mapping of effect types to properties of that effect. All fields are optional, only the provided fields will be used for matching: { "minecraft: ": { "duration": , "amplifier": , "ambient: true/false, "visible": true/false } ) Here is an example of matching on several different effects and criteria: "effects": { "minecraft:jump_boost": { "duration": 3600, "amplifier": 5, "ambient: true, "visible": true }, "minecraft:speed": { "duration": { "min": 360, "max": "3600 }, "amplifier: { "min": 2 } }, "minecraft:resistance": {} } All criteria are optional. ### Number Providers - The `minecraft:number_provider` type has been split into two separate types: `minecraft:context_int_provider` (integer number providers) and `minecraft:context_float_provider` (float number providers) - Note: those new types should not be confused with the already existing `minecraft:int_provider_type` and `minecraft:float_provider_type`, which are context-free providers, used mostly for world generation ### Integer Number Providers - Added the `minecraft:context_int_provider` registry - All calculations are performed using 32-bit integers - The result of calculations that provide invalid values (like division by zero) is undefined - Fields: - `type` - a namespaced ID from `minecraft:context_int_provider_type` registry - `` #### Added Vanilla Integer Number Providers - `minecraft:compostable/low` - returns `1` if the `minecraft:block_state` context parameter is an empty composter, otherwise has a 30% chance of returning `1` - `minecraft:compostable/low_medium` - returns `1` if the `minecraft:block_state` context parameter is an empty composter, otherwise has a 50% chance of returning `1` - `minecraft:compostable/medium` - returns `1` if the `minecraft:block_state` context parameter is an empty composter, otherwise has a 65% chance of returning `1` - `minecraft:compostable/medium_high` - returns `1` if the `minecraft:block_state` context parameter is an empty composter, otherwise has an 85% chance of returning `1` - `minecraft:compostable/always_add_one` - always returns `1` - `minecraft:cooking/time_bamboo` - Returns the burn time in ticks for Bamboo and Scaffolding - `minecraft:cooking/time_blaze_rod` - Returns the burn time in ticks for Blaze Rods - `minecraft:cooking/time_boats` - Returns the burn time in ticks for Boats - `minecraft:cooking/time_coal` - Returns the burn time in ticks for Coal - `minecraft:cooking/time_coal_block` - Returns the burn time in ticks for Coal Blocks - `minecraft:cooking/time_dried_kelp_block` - Returns the burn time in ticks for Dried Kelp Blocks - `minecraft:cooking/time_dry_plants` - Returns the burn time in ticks for various dry plants - `minecraft:cooking/time_hanging_signs` - Returns the burn time in ticks for Hanging Signs - `minecraft:cooking/time_lava_bucket` - Returns the burn time in ticks for Lava Buckets - `minecraft:cooking/time_roots` - Returns the burn time in ticks for Mangrove Roots - `minecraft:cooking/time_wood_blocks` - Returns the burn time in ticks for wood blocks - `minecraft:cooking/time_wood_items_extra_small` - Returns the burn time in ticks for very small wood items such as Buttons - `minecraft:cooking/time_wood_items_large` - Returns the burn time in ticks for large wood items such as Doors - `minecraft:cooking/time_wood_items_small` - Returns the burn time in ticks for small wood items such as Bows - `minecraft:cooking/time_wood_slabs` - Returns the burn time in ticks for wood slabs - `minecraft:cooking/time_wool` - Returns the burn time in ticks for most Wool blocks - `minecraft:cooking/time_wool_carpets` - Returns the burn time in ticks for Wool Carpets - `minecraft:cooking/time_wool_slabs` - Returns the burn time in ticks for Wool Slabs and Cushions - `minecraft:cooking/normal_burn_time_reduction_factor` - Returns the burn time reduction factor for cooking fuel when used in a normal furnace - `minecraft:cooking/fast_burn_time_reduction_factor` - Returns the burn time reduction factor for cooking fuel when used in a block matching the `block/fast_cooking` predicate - `minecraft:brewing/uses_default` - Returns the default number of brews provided by brewing fuel #### Added `minecraft:abs` - Returns the absolute value of `input` - If the final result does not fit inside a 32-bit integer, the calculation will be canceled - Fields: - `input` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Added `minecraft:avg` - Evaluates multiple integer providers and returns the arithmetic mean of all results - Division rounds towards `0` - Fields: - `inputs` - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:context_int_provider` type - Requires at least one value #### Added `minecraft:binomial` - Makes `n` random coin flips with the probability of succeeding equal to `p`, then returns the number of successes - Fields: - `n` - the number of coin flips, an inline value or a namespaced ID of a `minecraft:context_int_provider` type - `p` - the probability of a single coin flip succeeding (`[0.0, 1.0]`), an inline value, or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:conditional` - Returns the value from `on_true` if its condition is fulfilled or `on_false` if not - Fields: - `condition` - an inline value or a namespaced ID of a `minecraft:predicate` type - `on_true` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type which is executed if its condition is fulfilled - `on_false` - an optional inline value or a namespaced ID of a `minecraft:context_int_provider` type - Defaults to a constant `0` if omitted #### Added `minecraft:constant` - Returns a constant value - Fields: - `value` - an integer - Can also be written inline as a plain number (`foo: 1` is equivalent to `foo: {type:"minecraft:constant",value:1}`) #### Added `minecraft:sub` - Returns `left` minus `right` - If the final result does not fit inside a 32-bit integer, the calculation will be canceled - Fields: - `left` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type - `right` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Added `minecraft:from_float` - Evaluates a float provider and converts it to an integer value - Noninteger values will be truncated (i.e. rounded towards zero) - Values that don't fit inside a 32-bit integer (including `NaN`) are treated as errors and will cancel the calculation - Fields: - `input` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:max` - Evaluates multiple integer providers and returns the largest of all results - Fields: - `inputs` - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:context_int_provider` type - Requires at least one value #### Added `minecraft:min` - Evaluates multiple integer providers and returns the smallest of all results - Fields: - `inputs` - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:context_int_provider` type - Requires at least one value #### Added `minecraft:mod` - Returns the modulus of `left` by `right` - Uses truncated integer division (rounds towards zero) - Division by zero is treated as an error and will cancel the calculation - Fields: - `left` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type - `right` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Added `minecraft:floor_mod` - Returns the modulus of `left` by `right` - Uses floored integer division (rounds towards negative infinity) - Division by zero is treated as an error and will cancel the calculation - Fields: - `left` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type - `right` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Added `minecraft:environment_attribute` - Fetches and provides the value of an Environment Attribute (`minecraft:environment_attribute`) - Fields - `attribute` - the Environment Attribute ID to fetch (must be representable as an int) #### Added `minecraft:negate` - Returns the negation of `input` - If the final result does not fit inside a 32-bit integer, the calculation will be canceled - Fields: - `input` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Added `minecraft:number_dispatcher` - Returns the first case which fulfills its condition or the `default` if none do - Fields: - `cases` - a list of cases in the order that the dispatcher will try to execute them - Fields: - `condition` - an inline value or a namespaced ID of a `minecraft:predicate` type - `value` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type which is executed if the condition is fulfilled - `default` - an optional inline value or a namespaced ID of a `minecraft:context_int_provider` type - Defaults to a constant `0` if omitted #### Added `minecraft:pow` - Returns `base` to the power of `exponent` - If the exponent is negative, the calculation will be canceled - If both the base and the exponent are zero, the calculation will be canceled - If the final result does not fit inside a 32-bit integer, the calculation will be canceled - Fields: - `base` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type - `exponent` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Added `minecraft:mul` - Evaluates multiple integer providers and returns the product of all results - If the final result does not fit inside a 32-bit integer, the calculation will be canceled - Fields: - `inputs` - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:context_int_provider` type - Requires at least one value #### Added `minecraft:div` - Returns `left` divided by `right` - Uses truncated integer division (rounds towards zero) - Division by zero is treated as an error and will cancel the calculation - Fields: - `left` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type - `right` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Added `minecraft:floor_div` - Returns `left` divided by `right` - Uses floored integer division (rounds towards negative infinity) - Division by zero is treated as an error and will cancel the calculation - If the final result does not fit inside a 32-bit integer, the calculation will be canceled - Fields: - `left` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type - `right` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Added `minecraft:score` - Returns a score of the selected target - If the score is not present, the provider returns the value of `fallback` - Fields: - `score` - objective name - `target` - score holder (same format as in the number provider version) - `fallback` - an optional inline value or a namespaced ID of a `minecraft:context_int_provider` type - Defaults to a constant `0` if omitted #### Added `minecraft:storage` - Returns an integer value from a command storage - If the value is not present, is not a number, or the path returned multiple values, the provider returns the value of `fallback` - The conversion of numeric NBT values that are not an integer is undefined - Fields: - `storage` - a namespaced ID of a command storage - `path` - an NBT path - `fallback` - an optional inline value or a namespaced ID of a `minecraft:context_int_provider` type - Defaults to a constant `0` if omitted #### Added `minecraft:add` - Evaluates multiple integer providers and returns the sum of all results - If the final result does not fit inside a 32-bit integer, the calculation will be canceled - Fields: - `inputs` - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:context_int_provider` type - Requires at least one value #### Added `minecraft:uniform` - Picks a random integer from a closed range - Fields: - `min` - minimum value (inclusive), an inline value, or a namespaced ID of a `minecraft:context_int_provider` type - `max` - maximum value (inclusive), an inline value, or a namespaced ID of a `minecraft:context_int_provider` type #### Added `minecraft:weighted_list` - Returns a value from a distribution of weighted number providers - Fields: - `distribution` - a list of objects with the following fields - Fields: - `data` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type - `weight` - a positive integer ### Float Number Providers - Added a `minecraft:context_float_provider` registry - All calculations are performed using single-precision floating-point numbers ("floats") - The result of calculations that produce NaN and Infinity is undefined - Format: - `type` - a namespaced ID from `minecraft:context_float_provider_type` registry - `` #### Added Vanilla Float Number Providers - `minecraft:cooking/speed_default` - Returns the default speed multiplier for cooking fuel - `minecraft:cooking/normal_speed_multiplier` - Returns the speed multiplier for cooking fuel when used in a normal Furnace - `minecraft:cooking/fast_speed_multiplier` - Returns the speed multiplier for cooking fuel when used in a block matching the `block/fast_cooking` predicate - `minecraft:brewing/speed_default` - Returns the default speed multiplier for brewing fuel #### Added `minecraft:abs` - Returns the absolute value of `input` - Fields: - `input` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:avg` - Evaluates multiple float providers and returns the arithmetic mean of all results - Fields: - `inputs` - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:context_float_provider` type - Requires at least one value #### Added `minecraft:ceil` - Returns the ceiling (i.e. rounded towards positive infinity) value of `input` - Fields: - `input` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:conditional` - Returns the value from `on_true` if its condition is fulfilled or `on_false` if not - Fields: - `condition` - an inline value or a namespaced ID of a `minecraft:predicate` type - `on_true` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type which is executed if its condition is fulfilled - `on_false` - an optional inline value or a namespaced ID of a `minecraft:context_float_provider` type - Defaults to a constant `0.0` if omitted #### Added `minecraft:constant` - Returns a constant value - Fields: - `value` - a float - Can also be written inline as a plain number (`foo: 1.0` is equivalent to `foo: {type:"minecraft:constant",value:1.0}`) #### Added `minecraft:cos` - Returns the cosine of `input` - Fields: - `input` - argument in radians, an inline value, or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:sub` - Returns `left` minus `right` - Fields: - `left` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type - `right` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:enchantment_level` - Evaluates Enchantment Level-Based (`minecraft:enchantment_level_based_value_type`) parameter - Fields: - `amount`: A Level-Based Value giving a value based on the level of the Enchantment #### Added `minecraft:environment_attribute` - Fetches and provides the value of an Environment Attribute (`minecraft:environment_attribute`) - Fields - `attribute` - the Environment Attribute ID to fetch (must be representable as a float) #### Added `minecraft:floor` - Returns the floored (i.e. rounded towards negative infinity) value of `input` - Fields: - `input` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:from_int` - Evaluates an integer provider and converts it to a float value - Fields: - `input` - an inline value or a namespaced ID of a `minecraft:context_int_provider` type #### Added `minecraft:length` - Evaluates multiple float providers and returns the square root of the sum of squares - Fields: - `inputs` - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:context_float_provider` type - Requires at least one value #### Added `minecraft:max` - Evaluates multiple float providers and returns the largest of all results - Fields: - `inputs` - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:context_float_provider` type - Requires at least one value #### Added `minecraft:min` - Evaluates multiple float providers and returns the smallest of all results - Fields: - `inputs` - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:context_float_provider` type - Requires at least one value #### Added `minecraft:mod` - Returns the modulus of `left` by `right` - Fields: - `left` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type - `right` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:negate` - Returns the negation of `input` - Fields: - `input` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:number_dispatcher` - Returns the first case which fulfills its condition or `default` if none do - Fields: - `cases` - a list of cases in the order that the dispatcher will try to execute them - Fields: - `condition` - an inline value or a namespaced ID of a `minecraft:predicate` type - `value` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type which is executed if the condition is fulfilled - `default` - an optional inline value or a namespaced ID of a `minecraft:context_float_provider` type - Defaults to a constant `0.0` if omitted #### Added `minecraft:pow` - Returns `base` to the power of `exponent` - Fields: - `base` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type - `exponent` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:mul` - Evaluates multiple float providers and returns the product of all results - Fields: - `inputs` - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:context_float_provider` type - Requires at least one value #### Added `minecraft:div` - Returns `left` divided by `right` - Fields: - `left` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type - `right` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:round` - Returns the rounded (towards the nearest integer, with ties rounding towards positive infinity) value of `input` - Fields: - `input` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:sin` - Returns the sine of `input` - Fields: - `input` - argument in radians, an inline value, or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:sqrt` - Returns the square root of `input` - Fields: - `input` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:storage` - Returns a float value from a command storage - If the value is not present, is not a number, or the path returned multiple values, the provider returns the value of `fallback` - The conversion of numeric NBT values that are not a float is undefined - Fields: - `storage` - a namespaced ID of a command storage - `path` - an NBT path - `fallback` - an optional inline value or a namespaced ID of a `minecraft:context_float_provider` type - Defaults to a constant `0.0` if omitted #### Added `minecraft:add` - Evaluates multiple float providers and returns the sum of all results - Fields: - `inputs` - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a `minecraft:context_float_provider` type - Requires at least one value #### Added `minecraft:truncate` - Returns the truncated (rounded towards zero) value of `input` - Fields: - `input` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:uniform` - Picks a random number from a range - Fields: - `min` - minimum value, an inline value, or a namespaced ID of a `minecraft:context_float_provider` type - `max` - maximum value, an inline value, or a namespaced ID of a `minecraft:context_float_provider` type #### Added `minecraft:weighted_list` - Returns a value from a distribution of weighted number providers - Fields: - `distribution` - a list of objects with the following fields - Fields: - `data` - an inline value or a namespaced ID of a `minecraft:context_float_provider` type - `weight` - a positive integer ![Noor is sitting on a cushion waiting for some potions to brew.](https://launchercontent.mojang.com/v2/images/brewing1280x720.jpg) ### Recipes #### Potion Brewing Recipes Potion brewing recipes are now data-driven. New recipes can be added via data packs, and vanilla recipes may be modified. Brewing recipes use the `minecraft:brewing` type. The main contents are: - `input` - a potion ingredient with a required `item` field and an optional `potion_contents` field using a `minecraft:potion_contents` Data Component Predicate - `reagent` - a potion ingredient with a required `item` field and an optional `potion_contents` field using a `minecraft:potion_contents` Data Component Predicate - `output` - item stack, the resulting item Here is an example of a vanilla recipe: { "type": "minecraft:brewing", "input": { "item": "minecraft:potion", "potion_contents": { "potion": "minecraft:water" } }, "output": { "components": { "minecraft:potion_contents": { "potion": "minecraft:awkward" } }, "id": "minecraft:potion" }, "reagent": { "item": "minecraft:nether_wart" } } Any items may be used in any of the 3 slots, for example: { "type": "minecraft:brewing", "input": { "item": "minecraft:bucket" }, "output": { "id": "minecraft:sulfur_cube_bucket" }, "reagent": { "item": "minecraft:potent_sulfur" } } #### Cooking Recipes The `cookingtime` field of all cooking recipes is no longer optional. The recipes for Smokers and Blast Furnaces now use the same cooking time in their data definition as their Furnace counterparts. The cooking time speedup is now done through the `minecraft:cooking/speed_default` Number Provider used by the furnace fuel components. Custom Smoker and Blast Furnace recipes should be updated accordingly, by setting `cookingtime` to twice the previous value. If a custom cooking recipe was previously relying on the default `cookingtime` value, 200 can be used to maintain the same timing. ### Block Transformers - Added a `minecraft:block_transformer` registry containing rules for transforming a block into another block - Format: list of objects with fields: - `block_state_provider` - Block State Provider, used to provide the state for the transformed block - If the Block State Provider returns no result (as by `rule_based`, for example), the next rule in the list will be attempted - The set of Block State Providers are the same as the Block State Providers used in World Generation - `sound` - optional field, Sound Event to play on interaction, e.g. `minecraft:item.axe.strip` - If not present, defaults to play no Sound Event - `particle` - optional field, particles to play on interaction - One of: - `none` - `scrape` - `wax_on` - `wax_off` - If not present, defaults to `none` - `disallowed_faces` - optional field, list of directions specifying faces on the clicked Block that cannot be interacted with - One of: - `up` - `down` - `north` - `south` - `east` - `west` - If a disallowed face is interacted with, the next rule in the list will be attempted - If not present, defaults to an empty list - `loot` - optional Loot Table, the Loot Table to use for dropping items on a successful transformation, e.g. `minecraft:till/rooted_dirt` - If not present, defaults to using no Loot Table - `drop_strategy` - optional field, configures from where in the Block any loot should drop - One of: - `from_middle` - from the middle of the Block - `clicked_face` - from the face interacted with - If not present, defaults to `from_middle` - `update_from_neighbors` - optional boolean, if the transformed block should update based on neighboring blocks. This allows e.g. fences to connect - If not present, defaults to true - `transform_type` - optional field, configures how nearby blocks should be affected by the transformation - One of: - `single_block` - only affects the Block interacted 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 `single_block` - `consume_on_use` - optional boolean, determines if the item should be consumed or not - Only applies to stackable items - If not present, defaults to `true` - `item_damage_per_use` - optional integer, determines how much damage the item takes with each use - Only applies to non-stackable items - If not present, defaults to `0` - Default values in vanilla: - `minecraft:shovel` - default value for shovels - `minecraft:axe` - default value for axes - `minecraft:hoe` - default value for hoes ![Noor is using a spyglass to get a closer look at some large mesa formations in the distance.](https://launchercontent.mojang.com/v2/images/worldgen1280x720.jpg) ### World Generation - Cave Air is no longer generated in Nether caves #### Biomes - Removed the `spawners`, `spawn_costs`, and `creature_spawn_probability` fields - These values have been moved to the new Environment Attributes #### Features - The `worldgen/configured_feature` registry has moved to `worldgen/feature` and configuration is now done inline in the root object rather than separated into a `config` field - Removed feature types: - `minecraft:coral_mushroom` - `minecraft:kelp` - `minecraft:seagrass` - `minecraft:sea_pickle` - `minecraft:nether_forest_vegetation` - `minecraft:twisting_vines` - `minecraft:weeping_vines` - `minecraft:desert_well` > **Developer's Note**: _These feature types are no longer needed, since the features they previously hardcoded are now implemented with other, more configurable functionality._ ##### Changed `minecraft:coral_claw` and `minecraft:coral_tree` - Added field `feature`, a Placed Feature that is used to place at every desired block position ##### Changed `minecraft:stepped_column_cluster` (renamed from `minecraft:basalt_columns`) Now exposes more control over the feature functionality. Format changes: - Renamed field `reach` to `column_reach` - Added fields: - `block`\- Block state provider, which block to place - `can_replace` - Block predicate, which blocks can be replaced by the column - `continue_through` - Block predicate, which pre-existing blocks to accept as part of a column - `cannot_place_on` - Block ID, list of Block IDs, or hash-prefixed Block Tag ID, which blocks are avoided when starting placement - `column_count` - int provider (between 1 and 150), the number of columns to generate - `cluster_reach` - int provider (between 0 and 13), the size of the square to attempt to generate columns in - The effective reach is also limited by `height` ##### Changed `minecraft:single_block_pillar` (renamed from `minecraft:basalt_pillar`) Now exposes more control over the feature functionality. - Added fields: - `block` - Block state provider, which block to place - `can_replace` - Block predicate, which blocks to replace - `direction` - one of `up` and `down`, vertical direction of the pillar - `chance_to_continue` - optional float between `0` and `1`, probability that the pillar continues another block (assuming `can_replace` matches) - If omitted, defaults to `1` - `cap_feature` - optional Placed Feature, placed at the end of the pillar ##### Changed `minecraft:random_neighbor_spread` (renamed from `minecraft:glowstone_blob`) Now exposes more control over the feature. Places blocks randomly in an area starting at the origin, each block placing so it has exactly one accepted neighbor. - Added fields: - `block` - Block state provider, which block to place - `accepted_neighbors` - Block ID, list of Block IDs, or hash-prefixed Block Tag, which blocks count as a valid neighbor - `can_replace` - Block predicate, which blocks to replace - `attempts` - int provider (between 1 and 3000), how many placement attempts to make - `xz_offset` - int provider (between -16 and 16), what offsets to try along the x and z axes - `y_offset` - int provider (between -16 and 16), what offsets to try along the y-axis ##### Changed `minecraft:sculk_patch` - Removed `extra_rare_growths` and `catalyst_chance` fields ##### Added `minecraft:overlay` Places a set of features in the same location. Note that as opposed to the `minecraft:sequence` Feature Type, all features are placed regardless of individual placement success. - Format: object with fields: - `features` - Placed Feature ID, non-empty list of Placed Feature IDs, or hash-prefixed Placed Feature Tag, the features to place ##### Added `minecraft:projected_random_patchy_square` Generates a square where each block is randomly placed or not placed with its probability based on the distance from the center of the square, with the center more likely to generate than the edges. Each placed block can be projected downwards if the appropriate conditions are met. - Format: object with fields: - `block` - Block state provider, which block to place - `project_through` - Block Predicate, which blocks are considered "empty" and should be projected through - `size` - int provider (between 1 and 16), determines the size of the square as measured from the center to the edge - `max_projection_height` - non-negative integer, the maximum change in y level from the original height to the placement height for a block in the square ##### Added `minecraft:end_podium` - Places the End Podium - Two feature instances are now used to place the podium from in-game events: - `end_podium_active` - `end_podium_inactive` - Format: object with fields: - `active` - boolean, whether the portal is active ##### Changed `minecraft:template` - Added field `processors`: Namespaced ID or inline definition of a structure processor list to apply to the template ##### Changed `minecraft:tree` ###### Added `shelf_mushroom` Tree Decorator Type - Places Shelf Mushrooms on logs with the specified probability - Format: object with fields: - `probability` - float (between 0 and 1), the probability that any Shelf Mushrooms will be placed for a given feature ###### Added `poplar_foliage_placer` Foliage Placer Type - Places Leaf blocks for Poplar trees in a rhombus shape in one of two possible directions - Format: Common fields for all foliage placers plus: - `height` - int provider (between 5 and 16), the height of the foliage - `side_hole_chance` - float (between 0.0 and 1.0), the chance for blocks to be randomly removed at the edge of the foliage ###### Added `poplar_trunk_placer` Trunk Placer Type - Places Log blocks for Poplar trees in a straight shape with branches by the start of the foliage - Format: Common fields for all trunk placers plus: - `trunk_height_above_branches` - int provider (between 0 and 8), the height of the trunk above the branches - `branch_amount` - int provider (between 1 and 4), the amount of branches to create by the foliage #### Placement Modifiers ##### Added `minecraft:cuboid` Repeats a feature in a cuboid shape. - Added fields: - `xz_size` - int provider (between 1 and 16), the size of the cuboid along x and z axes - `y_size` - int provider (between 1 and 16), the size of the cuboid along the y-axis - `include_interior` - optional boolean, whether to place interior blocks of the cuboid - If omitted, defaults to `true` - `include_edges` - optional boolean, whether to place edge blocks of the cuboid - Setting this to `false` generates a somewhat "rounded" cuboid - If omitted, defaults to `true` ##### Added `minecraft:random_chance` Gates the feature being placed behind a random chance. - Format: object with fields: - `chance` - float (between `0` and `1`), the chance that the feature gets placed ##### Added `minecraft:randomly_selected` Randomly selects a Placement Modifier from a list and delegates placement to it. - Format: object with fields: - `placements` - non-empty list of Placement Modifiers to pick from ##### Changed `minecraft:offset` (renamed from `minecraft:random_offset`) - Format changes: - Removed fields `xz_spread` and `y_spread` - Added fields `x`, `y`, `z` - integer providers (between -16 and 16), the axis-specific offset #### Block State Providers Block State Providers can now be defined as stand-alone types in the `worldgen/block_state_provider` registry and referenced by using a namespaced string for a field that expects a Block State Provider. An inline Block State definition is now an accepted shorthand form for a `minecraft:simple` block state provider providing that state. The Block State has to be in the form of an object with fields, a shorthand Block ID is not allowed. ##### Renamed Provider Types The following providers types have been renamed: - `minecraft:dual_noise_provider` renamed to `minecraft:dual_noise` - `minecraft:noise_provider` renamed to `minecraft:noise` - `minecraft:noise_threshold_provider` renamed to `minecraft:noise_threshold` - `minecraft:randomized_int_state_provider` renamed to `minecraft:randomized_int` - `minecraft:rule_based_state_provider` renamed to `minecraft:rule_based` - `minecraft:simple_state_provider` renamed to `minecraft:simple` - `minecraft:weighted_state_provider` renamed to `minecraft:weighted` ##### Added `minecraft:copy_properties` Copies common Block State properties from the Block at the evaluated position to the resulting state - Format: object with fields: - `source` - Block State Provider, the Block State which the copied properties are copied on top of - Only properties common between both the source and the target blocks will be copied ##### Added `minecraft:random_block` Returns the default block state for a randomly chosen block. - Format: object with fields: - `blocks`: Block ID, list of Block IDs, or hash-prefixed Block Tag, the set of blocks to randomly pick from ##### Changed `minecraft:rotated` Now works on any block with `axis` or `facing` properties. - Format changes: - Changed field `state` - now a Block State Provider - Added field `direction` - optional direction, the direction to set - If omitted, a random direction is chosen ##### Changed `minecraft:rule_based` - If a rule yields no result, the following rules will be evaluated - If no rule or `fallback` yields a result, will now also yield no result #### Noise Settings - The `surface_rule` field has been renamed to `material_rule` - Format: inline Material Rule or Material Rule ID reference - The `final_density` field no longer has the `beardifier` Density Function implicitly added to the final result - Renamed `preliminary_surface_level` to `chunk_surface_level` - This Density Function is no longer implicitly interpolated across the entire chunk - The `aquifers_enabled` field has been replaced by an optional `aquifers` object: - If not present, no aquifers will be generated - Fields: - `barrier` - Density Function, moved from `noise_router.barrier` - `fluid_level_floodedness` - Density Function, moved from `noise_router.fluid_level_floodedness` - `fluid_level_spread` - Density Function, moved from `noise_router.fluid_level_spread` - `lava` - Density Function, moved from `noise_router.lava` - `surface_level` - Density Function, duplicated from `noise_router.preliminary_surface_level` - `exclusion` - Density Function, any aquifer cell where this value is positive will have no fluid - The `ore_veins_enabled` field has been removed, and replaced by the `minecraft:ore_vein` Material Rule - The following fields from `noise_router` have been moved: - `barrier`, `fluid_level_floodedness`, `fluid_level_spread`, `lava` - moved into `aquifers` field - `vein_toggle`, `vein_ridged`, `vein_gap` - moved into the `minecraft:ore_vein` Material Rule - Removed `noise.size_horizontal` and `noise.size_vertical` fields, these are now specified in the `interpolated` density function - Added optional `debug_functions` field - list of objects with fields, Density Function values to show in the `chunk_generation_stats` debug entry - Fields: - `label` - string, label to identify this Density Function - `function` - Density Function, the Density Function to compute and show at the player position - If not specified, no density function values will be shown ##### Spawn Target The `spawn_target` field has been updated to allow use of any Density Function, instead of just a subset of those defined within the `noise_router` field. The suitability of a candidate spawn position is determined by evaluating, in some arbitrary n-dimensional space, the squared Euclidean distance to a set of target hypercubes. For example, one axis might be `temperature` and the second `erosion` - and suitability determined by distance to the square between `temperature=0.1, erosion=0.2` and `temperature=0.3, erosion=0.5`. This would prefer any candidate spawn within those ranges equally, while penalizing candidate spawns very far out of that range. Format: list of target hypercubes - Target format: map between Density Function ID and a range on that axis: - Range is specified as one of: - Float, an exact target value - Array of 2 floats, a range of target values in form `[min, max]` - An object with fields: - `min` - float, the minimum value of the target range - `max` - float, the maximum value of the target range #### Material Rules ##### Material Rule Registry A new data-driven registry has been introduced, loaded from `data//worldgen/material_rule/.json`. Elements in this registry define a pipeline for selecting what base block to place in the world at a given position. The format is identical to that which was formerly written in the `surface_rule` field within Noise Settings files, with the following extensions: - Material Rules can now be specified either inline (as previously), or as an ID reference to an element in the `worldgen/material_rule` registry - Material Conditions can also now be specified as an ID reference to an element in the `worldgen/material_condition` registry ##### Material Condition Registry A new data-driven registry has been introduced, loaded from `data//worldgen/material_condition/.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_condition` registry ##### Added `minecraft:ore_vein` - Format: object with fields: - `ore_block` - Block State, the ore block to place - `raw_ore_block` - Block State, the raw ore block to place - `filler_block` - Block State, the filler block to place - `raw_ore_chance` - float between 0 and 1, the probability for a `raw_ore_block` to be placed instead of an `ore_block` - `density` - Density Function, the probability between 0 and 1 for the ore vein to replace a block - If `0` or lower, no block will be replaced - `richness` - Density Function, the probability between 0 and 1 for `ore_block` or `raw_ore_block` to be placed (as opposed to `filler_block`) - If `0` or lower, all blocks will be `filler_block` - If `1` or greater, no blocks will be `filler_block` - `filler_gap` - Density Function, acts as an override to `richness`: if positive, `filler_block` will always be placed #### Noises The format of Noises (defined in the `worldgen/noise` registry, or inline in noise-based Block State Providers) has been updated. Noises define a fractal Brownian motion (fBm) configuration with the following properties: - Produces output values (approximately) fitting a normal distribution - Unless otherwise specified, fits the output amplitude to `[-1; 1]` - Due to the normal distribution, in practice this means that 99.7% of all samples will fit in that range - but values may still be encountered outside of this range - Parameterized by persistence=0.5, lacunarity=2.0 - i.e. between each octave, the amplitude is halved and the frequency doubled - Has stable seeding such that an octave can be boosted, muted, or added without affecting the rest of the octaves - Renamed `firstOctave` to `base_octave` - Added `base_amplitude` - positive float, a scale factor to apply to the noise output - If not specified, defaults to `1.0` - Added `octave_count` - integer between 1 and 32, the number of octaves to sample - Added `normalize` - boolean, or `"legacy"`, controls how the output amplitude should be normalized - If `true`, `base_amplitude` is the expected amplitude of the output (i.e. 99.7% of all samples in `[-base_amplitude; base_amplitude]`) - If `false`, `base_amplitude` is 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_modifiers` field - as such, modifying the amplitude of a single octave will not affect the amplitude of others - Renamed `amplitudes` to `amplitude_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` #### Density Functions - Density Functions and noises are no longer evaluated with double-precision floating point values, but instead with single-precision - This affects all intermediate steps, not just the final result > **Developer's Note**: \_We are aware that the details of floating point rounding have been used in some Data Packs, and this change may affect specific configurations. We have introduced alternatives for the use-cases that we are aware of, but please do share with us on [feedback.minecraft.net](https://feedback.minecraft.net) or in the [feedback Discord](https://discord.com/invite/minecraftfeedback) if you encounter use-cases that are no longer possible to support. ##### Changed `minecraft:constant` - `argument` has been renamed to `value` ##### Changed `minecraft:noise` The following fields have been introduced: - `shift_x` - optional Density Function, a domain warp to apply on x - If not specified, no warping will be applied (equivalent to `0`) - `shift_y` - optional Density Function, a domain warp to apply on y - If not specified, no warping will be applied (equivalent to `0`) - `shift_z` - optional Density Function, a domain warp to apply on z - If not specified, no warping will be applied (equivalent to `0`) ##### Removed `minecraft:shifted_noise` - Replaced by `minecraft:noise` ##### Changed `minecraft:add`, `minecraft:mul`, `minecraft:min`, and `minecraft:max` - `argument1` has been renamed to `left` - `argument2` has been renamed to `right` ##### Changed `minecraft:abs`, `minecraft:square`, `minecraft:cube`, `minecraft:half_negative`, `minecraft:quarter_negative`, `minecraft:squeeze`, `minecraft:interpolated`, `minecraft:flat_cache`, `minecraft:cache_2d`, `minecraft:cache_once`, `minecraft:cache_all_in_cell`, and `minecraft:blend_density` - `argument` has been renamed to `input` ##### Changed `minecraft:shift_a`, `minecraft:shift_b`, and `minecraft:shift` - `argument` has been renamed to `noise` ##### Added `minecraft:sub` Performs subtraction 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 ##### Added `minecraft: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 ##### Changed `minecraft:reciprocal` (renamed from `minecraft:invert`) - No changes to the format ##### Added `minecraft:negate` Negates the input. - Format: object with fields: - `input` - Density Function, the function to negate ##### Added `minecraft:lerp` Performs (unclamped) linear interpolation between two arguments based on an alpha. - Format: object with fields: - `alpha` - Density Function, the interpolation factor (`0`\=`first`, `1`\=`second`) - Any value outside of `[0; 1]` will extrapolate - `first` - Density Function, the value at `alpha=0` - `second` - Density Function, the value at `alpha=1` ##### Added `minecraft:floor`, `minecraft:round`, `minecraft:ceil`, and `minecraft:truncate` Rounds the input value to an integer multiple of a given function in a type-dependent direction: - `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) ##### Added `minecraft: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 `minecraft:sqrt` Computes the square root of the given input. - Format: object with fields: - `input` - Density Function, the value for which to compute the square root ##### Added `minecraft:log` Computes the natural logarithm of the given input. - Format: object with fields: - `input` - Density Function, the value for which to compute the natural logarithm ##### Added `minecraft:sign` Computes the sign of the input: - If the input is positive, returns `1` - If the input is `0`, returns `0` - If the input is negative, returns `-1` Format: object with fields: - `input` - Density Function, the value of which to compute the sign ##### Added `minecraft:distance_to_point` Computes the distance to a fixed point using the specified distance function. - Format: object with fields: - `point` - array of 3 integers in form `[x, y, z]`, the point to compute distance to - `metric` - one of: - `euclidean` - i.e. `sqrt(dx^2 + dy^2 + dz^2)` - `euclidean_squared` - i.e. `dx^2 + dy^2 + dz^2` - `manhattan` - i.e. `abs(dx) + abs(dy) + abs(dz)` - `chebyshev` - i.e. `max(abs(dx), abs(dy), abs(dz))` ##### Changed `minecraft:gradient` (renamed from `minecraft:y_clamped_gradient`) - Format: object with fields: - `axis` - `x`, `y`, or `z`, 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` - `from_value` - float, the value at which the gradient starts - `to_value` - float, the value at which the gradient ends ##### Added `minecraft:slice` Removes a dimension from the input domain by taking a "slice" along an axis with a specific coordinate. For example, with `axis=y` and `coordinate=0`, a slice will be taken along the XZ plane, with all values sampled at `y=0`. - Format: object with fields: - `axis` - `x`, `y`, or `z`, the axis to remove - `coordinate` - int, the fixed coordinate to be passed to the input function - `input` - Density Function, the input function ##### Added `minecraft:beardifier` Outputs the structure bearding density. Generally summed together with the base terrain density to produce ground below, carve air around, or bury structures. Format: no fields ##### Changed `minecraft:end_outer_islands` (renamed from `minecraft:end_islands`) No longer computes the density of the main island. ##### Changed `minecraft:interpolated` - Added fields: - `cell_size_xz` - positive int, size in blocks of the interpolation grid cells on the XZ axes - `cell_size_y` - positive int, size in blocks of the interpolation grid cells on the Y axis ##### Changed `minecraft:cache` (renamed from `minecraft:cache_once`) - No format change ##### Removed `minecraft:cache_2d`, `minecraft:cache_all_in_cell`, and `minecraft:flat_cache` - May be replaced with `minecraft:cache` - `minecraft:slice` may be used to always pick Y=0, as formerly handled by `minecraft:flat_cache` #### Structure Pool Elements ##### Changed `minecraft:feature_pool_element` - Can now connect to Jigsaw blocks with any target name, instead of just `minecraft:bottom` #### Structure Placements ##### Added `minecraft:dimension_origin` - Places a single instance of the structure at the dimension origin - The dimension origin is defined as the `spawn_target` for noise settings based dimensions, otherwise Chunk (0, 0) - No additional fields #### Block Predicates ##### Added `minecraft:height_range` Checks the height of the position against a given range. - Format: object with fields: - `min_inclusive` - Vertical Anchor, the minimum height required - `max_inclusive` - Vertical Anchor, the maximum height required ##### Added `minecraft:volume_match` Checks that every block in a volume matches a given Block Predicate. - Format: object with fields: - `min` - list of 3 integers in range `-16` to `16`, the lower corner of the volume as an offset from the test position - `max` - list of 3 integers in range `-16` to `16`, the upper corner of the volume as an offset from the test position - `match` - Block Predicate to test on each position #### Vertical Anchors - Added a new option for Vertical Anchors: - `relative_to_sea_level` - specifies an offset to the sea level of the dimension #### Rule Tests These are the predicates used by `ore` Features (`targets[].target`), and `rule` Structure Processors (`rules[].input_predicate` and `rules[].location_predicate`). ##### Added `minecraft:height_match` - Checks the y-level of a block, returning `true` only if it's higher than or equal to `min_inclusive` and lower than or equal to `max_inclusive` - Format: object with fields: - `min_inclusive` - int, the minimum y value of allowed blocks (inclusive) - `max_inclusive` - int, the maximum y value of allowed blocks (inclusive) ##### Added `minecraft:all_of` - Checks a list of Rule Tests for whether all of them return `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` - 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` - 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 #### Carvers - The `worldgen/configured_carver` registry has been renamed to `worldgen/carver` ##### Changed `minecraft:cave` - All fields previously under the `config` field have been inlined to the top-level - Added `count` field - non-negative Int Provider, the number of Cave tunnels to create from a seed chunk - Renamed `yScale` to `room_vertical_radius_multiplier` - Added optional `start_vertical_radius_multiplier` field - Float Provider, acts as a multiplier for the vertical radius of the first segment in each tunnel - If not specified, defaults to `1.0` - Added `thickness` field - non-negative Float Provider, acts as a multiplier for the radius of carved tunnels - Added optional `weird_thickness_bias` field - Boolean - If `true`, thickness will be multiplied by, with a 10% chance: `random(0, 1) * random(0, 3) + 1` - If not specified, defaults to `false` - Removed `replaceable` field, carvers will replace any block (excluding features) - Removed `lava_level` field, fluids are now always selected by the `aquifer` or `sea_level` configuration in the dimension - Removed `debug_settings` field ##### Changed `minecraft:canyon` - All fields previously under the `config` field have been inlined to the top-level - Renamed and moved `yScale` to `shape.y_scale` - Removed `replaceable` field, carvers will replace any block (excluding features) - Removed `lava_level` field, fluids are now always selected by the `aquifer` or `sea_level` configuration in the dimension - Removed `debug_settings` field ##### Removed `minecraft:nether_cave` - Replaced by `minecraft:cave` ### Int Providers #### Added `minecraft:very_biased_to_bottom` Int Provider Type Picks a random value in the provided range, with a quadratic bias towards the minimum value. - Format: object with fields: - `min_inclusive` - integer, the minimum selected value (inclusive) - `max_inclusive` - integer, the maximum selected value (inclusive) ### Villager Trades - The `given_item_modifiers` field has been renamed to `given_item_modifier` - Note: unlike other fields of type `minecraft:item_modifier`, this field does not support namespaced elements or tag IDs - The `max_uses` and `xp` fields now require an inline value of a `minecraft:context_int_provider` type - The `count` field in the `wants` and `additional_wants` structures now require an inline value of a `minecraft:context_int_provider` type - The `reputation_discount` field now requires an inline value of a `minecraft:context_float_provider` type ### Tags #### Block Tags - Added `#poplar_logs` - all Poplar log blocks - Added `#wool_stairs` - all Wool Stairs blocks - Added `#wool_slabs` - all Wool Slabs blocks - Added `#cushion_uses_collision_shape` - Blocks where Cushion placement raycasts against collision shape instead of interaction shape - Added `#wool_stairs` and `#wool_slabs` to `#dampens_vibrations` - Added `#ores` - collection tag containing all types of ores - Added `#skulls` - collection tag containing all head and skull blocks - Added `#blocks_motion` - collection tag containing all blocks that are considered to block motion in some way - Added `#blocks_motion_no_leaves` - collection tag containing all blocks that are considered to block motion in some way, but excluding leaf blocks - Added `#entities_can_teleport_to` - blocks that entities are allowed to teleport to - Added `#blocks_dolphin_jump` - blocks that Dolphins cannot move through when jumping out of water - Added `#ice_melts_when_destroyed_above` - blocks that causes ice to melt into water if the ice is destroyed when placed above them - Added `#blocks_motion_in_heightmap` - blocks that are taken into account for the `motion_blocking` heightmap - Added `#blocks_motion_in_heightmap_no_leaves` - blocks that are taken into account for the `motion_blocking_no_leaves` heightmap - Added `#blocks_lava_fire_spread` - blocks that block the creation of fire by lava - Added `#blocks_fluid_flow` - blocks that block fluid flow - Added `#washed_away_by_fluids` - blocks that break when a fluid flows through them - Added `#required_for_poplar_leaf_ambience` - blocks which can satisfy requirement for Poplar leaves to make ambient sound - Added `#turns_into_dirt_path` - blocks that turn into Dirt Path blocks when a Shovel is used for path making - Added `#sculk_growth_inhibitors` - blocks which keep Sculk from spreading when more than 2 are in the 8x2x8 area around it - Added `#uncarvable` - blocks that Carvers can never carve - Added `#cats_can_sit_on` - blocks which Cats can randomly sit on - Added `#cats_can_lie_on` - blocks which Cats can randomly lie on - Added `#speeds_up_zombie_villager_curing` - blocks which can increase Zombie Villager curing time if placed nearby - Added `#villagers_can_sleep_on_bed` - Bed blocks which Villagers can sleep on - Added `#villager_babies_can_jump_on_bed` - Bed blocks which Villager kids can jump on - Added `#height_specific_ore_replaceables` - blocks which Ore Features will turn into Stone Ores if found above y-level 0 and into Deepslate Ores if found below y-level 8 - Added `#concrete_stairs` - all Concrete Stairs blocks - Added `#concrete_slabs` - all Concrete Slabs blocks - Added `#dangerous_for_teleportation` - collection tag defining blocks that are dangerous to teleport on - Added `#cat_does_not_teleport_to` - blocks that Cats do not teleport to - Added `#enderman_does_not_teleport_to` - blocks that Endermen do not teleport to - Added `#shulker_does_not_teleport_to` - blocks that Shulkers do not teleport to - Added `#consumable_does_not_teleport_to` - blocks that entities do not teleport to when they consume food that teleports randomly when eaten - Added `#nether_portal_frame` - blocks that can be used to create a Nether Portal - Added `#conduit_effect_block` - blocks that can be used to build a Conduit - Removed `#overworld_carver_replaceables` and `#nether_carver_replaceables` #### Item Tags - Added `#poplar_logs` - all Poplar log items - Added `#wool_stairs` - all Wool Stairs items - Added `#wool_slabs` - all Wool Slabs items - Added `#mushrooms` - all Mushroom items - Added `#ores` - collection tag containing all types of ores - Added `#douses_campfires` - items that can douse a lit Campfire block - Added `#concrete_stairs` - all Concrete Stairs items - Added `#concrete_slabs` - all Concrete Slabs items - Added `#cloneable_maps` - Filled Map plus all Explorer Map items and Buried Treasure Maps, used as the input to the `map_cloning` recipe - Added `#extendable_maps` - maps that can be zoomed out with paper, either in a Crafting Table or at a Cartography Table - Added `#brewing_potion_inputs` - items that can be placed in a Brewing Stand potion slot, regardless of whether they are brewing recipe inputs - Added `#furnace_fuel_bottom_takeable` - items that can be taken out of furnace by a hopper attached to the bottom face - Removed `#brewing_fuel` - the `brewing_fuel` item component is now used to identify brewing fuels #### Biome Tags - Added tags for biomes which will generate the respective Abandoned Camp variant: - `#has_structure/abandoned_camp_bamboo_jungle` - `#has_structure/abandoned_camp_birch_forest` - `#has_structure/abandoned_camp_cherry_grove` - `#has_structure/abandoned_camp_dappled_forest` - `#has_structure/abandoned_camp_flower_forest` - `#has_structure/abandoned_camp_forest` - `#has_structure/abandoned_camp_meadow` - `#has_structure/abandoned_camp_old_growth_birch_forest` - `#has_structure/abandoned_camp_old_growth_pine_taiga` - `#has_structure/abandoned_camp_old_growth_spruce_taiga` - `#has_structure/abandoned_camp_savanna` - `#has_structure/abandoned_camp_pale_garden` - `#has_structure/abandoned_camp_snowy_taiga` - `#has_structure/abandoned_camp_sparse_jungle` - `#has_structure/abandoned_camp_swamp` - `#has_structure/abandoned_camp_taiga` - `#has_structure/abandoned_camp_windswept_forest` - `#has_structure/abandoned_camp_wooded_badlands` #### Entity Type Tags - Added `#cannot_be_dismounted_by_item_usage` - entities which cannot be dismounted by items #### Damage Type Tags - Added `#no_wolf_retaliation` - damage types that should not cause tamed Wolves to attack their source in order to defend their owner #### Potion Tags - Added `#douses_fire` - Potions that douse Fire blocks when they hit something - Added `#hurts_water_sensitive_entities` - Potions that will hurt entities which are sensitive to water (e.g. Endermen) - Added `#extinguishes_entities` - Potions that can extinguish entities - Added `#rehydrates_axolotls` - Potions that will cause Axolotls to rehydrate #### Structure Tags - Added `#abandoned_camp` - all variants of Abandoned Camps - Renamed `#on_woodland_explorer_maps` to `#on_woodland_mansion_maps` - Renamed `#on_ocean_explorer_maps` to `#on_ocean_monument_maps` - Renamed `#on_jungle_explorer_maps` to `#on_jungle_pyramid_maps` - Renamed `#on_swamp_explorer_maps` to `#on_swamp_hut_maps` - Renamed `#on_trial_explorer_map` to `#on_buried_trial_chambers_map` #### Fluid Tags - Added `#axolotl_try_find_liquid` - all fluids Axolotls are trying to find - Added `#dolphin_try_find_liquid` - all fluids Dolphins are trying to find - Added `#frog_try_find_land_near_liquid` - all fluids Frogs are trying to find land near to - Added `#entity_floatable` - all fluids that make entities float ### Particles #### Added `minecraft:red_poplar_leaves` - Falls from Red Poplar Leaves blocks - Has no fields #### Added `minecraft:orange_poplar_leaves` - Falls from Orange Poplar Leaves blocks - Has no fields #### Added `minecraft:yellow_poplar_leaves` - Falls from Yellow Poplar Leaves blocks - Has no fields ![A long view of a dappled forest at sunset, with a patch of cherry trees in the distance.](https://launchercontent.mojang.com/v2/images/dappledforest1280x720.jpg) ## Resource Pack Versions 89.0 through 97.1 ### Palette Textures - All armor trim palette textures have been moved from `textures/trim/color_palettes/` to `textures/palettes/trim/` - The base armor trim palette texture has instead been moved to `textures/palettes/trim_base.png` - Entity armor trim material textures are no longer generated into the `minecraft:trims` atlas with `paletted_permutations`, but rather generated on-demand - The base palette ID is now specified in a new `palette` mcmeta section field - This section has a single field: `base_palette` - the base Palette Texture ID to remap from - Item armor trim material textures are still generated with `paletted_permutations` as before #### `paletted_permutations` Sprite Source - Palette Texture locations in the `palette_key` and `permutations` fields have been replaced by Palette Texture IDs - i.e. `:` now resolves to `:textures/palettes/.png` ### Equipment Assets A new optional `trim_overrides` field can be used to swap out the texture or palette used with specific trim materials or patterns for a given equipment asset. This replaces functionality formerly supported by `override_armor_assets` in the trim material, as well as custom atlas overrides. - Format: list of override entries with fields: - `when` - object with fields, the material and/or pattern to match - `material` - optional Trim Material ID, the material to match (if specified) - `pattern` - optional Trim Pattern ID, the pattern to match (if specified) - At least one of `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 - `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 ### Block Sprites - Added new Block textures: - `block/orange_poplar_leaves.png` - `block/poplar_door_bottom.png` - `block/poplar_door_top.png` - `block/poplar_log.png` - `block/poplar_log_top.png` - `block/poplar_planks.png` - `block/poplar_sapling.png` - `block/poplar_shelf.png` - `block/poplar_sign.png` - `block/poplar_trapdoor.png` - `block/red_poplar_leaves.png` - `block/red_shrub.png` - `block/shelf_mushroom_stage0.png` - `block/shelf_mushroom_stage1.png` - `block/straw_bed.png` - `block/stripped_poplar_log.png` - `block/stripped_poplar_log_top.png` - `block/poplar_hanging_sign.png` - `block/yellow_poplar_leaves.png` ### Item Sprites - Added new Item textures: - `item/abandoned_camp_map.png` - `item/black_cushion.png` - `item/blue_cushion.png` - `item/brown_cushion.png` - `item/buried_ancient_city_map.png` - `item/buried_mineshaft_map.png` - `item/buried_treasure_map.png` - `item/buried_trial_chambers_map.png` - `item/cyan_cushion.png` - `item/desert_pyramid_map.png` - `item/desert_village_map.png` - `item/gray_cushion.png` - `item/green_cushion.png` - `item/jungle_pyramid_map.png` - `item/light_blue_cushion.png` - `item/light_gray_cushion.png` - `item/lime_cushion.png` - `item/magenta_cushion.png` - `item/ocean_monument_map.png` - `item/orange_cushion.png` - `item/pink_cushion.png` - `item/plains_village_map.png` - `item/poplar_boat.png` - `item/poplar_chest_boat.png` - `item/poplar_door.png` - `item/poplar_hanging_sign.png` - `item/poplar_sign.png` - `item/purple_cushion.png` - `item/red_cushion.png` - `item/savanna_village_map.png` - `item/snowy_village_map.png` - `item/swamp_hut_map.png` - `item/taiga_village_map.png` - `item/warm_ocean_ruins_map.png` - `item/white_cushion.png` - `item/woodland_mansion_map.png` - `item/yellow_cushion.png` - Removed Item textures: - `item/filled_map_markings.png` - `item/light.png` ### UI Sprites - Added new UI textures: - `gui/hanging_signs/poplar.png` - `gui/signs/poplar.png` - `gui/realms/friends.png` - `gui/realms/minigames.png` - `gui/realms/private_server.png` - `gui/sprites/widget/realms_button.png` - `gui/sprites/widget/realms_button_disabled.png` - `gui/sprites/widget/realms_button_highlighted.png` ### Entity Textures - Added new Entity textures: - `entity/boat/poplar.png` - `entity/chest_boat/poplar.png` - `entity/cushion/black_cushion.png` - `entity/cushion/blue_cushion.png` - `entity/cushion/brown_cushion.png` - `entity/cushion/cyan_cushion.png` - `entity/cushion/gray_cushion.png` - `entity/cushion/green_cushion.png` - `entity/cushion/light_blue_cushion.png` - `entity/cushion/light_gray_cushion.png` - `entity/cushion/lime_cushion.png` - `entity/cushion/magenta_cushion.png` - `entity/cushion/orange_cushion.png` - `entity/cushion/pink_cushion.png` - `entity/cushion/purple_cushion.png` - `entity/cushion/red_cushion.png` - `entity/cushion/white_cushion.png` - `entity/cushion/yellow_cushion.png` ### Map Sprites - Added new Map textures: - `abandoned_camp.png` - `ancient_city.png` - `desert_pyramid.png` - `mineshaft.png` - `warm_ocean_ruins.png` - The following Icons have been updated in order to show player rotation on the map: - `player.png` - `player_off_limits.png` - `player_off_map.png` ### Block Crumbling Overlay Textures - Added new block crumbling overlay textures that replace the existing ones for translucent blocks rendered with OIT: - `block/destroy_oit_stage_0.png` - `block/destroy_oit_stage_1.png` - `block/destroy_oit_stage_2.png` - `block/destroy_oit_stage_3.png` - `block/destroy_oit_stage_4.png` - `block/destroy_oit_stage_5.png` - `block/destroy_oit_stage_6.png` - `block/destroy_oit_stage_7.png` - `block/destroy_oit_stage_8.png` - `block/destroy_oit_stage_9.png` ### Sounds - Added new sound events: - `block.shelf_mushroom.break` - `block.shelf_mushroom.fall` - `block.shelf_mushroom.place` - `block.shelf_mushroom.step` - `block.shelf_mushroom.bounce` - `block.poplar_leaves.ambient` - `block.straw_bed.break` - `block.straw_bed.break_leave` - `block.straw_bed.step` - `block.straw_bed.place` - `block.straw_bed.hit` - `block.straw_bed.fall` - `block.poplar_leaves.break` - `block.poplar_leaves.fall` - `block.poplar_leaves.place` - `block.poplar_leaves.step` - `block.poplar_leaves.hit` - `block.red_shrub.break` - `block.red_shrub.place` - `entity.cushion.break` - `entity.cushion.place` - `entity.cushion.get_up` - `entity.cushion.sit` ### Particles - Added new Particle textures: - `orange_poplar_1.png` - `orange_poplar_2.png` - `orange_poplar_3.png` - `orange_poplar_4.png` - `red_poplar_1.png` - `red_poplar_2.png` - `red_poplar_3.png` - `red_poplar_4.png` - `yellow_poplar_1.png` - `yellow_poplar_2.png` - `yellow_poplar_3.png` - `yellow_poplar_4.png` - `shelf_mushroom_particle.png` - `straw_bed_particle.png` ### Item Models - Added optional `shade_direction_override` to 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 - Removed `shade` from block model elements - Use `shade_direction_override: "up"` to get the previous `shade: false` behavior #### Tint Sources - Removed `minecraft:map_color` - The `minecraft:map_color` component it read no longer exists ### Shaders & Post-process Effects - `terrain.vsh` and `terrain.fsh` shaders are refactored to support multi-draw - Some of the members in `Globals` and `DynamicTransforms` are shuffled to use less memory for those uniform blocks > **Developer's Note**: _Although it is possible in Resource Packs, overriding Core Shaders is considered as unsupported and not an intended Resource Pack feature. These shaders exist as part of the internal implementation of the game, and as such, may change at any time as the game's internals evolve. We understand that overriding Core Shaders is used for very cool Resource Pack features, many of which lack supported alternatives. We would like to provide better, supported alternatives in the future._ #### Order-independent Transparency (OIT)-related Shader Changes - Added new shaders to support order-independent transparency: - `core/blit_depth.fsh` - `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` - If present, indicates that OIT is enabled - `OIT_DEPTH_BOUNDS` - If present, indicates that the depth bounds pass is being executed - `OIT_TRANSMITTANCE` - If present, indicates that the transmittance pass is being executed - `OIT_ACCUMULATE` - If present, indicates that the accumulate pass is being executed - `OIT_ALPHA_ONLY` - If present, indicates that either the depth bounds or transmittance pass is being executed - `OIT_ADDITIVE` - If present, indicates that the OIT algorithm should emulate additive blending for the executing pipeline - `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_DEPTH_IS_ZERO_TO_ONE` - If present, indicates that the current rendering backend uses the depth range of `[0, 1]`, it is available globally to all shaders independently of the OIT 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/world_border.fsh` - `core/world_border.vsh` - Removed the old transparency post chain: - `post_effect/transparency.json` - `shaders/post/transparency.fsh` #### New Core Shaders - `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 #### Removed Core Shaders - `core/text_background.fsh` and `core/text_background.vsh` were removed and text background in Text Display Entities is now rendered using the text shaders #### Shader Compilation Changes - Shaders are now compiled by ShaderC when using OpenGL as well, identically to when using Vulkan - Shader includes are now handled by ShaderC using `#include` instead of `#moj_import` - Shader inputs and outputs must have a location specified in shader source - Vertex input names must still match expected names - Vertex outputs are matched to fragment inputs solely by location, the name is now ignored - Introduced new define `RENDERPEARL_INSTANCE_INDEX_INCLUDES_BASE_INSTANCE` - A boolean indicating if `gl_InstanceIndex` follows Vulkan or OpenGL (`gl_InstanceID`) semantics > **Developer's Note**: _Vertex inputs in previous versions using OpenGL were not allowed to specify a location. Compatibility can be preserved by only specifying locations when the "VULKAN" macro is defined._ > **Developer's Note**: _Vertex outputs and fragment inputs in previous versions were matched based on name alone. Compatibility can be preserved by continuing to use identical names._ #### Always-on Post Effect Support - A resource pack can now define a `minecraft:end_of_frame` post effect - It will be applied before other post effects, including the ones enabled by the new `posteffect` command - This post effect is always on as long as the resource pack is loaded, and cannot be controlled by the `posteffect` command - 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 ![Makena is enjoying a rest on a cushion while orange poplar leaves rain down from above.](https://launchercontent.mojang.com/v2/images/particles1280x720.jpg) ## Fixed bugs in 26.3 - [MC-4](https://bugs.mojang.com/browse/MC-4) - Item drops sometimes appear at the wrong location - [MC-2157](https://bugs.mojang.com/browse/MC-2157) - Particles emitted from dragon eggs when teleporting do not point in the correct direction - [MC-5269](https://bugs.mojang.com/browse/MC-5269) - Updating a server's address in the multiplayer menu does not update its status - [MC-40597](https://bugs.mojang.com/browse/MC-40597) - The interaction of the game's built-in fullscreen mode and macOS fullscreen can glitch the game window - [MC-44654](https://bugs.mojang.com/browse/MC-44654) - Some entities' positions are not updated on the client when teleported - [MC-46421](https://bugs.mojang.com/browse/MC-46421) - You cannot use Nether portals, End portals, and End gateways while in Spectator mode - [MC-51859](https://bugs.mojang.com/browse/MC-51859) - The line spacing of text within all hover tooltips is larger between the first and second lines - [MC-58061](https://bugs.mojang.com/browse/MC-58061) - Endermen can teleport onto signs - [MC-59810](https://bugs.mojang.com/browse/MC-59810) - Cannot break blocks while sprinting on macOS - [MC-73162](https://bugs.mojang.com/browse/MC-73162) - Breaking an entity that instantly breaks sometimes destroys the block behind it in Creative mode - [MC-90148](https://bugs.mojang.com/browse/MC-90148) - When a player gets out of a boat, the other passenger's head remains rotated sideways - [MC-91006](https://bugs.mojang.com/browse/MC-91006) - Some entities lose their name when placed or broken - [MC-96365](https://bugs.mojang.com/browse/MC-96365) - Boats and rafts retain their rotational momentum after exiting and entering them - [MC-102732](https://bugs.mojang.com/browse/MC-102732) - Arrows can visually bounce off of entities when barely missing them - [MC-102836](https://bugs.mojang.com/browse/MC-102836) - Endermen can teleport to some dangerous places - [MC-102881](https://bugs.mojang.com/browse/MC-102881) - Shulkers do not emit any particles when teleporting - [MC-106416](https://bugs.mojang.com/browse/MC-106416) - Endermen and entities eating chorus fruit can teleport outside the world border and into powder snow - [MC-110989](https://bugs.mojang.com/browse/MC-110989) - `/spreadplayers` considers signs to be valid blocks to be spread onto - [MC-112580](https://bugs.mojang.com/browse/MC-112580) - Structure blocks' GUI does not pause the game in singleplayer - [MC-112744](https://bugs.mojang.com/browse/MC-112744) - The `Team` NBT tag only exists for living entities - [MC-113006](https://bugs.mojang.com/browse/MC-113006) - Items reeled in with fishing rods do not move smoothly but appear to teleport - [MC-116286](https://bugs.mojang.com/browse/MC-116286) - `/spreadplayers` can spread entities on structure void - [MC-121278](https://bugs.mojang.com/browse/MC-121278) - Key combinations are mapped to the US keyboard layout even if using another layout - [MC-121367](https://bugs.mojang.com/browse/MC-121367) - The game doesn't use borderless fullscreen - [MC-121375](https://bugs.mojang.com/browse/MC-121375) - The Command (⌘) key on macOS is displayed as "Win" in the Key Binds screen - [MC-122477](https://bugs.mojang.com/browse/MC-122477) - Opening the chat sometimes appends the character the used key types to the message on Linux - [MC-122717](https://bugs.mojang.com/browse/MC-122717) - Success messages for some commands include unaffected entities, unlike the command result - [MC-122731](https://bugs.mojang.com/browse/MC-122731) - Camera movement stutters when turning in a boat - [MC-127939](https://bugs.mojang.com/browse/MC-127939) - Several keys are displayed as "scancode.number" in the Key Binds menu - [MC-133407](https://bugs.mojang.com/browse/MC-133407) - Key binds switch when upgrading from before 1.13 if not using a QWERTY keyboard - [MC-148541](https://bugs.mojang.com/browse/MC-148541) - `/spreadplayers` can spread players to seagrass near the surface of the water - [MC-149058](https://bugs.mojang.com/browse/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](https://bugs.mojang.com/browse/MC-151857) - The success message of `/give` when affecting multiple players uses the wrong string - [MC-154881](https://bugs.mojang.com/browse/MC-154881) - Dropping an item from your hotbar at the same time as switching to another hotbar slot desyncs the second item - [MC-159283](https://bugs.mojang.com/browse/MC-159283) - Terrain generation fails in progressively shrinking rings centered around the End's center - [MC-161885](https://bugs.mojang.com/browse/MC-161885) - Many transparent things do not render behind slimes - [MC-161898](https://bugs.mojang.com/browse/MC-161898) - Transparent particles make other particles behind them invisible - [MC-161926](https://bugs.mojang.com/browse/MC-161926) - The block breaking animation is more transparent when mining ice or stained glass - [MC-162159](https://bugs.mojang.com/browse/MC-162159) - Riding boats above bubble columns causes players to teleport up 2 blocks - [MC-168446](https://bugs.mojang.com/browse/MC-168446) - Single dark oak and pale oak saplings accept bone meal despite not being able to grow - [MC-168653](https://bugs.mojang.com/browse/MC-168653) - Mobs, particles, clouds, water and transparent blocks don't render behind the transparent parts of shulker bullets - [MC-174958](https://bugs.mojang.com/browse/MC-174958) - `/gamerule` succeeds even when the value is not changed - [MC-175180](https://bugs.mojang.com/browse/MC-175180) - The `Silent` NBT tag still doesn't make some entities fully silent - [MC-183446](https://bugs.mojang.com/browse/MC-183446) - Endermen still avoid projectiles when riding minecarts or boats - [MC-187669](https://bugs.mojang.com/browse/MC-187669) - The world border is too dark with the "Improved Transparency" option enabled - [MC-189953](https://bugs.mojang.com/browse/MC-189953) - The Super key on macOS is displayed as "Win" in the Key Binds screen - [MC-190203](https://bugs.mojang.com/browse/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](https://bugs.mojang.com/browse/MC-202197) - Entities' name tag background is rendered behind transparent things - [MC-206356](https://bugs.mojang.com/browse/MC-206356) - The motion of falling blocks is visually slow - [MC-206540](https://bugs.mojang.com/browse/MC-206540) - Increased input delay when riding an entity - [MC-210117](https://bugs.mojang.com/browse/MC-210117) - Sculk sensors don't detect ice and snow melting - [MC-210584](https://bugs.mojang.com/browse/MC-210584) - Water does not render behind items modified to use semi-transparent textures - [MC-210734](https://bugs.mojang.com/browse/MC-210734) - Translucent blocks and other entities render over invisible spiders' eyes regardless of positions - [MC-212671](https://bugs.mojang.com/browse/MC-212671) - Loot table entries of type `tag` with `expand` set to true do not apply loot functions to the items - [MC-214113](https://bugs.mojang.com/browse/MC-214113) - Endermen and shulkers can teleport onto the Nether roof - [MC-218015](https://bugs.mojang.com/browse/MC-218015) - Translucent blocks and other entities render over invisible endermen's eyes regardless of positions - [MC-218156](https://bugs.mojang.com/browse/MC-218156) - Shipwrecks and ocean ruins can generate with empty buried treasure maps - [MC-222559](https://bugs.mojang.com/browse/MC-222559) - Block hitboxes and entity hitboxes don't render behind semi-transparent entities - [MC-222818](https://bugs.mojang.com/browse/MC-222818) - You can ignite TNT in Adventure mode - [MC-223321](https://bugs.mojang.com/browse/MC-223321) - You can destroy turtle eggs by standing or jumping on them in spawn protection - [MC-223323](https://bugs.mojang.com/browse/MC-223323) - You can trample farmland in spawn protection - [MC-223559](https://bugs.mojang.com/browse/MC-223559) - Transparent blocks, particles, and clouds are not rendered behind semi-transparent marker armor stands - [MC-224528](https://bugs.mojang.com/browse/MC-224528) - Two splash texts use curly single quotes (’) instead of apostrophes (') - [MC-227008](https://bugs.mojang.com/browse/MC-227008) - Endermen constantly try to teleport when riding a vehicle under daylight - [MC-228273](https://bugs.mojang.com/browse/MC-228273) - Goats do not move correctly after they are tempted during a long jump - [MC-229405](https://bugs.mojang.com/browse/MC-229405) - The inside of boats blocks the rendering of most translucent objects with the "Improved Transparency" option enabled - [MC-229831](https://bugs.mojang.com/browse/MC-229831) - Enchanting tables' GUI has three pixels in the top right corner that shouldn't be there - [MC-233888](https://bugs.mojang.com/browse/MC-233888) - Pressing the Space or Enter keys to interact with elements results in the pressed key being executed again - [MC-236497](https://bugs.mojang.com/browse/MC-236497) - The head rotations of passengers in boats are not correctly displayed for other players - [MC-237053](https://bugs.mojang.com/browse/MC-237053) - Block breaking particles cannot be seen by other players - [MC-237165](https://bugs.mojang.com/browse/MC-237165) - Block breaking sounds cannot be heard by other players - [MC-237679](https://bugs.mojang.com/browse/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](https://bugs.mojang.com/browse/MC-239401) - `items/light.png` never appears in-game; is pointlessly referenced by other game assets - [MC-245030](https://bugs.mojang.com/browse/MC-245030) - The "Bee buzzes" closed caption only appears when a bee buzzes for the first time - [MC-247034](https://bugs.mojang.com/browse/MC-247034) - Particles produced from entities growing cannot be seen by other players - [MC-248600](https://bugs.mojang.com/browse/MC-248600) - Particles produced from moving in powder snow cannot be seen by other players - [MC-248666](https://bugs.mojang.com/browse/MC-248666) - Particles produced from dragon eggs teleporting cannot be seen by other players - [MC-249200](https://bugs.mojang.com/browse/MC-249200) - Several entities constantly deviate visually from their actual positions on the client when teleported - [MC-252369](https://bugs.mojang.com/browse/MC-252369) - Data packs can fail to load due to a feature cycle when one does not exist - [MC-252934](https://bugs.mojang.com/browse/MC-252934) - Placing structures with paintings, item frames, or glow item frames logs `Block-attached entity at invalid position: [BlockPosition]` - [MC-253023](https://bugs.mojang.com/browse/MC-253023) - Breaking paintings, item frames, or glow item frames cannot trigger sculk shriekers - [MC-254353](https://bugs.mojang.com/browse/MC-254353) - A packet to remove the score is always broadcast when a score is reset - [MC-254370](https://bugs.mojang.com/browse/MC-254370) - The `entity_scores` predicate type cannot check all possible scores - [MC-254547](https://bugs.mojang.com/browse/MC-254547) - Villagers do not level up when exiting the world immediately after filling their experience bar - [MC-254661](https://bugs.mojang.com/browse/MC-254661) - `/schedule clear` requires a namespace in its function argument - [MC-256073](https://bugs.mojang.com/browse/MC-256073) - Miscolored pixel in `tab_inventory.png` - [MC-256096](https://bugs.mojang.com/browse/MC-256096) - Some entities on a team can harm teammates that walk into them when friendly fire is disabled - [MC-256097](https://bugs.mojang.com/browse/MC-256097) - Some entities on a team can harm their teammates when they explode when friendly fire is disabled - [MC-258347](https://bugs.mojang.com/browse/MC-258347) - Endermen no longer create an extra trail of particles when teleporting - [MC-258579](https://bugs.mojang.com/browse/MC-258579) - The player's head does not rotate with a delay from the camera in third person view while riding a vehicle - [MC-259512](https://bugs.mojang.com/browse/MC-259512) - Horizontal camera rotation lags when riding - [MC-259583](https://bugs.mojang.com/browse/MC-259583) - Brewing with a single bottle of dragon's breath does not return a glass bottle afterward - [MC-259812](https://bugs.mojang.com/browse/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](https://bugs.mojang.com/browse/MC-260780) - Shulker bullets always push fireballs south - [MC-263100](https://bugs.mojang.com/browse/MC-263100) - Cave biomes interfere with relief on exploration maps - [MC-263708](https://bugs.mojang.com/browse/MC-263708) - The Key Binds screen renders keypad keys the same as regular keys - [MC-264003](https://bugs.mojang.com/browse/MC-264003) - Boats carrying players sometimes stop abruptly when sliding along ice - [MC-265423](https://bugs.mojang.com/browse/MC-265423) - When villagers acquire enough experience to level up more than once, they only gain a single level - [MC-265584](https://bugs.mojang.com/browse/MC-265584) - TNT dispensed in bubble columns with soul sand right under visually moves through blocks above - [MC-265743](https://bugs.mojang.com/browse/MC-265743) - Entities, block entities, clouds and semi-transparent blocks are always rendered in front of text displays with `see_through` enabled - [MC-266231](https://bugs.mojang.com/browse/MC-266231) - Mouse buttons above 8 can't be set as key binds - [MC-266429](https://bugs.mojang.com/browse/MC-266429) - Holding Shift on macOS causes the hotbar scroll direction to reverse when scrolling with the mouse - [MC-267902](https://bugs.mojang.com/browse/MC-267902) - The failure message of `/random` when the specified range is too large states an incorrect maximum for the range - [MC-268145](https://bugs.mojang.com/browse/MC-268145) - `cache_once` density functions don't work - [MC-268155](https://bugs.mojang.com/browse/MC-268155) - Rendering gaps in the world under specific conditions - [MC-268521](https://bugs.mojang.com/browse/MC-268521) - The game window doesn't have a minimal width and height - [MC-269968](https://bugs.mojang.com/browse/MC-269968) - Can't scroll with the mouse while holding Shift on macOS (except in the hotbar) - [MC-270706](https://bugs.mojang.com/browse/MC-270706) - Trying to brew an uncraftable potion into a splash or lingering potion consumes the reagent but keeps the potion exactly as is - [MC-270970](https://bugs.mojang.com/browse/MC-270970) - The player's camera shakes when attempting to step up blocks with a boat above them - [MC-271069](https://bugs.mojang.com/browse/MC-271069) - Item entities appear to fly towards the player when picked up by a dolphin that isn't being rendered - [MC-271297](https://bugs.mojang.com/browse/MC-271297) - `/fillbiome` doesn't fail when no changes are made - [MC-271723](https://bugs.mojang.com/browse/MC-271723) - Translucent blocks and other entities render over invisible phantoms' eyes regardless of positions - [MC-271724](https://bugs.mojang.com/browse/MC-271724) - Translucent blocks and other entities render over invisible breezes' eyes regardless of positions - [MC-272801](https://bugs.mojang.com/browse/MC-272801) - Particles and translucent objects do not render when behind the ender dragon's death animation - [MC-273327](https://bugs.mojang.com/browse/MC-273327) - The `#convertable_to_mud` block tag misspells "convertible" as "convertable" - [MC-273708](https://bugs.mojang.com/browse/MC-273708) - Endermen taking environmental damage attempt to teleport when riding an entity - [MC-274924](https://bugs.mojang.com/browse/MC-274924) - Angry endermen suffocating while in boats or minecarts can attack their target from really far away - [MC-275111](https://bugs.mojang.com/browse/MC-275111) - Two animals in a boat look sideways instead of at the player when lured - [MC-275532](https://bugs.mojang.com/browse/MC-275532) - The abbreviation "fps" is inconsistently capitalized across strings - [MC-276079](https://bugs.mojang.com/browse/MC-276079) - Sending a swing packet to the client causes it to send one back to the server - [MC-276692](https://bugs.mojang.com/browse/MC-276692) - Lingering potions which land on the target's head do not grant their effects to the target - [MC-277772](https://bugs.mojang.com/browse/MC-277772) - Stained glass renders incorrectly through item models in stained glass with the "Improved Transparency" option enabled - [MC-277906](https://bugs.mojang.com/browse/MC-277906) - Ender pearls land incorrectly at high speeds - [MC-278336](https://bugs.mojang.com/browse/MC-278336) - The player model still flickers at very high speeds - [MC-278557](https://bugs.mojang.com/browse/MC-278557) - Exiting a spinning boat and then inserting a mob makes its head spin forever - [MC-278771](https://bugs.mojang.com/browse/MC-278771) - The incorrect command context is used when providing suggestions for redirected commands - [MC-279185](https://bugs.mojang.com/browse/MC-279185) - The `selectWorld.load_folder_access` string is missing an article before the word "folder" - [MC-279285](https://bugs.mojang.com/browse/MC-279285) - Experience orbs that have been stuck inside blocks rapidly accelerate toward the ground if they've been disturbed by a player's presence - [MC-279395](https://bugs.mojang.com/browse/MC-279395) - Trees can generate floating over ruined portals - [MC-279561](https://bugs.mojang.com/browse/MC-279561) - Resin brick walls without a center post are not solid - [MC-279586](https://bugs.mojang.com/browse/MC-279586) - Closed captions continue to fade when their sound plays again from farther away, causing visual delays in the overlay - [MC-279819](https://bugs.mojang.com/browse/MC-279819) - The mining speed factor of Mining Fatigue is inconsistent at level 3 - [MC-280250](https://bugs.mojang.com/browse/MC-280250) - Projectiles sometimes desync when thrown or shot while moving - [MC-293615](https://bugs.mojang.com/browse/MC-293615) - Tooltip formatting of "\[item\] x \[number\]" is inconsistent across different types of items - [MC-293755](https://bugs.mojang.com/browse/MC-293755) - The ender dragon's neck and tail disconnect from its body when it turns - [MC-295678](https://bugs.mojang.com/browse/MC-295678) - Translucent blocks above water flicker when crossing chunk borders - [MC-295756](https://bugs.mojang.com/browse/MC-295756) - Pistons desync on the client, causing players to be moved differently compared to other entities - [MC-296006](https://bugs.mojang.com/browse/MC-296006) - Entities do not face the player correctly while in a boat - [MC-296368](https://bugs.mojang.com/browse/MC-296368) - The `entity.happy_ghast.riding` sound event displays no closed caption - [MC-296773](https://bugs.mojang.com/browse/MC-296773) - Taken screenshots are rendered as a black image on Intel graphics of Gen7 and Gen7.5 architecture - [MC-297741](https://bugs.mojang.com/browse/MC-297741) - Gravity-affected blocks in upwards bubble columns can visually clip through solid blocks above them - [MC-298066](https://bugs.mojang.com/browse/MC-298066) - Directly entering a bed from a mount places the player in the wrong place - [MC-298431](https://bugs.mojang.com/browse/MC-298431) - Boats are launched by slime blocks inconsistently - [MC-298659](https://bugs.mojang.com/browse/MC-298659) - Translucent blocks and some entities render above text displays with `see_through` enabled - [MC-298762](https://bugs.mojang.com/browse/MC-298762) - Phantoms deflect arrows shot from bows or crossbows - [MC-299019](https://bugs.mojang.com/browse/MC-299019) - Using a bed while riding a rideable mob causes the player to sleep either on the ground, or on top of the mob - [MC-299460](https://bugs.mojang.com/browse/MC-299460) - Saddled pigs in boats carried by happy ghasts can cause a desync when unequipping a carrot on a stick - [MC-299582](https://bugs.mojang.com/browse/MC-299582) - Special crafting recipes cannot be given or taken with `/recipe` and do not respect the `limited_crafting` game rule - [MC-300000](https://bugs.mojang.com/browse/MC-300000) - Players desync when teleporting all users riding a happy ghast - [MC-300831](https://bugs.mojang.com/browse/MC-300831) - `/test locate` always fails - [MC-301804](https://bugs.mojang.com/browse/MC-301804) - Test blocks' GUI does not pause the game in singleplayer - [MC-302221](https://bugs.mojang.com/browse/MC-302221) - Moving entities deflect arrows - [MC-302271](https://bugs.mojang.com/browse/MC-302271) - Sniffers stop sniffing after relog - [MC-302537](https://bugs.mojang.com/browse/MC-302537) - `/give` succeeds when trying to give more than 100 stacks of an item despite the failure message and no items being given - [MC-302661](https://bugs.mojang.com/browse/MC-302661) - Interacting with something while holding spears plays the spear jab animation - [MC-302687](https://bugs.mojang.com/browse/MC-302687) - Throwing items out of your inventory while holding spears plays the spear jab animation - [MC-302705](https://bugs.mojang.com/browse/MC-302705) - Having a spear in the main hand affects the hand animation speed for items held in the off hand - [MC-303360](https://bugs.mojang.com/browse/MC-303360) - Flat-cached shifted noise density functions are recalculated for every Y level - [MC-303493](https://bugs.mojang.com/browse/MC-303493) - The `apply_impulse` entity effect does not apply components of the impulse that would cause the affected entity to hit a solid block when used with a `tick` or `location_changed` advancement trigger - [MC-303626](https://bugs.mojang.com/browse/MC-303626) - Block hitboxes, particles, semi-transparent blocks and non-block items render behind entity hitboxes with the "Improved Transparency" option enabled - [MC-303789](https://bugs.mojang.com/browse/MC-303789) - Looking directly up with an `apply_impulse` enchantment 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](https://bugs.mojang.com/browse/MC-304195) - The arm overlay textures of parched have unused pixels not used by the model - [MC-304213](https://bugs.mojang.com/browse/MC-304213) - Zombies, husks and drowned hold out the incorrect arm when holding spears - [MC-304594](https://bugs.mojang.com/browse/MC-304594) - Spears can dismount interaction entities from their vehicles - [MC-304719](https://bugs.mojang.com/browse/MC-304719) - The `InhabitedTime` NBT tag for some chunks can be set to impossibly high values when a world is opened - [MC-304920](https://bugs.mojang.com/browse/MC-304920) - Spears in third person look wrong when the left hand is the main hand - [MC-305214](https://bugs.mojang.com/browse/MC-305214) - Arrows deflecting off of entities get offset - [MC-305422](https://bugs.mojang.com/browse/MC-305422) - Players can sometimes get kicked due to a waypoint packet the client fails to handle - [MC-305535](https://bugs.mojang.com/browse/MC-305535) - Elytra are activated after only single tapping the "Jump" key when the player is in lava - [MC-305707](https://bugs.mojang.com/browse/MC-305707) - `/time` reports success when no changes are made - [MC-306012](https://bugs.mojang.com/browse/MC-306012) - Armadillos can escape fenced areas when at the edge of the simulation distance - [MC-306127](https://bugs.mojang.com/browse/MC-306127) - Block outlines are no longer visible behind translucent items - [MC-306156](https://bugs.mojang.com/browse/MC-306156) - Breezes, slimes and players between translucent blocks or fluids appear behind them with the "Improved Transparency" option enabled - [MC-306231](https://bugs.mojang.com/browse/MC-306231) - Boats are filled with water when viewed through translucent blocks with the "Improved Transparency" option enabled - [MC-306318](https://bugs.mojang.com/browse/MC-306318) - Translucent items render through the head of players with a translucent item equipped on their head with the "Improved Transparency" option enabled - [MC-306619](https://bugs.mojang.com/browse/MC-306619) - Cannot jump while sneaking while using a Chinese input method - [MC-306778](https://bugs.mojang.com/browse/MC-306778) - The fog color no longer transitions smoothly when the weather changes at night while under the Night Vision effect - [MC-306891](https://bugs.mojang.com/browse/MC-306891) - Sneaking and then opening the chat forces the IME to switch to the corresponding CJK mode - [MC-307122](https://bugs.mojang.com/browse/MC-307122) - The hanging roots drop from hoeing rooted dirt appears to be hardcoded - [MC-307206](https://bugs.mojang.com/browse/MC-307206) - `Std140Builder` incorrectly pads `vec3s` and `ivec3s` - [MC-307285](https://bugs.mojang.com/browse/MC-307285) - Translucent blocks don't render behind sulfur cubes - [MC-307319](https://bugs.mojang.com/browse/MC-307319) - Low performance with the Vulkan rendering backend on Intel Arc GPUs (especially on Linux) - [MC-307345](https://bugs.mojang.com/browse/MC-307345) - The smoke particles produced by potent sulfur do not render behind stained glass - [MC-307376](https://bugs.mojang.com/browse/MC-307376) - The CPU and GPU isn't fully utilized; the framerate is stuck at 25-35 fps - [MC-307384](https://bugs.mojang.com/browse/MC-307384) - Screen tearing occurs with the Vulkan rendering backend in fullscreen mode with lower framerates, even if VSync is enabled - [MC-307449](https://bugs.mojang.com/browse/MC-307449) - Spawners with their light limits set no longer spawn mobs underground at night time - [MC-307452](https://bugs.mojang.com/browse/MC-307452) - Significant performance regression with the Vulkan rendering backend - [MC-307596](https://bugs.mojang.com/browse/MC-307596) - The OpenGL rendering backend seems to be very laggy - [MC-307616](https://bugs.mojang.com/browse/MC-307616) - Typo in a log message in `ActiveProfiler`: "aprox" - [MC-307618](https://bugs.mojang.com/browse/MC-307618) - Typo in a log message in `SoundEngine`: "disapeared" - [MC-307625](https://bugs.mojang.com/browse/MC-307625) - The glowing effect is not visible on block displays displaying End portals or End gateways - [MC-307648](https://bugs.mojang.com/browse/MC-307648) - "non-heap" is misspelled as "non-head" in the system details section of crash reports - [MC-307660](https://bugs.mojang.com/browse/MC-307660) - Typo in a log message in `GameRenderer`: "coudln't" - [MC-307709](https://bugs.mojang.com/browse/MC-307709) - The texture of upward facing sulfur spikes' merged tip has a single wrong pixel at the very top - [MC-307890](https://bugs.mojang.com/browse/MC-307890) - Some textures of geyser plume particles use the wrong color in some spots - [MC-307902](https://bugs.mojang.com/browse/MC-307902) - Partially transparent blocks inside sulfur cubes don't render correctly - [MC-307918](https://bugs.mojang.com/browse/MC-307918) - Sculk patches can cause errors in the log during world generation - [MC-307933](https://bugs.mojang.com/browse/MC-307933) - Deepslate ores can generate on the surface by replacing tuff around sulfur springs - [MC-307938](https://bugs.mojang.com/browse/MC-307938) - Low performance with the Vulkan rendering backend on AMD GPUs - [MC-307996](https://bugs.mojang.com/browse/MC-307996) - The game cannot use hardware acceleration on devices lacking the `fillModeNonSolid` Vulkan feature - [MC-308008](https://bugs.mojang.com/browse/MC-308008) - The success message of `/tag` reports that it affected more entities than it did - [MC-308009](https://bugs.mojang.com/browse/MC-308009) - The success message of `/scoreboard players enable` reports that it affected more players than it did - [MC-308011](https://bugs.mojang.com/browse/MC-308011) - The success message of `/recipe` reports that it affected more players than it did - [MC-308012](https://bugs.mojang.com/browse/MC-308012) - The success message of `/enchant` reports that it affected more entities than it did - [MC-308013](https://bugs.mojang.com/browse/MC-308013) - The success message of `/effect` reports that it affected more entities than it did - [MC-308014](https://bugs.mojang.com/browse/MC-308014) - The success message of `/clear` reports that it affected more players than it did - [MC-308125](https://bugs.mojang.com/browse/MC-308125) - Scroll wheel tilting/sideways scrolling appears to move the selected hotbar slot the wrong way - [MC-308127](https://bugs.mojang.com/browse/MC-308127) - The "Friends Screen" key bind overrides debug hotkeys using the same key - [MC-308222](https://bugs.mojang.com/browse/MC-308222) - World generation heightmaps do not persist properly through chunk saving and loading - [MC-308254](https://bugs.mojang.com/browse/MC-308254) - Dying to a sulfur cube with a magma block doesn't increment the player's `killed_by:sulfur_cube` statistic - [MC-308314](https://bugs.mojang.com/browse/MC-308314) - Custom player heads do not render their texture properly when inside a sulfur cube - [MC-308344](https://bugs.mojang.com/browse/MC-308344) - Validation error when compiling shaders containing in/out array or matrix variables with the Vulkan rendering backend - [MC-308405](https://bugs.mojang.com/browse/MC-308405) - `/unpublish` succeeds when the game is not published despite the failure message - [MC-308406](https://bugs.mojang.com/browse/MC-308406) - Item models are shown incorrectly in the smithing table menu's armor stand - [MC-308460](https://bugs.mojang.com/browse/MC-308460) - Some of the stems in wildflowers and pink petals render brighter - [MC-308469](https://bugs.mojang.com/browse/MC-308469) - Hitting the ender dragon's head hitbox no longer causes the ender dragon to take more damage - [MC-308490](https://bugs.mojang.com/browse/MC-308490) - The "regular" sulfur cube archetype produces stone sounds, despite no longer using stone blocks - [MC-308593](https://bugs.mojang.com/browse/MC-308593) - Animated blocks (notably water and lava) render incorrectly on some graphics - [MC-308647](https://bugs.mojang.com/browse/MC-308647) - The resource packs screen can cache font glyphs incorrectly after toggling the "Font Settings" option - [MC-308694](https://bugs.mojang.com/browse/MC-308694) - Using `/defaultgamemode` changes everyone's game mode to the one set in "Settings for Other Players" in LAN worlds - [MC-308699](https://bugs.mojang.com/browse/MC-308699) - Switching the host's game mode causes new LAN players to ignore the forced game mode - [MC-308749](https://bugs.mojang.com/browse/MC-308749) - Exiting and rejoining the same LAN session resets your game mode - [MC-308752](https://bugs.mojang.com/browse/MC-308752) - Frame presentation stutters heavily with the OpenGL rendering backend on Intel Arc if a GUI is opened in borderless fullscreen mode - [MC-308765](https://bugs.mojang.com/browse/MC-308765) - Ender pearls don't cancel the player's velocity - [MC-308789](https://bugs.mojang.com/browse/MC-308789) - Pointed dripstone and sulfur spikes can be destroyed by tridents in Adventure mode - [MC-308798](https://bugs.mojang.com/browse/MC-308798) - Dolphins take much longer to pick up items - [MC-308804](https://bugs.mojang.com/browse/MC-308804) - The input method does not switch to the corresponding CJK mode in the Create New World screen - [MC-308809](https://bugs.mojang.com/browse/MC-308809) - Full-width spaces take up more space on signs now - [MC-308830](https://bugs.mojang.com/browse/MC-308830) - Placing beds does not send block updates to the foot half's neighboring blocks - [MC-308836](https://bugs.mojang.com/browse/MC-308836) - Obfuscated text no longer keeps a consistent width - [MC-308849](https://bugs.mojang.com/browse/MC-308849) - Creakings can take knockback - [MC-308851](https://bugs.mojang.com/browse/MC-308851) - The `chat_restriction.disabled_by_profile.action` string is improperly capitalized - [MC-308866](https://bugs.mojang.com/browse/MC-308866) - Unable to change online settings when in a world - [MC-308914](https://bugs.mojang.com/browse/MC-308914) - End portals or End gateways held by glowing endermen do not glow - [MC-308915](https://bugs.mojang.com/browse/MC-308915) - End portals and End gateways do not glow when inside glowing minecarts - [MC-308916](https://bugs.mojang.com/browse/MC-308916) - Glowing TNT that renders as an End portal or End gateway does not glow - [MC-308917](https://bugs.mojang.com/browse/MC-308917) - Items with the `end_cube` special model type do not show a glowing outline where expected - [MC-308961](https://bugs.mojang.com/browse/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](https://bugs.mojang.com/browse/MC-309081) - Decorated pots and chorus flowers can be destroyed by projectiles in Adventure mode - [MC-309262](https://bugs.mojang.com/browse/MC-309262) - Falling blocks disappear for a split second when landing - [MC-309298](https://bugs.mojang.com/browse/MC-309298) - Sending chat messages while having the "Chat Delay" option set to a nonzero value can sometimes kick you from the game - [MC-309479](https://bugs.mojang.com/browse/MC-309479) - The game crashes during the loading screen with the message "Failed to wait for frame completion" on some systems - [MC-309501](https://bugs.mojang.com/browse/MC-309501) - Dropped shelves rotate off-center - [MC-309565](https://bugs.mojang.com/browse/MC-309565) - Block outlines are rendered behind translucent elements if the "High Contrast Block Outlines" option is enabled - [MC-309872](https://bugs.mojang.com/browse/MC-309872) - The system freezes when pressing the Windows key with the "Exclusive Fullscreen" option enabled - [MC-309875](https://bugs.mojang.com/browse/MC-309875) - New translations for the tooltip of the "Improved Transparency" option are wrongly backported - [MC-309891](https://bugs.mojang.com/browse/MC-309891) - The `chat_restriction.disabled_by_launcher` string lacks a period, unlike similar strings - [MC-309893](https://bugs.mojang.com/browse/MC-309893) - The `gamerule.minecraft.fire_spread_radius_around_player.description` string lacks a period, unlike similar strings - [MC-309897](https://bugs.mojang.com/browse/MC-309897) - The `gui.report_to_server` string is improperly capitalized - [MC-309898](https://bugs.mojang.com/browse/MC-309898) - The `editGamerule.inGame.discardChanges.title` string is improperly capitalized - [MC-309901](https://bugs.mojang.com/browse/MC-309901) - The `structure_block.position.x` string is improperly capitalized - [MC-309902](https://bugs.mojang.com/browse/MC-309902) - Some strings contain stray spaces adjacent to line breaks - [MC-309903](https://bugs.mojang.com/browse/MC-309903) - The "Isn't It Iron Pick" advancement name is missing a question mark - [MC-309907](https://bugs.mojang.com/browse/MC-309907) - The word "whoosh" is misspelled as "woosh" in the `subtitles.block.bubble_column.upwards_inside` string - [MC-309908](https://bugs.mojang.com/browse/MC-309908) - The `subtitles.entity.copper_golem.no_item_get` string is missing an article before the word "item" - [MC-309911](https://bugs.mojang.com/browse/MC-309911) - The words "blocks" and "seconds" in the `commands.worldborder.set.grow` string are always pluralized - [MC-309914](https://bugs.mojang.com/browse/MC-309914) - The `commands.op.failed` string has awkward and inconsistent adverb placement, unlike similar strings - [MC-309915](https://bugs.mojang.com/browse/MC-309915) - The `commands.kick.owner.failed` string is missing articles before the words "server" and "LAN" - [MC-309916](https://bugs.mojang.com/browse/MC-309916) - Some `/stopwatch` strings incorrectly capitalize the word "Stopwatch" mid-sentence, which is inconsistent with other commands - [MC-309918](https://bugs.mojang.com/browse/MC-309918) - The `commands.perf.started` string is missing a hyphen between the words "10" and "second" and an article before the word "10" - [MC-309919](https://bugs.mojang.com/browse/MC-309919) - The `mco.errorMessage.6002` string is improperly capitalized - [MC-309920](https://bugs.mojang.com/browse/MC-309920) - The `mco.configure.world.close.question.line1` string is improperly capitalized - [MC-309921](https://bugs.mojang.com/browse/MC-309921) - The `mco.snapshot.subscription.info` string uses the "to" preposition instead of "with" - [MC-309922](https://bugs.mojang.com/browse/MC-309922) - The `advMode.trackOutput` string is improperly capitalized - [MC-309923](https://bugs.mojang.com/browse/MC-309923) - The `gamerule.minecraft.entity_drops.description` string is improperly capitalized - [MC-309924](https://bugs.mojang.com/browse/MC-309924) - The `argument.enum.invalid` string surrounds the placeholder with double quotes instead of single quotes, unlike every other command - [MC-309925](https://bugs.mojang.com/browse/MC-309925) - The `mount.onboard` string is improperly capitalized - [MC-309926](https://bugs.mojang.com/browse/MC-309926) - The `selectWorld.edit.backupSize` string is improperly capitalized - [MC-309927](https://bugs.mojang.com/browse/MC-309927) - The `gui.friends.error.unauthorized` string lacks a period, unlike similar strings - [MC-309928](https://bugs.mojang.com/browse/MC-309928) - The `multiplayer.confirm_command.signature_required` string lacks a period - [MC-309937](https://bugs.mojang.com/browse/MC-309937) - The `argument.pos.outofbounds` string ends with a period, unlike similar strings - [MC-309938](https://bugs.mojang.com/browse/MC-309938) - The `quickplay.error.invalid_identifier` string is missing an article before the word "world" - [MC-309940](https://bugs.mojang.com/browse/MC-309940) - The `datapackFailure.safeMode.failed.title` string ends with a period, unlike similar title strings - [MC-310041](https://bugs.mojang.com/browse/MC-310041) - Under specific conditions, chunk loading frequently fails - [MC-310057](https://bugs.mojang.com/browse/MC-310057) - Pressing the "Advancements" key bind while its menu was opened from the pause menu closes both menus - [MC-310062](https://bugs.mojang.com/browse/MC-310062) - Armadillos stop following players holding spider eyes after relog - [MC-310076](https://bugs.mojang.com/browse/MC-310076) - Mobs sometimes stop just far enough away from the player to be unable to attack them - [MC-310182](https://bugs.mojang.com/browse/MC-310182) - Some descriptive tooltip strings lack a period, unlike similar strings - [MC-310184](https://bugs.mojang.com/browse/MC-310184) - The `commands.bossbar.set.max.unchanged` string abbreviates "maximum" to "max", unlike similar strings - [MC-310186](https://bugs.mojang.com/browse/MC-310186) - The `options.languageWarning` string lacks a period, unlike similar strings - [MC-310187](https://bugs.mojang.com/browse/MC-310187) - The `commands.bossbar.get.visible.visible` string uses "shown" instead of "visible", unlike similar strings - [MC-310188](https://bugs.mojang.com/browse/MC-310188) - Some `/tag list` success strings always pluralize the word "tags" - [MC-310232](https://bugs.mojang.com/browse/MC-310232) - Resizing the game window in the Realms players menu misplaces UI elements - [MC-310233](https://bugs.mojang.com/browse/MC-310233) - Some strings that contain percentages have spaces before the percentage sign, unlike similar strings - [MC-310236](https://bugs.mojang.com/browse/MC-310236) - Some strings use an ampersand instead of the word "and", unlike similar strings - [MC-310289](https://bugs.mojang.com/browse/MC-310289) - Entity collisions fully above an entity's hitbox are ignored when stepping up blocks - [MC-310300](https://bugs.mojang.com/browse/MC-310300) - Other windows cannot be displayed on top of the game window even with the "Exclusive Fullscreen" option disabled - [MC-310337](https://bugs.mojang.com/browse/MC-310337) - The game log outputs the incorrect minimum format version requiring the `pack_format` field in `pack.mcmeta` - [MC-310372](https://bugs.mojang.com/browse/MC-310372) - Tripwires depowering breaks cross-chunk block tick processing order - [MC-310476](https://bugs.mojang.com/browse/MC-310476) - Projectiles only collide outright with the world border when underwater - [MC-310595](https://bugs.mojang.com/browse/MC-310595) - The Option key on macOS is displayed as "Alt" in the Key Binds screen - [MC-310676](https://bugs.mojang.com/browse/MC-310676) - The `savanna_lamp_post_01` village structure contains a trailing closing square bracket in the jigsaw block's NBT - [MC-310684](https://bugs.mojang.com/browse/MC-310684) - Camels stop following players holding cacti after relog - [MC-310787](https://bugs.mojang.com/browse/MC-310787) - Villagers do not level up until the trading window is closed for several seconds - [MC-310939](https://bugs.mojang.com/browse/MC-310939) - Interacting with camels with two passengers is preferred over using items - [MC-310962](https://bugs.mojang.com/browse/MC-310962) - The trading UI opens and immediately closes when interacting with a villager whose trades were altered with commands - [MC-311094](https://bugs.mojang.com/browse/MC-311094) - Villager discounts do not apply until the trading window is closed and reopened - [MC-311113](https://bugs.mojang.com/browse/MC-311113) - The game does not hand off focus when clicking links on Wayland - [MC-311186](https://bugs.mojang.com/browse/MC-311186) - The water overlay and fog does not render when the player's head is inside a block underwater - [MC-311235](https://bugs.mojang.com/browse/MC-311235) - Upgrading a world from before 26.1 can cause data from other worlds to get saved inside it - [MC-311245](https://bugs.mojang.com/browse/MC-311245) - Ruined portals can generate replacing End portal frames - [MC-311271](https://bugs.mojang.com/browse/MC-311271) - Some loot context parameters are missing from the `generic` loot context type - [MC-311272](https://bugs.mojang.com/browse/MC-311272) - The game crashes when referenced loot context parameters are not provided by certain loot tables - [MC-311323](https://bugs.mojang.com/browse/MC-311323) - Locating a structure creates an empty region file for every candidate chunk in ungenerated terrain - [MC-311414](https://bugs.mojang.com/browse/MC-311414) - Players can teleport arbitrary distances by using a desynced carrot on a stick on a pig - [MC-311419](https://bugs.mojang.com/browse/MC-311419) - Breaking a falling block with another one on top causes the top block to briefly become invisible when landing, revealing unlit block particles - [MC-311453](https://bugs.mojang.com/browse/MC-311453) - Particles from feeding flowers to brown mooshrooms cannot be seen by other players - [MC-311454](https://bugs.mojang.com/browse/MC-311454) - Particles from water evaporating in the Nether are not properly displayed - [MC-311579](https://bugs.mojang.com/browse/MC-311579) - The player can see through blocks when inside snow layers - [MC-311593](https://bugs.mojang.com/browse/MC-311593) - Spears' charging animation jitters from another player's perspective when swapping to a spear and charging it in the same tick - [MC-311722](https://bugs.mojang.com/browse/MC-311722) - Pressing Windows+↓ in fullscreen mode incorrectly restores the game window to a borderless windowed state ![An abandoned camp with a collapsed tent, unlit campfire and some green cushions.](https://launchercontent.mojang.com/v2/images/camp1280x720.jpg) --- # Minecraft: Java Edition 26.2 Chaos Cubed has landed in Minecraft Java Edition! Explore a striking cave biome filled with bubbling sulfur pools, build with sulfur and cinnabar, and discover the sulfur cube's curious appetite for blocks! From bouncing and sliding to explosive surprises, this unpredictable mob unlocks exciting new ways to build, compete, and survive. Play Chaos Cubed today in Minecraft! Happy mining! ## New Features - Added the Sulfur Cube mob - Added the Sulfur Caves biome - Added the Cinnabar and Sulfur block sets - Added the Sulfur Spike and Potent Sulfur block - Added a new Music Disc with the track "Bounce" by fingerspit - Added 5 new music tracks by fingerspit - Added the Friends List - Added new settings for Friends List in Online Options - Added experimental support for rendering the game through Vulkan - Added new option "Graphics API" in Video Settings - Added Swiss French, Chuvash, Gallo, Uzbek, and Võro language support to the game ### Sulfur Cube ![Steve is riding a Pig in a Boat leashed to a Blue Ice absorbed Sulfur Cube, holding a Diamond Spear.](https://launchercontent.mojang.com/v2/images/26.21.jpg) - Added the Sulfur Cube mob - Spawns in the new Sulfur Caves biome - When a Player interacts with it while holding a block: - The Sulfur Cube absorbs the block - Its AI is disabled - While a block is absorbed: - The Sulfur Cube becomes a physical object: - It does not take fall or Player damage - Players can punch and push it - It assumes one of the archetypes (listed below), changing its physical properties to match the absorbed block - The Player can interact with it using Shears: - This removes the absorbed block - The Sulfur Cube's AI is re-enabled - The Sulfur Cube will follow a Player holding a block it can absorb - The Sulfur Cube can look for nearby block items and move towards them to absorb them - When killed, the Sulfur Cube splits into two smaller Sulfur Cubes - Small Sulfur Cubes can be fed Slime Balls to grow into large Sulfur Cubes - A large Sulfur Cube can be picked up using an empty Bucket - Sulfur Cubes cannot enter Boats, but can ride Minecarts - Dispensers can: - Insert and swap blocks inside a Sulfur Cube - Use Shears to remove the held block - Spawn a Sulfur Cube from a Bucket of Sulfur Cube - Pufferfish are not scared by Sulfur Cubes #### Sulfur Cube Archetypes ![Noor and Sunny are playing football, using the birch absorbed Sulfur Cube as a ball in a stadium. Steve is goalkeeping.](https://launchercontent.mojang.com/v2/images/26.22.jpg) - Each archetype is characterized by the speed of the Sulfur Cube when hit, how bouncy it is when colliding with blocks and collidable entities, as well as its ground friction, air drag, and if it floats in liquids - There are the following archetypes: - Regular: medium speed, medium bounciness, medium ground friction, and low air drag - It is buoyant - Used when absorbing loose mineral and soil blocks - Bouncy: fast speed, high bounciness, medium ground friction, and low air drag - It is buoyant - Used when absorbing wooden blocks - Slow Bouncy: slow speed, high bounciness, medium friction, and medium air drag - Used when absorbing stone-like blocks - Slow Flat: slow speed, low bounciness, medium ground friction, and medium air drag - Used when absorbing metal blocks - Fast Flat: fast speed, low bounciness, medium ground friction, and low air drag - Used when absorbing organic blocks - Light: slow speed, high bounciness, medium ground friction, and high air drag - It is buoyant - Used when absorbing wool blocks - Fast Sliding: fast speed, no bounciness, low ground friction, and low air drag - Used when absorbing icy blocks - Slow Sliding: slow speed, no bounciness, low ground friction, and low air drag - Used when absorbing shroom blocks - There are also the following special archetypes: - High Resistance: very slow, low drag with low bounce with high friction - Used when absorbing Soul Sand and Soul Soil - Sticky: same properties as the Fast Flat archetype, but sticks with extremely high ground friction and no bounce to simulate stickiness - Used when absorbing a Honeycomb Block - Explosive: similar properties to the Regular archetype with a slightly higher air drag - Used when absorbing a TNT block - Absorbed TNT can be primed by Redstone, fire sources (including a Dispenser with a Flint and Steel), or nearby explosions - When primed by fire or Redstone, absorbed TNT uses a fuse time of 6 seconds - When primed by an explosion, absorbed TNT uses a randomized fuse time between 0.75 and 3 seconds - Sulfur Cubes with an absorbed, primed TNT block cannot be picked up with a Bucket - Absorbed, primed TNT blocks cannot be sheared out - On explosion, no small Sulfur Cubes are spawned - Hot: same properties as the Regular archetype, but damages entities on contact - Used when absorbing a Magma Block ### Sulfur Caves Biome - Added Sulfur Caves biome - Generates naturally underground - The Sulfur Caves biome has bands of Sulfur and Cinnabar - Spawns the new Sulfur Cube mob as well as Cave Spiders - Generates with Sulfur Pools which contain Potent Sulfur ![Four Minecart with Chests are being pulled from a Nether Portal in a Sulfur Cave Biome.](https://launchercontent.mojang.com/v2/images/26.23.jpg) ### Sulfur Spring - Is a new feature which generates naturally above the Sulfur Caves biome - Consists of Sulfur, Potent Sulfur, and Magma Blocks - Sulfur Springs come in 4 different size variants: - Small - Medium - Large - Extra Large ### Cinnabar and Sulfur Block Sets ![A cute chimney made of Polished Cinnabar blocks and Cinnabar Bricks in a Forest Biome.](https://launchercontent.mojang.com/v2/images/26.25.jpg) - Added Cinnabar and Sulfur stone block sets - Each of them has Polished and Bricks variants - Each variant has its Slabs, Stairs and Walls blocks - Added Chiseled Cinnabar and Chiseled Sulfur blocks ### Potent Sulfur - Is a new block that generates naturally in Water Pools inside the Sulfur Caves biome - Produces bubbles which rise up to 4 Water source blocks above it - When placed underneath up to 4 Water source blocks, it generates a cloud of nausea-causing gas on the water surface - This cloud spreads across adjacent water with a maximum radius of 3 blocks - Can be crafted from 9 Sulfur blocks - When placed above a Magma Block or a Lava Block, and under 1-4 Water source blocks, it creates a geyser - With Magma underneath, the geyser will erupt at random intervals, shooting a plume of water particles upwards and applying an upward impulse to entities above it - With Lava underneath, the geyser eruption is continuous, but with slightly muted sounds compared to the eruption from a Magma Block - Geyser eruptions emit game events at the beginning and at the end of the eruption that can be detected by Sculk Sensors ### Sulfur Spike ![Efe standing next to a cozy Cinnabar house, looking up to a Glowstone absorbed Sulfur Cube.](https://launchercontent.mojang.com/v2/images/26.26.jpg) - Is a new block that generates naturally on Sulfur blocks inside the Sulfur Caves biome - Forms a stalactite if placed on the ceiling or a stalagmite if placed on the floor - Can be combined to form longer stalactites & stalagmites - Stalactites and stalagmites merge if the tips are next to each other, unless you sneak while placing - Sulfur Spike stalactites can grow when placed under a Sulfur block - Stalagmites will break if they're not attached to something below - Stalactites fall down if not attached to something above - Being hit by a falling stalactite hurts because they are sharp! - Stalagmites are not sharp and do not hurt more to land on - Thrown Tridents break Sulfur Spikes - Four Sulfur Spikes can be crafted into one Sulfur ### Music and Sound - Added a new music disc: - "Bounce" by fingerspit - Has a chance of being found in Mineshaft Chest Minecarts that are located in a Sulfur Caves biome - Has a comparator output of 8 when played in a Jukebox - Added 5 new background music tracks by fingerspit: - "Shores" - "Memories" - "Nightly" - "Home" - "Ebb" - Added block sounds for Sulfur, Potent Sulfur, and Cinnabar - Added mob sounds for Sulfur Cube and small Sulfur Cube - Added sounds for when using a bucket on a Sulfur Cube - Added sounds for geyser eruptions ### Advancements - Added new "Uh Oh" Husbandry advancement for having a Sulfur Cube absorb a TNT block ![Steve pushing a Zombie in a minecart towards another minecart with TNT-absorbed Sulfur Cube on top of a mineshaft bridge with rails in a Sulfur Cave Biome.](https://launchercontent.mojang.com/v2/images/26.27.jpg) ### Friends List - Added a Friends List, accessible from a new Friends button on the Title Screen and the Pause Menu - The Friends List can be opened with a new key bind (default: "O") - The Friends button shows a notification badge with the number of incoming friend requests, up to 5 (a "more" indicator is shown beyond that) - The Friends List is presented as an overlay with two tabs: - Friends: shows your current friends, lets you remove them, and lets you send a new friend request by Profile Name - Pending: shows incoming friend requests (which can be accepted or declined) and outgoing friend requests (which can be canceled) - The presence of your friends is shown under their name in the Friends List as one of the following: - "Offline" - "Online" - "Online (LAN)" - "Online (World)" - "Online (Realm)" - "Online (Server)" - Sending, accepting, declining, cancelling, and removing actions are confirmed in the UI and show a clear error message when the service is unreachable, rate limited, or the requested Profile Name does not exist - Friend changes that happen while the game is running are shown through toast notifications: - When a friend request is sent - When a friend request is received - When an outgoing friend request is accepted by the other player - Toasts show the other player's face when the skin is available - The Friends List checks for updates once per minute while the Friends List is open, or every 5 minutes otherwise - The first time the Friends button is shown on the Title Screen, a confirmation dialog is presented to opt in to the Friends List - The Friends List, friend request privacy, and the Microsoft account safety settings link are managed from the new "Friends List" section in Online Options - Players that have their chat settings set to "Friends Only" on their Xbox profile will only see chat messages from other players if they are friends ![A new user interface for Friends List feature.](https://launchercontent.mojang.com/v2/images/26.28.jpg) ### Friends List Settings in Online Options - Added a setting to control the availability of the Friends List and its features in Online Options - Added an "In-Game Notification" toggle in Online Options to control whether Friends List toasts appear while in a world - Added an "Allow Requests" toggle in Online Options to control whether other players can send you friend requests - Added a "Visibility" option in Online Options screen to control how much activity is shared with friends (default: "All") - "Full": shares in-game activity - "Hidden": no activity shared, appearing as "Offline" to friends - "Limited": activity sharing limited to "Online" & "Offline" - Added an "Xbox Settings..." button in Online Options that opens the Microsoft account privacy and online safety settings ### Vulkan Support - As [previously announced](https://www.minecraft.net/article/another-step-towards-vibrant-visuals-for-java-edition), we intend to switch the game from OpenGL to Vulkan - Vulkan is not supported by older hardware or drivers - OpenGL will be used as a fallback on those cases - The current requirement is Vulkan 1.2 with dynamic rendering and push descriptors, but this requirement may increase or decrease over time - This is currently an experimental rendering backend, and may not be as performant or stable - Please report any bugs you find with it to [our bug tracker](https://report.bugs.mojang.com) - Under Vulkan, we will prefer your **dedicated graphics card** over any integrated graphics, which is a change from OpenGL - You can see which backend is being used in your F3 debug overlay (in the `system_specs` section) - On macOS, we use MoltenVK to translate Vulkan to Metal ### "Graphics API" Video Setting - This is a new option available in the "Video Settings" - There are three values: **Default**, **Prefer Vulkan (Experimental)** and **Prefer OpenGL** - "Default" may be changed at our discretion, and we recommend this for all users unless you experience issues and need to change - Currently, it is the same as "Prefer OpenGL" - "Prefer Vulkan (Experimental)" will attempt to render using Vulkan, but fall back to OpenGL if it doesn't work - Vulkan support is experimental for now, and using it might reduce performance or cause instability on some systems - "Prefer OpenGL" will attempt to render using OpenGL, but fall back to Vulkan if it doesn't work #### Startup and Fallback Behavior - If the game crashes at startup with "Prefer Vulkan (Experimental)" set, the setting will automatically be changed to "Default" - When set to "Default", the game will still attempt to gather systems information about Vulkan at startup - If the game crashes at startup with "Default" set, the setting will automatically be changed to "Prefer OpenGL" - With "Prefer OpenGL" set, no interaction will be made with Vulkan in case that causes crashes ## Changes - Tweaked various mobs hitbox, eye height, and rider positions - Hoglins are now considered hostile and do not spawn on Peaceful difficulty - Fixed baby Hoglin's and Zoglin's left ear texture so it's properly mirrored - Updated the Main Menu background panorama - When the game is overwhelmed with particles, instead of removing existing particles in flight, it will now randomly select for particles to render or not render to stay under the particle limit - This change is especially visible with a large number of new geyser eruptions - As the host of a world, changing the game mode with F3 + F4 or with commands changes the default game mode of the world - Upgrading certain worlds from before 26.1 can now be faster - Respawning (as a spectator) in a hardcore world no longer turns off the `spectators_generate_chunks` game rule - Removed Touchscreen Mode > **Developer's Note**: _Touchscreen mode has been poorly implemented and not properly supported for a long time. We are removing this feature in this release. To provide your feedback on this topic, head over to [the feedback site](https://aka.ms/mctouchscreenjavafeedback)._ ### Minor Tweaks to Blocks, Items and Entities - Beds are now slightly more bouncy to match Bedrock - When an entity bounces off of a block or other collidable entity, it emits a vibration of frequency 2 > **Developer's Note**: _We have tweaked how Beds and Slime Blocks restitute entity velocity after collisions. For instance, when air drag is removed via the entity attribute, Slime Blocks will now correctly bounce Mobs indefinitely. This may affect player perception of the bounciness of Beds and Slime Blocks._ ### Sounds - Updated sounds for Nautilus jets and Nautilus recovers - Updated hurt and death sounds for one of the Chicken's sound variants ### UI - Added a Friends button to the Title Screen and the Pause Menu - The tooltip for the "Exclusive Fullscreen" video setting now mentions that Adaptive Sync (Nvidia G-Sync, AMD FreeSync) should work when it is enabled and will not work when it is disabled #### World Options Screen - The host of a world now has access to the "Game Mode" and "Allow Commands" buttons in the World Options screen - These buttons are not available in Hardcore #### Open to LAN Screen - The host of a world can now configure the "Game Mode" and "Allow Commands" values for other players in your world (separate from themselves) - These buttons are available under a "Settings for Other Players" header in the Open to LAN screen ![A small Sulfur Cube rising on top of a geyser on a surface Sulfur Cave biome. Many others are happily bouncing on the water in the background.](https://launchercontent.mojang.com/v2/images/26.24.jpg) ## Technical Changes - The Data Pack version is now 107.1 - The Resource Pack version is now 88.0 - Profiling the game with Tracy (launching with `--tracy`) now includes GPU timings - Rendering now uses a reversed depth buffer, which helps with Z-fighting on most hardware - The `fps` F3 screen entry will now report which type of present mode is used (e.g. `mailbox` or `fifo relaxed`), as opposed to just `vsync` - The `particle_render_stats` now includes the counts of different particle groups (`SQ` for `single quads`, `NR` for `no render`, `EG` for `elder guardians` and `IP` for `item pickup`), as well as the total - A player's score will no longer be displayed in the player tab overlay if the player doesn't have the objective - Updates to telemetry ### Server Properties - Added `chat-spam-threshold-seconds` and `command-spam-threshold-seconds` properties, separating the spam thresholds for chat vs commands - Both thresholds are set to 10 by default, which was the existing threshold for combined command+chat spam - These thresholds configure the mechanism that automatically kicks players for sending too many chat messages or commands - The value describes how many seconds worth of spamming a player must do to get kicked, where each message a player sends increases the counter by 1 second - The counter is decremented once per tick (equivalent to 1/20th of a second), and a player is kicked if their counter reaches the configured threshold - Either threshold can be set to 0 to disable kicks for the associated type of spam - Examples of message rates that would cause a kick, given the default threshold of 10: - Sending 11 messages in 1 second - Sending 14 messages in 2 seconds - Sending 21 messages in 10 seconds ### Minecraft Server Management Protocol 3.0.0 - The management server now starts before the Minecraft server starts - Most notably, this means the heartbeat will be sent while the world is loading and potentially upgrading - The `rpc.discover` and `notification/server/status` methods are now accessible before the dedicated server spins up - The server will return an error when other methods are called during this time ### Telemetry #### New Property in World Events - `server_session_id` a unique identifier for a multiplayer session, shared across all players in that session - A "session" is defined as a continuous period where at least one player was in the server - This property is required and not affected by the opt-in setting #### New Required Events - `graphics_capabilities` - This is a new event that posts on startup, and informs us of the capabilities of the graphics device used to play the game - Added new property: `backend_name` - This will be `Vulkan` or `OpenGL`, and will help us understand which Graphics API players are using - Added new property: `backend_failure_reason` - This will be a list of short error codes, for example `vulkan_device_version_too_low`, which will help us identify any issues with our targeted Vulkan requirements - Added new property: `backend_failure_message` - This will be short and vague messages, such as `Failed to find the GLFW platform surface extensions`, which will help us narrow down issues if players are experiencing issues running with Vulkan - Added new property: `backend_failure_missing_capabilities` - This will be a list of missing capabilities from Vulkan, for example `VULKAN_CORE_1_2, VK_KHR_dynamic_rendering`, which will help us know which capabilities players would need in order to use Vulkan ## Data Pack Version 107.1 ### Sulfur Cube Archetype Registry Added data-driven `minecraft:sulfur_cube_archetype` registry. Elements are loaded from `data//sulfur_cube_archetype/.json`. Entry format: Object with fields: - `items` - item tag that contains all items that can be fed to Sulfur Cubes of this archetype - `buoyant` - boolean indicating if the Sulfur Cube of this archetype floats in liquids - `explosion` - an optional field, if present, the Sulfur Cube of this archetype will explode: - `fuse` - positive integer, the fuse time when ignited - `power` - non-negative integer, the explosion power - `causes_fire` - boolean, whether the explosion causes fire - `contact_damage` - an optional field, if present, the Sulfur Cube of this archetype will deal damage to entities when they come in contact with it - `amount` - non-negative float, amount of damage dealt - `damage_type` - damage type - `attribute_to_source` - boolean indicating if the damage is attributed to the Sulfur Cube - `attribute_modifiers` - a list of objects with fields: - `attribute` - entity attribute, the attribute to modify - `id` - namespaced ID, unique identifier for the modifier - `amount` - double, the amount to modify the attribute by - `operation` - string, how to modify the attribute, one of `add_value`, `add_multiplied_base`, and `add_multiplied_total` - `knockback_modifiers` - a field that contains various modifier fields for the Sulfur Cube's knockback magnitude and direction - `horizontal_power` - float that represents the horizontal power of the knockback - `vertical_power` - float that represents the vertical power of the knockback - `sound_settings` - a field that contains various sound settings for the Sulfur Cube - `hit_sound` - sound event that is played when the Sulfur Cube is hit while it has a block inside - `push_sound` - sound event that is played when the Sulfur Cube is pushed while it has a block inside - `push_sound_impulse_threshold` - float that specifies the smallest impulse required to trigger the push sound effect on the Sulfur Cube - `push_sound_cooldown` - float that specifies the cooldown in seconds for the push sound effect ### Commands - When granting or revoking several advancements, the command output will now report how many advancements changed state across all players - When granting or revoking advancements or a criterion on several players, the command output will now report the number of players that any change applied to - Team color arguments (used in `team modify [name] color` and `waypoint modify [name] color`) now accept only lowercase names with underscores - e.g. only `dark_purple` is accepted and not `darkpurple` or `DarkPurple` - Values now match the color names in text components - The `execute on owner` command will now consider Vexes as owned by their Evoker #### Added `unpublish` - Allows to unpublish the integrated server if there is one present ### Attributes #### Added `minecraft:bounciness` - Determines what portion of the velocity is restituted after the entity collides with blocks and collidable entities - When landing on bouncy blocks, like Beds and Slime Blocks, the higher bounciness (of the block or the entity) is applied - Accepts values between `0.0` and `1.0` - Default value: `0.0` - no velocity is restituted - Maximum value: `1.0` - full velocity is restituted, collisions with blocks and collidable entities will have no effect on lowering the velocity #### Added `minecraft:friction_modifier` - Determines how much ground friction is applied to the entity in regard to the block it is on - Accepts values between `0.0` and `2048.0` - Default value: `1.0` - friction of blocks is not modified - Minimum value: `0.0` - friction of blocks is reduced to zero - Values higher than `1.0` increase the friction applied to the entity from the blocks it is on #### Added `minecraft:air_drag_modifier` - Determines how much drag is applied to an entity while in the air - Accepts values between `0.0` and `2048.0` - Default value: `1.0` - the entity uses existing drag when moving in the air - Minimum value: `0.0` - no drag is applied to the entity - Values higher than `1.0` increase the drag applied to the entity when moving through the air #### Added `minecraft:name_tag_distance` - Controls how far away in blocks the name tag of an entity is visible - The name cannot be visible if the entity is not visible - Accepts values between `0.0` and `512.0` - Default value: `64.0` #### Added `minecraft:below_name_distance` - Controls how far away in blocks the `below_name` scoreboard display is visible - The display cannot be visible if the entity is not visible - Accepts values between `0.0` and `512.0` - Default value: `10.0` #### Changes to `minecraft:knockback_resistance` - The minimum value was changed from `0.0` to `-2.0` ### Data Components #### Added `minecraft:sulfur_cube_content` - Represents the item that is absorbed by the Sulfur Cube - Format: item that is absorbed by the Sulfur Cube - e.g. `minecraft:sulfur_cube_content=green_wool` ### Entity Data - Removed the `HurtByTimestamp` tag from Living Entities, `ticks_since_last_hurt_by_mob` should be used instead ### Block Entity Data - The `minecraft:bed` block entity has been removed ### Damage Types - Added a new `minecraft:sulfur_cube_hot` damage type ### Predicates #### Entity Predicates Entity predicate format has changed from a structure with multiple optional fields to one similar to data component maps. For example: previously, `effects` was an optional field: { "effects": {...} } In this version it has become a component-like sub-predicate entry: { "minecraft:effects": {...} } The main functional changes are: - All keys in entity predicates are now namespaced IDs - Since namespaced IDs can be written without a namespace (defaulting to the `minecraft` namespace), existing field names are still valid - Exception: the field `type` has been renamed to `minecraft:entity_type` - Unrecognized sub-predicate components are now rejected (previously, unknown fields were ignored) Existing type-specific sub-predicates have been renamed and moved to top-level. - `minecraft:lightning` to `minecraft:type_specific/lightning` - `minecraft:fishing_hook` to `minecraft:type_specific/fishing_hook` - `minecraft:player` to `minecraft:type_specific/player` - `minecraft:raider` to `minecraft:type_specific/raider` - `minecraft:sheep` to `minecraft:type_specific/sheep` - `minecraft:slime` to `minecraft:type_specific/cube_mob` as it now includes Sulfur Cubes in addition to Slimes and Magma Cubes For example: { "type_specific": { "type": "minecraft:player", "looking_at": { "type": "minecraft:ender_dragon" } } } becomes { "minecraft:type_specific/player": { "looking_at": { "minecraft:type": "minecraft:ender_dragon" } } } ##### Added `minecraft:entity_tags` entity sub-predicate This predicate matches entity tags (i.e. ones set with the `/tag` command). Fields: - `any_of` - optional list of strings, if present the matched entity must have at least one of the listed tags - `all_of` - optional list of strings, if present the matched entity must have all the listed tags - `none_of` - optional list of strings, if present the matched entity must have none of the listed tags ### World Generation - Added `matching_biomes` world generation-type block predicate type which checks if the block position matches one of the specified biomes - Format: object with fields: - `biomes` - biome ID, list of biome IDs, or hash-prefixed biome tag: the biomes to match - `tree` feature configuration's `below_trunk_provider` block state provider no longer has a default value #### Surface Rules ##### Changes to `noise_threshold` Condition - Added new `is_3d` field - boolean, true if the noise should be evaluated in 3D - If not specified, defaults to `false` #### Dimension Types - The field `infiniburn` now also accepts an ID and a list of IDs in addition to a tag #### Configured Features ##### Added `minecraft:sequence` Feature Type Generates a list of Placed Features in order. If any feature in the list is not placed, the following features will also be skipped. Format: object with fields: - `features` - list of Placed Features or hash-prefixed Placed Feature tag, the features to generate ##### Added `minecraft:template` Feature Type Places one template randomly chosen from the given weighted list of namespaced IDs. By default, the template will be spawned randomly rotated, centered around the origin. Format: object with fields: - `templates` - weighted list of structure template entries. Each structure template entry is composed of a namespaced ID and a list of rotations to randomly choose from - `id` - The template's namespaced ID - `rotations` - Optional list of rotations to choose from and apply to this template if it is picked - Allowed values: `none`, `clockwise_90`, `180`, `counterclockwise_90` - If not specified, defaults to all allowed values ##### Added `minecraft:weighted_random_selector` Feature Type Randomly selects one of the given features to generate based on their weights. Format: object with fields: - `features` - list of Placed Features and their weights ##### Changes to `minecraft:pointed_dripstone` - Renamed Feature Type `pointed_dripstone` to `speleothem` - Added field `base_block` - block state, describes the block forming the base of the speleothem - Added field `pointed_block` - block state, describes the block creating the columns of the speleothem - Added field `replaceable_blocks` - block ID, list of block IDs, or hash-prefixed block tag describing which blocks this feature can generate on - Renamed field `chance_of_taller_dripstone` to `chance_of_taller_generation` ##### Changes to `minecraft:dripstone_cluster` - Renamed Feature Type `dripstone_cluster` to `speleothem_cluster` - Added field `base_block` - block state, describes the block forming the base of the speleothem - Added field `pointed_block` - block state, describes the block creating the columns of the speleothem - Added field `replaceable_blocks` - block ID, list of block IDs, or hash-prefixed block tag describing which blocks this feature can generate on - Renamed field `dripstone_block_layer_thickness` to `speleothem_block_layer_thickness` - Renamed field `chance_of_dripstone_column_at_max_distance_from_center` to `chance_of_speleothem_at_max_distance_from_center` - Renamed field `max_distance_from_edge_affecting_chance_of_dripstone_column` to `max_distance_from_edge_affecting_chance_of_speleothem` ##### Changes to `minecraft:large_dripstone` - Added field `replaceable_blocks` - block ID, list of block IDs, or hash-prefixed block tag describing which blocks this feature can generate on - The maximum allowed value for `column_radius` has been reduced from 19 to 16 to prevent features from reaching beyond neighboring chunks - Wind offset is now clamped to ensure the full dripstone (radius + wind) stays within neighboring chunk bounds ##### Changes to `minecraft:lake` - Added field `can_place_feature` - block predicate, describes which blocks this feature can be placed on - Added field `can_replace_with_air_or_fluid` - block predicate, describes which blocks this feature can replace with air or the provided `fluid` block - Added field `can_replace_with_barrier` - block predicate, describes which blocks this feature can replace with the provided `barrier` block ##### Changes to `minecraft:geode` - The fields `cannot_replace` and `invalid_blocks` in the `blocks` section of the feature configuration now also accept an ID and a list of IDs in addition to a tag ##### Changes to `minecraft:root_system` - The field `root_replaceable` in the feature configuration now also accepts an ID or a list of IDs in addition to a tag - New field `level_test_distance` indicating how far away from the origin the root system will check the existing terrain - New field `max_level_deviation` indicating how far the ground level can deviate from the original ground level at these test positions ##### Changes to `minecraft:vegetation_patch` - The field `replaceable` in the feature configuration now also accepts an ID and a list of IDs in addition to a tag ##### Changes to `minecraft:waterlogged_vegetation_patch` - The field `replaceable` in the feature configuration now also accepts an ID and a list of IDs in addition to a tag ##### Changes to `minecraft:multiface_growth` - Field `block` is now mandatory (defaulted to `minecraft:grow_lichen`) #### Structure Processors ##### Changes to `minecraft:block_rot` - Now evaluates the block state produced by previous block processors in the chain, instead of always using the original block defined in the structure - The first processor in the chain still always evaluates against the original structure-defined block ##### `minecraft:protected_blocks` - The field `value` now also accepts an ID or a list of IDs in addition to a tag #### Density Functions ##### Added `minecraft:interval_select` Selects between a number of Density Functions based on an input Density Function and a set of threshold values. Format: object with fields: - `input` - Density Function, the value to be compared with any given `thresholds` - `thresholds` - non-empty list of floats, the threshold values to compare `input` with - If `input < thresholds[i]`, the result of `functions[i]` will be selected - If the input is greater than the last threshold value, the last function will be selected - Must be one fewer element in `thresholds` than in `functions` - `functions` - list of at least 2 Density Functions, the resulting functions to be selected from - Must be one more element in `functions` than in `thresholds` ##### Removed `minecraft:weird_scaled_sampler` - This Density Function has been removed, with its functionality replaced by `interval_select` - When `rarity_value_mapper` was `type_1`, equivalent to: - `interval_select` with thresholds `-0.75, -0.5, 0.5, 0.75` - Selected functions follow: `abs(rarity * noise(x/rarity, y/rarity, z/rarity))` - Corresponding rarity values: `0.5, 0.75, 1.0, 2.0, 3.0` - When `rarity_value_mapper` was `type_2`, equivalent to: - `interval_select` with thresholds `-0.5, 0.0, 0.5` - Selected functions follow: `abs(rarity * noise(x/rarity, y/rarity, z/rarity))` - Corresponding rarity values: `0.75, 1.0, 1.5, 2.0` ### Tags #### Block Tags - Added `#suppresses_bounce` - all blocks that suppress the bounciness of entities when colliding with them - Added `#causes_periodic_geyser_eruptions` - all blocks that cause periodic eruptions of Potent Sulfur blocks - Added `#causes_continuous_geyser_eruptions` - all blocks that cause continuous eruptions of Potent Sulfur blocks - Added `#glazed_terracotta` and `#concrete` collection tags - Renamed `#concrete_powder` collection tag to `#concrete_powders` - Added `#shears_extreme_breaking_speed` for blocks that can be broken with shears with speed 15 - Added `#shears_major_breaking_speed` for blocks that can be broken with shears with speed 5 - Added `#shears_minor_breaking_speed` for blocks that can be broken with shears with speed 2 - Added `#speleothems` for blocks which are speleothems like Pointed Dripstone and Sulfur Spike - Added the following tags for blocks which some mobs are immune to. These have an effect on dismounting and valid surroundings of spawn placements for some mobs, but do not have an effect on pathfinding - `#fox_immune_to` - `#polar_bear_immune_to` - `#snow_golem_immune_to` - `#stray_immune_to` - `#wither_immune_to` - `#wither_skeleton_immune_to` - `#default_immune_to` - this tag is intentionally left empty #### Item Tags - Added `#glazed_terracotta`, `#concrete`, and `#concrete_powders` collection tags - Added `#sulfur_cube_food` - all items that can be fed to a small Sulfur Cube - Added `#sulfur_cube_swallowable` - all items that can be placed inside a large Sulfur Cube - Added the following tags for items that can be placed inside a Sulfur Cube to determine its archetype: - `#sulfur_cube_archetype/regular` - `#sulfur_cube_archetype/bouncy` - `#sulfur_cube_archetype/slow_flat` - `#sulfur_cube_archetype/fast_flat` - `#sulfur_cube_archetype/light` - `#sulfur_cube_archetype/fast_sliding` - `#sulfur_cube_archetype/slow_sliding` - `#sulfur_cube_archetype/high_resistance` - `#sulfur_cube_archetype/sticky` - `#sulfur_cube_archetype/hot` - `#sulfur_cube_archetype/slow_bouncy` #### Damage Type Tags - Added `minecraft:sulfur_cube_with_block_immune_to` - all damage types that Sulfur Cubes are immune to when having a block absorbed #### Entity Tags - Added `#not_affected_by_geysers` - entities that are not affected by the upward impulse applied by geyser eruptions ### Game Events #### Added `minecraft:bounce` - Emitted when an entity collides with a block or a collidable entity with non-zero bounciness - Has a vibration frequency of `2` ### Particles #### Added `minecraft:sulfur_cube_goo` - This particle is showing on a Sulfur Cube mob when hopping around - Has no fields #### Added `minecraft:geyser_base` - Spawns as a cloud on the base of an erupting Potent Sulfur block - Format: object with fields: - `water_blocks` - positive integer, scales the particle size and its burst impulse - `burst_impulse_base` - float, scales the initial burst impulse #### Added `minecraft:geyser_poof` - Spawns as a cloud on the base of an erupting Potent Sulfur block - Format: object with fields: - `water_blocks` - positive integer, scales the particle size and its burst impulse - `burst_impulse_base` - float, scales the initial burst impulse #### Added `minecraft:geyser_plume` - Spawns as an upwards stream above an erupting Potent Sulfur block - Format: object with fields: - `water_blocks` - positive integer, scales the particle size and its burst impulse #### Added `minecraft:geyser` - An emitter particle that spawns the `geyser_base`, `geyser_poof`, and `geyser_plume` particles above an erupting Potent Sulfur block - Format: object with fields: - `water_blocks` - positive integer, scales the particle size and its burst impulse ### Game Test Environments #### Added `minecraft:difficulty` - Sets the difficulty of the game test environment - Format: object with fields: - `difficulty` - the difficulty ID to set, one of `peaceful`, `easy`, `normal`, `hard` ### World Presets - Added a new `minecraft:flat_all_dimensions` world preset - This preset does not show up by default in the Create New World screen ![Steve swimming inside an underground Sulfur Cave filled with water avoiding big Sulfur Spikes with a Glow Squid accompanying him.](https://launchercontent.mojang.com/v2/images/26.29.jpg) ## Resource Pack Version 88.0 - Beds, Signs, and Hanging Signs now use block models instead of built-in entity models - The text on Signs and Hanging Signs cannot be configured yet - The `minecraft:beds` atlas has been removed - The `minecraft:signs` atlas has been removed ### Block Sprites - Added new Block textures: - `block/chiseled_cinnabar.png` - `block/chiseled_sulfur.png` - `block/cinnabar.png` - `block/cinnabar_bricks.png` - `block/polished_cinnabar.png` - `block/polished_sulfur.png` - `block/potent_sulfur.png` - `block/sulfur.png` - `block/sulfur_bricks.png` - `block/sulfur_spike_down_base.png` - `block/sulfur_spike_down_frustum.png` - `block/sulfur_spike_down_middle.png` - `block/sulfur_spike_down_tip.png` - `block/sulfur_spike_down_tip_merge.png` - `block/sulfur_spike_up_base.png` - `block/sulfur_spike_up_frustum.png` - `block/sulfur_spike_up_middle.png` - `block/sulfur_spike_up_tip.png` - `block/sulfur_spike_up_tip_merge.png` - Beds now use block models and textures, replacing `` with the respective bed's color's name - `block/bed_down.png` - `block/bed_head_north.png` - `block/_bed_foot_east.png` - `block/_bed_foot_south.png` - `block/_bed_foot_up.png` - `block/_bed_foot_west.png` - `block/_bed_head_east.png` - `block/_bed_head_up.png` - `block/_bed_head_west.png` - Signs and Hanging Signs now use block models and textures, replacing `` with the sign's wood type (e.g. `mangrove`) - `block/_sign.png` - `block/_hanging_sign.png` - The process of upgrading your pack's Bed, Sign, and Hanging Sign textures can be assisted by using this automated [Slicer](https://github.com/Mojang/slicer/releases) tool - Renamed `block/quartz_pillar.png` and `block/purpur_pillar.png` to append `_side` as a suffix ### Item Sprites - Added new Item sprites: - `item/sulfur_cube_bucket.png` - `item/sulfur_spike.png` - `item/music_disc_bounce.png` ### UI Sprites - Added new textures for the Sign edit screen background, replacing `` with the sign's wood type (e.g. `mangrove`): - `gui/sign/.png` - Added new UI sprites: - `gui/sprites/friends/accept.png` - `gui/sprites/friends/accept_highlighted.png` - `gui/sprites/friends/cancel.png` - `gui/sprites/friends/friends.png` - `gui/sprites/friends/illustrations_00.png` - `gui/sprites/friends/list_separator_top.png` - `gui/sprites/friends/loading.png` - `gui/sprites/friends/reject.png` - `gui/sprites/friends/reject_highlighted.png` - `gui/sprites/friends/remove.png` - `gui/sprites/friends/background.png` - `gui/sprites/friends/button.png` - `gui/sprites/friends/button_disabled.png` - `gui/sprites/friends/button_highlighted.png` - `gui/sprites/friends/toast_background.png` - `gui/sprites/pause_menu/player_reporting.png` - `gui/sprites/pause_menu/bug.png` - `gui/sprites/pause_menu/social_interactions.png` ### Entity Textures - Added new Entity textures: - `entity/sulfur_cube/sulfur_cube_outer.png` - `entity/sulfur_cube/sulfur_cube_inner.png` - `entity/sulfur_cube/sulfur_cube_outer_small.png` - `entity/sulfur_cube/sulfur_cube_inner_small.png` ### Sounds - Added sounds for the Sulfur Block: - `block.sulfur.break` - `block.sulfur.hit` - `block.sulfur.place` - `block.sulfur.step` - `block.sulfur.fall` - Added sounds for the Potent Sulfur Block: - `block.potent_sulfur.break` - `block.potent_sulfur.hit` - `block.potent_sulfur.place` - `block.potent_sulfur.step` - `block.potent_sulfur.fall` - `block.potent_sulfur.noxious_gas` - Added sounds for the Cinnabar Block: - `block.cinnabar.break` - `block.cinnabar.hit` - `block.cinnabar.place` - `block.cinnabar.step` - `block.cinnabar.fall` - Added sounds for the Sulfur Cube: - `entity.sulfur_cube.jump` - `entity.sulfur_cube.squish` - `entity.sulfur_cube.hurt` - `entity.sulfur_cube.death` - `entity.sulfur_cube.absorb` - `entity.sulfur_cube.eject` - `entity.sulfur_cube.bounce` - `entity.sulfur_cube.regular.hit` - `entity.sulfur_cube.regular.push` - `entity.sulfur_cube.bouncy.hit` - `entity.sulfur_cube.bouncy.push` - `entity.sulfur_cube.slow_flat.hit` - `entity.sulfur_cube.slow_flat.push` - `entity.sulfur_cube.fast_flat.hit` - `entity.sulfur_cube.fast_flat.push` - `entity.sulfur_cube.light.hit` - `entity.sulfur_cube.light.push` - `entity.sulfur_cube.fast_sliding.hit` - `entity.sulfur_cube.fast_sliding.push` - `entity.sulfur_cube.slow_sliding.hit` - `entity.sulfur_cube.slow_sliding.push` - `entity.sulfur_cube.high_resistance.hit` - `entity.sulfur_cube.high_resistance.push` - `entity.sulfur_cube.sticky.hit` - `entity.sulfur_cube.sticky.push` - `entity.sulfur_cube.hot.hit` - `entity.sulfur_cube.hot.push` - Added sounds for the small Sulfur Cube: - `entity.small_sulfur_cube.jump` - `entity.small_sulfur_cube.squish` - `entity.small_sulfur_cube.hurt` - `entity.small_sulfur_cube.death` - Added sounds for geyser eruptions: - `block.potent_sulfur.geyser_eruption` - `block.potent_sulfur.geyser_eruption_active` - `block.potent_sulfur.geyser_continuous_eruption` - `block.potent_sulfur.geyser_continuous_eruption_active` - Added biome music for Sulfur Caves: - `music.overworld.sulfur_caves` ### Particles - Added new Particle textures: - `particle/noxious_gas_01.png` - `particle/noxious_gas_02.png` - `particle/noxious_gas_03.png` - `particle/noxious_gas_04.png` - `particle/noxious_gas_05.png` - `particle/noxious_gas_06.png` - `particle/noxious_gas_07.png` - `particle/noxious_gas_08.png` - `particle/geyser_base_01.png` - `particle/geyser_base_02.png` - `particle/geyser_base_03.png` - `particle/geyser_base_04.png` - `particle/geyser_base_05.png` - `particle/geyser_base_06.png` - `particle/geyser_base_07.png` - `particle/geyser_base_08.png` - `particle/geyser_plume_01.png` - `particle/geyser_plume_02.png` - `particle/geyser_plume_03.png` - `particle/geyser_plume_04.png` - `particle/geyser_plume_05.png` - `particle/geyser_plume_06.png` - `particle/geyser_plume_07.png` - `particle/geyser_plume_08.png` - `particle/geyser_poof_01.png` - `particle/geyser_poof_02.png` - `particle/geyser_poof_03.png` - `particle/geyser_poof_04.png` - `particle/geyser_poof_05.png` - `particle/geyser_poof_06.png` - `particle/geyser_poof_07.png` - `particle/geyser_poof_08.png` ### Item Models - The following special model types have been removed: - `minecraft:bed` - `minecraft:standing_sign` - `minecraft:hanging_sign` ### Shaders & Post-process Effects - The `core/rendertype_text`, `core/rendertype_text_see_through`, `core/rendertype_text_intensity`, `core/rendertype_text_intensity_see_through`, `core/rendertype_text_background`, and `core/rendertype_text_background_see_through` shaders have been replaced by `core/text` and `core/text_background` - Variants are now controlled by shader defines: `IS_GUI`, `IS_SEE_THROUGH`, and `IS_GRAYSCALE` ## Fixed bugs in 26.2 - [MC-1788](https://bugs.mojang.com/browse/MC-1788) - Ocelots do not spawn naturally on Peaceful difficulty in jungles and bamboo jungles - [MC-123068](https://bugs.mojang.com/browse/MC-123068) - The number of advancements said to be revoked from the player is incorrect - [MC-134349](https://bugs.mojang.com/browse/MC-134349) - Making a zoomed-out version of a map fails when using the "Pick Block" key - [MC-174630](https://bugs.mojang.com/browse/MC-174630) - The secondary beacon effect remains when switching the primary effect - [MC-186131](https://bugs.mojang.com/browse/MC-186131) - Piglins and hoglins cannot spawn naturally on Peaceful difficulty - [MC-190728](https://bugs.mojang.com/browse/MC-190728) - The side and bottom surfaces of waterlogged blocks z-fight when looking at them from a distance - [MC-223248](https://bugs.mojang.com/browse/MC-223248) - Spore blossom particles gradually disappear/lessen until the world is reloaded - [MC-229057](https://bugs.mojang.com/browse/MC-229057) - Picking up an axolotl with a lead attached destroys the lead - [MC-236770](https://bugs.mojang.com/browse/MC-236770) - The "Ambient" and "Axolotl" mob caps both display as "A" in the debug overlay - [MC-248758](https://bugs.mojang.com/browse/MC-248758) - Logged error: `Detected setBlock in a far chunk` - [MC-252814](https://bugs.mojang.com/browse/MC-252814) - The `clamp` density function takes a direct input and doesn't allow a reference - [MC-268008](https://bugs.mojang.com/browse/MC-268008) - Players' sneaking state can sometimes desync - [MC-269520](https://bugs.mojang.com/browse/MC-269520) - The game freezes when using /locate in a world without structures enabled - [MC-269786](https://bugs.mojang.com/browse/MC-269786) - "ID" is not capitalized in some strings - [MC-271008](https://bugs.mojang.com/browse/MC-271008) - Unused pixels in bed textures - [MC-276733](https://bugs.mojang.com/browse/MC-276733) - Bed items produce wool particles, but bed blocks produce planks particles - [MC-277395](https://bugs.mojang.com/browse/MC-277395) - The `options.screenEffectScale.tooltip` string displayed when holding your mouse cursor over the "Distortion Effects" slider is improperly capitalized - [MC-277396](https://bugs.mojang.com/browse/MC-277396) - Strings referencing nether portals are inconsistently capitalized - [MC-277487](https://bugs.mojang.com/browse/MC-277487) - The game softlocks when attempting to create a new world if the saves folder is not writable - [MC-279122](https://bugs.mojang.com/browse/MC-279122) - Some strings that contain the abbreviation "id" are improperly capitalized - [MC-279125](https://bugs.mojang.com/browse/MC-279125) - Some "/locate" strings are missing articles before the word "reasonable" - [MC-279126](https://bugs.mojang.com/browse/MC-279126) - The `mco.configure.world.restore.download.question.line1` string incorrectly spells the word "singleplayer" as "single player" - [MC-279137](https://bugs.mojang.com/browse/MC-279137) - The `options.directionalAudio.on.tooltip` string is missing a hyphen between the words "HRTF" and "compatible" - [MC-279138](https://bugs.mojang.com/browse/MC-279138) - The `command.failed` string is missing a conjunction - [MC-279154](https://bugs.mojang.com/browse/MC-279154) - The `advancements.story.enter_the_nether.description` string is missing a serial comma - [MC-279156](https://bugs.mojang.com/browse/MC-279156) - The titles within some player reporting and punishment menus are improperly capitalized - [MC-279158](https://bugs.mojang.com/browse/MC-279158) - The "I know what I'm doing!" button is improperly capitalized - [MC-279182](https://bugs.mojang.com/browse/MC-279182) - Strings used to describe water and lava conversion game rules are missing commas - [MC-279183](https://bugs.mojang.com/browse/MC-279183) - The `options.allowServerListing.tooltip` string is missing a comma - [MC-279184](https://bugs.mojang.com/browse/MC-279184) - The `datapackFailure.title` string is missing an article and always pluralizes the word "pack" - [MC-279186](https://bugs.mojang.com/browse/MC-279186) - The `build.tooHigh` string is missing an article before the word "Height" - [MC-279189](https://bugs.mojang.com/browse/MC-279189) - The `mco.configure.world.leave.question.line1` string is missing a comma - [MC-296343](https://bugs.mojang.com/browse/MC-296343) - Using the mouse wheel to switch between cast fishing rods briefly displays the uncast texture in first-person - [MC-297491](https://bugs.mojang.com/browse/MC-297491) - Glyphs from TTF files are no longer rendered correctly on glow signs - [MC-301325](https://bugs.mojang.com/browse/MC-301325) - Menu music starts for a brief moment during the creation of a new world - [MC-301761](https://bugs.mojang.com/browse/MC-301761) - Elements within the Realms “Players” tab all move down slightly when the “Invited” element is selected using the TAB key - [MC-302144](https://bugs.mojang.com/browse/MC-302144) - Players respawn inside the bottom bedrock layers when the world spawn point is set in the Nether - [MC-302268](https://bugs.mojang.com/browse/MC-302268) - Running multiple commands quickly kicks the player for spamming in multiplayer - [MC-302488](https://bugs.mojang.com/browse/MC-302488) - Strings that contain the term "Safe Mode" are inconsistently capitalized - [MC-302496](https://bugs.mojang.com/browse/MC-302496) - Glowing dragon fireballs no longer show the glowing outline - [MC-302554](https://bugs.mojang.com/browse/MC-302554) - Glowing falling blocks no longer show the glowing outline - [MC-302628](https://bugs.mojang.com/browse/MC-302628) - Dolphins don't dismount minecarts when passing over activator rails - [MC-303401](https://bugs.mojang.com/browse/MC-303401) - Using the "Pick Block" key on maps with `map_post_processing` from a cartography table in Creative mode causes the game to crash - [MC-304113](https://bugs.mojang.com/browse/MC-304113) - Underwater fog is not applied correctly at low render distances - [MC-304862](https://bugs.mojang.com/browse/MC-304862) - Activating a dispenser with a hostile mob spawn egg in Peaceful difficulty consumes the egg and plays a sound - [MC-304873](https://bugs.mojang.com/browse/MC-304873) - The `options.textureFiltering.rgss.tooltip` string is missing a hyphen between the words "shader" and "based" - [MC-304874](https://bugs.mojang.com/browse/MC-304874) - The `options.textureFiltering.anisotropic.tooltip` string is missing a hyphen between the words "hardware" and "based" - [MC-305182](https://bugs.mojang.com/browse/MC-305182) - Textures far away from the player sometimes have black spots (with certain resource packs) - [MC-305239](https://bugs.mojang.com/browse/MC-305239) - Growing world borders reset to their starting size upon reopening the world - [MC-305467](https://bugs.mojang.com/browse/MC-305467) - The ender dragon's death animation effects render in front of worn armor - [MC-305475](https://bugs.mojang.com/browse/MC-305475) - Tripwire above the player's head gets triggered twice when jumping - [MC-306064](https://bugs.mojang.com/browse/MC-306064) - Mobs can be forced to look like they're dying while they aren't by using commands - [MC-306399](https://bugs.mojang.com/browse/MC-306399) - The Spectator mode "Teleport to Player" action only updates the list of valid targets after the Spectator mode menu is hidden - [MC-306401](https://bugs.mojang.com/browse/MC-306401) - Shulkers' name tags display inside them when they're open - [MC-306460](https://bugs.mojang.com/browse/MC-306460) - The game window is one pixel too tall in fullscreen mode - [MC-306622](https://bugs.mojang.com/browse/MC-306622) - The height of chicken jockeys is slightly off - [MC-306673](https://bugs.mojang.com/browse/MC-306673) - The color of sleeping baby snow foxes' eyes is inconsistent with their adult variant - [MC-306685](https://bugs.mojang.com/browse/MC-306685) - The riding position on baby hoglins is too low - [MC-306726](https://bugs.mojang.com/browse/MC-306726) - Transparent blocks flicker as the camera is moved - [MC-306738](https://bugs.mojang.com/browse/MC-306738) - Blocks sometimes remain visible after breaking - [MC-306750](https://bugs.mojang.com/browse/MC-306750) - The texture of snifflets contains unused pixels - [MC-306840](https://bugs.mojang.com/browse/MC-306840) - Dolphins still drown themselves when no players are nearby - [MC-306890](https://bugs.mojang.com/browse/MC-306890) - Campfires cause bees to work much more slowly - [MC-306903](https://bugs.mojang.com/browse/MC-306903) - Cubic Bézier easing functions sometimes produce wrong values - [MC-306946](https://bugs.mojang.com/browse/MC-306946) - The block light transition from level 1 to 0 under the night sky is not smooth when Smooth Lighting is enabled - [MC-306962](https://bugs.mojang.com/browse/MC-306962) - The "Take Screenshot" key bind doesn't work when set to a mouse button - [MC-306972](https://bugs.mojang.com/browse/MC-306972) - Wardens repeatedly roar in place when detecting ghasts - [MC-307002](https://bugs.mojang.com/browse/MC-307002) - Using /kill on one of the end crystals used to respawn the ender dragon no longer aborts the respawn sequence - [MC-307008](https://bugs.mojang.com/browse/MC-307008) - Severe framerate drops since 26.1 - [MC-307012](https://bugs.mojang.com/browse/MC-307012) - When a scoreboard objective is set to the `below_name` display mode, all named entities with no score display it with a score of 0 - [MC-307043](https://bugs.mojang.com/browse/MC-307043) - Applying a freeze effect while damaging a mob causes an incorrect value for `ticks_since_last_hurt_by_mob` - [MC-307054](https://bugs.mojang.com/browse/MC-307054) - Bone meal can no longer be applied to sweet berry bushes with a block above them - [MC-307125](https://bugs.mojang.com/browse/MC-307125) - Target selectors with duplicate `team` arguments are parsed inconsistently depending on argument order - [MC-307144](https://bugs.mojang.com/browse/MC-307144) - The game reads world generation data from data packs or world\_gen\_settings.dat inconsistently, preventing updating large biome sources - [MC-307159](https://bugs.mojang.com/browse/MC-307159) - Using bone meal from the main hand simultaneously places a block held in the off hand - [MC-307418](https://bugs.mojang.com/browse/MC-307418) - The game crashes when trying to upgrade a legacy world - [MC-307690](https://bugs.mojang.com/browse/MC-307690) - The error message produced by /difficulty doesn't use the difficulty's translated name - [MC-307877](https://bugs.mojang.com/browse/MC-307877) - Bone meal cannot be used on dry grass with a block directly above it --- # Minecraft: Java Edition 26.1.2 Happy Thursday from the shipping room! We're releasing 26.1.2, a hotfix that addresses a couple of critical issues found in the release. --- # Minecraft: Java Edition 26.1.1 It's a sunny Wednesday in the shipping room and we're starting the day off with releasing 26.1.1, a hotfix release that addresses an important issue reported in the 26.1 release. Happy mining! ## Fixed bugs in 26.1.1 - [MC-307140](https://bugs.mojang.com/browse/MC-307140) Chat messages can no longer be reported if the chat is enabled --- # Minecraft: Java Edition 26.1 Ready or not, here comes the Tiny Takeover drop! New versions of baby mobs have stormed Minecraft, causing cuteness overload across biomes and builds. Listen out for heart-melting sounds, craft name tags for your pets, and keep babies forever young with the golden dandelion. The babies are officially on the loose, so get ready to collect, coo over, and create chaos with these tiny rascals! ## New Features - Added new baby sounds for Wolf, Cat, Pig, Horse, and Chicken - Added Golden Dandelion - Added adult sound variants for the following animals: - Cats have one new sound variant - Pigs have two new sound variants - Cows have one new sound variant - Chickens have one new sound variant - The original sounds of each animal are used for the variant called `classic` - Every one of these animals will have a random sound variant assigned to it from the new variants and the original one - Added a trumpet instrument for when using a Note Block that is placed on a Copper Block - The sound is different based on the oxidation level of the Copper Block - Removed Baby Herobrine ### Golden Dandelion - The Golden Dandelion is a new type of flower that can be used to stop baby mobs from aging - Interacting with a baby mob while holding a Golden Dandelion will stop the mob from aging - When aging is stopped, green particles moving downwards will be shown - Interacting with a baby mob that has been stopped from aging while holding a Golden Dandelion will cause it to start aging again - When aging is started again, green particles moving upwards will be shown - It cannot be used on undead baby mobs and baby Villagers - Can be crafted using a Dandelion and Gold Nuggets ![A baby Fox stands amongst a field of Golden Dandelions.](https://launchercontent.mojang.com/v2/images/2618.jpg) ## Changes - Revamped the visuals of most baby mobs - Name Tags are now craftable and can be crafted with 1 Paper and 1 of any Metal Nugget - Removed Name Tags from loot chests in Ancient Cities and Woodland Mansions - Deepslate can now be directly crafted into its cobbled, polished, brick, and tile variants in the Stonecutter - Stone can now be directly crafted into cobbled variants in the Stonecutter - Updated the Main Menu background panorama - Tweaked default JVM options - The algorithm that maps block and sky light levels to how bright things appear on screen has been fully rewritten ### Baby Mobs - Updated the models and textures of the following baby mobs: - Cow - Mooshroom - Sheep - Pig - Cat - Ocelot - Wolf - Chicken - Tweaked the bounding box to align with the new model - Rabbit - Both adult and baby Rabbits also received new animations - Tweaked the bounding box to align with the new model - The programmer art Rabbit textures have been removed following the remodeling of the Rabbit - Horse - Increased the bounding box of baby Horses to better fit the new model - Donkey - Mule - Zombie Horse - Increased the bounding box of baby Zombie Horses to better fit the new model - Skeleton Horse - Increased the bounding box of baby Skeleton Horses to better fit the new model - Camel - Llama - Bee - Fox - Goat - Armadillo - Polar Bear - Panda - Snifflet - Dolphin - Squid - Increased the bounding box of baby Squid to better fit the new model - Glow Squid - Increased the bounding box of baby Glow Squid to better fit the new model - Turtle - Axolotl - Increased the bounding box of baby Axolotls to better fit the new model - Strider - Hoglin - Zoglin - Zombie - Increased the bounding box of baby Zombies to better fit the new model - Husk - Increased the bounding box of baby Husks to better fit the new model - Drowned - Increased the bounding box of baby Drowned to better fit the new model - Piglin - Increased the bounding box of baby Piglins to better fit the new model - Zombified Piglin - Increased the bounding box of baby Zombified Piglins to better fit the new model - Villager - Increased the bounding box of baby Villagers to better fit the new model - Zombie Villager - Increased the bounding box of baby Zombie Villagers to better fit the new model - Baby Cats are now scaled up to be the same size as baby Ocelots - Baby Horses are now scaled up slightly - Baby Polar Bears no longer attack Foxes - Adult Horses' Blackdot markings were updated to be visually closer to the new baby Horse markings - Small Armor Stands now display correctly by using the adult armor and scaling it down - Armor on baby Wolves will no longer render - Saddles on baby Pigs and baby Camels will no longer render - Camel Husks no longer have a baby model ![A stack of baby mobs. A warm Chicken on top of a black Cat on top of a woods Wolf on top of a Donkey.](https://launchercontent.mojang.com/v2/images/26111.jpg) ### Trades - The trades that are unlocked by Villager professions are now generated using deterministic random sequences, like loot drops and barter loot - Re-rolling a Villager's trades still produces a randomized sequence of trades, but that sequence is now determined by the world seed - Master Librarians no longer offer Name Tags - Master Librarians now offer Red Candles and Yellow Candles for the price of three Emeralds - Master Librarians now have three available trades to ensure that an Enchanted Book trade is always offered when using the Rebalance experiment - The Wandering Trader will now offer Name Tags for the price of one Emerald ![A Swamp Librarian and an unemployed Swamp Villager are looking at each other in front of a Lectern in a Swamp.](https://launchercontent.mojang.com/v2/images/2615.jpg) ### Minor Tweaks to Blocks, Items and Entities - Striders now correctly inherit the warmth of the Strider they are standing on, matching Bedrock - Zombie Horses no longer panic when hurt - Updated the dismount speed thresholds for Spears to match Bedrock - The Tripwire texture is now rendered as alpha cutout instead of transparent ### Lightmap Algorithm Changes - The new algorithm mostly provides the same overall results as before, but: - It is simpler and more straightforward, and fixes multiple issues of the previous one, as listed in the Fixed Bugs section below - The Darkness effect and world darkening effect of the Wither fight now work the same way in all dimensions - The Night Vision effect now simply adds ambient light instead of scaling the resulting colors - This means that fully dark areas no longer look brighter than areas lit by block or sky light - More aspects of the algorithm such as block light tint, ambient light color and night vision color are now data-driven through environment attributes, as described in the Data Pack section below ### UI - Along with large changes to the world data format in this release, worlds that need to be upgraded will now show `Upgrade and Play` instead of `Play Selected World`, and the `Edit World` and `Re-Create World` buttons are disabled until the world has been upgraded - A new screen has been added to show upgrading progress - Changes were made to how the chat screen is handled when it's restricted by settings - Input Method Editor (IME) candidates will now be shown in-game (on supported platforms, currently Windows and macOS) above the currently edited text field - The game will try to restore the last IME status when any text field is selected - If no text input is selected, IME input will be canceled and the status will not be updated - Added a new display option called "Exclusive Fullscreen" which controls if fullscreen mode should take full control of a monitor - Defaults to `false` (i.e. non-exclusive mode) - Any change will be applied only after the game restarts - Warning: exclusive fullscreen mode might prevent use of input methods (IME) ![Two Rabbits of different types are sitting up in a Cherry Grove.](https://launchercontent.mojang.com/v2/images/2617.jpg) #### Debug Screen - The `looking_at_block` and `looking_at_fluid` debug entries no longer show tags - New debug entries have been added: - `looking_at_block_tags` - `looking_at_fluid_tags` - `looking_at_entity_tags` - `sound_cache` - Renamed debug entries: - `looking_at_block` -> `looking_at_block_state` - `looking_at_fluid` -> `looking_at_fluid_state` - A `day_count` debug entry has been split from `local_difficulty` - Added a new entry `detailed_memory` with additional information about used memory - A new lightmap debug renderer can be enabled using the `F3 + 4` keybind ##### Lightmap Debug Renderer - A new debug renderer for the lightmap was added, which can be enabled using the `F3 + 4` keybind - It is mutually exclusive with the FPS/TPS and networking charts - It shows the lightmap texture in real time in the bottom right corner of the screen - The vertical axis of the texture represents sky light levels (0-15 from bottom to top) - The horizontal axis of the texture represents block light levels (0-15 from left to right) - The color of each pixel represents the resulting color that will be applied to blocks and entities lit with the corresponding block and sky light levels ![An underwater view of a few baby Squid which are swimming in a River.](https://launchercontent.mojang.com/v2/images/26110.jpg) #### World Options - The difficulty button in the pause menu has been replaced with a button leading to a new screen - World Options - The World Options screen contains the difficulty button as well as a button for changing Game Rules - The Game Rules screen is available for all operators and otherwise disabled #### Game Rules - A search bar has been added to the top of the Game Rules screen, both in-game and in the world creation menu - The search bar will select Game Rules based on id, name, category, and description #### Chat - The chat screen can now always be opened, even when chatting is restricted by settings - When the chat screen is open, specific actions and message types may still be restricted - Information about the restrictions (if there are any) is displayed on top of the chat box and above the chat input when the chat screen is open - The same information can also be accessed in the World Settings screen - Chat entries from client actions like taking screenshots will now be displayed even when messages from Players and servers are restricted - Changing chat settings will now hide all messages of restricted types and discard any new ones - The handling of chat messages on a published local server is now more consistent with dedicated servers in regard to chat settings ![A pen of many baby Chickens and two adult Chickens is shown inside of a Plains Village. There's a Cherry Grove in the background.](https://launchercontent.mojang.com/v2/images/2616.jpg) ### Creative Mode - Using Ctrl + Pick input as an operator on Players and Mannequins will now show the same results as executing the `/fetchprofile` command for this entity would ### Default JVM Options - The game now allocates 4 GB of RAM by default (up from 2 GB) - Garbage collection has been changed from G1GC to ZGC for compatible devices > **Developer's Note**: _The default memory allocation has been bumped from 2GB to 4GB to make the game run smoother and reduce stutters. Furthermore, with generational ZGC, you should see a more stable framerate – especially when operating memory heavy tasks. If you're running Minecraft on a machine with less than 4GB of RAM – please refer to [this help article](https://help.minecraft.net/hc/en-us/articles/39083573916941-Fix-Minecraft-Java-Edition-Game-Crashes-by-Checking-Memory-Allocation). If you want to change the garbage collector – please refer to [this help article](https://help.minecraft.net/hc/en-us/articles/41950300066573-Change-the-Garbage-Collector-for-Minecraft-Java-Edition). Third-party launchers may not support these changes._ ## Technical Changes - The Data Pack version is now 101.1 - The Resource Pack version is now 84 - Game executables are no longer obfuscated - see [this Minecraft.net article](https://www.minecraft.net/en-us/article/removing-obfuscation-in-java-edition) for more details - If a server's disk space is low, a toast will now be shown to server operators - The game now requires Java 25 - The included Java distribution is now the Microsoft build of OpenJDK 25 - The report generator for item components has been renamed to "Default Components" and now outputs one file for each element that has default components - The file structure of how worlds and their data are stored has been changed - The internals of how chunk geometry data is stored in GPU memory and how they are rendered have been changed - The game will now save all data once after the world has finished loading/the server has started up > **Developer's Note**: _If you experience any visual bugs, performance degradation or crashes, please report it to us on our [bug tracker](https://bugs.mojang.com)._ ### World Storage - All default dimensions are now stored in the `dimensions` subfolder - Data for the Overworld has been moved from the root folder to `dimensions/minecraft/overworld` - This includes the `region`, `entities`, and `poi` folders, as well as related files out of `data` - Data for the Nether has been moved from `DIM-1` to `dimensions/minecraft/the_nether` - Data for the End has been moved from `DIM1` to `dimensions/minecraft/the_end` - The top level `data` folder is now only for data shared across dimensions instead of also for the Overworld - Player storage has been moved to the `players` subdirectory - `advancements` -> `players/advancements` - `playerdata` -> `players/data` - `stats` -> `players/stats` - The world resource pack (`resources.zip`) has been moved to the `resourcepacks` subdirectory - Data saved in the `data` folder is now namespaced - This means that all that data will now be stored in a namespace subfolder in the corresponding `data` folder - All existing vanilla data files have been moved accordingly - Example: `data/scoreboard.dat` -> `data/minecraft/scoreboard.dat` - Command storage is now stored in namespace subfolders instead of having a namespace suffix - Example: `data/command_storage_foo.dat` -> `data/foo/command_storage.dat` - `chunks.dat` has been renamed to `chunk_tickets.dat` - Data for maps is now stored in the `data/minecraft/maps` subfolder - Map index files have been renamed to only the number - Example: `map_1.dat` -> `1.dat` - `idcounts.dat` has been renamed to `last_id.dat` - There is no more `raids_end.dat` special case - The End now uses `raids.dat` as well - Structures saved by Structure Blocks have been moved from `generated/namespace/structures` to `generated/namespace/structure` #### Changes to `level.dat` - The `Player` tag has been replaced with a `singleplayer_uuid` tag, referencing the player data file to use - Difficulty-related settings have been moved into a `difficulty_settings` tag - `Difficulty` is renamed to `difficulty` and is now a string instead of an integer - Allowed values: - `peaceful` - `easy` - `normal` - `hard` - `DifficultyLocked` is renamed to `locked` - Data for the Ender Dragon fight has been moved out to the data folder - It can now be found at `dimensions/minecraft/the_end/data/minecraft/ender_dragon_fight.dat` - The Ender Dragon fight can be activated in other dimensions, see the Dimension Types section below - Data changes: - `NeedsStateScanning` has been renamed to `needs_state_scanning` - `DragonKilled` has been renamed to `dragon_killed` - `PreviouslyKilled` has been renamed to `previously_killed` - `IsRespawning` has been replaced by `respawn_stage` - Allowed values: - `start` - `preparing_to_summon_pillars` - `summoning_pillars` - `summoning_dragon` - `end` - `Dragon` has been renamed to `dragon_uuid` - `ExitPortalLocation` has been renamed to `exit_portal_location` - `Gateways` has been renamed to `gateways` - Added `respawn_time` - the time in ticks that has elapsed since the current stage of the respawn sequence started - Added `respawn_crystals` - a list of UUIDs for the End Crystals used to trigger the respawn sequence - Wandering Trader data has been moved out to the data folder - It can now be found at `data/minecraft/wandering_trader.dat` - Data changes: - `WanderingTraderId` has been removed - `WanderingTraderSpawnChance` has been renamed to `spawn_chance` - `WanderingTraderSpawnDelay` has been renamed to `spawn_delay` - `CustomBossEvents` has been moved to the data folder - It can now be found at `data/minecraft/custom_boss_events.dat` - Weather-related data has been moved to the data folder - It can now be found at `data/minecraft/weather.dat` - Data changes: - `clearWeatherTime` has been renamed to `clear_weather_time` - `rainTime` has been renamed to `rain_time` - `thunderTime` has been renamed to `thunder_time` - `ScheduledEvents` has been moved out to the data folder - It can now be found at `data/minecraft/scheduled_events.dat` - Data changes: - `Name` has been renamed to `id` - `TriggerTime` has been renamed to `trigger_time` - `Callback` has been renamed to `callback` - `Type` has been renamed to `type` - `Name` has been renamed to `id` - `game_rules` has been moved out to the data folder - It can now be found at `data/minecraft/game_rules.dat` - `WorldGenSettings` has been moved out to the data folder - It can now be found at `data/minecraft/world_gen_settings.dat` - Data changes: - `generate_features` has been renamed to `generate_structures` - `world_clocks` has been moved out to the data folder - It can now be found at `data/minecraft/world_clocks.dat` ![An underwater view of a school of Cod and a few Dolphins swimming around.](https://launchercontent.mojang.com/v2/images/2612.jpg) ## Data Pack Versions 95 through 101.1 - Added data-driven World Clocks - Added data-driven registry for Villager trades - Added data-driven registry for sound variants for Pig, Cat, Cow, and Chicken - Changed the syntax of some custom recipe fields - Added new block, fluid, item, entity, enchantment, potion, and configured feature tags ### World Clocks World Clocks contain an internal time that increases every tick. They can be defined in data packs under the `world_clock` registry (found under `data//world_clock/.json`) - World Clocks can be paused or resumed, and the time of the clock can be changed or queried from the `time` command - Format: object with no fields ### Timelines - Added a `clock` field: a World Clock ID, specifies which World Clock the timeline is tied to - This field is required, but to match previous behavior the `minecraft:overworld` clock can be used - Added an optional `time_markers` field, an optional map between namespaced Time Marker IDs and either an integer or a Time Marker object, - Format: - Non-negative integer, the tick that the time marker marks - Or object with fields: - `ticks` - Integer between `0` and `period_ticks`, the tick that the Time Marker marks - `show_in_commands` - optional boolean, specifies whether the Time Marker will show up in command suggestions - Default: `false` #### Time Markers Time Markers assign a particular name to a specific (optionally repeating) point in time for a specific World Clock. Time Markers replace the previously predetermined names that could be used by `/time set`, for example `day` or `night`. Time Markers will exist within the context of a specific World Clock. This means that even though the different Time Markers are defined by different Timelines, only one Time Marker can exist with a particular id for a particular World Clock. It also means that two World Clocks can have a Time Marker with the same name. #### Built-in uses of Time Markers Some Time Markers are used to drive Vanilla game behavior. Usually, they are configured to not show up in `/time` commands. - `minecraft:wake_up_from_sleep` - the time to advance the dimension's default clock to when Players in that dimension wake up after sleeping - `minecraft:roll_village_siege` - the time of the dimension's default clock at which the random chance for a Zombie Village siege to occur should be evaluated ### Environment Attributes #### Added `minecraft:visual/block_light_tint` Tint of the block light. Block light color starts as dark gray at low light levels, becomes tinted by this attribute at medium levels, and turns white at high levels. By default, it provides the yellowish tint of torches. Bright colors work best for this attribute, with at least one color component being fully bright. The tint applies globally to all light sources visible on the screen. Individual lights cannot be tinted differently. - Value type: RGB color - Default value: `#FFD88C` - Modifiers: RGB Color Modifiers - Interpolated: yes - Resolved at the camera's position #### Added `minecraft:visual/ambient_light_color` Defines both the ambient light tint and brightness. This light is applied to the world at 0 light level. Block and sky light are added on top of it. - Value type: RGB color - Default values: `#0A0A0A` for the Overworld, `#302821` for the Nether, `#3f473f` for the End - Modifiers: RGB Color Modifiers - Interpolated: yes - Resolved at the camera's position #### Added `minecraft:visual/night_vision_color` This color is used similarly to ambient light color. When the Night Vision effect is active, the per-component maximum of `minecraft:visual/night_vision_color` and `minecraft:visual/ambient_light_color` is used as the ambient color. Night Vision is not tinted by default. - Value type: RGB color - Default value: `#999999` - Modifiers: RGB Color Modifiers - Interpolated: yes - Resolved at the camera's position #### Changed `minecraft:gameplay/turtle_egg_hatch_chance` - Now has a default value of `0.002` ### Data-driven Villager Trades Trades offered by Villagers and Wandering Traders are now data-driven and can be customized by data pack developers #### Villager Trades - Present in the `villager_trade` folder, represents a blueprint for trades which is used by Villagers and Wandering Traders to generate actual trades - Entry Format: - `wants` - Object, represents an item type and number of them needed to trade - `id` - String, the id of the item - `count` - optional number provider, how many of the item is needed for the trade - Defaults to a constant `1` - `components` - optional component map, the expected data components on the item - Defaults to an empty map - `additional_wants` - optional object, an additional item required by the merchant, has the same format as `wants` - `gives` - Item Stack, the resulting item given by the merchant when trading - Uses the existing format for Item Stacks - `given_item_modifiers` - optional list of Item Modifiers, modifiers to apply to the item in `gives` such as enchantments or potions, used to add dynamism to the trade rather than hardcoding certain values - Uses the existing format for Item Modifiers (also known as loot modifiers, item functions, loot functions...) - If any of these returns an empty item the entire trade will be discarded - Item Modifier references are not yet supported - If the final item has a `stored_enchantment` component containing an enchantment in the `#double_trade_price` tag, then the count of `wants` is doubled - `max_uses` - optional number provider, the maximum number of times a trade may be used - Is set to `1` if the number provider returns a lower value - Defaults to a constant `4` - `reputation_discount` - number provider, how much factors such as demand, discounts, or penalties affect the cost represented by `wants` - Is set to `0.0` if the number provider returns a lower value - Defaults to a constant `0.0` - `xp` - optional number provider, the amount of xp a merchant gets when the trade is done - Is set to `0` if the number provider returns a lower value - Defaults to a constant `1` - `merchant_predicate` - Predicate, conditions on the merchant that need to be met for the trade to be offered - Uses the existing format for Predicates (also known as loot conditions) - Predicate references are not yet supported - `double_trade_price_enchantments` - optional enchantment id, list of namespaced enchantment IDs, or hash-prefixed enchantment tag representing enchantments that will double the additional cost from `minecraft:enchant_randomly` and `minecraft:enchant_with_levels` if they have `include_additional_cost_component` set to `true` and if the item has one of the provided values in its `minecraft:stored_enchantments` component An example trade of an Emerald and a Book for an Enchanted Book offered only by Desert Villagers { "additional_wants": { "id": "minecraft:book" }, "double_trade_price_enchantments": "#minecraft:double_trade_price", "given_item_modifiers": [ { "function": "minecraft:enchant_randomly", "include_additional_cost_component": true, "only_compatible": false, "options": "#minecraft:trades/desert_common" }, { "function": "minecraft:filtered", "item_filter": { "items": "minecraft:enchanted_book", "predicates": { "minecraft:stored_enchantments": [ {} ] } }, "on_fail": { "function": "minecraft:discard" } } ], "gives": { "count": 1, "id": "minecraft:enchanted_book" }, "max_uses": 12.0, "merchant_predicate": { "condition": "minecraft:entity_properties", "entity": "this", "predicate": { "predicates": { "minecraft:villager/variant": "minecraft:desert" } } }, "reputation_discount": 0.2, "wants": { "id": "minecraft:emerald" } } #### Trade Sets - Present in the `trade_set` folder, they're groupings of trades offered by Villagers and Wandering Traders - We currently only have hardcoded ones available in `/level_` for Villagers, as well as `wandering_trader/buying`, `wandering_trader/special`, `wandering_trader/common` for Wandering Traders - Entry Format: - `trades` - Villager trade id, list of namespaced Villager trade IDs, or hash-prefixed Villager trade tag representing the trades that are part of this trade set - `amount` - Number provider, the amount of trades to be generated from this set when used - If the generated number is greater than the number of available `trades` then it will only generate until all `trades` have been used once, unless `allow_duplicates` is set to `true` - `allow_duplicates` - Boolean, representing if the trade set can use the same Villager Trade multiple times to generate trades - Defaults to `false` - `random_sequence` - optional named random sequence, determines which trades are generated - Defaults to a non-deterministic random sequence An example trade set offering 2 trades from the `#minecraft:armorer/level_1` tag, allowing duplicates { "amount": 2.0, "trades": "#minecraft:armorer/level_1", "random_sequence": "minecraft:trade_set/armorer/level_1", "allow_duplicates": true } ### Mob Variants #### Cat Sound Variants - Cat sound variants can be data-driven by adding entries to `data//cat_sound_variant/.json` - The file contains two sound sets defining `adult_sounds` and `baby_sounds` - Each sound set contains the following fields which correspond to sound events used for the specific behavior: - `ambient_sound` - `stray_ambient_sound` - `hiss_sound` - `hurt_sound` - `death_sound` - `eat_sound` - `beg_for_food_sound` - `purr_sound` - `purreow_sound` #### Pig Sound Variants - Pig sound variants can be data-driven by adding entries to `data//pig_sound_variant/.json` - The file contains two sound sets defining `adult_sounds` and `baby_sounds` - Each sound set contains the following fields which correspond to sound events used for the specific behavior: - `ambient_sound` - `hurt_sound` - `death_sound` - `step_sound` - `eat_sound` #### Cow Sound Variants - Cow sound variants can be data-driven by adding entries to `data//cow_sound_variant/.json` - Each sound variant contains the following fields which correspond to sound events used for the specific behavior: - `ambient_sound` - `hurt_sound` - `death_sound` - `step_sound` #### Chicken Sound Variants - Chicken sound variants can be data-driven by adding entries to `data//chicken_sound_variant/.json` - The file contains two sound sets defining `adult_sounds` and `baby_sounds` - Each sound set contains the following fields which correspond to sound events used for the specific behavior: - `ambient_sound` - `hurt_sound` - `death_sound` - `step_sound` #### Wolf Sound Variants - All sound event fields have been moved into a new object in the field `adult_sounds` - Added a new `baby_sounds` field with the same fields ### Commands - Villager and Piglin inventory slots can now only be accessed using `mob.inventory.*` - `villager.*` and `piglin.*` have been removed #### Added `swing` - New command that enables swinging of entities' arms - Not all entities support the swing animation - `swing` will still succeed for those entities, but clients will only display it when possible - For example, this makes it possible to swing Mannequins' arms - Returns the amount of entities for which a swing was sent Syntax: `/swing [] []` Arguments: - `target` - Entity selector, the entity to swing - If not present, defaults to `@s` - `hand` - String, which hand to swing, one of `mainhand`, `offhand` - If not present, defaults to `mainhand` #### Changes to `time` - The `time` command is now based on World Clocks - A clock can be optionally specified as an input for the time command with `time of ...` - If the clock is not specified (`/time ...` as before), the default clock for the dimension is used - The return value (e.g. from `/execute store`) from the `set` and `add` subcommands is now the total elapsed ticks of the clock instead of the current time of day - A new `rate` subcommand has additionally been added that can modify the speed at which a World Clock advances Syntax: - `time [of ] set