Cached at:
07/20/26, 09:47 AM
# Minecraft 26.3 Snapshot 4
Source: [https://www.minecraft.net/en-us/article/minecraft-26-3-snapshot-4](https://www.minecraft.net/en-us/article/minecraft-26-3-snapshot-4)
Happy Snapshot Tues\.\.\. Thursday? Yes, you read that right\! As we've entered peak vacation season here in Sweden, snapshots might not come out on their usual schedule\.
In today's snapshot we have switched the library used for window management, input and platform integration from GLFW to SDL3\.
We have also added new item components for custom furnace fuels, as well as several technical changes for signs, world generation and loot tables\.
Happy mining\!
## Known Issues
- Exclusive fullscreen mode on Windows may cause the game to crash in certain situations, especially when using multiple monitors
- Entering Exclusive fullscreen mode crashes the game on Wayland
## New Features
- Players in spectator mode can now interact with portals to teleport
## Changes
### Minor Tweaks to Blocks, Items and Entities
- Armadillos no longer try to roll up when submerged in liquids
### UI
- Removed the Raw Input mouse setting- Mouse input now always uses relative mouse mode while playing in\-game
- Key bindings now use physical keys instead of keyboard\-layout\-specific key codes
- Borderless Fullscreen is now the default fullscreen mode
- Switching between Borderless and Exclusive Fullscreen no longer requires restarting the game
- Exclusive fullscreen mode on macOS is no longer supported
- The minimum window size is now 320 by 240 pixels
- On macOS, holding a key while entering text now displays the native accent and candidate popup
- On Linux systems, the game will now use and prefer Wayland natively if available
#### Debug Overlay
- The debug overlay now supports a separate GUI scale than the rest of the game- This is customizable through the Debug Options screen,F3 \+ F6 - The default scale is "Auto", which tries to stay at a higher resolution than normal - Another option is "Unchanged", which matches your regular GUI scale - The rest of the options work the same as in the normal "GUI Scale", controlling the scale directly
- Added a "player\_speed" debug entry that displays the speed of the player in blocks per tick\.
- The debug overlay now shows the display refresh rate
### Creative Inventory
- Reordered mineral item and block ordering to have non\-tiered ingredients up first, then tiered ingredients that craft into equipment last- Ingredients- Non\-tiered minerals - Unrefined tiered minerals - Refined tiered minerals- Nuggets - Ingots - Building Blocks- Non\-tiered mineral blocks and variants - Refined tiered mineral blocks and variants - Copper block family - Copper Blocks continue to be pushed to the end of the order in Building Blocks since they have a large list of content
- Improved ordering of Natural Blocks tab so that all inner ordering of group content sequentially progresses from Overworld \-\> Nether \-\> End to stay consistent with other tabs
## Technical Changes
- The Data Pack version is now 111\.0
- The Resource Pack version is now 92\.0
- Loot table types that have a dedicated registry now support registry element and tag references- This means that the majority of fields of such types that previously accepted single elements will now accept either a namespaced ID or an inline value, while fields that previously accepted lists can now accept an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash\-prefixed tag ID - Affected types:- minecraft:advancement - minecraft:item\_modifier - minecraft:loot\_table - minecraft:number\_provider - minecraft:predicate - minecraft:recipe - minecraft:slot\_source - Existingreferencetypes for predicates, item modifiers and slot sources are now obsolete and have been removed
### Windowing and Input Backend
- Minecraft now uses SDL3 instead of GLFW for window management, input and platform integration
- Keyboard input now uses SDL scancodes for physical key positions and SDL keycodes for layout\-dependent text editing shortcuts
## Data Pack Version 111\.0
- Signs no longer automatically execute click events in custom text
### Commands
#### Changes tospreadplayers
- Whether a block is safe to spread a player to is now controlled by the\#entities\_can\_teleport\_toblock tag
### Environment Attributes
#### Addedminecraft:gameplay/natural\_mob\_spawns
- Defines mob spawns in an Environment Attribute Source
- During worldgen placement, only Dimensions and Biomes will apply this Environment Attribute
- Format: object with fields:- spawns\_by\_category\- map of spawn category to weighted list of spawn data- Spawn data format: object with fields:- type\- entity type, the entity to spawn - count\- int provider, amount to spawn - spawn\_costs\- map of entity type to object with fields:- energy\_budget\- float, energy change allowed per spawn - charge\- float, how much existing mobs will attract or repulse other charged mobs
- Available attribute modifiers:- overlay- For each mob category, overrides the lower layer's spawn settings with the higher layer's, unless the category is not included - Merges each layer's spawn costs together, overriding the lower layer's spawn costs with the higher layer's if both define the same entity type
- Default: Empty
#### Addedminecraft:gameplay/creature\_world\_gen\_spawn\_probability
- Sets the probability to run an iteration in which mobs defined to spawn in thecreaturemob category will spawn during world generation
- Only Dimensions and Biomes will apply this Environment Attribute
- Format: float with range\[0,1\)
- Default:0\.1
#### Changedminecraft:visual/ambient\_particles
- Now supports interpolation between Timeline keyframes \(probabilities will be crossfaded\)
- Introduced support for new modifier:append- Unlikeoverridewhich totally replaces the particle list, this modifier concatenates all elements with the layers below
### Data Components
#### Addedminecraft:cooking\_fuel
- Describes an item that can be used as fuel for a Furnace, Smoker or Blast Furnace
- Format: object with fields- burn\_time\- namespaced ID pointing to an element ofminecraft:number\_providerregistry representing the time, in ticks, for which this fuel will burn - speed\_multiplier\- namespaced ID pointing to an element ofminecraft:number\_providerregistry representing the speed of the cooking/smelting
#### Addedminecraft:brewing\_fuel
- Describes an item that can be used as fuel for a Brewing Stand
- Format: object with fields- uses\- namespaced ID pointing to an element ofminecraft:number\_providerregistry representing the number of times this fuel will brew before being consumed - speed\_multiplier\- namespaced ID pointing to an element ofminecraft:number\_providerregistry representing the speed of the brewing
- Note: the\#brewing\_fuelitem tag has been removed and will no longer function to register new brewing fuels
#### Addedminecraft:sign\_text\_frontandminecraft:sign\_text\_back
- Two identical components that represent text in front and back of a sign
- Contents will be displayed in item tooltip
- The format is the same asfront\_textandback\_textfields onminecraft:signandminecraft:hanging\_signblock entities, i\.e\.- messages\- a list of text components - filtered\_messages\- an optional list of text components, if omitted, it will be set to the same value asmessages- messagesandfiltered\_messagesmust have same entry count - color\- optional dye color, default:black - has\_glowing\_text\- optional boolean, default:false
#### Addedminecraft:waxed
- A marker for blocks with contents that are waxed
- No fields
#### Addedminecraft:cushion/color
- Applied to Cushion entities when they get placed using an item
- Format: one of 16 dye colors
#### Addedminecraft:villager\_food
Represents items that Villagers can eat\. Villagers will pick up items with this component in addition to items in the\#villager\_picks\_uptag\.
- Format: object with fields- nutrition\- positive integer, how much hunger the item satiates in the Villager once eaten
#### Addedminecraft:mob\_visibility
Represents the visibility percentage provided by an item with the appropriateminecraft:equippablecomponent, modifying the range at which mobs are able to detect an entity
- Format: object with fields- targeting\_entity\- an entity ID, a list of namespaced entity IDs, or a hash\-prefixed entity tag to match - visibility\- float \(between 0\.0 and 10\.0\), with 0\.0 reducing the range at which mobs detects the entity to 2 blocks while 10\.0 increases the detection range tenfold- While multiple items with this component stack, the maximum vision will still never exceed 10\.0
### Block Entity Data
#### Changedminecraft:signandminecraft:hanging\_sign
- By default, commands and other click events contained in Sign text are no longer executed when the block is clicked- Additionally, text components on newly placed Signs are no longer resolved by default - New boolean field calledallow\_op\_features\(defaults tofalse\) has been added to restore previous behavior - Placed Signs and items with theminecraft:block\_entity\_datacomponent containing Sign data stored in worlds saved before this version will haveallow\_op\_featuresset totrue - Any newly created Sign will need to have that field set explicitly
- Changed the rules for opening the Sign edit screen after a block is placed:- Previously, the screen would open unlessminecraft:block\_entity\_datawas applied successfully - Now, the screen will open only if it could be opened normally by clicking the block \(i\.e\. it's not waxed and only has editable text on the front side\)
- Signs will now accept and return theminecraft:sign\_text\_front,minecraft:sign\_text\_backandminecraft:waxedcomponents
#### Changedminecraft:brewing\_stand
The following fields are now stored as integers rather than shorts:
- Changed theBrewTimefield from a short to an integer, this is the amount of time that the current brewing process has taken so far
- Changed theFuelfield from a byte to an integer, this is the amount of fuel remaining
The following new fields have been added:
- Added thetotal\_brew\_timeinteger field, this is the total amount of time the current brewing process will take
- Added thetotal\_fuelinteger field, this represents the amount of fuel that was added in the last refuel
- Added thespeed\_multiplierfloat field, this will be used to speed up or slow down the next brewing process
#### Changedminecraft:furnace,minecraft:smokerandminecraft:blast\_furnace
The following fields are now stored as integers rather than shorts:
- Changed thecooking\_time\_spentfield from a short to an integer, this is the amount of time that the current cooking process has taken so far
- Changed thecooking\_total\_timefield from a short to an integer, this is the total amount of time the current cooking process will take
- Changed thelit\_time\_remainingfield from a short to an integer, this is the amount of burn time remaining
- Changed thelit\_total\_timefield from a short to an integer, this is the total amount of burn time that was added in the last refuel
The following new fields have been added:
- Added thespeed\_multiplierfloat field, this will be used to speed up or slow down the next brewing process
### Advancements
#### Rewards
- Thelootsub\-field in therewardsfield now accepts an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash\-prefixed tag ID of aminecraft:loot\_tabletype
#### Triggers
- Multiple fields that accepted a list of loot conditions are now stricter:- Previous functionality of a list of conditions was equivalent to a singleminecraft:all\_ofcondition has been removed - Additionally,typefield is mandatory \(previously it defaulted tominecraft:entity\_properties\)
- Some fields that previously accepted only inline loot conditions now also accept a namespaced ID of aminecraft:predicate
- Theplayerfield, available on all triggers exceptminecraft:impossible, now accepts an inline value or a namespaced ID of aminecraft:predicatetype- To avoid duplication, this field is not mentioned in entries below
##### Changedminecraft:any\_block\_usetrigger
- Thelocationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:bee\_nest\_destroyed
- Theblockfield has been renamed toblocksand now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:blocktype
- Added fieldstatethat matches block state properties \(same format asminecraft:enter\_block\)
##### Changedminecraft:bred\_animalstrigger
- child,parent, andpartnerfields now accept an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:brewed\_potiontrigger
- Thepotionfield now acceptsminecraft:potion\_contentsdata component predicate
##### Changedminecraft:cured\_zombie\_villagertrigger
- villagerandzombiefields now accept an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:default\_block\_usetrigger
- Thelocationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:effects\_changedtrigger
- Thesourcefield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:enter\_block
- Theblockfield has been renamed toblocksand now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:blocktype
##### Changedminecraft:fall\_after\_explosiontrigger
- Thecausefield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:fishing\_rod\_hookedtrigger
- Theentityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:placed\_blocktrigger
- Thelocationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:item\_used\_on\_blocktrigger
- Thelocationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:allay\_drop\_item\_on\_blocktrigger
- Thelocationfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:player\_killed\_entitytrigger
- Theentityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
- Thekilling\_blow\.tags\.idfield now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:damage\_typetype
##### Changedminecraft:entity\_killed\_playertrigger
- Theentityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
- Thekilling\_blow\.tags\.idfield now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:damage\_typetype
##### Changedminecraft:kill\_mob\_near\_sculk\_catalysttrigger
- Theentityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
- Thekilling\_blow\.tags\.idfield now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:damage\_typetype
##### Changedminecraft:lightning\_striketrigger
- bystanderandlightningfields now accept an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:player\_generates\_container\_loottrigger
- Theloot\_tablefield has been renamed toloot\_tablesand now accepts a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash\-prefixed tag ID of aminecraft:loot\_tabletype- If a tag or a list is used, trigger will run when any listed loot table is generated
##### Changedminecraft:thrown\_item\_picked\_up\_by\_playertrigger
- Theentityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:thrown\_item\_picked\_up\_by\_entitytrigger
- Theentityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:player\_hurt\_entitytrigger
- Theentityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
- Thedamage\.type\.tags\.idfield now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:damage\_typetype
##### Changedminecraft:entity\_hurt\_playertrigger
- Thedamage\.type\.tags\.idfield now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:damage\_typetype
##### Changedminecraft:player\_interacted\_with\_entitytrigger
- Theentityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:player\_sheared\_equipmenttrigger
- Theentityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:crafter\_recipe\_craftedtrigger
- Therecipe\_idfield has been renamed torecipesand now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:recipetype- If a tag or a list is used, trigger will run when any listed recipe is used
##### Changedminecraft:recipe\_craftedtrigger
- Therecipe\_idfield has been renamed torecipesand now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:recipetype- If a tag or a list is used, trigger will run when any listed recipe is used
##### Changedminecraft:recipe\_unlockedtrigger
- Therecipefield has been renamed torecipesand now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:recipetype- If a tag or a list is used, trigger will run when any listed recipe is unlocked
##### Changedminecraft:slide\_down\_block
- Theblockfield has been renamed toblocksand now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:blocktype
##### Changedminecraft:summoned\_entitytrigger
- Theentityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:tame\_animaltrigger
- Theentityfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:target\_hittrigger
- Theprojectilefield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
##### Changedminecraft:villager\_tradetrigger
- Thevillagerfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
### Slot Sources
#### Changedminecraft:group
- Thetermsfield now accepts an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash\-prefixed tag ID of aminecraft:slot\_sourcetype
- Inline format ofminecraft:group\(previously only a list of inline slot source\) can now also accept a list of namespaced IDs, a list of inline values, or a hash\-prefixed tag ID of aminecraft:slot\_sourcetype- This format is now available consistenly available for all fields of slot source
#### Changedminecraft:filtered
- Theslot\_sourcefield now accepts an inline value or a namespaced ID of aminecraft:slot\_sourcetype
#### Changedminecraft:contents
- Theslot\_sourcefield now accepts an inline value or a namespaced ID of aminecraft:slot\_sourcetype
#### Changedminecraft:limit\_slots
- Theslot\_sourcefield now accepts an inline value or a namespaced ID of aminecraft:slot\_sourcetype
#### Removedminecraft:reference
- This slot source has become obsolete, as any field that takes slot source now accepts \(among other fields\) a namespaced ID of aminecraft:slot\_sourcetype
### Loot Tables
- Therollsandbonus\_rollsfields now accept an inline value or a namespaced ID of aminecraft:number\_providertype
#### Loot Table Types
##### Addedminecraft:container\_processloot table type
- Currently used to evaluate cooking and brewing fuel values
- It takes the following parameters:- container, the container or inventory being evaluated - block\_entity, the block entity being fueled - block\_state, the current state of the block being fueled - origin, the location of the block being fueled
##### Changedminecraft:advancement\_location
- Block entities are now available in context and can be matched by conditions likeminecraft:match\_block
#### Loot Pool Entries
- Theconditionsfield in loot pool entries has been renamed toconditionand now accepts an inline value or a namespaced ID of aminecraft:predicatetype
- Thefunctionsfield in loot pool entries has been renamed tomodifierand now accepts an inline value \(including list as a short form ofminecraft:sequence\) or a namespaced ID of aminecraft:item\_modifiertype- This field is now present on all loot entries, including previously omittedminecraft:alternatives,minecraft:sequenceandminecraft:group
##### Changedminecraft:tagloot pool entry
- Thenamefield has been renamed toitemsand now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:itemtype
##### Changedminecraft:loot\_tableloot pool entry
- Thevaluefield now accepts a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash\-prefixed tag ID of aminecraft:loot\_tabletype
- Addedexpandfield, working the same as inminecraft:tagpool entry:- iftrue, each entry inside tag will be added to outer pool, with weights equal to weight of this entry - iffalse, this pool entry will operate as a single entry in outer pool\. If this entry gets selected, it will return all items from all referenced loot tables
### Loot Functions
- Theconditionsfield is now available in all loot functions and has been renamed tocondition- It now also accepts an inline value or a namespaced ID, but no longer an inline list of conditions - Functionality of old condition list format can be achieved by explicitly usingminecraft:all\_ofloot condition type
- Thefunctionfield \(describing function type\) has been renamed totype
#### Changedminecraft:sequence
- Thefunctionsfield now accepts an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash\-prefixed tag ID of aminecraft:item\_modifiertype
- Added optionalconditionfield which accepts an inline value or a namespaced ID of aminecraft:predicatetype
- Inline format ofminecraft:sequence\(previously only a list of inline functions\) can now also accept a list of namespaced IDs, a list of inline values, or a hash\-prefixed tag ID of aminecraft:item\_modifiertype- This format is now consistenly available for all fields of loot function type, which means that every such field can accept an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash\-prefixed tag ID of aminecraft:item\_modifiertype
#### Changedminecraft:modify\_contents
- Themodifierfield now accepts an inline value or a namespaced ID of aminecraft:item\_modifiertype
#### Changedminecraft:set\_attributes
- Number providers inamountsub\-fields ofmodifierslist now accept an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:enchanted\_count\_increase
- Thecountfield now accepts an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:enchant\_with\_levels
- Thelevelsfield now accepts an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:set\_custom\_model\_data
- Elements infloatsandcolorslists can now be an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:set\_enchantments
- Values inenchantmentsmap can now be an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:set\_count
- Thecountfield now accepts an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:limit\_count
- Theminandmaxfields insidelimitstructure now accept an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:set\_damage
- Thecountfield now accepts an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:set\_ominous\_bottle\_amplifier
- Theamplifierfield now accepts an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:set\_random\_dyes
- Thenumber\_of\_dyesfield now accepts an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:set\_stew\_effect
- Thedurationfield in elements ofeffectslist now accepts an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:set\_loot\_table
- Thenamefield has been renamed totag
#### Changedminecraft:exploration\_map
- Thedestinationfield is no longer optional and now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:structuretype
#### Removedminecraft:reference
- This function has become obsolete, as any field that takes a function now accepts \(among other things\) a namespaced ID to other functions
### Predicates
- Theconditionfield \(describing predicate type\) has been renamed totype
#### Changedminecraft:all\_of
- Thetermsfield now accepts an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash\-prefixed tag ID of aminecraft:predicatetype
- Note: values of this type can no longer be shortened to a single list, a full object with typeminecraft:all\_ofneeds to be used explicitly
#### Changedminecraft:any\_of
- Thetermsfield now accepts an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash\-prefixed tag ID of aminecraft:predicatetype
#### Changedminecraft:inverted
- Thetermfield now accepts an inline value or a namespaced ID of aminecraft:predicatetype
#### Changedminecraft:random\_chance
- Thechancefield now accepts an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:value\_check
- Thevaluefield now accepts an inline value or a namespaced ID of aminecraft:number\_providertype
- Theminandmaxfields insiderangestructure now accept an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:time\_check
- Theminandmaxfields insidevaluestructure now accept an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:entity\_scores
- Theminandmaxfields inside values ofscoresmap now accept an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:damage\_source\_properties
- Thepredicate\.tags\.idfield now accepts a single namespaced ID, a list of namespaced IDs, or a hash\-prefixed tag ID of aminecraft:damage\_typetype
#### Removedminecraft:reference
- This condition has become obsolete, as any field that takes a loot condition now accepts \(among other things\) a namespaced ID to other conditions
#### Added vanilla predicates
- minecraft:block/fast\_cooking
#### Addedminecraft:match\_blockcondition type
Matches block state and optionally block entity data and components \(if present\)
Fields \(same as elements ofminecraft:can\_place\_oncomponents\):
- blocks\- optional block id, list of namespaced block IDs, or hash\-prefixed block tag to match
- state: optional map of block state property keys to values to match
- nbt: optional block entity NBT to match
- match will fail if this field is present, but block entity is not available in context
- components\- optional map of exact components to match
- match will fail if this field is present, but block entity is not available in context
- predicates\- optional map of component predicates to match
- match will fail if this field is present, but block entity is not available in context
#### Removedminecraft:block\_state\_propertycondition type
- This has been fully replaced byminecraft:match\_block
### Number Providers
- Thetypefield always needs to be specified explicitly when using an inline number provider \(it was previously defaulting tominecraft:uniform\)
#### Added vanilla number providers
- minecraft:cooking/time\_bamboo- Returns the burn time in ticks for bamboo and scaffolding
- minecraft:cooking/time\_blaze\_rod- Returns the burn time in ticks for blaze rods
- minecraft:cooking/time\_boats- Returns the burn time in ticks for boats
- minecraft:cooking/time\_coal- Returns the burn time in ticks for coal
- minecraft:cooking/time\_coal\_block- Returns the burn time in ticks for coal blocks
- minecraft:cooking/time\_dried\_kelp\_block- Returns the burn time in ticks for dried kelp blocks
- minecraft:cooking/time\_dry\_plants- Returns the burn time in ticks for various dry plants
- minecraft:cooking/time\_hanging\_signs- Returns the burn time in ticks for hanging signs
- minecraft:cooking/time\_lava\_bucket- Returns the burn time in tickss for lava buckets
- minecraft:cooking/time\_roots- Returns the burn time in ticks for mangrove roots
- minecraft:cooking/time\_wood\_blocks- Returns the burn time in ticks for wood blocks
- minecraft:cooking/time\_wood\_items\_extra\_small- Returns the burn time in ticks for very small wood items such as buttons
- minecraft:cooking/time\_wood\_items\_large- Returns the burn time in ticks for large wood items such as doors
- minecraft:cooking/time\_wood\_items\_small- Returns the burn time in ticks for small wood items such as bows
- minecraft:cooking/time\_wood\_slabs- Returns the burn time in ticks for wood slabs
- minecraft:cooking/time\_wool- Returns the burn time in ticks for most wool blocks
- minecraft:cooking/time\_wool\_carpets- Returns the burn time in ticks for wool carpets
- minecraft:cooking/time\_wool\_slabs- Returns the burn time in ticks for wool slabs and cushions
- minecraft:cooking/speed\_default- Returns the default speed multiplier for cooking fuel
- minecraft:brewing/speed\_default- Returns the default speed multiplier for brewing fuel
- minecraft:brewing/uses\_default- Returns the default number of brews provided by brewing fuel
#### Changedminecraft:number\_dispatcher
- Fields:- cases\- a list of cases in the order that the dispatcher will try to execute them- Fields:- condition\- an inline value or a namespaced ID of aminecraft:predicatetype - number\_provider\- an inline value or a namespaced ID of aminecraft:number\_providertype which is executed if the condition is fulfilled - default\- an optional inline value or a namespaced ID of aminecraft:number\_providertype- Defaults to a constant0if omitted
#### Changedminecraft:conditional\_value
- Fields:- conditions\- an inline value or a namespaced ID of aminecraft:predicatetype - on\_true\- an inline value or a namespaced ID of aminecraft:number\_providertype which is executed if its condition is fulfilled - on\_false\- an optional inline value or a namespaced ID of aminecraft:number\_providertype- Defaults to a constant0if omitted
#### Changedminecraft:weighted\_list
- Fields:- distribution\- a list of objects with the following fields- Fields:- data\- an inline value or a namespaced ID of aminecraft:number\_providertype - weight\- a positive integer
#### Changedminecraft:uniform
- Theminandmaxfields now accept an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:binomial
- Thenandpfields now accept an inline value or a namespaced ID of aminecraft:number\_providertype
#### Changedminecraft:sum
- Thesummandsfield now accepts an inline value, a single namespaced ID, a list of namespaced IDs, a list of inline values, or a hash\-prefixed tag ID of aminecraft:number\_providertype
### Recipes
#### Smoker and Blast Furnace Recipes
The recipes for Smokers and Blast Furnaces now use the same cooking time in their data definition as their Furnace counterparts\.
The cooking time speedup is now done through theminecraft:cooking/speed\_defaultNumber Provider used by the furnace fuel components\.
### World Generation
#### Biomes
- Removed thespawners,spawn\_costs, andcreature\_spawn\_probabilityfields- These values have been moved to the new Environment Attributes
#### Features
- Removed feature types:- minecraft:nether\_forest\_vegetation - minecraft:twisting\_vines - minecraft:weeping\_vines
#### Noise Settings
- Thefinal\_densityfield no longer has thebeardifierDensity Function implicitly added to the final result
- Theaquifers\_enabledfield has been replaced by an optionalaquifersobject:- If not present, no aquifers will be generated - Fields:- barrier\- Density Function, moved fromnoise\_router\.barrier - fluid\_level\_floodedness\- Density Function, moved fromnoise\_router\.fluid\_level\_floodedness - fluid\_level\_spread\- Density Function, moved fromnoise\_router\.fluid\_level\_spread - lava\- Density Function, moved fromnoise\_router\.lava - surface\_level\- Density Function, duplicated fromnoise\_router\.preliminary\_surface\_level - exclusion\- Density Function, any aquifer cell where this value is positive will have no fluid
- Theore\_veins\_enabledfield has been replaced by an optional list ofore\_veinsobjects:- If not present, no ore veins will be generated - Fields:- ore\_block\- Block State, the ore block to place - raw\_ore\_block\- Block State, the raw ore block to place - filler\_block\- Block State, the filler block to place - raw\_ore\_chance\- float between 0 and 1, the probability for araw\_ore\_blockto be placed instead of anore\_block - density\- Density Function, the probability between 0 and 1 for the ore vein to replace a block- If0or lower, no block will be replaced - richness\- Density Function, the probability between 0 and 1 forore\_blockorraw\_ore\_blockto be placed \(as opposed tofiller\_block\)- If0or lower, all blocks will befiller\_block - If1or greater, no blocks will befiller\_block - filler\_gap\- Density Function, acts as an override torichness: if positive,filler\_blockwill always be placed
- The following fields fromnoise\_routerhave been moved:- barrier,fluid\_level\_floodedness,fluid\_level\_spread,lava\- moved intoaquifersfield - vein\_toggle,vein\_ridged,vein\_gap\- moved intoore\_veinsfield
#### Density Functions
##### Updatedconstant
- argumenthas been renamed tovalue
##### Updatedadd,mul,min, andmax
- argument1has been renamed toleft
- argument2has been renamed toright
##### Updatedabs,square,cube,half\_negative,quarter\_negative,squeeze,interpolated,flat\_cache,cache\_2d,cache\_once,cache\_all\_in\_cell, andblend\_densityDensity Functions
- argumenthas been renamed toinput
##### Updatedshift\_a,shift\_b, andshift
- argumenthas been renamed tonoise
##### Addedsub
Performs subtraction between two arguments\. Format: object with fields:
- left\- Density Function, the left\-hand side of the operation
- right\- Density Function, the right\-hand side of the operation
##### Addeddiv
Performs division between two arguments\. Format: object with fields:
- left\- Density Function, the left\-hand side of the operation
- right\- Density Function, the right\-hand side of the operation
##### Updatedreciprocal
- Renamed frominvert
##### Addednegate
Negates the input\. Format: object with fields:
- input\- Density Function, the function to negate
##### Addedlerp
Performs \(unclamped\) linear interpolation between two arguments based on an alpha\. Format: object with fields:
- alpha\- Density Function, the interpolation factor \(0=first,1=second\)- Any value outside of\[0; 1\]will extrapolate
- first\- Density Function, the value atalpha=0
- second\- Density Function, the value atalpha=1
##### Addedfloor,round,ceil, andtruncate
Rounds the input value to an integer multiple of a given function in a type\-dependent direction:
- floor: rounds towards negative infinity
- round: rounds towards the nearest integer \(ties round up\)
- ceil: rounds towards positive infinity
- truncate: rounds towards 0
Format: object with fields:
- input\- Density Function, the input to round
- multiple\- Density Function, the output will be rounded to an integer multiple of this value- If not specified, defaults to constant1\(i\.e\. rounding to integer\)
##### Addedbeardifier
Outputs the structure bearding density\. Generally summed together with the base terrain density to produce ground below, carve air around, or bury structures\.
Format: no fields
### Villager Trades
- Thegiven\_item\_modifiersfield has been renamed togiven\_item\_modifier- Note: unlike other fields of typeminecraft:item\_modifierthis field does not support namespaced element or tag IDs
### Tags
#### Block Tags
- Added\#cushion\_uses\_collision\_shape\- Blocks where Cushion placement raycasts against collision shape instead of interaction shape- Default entries: all blocks in\#cauldrons, plushopperandcomposter
#### Item Tags
- Removed\#brewing\_fuel\- thebrewing\_fuelitem component is now used to identify brewing fuels
## Resource Pack Version 92\.0
### Shaders & Post\-process Effects
- Added new shaders to support order\-independent transparency:- core/oit\_depth\_bounds\_cull\.fsh
- Updated core shaders to support order\-independent transparency- Introduced new defines:- OIT\_ALWAYS\_WRITE\_DEPTH\- A boolean indicating that the OIT algorithm should always write depth for the executing pipeline during the depth bounds stage
#### New Core Shaders
- core/integrate\_depth\.fshwas added and is used to integrate the "3d hud" and always\-on\-top gizmo depth buffers into the main depth buffer
## Fixed bugs in 26\.3 Snapshot 4
- [MC\-2157](https://bugs.mojang.com/browse/MC-2157)\- Particles emitted from dragon eggs when teleporting do not point in the correct direction
- [MC\-46421](https://bugs.mojang.com/browse/MC-46421)\- You cannot use nether portals, end portals, and end gateways while in Spectator mode
- [MC\-58061](https://bugs.mojang.com/browse/MC-58061)\- Endermen can teleport onto signs
- [MC\-110989](https://bugs.mojang.com/browse/MC-110989)\- /spreadplayers considers signs to be a valid block to be spread onto
- [MC\-116286](https://bugs.mojang.com/browse/MC-116286)\- /spreadplayers can spread entities on structure void
- [MC\-121278](https://bugs.mojang.com/browse/MC-121278)\- Keybindings \(e\.g\. Ctrl\+A\) are being mapped to the US keyboard layout even if you're using another layout
- [MC\-133407](https://bugs.mojang.com/browse/MC-133407)\- Keybinds switch when upgrading to 1\.13 if not using a QWERTY keyboard
- [MC\-148541](https://bugs.mojang.com/browse/MC-148541)\- /spreadplayers can spread players to seagrass near the surface of the water
- [MC\-212671](https://bugs.mojang.com/browse/MC-212671)\- Loot table tag entry with "expand": true does not apply functions
- [MC\-252934](https://bugs.mojang.com/browse/MC-252934)\- Placing structures with item frames, paintings, or cushions logsBlock\-attached entity at invalid position: \[BlockPosition\]
- [MC\-263708](https://bugs.mojang.com/browse/MC-263708)\- Keybinds menu renders Keypad keys the same as regular keys
- [MC\-266429](https://bugs.mojang.com/browse/MC-266429)\- Holding shift on macOS causes hotbar scroll direction to reverse \(mouse only\)
- [MC\-268521](https://bugs.mojang.com/browse/MC-268521)\- The game window doesn't have a minimal width and height
- [MC\-269968](https://bugs.mojang.com/browse/MC-269968)\- Can't scroll while holding shift on macOS \(except in the hotbar\) \(mouse only\)
- [MC\-299019](https://bugs.mojang.com/browse/MC-299019)\- Using a Bed while riding a rideable mob causes the player to sleep either on the ground, or on top of the mob
- [MC\-303493](https://bugs.mojang.com/browse/MC-303493)\- Theapply\_impulseentity effect does not apply components of the impulse that would cause the affected entity to hit a solid block when used with atickorlocation\_changedadvancement trigger
- [MC\-303789](https://bugs.mojang.com/browse/MC-303789)\- Looking directly up with anapply\_impulseenchantment entity effect will limit the impulse's effect on the X and Z axes to only apply on one of the two horizontal axes
- [MC\-306619](https://bugs.mojang.com/browse/MC-306619)\- Cannot jump while sneaking while using a Chinese input method
- [MC\-308127](https://bugs.mojang.com/browse/MC-308127)\- The "Friends Screen" key bind overrides debug hotkeys using the same key
- [MC\-308222](https://bugs.mojang.com/browse/MC-308222)\- Worldgen heightmaps do not persist properly through chunk saving/loading
- [MC\-308469](https://bugs.mojang.com/browse/MC-308469)\- Hitting the ender dragon's head hitbox no longer causes the ender dragon to take more damage
- [MC\-308804](https://bugs.mojang.com/browse/MC-308804)\- The input method does not switch to the corresponding CJK mode in the Create New World screen
- [MC\-309166](https://bugs.mojang.com/browse/MC-309166)\- Block breaking is delayed after hitting an entity in Survival/Adventure mode
- [MC\-309394](https://bugs.mojang.com/browse/MC-309394)\- The game crashes when trying to render the item texture of a filled map in the world with the "Improved Transparency" option enabled
- [MC\-309474](https://bugs.mojang.com/browse/MC-309474)\- Block displays do not display glass blocks when the "Improved Transparency" setting is enabled
- [MC\-309475](https://bugs.mojang.com/browse/MC-309475)\- Shelf mushrooms held in the off hand are rotated incorrectly
- [MC\-309506](https://bugs.mojang.com/browse/MC-309506)\- Blocks z\-fight with the world border with the "Improved Transparency" option enabled
- [MC\-309513](https://bugs.mojang.com/browse/MC-309513)\- The top texture of stripped poplar logs uses a different color from the middle of the top texture of poplar logs
- [MC\-309521](https://bugs.mojang.com/browse/MC-309521)\- The texture of poplar hanging signs uses a recolored version of the texture of stripped pale oak instead of stripped poplar
- [MC\-309522](https://bugs.mojang.com/browse/MC-309522)\- Translucent objects can be seen through glass block elements when the "Improved Transparency" option is enabled
- [MC\-309524](https://bugs.mojang.com/browse/MC-309524)\- Drowned that are outside of water continue to aim their trident at players within 3 blocks of them
- [MC\-309656](https://bugs.mojang.com/browse/MC-309656)\- Cushions can be placed on top of fire
- [MC\-309659](https://bugs.mojang.com/browse/MC-309659)\- Cushions cannot be placed on the highest edge of a lectern
- [MC\-309685](https://bugs.mojang.com/browse/MC-309685)\- Sleeping on the head part of a straw bed teleports the player to Y=\-Infinity
- [MC\-309686](https://bugs.mojang.com/browse/MC-309686)\- The game crashes when shooting some projectiles outside the vertical limits of the world
- [MC\-309693](https://bugs.mojang.com/browse/MC-309693)\- The ender dragon appears to fly backwards until perching
- [MC\-309695](https://bugs.mojang.com/browse/MC-309695)\- You can place cushions at any height inside cauldrons, composters, and hoppers
- [MC\-309697](https://bugs.mojang.com/browse/MC-309697)\- The texture of the top half of poplar doors has a miscolored pixel on the hinge
- [MC\-309703](https://bugs.mojang.com/browse/MC-309703)\- Breaking a cushion causes it to lose its custom name
- [MC\-309707](https://bugs.mojang.com/browse/MC-309707)\- The texture of straw beds does not align with the texture of hay bales
- [MC\-309718](https://bugs.mojang.com/browse/MC-309718)\- Mob positions permanently desync after tick sprinting
- [MC\-309771](https://bugs.mojang.com/browse/MC-309771)\- Themaintarget's depth buffer only contains the player's arm when fetched from post effects
- [MC\-309790](https://bugs.mojang.com/browse/MC-309790)\- You can sleep while on a cushion
- [MC\-309809](https://bugs.mojang.com/browse/MC-309809)\- Waxing a sign or a hanging sign doesn't play any sound
- [MC\-309832](https://bugs.mojang.com/browse/MC-309832)\- Placed cushions do not respect thecolortag in theentity\_datacomponent of the item used to place them
- [MC\-309891](https://bugs.mojang.com/browse/MC-309891)\- Thechat\_restriction\.disabled\_by\_launcherstring lacks a period, unlike similar strings
- [MC\-309893](https://bugs.mojang.com/browse/MC-309893)\- Thegamerule\.minecraft\.fire\_spread\_radius\_around\_player\.descriptionstring lacks a period, unlike similar strings
- [MC\-309897](https://bugs.mojang.com/browse/MC-309897)\- Thegui\.report\_to\_serverstring is improperly capitalized
- [MC\-309898](https://bugs.mojang.com/browse/MC-309898)\- TheeditGamerule\.inGame\.discardChanges\.titlestring is improperly capitalized
- [MC\-309901](https://bugs.mojang.com/browse/MC-309901)\- Thestructure\_block\.position\.xstring is improperly capitalized
- [MC\-309902](https://bugs.mojang.com/browse/MC-309902)\- Some strings contain stray spaces adjacent to line breaks
- [MC\-309903](https://bugs.mojang.com/browse/MC-309903)\- The "Isn't It Iron Pick" advancement name is missing a question mark
- [MC\-309907](https://bugs.mojang.com/browse/MC-309907)\- The word "whoosh" is mispelled as "woosh" in thesubtitles\.block\.bubble\_column\.upwards\_insidestring
- [MC\-309908](https://bugs.mojang.com/browse/MC-309908)\- Thesubtitles\.entity\.copper\_golem\.no\_item\_getstring is missing an article before the word "item"
- [MC\-309911](https://bugs.mojang.com/browse/MC-309911)\- The words "blocks" and "seconds" in thecommands\.worldborder\.set\.growstring are always pluralized
- [MC\-309914](https://bugs.mojang.com/browse/MC-309914)\- Thecommands\.op\.failedstring has awkward and inconsistent adverb placement, unlike similar strings
- [MC\-309915](https://bugs.mojang.com/browse/MC-309915)\- Thecommands\.kick\.owner\.failedstring is missing articles before the words "server" and "LAN"
- [MC\-309916](https://bugs.mojang.com/browse/MC-309916)\- Some /stopwatch strings incorrectly capitalize the word "Stopwatch" mid\-sentence, which is inconsistent with other commands
- [MC\-309918](https://bugs.mojang.com/browse/MC-309918)\- Thecommands\.perf\.startedstring is missing a hyphen between the words "10" and "second" and an article before the word "10"
- [MC\-309919](https://bugs.mojang.com/browse/MC-309919)\- Themco\.errorMessage\.6002string is improperly capitalized
- [MC\-309920](https://bugs.mojang.com/browse/MC-309920)\- Themco\.configure\.world\.close\.question\.line1string is improperly capitalized
- [MC\-309921](https://bugs.mojang.com/browse/MC-309921)\- Themco\.snapshot\.subscription\.infostring uses the "to" preposition instead of "with"
- [MC\-309922](https://bugs.mojang.com/browse/MC-309922)\- TheadvMode\.trackOutputstring is improperly capitalized
- [MC\-309923](https://bugs.mojang.com/browse/MC-309923)\- Thegamerule\.minecraft\.entity\_drops\.descriptionstring is improperly capitalized
- [MC\-309924](https://bugs.mojang.com/browse/MC-309924)\- Theargument\.enum\.invalidstring surrounds the placeholder with double quotes instead of single quotes, unlike every other command
- [MC\-309925](https://bugs.mojang.com/browse/MC-309925)\- Themount\.onboardstring is improperly capitalized
- [MC\-309926](https://bugs.mojang.com/browse/MC-309926)\- TheselectWorld\.edit\.backupSizestring is improperly capitalized
- [MC\-309927](https://bugs.mojang.com/browse/MC-309927)\- Thegui\.friends\.error\.unauthorizedstring lacks a period, unlike similar strings
- [MC\-309928](https://bugs.mojang.com/browse/MC-309928)\- Themultiplayer\.confirm\_command\.signature\_requiredstring lacks a period
- [MC\-309937](https://bugs.mojang.com/browse/MC-309937)\- Theargument\.pos\.outofboundsstring ends with a period, unlike similar strings
- [MC\-309938](https://bugs.mojang.com/browse/MC-309938)\- Thequickplay\.error\.invalid\_identifierstring is missing an article before the word "world"
- [MC\-309940](https://bugs.mojang.com/browse/MC-309940)\- ThedatapackFailure\.safeMode\.failed\.titlestring ends with a period, unlike similar title strings
- [MC\-309980](https://bugs.mojang.com/browse/MC-309980)\- Cushions last longer as fuel than in Bedrock Edition
- [MC\-310045](https://bugs.mojang.com/browse/MC-310045)\- Opaque particles turn translucent when seen through experience orbs with the "Improved Transparency" option enabled
- [MC\-310075](https://bugs.mojang.com/browse/MC-310075)\- The game crashes when placing a bee nest or beehive at the lowest height of the world
## Get the Snapshot
Snapshots are available for Minecraft: Java Edition\. To install the Snapshot, open up the[Minecraft Launcher](https://www.minecraft.net/content/minecraft-net/language-masters/download)and enable snapshots in the "Installations" tab\.
**Testing versions can corrupt your world, so please backup and/or run them in a different folder from your main worlds\.**
Cross\-platform server jar:
- [Minecraft server jar](https://piston-data.mojang.com/v1/objects/12ce9ccac727a0ff37ba4aea9d11a73c493d70ca/server.jar)
Report bugs here:
- [Minecraft issue tracker](https://bugs.mojang.com/projects/MC/summary)\!
Want to give feedback?
- For any feedback and suggestions, head over to the[Feedback site](https://feedback.minecraft.net/)\. If you're feeling chatty, join us over at the[official Minecraft Discord](https://discordapp.com/invite/minecraft)\.