Advancement definition

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.
  • [NBT Compound / JSON Object] The root tag.
    • [String] parent: The parent advancement directory of this advancement. If absent, this advancement is a root advancement. Circular references cause a loading failure.
    • [NBT Compound / JSON Object] display: Data related to the advancement's display.
      • [NBT Compound / JSON Object] icon*: Object containing data for the advancement's icon.
        • [String] id*: An item ID.
        • [Int] count: Optional. The amount of the item. Falls back to 1 if the field is absent.
        • [NBT Compound / JSON Object] components: Optional. Additional information about the item. See item components.
      • [String][NBT Compound / JSON Object][NBT List / JSON Array] title*: A JSON text component for the title of this advancement.
      • [String][NBT Compound / JSON Object][NBT List / JSON Array] description*: A JSON text component for the description text of this advancement.
      • [String] frame: Type of frame for the icon. challenge for fancy frame, goal for oval frame, task for plain frame. Defaults to task.
      • [String] background: The directory for the background to use in this advancement tab (used only for the root advancement).
      • [Boolean] show_toast: Whether to show a toast to the player when this advancement has been completed. Defaults to true.
      • [Boolean] announce_to_chat: Whether to announce in the chat when this advancement has been completed. Defaults to true.
      • [Boolean] 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.
    • [NBT Compound / JSON Object] criteria*: The criteria to be tracked by this advancement.
      • [NBT Compound / JSON Object] <criterionName>: The key is a unique name given to the criterion. Can be any valid text.
    • [NBT List / JSON Array] 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.
      • [NBT List / JSON Array] Sublist within [NBT List / JSON Array] requirements, contains strings of <criterionName>s. If a sublist is empty, the advancement is unachievable without cheats.
        • [String] A criterion name.
    • [NBT Compound / JSON Object] rewards: An object representing the rewards provided when this advancement is obtained.
    • [Boolean] sends_telemetry_event: Determines whether telemetry data should be collected when this advancement is achieved or not. Defaults to false.

Display

Within the root tag of an advancement JSON object, the [NBT Compound / JSON Object] display object and the [String] parent string, both optional, are related to the display of the advancement.

If the [NBT Compound / JSON Object] display tag is present, it must have the [String][NBT Compound / JSON Object] title, [String][NBT Compound / JSON Object] description and [NBT Compound / JSON Object] icon fields present in order to be considered as valid advancement display data.

The [String] 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 affects only /advancement ... through|from|until usage.

Advancement tabs

Creating a root advancement (no [String] parent) with valid [NBT Compound / JSON Object] 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 appear inside of that tab, provided they also have valid [NBT Compound / JSON Object] display data.

Positioning

The game automatically arranges advancements, positions 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 [NBT Compound / JSON Object] 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 criterion:

  • [NBT Compound / JSON Object] <criterionName>: Root object. The key can be any valid text.
    • [String] trigger*: The trigger for this criterion.
    • [NBT Compound / JSON Object] 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.
      • [NBT Compound / JSON Object] player: Checks properties of the player that would get the advancement. Not available for minecraft:impossible trigger.
        • entity predicate see Template:Nbt inherit/conditions/entity/template
      • [NBT List / JSON Array] player: Another format for "player". Specifies a list of predicates that must pass in order for the criterion to be granted. Not available for minecraft:impossible trigger.
        • [NBT Compound / JSON Object]: A single predicate.
      • Extra contents depend on selected [String] trigger.

List of triggers

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

The possible values for [String] trigger and associated extra contents in [NBT Compound / JSON Object] conditions:

minecraft:allay_drop_item_on_block

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT List / JSON Array] location: Specifies a list of predicates that must pass in order for the criterion to be granted. The origin is the location of the block the item was dropped on, the block state belongs to that block, and the tool is the item dropped on the block. The this entity is the player that would get the advancement.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:any_block_use

