Minecraft Wiki
Advertisement

Custom advancements in data packs of a Minecraft world store the advancement data for that world as separate JSON files.

File format[]

All advancement JSON files are structured according to the following format.

Legend[]

  • *: If parent field is written, this field is required.
  • The root tag.
    •  display: Data related to the advancement's display.
      •  icon*: Object containing data for the advancement's icon.
        •  item*: The item's ID.
        •  nbt: A string containing SNBT that may modify the item's appearance on the icon.
      •  title*: A JSON text component for the title of this advancement.
      •  frame: Type of frame for the icon. challenge for Advancement-fancy-raw.png, goal for Advancement-oval-raw.png, task for Advancement-plain-raw.png. Defaults to task.
      •  background: The directory for the background to use in this advancement tab (used only for the root advancement).
      •  description*: A JSON text component for the description text of this advancement.
      •  show_toast: Whether to show a toast to the player when this advancement has been completed. Defaults to true.
      •  announce_to_chat: Whether to announce in the chat when this advancement has been completed. Defaults to true.
      •  hidden: Whether to hide this advancement and all its children from the advancement screen until this advancement have been completed. Has no effect on root advancements themselves, but still affects all their children. Defaults to false.
    •  parent: The parent advancement directory of this advancement. If absent, this advancement is a root advancement. Circular references cause a loading failure.
    •  criteria*: The criteria to be tracked by this advancement.
      •  <criterionName>: The key is a unique name given to the criterion.
    •  requirements: Defines how these criteria above are completed to grant the advancement. Contains sublists, which in turn contain names of criteria from this advancement (all the <criterionName>s). When a criterion is newly completed or revoked, the advancement is granted if all sublists have at least one criterion within them completed. Optional, defaults to requiring all criteria completed.
      • Sublist within  requirements, contains strings of <criterionName>s. If a sublist is empty, the advancement is unachievable without cheats.
        • A criterion name.
    •  rewards: An object representing the rewards provided when this advancement is obtained.

Display[]

Within the root tag of an advancement JSON object, the  display object and the  parent string, both optional, are related to the display of the advancement.

If the  display tag is present, it must have the  title,  description and  icon fields present in order to be considered as valid advancement display data.

The  parent field, albeit not directly associated with the display data of an advancement, affects only the display data effectively. When an advancement does not have a display data and none of its children has a display data, the parent of the advancement only affects /advancement ... through|from|until usage.

Advancement tabs[]

Creating a root advancement (no  parent) with valid  display data automatically creates a tab in the advancement menu. When loaded, the root advancement shows as a tab in the menu when any advancement in its advancement tree is granted to the player viewing the menu.

The missing texture displays on the tab's background if the root advancement does not have a background.

If a root advancement successfully creates a tab, child advancements of the root will show inside of that tab, provided they also have valid  display data.

Positioning[]

The game automatically arranges advancements, position them when it loads advancements from data packs, and sends the arrangement to the client. Each advancement has an arrow from its closest visible ancestor (i.e. if its parent does not have a display, it has a link from its grandparent, and so on). The root advancement appears on the leftmost column while each arrow points to an advancement in the next column. The arrangement of advancements within a column is based on file name.

Lack of display[]

Some advancements, such as the vanilla recipe unlocking advancements, may lack a display so that they can utilize triggers and rewards instead of excessive commands or functions for more functionalities and a more flexible control. These advancements should not have the  display field defined in order to hide from users and enjoy a better loading performance.

Criteria[]

  • *: If parent field is written, this field is required.

The format of a criteron:

  •  <criterionName>: Root object.
    •  trigger*: The trigger for this criterion.
    •  conditions: Object containing conditions that need to be met when the trigger gets activated. The criterion is marked completed when the trigger activates and all conditions passed.
      •  player: Checks properties of the player that would get the advancement. Not available for minecraft:impossible trigger.
        • All possible conditions for entities
      •  player: Another format for "player". Specified a list of predicates that must pass in order for the criterion to be granted. Not available for minecraft:impossible trigger.
      • Extra contents depend on selected  trigger.

List of triggers[]

All JSON fields in the conditions are optional unless marked with "*".

The possible values for  trigger and associated extra contens in  conditions:

minecraft:allay_drop_item_on_block[]

Triggers when an allay drops an item on a block. Available extra conditions:

  •  conditions:
    •  location: The location at the center of the block the item was dropped on.
      • Tags common to all locations
    •  item: The item dropped on the block.
      • All possible conditions for items

minecraft:avoid_vibration[]

Triggers when a vibration event is ignored because the source player is crouching. No extra condition.

