
Tuesday? Pfft. It's snapshot day! Today's snapshot introduces two brand-new features coming to 26.3: perfect for anyone that loves to camp in comfort. The cushion, coming in 16 color variants, finally brings the ability to sit down around a campfire. To go along with it, the straw bed brings the comfort of sleep (without the worry of losing your spawn point) to any adventure!
In addition, this snapshot brings many technical improvements: from custom brewing recipes to new ways to create and apply post-processing effects!
Happy cozy crafting!
posteffect#Developer's Note: This now makes custom shaders fully available to use from resource packs, but please be aware that shaders are still subject to be changed at-will, and the features involved (the command, post effects, or shaders) may be redesigned in the future.
Syntax:
/posteffect add <player> <posteffect> - adds the post effect to the player, if it doesn't already exist/posteffect clear <player> - removes all post effects from the player, if any exist/posteffect list <target> - lists all post effects applied to the player, if any exist/posteffect remove <player> <posteffect> - removes the post effect from the player, if it existsplace#feature sub-command now allows in-line definition of the Featureminecraft:gameplay/bed_rule#explodes has been renamed to destroy_on_usedestroy_on_leave - optional boolean, if true, the Bed will be destroyed when leaving itfalseminecraft:gameplay/straw_bed_rule#minecraft:gameplay/bed_rule, but used for the Straw Bedminecraft:block_transformer#update_from_neighbors. This controls if the transformed block should update based on neighboring blockstrueminecraft:compostable#layers - namespaced ID pointing to an element of the minecraft:number_provider registryNew entries added to previously empty minecraft:predicate:
minecraft:tool/can_silk_touchminecraft:tool/can_shearThe minecraft:potion_contents Data Component Predicate has been changed to allow matching on specific potion effects.
The previous predicate format used a list of potion types, the new format allows for more refined matching.
The following fields can be used in any combination, all are optional:
potions - A list of potion types or a potion tag to matcheffects - A Collection Predicate of mob_effects predicates to matchcontains - A list of mob_effects predicates to matchcount - A list of options for matching a specific number of mob effect predicates, which follow the same format as minecraft:effects entity sub-predicate`test - The mob_effects predicate to matchcount - The number of matches required, or with min and max will match a range of countssize - Require the mob effects list to have a specific size, or with min and max will match a range of sizesThe mob_effects predicate format is a mapping of effect types to properties of that effect. All fields are optional, only provided fields will be used for matching:
{
"minecraft: <effect type>": {
"duration": <integer bounds representing a duration in ticks>,
"amplifier": <integer bounds>,
"ambient: true/false,
"visible": true/false
}
)
Here is an example of matching on several different effects and criteria:
"effects": {
"minecraft:jump_boost": {
"duration": 3600,
"amplifier": 5,
"ambient: true,
"visible": true
},
"minecraft:speed": {
"duration": {
"min": 360,
"max": "3600
},
"amplifier: {
"min": 2
}
},
"minecraft:resistance": {}
}
All criteria are optional.
minecraft:number_provider registryminecraft:compostable/lowminecraft:block_state context parameter is an empty composter, otherwise has a 30% chance of returning 1minecraft:compostable/low_mediumminecraft:block_state context parameter is an empty composter, otherwise has a 50% chance of returning 1minecraft:compostable/mediumminecraft:block_state context parameter is an empty composter, otherwise has a 65% chance of returning 1minecraft:compostable/medium_highminecraft:block_state context parameter is an empty composter, otherwise has a 85% chance of returning 1minecraft:compostable/always_add_oneminecraft:number_dispatcher type#default if none docases - a list of cases in the order that the dispatcher will try to execute themcondition - a minecraft:predicatenumber_provider - a minecraft:number_provider which is executed if the condition is fulfilleddefault - an optional minecraft:number_provider0 if omittedminecraft:conditional_value type#on_true if its condition or on_false if notconditions - a minecraft:predicateon_true - a minecraft:number_provider which is executed if its condition is fulfilledon_false - an optional minecraft:number_provider0 if omittedminecraft:weighted_list#distribution - a list of objects with the following fieldsdata - a minecraft:number_providerweight - a positive integerPotion brewing recipes are now data-driven. New recipes can be added via datapacks, and vanilla recipes may be modified. Brewing recipes use the minecraft:brewing type.
The main contents are:
input - A potion ingredient with a required item field and an optional potion_contents field using a minecraft:potion_contents Data Component Predicatereagent - A potion ingredient with a required item field and an optional potion_contents field using a minecraft:potion_contents Data Component Predicateoutput - item stack, the resulting itemHere is an example of a vanilla recipe:
{
"type": "minecraft:brewing",
"input": {
"item": "minecraft:potion",
"potion_contents": {
"potion": "minecraft:water"
}
},
"output": {
"components": {
"minecraft:potion_contents": {
"potion": "minecraft:awkward"
}
},
"id": "minecraft:potion"
},
"reagent": {
"item": "minecraft:nether_wart"
}
}
Any items may be used in any of the 3 slots, for example:
{
"type": "minecraft:brewing",
"input": { "item": "minecraft:bucket" },
"output": { "id": "minecraft:sulfur_cube_bucket" },
"reagent": { "item": "minecraft:potent_sulfur" }
}
minecraft:coral_mushroomminecraft:kelpminecraft:seagrassminecraft:sea_pickleDeveloper's Note: These feature types are no longer needed, since the features they previously hardcoded are now implemented with other, more configurable functionality.
minecraft:coral_claw and minecraft:coral_tree#feature, a Placed Feature that is used to place at every desired block positionminecraft:cuboid#Repeats a feature in a cuboid shape.
Added fields:
xz_size: Int provider between 1 and 16 representing the size of the cuboid along x and z axesy_size: Int provider between 1 and 16 representing the size of the cuboid along the y axisinclude_interior: Optional boolean (default true) for whether to place interior blocks of the cuboidinclude_edges: Optional boolean (default true) for whether to place edge blocks of the cuboidfalse generates a somewhat "rounded" cuboidminecraft:random_chance#Gates the feature being placed behind a random chance.
Format:
chance: Float value between 0 and 1 representing the chance that the feature gets placedminecraft:copy_properties_provider#source_block_state_provider to sourceminecraft:random_block_provider#Returns the default block state for a randomly chosen block.
Format:
blocks: Block ID, list of Block IDs or hash-prefixed Block Tag, specifying the set of blocks to randomly pick fromminecraft:rotated_block_provider#Now works on any block with axis or facing properties.
Format:
state: Now a Block State Providerdirection: Optional field describing the direction to setThese are the predicates used by ore Features (targets[].target), and rule Structure Processors (rules[].input_predicate and rules[].location_predicate).
minecraft:any_of#true for the same blockrules - list of Rule Tests, the rules to test the block againstminecraft:not#false for a given blockrule - Rule Test, the rule to test the block against#sculk_growth_inhibitors for blocks which keep Sculk from spreading when more than 2 are in the 8x2x8 area around it#cats_can_sit_on - Blocks which Cats can randomly sit on#cats_can_lie_on - Blocks which Cats can randomly lie on#speeds_up_zombie_villager_curing - Blocks which can increase Zombie Villager curing time if placed nearby#villagers_can_sleep_on_bed - Bed blocks which Villagers can sleep on#villager_babies_can_jump_on_bed - Bed blocks which Villager kids can jump on#height_specific_ore_replaceables - contains all blocks which Ore Features will turn into Stone Ores if found above y-level 0 and into Deepslate Ores if found below y-level 8#dowses_campfires has been renamed to #douses_campfires#abandoned_camp for all variants of Abandoned Campsblock/straw_bed.pngblock/straw_bed_particle.pngblock.straw_bed.breakblock.straw_bed.break_leaveblock.straw_bed.stepblock.straw_bed.placeblock.straw_bed.hitblock.straw_bed.fallblock.poplar_leaves.breakblock.poplar_leaves.fallblock.poplar_leaves.placeblock.poplar_leaves.stepblock.poplar_leaves.hitblock.red_shrub.breakblock.red_shrub.placeentity.cushion.breakentity.cushion.placeentity.cushion.get_upentity.cushion.sitshade_direction_override to block model elementsdown, up, north, south, west, east)shade from block model elementsshade_direction_override: "up" to get the previous shade: false behaviorminecraft:end_of_frame post effectposteffect commandposteffect commandTeam NBT tag only exists for living entitiesSilent NBT tag still doesn't make some entities fully silentitems/light.png never appears in-game; is pointlessly referenced by other game assets/schedule clear requires a namespace in its function argumenttab_inventory.png#convertable_to_mud block tag misspells "convertible" as "convertable"ActiveProfiler: "aprox"SoundEngine: "disapeared"GameRenderer: "coudln't"chat_restriction.disabled_by_profile.action string is improperly capitalizeddeath.attack.sulfurCubeHot.item displays as a raw translation keycampsite_flower_forest_1 abandoned camp structure has stripes of orange wool under ittent_windswept_forest_8 abandoned camp structure contains a dropped stack of bone mealtent_flower_forest_4 abandoned camp structure contains a dropped birch logblock_transformer component with a rule_based_state_provider locks the player out of that world#dowses_campfiresblock_transformer componentrandom_neighbor_spread feature has a field misspelled as "xy_offset"can_break ability after reloading the world