Triggers under the same conditions as both minecraft:default_block_use and minecraft:item_used_on_block. Available extra conditions:

  • [NBT Compound / JSON Object] conditions:
    • [NBT List / JSON Array] location: Specifies a list of predicates that must pass in order for the criterion to be granted. The origin is the location of the block that was interacted with, the block state belongs to that block, and the tool is either the item used on the block (for the item_used_on_block case) or simply the item in the player's main hand (for the default_block_use case). The this entity is the player that would get the advancement.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:avoid_vibration

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

minecraft:bee_nest_destroyed

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

  • [NBT Compound / JSON Object] conditions:
    • [String] block: Checks the block that was destroyed. Accepts block IDs.
    • [NBT Compound / JSON Object] item: The item used to break the block.
      • item predicate see Template:Nbt inherit/conditions/item/template
    • [Int] num_bees_inside: The number of bees that were inside the bee nest/beehive before it was broken.
    • [NBT Compound / JSON Object] num_bees_inside: Another form for [Int] num_bees_inside.
      • [Int] max: The maximum value.
      • [Int] min: The minimum value.

minecraft:bred_animals

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] child: Checks properties of the child that results from the breeding.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] child: Another format for "child". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.
    • [NBT Compound / JSON Object] parent: The parent.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] parent: Another format for "parent". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.
    • [NBT Compound / JSON Object] partner: The partner (The entity the parent was bred with).
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] partner: Another format for "partner". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.

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:

  • [NBT Compound / JSON Object] conditions:
    • [String] 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).
    • [String] 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:

  • [NBT Compound / JSON Object] conditions:
    • [NBT List / JSON Array] victims: The victims hit by the lightning summoned by the Channeling enchantment. All entities in this list must be hit.
      • [NBT Compound / JSON Object]: A victim.
        • entity predicate see Template:Nbt inherit/conditions/entity/template
      • [NBT List / JSON Array]: Another format for the victim. Specifies 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.
        • [NBT Compound / JSON Object]: A single predicate.

minecraft:construct_beacon

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

  • [NBT Compound / JSON Object] conditions:
    • [Int] level: The level of the updated beacon structure.
    • [NBT Compound / JSON Object] level: Another format.
      • [Int] max: The maximum value.
      • [Int] min: The minimum value.

minecraft:consume_item

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] item: The item that was consumed.
      • item predicate see Template:Nbt inherit/conditions/item/template

minecraft:crafter_recipe_crafted

Triggers when the player is within a certain range of a crafter when it crafts a recipe. Available extra conditions:

  • [NBT Compound / JSON Object] conditions:
    • [String] recipe_id*: The recipe that was crafted.
    • [NBT List / JSON Array] ingredients: An array of item predicates for the recipe ingredients. Each item can match only one predicate, and every predicate needs to pass for the criterion to be granted.
      • [NBT Compound / JSON Object]: A single predicate.
        • item predicate see Template:Nbt inherit/conditions/item/template

minecraft:cured_zombie_villager

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] villager: The villager that is the result of the conversion. The 'type' tag is redundant since it is always "villager".
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] villager: Another format for "villager". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.
    • [NBT Compound / JSON Object] zombie: The zombie villager right before the conversion is complete (not when it is initiated). The 'type' tag is redundant since it is always "zombie_villager".
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] zombie: Another format for "zombie". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:default_block_use

