Java Edition 24w09a

Minecraft 24w09a
24w09a.jpg: Infobox image for Minecraft 24w09a the version in Minecraft
Java Edition 24w09a.png: Infobox image for Minecraft 24w09a the version in Minecraft
Edition

Java Edition

Release date

February 28, 2024

Type

Snapshot

Snapshot for

1.20.5

Downloads

Client (.json)
Server

Obfuscation maps

Client
Server

Protocol version

 dec1073742002
 hex400000B2

Data version

3819

Resource pack format

28

Data pack format

33

Minimum Java version

Java SE 17

24w09a is the tenth snapshot for Java Edition 1.20.5, released on February 28, 2024,[1] which is slightly larger than a typical snapshot with many technical changes, improvements to wolf armor and the UI, tweaks to experimental features, and bug fixes.

Additions

Command format

Item modifiers

  • Added minecraft:set_components function.
    • 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": {}) cause this component to be removed.
  • Added minecraft:copy_components function.
    • Copies components from a specified source onto an item.
    • This is now used in the Vanilla pack in place of the minecraft:copy_name and minecraft:copy_nbt functions.
    • 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".
    • components: list of component ids to copy.

General

Options

  • Added "Menu Background Blurriness" in accessibility settings.
    • Defaults to 50%.

Tags

  • Added the #bypasses_wolf_armor damage type tag: contains #bypasses_invulnerability, cramming, drown, dry_out, freeze, in_wall, indirect_magic, magic, outside_border, starve, thorns, and wither.

Changes

Items

Wolf armor

Wolves wearing dyed wolf armor in all 16 basic colors
  • Wolf armor protects the wolf from most damage sources until the armor loses all durability and breaks.
    • Shows signs of increased breakage as durability goes down.
  • The wolf's owner can repair the armor with armadillo scutes while it is equipped on the wolf.
  • Wolf armor can be dyed in similar fashion to leather armor.

Command format

General

  • Unstructured NBT data attached to stacks of items (tag field) 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_data component.
    • 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.
  • Item types (e.g. minecraft:stick) hold a set of default components on an item that individual item stacks can override.
  • Commands such as /give, /item, /loot, and /clear have 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]).
  • Component types are autocompleted, but values themselves are not.
  • Values however are validated, and the command fails to parse if the component is improperly specified.
    • e.g. /give @s wooden_pickaxe[damage=-34] is not valid.
  • The pre-existing NBT syntax ({...}) must now be specified with the minecraft:custom_data component.
    • 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 {...}.
  • Item predicate arguments (in /clear) have new semantics with respect to matching components and custom data.
    • Each specified component must be present on the target item, and have an exactly equal parsed value.
    • Components with default values (e.g. damage=0 by default) automatically exist on the target item if not specified.
      • As such, /clear @s diamond_pickaxe[damage=0] matches only undamaged diamond pickaxes.
      • On the other hand, /clear @s diamond_pickaxe matches any diamond pickaxe, irrespective of damage.
    • Exact matching of component values applies even for the minecraft:custom_data component.
    • However, the {...} syntax for custom data still uses the pre-existing partial matching behavior for NBT.
      • This means that all tags specified in the predicate must be present on the target item, but additional tags on the target item are ignored.
      • Lists in the target must contain all list-items specified in the predicate, but additional list-items are ignored.
  • The format of serialized items and items in data packs has been updated for consistency and to support components.
  • When advanced tooltips are enabled (F3+H), the number of components is displayed instead of number of tags.
  • Default component values for items are now listed in items.json generated in reports directory.
  • Block definitions are now added to blocks.json report (note: those definitions are not used yet and present only for informational purposes).
  • The ignoreTags field on villager trades has been removed and replaced by a component predicate on damage.
  • If the key_item field of a vault block is not present, the vault cannot be unlocked.

