
We're back with the second snapshot for 26.3! This week brings a new rendering option designed to improve transparency handling in Minecraft Java. We've also optimized certain mob behaviors when players aren't nearby, made a few gameplay adjustments, including technical changes and fixes.
Happy mining!
Developer's Note: Special thanks to Rubén Osorio López, Jozufozu, and the Minecraft modding community in general for sharing the information that helped us to deliver this.
definition field from the blocks.json data generation report has been removedwhite-list property is now true by defaultminecraft:block_transformer#block_state_provider - Block State Provider, used to provide the state for the transformed blockrule_based_state_provider, for example), the next rule in the list will be attemptedsound - optional field, Sound Event to play on interaction, e.g. minecraft:item.axe.strip - optional field, particles to play on interactiontill/rooted_dirt loot table for drops when Rooted Dirt is tilled with a hoeminecraft:copy_properties_provider Block State Provider#Copies common Block State properties from the Block at the evaluated position to the resulting state Format: object with fields:
block_state_provider: Block State Provider, provides the Block State which the copied properties are copied on top ofminecraft:stepped_column_cluster Feature Type#Renamed from minecraft:basalt_columns. Now exposes more control over the feature functionality.
Format changes:
block: Block state provider for which block to placecan_replace: Block predicate for which blocks can be replaced by the columncontinue_through: Block predicate for which pre-existing blocks to accept as part of a columncannot_place_on: Block ID, list of block IDs or hash-prefixed block tag ID representing which blocks are avoided when starting placementreach to minecraft:single_block_pillar Feature Type#Renamed from minecraft:basalt_pillar. Now exposes more control over the feature functionality.
Format changes:
block: Block state provider for which block to placecan_replace: Block predicate for which blocks to replacedirection: Vertical direction of the pillar - one of up and downchance_to_continue: Optional probability between and (default: ) that the pillar continues another block (assuming matches)minecraft:random_neighbor_spread Feature Type#Renamed from minecraft:glowstone_blob. Now exposes more control over the feature. Places blocks randomly in an area starting at the origin, each block placing so it has exactly one accepted neighbor.
Format changes:
block: Block state provider for which block to placeaccepted_neighbors: Block ID, list of Block IDs or hash-prefixed Block Tag for which blocks count as a valid neighborcan_replace: Block predicate for which blocks to replaceattempts: Int provider between 1 and 3000 for how many placements attempts to makexz_offset: Int provider between -16 and 16 for what offsets to try along the x and z axesminecraft:overlay Feature Type#Places a set of features in the same location. Note that as opposed to the minecraft:sequence Feature Type, all features are placed regardless of individual placement success.
Format:
features: Placed Feature ID, non-empty list of Placed Feature IDs or hash-prefixed Placed Feature Tag for the features to placeminecraft:projected_random_patchy_square Feature Type#Generates a square where each block is randomly placed or not placed with its probability based on the distance from the center of the square, with the center more likely to generate than the edges. Each placed block can be projected downwards if the appropriate conditions are met.
Format:
block: Block state provider for which block to placeproject_through: Block Predicate for which blocks are considered "empty" and should be projected throughsize: Int provider between 1 and 16 that determines the size of the square as measured from the center to the edgemax_projection_height: Non-negative integer representing the maximum change in y level from the original height to the placement height for a block in the squareminecraft:offset Placement Modifier#Renamed from random_offset.
Format:
xz_spread and y_spreadx, y, z: Integer providers between -16 and 16 specifiying the axis-specific offsetThe spawn_target field has been updated to allow use of any Density Function, instead of just a subset of those defined within the noise_router field.
The suitability of a candidate spawn position is determined by evaluating, in some arbitrary n-dimensional space, the squared Euclidean distance to a set of target hypercubes.
For example, one axis might be temperature and the second erosion - and suitability determined by distance to the square between temperature=0.1, erosion=0.2 and temperature=0.3, erosion. This would prefer any candidate spawn within those ranges equally, while penalizing candidate spawns very far out of that range.
Format: list of target hypercubes
[min, max]min - float, the minimum value of the target rangemax - float, the maximum value of the target rangeminecraft:height_range#Checks the height of the position against a given range.
Format:
min_inclusive: Vertical Anchor describing the minimum height requiredmax_inclusive: Vertical Anchor describing the maximum height requiredrelative_to_sea_level - specifies an offset to the sea level of the dimensionworldgen/configured_carver registry has been renamed to worldgen/carverminecraft:cave Carver Type#config field have been inlined to the top-levelcount field - non-negative Int Provider, the number of Cave tunnels to create from a seed chunkyScale to room_vertical_radius_multiplierstart_vertical_radius_multiplier field - Float Provider, acts as a multiplier for the vertical radius of the first segment in each tunnelminecraft:canyon Carver Type#config field have been inlined to the top-levelyScale to shape.y_scalereplaceable field, carvers will replace any block (excluding features)lava_level field, fluids are now always selected by the aquifer or configuration in the dimensionminecraft:nether_cave Carver Type#minecraft:cave Carver Typeminecraft:very_biased_to_bottom Int Provider Type#Picks a random value in the provided range, with a quadratic bias towards the minimum value.
Format: object with fields:
min_inclusive - Integer, the minimum selected value (inclusive)max_inclusive - Integer, the maximum selected value (inclusive)#turns_into_dirt_path - contains all blocks that turn into Dirt Path blocks when a Shovel is used for pathmaking#overworld_carver_replaceables and #nether_carver_replaceables#dowses_campfires - items that can dowse a lit Campfire blockshelf_mushroom_particle.pngDeveloper's Note: Although it is possible in Resource Packs, overriding Core Shaders is considered as unsupported and not an intended Resource Pack feature. These shaders exist as part of the internal implementation of the game, and as such, may change at any time as the game's internals evolve. We understand that overriding Core Shaders is used for very cool Resource Pack features, many of which lack supported alternatives. We would like to provide better, supported alternatives in the future.
core/oit_composite.fshinclude/oit.glslinclude/oit_add_transmittance.glslinclude/oit_common.glslinclude/oit_depth_bounds.glslsee_through enablednonenonescrapewax_onwax_offdisallowed_faces - optional field, list of Directions specifying which faces on the clicked Block that cannot be interacted withupdownnorthsoutheastwestloot - optional Loot Table, the Loot Table to use for dropping items on a successful transformation, e.g. minecraft:till/rooted_dirtdrop_strategy - optional field, configures from where in the Block any loot should dropfrom_middlefrom_middle - from the middle of the Blockclicked_face - from the face interacted withtransform_type - optional field, configures how nearby blocks should be affected by the transformationsingle_blocksingle_block - only affects the Block interacted withcopper_chest - if input and output blocks are both copper chests of any weathering state, waxed or unwaxed, this transformation will affect both sides of a double chestconsume_on_use - optional Boolean, determines if the item should be consumed or nottrueitem_damage_per_use - optional Integer, determines how much damage the item takes with each use1column_reachcolumn_count: int provider (between 1 and 150) - the number of columns to generatecluster_reach: int provider (between 0 and 13) - the size of the square to attempt to generate columns inheight011can_replacecap_feature: Optional Placed Feature placed at the end of the pillary_offset1.0thickness field - non-negative Float Provider, acts as a multiplier for the radius of carved tunnelsweird_thickness_bias field - Booleantrue, thickness will be multiplied by, with a 10% chance: random(0, 1) * random(0, 3) + 1falsereplaceable field, carvers will replace any block (excluding features)lava_level field, fluids are now always selected by the aquifer or sea_level configuration in the dimensiondebug_settings fieldsea_leveldebug_settings fieldinclude/oit_depth_sample.glslinclude/oit_sample.glslcore/terrain.fsh into include/texture_sampling.glslcore/rendertype_clouds.vsh -> core/clouds.vshcore/rendertype_clouds.fsh -> core/clouds.fshcore/rendertype_world_border.vsh -> core/world_border.vshcore/rendertype_world_border.fsh -> core/world_border.fshOIT - A boolean indicating if OIT is enabledOIT_DEPTH_BOUNDS - A boolean indicating if the depth bounds pass is being executedOIT_TRANSMITTANCE - A boolean indicating if the transmittance pass is being executedOIT_ACCUMULATE - A boolean indicating if the accumulate pass is being executedOIT_ALPHA_ONLY - A boolean indicating if either the depth bounds or transmittance pass is being executedOIT_ADDITIVE - A boolean indicating that the OIT algorithm should emulate additive blending for the executing pipelineOIT_OPAQUE_PARTS_THRESHOLD - A float determining above which alpha threshold a fragment should be considered solid and not go through OITWAVELET_RANK - An integer internal to the OIT algorithmCOEFF_COUNT - An integer internal to the OIT algorithmCOEFF_ATTACHMENT_COUNT - An integer internal to the OIT algorithmB3D_IS_ZERO_TO_ONE - A boolean indicating if the current rendering backend uses the depth range of [0, 1], it is available globally to all shaders independently of the OIT settingcore/block.fshcore/block.vshcore/clouds.fshcore/clouds.vshcore/entity.fshpost_effect/transparency.jsonshaders/post/transparency.fshsee_through enabledno_op in a data pack prevents the world from loading#saplingcore/entity.vshcore/item.fshcore/item.vshcore/particle.fshcore/position_color.fshcore/rendertype_beacon_beam.fshcore/rendertype_clouds.fshcore/rendertype_crumbling.fshcore/rendertype_entity_shadow.fshcore/rendertype_lightning.fshcore/rendertype_lines.fshcore/rendertype_world_border.fshcore/terrain.fshcore/terrain.vshcore/text.fshcore/text_background.fshcore/world_border.fshcore/world_border.vsh