minecraft:bee_nest_destroyed[]

Triggers when the player breaks a bee nest or beehive. Available extra conditions:

  •  conditions:
    •  block: Checks the block that was destroyed. Accepts block IDs.
    •  item: The item used to break the block.
      • All possible conditions for items
    •  num_bees_inside: The number of bees that were inside the bee nest/beehive before it was broken.
      •  num_bees_inside: Another form for  num_bees_inside.
        •  max: The maximum value.
        •  min: The minimum value.

minecraft:bred_animals[]

Triggers after the player breeds 2 animals. Available extra conditions:

  •  conditions:
    •  child: Checks properties of the child that results from the breeding.
      • All possible conditions for entities
    •  child: Another format for "child". Specified a list of predicates that must pass in order for the criterion to be granted. The origin of the predicate is the position of the player that would get the advancement.
    •  parent: The parent.
      • All possible conditions for entities
    •  parent: Another format for "parent". Specified a list of predicates that must pass in order for the criterion to be granted. The origin of the predicate is the position of the player that would get the advancement.
    •  partner: The partner (The entity the parent was bred with).
      • All possible conditions for entities
    •  partner: Another format for "partner". Specified a list of predicates that must pass in order for the criterion to be granted. The origin of the predicate is the position of the player that would get the advancement.

minecraft:brewed_potion[]

Triggers after the player takes any item out of a brewing stand. Available extra conditions:

minecraft:changed_dimension[]

Triggers after the player travels between two dimensions. Available extra conditions:

  •  conditions:
    •  from: The dimension the entity traveled from. This tag is a resource location for a dimension (only these in vanilla; more can be added with data packs).
    •  to: The dimension the entity traveled to. Same accepted values as above.

minecraft:channeled_lightning[]

Triggers after the player successfully uses the Channeling enchantment on an entity or a lightning rod. Available extra conditions:

  •  conditions:
    •  victims: The victims hit by the lightning summoned by the Channeling enchantment. All entities in this list must be hit.
      • : A victim.
        • All possible conditions for entities
      • : Another format for victim. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the victim hit by the lighting, with the origin being the position of the player that would get the advancement.

minecraft:construct_beacon[]

Triggers after the player changes the structure of a beacon. (When the beacon updates itself). Available extra conditions:

  •  conditions:
    •  level: The level of the updated beacon structure.
    •  level: Another format.
      •  max: The maximum value.
      •  min: The minimum value.

minecraft:consume_item[]

Triggers when the player consumes an item. Available extra conditions:

  •  conditions:
    •  item: The item that was consumed.
      • All possible conditions for items

minecraft:cured_zombie_villager[]

Triggers when the player cures a zombie villager. Available extra conditions:

  •  conditions:
    •  villager: The villager that is the result of the conversion. The 'type' tag is redundant since it will always be "villager".
      • All possible conditions for entities
    •  villager: Another format for villager. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the villager, with the origin being the position of the player that would get the advancement.
    •  zombie: The zombie villager right before the conversion is complete (not when it is initiated). The 'type' tag is redundant since it will always be "zombie_villager".
      • All possible conditions for entities
    •  zombie: Another format for zombie villager. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the zombie villager, with the origin being the position of the player that would get the advancement.

minecraft:effects_changed[]

Triggers after the player gets a status effect applied or taken from them. Available extra conditions:

  •  conditions:
    •  effects: A list of active status effects the player currently has.
      •  <minecraft:effect_name>: The key name is a status effect name.
        •  ambient: Whether the effect is from a beacon.
        •  amplifier: The effect amplifier.
        •  amplifier: Another format.
          •  max: The maximum value.
          •  min: The minimum value.
        •  duration: The effect duration in ticks.
        •  duration: Another format.
          •  max: The maximum value.
          •  min: The minimum value.
        •  visible: Whether the effect has visible particles.
    •  source: The entity that was the source of the status effect. When there is no entity or when the effect was self-applied or removed, the test passes only if the source is not specified.
      • All possible conditions for entities
    •  source: Another format for source. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the source, with the origin being the position of the player that would get the advancement.

minecraft:enchanted_item[]

Triggers after the player enchants an item through an enchanting table (does not get triggered through an anvil, or through commands). Available extra conditions:

  •  conditions:
    •  item: The item after it has been enchanted.
      • All possible conditions for items
    •  levels: The levels spent by the player on the enchantment.
    •  levels: Another format.
      •  max: The maximum value.
      •  min: The minimum value.

minecraft:enter_block[]