Item modifiers

  • minecraft:set_nbt and minecraft:copy_nbt functions have been renamed to minecraft:set_custom_data and minecraft:copy_custom_data respectively.
    • These now apply to the minecraft:custom_data component of the target item.
  • minecraft:set_attributes function has been updated.
    • The modifier slot field now supports any, armor, and hand values.
    • The modifier operation values have been renamed:
      • addition -> add_value
      • multiply_base -> add_multiplied_base
      • multiply_total -> 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) and Count (byte) fields have been replaced with id (namespaced string) and count (integer) fields.
    • This format is additionally applied to the icon field in advancements, items in chat component hover events, and the result field in smelting recipes (result and count are no longer inlined).
  • The count field is optional (defaults to 1), and no longer stored if default.
    • Stack size is now limited to the maximum stack size of the item.
  • The tag field has been removed, and any remaining contents end up in the minecraft:custom_data component when upgrading.
  • A new components field 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</code>.
      • Components with a ! prefix (e.g. "!minecraft:damage": {}) cause this component to be removed.
    • Components equal to their default value aren't stored.
  • The item stack format no longer represents empty stacks (air item, or count 0).
    • Instead, in places that support it, the field should be ommitted.
    • In some cases, such as lists of stacks (e.g. HandItems in living entities), an empty map ({}) is used to represent empty stacks.

Predicate format

  • Item predicate format has been updated:
    • tag field has been removed.
    • items field now supports a single entry, hash-prefixed item tag, or list of items.
    • potion -> potions, and supports a single entry, hash-prefixed potion tag, or list of potions.
    • nbt predicate has been renamed to custom_data and now matches minecraft:custom_data component.
    • A new optional components field 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 are 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 } matches only undamaged items.
  • Block predicate format has been updated:
    • tag field has been removed.
    • blocks field now supports a single entry, hash-prefixed block tag, or list of blocks.
  • Fluid predicate format has been updated:
    • tag field has been removed.
    • fluid -> fluids, and supports a single entry, hash-prefixed fluid tag, or list of fluids.
  • Entity predicate format has been updated:
    • type field 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 biomes.
    • structure -> structures, and supports a single entry, hash-prefixed structure tag, or list of structures.

Other format changes

  • Tipped arrows no longer store their applied potion effects.
    • This is instead fetched from their held item.
  • Area effect clouds now store potions in the same format as the minecraft:potion_contents component in a potion_contents field:
    • Potion -> potion_contents.potion
    • Color -> potion_contents.custom_color
    • effects -> potion_contents.custom_effects
  • Banners now store applied patterns in the same format as the minecraft:banner_patterns component in a patterns field:
    • 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_data
    • Bees[].TicksInHive -> bees[].ticks_in_hive
    • Bees[].MinOccupationTicks -> bees[].min_ticks_in_hive
    • FlowerPos -> 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 is accepted (similar to components field in item predicates).

/attribute

  • Modifier operations have been renamed:
    • add -> add_value
    • multiply_base -> add_multiplied_base
    • multiply -> add_multiplied_total

/playsound

  • Can now be used without specifying the player (assuming @s) and without specifying the mixer (assuming master).

Gameplay

Creative mode

  • Ctrl+pick blocking a renamed block (such as a chest) in Creative mode now gives a renamed item.

