Advancement Format
Advancements are technical JSON files in data packs that define progression. Java Edition only.
Folder Structure
<data pack>/
├── pack.mcmeta
└── data/<namespace>/
└── advancement/<name>.json
Root Format
criteria — the criteria of this advancement (see Criteria below).
display — display information (see Display below).
parent — namespace ID of the parent advancement. If absent, this advancement is a root advancement. Cyclic parent links cause a load failure.
requirements — how the criteria are combined: a list of sublists, each holding several criterion names. The advancement is granted when at least one criterion in every sublist is met. Default (absent): all criteria are required. An empty sublist makes the advancement impossible to obtain except via cheats.
rewards — granted when the advancement is completed:
experience (default 0) — XP granted to the player.
function — a function executed with the player as executor at their position (function tags are not supported).
loot — loot tables granted to the player.
recipes — recipes unlocked for the player.
sends_telemetry_event (default false) — whether telemetry is collected when the advancement is earned. Only effective for advancements in the minecraft namespace.
Example
{
"criteria": {
"crafting_table": {
"conditions": { "items": [ { "items": "minecraft:crafting_table" } ] },
"trigger": "minecraft:inventory_changed"
}
},
"display": {
"announce_to_chat": false,
"background": "minecraft:gui/advancements/backgrounds/stone",
"description": { "translate": "advancements.story.root.description" },
"icon": { "count": 1, "id": "minecraft:grass_block" },
"show_toast": false,
"title": { "translate": "advancements.story.root.title" }
},
"requirements": [ [ "crafting_table" ] ],
"sends_telemetry_event": true
}
Display
announce_to_chat (default true) — announce completion in chat.
background (root advancements only) — tiled background texture, referenced as <namespace>:<path>; file at <namespace>/textures/<path>.png in the resource pack, omitting textures/ and .png.
description — text component shown as the description in the advancement screen.
frame (default task) — icon frame type: challenge, goal, or task.
hidden (default false) — hide this advancement and all its children until it is completed. No effect on the root itself, but still affects its children.
icon — an item stack used as the icon (item template).
show_toast (default true) — show a toast notification on completion.
title — text component shown as the title.
An advancement appears in the advancement screen only if: it is a root advancement, or its parent is shown, display is defined, and hidden is false.
Tabs
A root advancement with display (no parent) automatically creates a tab at the edge of the advancement screen. When a player obtains any advancement in that root's tree, the root and its tab are revealed to that player; the tab icon matches the root icon. The root's background does not affect the tab. Children appear in the tab only if they define display.
Layout
On data pack load, the game arranges advancements automatically and sends the layout to the client. Each advancement gets an arrow from the nearest visible ancestor (skipping ancestors without display). Roots sit in the leftmost column; every column is sorted by file name.
Missing Display
Advancements without display (e.g. vanilla ones unlocked by recipes) are used purely for logic — triggers and rewards replace commands and functions, stay invisible to players, and load faster.
Criteria
<criterion name> — a criterion; names must be unique within the advancement.
trigger (required) — namespace ID of the trigger. Each trigger has its own triggering situation and checkable conditions.
conditions — conditions that must be met when the trigger fires; trigger-specific.
player — an entity predicate (or list of predicates) the player must match. Available for all triggers except minecraft:impossible.
Triggers
All triggers require the player to be online — an offline player does not retroactively earn advancements after rejoining. The trigger IDs below are the full minecraft: trigger names; each has trigger-specific conditions summarized inline. For the complete condition schema of each trigger, see the Minecraft Wiki page "Advancement definition" or the vanilla files under data/minecraft/advancement/ in the Minecraft source.
allay_drop_item_on_block — when an Allay drops an item toward its chosen target block. Conditions: location (list of location predicates).
any_block_use — any player–block interaction (including default interaction and non-empty-hand use). Conditions: location.
avoid_vibration — the player creates a vibration that Sculk Sensors, Calibrated Sculk Sensors, or the Warden cannot detect because the player is sneaking.
bee_nest_destroyed — the player destroys a bee nest or beehive. Conditions: block (only minecraft:beehive/minecraft:bee_nest can pass), item (item predicate), num_bees_inside (int bounds).
bred_animals — two animals breed. Conditions: child, parent, partner (entity predicates).
brewed_potion — the player takes a potion from a brewing stand. Conditions: potion (potion ID).
changed_dimension — the player teleports to another dimension or respawns there. Conditions: from, to (dimension IDs such as minecraft:overworld, minecraft:the_nether, minecraft:the_end).
channeled_lightning — lightning created by the Channeling enchantment. Conditions: victims (list of entity predicates; one entity per predicate).
construct_beacon — a beacon activates (base changed; players within 10 Chebyshev blocks horizontally, 5 up, 9 down of the beacon center). Conditions: level (int bounds).
consume_item — the player consumes an item carrying the consumable component. Conditions: item.
crafter_recipe_crafted — the Crafter ejects an item as an entity (fires once per item). Conditions: recipe_id (required), ingredients (item predicates; each item matches only one predicate).
cured_zombie_villager — a zombie villager is cured; fires for the player who fed the golden apple. Conditions: villager, zombie (entity predicates).
default_block_use — non-sneaking block interaction. Conditions: location.
effects_changed — the player gains or loses a status effect. Conditions: effects (mob effect predicate), source (entity predicate).
enchanted_item — the player enchants an item at an enchanting table. Conditions: item, levels (int bounds; XP already deducted).
enter_block — every game tick, per block intersecting the player's collision box; also when a thrown Ender Pearl enters an end gateway. Conditions: block (ID), state (block state properties with min/max).
entity_hurt_player — the player takes or blocks damage (the source need not be an entity, e.g. lava). Conditions: damage (damage predicate).
entity_killed_player — an entity kills the player. Conditions: entity (entity predicate), killing_blow (damage source predicate).
fall_after_explosion — the player starts falling after being launched by an explosion or wind burst. Conditions: start_position (location predicate), distance (distance predicate), cause (entity predicate).
fall_from_height — the player lands after a fall. Conditions: start_position, distance.
filled_bucket — the player fills a bucket (not from a cauldron). Conditions: item (the filled bucket).
fishing_rod_hooked — the player successfully fishes an item or pulls an entity. Conditions: entity, item, rod (item/entity predicates; absent item never passes).
hero_of_the_village — after a raid victory, for every player who killed at least one raider (not in spectator mode).
impossible — cannot trigger at all; grant only directly via /advancement grant.
inventory_changed — the player's inventory changes. Conditions: items (item predicates on all added items), slots with empty/full/occupied (int bounds on slot counts).
item_durability_changed — any item in the inventory takes damage. Conditions: delta (int bounds; negative = durability lost), durability (int bounds), item (predicate on the item before damage).
item_used_on_block — the player uses an item (or empty hand) on a block. Conditions: location. (All triggering actions: MC-259075.)
kill_mob_near_sculk_catalyst — when a Sculk Catalyst spreads from a dead mob, for the damage source player. Conditions: entity, killing_blow.
killed_by_arrow — an arrow kills an entity; fires for the shooter. Conditions: unique_entity_types (int bounds), fired_from_weapon (item predicate), victims (entity predicates).
levitation — every game tick while the player has Levitation. Conditions: distance, duration (int bounds, game ticks).
lightning_strike — lightning disappears; fires for players within 256 blocks. Conditions: lightning (entity predicate), bystander (entities not struck, within 15 horizontal / 21 up / 15 down Chebyshev blocks).
location — every 20 game ticks (1 second) for all players.
nether_travel — the player enters the Nether and later returns to the Overworld. Conditions: start_position (last Overworld position before the trip), distance.
placed_block — the player places a block item, water or lava, or uses flint and steel (fire charges do not trigger it). Conditions: location.
player_generates_container_loot — the player interacts with a block/container/mob so that it generates loot from a loot table. Conditions: loot_table (required).
player_hurt_entity — the player damages an entity (including itself). Conditions: damage, entity.
player_interacted_with_entity — the player interacts with an entity. Conditions: item, entity.
player_killed_entity — the player kills an entity. Conditions: entity, killing_blow.
player_sheared_equipment — the player shears equipment off a mob. Conditions: item (sheared-off item), entity.
recipe_crafted — the player crafts with a crafting table, furnace, blast furnace, smoker, stonecutter, inventory, or smithing table. Conditions: recipe_id (required), ingredients.
recipe_unlocked — the player unlocks a recipe. Conditions: recipe (required).
ride_entity_in_lava — every game tick while riding an entity standing in lava. Conditions: start_position, distance.
shot_crossbow — the player fires a projectile with a crossbow. Conditions: item (the crossbow).
slept_in_bed — the player sleeps in a bed.
slide_down_block — the player slides down a honey block. Conditions: block (only honey_block can pass), state (honey blocks have no properties, so state checks nothing).
started_riding — an entity gets mounted; fires for all players riding it.
summoned_entity — structure-summoned Iron Golem / Snow Golem (within 5 Chebyshev blocks), Wither (50 blocks), or Ender Dragon respawn (within 192 blocks of 0,0,0 in the End). Conditions: entity.
spear_mobs — the player performs a charge attack with any item. Conditions: count (minimum number of mobs hit in one attack).
tame_animal — the player tames an animal. Conditions: entity.
target_hit — the player shoots a target block. Conditions: signal_strength (int bounds), projectile (entity predicate).
thrown_item_picked_up_by_entity — an entity picks up an item thrown by the player; fires for the thrower. Conditions: item, entity.
thrown_item_picked_up_by_player — the player picks up an item thrown by an entity. Conditions: item, entity.
tick — every game tick for all players.
used_ender_eye — the player uses an Eye of Ender to locate a stronghold. Conditions: distance (double bounds; horizontal distance to the stronghold).
used_totem — the player survives death with a Totem of Undying. Conditions: item (the consumed totem).
using_item — every game tick while using a continuously-used item: bow, crossbow, honey bottle, milk bucket, potion, shield, spyglass, trident, food, eye of ender. Conditions: item.
villager_trade — the player completes a trade. Conditions: item (bought item), villager (entity predicate; villager or wandering trader).
voluntary_exile — the player triggers a new raid.
Removed Triggers
arbitrary_player_tick — fired for one player per game tick; no conditions. Removed.
item_delivered_to_player — when an Allay throws an item to the player. Removed (superseded by allay_drop_item_on_block).
player_damaged — when the player takes damage; damage. Removed (superseded by entity_hurt_player).
safely_harvest_honey — harvesting honey from a campfire-lit bee nest/hive; block, item. Removed.
killed_by_crossbow — crossbow kills; unique_entity_types, victims. Removed (superseded by killed_by_arrow).
External Links
1---2name: minecraft-advancement3description: Minecraft Advancement 进度定义格式:JSON 数据包结构(data/<namespace>/advancement/<name>.json)、Root Format 根格式(criteria/display/parent/requirements/rewards/sends_telemetry_event)、Display 显示信息(announce_to_chat/background/description/frame/hidden/icon/show_toast/title)、Tabs 标签页(root advancement 自动创建)、Layout 布局(自动排列、箭头连接)、Criteria 标准(trigger 触发器 ID、conditions 条件、player 实体谓词)、Triggers 触发器列表(allay_drop_item_on_block/any_block_use/avoid_vibration/bee_nest_destroyed/bred_animals/brewed_potion/changed_dimension/channeled_lightning/construct_beacon/consume_item/crafter_recipe_crafted/cured_zombie_villager/default_block_use/effects_changed/enchanted_item/enter_block/entity_hurt_player/entity_killed_player/fall_after_explosion/fall_from_height/filled_bucket/fishing_rod_hooked/hero_of_the_village/impossible/inventory_changed/item_durability_changed/item_used_on_block/kill_mob_near_sculk_catalyst/killed_by_arrow/levitation/lightning_strike/location/nether_travel/placed_block/player_generates_container_loot/player_hurt_entity/player_in4---56# Advancement Format78Advancements are technical JSON files in data packs that define progression. Java Edition only.910## Folder Structure1112```13<data pack>/14├── pack.mcmeta15└── data/<namespace>/16 └── advancement/<name>.json17```1819## Root Format2021- `criteria` — the criteria of this advancement (see Criteria below).22- `display` — display information (see Display below).23- `parent` — namespace ID of the parent advancement. If absent, this advancement is a root advancement. Cyclic parent links cause a load failure.24- `requirements` — how the criteria are combined: a list of sublists, each holding several criterion names. The advancement is granted when at least one criterion in **every** sublist is met. Default (absent): all criteria are required. An empty sublist makes the advancement impossible to obtain except via cheats.25- `rewards` — granted when the advancement is completed:26 - `experience` (default 0) — XP granted to the player.27 - `function` — a function executed with the player as executor at their position (function tags are not supported).28 - `loot` — loot tables granted to the player.29 - `recipes` — recipes unlocked for the player.30- `sends_telemetry_event` (default `false`) — whether telemetry is collected when the advancement is earned. Only effective for advancements in the `minecraft` namespace.3132### Example3334```json35{36 "criteria": {37 "crafting_table": {38 "conditions": { "items": [ { "items": "minecraft:crafting_table" } ] },39 "trigger": "minecraft:inventory_changed"40 }41 },42 "display": {43 "announce_to_chat": false,44 "background": "minecraft:gui/advancements/backgrounds/stone",45 "description": { "translate": "advancements.story.root.description" },46 "icon": { "count": 1, "id": "minecraft:grass_block" },47 "show_toast": false,48 "title": { "translate": "advancements.story.root.title" }49 },50 "requirements": [ [ "crafting_table" ] ],51 "sends_telemetry_event": true52}53```5455## Display5657- `announce_to_chat` (default `true`) — announce completion in chat.58- `background` (root advancements only) — tiled background texture, referenced as `<namespace>:<path>`; file at `<namespace>/textures/<path>.png` in the resource pack, omitting `textures/` and `.png`.59- `description` — text component shown as the description in the advancement screen.60- `frame` (default `task`) — icon frame type: `challenge`, `goal`, or `task`.61- `hidden` (default `false`) — hide this advancement and all its children until it is completed. No effect on the root itself, but still affects its children.62- `icon` — an item stack used as the icon (item template).63- `show_toast` (default `true`) — show a toast notification on completion.64- `title` — text component shown as the title.6566An advancement appears in the advancement screen only if: it is a root advancement, or its parent is shown, `display` is defined, and `hidden` is `false`.6768## Tabs6970A root advancement with `display` (no `parent`) automatically creates a tab at the edge of the advancement screen. When a player obtains any advancement in that root's tree, the root and its tab are revealed to that player; the tab icon matches the root icon. The root's `background` does not affect the tab. Children appear in the tab only if they define `display`.7172## Layout7374On data pack load, the game arranges advancements automatically and sends the layout to the client. Each advancement gets an arrow from the nearest visible ancestor (skipping ancestors without `display`). Roots sit in the leftmost column; every column is sorted by file name.7576## Missing Display7778Advancements without `display` (e.g. vanilla ones unlocked by recipes) are used purely for logic — triggers and rewards replace commands and functions, stay invisible to players, and load faster.7980## Criteria8182- `<criterion name>` — a criterion; names must be unique within the advancement.83 - `trigger` (required) — namespace ID of the trigger. Each trigger has its own triggering situation and checkable conditions.84 - `conditions` — conditions that must be met when the trigger fires; trigger-specific.85 - `player` — an entity predicate (or list of predicates) the player must match. Available for all triggers except `minecraft:impossible`.8687## Triggers8889All triggers require the player to be online — an offline player does not retroactively earn advancements after rejoining. The trigger IDs below are the full `minecraft:` trigger names; each has trigger-specific `conditions` summarized inline. For the complete condition schema of each trigger, see the Minecraft Wiki page "Advancement definition" or the vanilla files under `data/minecraft/advancement/` in the Minecraft source.9091- `allay_drop_item_on_block` — when an Allay drops an item toward its chosen target block. Conditions: `location` (list of location predicates).92- `any_block_use` — any player–block interaction (including default interaction and non-empty-hand use). Conditions: `location`.93- `avoid_vibration` — the player creates a vibration that Sculk Sensors, Calibrated Sculk Sensors, or the Warden cannot detect because the player is sneaking.94- `bee_nest_destroyed` — the player destroys a bee nest or beehive. Conditions: `block` (only `minecraft:beehive`/`minecraft:bee_nest` can pass), `item` (item predicate), `num_bees_inside` (int bounds).95- `bred_animals` — two animals breed. Conditions: `child`, `parent`, `partner` (entity predicates).96- `brewed_potion` — the player takes a potion from a brewing stand. Conditions: `potion` (potion ID).97- `changed_dimension` — the player teleports to another dimension or respawns there. Conditions: `from`, `to` (dimension IDs such as `minecraft:overworld`, `minecraft:the_nether`, `minecraft:the_end`).98- `channeled_lightning` — lightning created by the Channeling enchantment. Conditions: `victims` (list of entity predicates; one entity per predicate).99- `construct_beacon` — a beacon activates (base changed; players within 10 Chebyshev blocks horizontally, 5 up, 9 down of the beacon center). Conditions: `level` (int bounds).100- `consume_item` — the player consumes an item carrying the `consumable` component. Conditions: `item`.101- `crafter_recipe_crafted` — the Crafter ejects an item as an entity (fires once per item). Conditions: `recipe_id` (required), `ingredients` (item predicates; each item matches only one predicate).102- `cured_zombie_villager` — a zombie villager is cured; fires for the player who fed the golden apple. Conditions: `villager`, `zombie` (entity predicates).103- `default_block_use` — non-sneaking block interaction. Conditions: `location`.104- `effects_changed` — the player gains or loses a status effect. Conditions: `effects` (mob effect predicate), `source` (entity predicate).105- `enchanted_item` — the player enchants an item at an enchanting table. Conditions: `item`, `levels` (int bounds; XP already deducted).106- `enter_block` — every game tick, per block intersecting the player's collision box; also when a thrown Ender Pearl enters an end gateway. Conditions: `block` (ID), `state` (block state properties with `min`/`max`).107- `entity_hurt_player` — the player takes or blocks damage (the source need not be an entity, e.g. lava). Conditions: `damage` (damage predicate).108- `entity_killed_player` — an entity kills the player. Conditions: `entity` (entity predicate), `killing_blow` (damage source predicate).109- `fall_after_explosion` — the player starts falling after being launched by an explosion or wind burst. Conditions: `start_position` (location predicate), `distance` (distance predicate), `cause` (entity predicate).110- `fall_from_height` — the player lands after a fall. Conditions: `start_position`, `distance`.111- `filled_bucket` — the player fills a bucket (not from a cauldron). Conditions: `item` (the filled bucket).112- `fishing_rod_hooked` — the player successfully fishes an item or pulls an entity. Conditions: `entity`, `item`, `rod` (item/entity predicates; absent `item` never passes).113- `hero_of_the_village` — after a raid victory, for every player who killed at least one raider (not in spectator mode).114- `impossible` — cannot trigger at all; grant only directly via `/advancement grant`.115- `inventory_changed` — the player's inventory changes. Conditions: `items` (item predicates on all added items), `slots` with `empty`/`full`/`occupied` (int bounds on slot counts).116- `item_durability_changed` — any item in the inventory takes damage. Conditions: `delta` (int bounds; negative = durability lost), `durability` (int bounds), `item` (predicate on the item *before* damage).117- `item_used_on_block` — the player uses an item (or empty hand) on a block. Conditions: `location`. (All triggering actions: MC-259075.)118- `kill_mob_near_sculk_catalyst` — when a Sculk Catalyst spreads from a dead mob, for the damage source player. Conditions: `entity`, `killing_blow`.119- `killed_by_arrow` — an arrow kills an entity; fires for the shooter. Conditions: `unique_entity_types` (int bounds), `fired_from_weapon` (item predicate), `victims` (entity predicates).120- `levitation` — every game tick while the player has Levitation. Conditions: `distance`, `duration` (int bounds, game ticks).121- `lightning_strike` — lightning disappears; fires for players within 256 blocks. Conditions: `lightning` (entity predicate), `bystander` (entities not struck, within 15 horizontal / 21 up / 15 down Chebyshev blocks).122- `location` — every 20 game ticks (1 second) for all players.123- `nether_travel` — the player enters the Nether and later returns to the Overworld. Conditions: `start_position` (last Overworld position before the trip), `distance`.124- `placed_block` — the player places a block item, water or lava, or uses flint and steel (fire charges do not trigger it). Conditions: `location`.125- `player_generates_container_loot` — the player interacts with a block/container/mob so that it generates loot from a loot table. Conditions: `loot_table` (required).126- `player_hurt_entity` — the player damages an entity (including itself). Conditions: `damage`, `entity`.127- `player_interacted_with_entity` — the player interacts with an entity. Conditions: `item`, `entity`.128- `player_killed_entity` — the player kills an entity. Conditions: `entity`, `killing_blow`.129- `player_sheared_equipment` — the player shears equipment off a mob. Conditions: `item` (sheared-off item), `entity`.130- `recipe_crafted` — the player crafts with a crafting table, furnace, blast furnace, smoker, stonecutter, inventory, or smithing table. Conditions: `recipe_id` (required), `ingredients`.131- `recipe_unlocked` — the player unlocks a recipe. Conditions: `recipe` (required).132- `ride_entity_in_lava` — every game tick while riding an entity standing in lava. Conditions: `start_position`, `distance`.133- `shot_crossbow` — the player fires a projectile with a crossbow. Conditions: `item` (the crossbow).134- `slept_in_bed` — the player sleeps in a bed.135- `slide_down_block` — the player slides down a honey block. Conditions: `block` (only `honey_block` can pass), `state` (honey blocks have no properties, so `state` checks nothing).136- `started_riding` — an entity gets mounted; fires for all players riding it.137- `summoned_entity` — structure-summoned Iron Golem / Snow Golem (within 5 Chebyshev blocks), Wither (50 blocks), or Ender Dragon respawn (within 192 blocks of `0,0,0` in the End). Conditions: `entity`.138- `spear_mobs` — the player performs a charge attack with any item. Conditions: `count` (minimum number of mobs hit in one attack).139- `tame_animal` — the player tames an animal. Conditions: `entity`.140- `target_hit` — the player shoots a target block. Conditions: `signal_strength` (int bounds), `projectile` (entity predicate).141- `thrown_item_picked_up_by_entity` — an entity picks up an item thrown by the player; fires for the thrower. Conditions: `item`, `entity`.142- `thrown_item_picked_up_by_player` — the player picks up an item thrown by an entity. Conditions: `item`, `entity`.143- `tick` — every game tick for all players.144- `used_ender_eye` — the player uses an Eye of Ender to locate a stronghold. Conditions: `distance` (double bounds; horizontal distance to the stronghold).145- `used_totem` — the player survives death with a Totem of Undying. Conditions: `item` (the consumed totem).146- `using_item` — every game tick while using a continuously-used item: bow, crossbow, honey bottle, milk bucket, potion, shield, spyglass, trident, food, eye of ender. Conditions: `item`.147- `villager_trade` — the player completes a trade. Conditions: `item` (bought item), `villager` (entity predicate; villager or wandering trader).148- `voluntary_exile` — the player triggers a new raid.149150## Removed Triggers151152- `arbitrary_player_tick` — fired for one player per game tick; no conditions. Removed.153- `item_delivered_to_player` — when an Allay throws an item to the player. Removed (superseded by `allay_drop_item_on_block`).154- `player_damaged` — when the player takes damage; `damage`. Removed (superseded by `entity_hurt_player`).155- `safely_harvest_honey` — harvesting honey from a campfire-lit bee nest/hive; `block`, `item`. Removed.156- `killed_by_crossbow` — crossbow kills; `unique_entity_types`, `victims`. Removed (superseded by `killed_by_arrow`).157158## External Links159160- [Advancement Generator](https://misode.github.io) on misode.github.io — visual advancement editor.