Java Edition 24w12a

Minecraft Wiki article. Categories: Java_Edition_versions, Java_Edition_1.20.5_snapshots, Java_Edition_snapshots_released_in_2024, Java_Edition_snapshots, Information_needed, Pages_with_YouTube_videos

📌 Mirrored from Minecraft Wiki

This article is reproduced from Java Edition 24w12a on the Minecraft Wiki. Mirrored from revision 3692227. It is licensed CC BY-NC-SA 3.0 by the Minecraft Wiki contributors — not under the Codex’s CC BY-SA 4.0, and it may not be used commercially. Edits belong upstream, not here.

Minecraft 24w12a
24w12a.jpg: Infobox image for Minecraft version 'Minecraft 24w12a'
Java Edition 24w12a.png: Infobox image for Minecraft version 'Minecraft 24w12a'

24w12a is the thirteenth snapshot for Java Edition 1.20.5, released on March 20, 2024,[1] which fixes bugs, changes the heavy core, adds 7 new advancements and adds the trial chambers map.

Additions

Command format

Item stack components

  • Added new item stack components.
  • Added food item stack component.
    • When present, this item behaves as if a food (can be eaten)
    • Format: object with fields:
      • nutrition: non-negative integer, number of food points to restore when eaten.
      • saturation_modifier: float, amount of saturation to restore when eaten.
      • can_always_eat: boolean (default: false)
        • If true, this food can be eaten even if not hungry.
      • eat_seconds: float (default: 1.6)
        • The number of seconds that it takes to eat this food item.
      • effects: list of effects to apply when eaten (default: [])
        • effect: effect instance (same format as custom_effects in minecraft:potion_contents component)
        • probability: float between 0 and 1, chance for the effect to be applied (default: 1)
      • Example: food={nutrition:4,saturation_modifier:0.1}
    • On food items, has an implicit default value for that food type.
  • Added max_stack_size.
    • Controls the maximum stacking size of this item.
    • Format: integer between 1 and 99.
      • Example: max_stack_size=4
    • Has an implicit default value according to the item type (usually 64 but can also be 16 and 1)
  • Added max_damage.
    • Controls the maximum amount of damage than an item can take.
    • If not present, the item cannot be damaged.
    • Format: positive integer.
      • Example: max_damage=123
    • Has an implicit default value for damageable items.
  • Added fire_resistant.
    • If present, this item doesn't burn in fire.
    • Format: empty object.
      • Example: fire_resistant={}
    • Has an implicit default value for fire-resistant items, such as netherite tools.
  • Added rarity.
    • Controls the color of the item name.
    • Format: enumerated value, one of:
      • common (default): white name, or aqua when enchanted.
      • uncommon: yellow name, or aqua when enchanted.
      • rare: aqua name, or light purple when enchanted.
      • epic: light purple name.
      • Example: rarity=rare.
    • Special items such as golden apples have an implicit default value.
  • Added tool.
    • Controls the behavior of the item as a tool.
    • Format: object with fields.
      • rules: list of rule entries.
        • blocks: single block, list of blocks, or #-prefixed block tag to match.
        • speed (optional): float, overrides the mining speed if present and matched.
        • correct_for_drops (optional): boolean, overrides whether this tool is considered 'correct' if present and matched.
          • true causes the block to mine at its most efficient speed, and drop items if the targeted block requires that.
      • default_mining_speed: float, mining speed to use if no rules match and override mining speed (default: 1.0).
      • damage_per_block: non-negative int, amount of durability to remove each time a block is mined with this tool.
      • Example: tool={rules:[{blocks:"#mineable/pickaxe",speed:4.0,correct_for_drops:true}]}
    • Vanilla tool items have an implicit default value based on their tier and tool type.
  • Added hide_tooltip.
    • If present, it completely hides whole item tooltip (that includes item name).
    • Tooltip is still visible and searchable in Creative mode.
    • Format: empty object.
      • Example: hide_tooltip={}

Loot functions

  • Added toggle_tooltips loot function.
    • This function can be used to modify item component tooltip visiblity.
    • It works by setting fields like show_in_tooltip without changing other values.
    • Format: toggles - a map of supported item component type to boolean value.
    • Supported components: trim, dyed_color, enchantments, stored_enchantments, unbreakable, can_break, can_place_on, attribute_modifiers.
    • Example: {function:"toggle_tooltips","toggles":{"enchantments":false}} hides enchantments tooltip.

Loot tables

  • Added storage loot number provider to access values from command storage.
    • This number provider is able to access numeric values from command storage directly.
    • If selected storage does not exist or tag selected by path is not numeric or does not exist, provider returns 0.
    • Fields:
      • storage: namespaced id of command storage.
      • path: NBT path to field.

Gameplay