Enchantments

  • The projectile weapon enchantments Infinity, Flame, Multishot, Piercing, Power, and Punch now work on both crossbows and bows, if placed onto the alternative weapon using data manipulation or a change to the enchantable/* tags.

General

Data pack

  • The data pack version is now 33.
  • Loot table entry with id loot_table now also accepts inline 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).

Resource pack

  • The resource pack version is now 28.
  • Added additional textures to support colored layers of wolf armor for the wolf model and wolf armor item:
    • textures/entity/wolf/wolf_armor_overlay.png
    • textures/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.png
    • textures/entity/wolf/wolf_armor_crackiness_medium.png
    • textures/entity/wolf/wolf_armor_crackiness_high.png
  • The options_background and the light_dirt_background textures have been removed.
    • Instead, menu_background is used as the background of screens, while menu_list_background is used for the background of lists.
  • Lists now use the header_separator and footer_separator textures 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_background sprite 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.

Tags

  • Added wolf_armor to the #dyeable item tag.

UI

The enhanced UI as seen in the "Create World" menu
  • 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.
  • The menu background dirt texture has been replaced by a darkened background.
    • The dirt texture has been moved to the Programmer Art resource pack.
    • Outside the game, the menu panorama is displayed across all screen.
    • In the game, the world is 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.

Other

  • In singleplayer, when errors occur during loading or saving of chunks a warning is shown in a toast.
  • Trying to join a singleplayer world with less than 64 MB free disk space shows a warning screen.
    • Additionally, a warning toast is shown periodically while in game.

Experimental

Changes

Vault

  • Additional changes to the texture to even further distinguish it from trial spawners.

Bogged

  • Now drop 2 mushrooms (either both red/brown or one of each) when sheared.
  • Updated texture and model.

Wind charge

  • Removed randomness from the radius of wind charged shot by both breezes and players.

Fixes

49 issues fixed

From released versions before 1.20

  • MC-19893options_background.png is incorrectly displayed upside down in the credits after beating the dragon.
  • MC-96609 – Pick block on player head does not use BlockEntityTag.
  • MC-100016 – Singleplayer world selection screen is shown incorrectly when light_dirt_background.png and/or options_background.png are transparent.
  • MC-109286 – Default dirt page background not aligned properly.
  • MC-117977 – Advancement GUI doesn't have a close button.
  • MC-118890 – Tipped arrows stuck in the ground never lose their effect.
  • MC-121621 – Pick block on shulker boxes doesn't find placed and mined shulker boxes in inventory.
  • MC-140565 – Patrol leaders with banners can drop two different types of banners which don't stack.
  • MC-142372Ctrl + pick block on a campfire with food cooking updates the nbt during cook time.
  • MC-143614 – Campfire item with "cooking" NBT heavily shakes in hand/off-screen, when Ctrl+pick-blocked.
  • MC-147710 – Some long mob names are occluded by the scroll bar in the Statistics page.
  • MC-148480 – Putting two identical enchanted books in a grindstone will output one book.
  • MC-151793 – Various ominous banner stacking issues.
  • MC-153879 – Raiders ignore ominous banners that were saved in the Saved Toolbars from a different version.
  • MC-175437 – Fullscreen resolution isn't applied when exiting Video Settings with Esc.
  • MC-189211 – "Water Taken from Cauldron" statistic is slightly covered by the bottom of the screen's overlay.
  • MC-189484 – Statistics screen tab selection is not centered.
  • MC-195572 – The fog from lava is much denser when having the Fire Resistance effect active compared to Bedrock Edition.
  • MC-201722/summon command ignores stacking restrictions.
  • MC-204947Ctrl + pick block on placed ominous banners is not the same as pick block.
  • MC-206854 – Multiplayer warning and Chat Preview warning are off center.
  • MC-213104 – Statistics tab resets when resizing the Minecraft window.
  • MC-224343 – Books don't stack after being placed on a lectern.
  • MC-226775 – Extinguishing candle shows inaccurate subtitle.
  • MC-234406 – The dirt background changes its position when interacting with the "Players" button in the Realms menu.
  • MC-234558 – There is no title in the "Invite player" Realms menu.
  • MC-248076 – Specific type of firework rockets won't stack with each other after use.
  • MC-251042 – Third-party warning buttons are not positioned well in non-English languages.
  • MC-251509 – Patterned banners not stacking properly / banner loses "banner" ID when mined.
  • MC-260867 – Cannot focus entries on the pack selection screen using the mouse.
  • MC-268580 – Chiseled bookshelf model is not deterministic in data generation.

From 1.20

  • MC-262503light_dirt_background.png and header_separator.png does not match options_background.png.

From 1.20.1

  • MC-263872 – The "Scanning for games on your local network" element in the Multiplayer menu cannot be selected via the mouse cursor.
  • MC-263874 – Elements in lists within the statistics menu cannot be selected via the mouse cursor.

From 1.20.2

  • MC-265661 – Dirt background appears to overlap back button on experimental feature requirements data pack screen for some window sizes.

From 1.20.4

  • 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-267742 – Opening a written book makes it unstackable with identical unopened books.
  • 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.

From the 1.20.5 development versions

  • MC-267956 – Attack indicator is not displayed when holding a diamond or netherite hoe.
  • MC-268345 – Changing the value of "Japanese Glyph Variants" causes tooltip to flash.
  • MC-268350 – Wind Charges never despawn.
  • MC-268509 – The tooltip in the Saved Hotbars disappears in 24w06a.

From the previous development version

  • MC-268710 – The fall damage reduction for the wind charge is not working.
  • MC-268778 – Baby armadillos drop scutes when brushed.

Video

Videos made by Slicedlime:

Trivia

  • Due to a bug, the damage of every tool was changed to 4, and the attack speed of every tool was changed to 1.6.[2]

References

  1. "Minecraft Snapshot 24w09a"Minecraft.net, February 28, 2024.
  2. MC-268800 — All tools have 4 attack damage, and 1.6 attack speed — resolved as "Fixed".

Navigation