Minecraft 26.3 Snapshot 3

26.3-snapshot-3 540x540.jpg
Release: 9 days ago

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!

New Features

  • Added Cushion
  • Added Straw Bed
  • Added Gothic language support to the game

Cushion

  • The Cushion is an item that the player can place in the world and interact with to sit on
  • Can be crafted in 16 colored variants
  • Cushions are crafted using 3 Wool Slabs of the same color

Cushion Placement Rules

  • A Cushion can be placed on any flat surface
  • Cushions always align horizontally to the grid, but vertically sit on top of the supporting surface
  • Cushions cannot move
  • Cushions break if the supporting block is removed
  • Cushions do not have collision and can overlap with other objects (except other Cushions)

Straw Bed

  • The Straw Bed is a new type of Bed which can be used to sleep through the night without setting your spawnpoint
  • It can only be used once and will be destroyed after use
  • It cannot be used in the Nether or The End and will be destroyed if you try to sleep on it there
  • It is crafted using 3 Hay Bales and will give you 4 Straw Beds
  • There's a new statistic in the Statistics window for amount of times slept in a Straw Bed

Technical Changes

  • The Data Pack version is now 110.0
  • The Resource Pack version is now 91.0

Data Pack Version 110.0

Commands

Added posteffect

  • Allows adding or removing "post effects" to players
  • These are postprocessing shaders that are applied to the player's screen, after the game has finished normal rendering
  • Post effects exist on the client (in resource packs), not the server – the server cannot know if one will actually apply
  • Post effects themselves were already part of the resource pack format, but only a few hardcoded ones were available to use

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 exists

Changes to place

  • The feature sub-command now allows in-line definition of the Feature

Environment Attributes

Changed minecraft:gameplay/bed_rule

  • Field explodes has been renamed to destroy_on_use
  • Added destroy_on_leave - optional boolean, if true, the Bed will be destroyed when leaving it
    • If omitted, defaults to false

Added minecraft:gameplay/straw_bed_rule

  • Same format as minecraft:gameplay/bed_rule, but used for the Straw Bed

Data Components

Updated minecraft:block_transformer

  • Added optional boolean field update_from_neighbors. This controls if the transformed block should update based on neighboring blocks
    • Defaults to true

Added minecraft:compostable

  • Represents the ability to compost an item and how it adds layers to the composter
  • Format: object with fields
    • layers - namespaced ID pointing to an element of the minecraft:number_provider registry

Loot Tables

  • Multiple block loot tables now reference predicates for checking if a tool has Silk Touch and is Shears instead of inlining a copy of those checks

Predicates

Added vanilla predicates

New entries added to previously empty minecraft:predicate:

  • minecraft:tool/can_silk_touch
  • minecraft:tool/can_shear

Potion Predicates

The 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 match
  • effects - A Collection Predicate of mob_effects predicates to match
    • The Collection Predicate format is as follows:
    • contains - A list of mob_effects predicates to match
    • count - 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 match
      • count - The number of matches required, or with min and max will match a range of counts
    • size - Require the mob effects list to have a specific size, or with min and max will match a range of sizes

The 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.

Number Providers

  • Added a minecraft:number_provider registry

Added vanilla number providers

  • minecraft:compostable/low
    • returns 1 if the minecraft:block_state context parameter is an empty composter, otherwise has a 30% chance of returning 1
  • minecraft:compostable/low_medium
    • returns 1 if the minecraft:block_state context parameter is an empty composter, otherwise has a 50% chance of returning 1
  • minecraft:compostable/medium
    • returns 1 if the minecraft:block_state context parameter is an empty composter, otherwise has a 65% chance of returning 1
  • minecraft:compostable/medium_high
    • returns 1 if the minecraft:block_state context parameter is an empty composter, otherwise has a 85% chance of returning 1
  • minecraft:compostable/always_add_one
    • always returns 1

Added minecraft:number_dispatcher type

  • Returns the first case which fulfills its condition or the default if none do
  • Fields:
    • cases - a list of cases in the order that the dispatcher will try to execute them
      • Fields:
        • condition - a minecraft:predicate
        • number_provider - a minecraft:number_provider which is executed if the condition is fulfilled
    • default - an optional minecraft:number_provider
      • Defaults to a constant 0 if omitted

Added minecraft:conditional_value type

  • Returns the value from on_true if its condition or on_false if not
  • Fields:
    • conditions - a minecraft:predicate
    • on_true - a minecraft:number_provider which is executed if its condition is fulfilled
    • on_false - an optional minecraft:number_provider
      • Defaults to a constant 0 if omitted

Added minecraft:weighted_list

  • Returns a value from a distribution of weighted number providers
  • Fields:
    • distribution - a list of objects with the following fields
      • Fields:
        • data - a minecraft:number_provider
        • weight - a positive integer

