{"title":"Minecraft 26.3 Pre-Release 1","version":"26.3-pre-1","type":"snapshot","image":{"title":"26.3-pre-1 540x540.jpg","url":"/v2/images/26.3pre1540x540.jpg"},"body":"<p>The first pre-release for 26.3 is here! There are technical changes, but we are now mainly fixing bugs, making improvements and putting on the final touches ahead of release.<p>Happy mining!<h1>Changes</h1><h2>UI</h2><ul><li>On macOS, Exclusive Fullscreen is now available again<li>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<li>The cursor is now confined to the window while Exclusive Fullscreen is active</ul><h1>Technical Changes</h1><ul><li>The Data Pack version is now 119.0<li>The Resource Pack version is now 97.1</ul><h1>Data Pack Version 119.0</h1><ul><li>The <code>minecraft:number_provider</code> and <code>minecraft:number_provider_type</code> registries have been split into separate registries for integer calculations (<code>minecraft:context_int_provider</code>, <code>minecraft:context_int_provider_type</code>) and float calculations (<code>minecraft:context_float_provider</code>, <code>minecraft:context_float_provider_type</code>)</ul><h2>Number Providers</h2><p>Number provider types and values have been split into two separate registries: <code>minecraft:context_int_provider</code> and <code>minecraft:context_float_provider</code> to avoid accidental loss of precision and range due to mixing of float and integer operations<p>Note: those new types should not be confused with already existing <code>minecraft:int_provider_type</code> and <code>minecraft:float_provider_type</code>, which are context-free providers, used mostly for world generation<p>Following number provider types have been split into integer and float variants:<ul><li><code>minecraft:constant</code><li><code>minecraft:uniform</code><li><code>minecraft:storage</code><li><code>minecraft:sum</code> (renamed to <code>minecraft:add</code>)<li><code>minecraft:product</code> (renamed to <code>minecraft:mul</code>)<li><code>minecraft:minimum</code> (renamed to <code>minecraft:min</code>)<li><code>minecraft:maximum</code> (renamed to <code>minecraft:max</code>)<li><code>minecraft:average</code> (renamed to <code>minecraft:avg</code>)<li><code>minecraft:weighted_list</code><li><code>minecraft:conditional</code><li><code>minecraft:number_dispatcher</code><li><code>minecraft:environment_attribute</code></ul><p>Following number providers types are now only available in integer variant:<ul><li><code>minecraft:binomial</code><li><code>minecraft:score</code></ul><p>Following number providers types are now only available in float variant:<ul><li><code>minecraft:enchantment_level</code></ul><p>Following vanilla number providers have been migrated to <code>minecraft:context_int_provider</code> registry:<ul><li><code>minecraft:compostable/low</code><li><code>minecraft:compostable/low_medium</code><li><code>minecraft:compostable/medium</code><li><code>minecraft:compostable/medium_high</code><li><code>minecraft:compostable/always_add_one</code><li><code>minecraft:cooking/time_bamboo</code><li><code>minecraft:cooking/time_wool_slabs</code><li><code>minecraft:cooking/time_wool_carpets</code><li><code>minecraft:cooking/time_dry_plants</code><li><code>minecraft:cooking/time_wood_items_extra_small</code><li><code>minecraft:cooking/time_wool</code><li><code>minecraft:cooking/time_wood_slabs</code><li><code>minecraft:cooking/time_wood_items_large</code><li><code>minecraft:cooking/time_wood_items_small</code><li><code>minecraft:cooking/time_roots</code><li><code>minecraft:cooking/time_wood_blocks</code><li><code>minecraft:cooking/time_hanging_signs</code><li><code>minecraft:cooking/time_boats</code><li><code>minecraft:cooking/time_coal</code><li><code>minecraft:cooking/time_blaze_rod</code><li><code>minecraft:cooking/time_dried_kelp_block</code><li><code>minecraft:cooking/time_coal_block</code><li><code>minecraft:cooking/time_lava_bucket</code><li><code>minecraft:brewing/uses_default</code></ul><p>Following vanilla number providers have been migrated to <code>minecraft:context_float_provider</code> registry:<ul><li><code>minecraft:cooking/speed_default</code><li><code>minecraft:cooking/normal_speed_multiplier</code><li><code>minecraft:cooking/fast_speed_multiplier</code><li><code>minecraft:brewing/speed_default</code></ul><p>Following vanilla number providers have been removed:<ul><li><code>minecraft:cooking/normal_burn_time_multiplier</code> (replaced by <code>minecraft:cooking/normal_burn_time_reduction_factor</code>)<li><code>minecraft:cooking/fast_burn_time_multiplier</code> (replaced by <code>minecraft:cooking/fast_burn_time_reduction_factor</code>)</ul><h2>Integer Number Providers</h2><ul><li>Added the <code>minecraft:context_int_provider</code> registry<li>All calculations are performed using 32-bit integers<li>Result of calculations that provide invalid values (like division by zero) is undefined<li>Format:<ul><li><code>type</code> - a namespaced ID from <code>minecraft:context_int_provider_type</code> registry<li><code>&#60type-specific fields></code></ul></ul><h3>Added <code>minecraft:abs</code></h3><ul><li>Returns the absolute value of <code>input</code><li>If the final result does not fit inside 32-bit integer, calculation will be canceled<li>Fields:<ul><li><code>input</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type</ul></ul><h3>Added <code>minecraft:avg</code></h3><ul><li>Evaluates multiple integer providers and returns arithmetic mean of results<li>Division rounds towards <code>0</code><li>Fields:<ul><li><code>inputs</code> - 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:context_int_provider</code> type<ul><li>Requires at least one value</ul></ul></ul><h3>Added <code>minecraft:binomial</code></h3><ul><li>Makes <code>n</code> random coin flips with probability of succeeding equal to <code>p</code>, then returns number of successes<li>Fields:<ul><li><code>n</code> - number of coin flips, an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type<li><code>p</code> - probability of a single coin flip succeeding (<code>[0.0, 1.0]</code>), an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:conditional</code></h3><ul><li>Returns the value from <code>on_true</code> if its condition is fulfilled or <code>on_false</code> if not<li>Fields:<ul><li><code>condition</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:context_int_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:context_int_provider</code> type<ul><li>Defaults to a constant <code>0</code> if omitted</ul></ul></ul><h3>Added <code>minecraft:constant</code></h3><ul><li>Returns a constant value<li>Fields:<ul><li><code>value</code> - an integer</ul><li>Can be also written inline as a plain number (<code>foo: 1</code> is equivalent to <code>foo: {type:\"minecraft:constant\",value:1}</code>)</ul><h3>Added <code>minecraft:sub</code></h3><ul><li>Returns <code>left</code> minus <code>right</code><li>If the final result does not fit inside 32-bit integer, calculation will be canceled<li>Fields:<ul><li><code>left</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type<li><code>right</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type</ul></ul><h3>Added <code>minecraft:from_float</code></h3><ul><li>Evaluates a float provider and converts it to an integer value<li>Noninteger values will be truncated (i.e. rounded towards zero)<li>Values that don't fit inside 32-bit integer (including <code>NaN</code>) are treated as errors and will cancel calculation<li>Fields:<ul><li><code>input</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:max</code></h3><ul><li>Evaluates multiple integer providers and returns the largest of results<li>Fields:<ul><li><code>inputs</code> - 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:context_int_provider</code> type<ul><li>Requires at least one value</ul></ul></ul><h3>Added <code>minecraft:min</code></h3><ul><li>Evaluates multiple integer providers and returns the smallest of results<li>Fields:<ul><li><code>inputs</code> - 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:context_int_provider</code> type<ul><li>Requires at least one value</ul></ul></ul><h3>Added <code>minecraft:mod</code></h3><ul><li>Returns the modulus of <code>left</code> by <code>right</code><li>Uses truncated integer division (rounds towards zero)<li>Division by zero is treated as an error and will cancel calculation<li>Fields:<ul><li><code>left</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type<li><code>right</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type</ul></ul><h3>Added <code>minecraft:floor_mod</code></h3><ul><li>Returns the modulus of <code>left</code> by <code>right</code><li>Uses floored integer division (rounds towards negative infinity)<li>Division by zero is treated as an error and will cancel calculation<li>Fields:<ul><li><code>left</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type<li><code>right</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type</ul></ul><h3>Added <code>minecraft:environment_attribute</code></h3><ul><li>Fetches and provides the value of an Environment Attribute (<code>minecraft:environment_attribute</code>)<li>Fields<ul><li><code>attribute</code> - Environment Attribute ID to fetch (must be representable as an int)</ul></ul><h3>Added <code>minecraft:negate</code></h3><ul><li>Returns the negation of <code>input</code><li>If the final result does not fit inside 32-bit integer, calculation will be canceled<li>Fields:<ul><li><code>input</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type</ul></ul><h3>Added <code>minecraft:number_dispatcher</code></h3><ul><li>Returns the first case which fulfills its condition or the <code>default</code> if none do<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>value</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_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:context_int_provider</code> type<ul><li>Defaults to a constant <code>0</code> if omitted</ul></ul></ul><h3>Added <code>minecraft:pow</code></h3><ul><li>Returns <code>base</code> to the power of <code>exponent</code><li>If the exponent is negative, calculation will be canceled<li>If both the base and the exponent are zero, calculation will be canceled<li>If the final result does not fit inside 32-bit integer, calculation will be canceled<li>Fields:<ul><li><code>base</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type<li><code>exponent</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type</ul></ul><h3>Added <code>minecraft:mul</code></h3><ul><li>Evaluates multiple integer providers and returns product of results<li>If the final result does not fit inside 32-bit integer, calculation will be canceled<li>Fields:<ul><li><code>inputs</code> - 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:context_int_provider</code> type<ul><li>Requires at least one value</ul></ul></ul><h3>Added <code>minecraft:div</code></h3><ul><li>Returns <code>left</code> divided by <code>right</code><li>Uses truncated integer division (rounds towards zero)<li>Division by zero is treated as an error and will cancel calculation<li>Fields:<ul><li><code>left</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type<li><code>right</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type</ul></ul><h3>Added <code>minecraft:floor_div</code></h3><ul><li>Returns <code>left</code> divided by <code>right</code><li>Uses floored integer division (rounds towards negative infinity)<li>Division by zero is treated as an error and will cancel calculation<li>If the final result does not fit inside 32-bit integer, calculation will be canceled<li>Fields:<ul><li><code>left</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type<li><code>right</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type</ul></ul><h3>Added <code>minecraft:score</code></h3><ul><li>Returns a score of the selected target<li>If score is not present, provider returns value of <code>fallback</code><li>Fields:<ul><li><code>score</code> - objective name<li><code>target</code> - score holder (same format as in number provider version)<li><code>fallback</code> - an optional inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type, defaults to <code>0</code></ul></ul><h3>Added <code>minecraft:storage</code></h3><ul><li>Returns an integer value from a command storage<li>If value is not present, is not a number or path returned multiple values, provider returns value of <code>fallback</code><li>Conversion of numeric NBT values that are not an integer is undefined<li>Fields:<ul><li><code>storage</code> - a namespaced ID of a command storage<li><code>path</code> - an NBT path<li><code>fallback</code> - an optional inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type, defaults to <code>0</code></ul></ul><h3>Added <code>minecraft:add</code></h3><ul><li>Evaluates multiple integer providers and returns sum of results<li>If the final result does not fit inside 32-bit integer, calculation will be canceled<li>Fields:<ul><li><code>inputs</code> - 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:context_int_provider</code> type<ul><li>Requires at least one value</ul></ul></ul><h3>Added <code>minecraft:uniform</code></h3><ul><li>Picks a random integer from a closed range<li>Fields:<ul><li><code>min</code> - minimum value (inclusive), an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type<li><code>max</code> - maximum value (inclusive), an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type</ul></ul><h3>Added <code>minecraft:weighted_list</code></h3><ul><li>Returns a value from a distribution of weighted number providers<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:context_int_provider</code> type<li><code>weight</code> - a positive integer</ul></ul></ul></ul><h2>Float Number Providers</h2><ul><li>Added a <code>minecraft:context_float_provider</code> registry<li>All calculations are peformed using single-precision floating-point numbers (\"floats\")<li>Result of calculations that produce NaN and Infinity is undefined<li>Format:<ul><li><code>type</code> - a namespaced ID from <code>minecraft:context_float_provider_type</code> registry<li><code>&#60type-specific fields></code></ul></ul><h3>Added vanilla float number providers</h3><ul><li><code>minecraft:cooking/speed_default</code><ul><li>Returns the default speed multiplier for cooking fuel</ul><li><code>minecraft:cooking/normal_speed_multiplier</code><ul><li>Returns the speed multiplier for cooking fuel when used in a normal furnace</ul><li><code>minecraft:cooking/fast_speed_multiplier</code><ul><li>Returns the speed multiplier for cooking fuel when used in a block matching the <code>block/fast_cooking</code> predicate</ul><li><code>minecraft:brewing/speed_default</code><ul><li>Returns the default speed multiplier for brewing fuel</ul></ul><h3>Added <code>minecraft:abs</code></h3><ul><li>Returns the absolute value of <code>input</code><li>Fields:<ul><li><code>input</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:avg</code></h3><ul><li>Evaluates multiple float providers and returns arithmetic mean of results<li>Fields:<ul><li><code>inputs</code> - 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:context_float_provider</code> type<ul><li>Requires at least one value</ul></ul></ul><h3>Added <code>minecraft:ceil</code></h3><ul><li>Returns the ceiling (i.e. rounded towards positive infinity) value of <code>input</code><li>Fields:<ul><li><code>input</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:conditional</code></h3><ul><li>Returns the value from <code>on_true</code> if its condition is fulfilled or <code>on_false</code> if not<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:context_float_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:context_float_provider</code> type<ul><li>Defaults to a constant <code>0.0</code> if omitted</ul></ul></ul><h3>Added <code>minecraft:constant</code></h3><ul><li>Returns a constant value<li>Fields:<ul><li><code>value</code> - a float</ul><li>Can be also written inline as a plain number (<code>foo: 1.0</code> is equivalent to <code>foo: {type:\"minecraft:constant\",value:1.0}</code>)</ul><h3>Added <code>minecraft:cos</code></h3><ul><li>Returns the cosine of <code>input</code><li>Fields:<ul><li><code>input</code> - argument in radians, an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:sub</code></h3><ul><li>Returns <code>left</code> minus <code>right</code><li>Fields:<ul><li><code>left</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type<li><code>right</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:enchantment_level</code></h3><ul><li>Evaluates Enchantment Level-Based (<code>minecraft:enchantment_level_based_value_type</code>) parameter<li>Fields:<ul><li><code>amount</code>: A Level-Based Value giving a value based on the level of the Enchantment</ul></ul><h3>Added <code>minecraft:environment_attribute</code></h3><ul><li>Fetches and provides the value of an Environment Attribute (<code>minecraft:environment_attribute</code>)<li>Fields<ul><li><code>attribute</code> - Environment Attribute ID to fetch (must be representable as a float)</ul></ul><h3>Added <code>minecraft:floor</code></h3><ul><li>Returns the floored (i.e. rounded towards negative infinity) value of <code>input</code><li>Fields:<ul><li><code>input</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:from_int</code></h3><ul><li>Evaluates an integer provider and converts it to a float value<li>Fields:<ul><li><code>input</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type</ul></ul><h3>Added <code>minecraft:length</code></h3><ul><li>Evaluates multiple float providers and returns square root of the sum of squares<li>Fields:<ul><li><code>inputs</code> - 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:context_float_provider</code> type<ul><li>Requires at least one value</ul></ul></ul><h3>Added <code>minecraft:max</code></h3><ul><li>Evaluates multiple float providers and returns the largest of result<li>Fields:<ul><li><code>inputs</code> - 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:context_float_provider</code> type<ul><li>Requires at least one value</ul></ul></ul><h3>Added <code>minecraft:min</code></h3><ul><li>Evaluates multiple float providers and returns the smallest of results<li>Fields:<ul><li><code>inputs</code> - 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:context_float_provider</code> type<ul><li>Requires at least one value</ul></ul></ul><h3>Added <code>minecraft:mod</code></h3><ul><li>Returns the modulus of <code>left</code> by <code>right</code><li>Fields:<ul><li><code>left</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type<li><code>right</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:negate</code></h3><ul><li>Returns the negation of <code>input</code><li>Fields:<ul><li><code>input</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:number_dispatcher</code></h3><ul><li>Returns the first case which fulfills its condition or the <code>default</code> if none do<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>value</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_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:context_float_provider</code> type<ul><li>Defaults to a constant <code>0.0</code> if omitted</ul></ul></ul><h3>Added <code>minecraft:pow</code></h3><ul><li>Returns <code>base</code> to the power of <code>exponent</code><li>Fields:<ul><li><code>base</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type<li><code>exponent</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:mul</code></h3><ul><li>Evaluates multiple float providers and returns product of results<li>Fields:<ul><li><code>inputs</code> - 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:context_float_provider</code> type<ul><li>Requires at least one value</ul></ul></ul><h3>Added <code>minecraft:div</code></h3><ul><li>Returns <code>left</code> divided by <code>right</code><li>Fields:<ul><li><code>left</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type<li><code>right</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:round</code></h3><ul><li>Returns the rounded (towards nearest integer, with ties rounding towards positive infinity) value of <code>input</code><li>Fields:<ul><li><code>input</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:sin</code></h3><ul><li>Returns the sine of <code>input</code><li>Fields:<ul><li><code>input</code> - argument in radians, an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:sqrt</code></h3><ul><li>Returns the square root of <code>input</code><li>Fields:<ul><li><code>input</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:storage</code></h3><ul><li>Returns a float value from a command storage<li>If value is not present, is not a number or path returned multiple values, provider returns value of <code>fallback</code><li>Conversion of numeric NBT values that are not a float is undefined<li>Fields:<ul><li><code>storage</code> - a namespaced ID of a command storage<li><code>path</code> - an NBT path<li><code>fallback</code> - an optional inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type, defaults to <code>0.0</code></ul></ul><h3>Added <code>minecraft:add</code></h3><ul><li>Evaluates multiple float providers and returns sum of results<li>Fields:<ul><li><code>inputs</code> - 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:context_float_provider</code> type<ul><li>Requires at least one value</ul></ul></ul><h3>Added <code>minecraft:truncate</code></h3><ul><li>Returns the truncated (rounded towards zero) value of <code>input</code><li>Fields:<ul><li><code>input</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:uniform</code></h3><ul><li>Picks a random number from a range<li>Fields:<ul><li><code>min</code> - minimum value, an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type<li><code>max</code> - maximum value, an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type</ul></ul><h3>Added <code>minecraft:weighted_list</code></h3><ul><li>Returns a value from a distribution of weighted number providers<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:context_float_provider</code> type<li><code>weight</code> - a positive integer</ul></ul></ul></ul><h2>Villager Trades</h2><ul><li>The <code>max_uses</code> and <code>xp</code> fields now require an inline value of a <code>minecraft:context_int_provider</code> type<li>The <code>count</code> field in <code>wants</code> and <code>additional_wants</code> structures now require an inline value of a <code>minecraft:context_int_provider</code> type<li>The <code>reputation_discount</code> field now requires an inline value of a <code>minecraft:context_float_provider</code> type</ul><h2>Commands</h2><h3>Modified <code>/compute</code></h3><ul><li><p>Command syntax has been modified to take into account number provider split:<ul><li><code>/compute &#60target> integer &#60int_provider></code><ul><li>where <code>&#60int_provider></code> either an element of <code>minecraft:context_int_provider</code> registry or an inline value</ul><li><code>/compute &#60target> float &#60float_provider> [&#60scale>]</code><ul><li>where <code>&#60float_provider></code> either an element of <code>minecraft:context_float_provider</code> registry or an inline value</ul></ul><li><p>If evaluation of a number provider fails (for example due to division by zero), command will now fail</ul><h3>Modified <code>/data</code></h3><ul><li>Command syntax has been modified to take into account number provider split:<ul><li><code>compute &#60target> integer &#60int_provider></code><li><code>compute &#60target> float &#60float_provider></code></ul></ul><h2>Data Components</h2><h3>Changed <code>minecraft:cooking_fuel</code></h3><ul><li><code>burn_time</code> field is now <code>minecraft:context_int_provider</code><li><code>speed_multiplier</code> field is now <code>minecraft:context_float_provider</code><li>Cooking fuel items with remainders will be handled as follows<ul><li>If there is fuel remaining in the fuel slot, the remainder item will be dropped on the ground<li>If the fuel has run out, the remainder item will remain in the fuel slot</ul></ul><h3>Changed <code>minecraft:brewing_fuel</code></h3><ul><li><code>uses</code> field is now <code>minecraft:context_int_provider</code><li><code>speed_multiplier</code> field is now <code>minecraft:context_float_provider</code><li>Brewing fuel items with remainders will be handled as follows<ul><li>If there is fuel remaining in the fuel slot, the remainder item will be dropped on the ground<li>If the fuel has run out, the remainder item will remain in the fuel slot<li>This behavior matches items placed in the input and reagent slots of the brewing stand</ul></ul><h3>Changed <code>minecraft:compostable</code></h3><ul><li><code>layers</code> field is now <code>minecraft:context_int_provider</code></ul><h2>Loot tables</h2><ul><li><code>rolls</code> field is now <code>minecraft:context_int_provider</code><li><code>bonus_rolls</code> field is now <code>minecraft:context_float_provider</code></ul><h2>Functions</h2><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:context_float_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:context_float_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:context_int_provider</code> type</ul><h3>Changed <code>minecraft:set_custom_model_data</code></h3><ul><li>Elements in the <code>floats</code> list can now be an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type<li>Elements in the <code>colors</code> lists can now be an inline value or a namespaced ID of a <code>minecraft:context_int_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:context_int_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:context_int_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:context_int_provider</code> type<li><code>limit</code> field no longer accepts a single number</ul><h3>Changed <code>minecraft:set_damage</code></h3><ul><li>The <code>damage</code> field now accepts an inline value or a namespaced ID of a <code>minecraft:context_float_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:context_int_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:context_int_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:context_int_provider</code> type</ul><h2>Predicates</h2><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:context_float_provider</code> type</ul><h3>Removed <code>minecraft:value_check</code></h3><ul><li>This condition has been split into integer and float variants</ul><h3>Added <code>minecraft:int_value_check</code></h3><ul><li>Checks value against some range</ul><p>Fields:<ul><li><code>value</code> - an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type<li><code>test</code> - one of:<ul><li>an inline value (including a single integer) or a namespaced ID of a <code>minecraft:context_int_provider</code> type<ul><li>Will test if result of <code>value</code> is equal to provided <code>test</code> value</ul><li>an object with fields:<ul><li><code>min</code> - an optional inline value (including a single integer) or a namespaced ID of a <code>minecraft:context_int_provider</code> type<li><code>max</code> - an optional inline value (including a single integer) or a namespaced ID of a <code>minecraft:context_int_provider</code> type<li>Will test if result of <code>value</code> is between <code>min</code> and <code>max</code> (inclusive)</ul></ul></ul><h3>Added <code>minecraft:float_value_check</code></h3><ul><li>Checks value against some range</ul><p>Fields:<ul><li><code>value</code> - an inline value or a namespaced ID of a <code>minecraft:context_float_provider</code> type<li><code>test</code> - one of:<ul><li>an inline value (including a single float) or a namespaced ID of a <code>minecraft:context_float_provider</code> type<ul><li>Will test if result of <code>value</code> is equal to provided <code>test</code> value</ul><li>an object with fields:<ul><li><code>min</code> - an optional inline value (including a single float) or a namespaced ID of a <code>minecraft:context_float_provider</code> type<li><code>max</code> - an optional inline value (including a single float) or a namespaced ID of a <code>minecraft:context_float_provider</code> type<li>Will test if result of <code>value</code> is between <code>min</code> and <code>max</code> (inclusive)</ul></ul></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:context_int_provider</code> type<li><code>value</code> field itself now accepts an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type (previously only integers were allowed)</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:context_int_provider</code> type<li><code>scores</code> field itself now accepts an inline value or a namespaced ID of a <code>minecraft:context_int_provider</code> type (previously only integers were allowed)</ul><h2>Recipes</h2><h3>Cooking Recipes</h3><ul><li><p>The <code>cookingtime</code> field of all cooking recipes is no longer optional<li><p>Custom Smoker and Blast Furnace recipes should be updated accordingly, by setting <code>cookingtime</code> to twice the previous value<li><p>If a custom cooking recipe was previously relying on the default <code>cookingtime</code> value, 200 can be used to maintain the same timing</ul><h2>World Generation</h2><h3>Block State Providers</h3><p>Block State Providers can now be defined as standalone types in a registry - <code>worldgen/block_state_provider</code>- and referenced by using a namespaced string for a field that expects a Block State Provider.<p>An inline Block State definition is now an accepted shorthand form for a <code>minecraft:simple</code> 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.<h4>Renamed Provider Types</h4><p>The following providers types have been renamed:<ul><li><code>minecraft:dual_noise_provider</code> renamed to <code>minecraft:dual_noise</code><li><code>minecraft:noise_provider</code> renamed to <code>minecraft:noise</code><li><code>minecraft:noise_threshold_provider</code> renamed to <code>minecraft:noise_threshold</code><li><code>minecraft:randomized_int_state_provider</code> renamed to <code>minecraft:randomized_int</code><li><code>minecraft:rule_based_state_provider</code> renamed to <code>minecraft:rule_based</code><li><code>minecraft:simple_state_provider</code> renamed to <code>minecraft:simple</code><li><code>minecraft:weighted_state_provider</code> renamed to <code>minecraft:weighted</code><li><code>minecraft:random_block_provider</code> renamed to <code>minecraft:random_block</code><li><code>minecraft:rotated_block_provider</code> renamed to <code>minecraft:rotated</code></ul><h4>Changed <code>minecraft:rule_based</code></h4><ul><li>If a rule yields no result, the following rules will be evaluated<li>If no rule or <code>fallback</code> yields a result, will now also yield no result</ul><h2>Villager Trades</h2><ul><li>The <code>max_uses</code> and <code>xp</code> fields now require an inline value of a <code>minecraft:context_int_provider</code> type<li>The <code>count</code> field in <code>wants</code> and <code>additional_wants</code> structures now require an inline value of a <code>minecraft:context_int_provider</code> type<li>The <code>reputation_discount</code> field now requires an inline value of a <code>minecraft:context_float_provider</code> type</ul><h2>Tags</h2><h3>Item Tags</h3><ul><li>Added <code>#furnace_fuel_bottom_takeable</code> - Items that can be taken out of furnace by a hopper attached to the bottom face</ul><h1>Resource Pack Version 97.1</h1><h3>Order-independent Transparency (OIT)-related Shader Changes</h3><ul><li><code>core/blit_depth.fsh</code> added as a way to copy contents of depth textures as an alternative to the rendering backend-based copying methods that do not work on some devices</ul><h1>Fixed bugs in 26.3 Pre-Release 1</h1><ul><li><a href=https://bugs.mojang.com/browse/MC-154881 rel=\"noopener noreferrer\"target=_blank>MC-154881</a> - Dropping an item from your hotbar at the same time as switching to another hotbar slot desyncs the second item<li><a href=https://bugs.mojang.com/browse/MC-254370 rel=\"noopener noreferrer\"target=_blank>MC-254370</a> - The <code>entity_scores</code> predicate type cannot check all possible scores<li><a href=https://bugs.mojang.com/browse/MC-270970 rel=\"noopener noreferrer\"target=_blank>MC-270970</a> - The player's camera shakes when attempting to step up blocks with a boat above them<li><a href=https://bugs.mojang.com/browse/MC-277906 rel=\"noopener noreferrer\"target=_blank>MC-277906</a> - Ender pearls land incorrectly at high speeds<li><a href=https://bugs.mojang.com/browse/MC-309768 rel=\"noopener noreferrer\"target=_blank>MC-309768</a> - Persistent targets in <code>post_effects</code> are not cleared when removing the effect with <code>/posteffect</code><li><a href=https://bugs.mojang.com/browse/MC-309855 rel=\"noopener noreferrer\"target=_blank>MC-309855</a> - The entity texture of black cushions has one extra color compared to all other cushions<li><a href=https://bugs.mojang.com/browse/MC-309870 rel=\"noopener noreferrer\"target=_blank>MC-309870</a> - Drowned holding spears can use both the jab and charge attacks at the same time<li><a href=https://bugs.mojang.com/browse/MC-310289 rel=\"noopener noreferrer\"target=_blank>MC-310289</a> - Entity collisions fully above an entity's hitbox are ignored when stepping up blocks<li><a href=https://bugs.mojang.com/browse/MC-310331 rel=\"noopener noreferrer\"target=_blank>MC-310331</a> - The game crashes on Wayland with the OpenGL rendering backend<li><a href=https://bugs.mojang.com/browse/MC-310332 rel=\"noopener noreferrer\"target=_blank>MC-310332</a> - The mouse cursor's position isn't updated after closing a singleplayer world and entering the title screen<li><a href=https://bugs.mojang.com/browse/MC-310522 rel=\"noopener noreferrer\"target=_blank>MC-310522</a> - Pressing Right Shift in textboxes toggles fullscreen under specific conditions<li><a href=https://bugs.mojang.com/browse/MC-310646 rel=\"noopener noreferrer\"target=_blank>MC-310646</a> - The textures of shelf mushrooms contain several unused pixels<li><a href=https://bugs.mojang.com/browse/MC-310710 rel=\"noopener noreferrer\"target=_blank>MC-310710</a> - A few maps' item textures have inconsistent details compared to the others<li><a href=https://bugs.mojang.com/browse/MC-310712 rel=\"noopener noreferrer\"target=_blank>MC-310712</a> - Using a Nether portal in Spectator mode while spectating an entity now causes the player to stop spectating when the other side is not generated<li><a href=https://bugs.mojang.com/browse/MC-310830 rel=\"noopener noreferrer\"target=_blank>MC-310830</a> - The scissor bounds check ignores the render area's Y offset<li><a href=https://bugs.mojang.com/browse/MC-310957 rel=\"noopener noreferrer\"target=_blank>MC-310957</a> - The player is unable to perform a sweep attack for a brief moment after blocking an attack with their shield<li><a href=https://bugs.mojang.com/browse/MC-310990 rel=\"noopener noreferrer\"target=_blank>MC-310990</a> - The \"Join Realm\" button can extend out of the screen<li><a href=https://bugs.mojang.com/browse/MC-311037 rel=\"noopener noreferrer\"target=_blank>MC-311037</a> - The same \"Join Realm\" string is used for two buttons with different meanings<li><a href=https://bugs.mojang.com/browse/MC-311129 rel=\"noopener noreferrer\"target=_blank>MC-311129</a> - Dappled forests use the <code>music.overworld.flower_forest</code> sound event instead of <code>music.overworld.forest</code><li><a href=https://bugs.mojang.com/browse/MC-311183 rel=\"noopener noreferrer\"target=_blank>MC-311183</a> - Fuel in blast furnaces and smokers smelts double the items<li><a href=https://bugs.mojang.com/browse/MC-311222 rel=\"noopener noreferrer\"target=_blank>MC-311222</a> - NBT to SNBT data generators crash when attempting to convert old NBT files<li><a href=https://bugs.mojang.com/browse/MC-311236 rel=\"noopener noreferrer\"target=_blank>MC-311236</a> - The <code>block_transformer</code> component ignores the <code>use_cooldown</code> component<li><a href=https://bugs.mojang.com/browse/MC-311274 rel=\"noopener noreferrer\"target=_blank>MC-311274</a> - The default value of the <code>cookingtime</code> field for blasting and smoking recipes is still 100<li><a href=https://bugs.mojang.com/browse/MC-311297 rel=\"noopener noreferrer\"target=_blank>MC-311297</a> - Keyboard input is picked up by input methods even when no text input box is selected<li><a href=https://bugs.mojang.com/browse/MC-311298 rel=\"noopener noreferrer\"target=_blank>MC-311298</a> - On certain locales, pressing Right Shift while the \"Toggle Cinematic Camera\" key bind is unbound will toggle it<li><a href=https://bugs.mojang.com/browse/MC-311364 rel=\"noopener noreferrer\"target=_blank>MC-311364</a> - Category headers in some screens still can't be selected<li><a href=https://bugs.mojang.com/browse/MC-311369 rel=\"noopener noreferrer\"target=_blank>MC-311369</a> - The World Options screen is not centered<li><a href=https://bugs.mojang.com/browse/MC-311372 rel=\"noopener noreferrer\"target=_blank>MC-311372</a> - Endermen can now teleport onto waterlogged blocks<li><a href=https://bugs.mojang.com/browse/MC-311384 rel=\"noopener noreferrer\"target=_blank>MC-311384</a> - Empty buried treasure maps from previous updates are called \"filled_map.buried_treasure\"<li><a href=https://bugs.mojang.com/browse/MC-311390 rel=\"noopener noreferrer\"target=_blank>MC-311390</a> - The swimming animation of drowned is incorrect<li><a href=https://bugs.mojang.com/browse/MC-311391 rel=\"noopener noreferrer\"target=_blank>MC-311391</a> - Leaving the Enter Join Code screen always brings you to the main Realms screen<li><a href=https://bugs.mojang.com/browse/MC-311399 rel=\"noopener noreferrer\"target=_blank>MC-311399</a> - Enabling commands in the World Options screen and clicking \"Edit Game Rules\" shows an infinite loading screen<li><a href=https://bugs.mojang.com/browse/MC-311400 rel=\"noopener noreferrer\"target=_blank>MC-311400</a> - Arrows now bounce off endermen even when they teleport<li><a href=https://bugs.mojang.com/browse/MC-311414 rel=\"noopener noreferrer\"target=_blank>MC-311414</a> - Players can teleport arbitrary distances by using a desynced carrot on a stick on a pig<li><a href=https://bugs.mojang.com/browse/MC-311423 rel=\"noopener noreferrer\"target=_blank>MC-311423</a> - Moving then opening the inventory does not allow input from IME, and switching the input method immediately inserts previous inputs<li><a href=https://bugs.mojang.com/browse/MC-311428 rel=\"noopener noreferrer\"target=_blank>MC-311428</a> - Number providers lose precision when reading the initial values in integer mode<li><a href=https://bugs.mojang.com/browse/MC-311431 rel=\"noopener noreferrer\"target=_blank>MC-311431</a> - Abandoned camps located on biome edges can generate explorer maps leading to themselves<li><a href=https://bugs.mojang.com/browse/MC-311472 rel=\"noopener noreferrer\"target=_blank>MC-311472</a> - Turning off commands on the World Options screen doesn't properly reset the personal game mode<li><a href=https://bugs.mojang.com/browse/MC-311478 rel=\"noopener noreferrer\"target=_blank>MC-311478</a> - Copper veins generate ores with stone variants on the deepslate layer<li><a href=https://bugs.mojang.com/browse/MC-311486 rel=\"noopener noreferrer\"target=_blank>MC-311486</a> - Veins of deepslate iron ore and tuff now generate above y=0<li><a href=https://bugs.mojang.com/browse/MC-311546 rel=\"noopener noreferrer\"target=_blank>MC-311546</a> - Locking the difficulty of a world doesn't immediately disable the difficulty button</ul>","id":"9459bbbb7dd85b60a7c0034f11c032eac19b66a91fe04c799f6c6149c12302c4","date":"2026-09-01T11:29:01.000Z","needsTranslation":false}