Minecraft Snapshot 24w09a
Release: one year ago
Hello! Here is a slightly bigger than usual snapshot with a lot of technical changes, refreshed UI, another iteration of Wolf Armor, and tweaks to new features.
Since the initial release of the Wolf Armor, we have been working on improving it to increase its protection, usability and add customization. For protection there is a new approach to armor, which considers the player's need to quickly see the state of the armor without using UI elements, and the ability to act quickly to help their pet wolf if needed. Please try it out and let us know what you think over at the feedback site: Let's talk about Wolf Armor!
Experimental Features
Bogged
- The Bogged drops 2 mushrooms (either both red/brown or one of each) when sheared
- Updated Bogged texture and model
Wind Charge
- Removed randomness from the radius of both Breeze- and player-shot Wind Charges
Vault
- Additional changes to the Vault texture to even further distinguish from Trial Spawners
Changes
- Changes to Wolf Armor
- The game's UI has been updated with a fresher look
- Ctrl+Picking a renamed block (such as a Chest) in Creative Mode will now give a renamed item
Wolf Armor
- The Wolf Armor will protect the wolf from most damage sources until the armor loses all durability and breaks
- Wolf Armor shows signs of increased breakage as durability goes down
- Players can repair the Wolf Armor with Armadillo Scutes while it is equipped on the Wolf
- Wolf armor can be dyed in similar fashion to Leather Armor
- The Wolf's owner can now repair Wolf Armor on a Wolf
UI
The UI has been updated to sport a fresher look and to be more consistent when it comes to the layout of different UI elements, all while retaining the essence and feel of the old screens.
As always, we're eager to hear your thoughts and opinions on further improvements or changes. Let us know what you think over at the dedicated feedback site.
- The menu background dirt texture has been replaced by a darkened background
- The dirt texture has been moved to the build-in Programmer Art Resource Pack
- Outside the game, the menu Panorama is displayed across all screen
- In the game, the world will be visible across all screens
- Paired with the darkened background is a blur
- The strength of the blur can be configured in Accessibility Settings
- In-game screens such as containers and books are not affected by these changes
- Screen elements such as titles and buttons are positioned more consistently across different screens
- The Player and World Backups screens in Realms have been updated
- Lists now have clearer borders at the top and bottom
- After defeating the Ender Dragon and entering the End Portal, the End Poem and credits are now displayed with a background based on the animated End Portal effect
Technical Changes
- The Data Pack version is now 33
- The Resource Pack version is now 28
playsoundcommand can now be used without specifying the player (assuming@s) and without specifying the mixer (assumingmaster)- In single player, when errors occur during loading or saving of chunks a warning will be shown in a toast
- Trying join a single player world with less than 64 MB free disk space will show a warning screen
- Additionally, a warning toast will be shown periodically while in game
Data Pack Version 33
- Added
minecraft:bypasses_wolf_armorfor damage sources that can not be absorbed by Wolf Armor - Loot table entry with id
loot_tablenow also accepts inline loot tables - Unstructured NBT data attached to stacks of items (
tagfield) has been replaced with structured 'components'
Loot Tables
Loot table entry loot_table (which returns all items from provided nested loot table) now has the following syntax:
value- can be either:- namespaced id - reference to another named loot table
- full loot table (same format as in standalone file)
Item Stack Components
We are making some large changes to how Item Stack-specific properties are stored and represented in this snapshot, replacing the current NBT 'tag' with structured components.
This change has been made in order to:
- Improve performance in cases where the game needs to frequently look up some property of an item (e.g. Armor Trims rendering every frame)
- Validate item properties at load time, enabling easier identification of invalid data in commands and data packs
- This should avoid any 'silent' breakages in commands specifying custom item data for any potential future format changes
- Continue to evolve the game to enable the creation of dynamic content
We understand that this is a significant breaking change for many datapacks and custom maps which will require significant effort to upgrade.
We do however believe that this builds critical foundations for future extensibility. We have taken care to ship these changes all at once, with the hope that this avoids future incremental changes requiring many small updates to packs.
The current NBT 'tag' has existed for quite some time, and we are aware that a lot of clever techniques have been developed with this for commands and data packs.
Although we have made our best effort to identify these cases, some of these techniques rely on undocumented or undefined behavior with certain tag configurations.
We want to ensure that no functionality is lost without a suitable alternative, but due to the undocumented nature of these techniques, we have very likely not caught everything!
We hope to address any regressions over the remaining course of this snapshot cycle.
With such a large change, we deeply value your feedback! You can share your thoughts on these changes over at the feedback site: Let's talk about Item Stack Components!.
- Unstructured NBT data attached to stacks of items (
tagfield) has been replaced with structured 'components'- This data is parsed and validated when the item is loaded
- This should improve performance in certain scenarios (e.g. Armor Trim rendering) when item data was frequently compared or requested and parsed
- Custom data can still be stored in the
minecraft:custom_datacomponent
- Item types (e.g.
minecraft:stick) hold a set of default components on an item that individual item stacks can override - The format of serialized items and items in data packs has been updated for consistency and to support components
- Item syntax in commands has been updated to support components
- When advanced tooltips are enabled (F3+H), the number of components will be displayed instead of number of tags
- Default component values for items are now listed in
items.jsongenerated inreportsdirectory - The
ignoreTagsfield on villager trades has been removed and replaced by a component predicate on damage - Block definitions are now added to
blocks.jsonreport (note: those definitions are not used yet and present only for informational purposes) - If the
key_itemfield of Vault block is not present, the Vault cannot be unlocked
minecraft:custom_data
- Can be used for custom data storage on an item
- Can be accessed with pre-existing tag syntax (
{...}) in commands- In predicates (e.g.
/clear), will be partially matched as currently
- In predicates (e.g.
- When upgrading a world, any non-game data in the item
tagwill be moved into here - Format: object with any fields
- e.g.
custom_data={some:'data'}
- e.g.
minecraft:damage
- The amount of durability removed from an item
- If removed, the item will not be damageable
- Replaces
Damagetag - Format: non-negative integer
- e.g.
damage=12
- e.g.
- For damageable items, has an implicit default value of:
0
minecraft:repair_cost
- The additional experience cost required to modify an item in an Anvil
- Replaces
RepairCosttag - Format: non-negative integer
- e.g.
repair_cost=12
- e.g.
- If not set, has an implicit default value of:
0
minecraft:unbreakable
- If set, the item will not lose any durability when used
- Replaces
Unbreakableboolean tag - Format: object with fields
show_in_tooltip: boolean (default:true)- If
true, an 'Unbreakable' line will be included in the tooltip - Replaces 3rd bit of
HideFlagstag
- If
- e.g.
unbreakable={},unbreakable={show_in_tooltip:false}
minecraft:enchantments
- Stores a list of enchantments and their levels on an item
- Replaces
Enchantmentstag - Format: object with fields
levels: object of enchantment (id string) to level (integer [0; 255])show_in_tooltip: boolean (default:true)- If
false, no enchantments will be shown in the item tooltip - Replaces 1st bit of
HideFlagstag
- If
- e.g.
enchantments={levels:{'minecraft:protection':2},show_in_tooltip:false}
- If not set, has an implicit default value of:
{levels:{}}
minecraft:stored_enchantments
- Stores list of enchantments and their levels for an Enchanted Book
- The effects provided by enchantments do not apply from this component
- Replaces
StoredEnchantmentstag on Enchanted Books - Format: same as
minecraft:enchantmentsshow_in_tooltipvalue replaces 6th bit ofHideFlagstag
- On Enchanted Books, has an implicit default value of:
{levels:{}}
minecraft:custom_name
- Custom name override for an item
- Replaces
display.Nametag - Format: JSON chat component string
- e.g.
custom_name='{"text": "This item is renamed!", "color": "red"}'
- e.g.
minecraft:lore
- Additional lines to include in an item's tooltip
- Replaces
display.Loretag - Format: list of JSON chat component strings (max: 64 entries)
- e.g.
lore=['{"text": "The cake is a lie!"}']
- e.g.
- If not set, has an implicit default value of:
[]
minecraft:can_break
- Controls which blocks a player in Adventure mode can break with this item
- Replaces
CanDestroytag- These were previously stored as flat strings, but now use the more flexible block predicate format already used in loot tables and advancements
- Format: object with fields
predicates: list of block predicatesblocks: block, list of blocks, or hash-prefixed block tagnbt: block entity NBT to matchstate: map of state property key to values to match
show_in_tooltip: boolean (default:true)- Replaces 4th bit of
HideFlagstag
- Replaces 4th bit of
- e.g.
can_break={predicates:{blocks:'minecraft:furnace',state:{facing:'north'}} - Alternatively, can be represented by a single block predicate
- e.g.
can_break={blocks:'minecraft:stone'}
- e.g.
minecraft:can_place_on
- Controls which blocks a player in Adventure mode can place on with this item
- Replaces
CanPlaceOntag - Format: object with fields
predicates: list of block predicates- Same as
can_break.predicates
- Same as
show_in_tooltip: boolean (default:true)- Replaces 5th bit of
HideFlagstag
- Replaces 5th bit of
- e.g.
can_place_on={predicates:{blocks:'minecraft:furnace',state:{facing:'north'}} - Alternatively, can be represented by a single block predicate
- e.g.
can_place_on={blocks:'minecraft:stone'}
- e.g.
minecraft:dyed_color
- Represents a color applied to a dyeable item (
#minecraft:dyeabletag) - Replaces
display.colortag - Format: object with fields
rgb: integer, RGB valueshow_in_tooltip: boolean (default:true)- Replaces 7th bit of
HideFlagstag
- Replaces 7th bit of
- e.g.
dyed_color={rgb:16711680}
minecraft:attribute_modifiers
- Holds attribute modifiers applied to any item
- Replaces
AttributeModifierstag - Format: object with fields (default:
{modifiers:[]})modifiers: list of attribute modifierstype: attribute id- Replaces
AttributeName
- Replaces
slot: one of:any(default)hand: either in main or offhand (new)armor: any armor slot (new)mainhandoffhandheadchestlegsfeet- Modifiers will only apply when the item is equipped in the specified slot
- Replaces
Slot
uuid: uuid, uniquely represents this modifier- Only one modifier can exist with the same id
- Replaces
UUID
name: string, human-readable name- Replaces
Name
- Replaces
amount: double, number of units to modify this attribute (controlled byoperation)- Replaces
Amount
- Replaces
operation: one of:add_value(was0): Addsamountto the attributeadd_multiplied_base(was1): Addsamount* base value to the attributeadd_multiplied_total(was2): Addsamount* total value (from all previous modifiers) to the attribute- Replaces
Operationwith integer ids
show_in_tooltip: boolean (default:true)- Replaces 2nd bit of
HideFlagstag
- Replaces 2nd bit of
- e.g.
attribute_modifiers={modifiers:[type:'minecraft:generic.scale',uuid:[1,2,3,4],name:'Big!',amount:1.0,operation:'add_multiplied_base']}
- If not set, has an implicit default value based on the item type's default attributes (e.g. attack damage for weapons)
minecraft:charged_projectiles
- Holds all projectiles that have been loaded into a Crossbow
- If not present, the Crossbow is not charged
- Replaces
ChargedandChargedProjectilestags - Format: list of item stacks
- e.g.
charged_projectiles=[{id:'minecraft:arrow'}] - No longer restricted to 3 entries
- e.g.
minecraft:intangible_projectile
- Marks that a projectile item would be intangible when fired (i.e. can only be picked up by a creative mode player)
- Only set when items are inside a Crossbow's
charged_projectilescomponent - Format: empty object
- e.g.
intangible_projectile={}
- e.g.
minecraft:bundle_contents
- Holds all items stored inside of a Bundle
- If removed, items cannot be added to the Bundle
- Replaces
Itemstag - Format: list of item stacks
- e.g.
bundle_contents=[{id:'minecraft:poisonous_potato'}]
- e.g.
- On Bundles, has an implicit default value of:
[]
minecraft:map_color
- Represents the tint of the decorations on the Filled Map item
- Replaces
display.MapColortag - Format: integer, RGB value
- e.g.
map_color=16711680
- e.g.
- On Filled Maps, has an implicit default value of:
4603950
minecraft:map_decorations
- Holds a list of markers to be placed on a Filled Map (used for Explorer Maps)
- Replaces
Decorationstag - Format: map of unique decoration id to decorations
type: one of:player(was0)frame(was1)red_marker(was2)blue_marker(was3)target_x(was4)target_point(was5)player_off_map(was6)player_off_limits(was7)mansion(was8)monument(was9)banner_white(was10)banner_orange(was11)banner_magenta(was12)banner_light_blue(was13)banner_yellow(was14)banner_lime(was15)banner_pink(was16)banner_gray(was17)banner_light_gray(was18)banner_cyan(was19)banner_purple(was20)banner_blue(was21)banner_brown(was22)banner_green(was23)banner_red(was24)banner_black(was25)red_x(was26)village_desert(was27)village_plains(was28)village_savanna(was29)village_snowy(was30)village_taiga(was31)jungle_temple(was32)swamp_hut(was33)- Replaces
typebyte with numeric ids
x: double, world coordinatez: double, world coordinaterotation: float, clockwise rotation from north in degrees- Replaces
rotdouble
- Replaces
- e.g.
map_decorations={'Some marker':{type:'target_x',x:123.0,z:-45.0,rotation:0.0f}}
- On Filled Maps, has an implicit default value of:
{}
minecraft:map_id
- References the shared map state holding map contents and markers for a Filled Map
- Replaces
maptag - Format: integer id
- e.g.
map_id=1
- e.g.
minecraft:custom_model_data
- Can be used to replace the models of items by selecting for the
minecraft:custom_model_dataproperty in the item model - Replaces
CustomModelDatatag - Format: integer value
- e.g.
custom_model_data=43
- e.g.
minecraft:potion_contents
- Holds the contents of a potion (Potion, Splash Potion, Lingering Potion), or potion applied to an item (Tipped Arrow)
- Replaces
Potion,CustomPotionColor, andcustom_potion_effectstags - Format: object with fields
potion: potion id (optional)- The potion type in this item: the item will inherit all effects from this
custom_color: integer, RGB value (optional)- Overrides the visual color of the potion
custom_effects: list of effect instances (default:[])- Additional list of custom effects that this item should apply, that may not be representable by an existing potion
- e.g.
potion_contents={potion:'minecraft:invisibility',custom_color:16711680}
- On Potion or Tipped Arrow items, has an implicit default value of:
{}
minecraft:writable_book_contents
- Holds the contents in a Book and Quill
- Replaces
pagesandfiltered_pagestags- The pages list maps directly, with
{text:'...'}wrapping filtered_pagesare pulled by index keys into the relevant page entry under thefilteredfield
- The pages list maps directly, with
- Format: object with fields
pages: list of either:- object with fields
text: string, page plain text contentsfiltered: string, filtered page contents (optional)- If specified, players with chat filter enabled will see this page instead of
text
- If specified, players with chat filter enabled will see this page instead of
- or: string, page plain text contents
- object with fields
- e.g.
writable_book_contents={pages:[{text:'Hello world!'}]}
- On Book and Quill, has an implicit default value of:
{pages:[]}
minecraft:written_book_contents
- Holds the contents and metadata of a Written Book
- Replaces
pages,filtered_pages,title,filtered_title,author,generation, andresolvedtags - Format: object with fields
pages: list- Same format as
writable_book_contentspages, except uses JSON chat component strings which can be formatted
- Same format as
title: filtered string (same format as pages)author: string, player namegeneration: integer [0; 2]- The number of times this book has been copied (
0= original)
- The number of times this book has been copied (
resolved: booleantrueif the chat components in this book have already been resolved (entity selectors, scores substituted)- If
false, will be resolved when opened by a player
- e.g.
written_book_contents={pages:[{text:'Hello world!'}],title:{text:'A delightful read'},author:'Herobrine',generation:1,resolved:true}
minecraft:trim
- Holds the trims applied to an item
- Presence of the component is no longer restricted by the
#minecraft:trimmable_armortag (although, this tag is still used for recipes)
- Presence of the component is no longer restricted by the
- Replaces
Trimtag of the same format - Format: object with fields
pattern: pattern id (or inline pattern)material: material id (or inline material)show_in_tooltip: boolean (default:true)- Replaces 8th bit of
HideFlagstag
- Replaces 8th bit of
- e.g.
trim={pattern:'minecraft:silence',material:'minecraft:redstone'}
minecraft:suspicious_stew
- Holds the effects that will be applied when consuming Suspicious Stew
- Replaces
effectstag of the same format - Format: list of effect objects with fields
id: effect idduration: integer, tick count (default:160)- e.g.
suspicious_stew=[{id:'minecraft:poison'}]
- On Suspicious Stew, has an implicit default value of:
[]
minecraft:hide_additional_tooltip
- If present, disables 'additional' tooltip part which comes from the item type
- Replaces 6th bit of
HideFlagstag - Format: empty object
- e.g.
hide_additional_tooltip={}
- e.g.
minecraft:debug_stick_state
- Stores the selected block state properties used by a Debug Stick
- Replaces
DebugPropertytag - Format: map of block id to block property name
- e.g.
debug_stick_state={'minecraft:turtle_egg':'eggs','minecraft:furnace':'facing'}
- e.g.
- On Debug Stick, has an implicit default value of:
{}
minecraft:entity_data
- Stores unstructured NBT data to apply to an entity when using an item that spawns an entity, such as a Spawn Egg or Armor Stand
- Replaces previous
EntityTagtag, with same behavior - Format: object with fields
- Must contain an
idfield with the entity type - Any additional fields will be merged into the entity when spawned
- e.g.
entity_data={id:'minecraft:pig',Health:1.0f}
- Must contain an
minecraft:bucket_entity_data
- Stores unstructured NBT data to apply to an entity when placed from a bucket
- Replaces
NoAI,Silent,NoGravity,Glowing,Invulnerable,Health,Age,Variant,HuntingCooldown, andBucketVariantTagtags - Format: object with fields
- Can contain any of the above listed fields, which will be applied to the entity when placed
- e.g.
bucket_entity_data={NoAI:1,Age:43}
- On bucketed mob items, has an implicit default value of:
{}
minecraft:instrument
- Holds the instrument type used by a Goat Horn
- Replaces
instrumenttag of same format - Format: instrument id
- e.g.
instrument='minecraft:ponder_goat_horn'
- e.g.
minecraft:recipes
- List of recipes that should be unlocked when using the Knowledge Book item
- Replaces
Recipestag of same format - Format: list of recipe ids
- e.g.
recipes=['minecraft:acacia_boat','minecraft:anvil']
- e.g.
- On Knowledge Book, has an implicit default value of:
[]
minecraft:lodestone_target
- If present, specifies the target Lodestone that a Compass should point towards
- Replaces
LodestonePos,LodestoneDimension, andLodestoneTrackedtags - Format: object with fields
pos: integer array of x, y, and zdimension: dimension idtracked: boolean (default:true)- If
true, when the Lodestone at the target position is removed, the component will be removed
- If
- e.g.
lodestone_target={pos:[13,64,-43],dimension:'minecraft:the_nether'}
minecraft:firework_explosion
- Stores the explosion crafted in a Firework Star
- Replaces
Explosion.Type,Explosion.Colors,Explosion.FadeColors,Explosion.Trail, andExplosion.Flickertags - Format: object with fields
shape: one ofsmall_ball(was0)large_ball(was1)star(was2)creeper(was3)burst(was4)- Replaces
Typenumeric ids
colors: integer array, RGB values (default:[])- List of initial particle colors, randomly selected from
fade_colors: integer array, RGB values (default:[])- List of particle colors to fade to, randomly selected from
has_trail: boolean (default:false)has_twinkle: boolean (default:false)- Renamed from
Flickertag
- Renamed from
- e.g.
firework_explosion={shape:'large_ball',colors:[16711680],has_trail:true}
minecraft:fireworks
- Stores all explosions crafted into a Firework Rocket, as well as flight duration
- Replaces
Fireworks.ExplosionsandFireworks.Flighttags - Format: object with fields
explosions: list of explosions- Same format as
minecraft:firework_explosioncomponent
- Same format as
flight_duration: byte, number of gunpowder in this rocket- e.g.
fireworks={explosions:[{shape:'large_ball',colors:[16711680],has_trail:true}],flight_duration:2}
- On Firework Rocket, has an implicit default value of:
{explosions:[],flight_duration:1}
minecraft:profile
- Controls the skin displayed on a Player Head
- Copied to Player Head block when placed
- Replaces
SkullOwnertag - If only a
nameis specified, will be resolved into the corresponding player ID and skin data - Format: object with fields
name: string, player profile nameid: uuid, player profile id (optional)properties: list of properties (optional)name: string, property name (e.g.textures)value: string (base64 encoded texture data)signature: string (optional)
- e.g.
profile={name:'MHF_Sheep'}
minecraft:note_block_sound
- Controls the sound played by a Player Head when placed on a Note Block
- Copied to Player Head block when placed
- Replaces
BlockEntityTag.note_block_soundtag - Format: sound event id
- e.g.
note_block_sound='minecraft:ambient.cave'
- e.g.
minecraft:base_color
- Stores the base color for a Shield
- Replaces
BlockEntityTag.Basetag - Format: one of
white(was0)orange(was1)magenta(was2)light_blue(was3)yellow(was4)lime(was5)pink(was6)gray(was7)light_gray(was8)cyan(was9)purple(was10)blue(was11)brown(was12)green(was13)red(was14)black(was15)- e.g.
base_color='magenta'
minecraft:banner_patterns
- Stores the additional patterns applied to a Banner or Shield
- Copied to Banner block when placed
- Replaces
BlockEntityTag.Patternstag - Format: list of banner patterns
pattern: banner pattern registry id- Replaces short banner pattern code in
Patterns[].Pattern
- Replaces short banner pattern code in
color: dye color name- Replaces integer dye color id in
Patterns[].Color
- Replaces integer dye color id in
- e.g.
banner_patterns=[{pattern:'minecraft:stripe_top',color:'red'}]
- On Banners and Shields, has an implicit default value of:
[]
minecraft:pot_decorations
- Stores the Sherds applied to each side of a Decorated Pot
- Copied to Decorated Pot block when placed
- Replaces
BlockEntityTag.sherdstag of same format - Format: list of sherd item ids
- e.g.
['arms_up_pottery_sherd','angler_pottery_sherd','danger_pottery_sherd','shelter_pottery_sherd']
- e.g.
- On Decorated Pots, has an implicit default value of:
['minecraft:brick','minecraft:brick','minecraft:brick','minecraft:brick']
minecraft:container
- Holds the contents of Shulker Boxes in item form
- Copied to Shulker Box block when placed
- Replaces
BlockEntityTag.Itemstag - Format: list of slots
slot: integer [0; 255], representing a slot in the containeritem: item stack- e.g.
container=[{slot:7,item:{id:'diamond_pickaxe',components:{'minecraft:unbreakable':{}}}}]
- On Shulker Boxes, has an implicit default value of:
[]
minecraft:bees
- Holds the bees inside a Beehive or Bee Nest
- Copied to Beehive or Bee Nest block when placed
- Replaces
BlockEntityTag.Beestag - Format: list of bees
entity_data: map of string to stringid: entity id- The remainder tags merged into the Bee when spawned
ticks_in_hive: integermin_ticks_in_hive: integer- e.g:
bees=[{entity_data:{id='minecraft:bee'},ticks_in_hive:3,min_ticks_in_hive:10}]
- On Beehive and Bee Nest, has an implicit default value of:
[]
minecraft:lock
- Holds the lock state of a container-like block
- An item with a custom name of the same value must be used to open this container
- Copied to container block when placed
- Replaces
BlockEntityTag.Locktag - Format: string value, representing the key
- e.g:
lock='hunter2'
- e.g:
minecraft:container_loot
- Holds the unresolved loot table and seed of a container-like block
- Copied to container block when placed
- Replaces
BlockEntityTag.LootTableandBlockEntityTag.LootTableSeedtags - Format: object with fields
loot_table: loot table idseed: long, pseudorandom seed to resolve the loot table with (optional)- If not specified, or
0, the seed will be picked randomly when the loot table is evaluated
- If not specified, or
- e.g.
container_loot={loot_table:'minecraft:chests/buried_treasure',seed:123}
minecraft:block_entity_data
- Stores unstructured NBT data to apply to a block entity when placing a block such as a Chest or Furnace
- Replaces previous
BlockEntityTagtag, with same behavior - Any block entity data moved into a dedicated item component is removed from this tag
- This tag only works for Command Blocks, Lecterns, Signs, and Spawners if the player is an operator
- Format: object with fields
- Must contain an
idfield with the block entity type - Any additional fields will be merged into the block entity when placed
- e.g.
block_entity_data={id:'minecraft:chest',Items:[{Slot:1,item:'minecraft:diamond'}]}
- Must contain an
minecraft:block_state
- Holds block state properties to apply when placing a block
- Replaces
BlockStateTagtag - Format: map of property key to property value
- e.g:
block_state={eggs:'10'}
- e.g:
minecraft:enchantment_glint_override
- Overrides the enchantment glint effect on an item
- Can be used in the same way that an invalid
Enchantmentstag would previously behave to add a glint - Format: boolean
- If
true, an item without an enchantment glint will display a glint - If
false, an item with a glint will not display this glint (either from enchantments or intrinsic properties of the item) - e.g:
enchantment_glint_override=true
- If
Commands
- Commands such as
/give,/item,/loot, and/clearhave updated item syntax - Components can now be specified after the item name in square brackets
- Components are assigned with an
=(e.g.wooden_pickaxe[damage=23]) - Components are comma-separated (e.g.
netherite_hoe[damage=5,repair_cost=2])
- Components are assigned with an
- Component types will be autocompleted, but values themselves will not
- Values will however be validated, and the command will fail to parse if the component is improperly specified
- e.g.
/give @s wooden_pickaxe[damage=-34]is not valid
- e.g.
- The pre-existing NBT syntax (
{...}) is rewired to set or match theminecraft:custom_datacomponent- e.g.
/give @s stick{foo:'bar'}is equivalent to/give @s stick[custom_data={foo:'bar'}] - If both
[...]and{...}are specified,[...]must be ordered before{...}
- e.g.
- Item predicate arguments (in
/clear) have new semantics with respect to matching components and custom data- Every specified component must be present on the target item, and have an exactly equal parsed value
- Components with defaults (e.g.
damage=0by default) will be assumed to exist on the target item if not specified- As such,
/clear @s diamond_pickaxe[damage=0]will match only undamaged Diamond Pickaxes - On the other hand,
/clear @s diamond_pickaxewill match any Diamond Pickaxe, irrespective of damage
- As such,
- Exact matching of component values applies even for the
minecraft:custom_datacomponent - However, using the
{...}custom data syntax will use pre-existing NBT partial match behaviour- This requires that all tags specified in the predicate are present on the target item, but additional ones may be ignored
- Lists in the target must contain all items specified in the predicate, but additional may be present and order is ignored
- Modifier operations in the
/attributecommand have been renamed:add->add_valuemultiply_base->add_multiplied_basemultiply->add_multiplied_total
Item Stack Format
- Along with format changes due to components, the structures of item stacks on disk and in data packs have been updated for consistency
- Previous
id(string) andCount(byte) fields have been replaced withid(namespaced string) andcount(integer) fields- This format is additionally applied to the
iconfield in advancements, items in chat component hover events, and theresultfield in smelting recipes (resultandcountare no longer inlined)
- This format is additionally applied to the
- The
countfield is optional (defaults to1), and no longer stored if default- Stack size is now limited to the maximum stack size of the item
- The
tagfield has been removed, and any remaining contents will end up in theminecraft:custom_datacomponent when upgrading - A new
componentsfield stores all components attached to an item- Format: map of component id to component value (varies by component id)
- e.g.
{..., components: {'minecraft:damage': 12}} - Components with a
!prefix (e.g."!minecraft:damage": {}) will cause this component to be removed
- e.g.
- Components equal to their default value will not be stored
- Format: map of component id to component value (varies by component id)
- The item stack format no longer represents empty stacks (
airitem, orcount0)- Instead, in places that support it, the field should be ommitted
- In some cases, such as lists of stacks (e.g.
HandItemsin living entities), an empty map ({}) is used to represent empty stacks
Other Format Changes
- Tipped Arrows no longer store their applied potion effects
- This is instead fetched from their held
item
- This is instead fetched from their held
- Area Effect Clouds now store potions in the same format as the
minecraft:potion_contentscomponent in apotion_contentsfield:Potion->potion_contents.potionColor->potion_contents.custom_coloreffects->potion_contents.custom_effects
- Banners now store applied patterns in the same format as the
minecraft:banner_patternscomponent in apatternsfield:Patterns[].Pattern(string short id) ->patterns[].pattern(string pattern registry id)Patterns[].Color(integer dye id) ->patterns[].color(string dye name)
- Beehive format has also been updated:
Bees[].EntityData->bees[].entity_dataBees[].TicksInHive->bees[].ticks_in_hiveBees[].MinOccupationTicks->bees[].min_ticks_in_hiveFlowerPos->flower_pos
- Villager Trades can be configured to accept only undamaged items by selecting for
'minecraft:damage': 0- By default, if no components are specified, any item will be accepted (similar to
componentsfield in item predicates)
- By default, if no components are specified, any item will be accepted (similar to
Loot Item Functions
- Added
minecraft:set_componentsfunction- Adds or replaces the given component on the input item
conditions: list of conditions (default:[]):- Conditions to check before applying the function
components: map of component id to component value (format varied by id)- Components with a
!prefix (e.g."!minecraft:damage": {}) will cause this component to be removed
- Components with a
- Added
minecraft:copy_componentsfunction- Copies components from a specified source onto an item
- This is now used in the Vanilla pack in place of the
minecraft:copy_nameandminecraft:copy_nbtfunctions conditions: list of conditions (default:[]):- Conditions to check before applying the function
source: source type to pull from- Currently, can only and must be
"block_entity"
- Currently, can only and must be
components: list of component ids to copy
minecraft:set_nbtandminecraft:copy_nbtfunctions have been renamed tominecraft:set_custom_dataandminecraft:copy_custom_datarespectively- These now apply to the
minecraft:custom_datacomponent of the target item
- These now apply to the
minecraft:set_attributesfunction has been updated- The modifier
slotfield now supportsany,armor, andhandvalues - The modifier
operationvalues have been renamed:addition->add_valuemultiply_base->add_multiplied_basemultiply_total->add_multiplied_total
- The modifier
Predicate Formats in Loot Tables & Advancements
- Item predicate format has been updated:
tagfield has been removeditemsfield now supports a single entry, hash-prefixed item tag, or list of itemspotion->potions, and supports a single entry, hash-prefixed potion tag, or list of potionsnbtpredicate has been renamed tocustom_dataand now matchesminecraft:custom_datacomponent- A new optional
componentsfield matches exact components- All specified components must be present an exactly equal on the target item, but additional components may be ignored
- Components with defaults will be assumed to exist on the target item if not specified
- Format: map of component id to component value (varies by component id)
- e.g.
"components": { "minecraft:damage": 0 }will match only undamaged items
- e.g.
- Block predicate format has been updated:
tagfield has been removedblocksfield now supports a single entry, hash-prefixed block tag, or list of blocks
- Fluid predicate format has been updated:
tagfield has been removedfluid->fluids, and supports a single entry, hash-prefixed fluid tag, or list of fluids
- Entity predicate format has been updated:
typefield now supports a single entry, hash-prefixed entity type tag, or list of entity types
- Location predicate format has been updated:
biome->biomes, and supports a single entry, hash-prefixed biome tag, or list of biomesstructure->structures, and supports a single entry, hash-prefixed structure tag, or list of structures
Enchantments
- Projectile weapon Enchantments like
infinity,multishotandpiercingnow work on both Crossbows and Bows, if placed onto the alternative weapon using data manipulation or a change to theenchantable/*tags)
Resource Pack Version 27
- Added additional textures to support colored layers of Wolf Armor for the wolf model and Wolf Armor item:
textures/entity/wolf/wolf_armor_overlay.pngtextures/item/wolf_armor_overlay.png
- Wolf Armor item texture,
textures/item/wolf_armor.png, has been raise by 2px to create space for the durability bar - Added three semi-transparent textures for the cracks to show on the Wolf Armor layer:
textures/entity/wolf/wolf_armor_crackiness_low.pngtextures/entity/wolf/wolf_armor_crackiness_medium.pngtextures/entity/wolf/wolf_armor_crackiness_high.png
Resource Pack Version 28
- The
options_backgroundand thelight_dirt_backgroundtextures have been removed- Instead,
menu_backgroundis used as the background of screens, whilemenu_list_backgroundis used for the background of lists
- Instead,
- Lists now use the
header_separatorandfooter_separatortextures at the top and bottom, respectively - The following textures have been updated:
footer_separator,header_separator - The following sprites have been updated:
widget\tab,widget\tab_highlighted,widget\tab_selected,widget\tab_selected_highlighted - The
widget\scroller_backgroundsprite has been added - The following textures in Realms have been removed:
changes,changes_highlighted,restore,restore_highlighted,make_operator_highlighted,remove_operator_highlighted,remove_player_highlighted
Fixed bugs in Snapshot 24w09a
- MC-118890 Tipped arrows stuck in the ground never lose their effect
- MC-195572 The fog from lava is much denser when having the Fire Resistance effect active compared to Bedrock Edition
- MC-226775 Extinguishing candle shows inaccurate subtitle
- MC-251042 Third-party warning buttons are not positioned well in non-English languages
- MC-257119 Lodestone Compass does not stack after dropping and destroying the Lodestone
- MC-259284 Severe performance issues with inventories with lots of data
- MC-267451 Items named with an anvil on 1.20.4 don't stack with items named prior
- MC-267500 Attribute modifier on an item with the first and/or last 2 integers of the UUID being 0 are non-functional
- MC-267975 The realms player list is rendered larger than its visual size
- MC-267976 The scroll bar in the realms player list can no longer be dragged using the mouse cursor
- MC-268011 Hoppers leak the last world they sucked item on
- MC-268022 Elements within the list in the "Experimental feature requirements" menu cannot be selected via the mouse cursor
- MC-268236 Search field in the social interactions menu not focused by default
- MC-268350 Wind Charges never despawn
- MC-268580 Chiseled bookshelf model is not deterministic in data generation
- MC-268710 The fall damage reduction for the Wind Charge is not working
- MC-268778 Baby armadillos shouldn't drop scutes when brushed