Triggers when the player activates a block's default use action (opening a door, pushing a button, opening a crafting grid, etc). Available extra conditions:

  • [NBT Compound / JSON Object] conditions:
    • [NBT List / JSON Array] location: Specifies a list of predicates that must pass in order for the criterion to be granted. The origin is the location of the block that was interacted with and the block state belongs to that block. Note that for this trigger, a "tool" is not provided. The this entity is the player that would get the advancement.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:effects_changed

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] effects: A list of active status effects the player currently has.
      • [NBT Compound / JSON Object] <minecraft:effect_name>: The key name is a status effect name.
        • [Boolean] ambient: Whether the effect is from a beacon.
        • [Int] amplifier: The effect amplifier.
        • [NBT Compound / JSON Object] amplifier: Another format.
          • [Int] max: The maximum value.
          • [Int] min: The minimum value.
        • [Int] duration: The effect duration in ticks.
        • [NBT Compound / JSON Object] duration: Another format.
          • [Int] max: The maximum value.
          • [Int] min: The minimum value.
        • [Boolean] visible: Whether the effect has visible particles.
    • [NBT Compound / JSON Object] 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.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] source: Another format for "source". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.

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:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] item: The item after it has been enchanted.
      • item predicate see Template:Nbt inherit/conditions/item/template
    • [Int] levels: The levels spent by the player on the enchantment.
    • [NBT Compound / JSON Object] levels: Another format.
      • [Int] max: The maximum value.
      • [Int] min: The minimum value.

minecraft:enter_block

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), twice per tick plus once more for every time the player moves or looks around during the same tick. This results in the trigger activating tens of times per tick, and in extreme cases, even hundreds of times per tick. Available extra conditions:

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

minecraft:entity_hurt_player

Triggers after a player gets hurt (even when it's not caused by an entity)[1]. Available extra conditions:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] damage: Checks the damage done to the player.
      • Damage predicate see Template:Nbt inherit/conditions/damage/template

minecraft:entity_killed_player

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] entity: Checks the entity that was the source of the damage that killed the player (for example: The skeleton that shot the arrow).
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] entity: Another format for "entity". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.
    • [NBT Compound / JSON Object] killing_blow: Checks the type of damage that killed the player.
      • Damage type predicate see Template:Nbt inherit/conditions/damage_type/template

minecraft:fall_after_explosion

Triggers when a player lands after being launched upward by an explosion or wind burst. Available extra conditions:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] start_position: A location predicate for the last position before the falling started.
      • location predicate see Template:Nbt inherit/conditions/location/template
    • [NBT Compound / JSON Object] distance: The distance between the start position and the player's position.
      • Distance predicate see Template:Nbt inherit/conditions/distance/template
    • [NBT Compound / JSON Object] source: Checks the entity that was the source of the explosion or wind burst that launched the player upward.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] source: Another format for "source". Specifies 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.

minecraft:fall_from_height

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] start_position: A location predicate for the last position before the falling started.
      • location predicate see Template:Nbt inherit/conditions/location/template
    • [NBT Compound / JSON Object] distance: The distance between the start position and the player's position.
      • Distance predicate see Template:Nbt inherit/conditions/distance/template

minecraft:filled_bucket

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] item: The item resulting from filling the bucket.
      • item predicate see Template:Nbt inherit/conditions/item/template

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:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] entity: The entity that was pulled, or the fishing bobber if no entity is pulled.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] entity: Another format for "entity". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.
    • [NBT Compound / JSON Object] item: The item that was caught.
      • item predicate see Template:Nbt inherit/conditions/item/template
    • [NBT Compound / JSON Object] rod: The fishing rod used.
      • item predicate see Template:Nbt inherit/conditions/item/template

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

minecraft:impossible

Never triggers. No available conditions.

Criteria with this trigger can only be granted from commands.

minecraft:inventory_changed

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT List / JSON Array] items: A list of items to be checked against the item(s) that were added to the player's inventory when the advancement was triggered. For the trigger to pass, each item predicate in this list must match at least one item that was added.
      • [NBT Compound / JSON Object]: An item stack.
      • item predicate see Template:Nbt inherit/conditions/item/template
    • [NBT Compound / JSON Object] slots:
      • [Int] empty: The amount of slots empty in the inventory.
      • [NBT Compound / JSON Object] empty: Another format.
        • [Int] max: The maximum value.
        • [Int] min: The minimum value.
      • [Int] full: The amount of slots completely filled (stacksize) in the inventory.
      • [NBT Compound / JSON Object] full: Another format.
        • [Int] max: The maximum value.
        • [Int] min: The minimum value.
      • [Int] occupied: The amount of slots occupied in the inventory.
      • [NBT Compound / JSON Object] occupied: Another format.
        • [Int] max: The maximum value.
        • [Int] min: The minimum value.

