Java Edition 24w12a

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

Java Edition

Release date

March 20, 2024

Type

Snapshot

Snapshot for

1.20.5

Downloads

Client (.json)
Server

Obfuscation maps

Client
Server

Protocol version

 dec1073742005
 hex400000B5

Data version

3824

Resource pack format

30

Data pack format

36

Minimum Java version

Java SE 17

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

Video

Videos made by Slicedlime:

References

Navigation