Every tick, triggers once for each block the player's hitbox is inside (up to 12 blocks, the maximum number of blocks the player can stand in). Available extra conditions:

  •  conditions:
    •  block: The block that the player is standing in. Accepts block IDs.
    •  state: A map of block property names to values. Errors if the block doesn't have these properties.
      •  key: Block property key and value pair.
      •  key: Another format.
        •  max: A maximum value.
        •  min: A minimum value.

minecraft:entity_hurt_player[]

Triggers after a player gets hurt, even without a source entity. Available extra conditions:

  •  conditions:
    •  damage: Checks the damage done to the player.
    • Damage tags

minecraft:entity_killed_player[]

Triggers after a living entity kills a player. Available extra conditions:

  •  conditions:
    •  entity: Checks the entity that was the source of the damage that killed the player (for example: The skeleton that shot the arrow).
      • All possible conditions for entities
    •  entity: Another format for entity. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the entity that kills the player, with the origin being the position of the player that would get the advancement.
    •  killing_blow: Checks the type of damage that killed the player.
      • Tags common to all damage types

minecraft:fall_from_height[]

Triggers when a player lands after falling. Available extra conditions:

  •  conditions:
    •  start_position: A location predicate for the last position before the falling started.
      • Tags common to all locations
    •  distance: The distance between the start position and the player's position.
    • Distance predicate tags

minecraft:filled_bucket[]

Triggers after the player fills a bucket. Available extra conditions:

  •  conditions:
    •  item: The item resulting from filling the bucket.
      • All possible conditions for items

minecraft:fishing_rod_hooked[]

Triggers after the player successfully catches an item with a fishing rod or pulls an entity with a fishing rod. Available extra conditions:

  •  conditions:
    •  entity: The entity that was pulled, or the fisshing bobber if no entity is pulled.
      • All possible conditions for entities
    •  entity: Another format for entity. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the entity pulled or the bobber, with the origin being the position of the player that would get the advancement.
    •  item: The item that was caught.
      • All possible conditions for items
    •  rod: The fishing rod used.
      • All possible conditions for items

minecraft:hero_of_the_village[]

Triggers when a raid ends in victory and the player has attacked at least one raider from that raid. No extra condition.

minecraft:impossible[]

Never triggers. No available condition.

minecraft:inventory_changed[]

Triggers after any changes happen to the player's inventory. Available extra conditions:

  •  conditions:
    •  items: A list of items in the player's inventory. All items in the list must be in the player's inventory, but not all items in the player's inventory have to be in this list.
      • : An item stack.
        • All possible conditions for items
    •  slots:
      •  empty: The amount of slots empty in the inventory.
      •  empty: Another format.
        •  max: The maximum value.
        •  min: The minimum value.
      •  full: The amount of slots completely filled (stacksize) in the inventory.
      •  full: Another format.
        •  max: The maximum value.
        •  min: The minimum value.
      •  occupied: The amount of slots occupied in the inventory.
      •  occupied: Another format.
        •  max: The maximum value.
        •  min: The minimum value.

minecraft:item_durability_changed[]

Triggers after any item in the inventory has been damaged in any form. Available extra conditions:

  •  conditions:
    •  delta: The change in durability (negative numbers are used to indicate a decrease in durability).
    •  delta: Another format.
      •  max: The maximum value.
      •  min: The minimum value.
    •  durability: The remaining durability of the item.
    •  durability: Another format.
      •  max: The maximum value.
      •  min: The minimum value.
    •  item: The item before it was damaged, allows you to check the durability before the item was damaged.
      • All possible conditions for items

minecraft:item_used_on_block[]

Triggers when the player uses their hand or an item on a block. Available extra conditions:

  •  conditions:
    •  location: The location at the center of the block the item was used on.
      • Tags common to all locations
    •  item: The item used on the block.
      • All possible conditions for items

minecraft:kill_mob_near_sculk_catalyst[]

Triggers after a player is the source of a mob or player being killed within the range of a sculk catalyst. Available extra conditions:

  •  conditions:
    •  entity: The entity that was killed.
      • All possible conditions for entities
    •  entity: Another format for entity. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the mob, with the origin being the position of the player that would get the advancement.
    •  killing_blow: The type of damage that killed an entity.
      • Tags common to all damage types

minecraft:killed_by_crossbow[]

Triggers after the player kills a mob or player using a crossbow in ranged combat. Available extra conditions:

  •  conditions:
    •  unique_entity_types: The exact count of types of entities killed.
    •  unique_entity_types: Another format. The acceptable range of count of types of entities killed.
      •  max: The maximum value.
      •  min: The minimum value.
    •  victims: A list of victims. All of the entries must be matched, and one killed entity may match only one entry.
      • : A killed entities.
        • All possible conditions for entities
      • : Another format. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the victim, with the origin being the position of the player that would get the advancement.

