The changelogs are currently being added, and some versions are missing.

Here's snapshot 24w12a with new advancements and several tweaks.

Happy Mining!

Experimental Features

Trial Chambers

Trial Chambers now generate slightly more rarely and a bit more spaced out from each other

Trial Chambers Explorer Map

  • Struggle no more to locate a Trial Chamber - level up your nearest Cartographer to Journeyman for the opportunity to trade for an Explorer Map pointing to a nearby Trial Chamber

Heavy Core

  • Can now be waterlogged
  • Survives lava flows
  • Most efficient tool is now the pickaxe
  • Adjusted destroy time and explosion resistance

Advancements

  • Added the following advancements:
    • Minecraft: Trial(s) Edition - Step foot in a Trial Chamber
    • Under Lock & Key - Unlock a Vault using a Trial Key
    • [Challenge - 40 exp] 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

Technical Changes

  • The Data Pack version is now 36
  • The Resource Pack version is now 30
    • 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

Data Pack Version 36

  • 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
  • Added storage loot number provider to access values from command storage
  • New Entity Type Tag: sensitive_to_smite - for Entity Types that take extra damage from the Smite Enchantment
  • Expanded item predicate syntax used in execute if|unless items and clear commands
  • 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
  • Added wolf entity sub-predicate for matching wolf variants
  • wolfcatfrog and painting entity sub-predicates now accept tags and plain lists instead of just single elements
  • Changed texture asset paths in wolf_variant to better match other formats
  • Command arguments that previously accepted namespaced ids of loot tables, modifiers and predicates can now also accept inline definitions
  • Added new item stack components
  • Added new loot functions

wolf_variant definitions

  • Field texture has been renamed to wild_texture
  • wild_texturetame_texture and angry_texture no longer require values to be prefixed with textures/ and suffixed with .png

Commands

Inline loot values

Arguments in following commands 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}

Loot tables

storage number provider

  • 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

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

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: trimdyed_colorenchantmentsstored_enchantmentsunbreakablecan_breakcan_place_onattribute_modifiers
  • Example:
    • {function:"toggle_tooltips","toggles":{"enchantments":false}} will hide enchantments tooltip

Functions

  • 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}}] will match any stack with at least 3 uses left
  • The special name minecraft:count can be used for matching the stack size
    • count=<positive int> will pass only when the stack size equals the given value
    • count~<int range> will pass when the stack size is in the specified range
      • Example: *[count~{max:2}] will match any stack with count <= 2
    • count will always pass
  • Any <test> entry can be negated by prefixing with !
    • Example: *[!count=1] will match any stack that has count other than 1
  • <test> elements can be also joined with | to check multiple alternatives
    • Example: *[!damage|damage=0] will look for items without damage component or with 0 damage
  • 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}]

Predicates

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

Entity sub-predicates

wolf

New wolf sub-predicate has been added to match wolf variants Fields:

  • variant - wolf variant to match (single entry, list of entries or tag)

catfrogpainting

  • Field variant now accepts single entries, list of entries or tags

New Item Stack Components

minecraft:food

  • When present, this item will behave 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
    • is_meat: boolean (default: false)
      • If true, can be fed to Wolves
    • 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)
    • e.g: food={nutrition:4,saturation_modifier:0.1}
  • On food items, has an implicit default value for that food type

minecraft:max_stack_size

  • Controls the maximum stacking size of this item
  • Format: integer between 1 and 99
    • e.g. max_stack_size=4
  • Has an implicit default value according to the item type (usually 64)

minecraft:max_damage

  • Controls the maximum amount of damage than an item can take
  • If not present, the item cannot be damaged
  • Format: positive integer
    • e.g. max_damage=123
  • Has an implicit default value for damageable items

minecraft:fire_resistant

  • If present, this item will not burn in fire
  • Format: empty object
    • e.g. fire_resistant={}
  • Has an implicit default value for fire-resistant items such as Netherite

minecraft: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
    • e.g. rarity=rare
  • Special items such as Golden Apples have an implicit default value

minecraft: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 will cause 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
    • e.g. tool={rules:[{blocks:"#mineable/pickaxe",speed:4.0,correct_for_drops:true}]}
  • Vanilla tool items will have an implicit default value based on their tier and tool type

hide_tooltip

  • If present, it will completely hide whole item tooltip (that includes item name)
  • Tooltip will be still visible and searchable in creative mode
  • Format: empty object

New Tags

  • Added incorrect_for_wooden_toolincorrect_for_gold_toolincorrect_for_stone_toolincorrect_for_iron_toolincorrect_for_diamond_toolincorrect_for_netherite_tool block tags
    • These tags combine the existing needs_diamond_toolneeds_iron_tool, and needs_stone_tool tags for each specific tool tier
  • Added meat collection item tag
    • This is not used by the game directly, but may be included by other tags
  • Added piglin_foodfox_foodcow_foodgoat_foodsheep_foodwolf_foodcat_foodhorse_foodhorse_tempt_itemscamel_foodarmadillo_foodbee_foodchicken_foodfrog_foodhoglin_foodllama_foodllama_tempt_itemsocelot_foodpanda_foodpig_foodrabbit_foodstrider_foodstrider_tempt_itemsturtle_foodparrot_foodparrot_poisonous_food item tags to control which items can be fed to or tempt the corresponding mobs
  • axolotl_tempt_items has been renamed to axolotl_food

Resource Pack Version 30

  • Map decoration icons have been split from the former map_icons.png to use an atlas loaded from the textures/map/decorations/ directory
  • The process of upgrading your pack can be assisted by using this automated Slicer tool
  • Added trial_chambers map decoration icon

Fixed bugs in 24w12a

  • MC-266467 Wind charges stutter when flying through the air
  • MC-267747 Click and hover events don't work when viewing chat while F1 is enabled
  • 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 enchant applied
  • MC-268556 Wind charges go through non-full blocks instead of colliding
  • MC-269083 Effect background texture in inventory renders translucent pixels as opaque
  • MC-269085 Experience bar and jump bar render translucent pixels as opaque
  • MC-269169 Wolf variant 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
  • MC-269354 The subtitle for the "minecraft:item.mace.smash_air" sound event displays as a raw translation string
  • MC-269355 Heavy Core has no required tool
  • 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-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