minecraft:item_durability_changed

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

  • [NBT Compound / JSON Object] conditions:
    • [Int] delta: The change in durability (negative numbers are used to indicate a decrease in durability).
    • [NBT Compound / JSON Object] delta: Another format.
      • [Int] max: The maximum value.
      • [Int] min: The minimum value.
    • [Int] durability: The remaining durability of the item.
    • [NBT Compound / JSON Object] durability: Another format.
      • [Int] max: The maximum value.
      • [Int] min: The minimum value.
    • [NBT Compound / JSON Object] item: The item before it was damaged, allows you to check the durability before the item was damaged.
      • item predicate see Template:Nbt inherit/conditions/item/template

minecraft:item_used_on_block

Triggers when the player uses their hand or an item on a block. Note that the item (or lack thereof) must be able to interact with the block, e.g. an item cannot be "used" on a campfire if there isn't a recipe that allows the item to be cooked on a campfire. See also minecraft:default_block_use for detecting non-item-specific uses.

Available extra conditions:

  • [NBT Compound / JSON Object] conditions:
    • [NBT List / JSON Array] location: Specifies a list of predicates that must pass in order for the criterion to be granted. The origin is the location of the block the item was used on, the block state belongs to that block, and the tool is the item used on the block. The this entity is the player that would get the advancement.
      • [NBT Compound / JSON Object]: A single predicate.

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:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] entity: The entity that was killed.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] entity: Another format for "entity". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.
    • [NBT Compound / JSON Object] killing_blow: The type of damage that killed an entity.
      • Damage type predicate see Template:Nbt inherit/conditions/damage_type/template

minecraft:killed_by_arrow

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] fired_from_weapon: The weapon that fired the arrow.
      • item predicate see Template:Nbt inherit/conditions/item/template
    • [Int] unique_entity_types: The exact count of types of entities killed.
    • [NBT Compound / JSON Object] unique_entity_types: Another format. The acceptable range of count of types of entities killed.
      • [Int] max: The maximum value.
      • [Int] min: The minimum value.
    • [NBT List / JSON Array] victims: A list of victims. All of the entries must be matched, and one killed entity may match only one entry.
      • [NBT Compound / JSON Object]: A killed entities.
        • entity predicate see Template:Nbt inherit/conditions/entity/template
      • [NBT List / JSON Array]: Another format for the victim. Specifies 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.
        • [NBT Compound / JSON Object]: A single predicate.

minecraft:levitation

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] distance: The distance between the position where the player started levitating and the player's current position.
      • Distance predicate see Template:Nbt inherit/conditions/distance/template
    • [Int] duration: The duration of the levitation in ticks.
    • [NBT Compound / JSON Object] duration: Another format.
      • [Int] max: The maximum value.
      • [Int] 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:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] lightning: The lightning bolt that disappeared.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] lightning: Another format for "lightning". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.
    • [NBT Compound / JSON Object] bystander: An entity not hurt by the lightning strike but in a certain area around it.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] bystander: Another format for "bystander". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:location

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

minecraft:nether_travel

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] start_position: A location predicate for the last position before the player teleported to the Nether.
      • location predicate see Template:Nbt inherit/conditions/location/template
    • [NBT Compound / JSON Object] distance: The distance between the position where the player teleported to the Nether and the player's position when they returned.
      • Distance predicate see Template:Nbt inherit/conditions/distance/template