Recipes

Potion Brewing Recipes

Potion 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 Predicate
  • reagent - A potion ingredient with a required item field and an optional potion_contents field using a minecraft:potion_contents Data Component Predicate
  • output - item stack, the resulting item

Here 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" }
}

World Generation

Features

  • Removed feature types:
    • minecraft:coral_mushroom
    • minecraft:kelp
    • minecraft:seagrass
    • minecraft:sea_pickle

Developer's Note: These feature types are no longer needed, since the features they previously hardcoded are now implemented with other, more configurable functionality.

Changed minecraft:coral_claw and minecraft:coral_tree

  • Added field feature, a Placed Feature that is used to place at every desired block position

Placement Modifiers

Added minecraft: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 axes
  • y_size: Int provider between 1 and 16 representing the size of the cuboid along the y axis
  • include_interior: Optional boolean (default true) for whether to place interior blocks of the cuboid
  • include_edges: Optional boolean (default true) for whether to place edge blocks of the cuboid
    • Setting this to false generates a somewhat "rounded" cuboid

Added minecraft: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 placed

Block State Providers

Updated minecraft:copy_properties_provider

  • Renamed field source_block_state_provider to source

Added minecraft: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 from

Changed minecraft:rotated_block_provider

Now works on any block with axis or facing properties.

Format:

  • Changed field state: Now a Block State Provider
  • Added field direction: Optional field describing the direction to set
    • If omitted, a random direction is chosen

Rule Tests

These are the predicates used by ore Features (targets[].target), and rule Structure Processors (rules[].input_predicate and rules[].location_predicate).

Added minecraft:any_of

  • This checks a list of Rule Tests for whether any of them returns true for the same block
  • Format: object with fields:
    • rules - list of Rule Tests, the rules to test the block against

Added minecraft:not

  • This checks a Rule Test for whether it returns false for a given block
  • Format: object with fields:
    • rule - Rule Test, the rule to test the block against

Tags

Block Tags

  • Added #sculk_growth_inhibitors for blocks which keep Sculk from spreading when more than 2 are in the 8x2x8 area around it
  • Added #cats_can_sit_on - Blocks which Cats can randomly sit on
  • Added #cats_can_lie_on - Blocks which Cats can randomly lie on
  • Added #speeds_up_zombie_villager_curing - Blocks which can increase Zombie Villager curing time if placed nearby
  • Added #villagers_can_sleep_on_bed - Bed blocks which Villagers can sleep on
  • Added #villager_babies_can_jump_on_bed - Bed blocks which Villager kids can jump on
  • Added #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

Item Tags

  • #dowses_campfires has been renamed to #douses_campfires

Structure Tags

  • Added #abandoned_camp for all variants of Abandoned Camps

Resource Pack Version 91.0

Block Sprites

  • Added new Block textures:
    • block/straw_bed.png
    • block/straw_bed_particle.png

Sounds

  • Added new sound events:
    • block.straw_bed.break
    • block.straw_bed.break_leave
    • block.straw_bed.step
    • block.straw_bed.place
    • block.straw_bed.hit
    • block.straw_bed.fall
    • block.poplar_leaves.break
    • block.poplar_leaves.fall
    • block.poplar_leaves.place
    • block.poplar_leaves.step
    • block.poplar_leaves.hit
    • block.red_shrub.break
    • block.red_shrub.place
    • entity.cushion.break
    • entity.cushion.place
    • entity.cushion.get_up
    • entity.cushion.sit

Item Models

  • Added optional shade_direction_override to block model elements
    • Accepted values are cardinal directions (down, up, north, south, west, east)
    • When set, this overrides directional shading for the element regardless of face orientation
  • Removed shade from block model elements
    • Use shade_direction_override: "up" to get the previous shade: false behavior

Shaders & Post-process Effects

Always-on Post Effect Support

  • A resource pack can now define a minecraft:end_of_frame post effect
  • It will be applied before other post effects, including the ones enabled by the new posteffect command
  • This post effect is always on as long as the resource pack is loaded, and cannot be controlled by the posteffect command
  • As usual with resource pack resources, in case of multiple packs defining this effect, the one from the last resource pack in the list will apply