minecraft:levitation[]

Triggers when the player has the levitation status effect. Available extra conditions:

  •  conditions:
    •  distance: The distance between the position where the player started levitating and the player's current position.
    • Distance predicate tags
    •  duration: The duration of the levitation in ticks.
    •  duration: Another format.
      •  max: The maximum value.
      •  min: The minimum value.

minecraft:lightning_strike[]

Triggers when a lightning bolt disappears from the world, only for players within a 256 block radius of the lightning bolt. Available extra conditions:

  •  conditions:
    •  lightning: The lightning bolt that disappeared.
      • All possible conditions for entities
    •  lightning: Another format. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the lightning, with the origin being the position of the player that would get the advancement.
    •  bystander: An entity not hurt by the lightning strike but in a certain area around it.
      • All possible conditions for entities
    •  bystander: Another format. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the bystander, with the origin being the position of the player that would get the advancement.

minecraft:location[]

Triggers every 20 ticks (1 second). No extra condition.

minecraft:nether_travel[]

Triggers when the player travels to the Nether and then returns to the Overworld. Available extra conditions:

  •  conditions:
    •  start_position: A location predicate for the last position before the player teleported to the Nether.
      • Tags common to all locations
    •  distance: The distance between the position where the player teleported to the Nether and the player's position when they returned.
    • Distance predicate tags

minecraft:placed_block[]

Triggers when the player places a block. Available extra conditions:

  •  conditions:
    •  block: The block that was placed. Accepts block IDs.
    •  item: The item that was used to place the block before the item was consumed.
      • All possible conditions for items
    •  location: The location of the block that was placed.
      • Tags common to all locations
    •  state: A map of block property names to values. Errors if the block doesn't have these properties.
      •  key: Block property key and value pair.
      •  key: Another format.
        •  max: A maximum value.
        •  min: A minimum value.

minecraft:player_generates_container_loot[]

Triggers when the player generates the contents of a container with a loot table set. Available extra conditions:

  •  conditions:
    •  loot_table*: The resource location of the generated loot table.

minecraft:player_hurt_entity[]

Triggers after the player hurts a mob or player. Available extra conditions:

  •  conditions:
    •  damage: The damage that was dealt.
    • Damage tags
    •  entity: The entity that was damaged.
      • All possible conditions for entities
    •  entity: Another format. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the entity, with the origin being the position of the player that would get the advancement.

minecraft:player_interacted_with_entity[]

Triggers when the player interacts with an entity. Available extra conditions:

  •  conditions:
    •  item: The item which was in the player's hand during interaction.
      • All possible conditions for items
    •  entity: The entity which was interacted with.
      • All possible conditions for entities
    •  entity: Another format. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the entity, with the origin being the position of the player that would get the advancement.

minecraft:player_killed_entity[]

Triggers after a player is the source of a mob or player being killed. Available extra conditions:

  •  conditions:
    •  entity: The entity that was killed.
      • All possible conditions for entities
    •  entity: Another format for entity. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the entity, with the origin being the position of the player that would get the advancement.
    •  killing_blow: The type of damage that killed an entity.
      • Tags common to all damage types

minecraft:recipe_unlocked[]

Triggers after the player unlocks a recipe (using a knowledge book for example). Available extra conditions:

  •  conditions:
    •  recipe*: The recipe that was unlocked.

minecraft:ride_entity_in_lava[]

Triggers when a player mounts an entity walking on lava and while the entity moves with them. Available extra conditions:

  •  conditions:
    •  start_position: A location predicate for the last position before the player mounted the entity.
      • Tags common to all locations
    •  distance: The distance between the start position and the player's position.
    • Distance predicate tags

minecraft:shot_crossbow[]

Triggers when the player shoots a crossbow. Available extra conditions:

  •  conditions:
    •  item: The crossbow that is using.
      • All possible conditions for items

minecraft:slept_in_bed[]

Triggers when the player enters a bed. No extra condition.

minecraft:slide_down_block[]

Triggers when the player slides down a block. Available extra conditions:

  •  conditions:
    •  block: The block that the player slid on.
    •  state: A map of block property names to values. Errors if the block doesn't have these properties.
      •  key: Block property key and value pair.
      •  key: Another format.
        •  max: A maximum value.
        •  min: A minimum value.

minecraft:started_riding[]