minecraft:placed_block

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT List / JSON Array] location: Specifies a list of predicates that must pass in order for the criterion to be granted. The origin is the location of the block placed, the block state belongs to that block, and the tool is the item used to place the block. The this entity is the player that would get the advancement.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:player_generates_container_loot

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

  • [NBT Compound / JSON Object] conditions:
    • [String] 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:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] damage: The damage that was dealt.
      • Damage predicate see Template:Nbt inherit/conditions/damage/template
    • [NBT Compound / JSON Object] entity: The entity that was damaged.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] entity: Another format for "entity". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:player_interacted_with_entity

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] item: The item that was in the player's hand during interaction.
      • item predicate see Template:Nbt inherit/conditions/item/template
    • [NBT Compound / JSON Object] entity: The entity that was interacted with.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] entity: Another format for "entity". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:player_killed_entity

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] entity: The entity that was killed.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] entity: Another format for "entity". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.
    • [NBT Compound / JSON Object] killing_blow: The type of damage that killed an entity.
      • Damage type predicate see Template:Nbt inherit/conditions/damage_type/template

minecraft:player_sheared_equipment

Triggers after a player shears equipment off of a mob, such as wolf armor. Available extra conditions:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] entity: The entity whose equipment was sheared.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] entity: Another format for "entity". Specifies 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.
    • [NBT Compound / JSON Object] item: The item of equipment that was sheared off.
      • item predicate see Template:Nbt inherit/conditions/item/template

minecraft:recipe_crafted

Triggers when the player crafts a recipe in a crafting table, stonecutter or smithing table. Available extra conditions:

  • [NBT Compound / JSON Object] conditions:
    • [String] recipe_id*: The recipe that was crafted.
    • [NBT List / JSON Array] ingredients: An array of item predicates for the recipe ingredients. Each item can match only one predicate, and every predicate needs to pass for the criterion to be granted.
      • [NBT Compound / JSON Object]: A single predicate.
        • item predicate see Template:Nbt inherit/conditions/item/template

minecraft:recipe_unlocked

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

  • [NBT Compound / JSON Object] conditions:
    • [String] 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:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] start_position: A location predicate for the last position before the player mounted the entity.
      • location predicate see Template:Nbt inherit/conditions/location/template
    • [NBT Compound / JSON Object] distance: The distance between the start position and the player's position.
      • Distance predicate see Template:Nbt inherit/conditions/distance/template

minecraft:shot_crossbow

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] item: The crossbow that is used.
      • item predicate see Template:Nbt inherit/conditions/item/template

minecraft:slept_in_bed

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

minecraft:slide_down_block

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

  • [NBT Compound / JSON Object] conditions:
    • [String] block: The block that the player slid on.
    • [NBT Compound / JSON Object] state: A map of block property names to values. Errors if the block doesn't have these properties.
      • [String] key: Block property key and value pair.
      • [NBT Compound / JSON Object] key: Another format.
        • [String] max: A maximum value.
        • [String] 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 conditions.

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 still activate this trigger. Available extra conditions:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] entity: The summoned entity.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] entity: Another format for "entity". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:tame_animal

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] entity: Checks the entity that was tamed.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] entity: Another format for "entity". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:target_hit

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

  • [NBT Compound / JSON Object] conditions:
    • [Int] signal_strength: The redstone signal that the target block emits.
    • [NBT Compound / JSON Object] signal_strength: Another format.
      • [Int] max: The maximum value.
      • [Int] min: The minimum value.
    • [NBT Compound / JSON Object] projectile: The projectile hit the target block.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] projectile: Another format for "projectile". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:thrown_item_picked_up_by_entity

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] item: The thrown item that was picked up.
      • item predicate see Template:Nbt inherit/conditions/item/template
    • [NBT Compound / JSON Object] entity: The entity that picked up the item.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] entity: Another format for "entity". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:thrown_item_picked_up_by_player

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] item: The item thrown.
      • item predicate see Template:Nbt inherit/conditions/item/template
    • [NBT Compound / JSON Object] entity: The entity that threw the item.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] entity: Another format for "entity". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:tick

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