Fixed bugs in 26.3 Snapshot 3

  • MC-51859 - The line spacing of text within all hover tooltips is larger between the first and second lines
  • MC-112580 - Structure blocks' GUI does not pause the game in singleplayer
  • MC-112744 - The Team NBT tag only exists for living entities
  • MC-174958 - /gamerule succeeds when the value is not changed
  • MC-175180 - The Silent NBT tag still doesn't make some entities fully silent
  • MC-224528 - Two splash texts use curly single quotes (’) instead of apostrophes (')
  • MC-229831 - Enchanting tables' GUI has three pixels in the top-right corner that shouldn't be there
  • MC-239401 - items/light.png never appears in-game; is pointlessly referenced by other game assets
  • MC-254353 - A packet to remove the score is always broadcast when a score is reset
  • MC-254661 - /schedule clear requires a namespace in its function argument
  • MC-256073 - Miscolored pixel in tab_inventory.png
  • MC-256096 - Some entities on a team can harm teammates that walk into them when friendly fire is disabled
  • MC-256097 - Some entities on a team can harm their teammates when they explode when friendly fire is disabled
  • MC-259583 - Brewing with a single bottle of dragon's breath does not return a glass bottle afterward
  • MC-267902 - The failure message of /random when the specified range is too large states an incorrect maximum for the range
  • MC-271297 - /fillbiome doesn't fail when no changes are made
  • MC-273327 - The #convertable_to_mud block tag misspells "convertible" as "convertable"
  • MC-275532 - The abbreviation "fps" is inconsistently capitalized across strings
  • MC-279185 - The "selectWorld.load_folder_access" string is missing an article before the word "folder"
  • MC-279819 - The mining speed factor of Mining Fatigue is inconsistent at level 3
  • MC-293615 - Tooltip formatting of "Items x number" is inconsistent across different types of items
  • MC-301804 - Test blocks' GUI does not pause the game in singleplayer
  • MC-305707 - /time reports success when no changes are made
  • MC-307616 - Typo in a log message in ActiveProfiler: "aprox"
  • MC-307618 - Typo in a log message in SoundEngine: "disapeared"
  • MC-307648 - "non-heap" is misspelled as "non-head" in the system details section of crash reports
  • MC-307660 - Typo in a log message in GameRenderer: "coudln't"
  • MC-307709 - The texture of upward facing sulfur spikes' merged tip has a single wrong pixel at the very top
  • MC-308460 - Some of the stems in wildflowers and pink petals render brighter
  • MC-308851 - The chat_restriction.disabled_by_profile.action string is improperly capitalized
  • MC-309021 - Poplar leaves' closed captions display as raw translation keys
  • MC-309024 - death.attack.sulfurCubeHot.item displays as a raw translation key
  • MC-309033 - The campsite_flower_forest_1 abandoned camp structure has stripes of orange wool under it
  • MC-309034 - The tent_windswept_forest_8 abandoned camp structure contains a dropped stack of bone meal
  • MC-309054 - The item texture of poplar hanging signs is inconsistent with other hanging signs
  • MC-309058 - The tent_flower_forest_4 abandoned camp structure contains a dropped birch log
  • MC-309090 - Certain entities on shelf mushrooms make a sound every tick
  • MC-309122 - Abandoned camps can generate in areas of wooded badlands with no trees nor grass
  • MC-309155 - Shelf mushrooms and red shrubs do not have unique sounds, unlike in Bedrock Edition
  • MC-309208 - The poplar wood set is inconsistently placed in the Creative mode inventory
  • MC-309261 - Incorrect calculation in the poplar trunk placer
  • MC-309308 - Several abandoned camp structures contain persistent leaves
  • MC-309324 - Ores don't generate in blobs of andesite, diorite, or granite below Y=0
  • MC-309350 - Shelf mushrooms generated with fallen trees replace water
  • MC-309392 - The lighting on entities and block entities is not rendered correctly and appears too dark or too bright on certain sides
  • MC-309395 - The texture of the top halves of poplar doors is missing a pixel on the second hinge
  • MC-309397 - The game renderer corrupts when toggling off fullscreen or resizing the window with the Vulkan rendering backend
  • MC-309399 - The game output console logs "Ignoring chat session from due to missing Services public key” when loading into a world
  • MC-309400 - The glowing effect on entities stays in place when cleared
  • MC-309403 - Having an item with the block_transformer component with a rule_based_state_provider locks the player out of that world
  • MC-309408 - The item tag that controls which items can douse campfires is misspelled as #dowses_campfires
  • MC-309412 - Block items ignore the block_transformer component
  • MC-309420 - The random_neighbor_spread feature has a field misspelled as "xy_offset"
  • MC-309432 - Worlds render entirely magenta on macOS with the Vulkan rendering backend
  • MC-309433 - Drowned can consume or use certain items
  • MC-309435 - Drowned no longer chase after players correctly
  • MC-309441 - Projectiles lose their can_break ability after reloading the world
  • MC-309445 - The game renderer can corrupt when toggling fullscreen or opening an inventory with the OpenGL rendering backend
  • MC-309467 - Player reporting is unavailable
  • MC-309471 - Cannot see other players' skins
  • MC-309518 - Can't scrape oxidation or wax off of copper doors