
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.
Happy mining!
minecraft:number_provider and minecraft:number_provider_type registries have been split into separate registries for integer calculations (minecraft:context_int_provider, minecraft:context_int_provider_type) and float calculations (minecraft:context_float_provider, )Number provider types and values have been split into two separate registries: minecraft:context_int_provider and minecraft:context_float_provider to avoid accidental loss of precision and range due to mixing of float and integer operations
Note: those new types should not be confused with already existing minecraft:int_provider_type and minecraft:float_provider_type, which are context-free providers, used mostly for world generation
Following number provider types have been split into integer and float variants:
minecraft:constantminecraft:uniformminecraft:storageminecraft:sum (renamed to minecraft:add)Following number providers types are now only available in integer variant:
minecraft:binomialminecraft:scoreFollowing number providers types are now only available in float variant:
minecraft:enchantment_levelFollowing vanilla number providers have been migrated to minecraft:context_int_provider registry:
minecraft:compostable/lowminecraft:compostable/low_mediumminecraft:compostable/mediumminecraft:compostable/medium_highminecraft:compostable/always_add_oneFollowing vanilla number providers have been migrated to minecraft:context_float_provider registry:
minecraft:cooking/speed_defaultminecraft:cooking/normal_speed_multiplierminecraft:cooking/fast_speed_multiplierminecraft:brewing/speed_defaultFollowing vanilla number providers have been removed:
minecraft:cooking/normal_burn_time_multiplier (replaced by minecraft:cooking/normal_burn_time_reduction_factor)minecraft:cooking/fast_burn_time_multiplier (replaced by minecraft:cooking/fast_burn_time_reduction_factor)minecraft:context_int_provider registrytype - a namespaced ID from minecraft:context_int_provider_type registry<type-specific fields>minecraft:abs#inputinput - an inline value or a namespaced ID of a minecraft:context_int_provider typeminecraft:avg#0inputs - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a minecraft:context_int_provider typeminecraft:binomial#n random coin flips with probability of succeeding equal to p, then returns number of successesn - number of coin flips, an inline value or a namespaced ID of a minecraft:context_int_provider typep - probability of a single coin flip succeeding (), an inline value or a namespaced ID of a typeminecraft:conditional#on_true if its condition is fulfilled or on_false if notcondition - an inline value or a namespaced ID of a minecraft:predicate typeon_true - an inline value or a namespaced ID of a type which is executed if its condition is fulfilledminecraft:constant#value - an integerfoo: 1 is equivalent to foo: {type:"minecraft:constant",value:1})minecraft:sub#left minus rightleft - an inline value or a namespaced ID of a minecraft:context_int_provider typeright - an inline value or a namespaced ID of a typeminecraft:from_float#NaN) are treated as errors and will cancel calculationinput - an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:max#inputs - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a minecraft:context_int_provider typeminecraft:min#inputs - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a minecraft:context_int_provider typeminecraft:mod#left by rightleft - an inline value or a namespaced ID of a minecraft:context_int_provider typeright - an inline value or a namespaced ID of a typeminecraft:floor_mod#left by rightleft - an inline value or a namespaced ID of a minecraft:context_int_provider typeright - an inline value or a namespaced ID of a typeminecraft:environment_attribute#minecraft:environment_attribute)attribute - Environment Attribute ID to fetch (must be representable as an int)minecraft:negate#inputinput - an inline value or a namespaced ID of a minecraft:context_int_provider typeminecraft:number_dispatcher#default if none docases - a list of cases in the order that the dispatcher will try to execute themcondition - an inline value or a namespaced ID of a minecraft:predicate typevalue - an inline value or a namespaced ID of a type which is executed if the condition is fulfilledminecraft:pow#base to the power of exponentbase - an inline value or a namespaced ID of a minecraft:context_int_provider typeexponent - an inline value or a namespaced ID of a typeminecraft:mul#inputs - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a minecraft:context_int_provider typeminecraft:div#left divided by rightleft - an inline value or a namespaced ID of a minecraft:context_int_provider typeright - an inline value or a namespaced ID of a typeminecraft:floor_div#left divided by rightleft - an inline value or a namespaced ID of a minecraft:context_int_provider typeright - an inline value or a namespaced ID of a typeminecraft:score#fallbackscore - objective nametarget - score holder (same format as in number provider version)fallback - an optional inline value or a namespaced ID of a minecraft:context_int_provider type, defaults to minecraft:storage#fallbackstorage - a namespaced ID of a command storagepath - an NBT pathfallback - an optional inline value or a namespaced ID of a minecraft:context_int_provider type, defaults to minecraft:add#inputs - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a minecraft:context_int_provider typeminecraft:uniform#min - minimum value (inclusive), an inline value or a namespaced ID of a minecraft:context_int_provider typemax - maximum value (inclusive), an inline value or a namespaced ID of a minecraft:context_int_provider typeminecraft:weighted_list#distribution - a list of objects with the following fieldsdata - an inline value or a namespaced ID of a minecraft:context_int_provider typeweight - a positive integerminecraft:context_float_provider registrytype - a namespaced ID from minecraft:context_float_provider_type registry<type-specific fields>minecraft:cooking/speed_defaultminecraft:cooking/normal_speed_multiplierminecraft:cooking/fast_speed_multiplierblock/fast_cooking predicateminecraft:abs#inputinput - an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:avg#inputs - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a minecraft:context_float_provider typeminecraft:ceil#inputinput - an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:conditional#on_true if its condition is fulfilled or on_false if notconditions - an inline value or a namespaced ID of a minecraft:predicate typeon_true - an inline value or a namespaced ID of a type which is executed if its condition is fulfilledminecraft:constant#value - a floatfoo: 1.0 is equivalent to foo: {type:"minecraft:constant",value:1.0})minecraft:cos#inputinput - argument in radians, an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:sub#left minus rightleft - an inline value or a namespaced ID of a minecraft:context_float_provider typeright - an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:enchantment_level#minecraft:enchantment_level_based_value_type) parameteramount: A Level-Based Value giving a value based on the level of the Enchantmentminecraft:environment_attribute#minecraft:environment_attribute)attribute - Environment Attribute ID to fetch (must be representable as a float)minecraft:floor#inputinput - an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:from_int#input - an inline value or a namespaced ID of a minecraft:context_int_provider typeminecraft:length#inputs - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a minecraft:context_float_provider typeminecraft:max#inputs - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a minecraft:context_float_provider typeminecraft:min#inputs - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a minecraft:context_float_provider typeminecraft:mod#left by rightleft - an inline value or a namespaced ID of a minecraft:context_float_provider typeright - an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:negate#inputinput - an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:number_dispatcher#default if none docases - a list of cases in the order that the dispatcher will try to execute themcondition - an inline value or a namespaced ID of a minecraft:predicate typevalue - an inline value or a namespaced ID of a type which is executed if the condition is fulfilledminecraft:pow#base to the power of exponentbase - an inline value or a namespaced ID of a minecraft:context_float_provider typeexponent - an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:mul#inputs - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a minecraft:context_float_provider typeminecraft:div#left divided by rightleft - an inline value or a namespaced ID of a minecraft:context_float_provider typeright - an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:round#inputinput - an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:sin#inputinput - argument in radians, an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:sqrt#inputinput - an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:storage#fallbackstorage - a namespaced ID of a command storagepath - an NBT pathfallback - an optional inline value or a namespaced ID of a minecraft:context_float_provider type, defaults to minecraft:add#inputs - an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash-prefixed tag ID of a minecraft:context_float_provider typeminecraft:truncate#inputinput - an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:uniform#min - minimum value, an inline value or a namespaced ID of a minecraft:context_float_provider typemax - maximum value, an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:weighted_list#distribution - a list of objects with the following fieldsdata - an inline value or a namespaced ID of a minecraft:context_float_provider typeweight - a positive integermax_uses and xp fields now require an inline value of a minecraft:context_int_provider typecount field in wants and additional_wants structures now require an inline value of a type/compute#Command syntax has been modified to take into account number provider split:
/compute <target> integer <int_provider><int_provider> either an element of minecraft:context_int_provider registry or an inline value/data#compute <target> integer <int_provider>compute <target> float <float_provider>minecraft:cooking_fuel#burn_time field is now minecraft:context_int_providerspeed_multiplier field is now minecraft:context_float_providerminecraft:brewing_fuel#uses field is now minecraft:context_int_providerspeed_multiplier field is now minecraft:context_float_providerminecraft:compostable#layers field is now minecraft:context_int_providerrolls field is now minecraft:context_int_providerbonus_rolls field is now minecraft:context_float_providerminecraft:set_attributes#amount sub-fields of modifiers list now accept an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:enchanted_count_increase#count field now accepts an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:enchant_with_levels#levels field now accepts an inline value or a namespaced ID of a minecraft:context_int_provider typeminecraft:set_custom_model_data#floats list can now be an inline value or a namespaced ID of a minecraft:context_float_provider typecolors lists can now be an inline value or a namespaced ID of a minecraft:context_int_provider typeminecraft:set_enchantments#enchantments map can now be an inline value or a namespaced ID of a minecraft:context_int_provider typeminecraft:set_count#count field now accepts an inline value or a namespaced ID of a minecraft:context_int_provider typeminecraft:limit_count#min and max fields inside limit structure now accept an inline value or a namespaced ID of a minecraft:context_int_provider typelimit field no longer accepts a single numberminecraft:set_damage#damage field now accepts an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:set_ominous_bottle_amplifier#amplifier field now accepts an inline value or a namespaced ID of a minecraft:context_int_provider typeminecraft:set_random_dyes#number_of_dyes field now accepts an inline value or a namespaced ID of a minecraft:context_int_provider typeminecraft:set_stew_effect#duration field in elements of effects list now accepts an inline value or a namespaced ID of a minecraft:context_int_provider typeminecraft:random_chance#chance field now accepts an inline value or a namespaced ID of a minecraft:context_float_provider typeminecraft:value_check#minecraft:int_value_check#Fields:
value - an inline value or a namespaced ID of a minecraft:context_int_provider typetest - one of:minecraft:context_int_provider typevalue is equal to provided valueminecraft:float_value_check#Fields:
value - an inline value or a namespaced ID of a minecraft:context_float_provider typetest - one of:minecraft:context_float_provider typevalue is equal to provided valueminecraft:time_check#min and max fields inside value structure now accept an inline value or a namespaced ID of a minecraft:context_int_provider typevalue field itself now accepts an inline value or a namespaced ID of a minecraft:context_int_provider type (previously only integers were allowed)minecraft:entity_scores#min and max fields inside values of scores map now accept an inline value or a namespaced ID of a minecraft:context_int_provider typescores field itself now accepts an inline value or a namespaced ID of a minecraft:context_int_provider type (previously only integers were allowed)cookingtime field of all cooking recipes is no longer optionalcookingtime to twice the previous valueIf a custom cooking recipe was previously relying on the default cookingtime value, 200 can be used to maintain the same timing
Block State Providers can now be defined as standalone types in a registry - worldgen/block_state_provider- and referenced by using a namespaced string for a field that expects a Block State Provider.
An inline Block State definition is now an accepted shorthand form for a minecraft:simple block state provider providing that state. The Block State has to be in the form of an object with fields, a shorthand Block ID is not allowed.
The following providers types have been renamed:
minecraft:dual_noise_provider renamed to minecraft:dual_noiseminecraft:noise_provider renamed to minecraft:noiseminecraft:noise_threshold_provider renamed to minecraft:rule_based#fallback yields a result, will now also yield no resultmax_uses and xp fields now require an inline value of a minecraft:context_int_provider typecount field in wants and additional_wants structures now require an inline value of a type#furnace_fuel_bottom_takeable - Items that can be taken out of furnace by a hopper attached to the bottom facecore/blit_depth.fsh 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 devicesentity_scores predicate type cannot check all possible scorespost_effects are not cleared when removing the effect with /posteffectminecraft:context_float_provider_typeminecraft:productminecraft:mulminecraft:minimum (renamed to minecraft:min)minecraft:maximum (renamed to minecraft:max)minecraft:average (renamed to minecraft:avg)minecraft:weighted_listminecraft:conditionalminecraft:number_dispatcherminecraft:environment_attributeminecraft:cooking/time_bamboominecraft:cooking/time_wool_slabsminecraft:cooking/time_wool_carpetsminecraft:cooking/time_dry_plantsminecraft:cooking/time_wood_items_extra_smallminecraft:cooking/time_woolminecraft:cooking/time_wood_slabsminecraft:cooking/time_wood_items_largeminecraft:cooking/time_wood_items_smallminecraft:cooking/time_rootsminecraft:cooking/time_wood_blocksminecraft:cooking/time_hanging_signsminecraft:cooking/time_boatsminecraft:cooking/time_coalminecraft:cooking/time_blaze_rodminecraft:cooking/time_dried_kelp_blockminecraft:cooking/time_coal_blockminecraft:cooking/time_lava_bucketminecraft:brewing/uses_default[0.0, 1.0]minecraft:context_float_provideron_false - an optional inline value or a namespaced ID of a minecraft:context_int_provider type0 if omittedminecraft:context_int_providerminecraft:context_int_providerminecraft:context_int_providerminecraft:context_int_providerdefault - an optional inline value or a namespaced ID of a minecraft:context_int_provider type0 if omittedminecraft:context_int_providerminecraft:context_int_providerminecraft:context_int_provider00minecraft:brewing/speed_defaulton_false - an optional inline value or a namespaced ID of a minecraft:context_float_provider type0.0 if omittedminecraft:context_float_providerdefault - an optional inline value or a namespaced ID of a minecraft:context_float_provider type0.0 if omitted0.0minecraft:context_int_providerreputation_discount field now requires an inline value of a minecraft:context_float_provider type/compute <target> float <float_provider> [<scale>]<float_provider> either an element of minecraft:context_float_provider registry or an inline valueIf evaluation of a number provider fails (for example due to division by zero), command will now fail
testmin - an optional inline value (including a single integer) or a namespaced ID of a minecraft:context_int_provider typemax - an optional inline value (including a single integer) or a namespaced ID of a minecraft:context_int_provider typevalue is between min and max (inclusive)testmin - an optional inline value (including a single float) or a namespaced ID of a minecraft:context_float_provider typemax - an optional inline value (including a single float) or a namespaced ID of a minecraft:context_float_provider typevalue is between min and max (inclusive)minecraft:noise_thresholdminecraft:randomized_int_state_provider renamed to minecraft:randomized_intminecraft:rule_based_state_provider renamed to minecraft:rule_basedminecraft:simple_state_provider renamed to minecraft:simpleminecraft:weighted_state_provider renamed to minecraft:weightedminecraft:random_block_provider renamed to minecraft:random_blockminecraft:rotated_block_provider renamed to minecraft:rotatedminecraft:context_int_providerreputation_discount field now requires an inline value of a minecraft:context_float_provider typemusic.overworld.flower_forest sound event instead of music.overworld.forestblock_transformer component ignores the use_cooldown componentcookingtime field for blasting and smoking recipes is still 100