minecraft:used_ender_eye

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

  • [NBT Compound / JSON Object] conditions:
    • [Double] distance: The horizontal distance between the player and the stronghold.
    • [NBT Compound / JSON Object] distance: Another format.
      • [Double] max: A maximum value.
      • [Double] min: A minimum value.

minecraft:used_totem

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] item: The item, works only with totem items.
      • item predicate see Template:Nbt inherit/conditions/item/template

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:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] item: The item that is used.
      • item predicate see Template:Nbt inherit/conditions/item/template

minecraft:villager_trade

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

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] item: The item that was purchased. The "count" tag checks the count from one trade, not multiple.
      • item predicate see Template:Nbt inherit/conditions/item/template
    • [NBT Compound / JSON Object] villager: The villager the item was purchased from.
      • entity predicate see Template:Nbt inherit/conditions/entity/template
    • [NBT List / JSON Array] villager: Another format for "villager". Specifies 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.
      • [NBT Compound / JSON Object]: A single predicate.

minecraft:voluntary_exile

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

Removed triggers

minecraft:arbitrary_player_tick

Triggers every tick for one player only. No available conditions.

Only exists in 17w18b.

minecraft:item_delivered_to_player

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

Only exists in 22w14a.

minecraft:player_damaged

Triggers when the player receives damage. Available conditions:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] damage: Damage predicate.
      • Damage predicate see Template:Nbt inherit/conditions/damage/template

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:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] block: The block that the player harvested the honey from.
      • [String] block: A block ID.
      • [String] tag: A block tag.
    • [NBT Compound / JSON Object] item: The item that the player used to harvest the honey.
      • item predicate see Template:Nbt inherit/conditions/item/template

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

Temporary triggers

23w13a_or_b

minecraft:voted

Triggers when the player casts a vote. No extra conditions.

24w14potato

minecraft:bring_home_corruption

Triggers when the player uses corrupted potato peels on the top side of terre de pomme placed in the Overworld. No extra conditions.

minecraft:compost_staff

Triggers when the player uses a Potatiesh, Greatstaff of the Peasant on a composter. No extra conditions.

minecraft:eat_armor

Triggers when the player eats a part of an equipped poisonous potato chestplate. No extra conditions.

minecraft:get_peeled

Triggers when the player is peeled by another player while wearing a poisonous potato chestplate. No extra conditions.

minecraft:peel_block

Triggers when the player uses a potato peeler on a block that can be peeled. No extra conditions.

minecraft:peel_potato_armor

Triggers when the player uses a potato peeler on an entity wearing a poisonous potato chestplate. No extra conditions.

minecraft:peel_potato_sheep

Triggers when the player uses a potato peeler on a sheep in the Potato dimension. No extra conditions.

minecraft:potato_refined

Triggers when the player takes an item out of the output slot of a potato refinery. Available extra conditions:

  • [NBT Compound / JSON Object] conditions:
    • [NBT Compound / JSON Object] result_predicate*: The result of the refining recipe.
      • [String] type*: The type of refining recipe. Must be either standard for a recipe that outputs a different item than the input, or lubrication for a recipe that increments the lubrication factor of an item.
      • [NBT Compound / JSON Object] item_predicate*: The output item.
        • item predicate see Template:Nbt inherit/conditions/item/template
      • [Int] min_lubrication: The minimum lubrication factor the output item must have. Must exist if [String] type is lubrication and has no effect otherwise.

minecraft:rumble_plant

Triggers when the player equips a poisonous potato plant on their head. No extra conditions.

minecraft:said_potato

Triggers when the player sends a chat message containing "potato" (case-sensitive). No extra conditions.

minecraft:throw_lubricated

Triggers when the player throws a lubricated item. Available extra conditions:

  • [NBT Compound / JSON Object] conditions:
    • [Int] min_lubrication*: The minimum lubrication factor the thrown item must have. This condition does not support a min-max range.

External links

References

Navigation