Advancements

  • Added a crafter_recipe_crafted trigger which is triggered when a crafter ejects a successfully crafted item into the world.
    • <player> an entity predicate matching the player who is nearby.
    • <recipe_id> is the ID of the recipe being crafted.
    • <ingredients> is a list of item predicates matching the ingredients that form the recipe being crafted.
  • Added a fall_after_explosion trigger which is triggered when a player begins falling after being knocked upwards by an explosion or wind burst.
    • <player> an entity predicate matching the player who is falling.
    • <start_position> a location predicate matching the position the player was at when they were hit by the explosion or burst.
    • <distance> a distance predicate matching how far the player must be from start_position to cause the trigger to activate.
    • <cause> an entity predicate matching the entity which caused the explosion or burst to happen.

General

Tags

  • Added incorrect_for_wooden_tool, incorrect_for_gold_tool, incorrect_for_stone_tool, incorrect_for_iron_tool, incorrect_for_diamond_tool, incorrect_for_netherite_tool block tags.
    • These tags combine the existing needs_diamond_tool, needs_iron_tool, and needs_stone_tool tags for each specific tool tier.
  • Added meat collection item tag.
    • Contains beef, chicken, cooked_beef, cooked_chicken, cooked_mutton, cooked_porkchop, cooked_rabbit, mutton, porkchop, rabbit, and rotten_flesh
    • This is not used by the game directly, but may be included by other tags.
  • Added #armadillo_food, #bee_food, #camel_food, #cat_food, #chicken_food, #cow_food, #frog_food, #goat_food, #hoglin_food, #horse_food, #horse_tempt_items, #llama_food, #llama_tempt_items, #ocelot_food, #panda_food, #parrot_food, #parrot_poisonous_food, #pig_food, #rabbit_food, #sheep_food, #strider_food, #strider_tempt_items, #turtle_food, and #wolf_food item tags to control which items can be fed to or tempt the corresponding mobs.
  • Added sensitive_to_smite entity type tag.
    • For entity types that take extra damage from the Smite enchantment.

Changes

Command format

General

  • Command arguments that previously accepted namespaced ids of loot tables, modifiers and predicates can now also accept inline definitions:
    • loot
    • item
    • execute if predicate
    • Values have same structure as matching JSON files, though they are encoded as SNBT. Example: execute if predicate {condition:weather_check, raining:true}

Entity sub-predicates

  • wolf
    • New wolf sub-predicate has been added to match wolf variantsFields: variant - wolf variant to match (single entry, list of entries or tag)
  • cat, frog, painting
    • Field variant now accepts single entries, list of entries or tags.
  • wolf, cat, frog and painting entity sub-predicates now accept tags and plain lists instead of just single elements.

Loot functions

  • set_lore function:
    • The replace field has been removed.
    • Now has mode like set_fireworks and set_written_book_pages.
  • set_written_book_pages function:
    • pages is now a JSON object rather than a string containing JSON.
  • Nested lists are no longer supported in function lists.