Triggers when the player starts riding a vehicle or an entity starts riding a vehicle currently ridden by the player. No extra condition.

minecraft:summoned_entity[]

Triggers after an entity has been summoned. Works with iron golems (pumpkin and iron blocks), snow golems (pumpkin and snow blocks), the ender dragon (end crystals) and the wither (wither skulls and soul sand/soul soil). Using dispensers, commands, or pistons to place the wither skulls or pumpkins will still activate this trigger. Available extra conditions:

  •  conditions:
    •  entity: The summoned entity.
      • All possible conditions for entities
    •  entity: Another format for entity. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the entity, with the origin being the position of the player that would get the advancement.

minecraft:tame_animal[]

Triggers after the player tames an animal. Available extra conditions:

  •  conditions:
    •  entity: Checks the entity that was tamed.
      • All possible conditions for entities
    •  entity: Another format for entity. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the entity, with the origin being the position of the player that would get the advancement.

minecraft:target_hit[]

Triggers when the player shoots a target block. Available extra conditions:

  •  conditions:
    •  signal_strength: The redstone signal that will come out of the target block.
    •  signal_strength: Another format.
      •  max: The maximum value.
      •  min: The minimum value.
    •  projectile: The projectile hit the target block.
      • All possible conditions for entities
    •  projectile: Another format for projectile. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the projectile, with the origin being the position of the player that would get the advancement.

minecraft:thrown_item_picked_up_by_entity[]

Triggers after the player throws an item and another entity picks it up. Available extra conditions:

  •  conditions:
    •  item: The thrown item which was picked up.
      • All possible conditions for items
    •  entity: The entity which picked up the item.
      • All possible conditions for entities
    •  entity: Another format for entity. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the entity, with the origin being the position of the player that would get the advancement.

minecraft:thrown_item_picked_up_by_player[]

Triggers when a player picks up an item thrown by another entity. Available extra conditions:

  •  conditions:
    •  item: The item thrown.
      • All possible conditions for items
    •  entity: The entity that threw the item.
      • All possible conditions for entities
    •  entity: Another format for entity. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the entity, with the origin being the position of the player that would get the advancement.

minecraft:tick[]

Triggers every tick (20 times a second). No extra condition.

minecraft:used_ender_eye[]

Triggers when the player uses an eye of ender (in a world where strongholds generate). Available extra conditions:

  •  conditions:
    •  distance: The horizontal distance between the player and the stronghold.
    •  distance: Another format.
      •  max: A maximum value.
      •  min: A minimum value.

minecraft:used_totem[]

Triggers when the player uses a totem. Available extra conditions:

  •  conditions:
    •  item: The item, only works with totem items.
      • All possible conditions for items

minecraft:using_item[]

Triggers for every tick that the player uses an item that is used continuously. It is known to trigger for bows, crossbows, honey bottles, milk buckets, potions, shields, spyglasses, tridents, food items, eyes of ender, etc. Most items that activate from a single click, such as fishing rods, do not affect this trigger. Available extra conditions:

  •  conditions:
    •  item: The item that is used.
      • All possible conditions for items

minecraft:villager_trade[]

Triggers after the player trades with a villager or a wandering trader. Available extra conditions:

  •  conditions:
    •  item: The item that was purchased. The "count" tag checks the count from one trade, not multiple.
      • All possible conditions for items
    •  villager: The villager the item was purchased from.
      • All possible conditions for entities
    •  villager: Another format for villager. Specified a list of predicates that must pass in order for the criterion to be granted. The checks are applied to the villager, with the origin being the position of the player that would get the advancement.

minecraft:voluntary_exile[]

Triggers when the player causes a raid. No extra condition.

Removed triggers[]

minecraft:arbitrary_player_tick[]

Triggers every tick for one player only.

Removed in 1.12-pre1.

minecraft:item_delivered_to_player[]

Triggers when an allay delivers an item to the player. Available extra conditions:

  •  conditions:

Only exists in 22w14a.

minecraft:player_damaged[]

Triggers when the player receives damage. Available conditions:

  •  conditions:
    •  damage: Damage source predicate.
    • Damage tags

Removed in 17w14a.

minecraft:safely_harvest_honey[]

Triggers when the player harvests honey from a bee nest/beehive with a campfire below it. Available extra conditions:

  •  conditions:
    •  block: The block that the player harvested the honey from.
      •  block: A block ID.
      •  tag: A block tag.
    •  item: The item that the player used to harvest the honey.
      • All possible conditions for items

This trigger was made redundant by the item_used_on_block trigger. Removed in 20w20a.

Advertisement