{"title":"Minecraft 26.3 Snapshot 4","version":"26.3-snapshot-4","type":"snapshot","image":{"title":"26.3-snapshot4 540x540.jpg","url":"/v2/images/26.3snapshot4540x540.jpg"},"body":"<h1>Known Issues</h1><ul><li>Exclusive fullscreen mode on Windows may cause the game to crash in certain situations, especially when using multiple monitors<li>Entering Exclusive fullscreen mode crashes the game on Wayland</ul><h1>New Features</h1><ul><li>Players in spectator mode can now interact with portals to teleport</ul><h1>Changes</h1><h2>Minor Tweaks to Blocks, Items and Entities</h2><ul><li>Armadillos no longer try to roll up when submerged in liquids</ul><h2>UI</h2><ul><li>Removed the Raw Input mouse setting<ul><li>Mouse input now always uses relative mouse mode while playing in-game</ul><li>Key bindings now use physical keys instead of keyboard-layout-specific key codes<li>Borderless Fullscreen is now the default fullscreen mode<li>Switching between Borderless and Exclusive Fullscreen no longer requires restarting the game<li>Exclusive fullscreen mode on macOS is no longer supported<li>The minimum window size is now 320 by 240 pixels<li>On macOS, holding a key while entering text now displays the native accent and candidate popup<li>On Linux systems, the game will now use and prefer Wayland natively if available</ul><h3>Debug Overlay</h3><ul><li>The debug overlay now supports a separate GUI scale than the rest of the game<ul><li>This is customizable through the Debug Options screen, <code>F3 + F6</code><li>The default scale is \"Auto\", which tries to stay at a higher resolution than normal<li>Another option is \"Unchanged\", which matches your regular GUI scale<li>The rest of the options work the same as in the normal \"GUI Scale\", controlling the scale directly</ul><li>Added a \"player_speed\" debug entry that displays the speed of the player in blocks per tick.<li>The debug overlay now shows the display refresh rate</ul><h2>Creative Inventory</h2><ul><li>Reordered mineral item and block ordering to have non-tiered ingredients up first, then tiered ingredients that craft into equipment last<ul><li>Ingredients<ul><li>Non-tiered minerals<li>Unrefined tiered minerals<li>Refined tiered minerals<ul><li>Nuggets<li>Ingots</ul></ul><li>Building Blocks<ul><li>Non-tiered mineral blocks and variants<li>Refined tiered mineral blocks and variants<li>Copper block family</ul><li>Copper Blocks continue to be pushed to the end of the order in Building Blocks since they have a large list of content</ul><li>Improved ordering of Natural Blocks tab so that all inner ordering of group content sequentially progresses from Overworld -> Nether -> End to stay consistent with other tabs</ul><h1>Technical Changes</h1><ul><li>The Data Pack version is now 111.0<li>The Resource Pack version is now 92.0<li>Loot table types that have a dedicated registry now support registry element and tag references<ul><li>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<li>Affected types:<ul><li><code>minecraft:advancement</code><li><code>minecraft:item_modifier</code><li><code>minecraft:loot_table</code><li><code>minecraft:number_provider</code><li><code>minecraft:predicate</code><li><code>minecraft:recipe</code><li><code>minecraft:slot_source</code></ul><li>Existing <code>reference</code> types for predicates, item modifiers and slot sources are now obsolete and have been removed</ul></ul><h2>Windowing and Input Backend</h2><ul><li>Minecraft now uses SDL3 instead of GLFW for window management, input and platform integration<li>Keyboard input now uses SDL scancodes for physical key positions and SDL keycodes for layout-dependent text editing shortcuts</ul><h1>Data Pack Version 111.0</h1><ul><li>Signs no longer automatically execute click events in custom text</ul><h2>Commands</h2><h3>Changes to <code>spreadplayers</code></h3><ul><li>Whether a block is safe to spread a player to is now controlled by the <code>#entities_can_teleport_to</code> block tag</ul><h2>Environment Attributes</h2><h3>Added <code>minecraft:gameplay/natural_mob_spawns</code></h3><ul><li>Defines mob spawns in an Environment Attribute Source<li>During worldgen placement, only Dimensions and Biomes will apply this Environment Attribute<li>Format: object with fields:<ul><li><code>spawns_by_category</code> - map of spawn category to weighted list of spawn data<ul><li>Spawn data format: object with fields:<ul><li><code>type</code> - entity type, the entity to spawn<li><code>count</code> - int provider, amount to spawn</ul></ul><li><code>spawn_costs</code> - map of entity type to object with fields:<ul><li><code>energy_budget</code> - float, energy change allowed per spawn<li><code>charge</code> - float, how much existing mobs will attract or repulse other charged mobs</ul></ul><li>Available attribute modifiers:<ul><li><code>overlay</code><ul><li>For each mob category, overrides the lower layer's spawn settings with the higher layer's, unless the category is not included<li>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</ul></ul><li>Default: Empty</ul><h3>Added <code>minecraft:gameplay/creature_world_gen_spawn_probability</code></h3><ul><li>Sets the probability to run an iteration in which mobs defined to spawn in the <code>creature</code> mob category will spawn during world generation<li>Only Dimensions and Biomes will apply this Environment Attribute<li>Format: float with range <code>[0,1)</code><li>Default: <code>0.1</code></ul><h3>Changed <code>minecraft:visual/ambient_particles</code></h3><ul><li>Now supports interpolation between Timeline keyframes (probabilities will be crossfaded)<li>Introduced support for new modifier: <code>append</code><ul><li>Unlike <code>override</code> which totally replaces the particle list, this modifier concatenates all elements with the layers below</ul></ul><h2>Data Components</h2><h3>Added <code>minecraft:cooking_fuel</code></h3><ul><li>Describes an item that can be used as fuel for a Furnace, Smoker or Blast Furnace<li>Format: object with fields<ul><li><code>burn_time</code> - namespaced ID pointing to an element of <code>minecraft:number_provider</code> registry representing the time, in ticks, for which this fuel will burn<li><code>speed_multiplier</code> - namespaced ID pointing to an element of <code>minecraft:number_provider</code> registry representing the speed of the cooking/smelting</ul></ul><h3>Added <code>minecraft:brewing_fuel</code></h3><ul><li>Describes an item that can be used as fuel for a Brewing Stand<li>Format: object with fields<ul><li><code>uses</code> - namespaced ID pointing to an element of <code>minecraft:number_provider</code> registry representing the number of times this fuel will brew before being consumed<li><code>speed_multiplier</code> - namespaced ID pointing to an element of <code>minecraft:number_provider</code> registry representing the speed of the brewing</ul><li>Note: the <code>#brewing_fuel</code> item tag has been removed and will no longer function to register new brewing fuels</ul><h3>Added <code>minecraft:sign_text_front</code> and <code>minecraft:sign_text_back</code></h3><ul><li>Two identical components that represent text in front and back of a sign<li>Contents will be displayed in item tooltip<li>The format is the same as <code>front_text</code> and <code>back_text</code> fields on <code>minecraft:sign</code> and <code>minecraft:hanging_sign</code> block entities, i.e.<ul><li><code>messages</code> - a list of text components<li><code>filtered_messages</code> - an optional list of text components, if omitted, it will be set to the same value as <code>messages</code><ul><li><code>messages</code> and <code>filtered_messages</code> must have same entry count</ul><li><code>color</code> - optional dye color, default: <code>black</code><li><code>has_glowing_text</code> - optional boolean, default: <code>false</code></ul></ul><h3>Added <code>minecraft:waxed</code></h3><ul><li>A marker for blocks with contents that are waxed<li>No fields</ul><h3>Added <code>minecraft:cushion/color</code></h3><ul><li>Applied to Cushion entities when they get placed using an item<li>Format: one of 16 dye colors</ul><h3>Added <code>minecraft:villager_food</code></h3><p>Represents items that Villagers can eat. Villagers will pick up items with this component in addition to items in the <code>#villager_picks_up</code> tag.<ul><li>Format: object with fields<ul><li><code>nutrition</code> - positive integer, how much hunger the item satiates in the Villager once eaten</ul></ul><h3>Added <code>minecraft:mob_visibility</code></h3><p>Represents the visibility percentage provided by an item with the appropriate <code>minecraft:equippable</code> component, modifying the range at which mobs are able to detect an entity<ul><li>Format: object with fields<ul><li><code>targeting_entity</code> - an entity ID, a list of namespaced entity IDs, or a hash-prefixed entity tag to match<li><code>visibility</code> - 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<ul><li>While multiple items with this component stack, the maximum vision will still never exceed 10.0</ul></ul></ul><h2>Block Entity Data</h2><h3>Changed <code>minecraft:sign</code> and <code>minecraft:hanging_sign</code></h3><ul><li>By default, commands and other click events contained in Sign text are no longer executed when the block is clicked<ul><li>Additionally, text components on newly placed Signs are no longer resolved by default<li>New boolean field called <code>allow_op_features</code> (defaults to <code>false</code>) has been added to restore previous behavior<li>Placed Signs and items with the <code>minecraft:block_entity_data</code> component containing Sign data stored in worlds saved before this version will have <code>allow_op_features</code> set to <code>true</code><li>Any newly created Sign will need to have that field set explicitly</ul><li>Changed the rules for opening the Sign edit screen after a block is placed:<ul><li>Previously, the screen would open unless <code>minecraft:block_entity_data</code> was applied successfully<li>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)</ul><li>Signs will now accept and return the <code>minecraft:sign_text_front</code>, <code>minecraft:sign_text_back</code> and <code>minecraft:waxed</code> components</ul><h3>Changed <code>minecraft:brewing_stand</code></h3><p>The following fields are now stored as integers rather than shorts:<ul><li>Changed the <code>BrewTime</code> field from a short to an integer, this is the amount of time that the current brewing process has taken so far<li>Changed the <code>Fuel</code> field from a byte to an integer, this is the amount of fuel remaining</ul><p>The following new fields have been added:<ul><li>Added the <code>total_brew_time</code> integer field, this is the total amount of time the current brewing process will take<li>Added the <code>total_fuel</code> integer field, this represents the amount of fuel that was added in the last refuel<li>Added the <code>speed_multiplier</code> float field, this will be used to speed up or slow down the next brewing process</ul><h3>Changed <code>minecraft:furnace</code>, <code>minecraft:smoker</code> and <code>minecraft:blast_furnace</code></h3><p>The following fields are now stored as integers rather than shorts:<ul><li>Changed the <code>cooking_time_spent</code> field from a short to an integer, this is the amount of time that the current cooking process has taken so far<li>Changed the <code>cooking_total_time</code> field from a short to an integer, this is the total amount of time the current cooking process will take<li>Changed the <code>lit_time_remaining</code> field from a short to an integer, this is the amount of burn time remaining<li>Changed the <code>lit_total_time</code> field from a short to an integer, this is the total amount of burn time that was added in the last refuel</ul><p>The following new fields have been added:<ul><li>Added the <code>speed_multiplier</code> float field, this will be used to speed up or slow down the next brewing process</ul><h2>Advancements</h2><h3>Rewards</h3><ul><li>The <code>loot</code> sub-field in the <code>rewards</code> 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 <code>minecraft:loot_table</code> type</ul><h3>Triggers</h3><ul><li>Multiple fields that accepted a list of loot conditions are now stricter:<ul><li>Previous functionality of a list of conditions was equivalent to a single <code>minecraft:all_of</code> condition has been removed<li>Additionally, <code>type</code> field is mandatory (previously it defaulted to <code>minecraft:entity_properties</code>)</ul><li>Some fields that previously accepted only inline loot conditions now also accept a namespaced ID of a <code>minecraft:predicate</code><li>The <code>player</code> field, available on all triggers except <code>minecraft:impossible</code>, now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type<ul><li>To avoid duplication, this field is not mentioned in entries below</ul></ul><h4>Changed <code>minecraft:any_block_use</code> trigger</h4><ul><li>The <code>location</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:bee_nest_destroyed</code></h4><ul><li>The <code>block</code> field has been renamed to <code>blocks</code> and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:block</code> type<li>Added field <code>state</code> that matches block state properties (same format as <code>minecraft:enter_block</code>)</ul><h4>Changed <code>minecraft:bred_animals</code> trigger</h4><ul><li><code>child</code>, <code>parent</code>, and <code>partner</code> fields now accept an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:brewed_potion</code> trigger</h4><ul><li>The <code>potion</code> field now accepts <code>minecraft:potion_contents</code> data component predicate</ul><h4>Changed <code>minecraft:cured_zombie_villager</code> trigger</h4><ul><li><code>villager</code> and <code>zombie</code> fields now accept an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:default_block_use</code> trigger</h4><ul><li>The <code>location</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:effects_changed</code> trigger</h4><ul><li>The <code>source</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:enter_block</code></h4><ul><li>The <code>block</code> field has been renamed to <code>blocks</code> and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:block</code> type</ul><h4>Changed <code>minecraft:fall_after_explosion</code> trigger</h4><ul><li>The <code>cause</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:fishing_rod_hooked</code> trigger</h4><ul><li>The <code>entity</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:placed_block</code> trigger</h4><ul><li>The <code>location</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:item_used_on_block</code> trigger</h4><ul><li>The <code>location</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:allay_drop_item_on_block</code> trigger</h4><ul><li>The <code>location</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:player_killed_entity</code> trigger</h4><ul><li>The <code>entity</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type<li>The <code>killing_blow.tags.id</code> field now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:damage_type</code> type</ul><h4>Changed <code>minecraft:entity_killed_player</code> trigger</h4><ul><li>The <code>entity</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type<li>The <code>killing_blow.tags.id</code> field now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:damage_type</code> type</ul><h4>Changed <code>minecraft:kill_mob_near_sculk_catalyst</code> trigger</h4><ul><li>The <code>entity</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type<li>The <code>killing_blow.tags.id</code> field now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:damage_type</code> type</ul><h4>Changed <code>minecraft:lightning_strike</code> trigger</h4><ul><li><code>bystander</code> and <code>lightning</code> fields now accept an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:player_generates_container_loot</code> trigger</h4><ul><li>The <code>loot_table</code> field has been renamed to <code>loot_tables</code> 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 <code>minecraft:loot_table</code> type<ul><li>If a tag or a list is used, trigger will run when any listed loot table is generated</ul></ul><h4>Changed <code>minecraft:thrown_item_picked_up_by_player</code> trigger</h4><ul><li>The <code>entity</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:thrown_item_picked_up_by_entity</code> trigger</h4><ul><li>The <code>entity</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:player_hurt_entity</code> trigger</h4><ul><li>The <code>entity</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type<li>The <code>damage.type.tags.id</code> field now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:damage_type</code> type</ul><h4>Changed <code>minecraft:entity_hurt_player</code> trigger</h4><ul><li>The <code>damage.type.tags.id</code> field now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:damage_type</code> type</ul><h4>Changed <code>minecraft:player_interacted_with_entity</code> trigger</h4><ul><li>The <code>entity</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:player_sheared_equipment</code> trigger</h4><ul><li>The <code>entity</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:crafter_recipe_crafted</code> trigger</h4><ul><li>The <code>recipe_id</code> field has been renamed to <code>recipes</code> and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:recipe</code> type<ul><li>If a tag or a list is used, trigger will run when any listed recipe is used</ul></ul><h4>Changed <code>minecraft:recipe_crafted</code> trigger</h4><ul><li>The <code>recipe_id</code> field has been renamed to <code>recipes</code> and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:recipe</code> type<ul><li>If a tag or a list is used, trigger will run when any listed recipe is used</ul></ul><h4>Changed <code>minecraft:recipe_unlocked</code> trigger</h4><ul><li>The <code>recipe</code> field has been renamed to <code>recipes</code> and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:recipe</code> type<ul><li>If a tag or a list is used, trigger will run when any listed recipe is unlocked</ul></ul><h4>Changed <code>minecraft:slide_down_block</code></h4><ul><li>The <code>block</code> field has been renamed to <code>blocks</code> and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:block</code> type</ul><h4>Changed <code>minecraft:summoned_entity</code> trigger</h4><ul><li>The <code>entity</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:tame_animal</code> trigger</h4><ul><li>The <code>entity</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:target_hit</code> trigger</h4><ul><li>The <code>projectile</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h4>Changed <code>minecraft:villager_trade</code> trigger</h4><ul><li>The <code>villager</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h2>Slot Sources</h2><h3>Changed <code>minecraft:group</code></h3><ul><li>The <code>terms</code> 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 <code>minecraft:slot_source</code> type<li>Inline format of <code>minecraft:group</code> (previously only a list of inline slot source) can now also accept a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a <code>minecraft:slot_source</code> type<ul><li>This format is now available consistenly available for all fields of slot source</ul></ul><h3>Changed <code>minecraft:filtered</code></h3><ul><li>The <code>slot_source</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:slot_source</code> type</ul><h3>Changed <code>minecraft:contents</code></h3><ul><li>The <code>slot_source</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:slot_source</code> type</ul><h3>Changed <code>minecraft:limit_slots</code></h3><ul><li>The <code>slot_source</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:slot_source</code> type</ul><h3>Removed <code>minecraft:reference</code></h3><ul><li>This slot source has become obsolete, as any field that takes slot source now accepts (among other fields) a namespaced ID of a <code>minecraft:slot_source</code> type</ul><h2>Loot Tables</h2><ul><li>The <code>rolls</code> and <code>bonus_rolls</code> fields now accept an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Loot Table Types</h3><h4>Added <code>minecraft:container_process</code> loot table type</h4><ul><li>Currently used to evaluate cooking and brewing fuel values<li>It takes the following parameters:<ul><li><code>container</code>, the container or inventory being evaluated<li><code>block_entity</code>, the block entity being fueled<li><code>block_state</code>, the current state of the block being fueled<li><code>origin</code>, the location of the block being fueled</ul></ul><h4>Changed <code>minecraft:advancement_location</code></h4><ul><li>Block entities are now available in context and can be matched by conditions like <code>minecraft:match_block</code></ul><h3>Loot Pool Entries</h3><ul><li>The <code>conditions</code> field in loot pool entries has been renamed to <code>condition</code> and now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type<li>The <code>functions</code> field in loot pool entries has been renamed to <code>modifier</code> and now accepts an inline value (including list as a short form of <code>minecraft:sequence</code>) or a namespaced ID of a <code>minecraft:item_modifier</code> type<ul><li>This field is now present on all loot entries, including previously omitted <code>minecraft:alternatives</code>, <code>minecraft:sequence</code> and <code>minecraft:group</code></ul></ul><h4>Changed <code>minecraft:tag</code> loot pool entry</h4><ul><li>The <code>name</code> field has been renamed to <code>items</code> and now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:item</code> type</ul><h4>Changed <code>minecraft:loot_table</code> loot pool entry</h4><ul><li>The <code>value</code> 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 <code>minecraft:loot_table</code> type<li>Added <code>expand</code> field, working the same as in <code>minecraft:tag</code> pool entry:<ul><li>if <code>true</code>, each entry inside tag will be added to outer pool, with weights equal to weight of this entry<li>if <code>false</code>, this pool entry will operate as a single entry in outer pool. If this entry gets selected, it will return all items from all referenced loot tables</ul></ul><h2>Loot Functions</h2><ul><li>The <code>conditions</code> field is now available in all loot functions and has been renamed to <code>condition</code><ul><li>It now also accepts an inline value or a namespaced ID, but no longer an inline list of conditions<li>Functionality of old condition list format can be achieved by explicitly using <code>minecraft:all_of</code> loot condition type</ul><li>The <code>function</code> field (describing function type) has been renamed to <code>type</code></ul><h3>Changed <code>minecraft:sequence</code></h3><ul><li>The <code>functions</code> 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 <code>minecraft:item_modifier</code> type<li>Added optional <code>condition</code> field which accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type<li>Inline format of <code>minecraft:sequence</code> (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 <code>minecraft:item_modifier</code> type<ul><li>This format is now consistenly available for all fields of loot function type, which means that every such field can accept an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a <code>minecraft:item_modifier</code> type</ul></ul><h3>Changed <code>minecraft:modify_contents</code></h3><ul><li>The <code>modifier</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:item_modifier</code> type</ul><h3>Changed <code>minecraft:set_attributes</code></h3><ul><li>Number providers in <code>amount</code> sub-fields of <code>modifiers</code> list now accept an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:enchanted_count_increase</code></h3><ul><li>The <code>count</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:enchant_with_levels</code></h3><ul><li>The <code>levels</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:set_custom_model_data</code></h3><ul><li>Elements in <code>floats</code> and <code>colors</code> lists can now be an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:set_enchantments</code></h3><ul><li>Values in <code>enchantments</code> map can now be an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:set_count</code></h3><ul><li>The <code>count</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:limit_count</code></h3><ul><li>The <code>min</code> and <code>max</code> fields inside <code>limit</code> structure now accept an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:set_damage</code></h3><ul><li>The <code>count</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:set_ominous_bottle_amplifier</code></h3><ul><li>The <code>amplifier</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:set_random_dyes</code></h3><ul><li>The <code>number_of_dyes</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:set_stew_effect</code></h3><ul><li>The <code>duration</code> field in elements of <code>effects</code> list now accepts an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:set_loot_table</code></h3><ul><li>The <code>name</code> field has been renamed to <code>tag</code></ul><h3>Changed <code>minecraft:exploration_map</code></h3><ul><li>The <code>destination</code> 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 <code>minecraft:structure</code> type</ul><h3>Removed <code>minecraft:reference</code></h3><ul><li>This function has become obsolete, as any field that takes a function now accepts (among other things) a namespaced ID to other functions</ul><h2>Predicates</h2><ul><li>The <code>condition</code> field (describing predicate type) has been renamed to <code>type</code></ul><h3>Changed <code>minecraft:all_of</code></h3><ul><li>The <code>terms</code> 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 <code>minecraft:predicate</code> type<li>Note: values of this type can no longer be shortened to a single list, a full object with type <code>minecraft:all_of</code> needs to be used explicitly</ul><h3>Changed <code>minecraft:any_of</code></h3><ul><li>The <code>terms</code> 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 <code>minecraft:predicate</code> type</ul><h3>Changed <code>minecraft:inverted</code></h3><ul><li>The <code>term</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:predicate</code> type</ul><h3>Changed <code>minecraft:random_chance</code></h3><ul><li>The <code>chance</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:value_check</code></h3><ul><li>The <code>value</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type<li>The <code>min</code> and <code>max</code> fields inside <code>range</code> structure now accept an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:time_check</code></h3><ul><li>The <code>min</code> and <code>max</code> fields inside <code>value</code> structure now accept an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:entity_scores</code></h3><ul><li>The <code>min</code> and <code>max</code> fields inside values of <code>scores</code> map now accept an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:damage_source_properties</code></h3><ul><li>The <code>predicate.tags.id</code> field now accepts a single namespaced ID, a list of namespaced IDs, or a hash-prefixed tag ID of a <code>minecraft:damage_type</code> type</ul><h3>Removed <code>minecraft:reference</code></h3><ul><li>This condition has become obsolete, as any field that takes a loot condition now accepts (among other things) a namespaced ID to other conditions</ul><h3>Added vanilla predicates</h3><ul><li><code>minecraft:block/fast_cooking</code></ul><h3>Added <code>minecraft:match_block</code> condition type</h3><p>Matches block state and optionally block entity data and components (if present)<p>Fields (same as elements of <code>minecraft:can_place_on</code> components):<ul><li><code>blocks</code> - optional block id, list of namespaced block IDs, or hash-prefixed block tag to match<li><code>state</code>: optional map of block state property keys to values to match<li><code>nbt</code>: optional block entity NBT to match<li>match will fail if this field is present, but block entity is not available in context<li><code>components</code> - optional map of exact components to match<li>match will fail if this field is present, but block entity is not available in context<li><code>predicates</code> - optional map of component predicates to match<li>match will fail if this field is present, but block entity is not available in context</ul><h3>Removed <code>minecraft:block_state_property</code> condition type</h3><ul><li>This has been fully replaced by <code>minecraft:match_block</code></ul><h2>Number Providers</h2><ul><li>The <code>type</code> field always needs to be specified explicitly when using an inline number provider (it was previously defaulting to <code>minecraft:uniform</code>)</ul><h3>Added vanilla number providers</h3><ul><li><code>minecraft:cooking/time_bamboo</code><ul><li>Returns the burn time in ticks for bamboo and scaffolding</ul><li><code>minecraft:cooking/time_blaze_rod</code><ul><li>Returns the burn time in ticks for blaze rods</ul><li><code>minecraft:cooking/time_boats</code><ul><li>Returns the burn time in ticks for boats</ul><li><code>minecraft:cooking/time_coal</code><ul><li>Returns the burn time in ticks for coal</ul><li><code>minecraft:cooking/time_coal_block</code><ul><li>Returns the burn time in ticks for coal blocks</ul><li><code>minecraft:cooking/time_dried_kelp_block</code><ul><li>Returns the burn time in ticks for dried kelp blocks</ul><li><code>minecraft:cooking/time_dry_plants</code><ul><li>Returns the burn time in ticks for various dry plants</ul><li><code>minecraft:cooking/time_hanging_signs</code><ul><li>Returns the burn time in ticks for hanging signs</ul><li><code>minecraft:cooking/time_lava_bucket</code><ul><li>Returns the burn time in tickss for lava buckets</ul><li><code>minecraft:cooking/time_roots</code><ul><li>Returns the burn time in ticks for mangrove roots</ul><li><code>minecraft:cooking/time_wood_blocks</code><ul><li>Returns the burn time in ticks for wood blocks</ul><li><code>minecraft:cooking/time_wood_items_extra_small</code><ul><li>Returns the burn time in ticks for very small wood items such as buttons</ul><li><code>minecraft:cooking/time_wood_items_large</code><ul><li>Returns the burn time in ticks for large wood items such as doors</ul><li><code>minecraft:cooking/time_wood_items_small</code><ul><li>Returns the burn time in ticks for small wood items such as bows</ul><li><code>minecraft:cooking/time_wood_slabs</code><ul><li>Returns the burn time in ticks for wood slabs</ul><li><code>minecraft:cooking/time_wool</code><ul><li>Returns the burn time in ticks for most wool blocks</ul><li><code>minecraft:cooking/time_wool_carpets</code><ul><li>Returns the burn time in ticks for wool carpets</ul><li><code>minecraft:cooking/time_wool_slabs</code><ul><li>Returns the burn time in ticks for wool slabs and cushions</ul><li><code>minecraft:cooking/speed_default</code><ul><li>Returns the default speed multiplier for cooking fuel</ul><li><code>minecraft:brewing/speed_default</code><ul><li>Returns the default speed multiplier for brewing fuel</ul><li><code>minecraft:brewing/uses_default</code><ul><li>Returns the default number of brews provided by brewing fuel</ul></ul><h3>Changed <code>minecraft:number_dispatcher</code></h3><ul><li>Fields:<ul><li><code>cases</code> - a list of cases in the order that the dispatcher will try to execute them<ul><li>Fields:<ul><li><code>condition</code> - an inline value or a namespaced ID of a <code>minecraft:predicate</code> type<li><code>number_provider</code> - an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type which is executed if the condition is fulfilled</ul></ul><li><code>default</code> - an optional inline value or a namespaced ID of a <code>minecraft:number_provider</code> type<ul><li>Defaults to a constant <code>0</code> if omitted</ul></ul></ul><h3>Changed <code>minecraft:conditional_value</code></h3><ul><li>Fields:<ul><li><code>conditions</code> - an inline value or a namespaced ID of a <code>minecraft:predicate</code> type<li><code>on_true</code> - an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type which is executed if its condition is fulfilled<li><code>on_false</code> - an optional inline value or a namespaced ID of a <code>minecraft:number_provider</code> type<ul><li>Defaults to a constant <code>0</code> if omitted</ul></ul></ul><h3>Changed <code>minecraft:weighted_list</code></h3><ul><li>Fields:<ul><li><code>distribution</code> - a list of objects with the following fields<ul><li>Fields:<ul><li><code>data</code> - an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type<li><code>weight</code> - a positive integer</ul></ul></ul></ul><h3>Changed <code>minecraft:uniform</code></h3><ul><li>The <code>min</code> and <code>max</code> fields now accept an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:binomial</code></h3><ul><li>The <code>n</code> and <code>p</code> fields now accept an inline value or a namespaced ID of a <code>minecraft:number_provider</code> type</ul><h3>Changed <code>minecraft:sum</code></h3><ul><li>The <code>summands</code> 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 <code>minecraft:number_provider</code> type</ul><h2>Recipes</h2><h3>Smoker and Blast Furnace Recipes</h3><p>The recipes for Smokers and Blast Furnaces now use the same cooking time in their data definition as their Furnace counterparts.<p>The cooking time speedup is now done through the <code>minecraft:cooking/speed_default</code> Number Provider used by the furnace fuel components.<h2>World Generation</h2><h3>Biomes</h3><ul><li>Removed the <code>spawners</code>, <code>spawn_costs</code>, and <code>creature_spawn_probability</code> fields<ul><li>These values have been moved to the new Environment Attributes</ul></ul><h3>Features</h3><ul><li>Removed feature types:<ul><li><code>minecraft:nether_forest_vegetation</code><li><code>minecraft:twisting_vines</code><li><code>minecraft:weeping_vines</code></ul></ul><h3>Noise Settings</h3><ul><li>The <code>final_density</code> field no longer has the <code>beardifier</code> Density Function implicitly added to the final result<li>The <code>aquifers_enabled</code> field has been replaced by an optional <code>aquifers</code> object:<ul><li>If not present, no aquifers will be generated<li>Fields:<ul><li><code>barrier</code> - Density Function, moved from <code>noise_router.barrier</code><li><code>fluid_level_floodedness</code> - Density Function, moved from <code>noise_router.fluid_level_floodedness</code><li><code>fluid_level_spread</code> - Density Function, moved from <code>noise_router.fluid_level_spread</code><li><code>lava</code> - Density Function, moved from <code>noise_router.lava</code><li><code>surface_level</code> - Density Function, duplicated from <code>noise_router.preliminary_surface_level</code><li><code>exclusion</code> - Density Function, any aquifer cell where this value is positive will have no fluid</ul></ul><li>The <code>ore_veins_enabled</code> field has been replaced by an optional list of <code>ore_veins</code> objects:<ul><li>If not present, no ore veins will be generated<li>Fields:<ul><li><code>ore_block</code> - Block State, the ore block to place<li><code>raw_ore_block</code> - Block State, the raw ore block to place<li><code>filler_block</code> - Block State, the filler block to place<li><code>raw_ore_chance</code> - float between 0 and 1, the probability for a <code>raw_ore_block</code> to be placed instead of an <code>ore_block</code><li><code>density</code> - Density Function, the probability between 0 and 1 for the ore vein to replace a block<ul><li>If <code>0</code> or lower, no block will be replaced</ul><li><code>richness</code> - Density Function, the probability between 0 and 1 for <code>ore_block</code> or <code>raw_ore_block</code> to be placed (as opposed to <code>filler_block</code>)<ul><li>If <code>0</code> or lower, all blocks will be <code>filler_block</code><li>If <code>1</code> or greater, no blocks will be <code>filler_block</code></ul><li><code>filler_gap</code> - Density Function, acts as an override to <code>richness</code>: if positive, <code>filler_block</code> will always be placed</ul></ul><li>The following fields from <code>noise_router</code> have been moved:<ul><li><code>barrier</code>, <code>fluid_level_floodedness</code>, <code>fluid_level_spread</code>, <code>lava</code> - moved into <code>aquifers</code> field<li><code>vein_toggle</code>, <code>vein_ridged</code>, <code>vein_gap</code> - moved into <code>ore_veins</code> field</ul></ul><h3>Density Functions</h3><h4>Updated <code>constant</code></h4><ul><li><code>argument</code> has been renamed to <code>value</code></ul><h4>Updated <code>add</code>, <code>mul</code>, <code>min</code>, and <code>max</code></h4><ul><li><code>argument1</code> has been renamed to <code>left</code><li><code>argument2</code> has been renamed to <code>right</code></ul><h4>Updated <code>abs</code>, <code>square</code>, <code>cube</code>, <code>half_negative</code>, <code>quarter_negative</code>, <code>squeeze</code>, <code>interpolated</code>, <code>flat_cache</code>, <code>cache_2d</code>, <code>cache_once</code>, <code>cache_all_in_cell</code>, and <code>blend_density</code> Density Functions</h4><ul><li><code>argument</code> has been renamed to <code>input</code></ul><h4>Updated <code>shift_a</code>, <code>shift_b</code>, and <code>shift</code></h4><ul><li><code>argument</code> has been renamed to <code>noise</code></ul><h4>Added <code>sub</code></h4><p>Performs subtraction between two arguments. Format: object with fields:<ul><li><code>left</code> - Density Function, the left-hand side of the operation<li><code>right</code> - Density Function, the right-hand side of the operation</ul><h4>Added <code>div</code></h4><p>Performs division between two arguments. Format: object with fields:<ul><li><code>left</code> - Density Function, the left-hand side of the operation<li><code>right</code> - Density Function, the right-hand side of the operation</ul><h4>Updated <code>reciprocal</code></h4><ul><li>Renamed from <code>invert</code></ul><h4>Added <code>negate</code></h4><p>Negates the input. Format: object with fields:<ul><li><code>input</code> - Density Function, the function to negate</ul><h4>Added <code>lerp</code></h4><p>Performs (unclamped) linear interpolation between two arguments based on an alpha. Format: object with fields:<ul><li><code>alpha</code> - Density Function, the interpolation factor (<code>0</code>=<code>first</code>, <code>1</code>=<code>second</code>)<ul><li>Any value outside of <code>[0; 1]</code> will extrapolate</ul><li><code>first</code> - Density Function, the value at <code>alpha=0</code><li><code>second</code> - Density Function, the value at <code>alpha=1</code></ul><h4>Added <code>floor</code>, <code>round</code>, <code>ceil</code>, and <code>truncate</code></h4><p>Rounds the input value to an integer multiple of a given function in a type-dependent direction:<ul><li><code>floor</code>: rounds towards negative infinity<li><code>round</code>: rounds towards the nearest integer (ties round up)<li><code>ceil</code>: rounds towards positive infinity<li><code>truncate</code>: rounds towards 0</ul><p>Format: object with fields:<ul><li><code>input</code> - Density Function, the input to round<li><code>multiple</code> - Density Function, the output will be rounded to an integer multiple of this value<ul><li>If not specified, defaults to constant <code>1</code> (i.e. rounding to integer)</ul></ul><h4>Added <code>beardifier</code></h4><p>Outputs the structure bearding density. Generally summed together with the base terrain density to produce ground below, carve air around, or bury structures.<p>Format: no fields<h2>Villager Trades</h2><ul><li>The <code>given_item_modifiers</code> field has been renamed to <code>given_item_modifier</code><ul><li>Note: unlike other fields of type <code>minecraft:item_modifier</code> this field does not support namespaced element or tag IDs</ul></ul><h2>Tags</h2><h3>Block Tags</h3><ul><li>Added <code>#cushion_uses_collision_shape</code> - Blocks where Cushion placement raycasts against collision shape instead of interaction shape<ul><li>Default entries: all blocks in <code>#cauldrons</code>, plus <code>hopper</code> and <code>composter</code></ul></ul><h3>Item Tags</h3><ul><li>Removed <code>#brewing_fuel</code> - the <code>brewing_fuel</code> item component is now used to identify brewing fuels</ul><h1>Resource Pack Version 92.0</h1><h2>Shaders &#38 Post-process Effects</h2><ul><li>Added new shaders to support order-independent transparency:<ul><li><code>core/oit_depth_bounds_cull.fsh</code></ul><li>Updated core shaders to support order-independent transparency<ul><li>Introduced new defines:<ul><li><code>OIT_ALWAYS_WRITE_DEPTH</code> - A boolean indicating that the OIT algorithm should always write depth for the executing pipeline during the depth bounds stage</ul></ul></ul><h3>New Core Shaders</h3><ul><li><code>core/integrate_depth.fsh</code> was added and is used to integrate the \"3d hud\" and always-on-top gizmo depth buffers into the main depth buffer</ul>","id":"21f9a68189304d9d7ddaba6e0fbe5e4c9d0e9c4571e22ab165277c196cc29752","date":"2026-07-16T13:59:30.000Z","needsTranslation":false}