Item predicate argument

  • The item predicate syntax (used in execute if|unless items and clear commands) has been significantly expanded.
  • The general syntax is: <type> [comma-separated list of <test>]
  • <type> can be one of:
    • item id
    • item tag id prefixed with #
    • * to match any item.
  • <test> can have one of 3 forms:
    • <component_id>=<value> - match exact value of component (same as in previous format)
      • <value> is a representation of component value in SNBT format (same as in item give argument)
    • <component_id> - check if component exists.
    • <predicate_id>~<value> - check item sub-predicate.
      • <value> is a representation of item sub-predicate in SNBT format (but otherwise same as one used for advancement and loot table JSON files)
      • Example: *[damage~{durability:{min:3}}] matches any stack with at least 3 uses left.
  • The special name minecraft:count can be used for matching the stack size.
    • count=<positive int> passes only when the stack size equals the given value.
    • count~<int range> passes when the stack size is in the specified range.
      • Example: *[count~{max:2}] matches any stack with count <= 2.
    • count always passes.
  • Any <test> entry can be negated by prefixing with !
    • Example: *[!count=1] matches any stack that has count other than 1.
  • <test> elements can be also joined with | to check multiple alternatives.
    • Example: *[!damage|damage=0] looks for items without damage component or with 0 damage.
  • Removed redundant custom data section ({...}) from item arguments (it's fully replaced by [custom_data={...}])
    • To make this transition easier, custom_data item sub-predicate has been changed to allow unquoted SNBT.
  • The syntax for custom data partial matching ({}) has been removed in favor of using custom_data predicates.
    • So stick{a:2} becomes stick[custom_data~{a:2}]

Item sub-predicates

  • Predicate minecraft:custom_data now accepts both SNBT data written as a string (existing format) and unflattened tags.
    • That means that *[custom_data~{a:1}] and *[custom_data~"{a:1}"] are equivalent.
    • Flattened string format has been kept since NBT type information can't be expressed in JSON.

General

Data packs

  • The data pack version is now 36.

Resource packs

  • The resource pack version is now 30.
  • Changed texture asset paths in wolf_variant to better match other formats.
    • Field texture has been renamed to wild_texture
    • wild_texture, tame_texture and angry_texture no longer require values to be prefixed with textures/ and suffixed with .png.
  • Particle entity_effect takes color argument when spawned from command /particle entity_effect r g b a.
    • 4 float values ranging from 0.0 to 1.0 representing RGBA.
  • Removed map_icons.png​[more information needed]
    • Map decoration icons have been split from the former map_icons.png to use an atlas loaded from the textures/map/decorations/ directory.
    • The atlas is now generated upon loading resources: map_decorations.png-atlas
  • The process of upgrading a pack can be assisted by using an automated Slicer tool.[2]
  • Added trial_chambers map decoration icon.

Tags

  • axolotl_tempt_items has been renamed to axolotl_food.

Experimental

Additions

Items

Trial chambers map

  • Can be traded from journeyman cartographers.
  • Point to a nearby trial chamber.
Gameplay

Advancements

  • Added seven new advancements:
    • Minecraft: Trial(s) Edition
      • Step foot in a Trial Chamber
    • Under Lock & Key
      • Unlock a Vault using a Trial Key
    • Blowback
      • Kill a Breeze with a deflected Wind Charge
    • Who Needs Rockets?
      • Use a Wind Charge to launch yourself upward at least 8 blocks
    • Crafters Crafting Crafters
      • Be near a Crafter when it crafts a Crafter
    • Lighten Up
      • Scrape a Copper Bulb with an Axe to make it brighter
    • Over-Overkill
      • Deal 50 hearts of damage in a single hit using the Mace
General

Tags

  • Added the #on_trial_chambers_maps structure tag.
    • Contains trial_chambers.

Changes

Blocks

Heavy core

  • Can now be waterlogged.
  • Can now survive lava flowing into them.
  • Adjusted destroy time and explosion resistance.
    • It now takes 15 seconds to mine (down from 45).
    • Blast resistance now matches the one from obsidian.
  • Pushing a heavy core with a piston now moves the block, instead of popping it off.
  • Map color is now silver.
  • Removed the unused orientation block state.
Items

Mace

  • No longer counts as an efficient tool for breaking cobwebs.
  • Maces now have a unique sound when hitting an entity from a fall of more than five blocks.
World generation

Trial chambers

  • Now generate slightly more rarely and a bit more spaced out from each other.

Fixes

33 issues fixed

From released versions before 1.20

  • MC-200947 – Large amount of unused space in map_icons.png texture file.
  • MC-200987 – Title in bossbar breaks HUD opacity.
  • MC-251303 – Transparent boss bars break when more than one is on screen.

From 1.20.4

  • MC-267747 – Click and hover events don't work when viewing chat while F1 is enabled.
  • MC-269085 – Experience bar and jump bar render translucent pixels as opaque.

From the 1.20.5 development versions

  • MC-267933 – Silk Touch and Fortune enchanted books cannot be found in Creative inventory.
  • MC-267943 – Anvil exclusive enchantments can be obtained from enchanting tables.
  • MC-268068 – Pieces of text in the "Reset World" Realm menu can intersect when using some resolutions.
  • MC-268171 – Some GUI textures can no longer be transparent in Minecraft.
  • MC-268311 – Bane of arthropods enchantment uses #arthropods tag instead of #sensitive_to_bane_of_arthropods.
  • MC-268312 – Impaling enchantment uses #aquatic tag instead of #sensitive_to_impaling.
  • MC-268343 – Breeze charge has laggy unnatural flightpaths when punched.
  • MC-268510 – Items with "Unbreakable:1b" NBT can no longer have the Unbreaking enchantment applied.
  • MC-268556 – Wind charges go through non-full blocks instead of colliding.
  • MC-268562 – Wind charges deal no knockback within non-solid blocks.
  • MC-269169 – Wolf variants not present in advancement criteria.
  • MC-269268 – Components don't work on the smithing table.
  • MC-269280 – The right side of incompatible resource or data packs isn't rendered correctly when the scroll bar is present.
  • MC-269299 – The red text within the "Experiments" menu cannot be narrated or selected.
  • MC-269336 – Crash with set_enchantments item modifier above level 255.

From the previous development version

  • MC-269354 – The subtitle for the "minecraft:item.mace.smash_air" sound event displays as a raw translation string.
  • MC-269356 – Heavy core cannot be oriented despite its blockstates suggesting otherwise.
  • MC-269361 – Weird wind charge behavior when deflecting.
  • MC-269373 – /datapack disable doesn't work.
  • MC-269393 – Game crashes when wind charge hits entity.
  • MC-269401 – The minecraft:set_written_book_pages item modifier is inconsistent with minecraft:set_name and minecraft:set_lore.
  • MC-269403 – Mace can mine any block at a higher speed than hand.
  • MC-269409 – Unable to execute /particle entity_effect.
  • MC-269419 – Heavy core cannot be waterlogged.
  • MC-269422 – Carpet on powder snow no longer negates fall damage.
  • MC-269452 – Crash when using item modifier with replace_section mode and very large size field.
  • MC-269457 – Crash with set_lore item modifier setting more than 256 lores.
  • MC-269513 – Maces can break cobwebs.

Videos

Videos made by slicedlime:

References

Sources