|
“ |
|
„ |
| — Dinnerbone on the advancements system[1] |
The popup that appears when an advancement is completed.
The popup that appears when a goal advancement is completed.
The popup that appears when special challenge advancements are completed.
Advancements are a way to gradually guide new players into Minecraft and give them challenges to complete, similar to the more simple system of achievements in the Legacy Console Edition, Bedrock editions, and New Nintendo 3DS Edition.
Obtaining
Advancements can be completed in any game mode, and are obtained and saved per world. Advancements can also be granted (and revoked) using the /advancement command.
Although advancements guide players logically through the game, they are independent of each other; an advancement can be completed without having completed the advancements "before" it.
When an advancement is obtained, a sliding toast notification displays in the top right corner and a message will be displayed in chat. The color of the header text in the notification depends on the advancement; normal and goal advancements have yellow header text, while challenge advancements have pink header text. Completing a normal advancement will make the header text display "Advancement Made!", completing a goal advancement will result in a "Goal Reached!" header and a challenge advancement will give "Challenge Completed!".
Interface
The advancements interface. One advancement ("Isn't It Iron Pick") is selected.
The button to access the Advancements screen is found on the pause menu screen. You can also open this screen by pressing L (this can be changed in the in-game options menu).
The advancement system involves several trees composed of advancements, each tree beginning with a root advancement and ending with goal or challenge advancements. By clicking and dragging, you can view different branches of an advancement tree. Each tree is categorized into different tabs (which are, themselves, advancements). There are currently five tabs in vanilla Minecraft (although more may possibly be added[2][3]):
- Minecraft: The heart and story of the game.
- Adventure: Adventure, exploration, and combat.
- Nether: Bring summer clothes.
- The End: Or the beginning?
- Husbandry: The world is full of friends and food.
Each tab has a different background with a repeating texture.
Advancement icons display a header name and description when hovered over. The advancement descriptions are a separate color than the icons themselves, with normal and goal advancements having green descriptions and challenge advancements having purple ones. They only appear in a tree when the advancement before it is completed, although, as stated before, advancements can be completed in any order. Up to 2 advancements are displayed ahead of a completed one.
If the player has not completed any advancements, the interface will show a black background with white text reading "There doesn't seem to be anything here... :(".
The icon frames of advancements can vary in appearance based on difficulty, and whether or not it was completed. A legend is provided below:
| Icon Frame | Description | |
|---|---|---|
| Regular | Completed | |
|
|
Normal advancement. |
|
|
Goal advancement. |
|
|
Challenge advancement. |
Extra advancements and tabs can be added and customized with the use of JSON files, as detailed below.
List of advancements
Minecraft
| Icon | Advancement | In-game description | Parent | Actual requirements (if different) | Resource location | |
|---|---|---|---|---|---|---|
![]() | Minecraft | The heart and story of the game | — | Get a crafting table in your inventory. | minecraft:story/root
| |
![]() | Stone Age | Mine stone with your new pickaxe | Minecraft | Get cobblestone in your inventory. | minecraft:story/mine_stone
| |
![]() | Getting an Upgrade | Construct a better pickaxe | Stone Age | Get a stone pickaxe in your inventory. | minecraft:story/upgrade_tools
| |
![]() | Acquire Hardware | Smelt an iron ingot | Getting an Upgrade | Get an iron ingot in your inventory. | minecraft:story/smelt_iron
| |
![]() | Suit Up | Protect yourself with a piece of iron armor | Acquire Hardware | Get any type of iron armor in your inventory. | minecraft:story/obtain_armor
| |
![]() | Hot Stuff | Fill a bucket with lava | Acquire Hardware | Get a lava bucket in your inventory. | minecraft:story/lava_bucket
| |
![]() | Isn't It Iron Pick | Upgrade your pickaxe | Acquire Hardware | Get an iron pickaxe in your inventory. | minecraft:story/iron_tools
| |
![]() | Not Today, Thank You | Deflect an arrow with a shield | Suit Up | Deflect a projectile with a shield. | minecraft:story/deflect_arrow
| |
![]() | Ice Bucket Challenge | Form and mine a block of Obsidian | Hot Stuff | Get a block of obsidian in your inventory. | minecraft:story/form_obsidian
| |
![]() | Diamonds! | Acquire diamonds | Isn't It Iron Pick | Get a diamond in your inventory. | minecraft:story/mine_diamond
| |
![]() | We Need to Go Deeper | Build, light and enter a Nether Portal | Ice Bucket Challenge | Enter the Nether dimension. | minecraft:story/enter_the_nether
| |
![]() | Cover Me With Diamonds | Diamond armor saves lives | Diamonds! | Get any type of diamond armor in your inventory. | minecraft:story/shiny_gear
| |
![]() | Enchanter | Enchant an item at an Enchanting Table | Diamonds! | — | minecraft:story/enchant_item
| |
![]() | Zombie Doctor | Weaken and then cure a zombie villager | We Need to Go Deeper | Throw a splash potion of weakness at a zombie villager and give it a golden apple (by facing the zombie and pressing the use key with a golden apple in your hand), then wait for the villager to be cured. | minecraft:story/cure_zombie_villager
| |
![]() | Eye Spy | Follow an Ender Eye | We Need to Go Deeper | Enter a stronghold. | minecraft:story/follow_ender_eye
| |
![]() | The End? | Enter the End Portal | Eye Spy | Enter the End dimension. | minecraft:story/enter_the_end
| |
Nether
| Icon | Advancement | In-game description | Parent | Actual requirements (if different) | Resource location | Rewards |
|---|---|---|---|---|---|---|
![]() | Nether | Bring summer clothes | — | Enter the Nether dimension. | minecraft:nether/root
| — |
![]() | Subspace Bubble | Use the Nether to travel 7km in the Overworld | Nether | Use the Nether to travel between 2 points in the Overworld with a minimum horizontal distance of 7000 blocks between each other. | minecraft:nether/fast_travel
| 100 experience |
![]() | A Terrible Fortress | Break your way into a Nether Fortress | Nether | Enter a Nether fortress. | minecraft:nether/find_fortress
| — |
![]() | Return to Sender | Destroy a Ghast with a fireball | Nether | Kill a ghast using a ghast fireball. | minecraft:nether/return_to_sender
| 50 experience |
![]() | Into Fire | Relieve a Blaze of its rod | A Terrible Fortress | Get a blaze rod in your inventory. | minecraft:nether/obtain_blaze_rod
| — |
![]() | Spooky Scary Skeleton | Obtain a wither skeleton's skull | A Terrible Fortress | Get a wither skeleton skull in your inventory. | minecraft:nether/get_wither_skull
| — |
![]() | Uneasy Alliance | Rescue a Ghast from the Nether, bring it safely home to the Overworld... and then kill it. | Return to Sender | Kill a Ghast in the Overworld. | minecraft:nether/uneasy_alliance
| 100 experience |
![]() | Local Brewery | Brew a potion | Into Fire | Pick up an item from a brewing stand potion slot. | minecraft:nether/brew_potion
| — |
![]() | Withering Heights | Summon the Wither | Spooky Scary Skeleton | Be within a 100.9×100.9×103.5 cuboid centered on the Wither when it is spawned. | minecraft:nether/summon_wither
| — |
![]() | A Furious Cocktail | Have every potion effect applied at the same time | Local Brewery | Have all of these 13 potion effects applied to you at the same time. | minecraft:nether/all_potions
| 100 experience |
![]() | Bring Home the Beacon | Construct and place a Beacon | Withering Heights | Be within a 20×20×14 cuboid centered on a beacon block when it realizes it has become powered. | minecraft:nether/create_beacon
| — |
![]() | How Did We Get Here? | Have every effect applied at the same time | A Furious Cocktail | Have all of these 23 effects applied to you at the same time. In 1.14,[upcoming] additionally have these 2 effects applied at the same time. | minecraft:nether/all_effects
| 1,000 experience |
![]() | Beaconator | Bring a beacon to full power | Bring Home the Beacon | Be within a 20×20×14 cuboid centered on a beacon block when it realizes it is being powered by a size 4 pyramid. | minecraft:nether/create_full_beacon
| — |
The End
| File:Grid End Stone.png The End | ||||||
|---|---|---|---|---|---|---|
| Icon | Advancement | In-game description | Parent | Actual requirements (if different) | Resource location | Rewards |
![]() | The End | Or the beginning? | — | Enter the End dimension. | minecraft:end/root
| — |
![]() | Free the End | Good luck | The End | Kill the ender dragon. | minecraft:end/kill_dragon
| — |
![]() | The Next Generation | Hold the Dragon Egg | Free the End | Get a dragon egg in your inventory. | minecraft:end/dragon_egg
| — |
![]() | Remote Getaway | Escape the island | Free the End | Throw an ender pearl through or walk into an End gateway. | minecraft:end/enter_end_gateway
| — |
![]() | The End... Again... | Respawn the ender dragon. | Free the End | Summon an ender dragon using ender crystals. | minecraft:end/respawn_dragon
| — |
![]() | You Need a Mint | Collect dragon's breath in a glass bottle. | Free the End | Get a bottle of dragon's breath in your inventory. | minecraft:end/dragon_breath
| — |
![]() | The City at the End of the Game | Go on in, what could happen? | Remote Getaway | Enter an End city. | minecraft:end/find_end_city
| — |
![]() | Sky's the Limit | Find an Elytra | The City at the End of the Game | Get a pair of elytra in your inventory. | minecraft:end/elytra
| — |
![]() | Great View From Up Here | Levitate up 50 blocks from the attacks of a Shulker | The City at the End of the Game | Have the Levitation effect applied, and move a vertical distance of 50 blocks. | minecraft:end/levitate
| 50 experience |
Adventure
| Icon | Advancement | In-game description | Parent | Actual requirements (if different) | Resource location | Rewards |
|---|---|---|---|---|---|---|
![]() | Adventure | Adventure, exploration, and combat | — | Kill any entity, or be killed by any entity. | minecraft:adventure/root
| — |
![]() | Monster Hunter | Kill any hostile monster | Adventure | Kill one of these 24 mobs. In 1.14,[upcoming] you can also earn this by killing one of these 2 mobs. Other mobs are ignored for this advancement. | minecraft:adventure/kill_a_mob
| — |
![]() | What a Deal! | Successfully trade with a Villager | Adventure | Take an item from a villager's trading output slot, and put it in your inventory. | minecraft:adventure/trade
| — |
![]() | Sweet dreams | Change your respawn point | Adventure | Lie down in a bed. The advancement will be granted as soon as the player is in the bed, even if the player does not actually successfully sleep. | minecraft:adventure/sleep_in_bed
| — |
![]() | A Throwaway Joke | Throw a trident at something. Note: Throwing away your only weapon is not a good idea. | Monster Hunter | — | minecraft:adventure/throw_trident
| — |
![]() | Take Aim | Shoot something with a bow and arrow | Monster Hunter | — | minecraft:adventure/shoot_arrow
| — |
![]() | Monsters Hunted | Kill one of every hostile monster | Monster Hunter | Kill each of these 24 mobs. In 1.14,[upcoming] also kill each of these 2 mobs. Other mobs may be killed, but are ignored for the advancement. | minecraft:adventure/kill_all_mobs
| 100 experience |
![]() | Postmortal | Use a Totem of Undying to cheat death | Monster Hunter | — | minecraft:adventure/totem_of_undying
| — |
![]() | Hired Help | Summon an Iron Golem to help defend a village | What a Deal! | Summon an iron golem. | minecraft:adventure/summon_iron_golem
| — |
![]() | Adventuring Time | Discover every biome | Sweet dreams | Visit all of these 40 biomes. In 1.14,[upcoming] additionally visit these 2 biomes. Other biomes may also be visited, but are ignored for the advancement. | minecraft:adventure/adventuring_time
| 500 experience |
![]() | Very Very Frightening | Strike a Villager with lightning | A Throwaway Joke | Hit a villager with lightning created by a trident with the Channeling enchantment. | minecraft:adventure/very_very_frightening
| — |
![]() | Sniper duel | Kill a skeleton from more than 50 meters away | Take Aim | Use a projectile to kill a skeleton from 50 or more blocks away, horizontally. | minecraft:adventure/sniper_duel
| 50 experience |
![]() | Ol' Betsy [upcoming: Lua error in Module:Version_link at line 112: attempt to concatenate local 'text' (a nil value).] | Shoot a Crossbow | Adventure | Shoot an arrow using a crossbow. | minecraft:adventure/ol_besty
| — |
![]() | Who's the Pillager Now? [upcoming: Lua error in Module:Version_link at line 112: attempt to concatenate local 'text' (a nil value).] | Give a Pillager a taste of their own medicine | Ol' Betsy | Player kills a Pillager with an arrow. | minecraft:adventure/whos_the_pillager_now
| — |
![]() | Two Birds, One Arrow [upcoming: Lua error in Module:Version_link at line 112: attempt to concatenate local 'text' (a nil value).] | Kill two Phantoms with a piercing arrow | Ol' Betsy | Using a crossbow enchanted with Piercing, shoot two Phantoms with the same arrow. | minecraft:adventure/two_birds_one_arrow
| 65 experience |
![]() | Arbalistic [upcoming: Lua error in Module:Version_link at line 112: attempt to concatenate local 'text' (a nil value).] | Kill five unique mobs with one crossbow arrow | Ol' Betsy | Using a crossbow enchanted with Piercing IV, kill five unique mobs (five mobs which are all different types from each other) with the same arrow. | minecraft:adventure/arbalistic
| 85 experience |
Husbandry
| Icon | Advancement | In-game description | Parent | Actual requirements (if different) | Resource location | Rewards |
|---|---|---|---|---|---|---|
![]() | Husbandry | The world is full of friends and food | — | Eat anything that can be eaten. | minecraft:husbandry/root
| — |
![]() | The Parrots and the Bats | Breed two animals together | Husbandry | Breed a pair of one of these 11 mobs. Other breedable mobs, if any, are ignored for the advancement.[until Lua error in Module:Version_link at line 112: attempt to concatenate local 'text' (a nil value).]. Breed a pair of one of these 12 mobs. Other breedable mobs, if any, are ignored for the advancement.[upcoming: Lua error in Module:Version_link at line 112: attempt to concatenate local 'text' (a nil value).] | minecraft:husbandry/breed_an_animal
| — |
![]() | Best Friends Forever | Tame an animal | Husbandry | Tame one of the 5 types of mob that are tamable.[until Lua error in Module:Version_link at line 112: attempt to concatenate local 'text' (a nil value).] Tame one of the 5 types of mob that are tamable.[upcoming: Lua error in Module:Version_link at line 112: attempt to concatenate local 'text' (a nil value).] | minecraft:husbandry/tame_an_animal
| — |
![]() | A Seedy Place | Plant a seed and watch it grow | Husbandry | Plant one of these 5 seeds. Crops and plants without seeds are ignored for the advancement. | minecraft:husbandry/plant_seed
| — |
![]() | Fishy Business | Catch a fish | Husbandry | Use a fishing rod to catch a fish. | minecraft:husbandry/fishy_business
| — |
![]() | Two by Two | Breed all the animals! | The Parrots and the Bats | Breed pairs of each of these 11 mobs. Other tamable mobs, if any, are ignored for the advancement.[until Lua error in Module:Version_link at line 112: attempt to concatenate local 'text' (a nil value).] Breed pairs of each of these 13 mobs. Other tamable mobs, if any, are ignored for the advancement.[upcoming: Lua error in Module:Version_link at line 112: attempt to concatenate local 'text' (a nil value).] | minecraft:husbandry/bred_all_animals
| 100 experience |
![]() | A Complete Catalogue | Tame all cat variants! | Best Friends Forever | Tame all cat variants! [upcoming: Lua error in Module:Version_link at line 112: attempt to concatenate local 'text' (a nil value).] | minecraft:husbandry/complete_catalogue
| 50 experience |
![]() | A Balanced Diet | Eat everything that is edible, even if it's not good for you | A Seedy Place | Eat each of these 36 foods. Other foods, like cake, are ignored for the advancement. | minecraft:husbandry/balanced_diet
| 100 experience |
![]() | Serious Dedication | Completely use up a diamond hoe, and then reevaluate your life choices | A Seedy Place | Unobtainable due to a bug [4] | minecraft:husbandry/break_diamond_hoe
| 100 experience |
![]() | Tactical Fishing | Catch a fish... without a fishing rod! | Fishy Business | Use a water bucket on a fish mob to create a bucket of fish. | minecraft:husbandry/tactical_fishing
| — |
JSON Format
Custom advancements in data packs of a Minecraft world store the advancement data for that world as separate JSON files:
All advancement JSON files are structured according to the following format:
- The root tag.
- display: The optional display data.
- icon: The data for the icon.
- item: The item id.
- nbt: The nbt data of the item.
- title: The title for this advancement.
- title: A JSON text component (containing text and formatting like used in /tellraw and various other commands. Also translate tag can be used here).
- frame: The optional type of frame for the icon.
challengefor a tile with a more fancy spiked border as it is used for the kill all mobs advancement,goalfor a tile with a rounded border as it is used for the full beacon advancement,taskfor a normal tile (default.) - background: The optional directory for the background to use in this advancement tab (only for the root advancement).
- description: The description of the advancement.
- description: A JSON text component (containing text and formatting like used in
/tellrawand various other commands. Also translate tag can be used here). - show_toast: Can be
trueorfalse. Whether or not to show the toast pop up after completing this advancement. Defaults to true. - announce_to_chat: Can be
trueorfalse. Whether or not to announce in the chat when this advancement has been completed. Defaults to true. - hidden: Can be
trueorfalse. Whether or not 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 will still affect all their children. Defaults to false.
- icon: The data for the icon.
- parent: The optional parent advancement directory of this advancement (does not apply for the root advancement).
- criteria: The required criteria that have to be met.
- <criterionName>: A name given to the criterion (can be any string, must be unique).
- trigger: The trigger for this advancement; specifies what the game should check for the advancement.
- conditions: All the conditions that need to be met when the trigger gets activated.
- <criterionName>: A name given to the criterion (can be any string, must be unique).
- requirements: An optional list of requirements (all the <criteriaNames>). If all criteria are required, this may be omitted. With multiple criteria: requirements contains a list of lists with criteria (all criteria need to be mentioned). If all of the lists each have any criteria met, it will complete the advancement. (basically AND grouping of OR groups)
- rewards: An optional collection of the rewards provided when this advancement is obtained.
- recipes: A list of crafting recipes (strings).
- loot: A list of loot tables (strings).
- experience: An amount of experience.
- function: A function to run. Functions are text files with the file extension
.mcfunctionin the datapacks.
- display: The optional display data.
List of triggers
minecraft:bred_animals
Triggers after the player breeds 2 animals. Available conditions:
- conditions:
- child: The child that results from the breeding.
- All possible conditions for entities
- parent: The parent.
- All possible conditions for entities
- partner: The partner (the entity the parent was bred with, useful for checking horses + donkey = mule breeding)
- All possible conditions for entities
- child: The child that results from the breeding.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:bred_animals",
"conditions": {
"child": {
"type": "mule"
},
"parent": {
"location": {
"biome": "minecraft:beaches"
}
},
"partner": {
"effects": {
"minecraft:speed": {
"amplifier": {
"min": 2
}
}
}
}
}
}
}
}
minecraft:brewed_potion
Triggers after the player takes any item out of a brewing stand. Available conditions:
- conditions:
- potion: A brewed potion ID.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:brewed_potion",
"conditions": {
"potion": "minecraft:strong_swiftness"
}
}
}
}
minecraft:changed_dimension
Triggers after the player travels between two dimensions. Available conditions:
- conditions:
- from: The dimension the entity traveled from. Accepts these 3 values.
- to: The dimension the entity traveled to. Same accepted values as above.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:changed_dimension",
"conditions": {
"from": "minecraft:the_end",
"to": "minecraft:overworld"
}
}
}
}
minecraft:channeled_lightning
Triggers after the player successfully uses the Channeling enchantment on an entity. Available conditions:
- conditions:
- victims: The victims hit by the lightning summoned by the Channeling enchantment. All entities in this list must be hit.
- :
- All possible conditions for entities
- :
- victims: The victims hit by the lightning summoned by the Channeling enchantment. All entities in this list must be hit.
minecraft:construct_beacon
Triggers after the player changes the structure of a beacon. (When the beacon updates itself). Available conditions:
- conditions:
- level: The tier of the updated beacon structure.
- level:
- max: The maximum value.
- min: The minimum value.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:construct_beacon",
"conditions": {
"level": {
"min": 3
}
}
}
}
}
minecraft:consume_item
Triggers when the player consumes an item. Available conditions:
- conditions:
- item: The item that was consumed
- All possible conditions for items
- item: The item that was consumed
An example
{
"criteria": {
"example": {
"trigger": "minecraft:consume_item",
"conditions": {
"item": {
"item": "minecraft:enchanted_golden_apple",
"nbt": "{display:{Name:\"Example\"}}"
}
}
}
}
}
minecraft:cured_zombie_villager
Triggers when the player cures a zombie villager. Available 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
- 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
- villager: The villager that is the result of the conversion. The 'type' tag is redundant since it will always be "villager".
An example
{
"criteria": {
"example": {
"trigger": "minecraft:cured_zombie_villager",
"conditions": {
"villager": {
"location": {
"biome": "minecraft:plains"
}
},
"zombie": {
"distance": {
"horizontal": {
"max": 10
}
}
}
}
}
}
}
minecraft:effects_changed
Triggers after the player gets a status effect applied or taken from them. Available conditions:
- conditions:
- effects: A list of status effects the player has.
- <minecraft:effect_name>: A status effect with the key name being the status effect name.
- amplifier: The effect amplifier.
- amplifier:
- max: The maximum value.
- min: The minimum value.
- duration: The effect duration in ticks.
- duration:
- max: The maximum value.
- min: The minimum value.
- <minecraft:effect_name>: A status effect with the key name being the status effect name.
- effects: A list of status effects the player has.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:effects_changed",
"conditions": {
"effects": {
"minecraft:weakness": {},
"minecraft:slowness": {
"amplifier": 2,
"duration": {
"min": 100,
"max": 500
}
}
}
}
}
}
}
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 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:
- max: The maximum value.
- min: The minimum value.
- item: The item after it has been enchanted.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:enchanted_item",
"conditions": {
"item": {
"item": "minecraft:wooden_sword",
"enchantments": [
{
"enchantment": "minecraft:sharpness",
"levels": {
"min": 2
}
}
]
},
"levels": {
"min": 3
}
}
}
}
}
minecraft:enter_block
Triggers when the player stands in a block. Checks every tick and will try to trigger for each successful match (up to 8 times, the maximum amount of blocks a player can stand in), which only works if the advancement is revoked from within the advancement using a function reward. Available conditions:
- conditions:
- block: The block that the player is standing in. Accepts block IDs.
- state: The block states of the block.
- <state_name>: A single block state, with the key name being the state name and the value being the required value of that state.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:enter_block",
"conditions": {
"block": "minecraft:rose_bush",
"state": {
"half": "lower"
}
}
}
}
}
minecraft:entity_hurt_player
Triggers after a player gets hurt. Available conditions:
- conditions:
- damage: Checks the damage done to the player.
- Damage tags
- damage: Checks the damage done to the player.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:entity_hurt_player",
"conditions": {
"damage": {
"source_entity": {
"type": "skeleton"
},
"direct_entity": {
"type": "arrow"
},
"taken": {
"min": 4.0
}
}
}
}
}
}
minecraft:entity_killed_player
Triggers after an entity kills a player. Available 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
- killing_blow: Checks the type of damage that killed the player.
- Tags common to all damage types
- entity: Checks the entity that was the source of the damage that killed the player (for example: The skeleton that shot the arrow).
An example
{
"criteria": {
"example": {
"trigger": "minecraft:entity_killed_player",
"conditions": {
"entity": {
"type": "skeleton"
},
"killing_blow": {
"is_projectile": true
}
}
}
}
}
minecraft:filled_bucket
Triggers after the player fills a bucket. Available conditions:
- conditions:
- item: The item resulting from filling the bucket.
- All possible conditions for items
- item: The item resulting from filling the bucket.
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 conditions:
- conditions:
- entity: The entity that was pulled.
- All possible conditions for entities
- item: The item that was caught.
- All possible conditions for items
- rod: The fishing rod used.
- All possible conditions for items
- entity: The entity that was pulled.
minecraft:impossible
Triggers only using commands.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:impossible"
}
}
}
minecraft:inventory_changed
Triggers after any changes happen to the player's inventory. Available 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.
- :
- All possible conditions for items
- :
- slots:
- empty: The amount of slots empty in the inventory.
- empty:
- max: The maximum value.
- min: The minimum value.
- full: The amount of slots completely filled (stacksize) in the inventory.
- full:
- max: The maximum value.
- min: The minimum value.
- occupied: The amount of slots occupied in the inventory.
- occupied:
- max: The maximum value.
- min: The minimum value.
- 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 example
{
"criteria": {
"example": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"item": "minecraft:polished_granite",
"count": {
"min": 5,
"max": 10
}
},
{
"item": "minecraft:lime_wool"
},
{
"item": "minecraft:wooden_sword",
"durability": {
"min": 50
},
"nbt": "{display:{Name:\"Example\"}}"
}
],
"slots": {
"occupied": 3
}
}
}
}
}
minecraft:item_durability_changed
Triggers after any item in the inventory has been damaged in any form. Available conditions:
- conditions:
- delta: The difference in durability.
- delta:
- max: The maximum value.
- min: The minimum value.
- durability: The remaining durability of the item.
- durability:
- 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
An example
{
"criteria": {
"example": {
"trigger": "minecraft:item_durability_changed",
"conditions": {
"delta": -2,
"item": {
"item": "minecraft:wooden_axe",
"durability": {
"max": 1
}
}
}
}
}
}
minecraft:levitation
Triggers when the player has the levitation status effect. Available conditions:
- conditions:
- distance:
- absolute:
- max: The maximum value.
- min: The minimum value.
- horizontal:
- max: The maximum value.
- min: The minimum value.
- x:
- max: The maximum value.
- min: The minimum value.
- y:
- max: The maximum value.
- min: The minimum value.
- z:
- max: The maximum value.
- min: The minimum value.
- absolute:
- duration: The duration of the levitation in ticks.
- duration:
- max: The maximum value.
- min: The minimum value.
- distance:
An example
{
"criteria": {
"example": {
"trigger": "minecraft:levitation",
"conditions": {
"distance": {
"horizontal": {
"min": 5
},
"y": {
"min": 2
}
},
"duration": {
"min": 100
}
}
}
}
}
minecraft:location
Triggers every 20 ticks (1 second) and checks where the player is. Available conditions:
- conditions:
- Tags common to all locations
An example
{
"criteria": {
"example": {
"trigger": "minecraft:location",
"conditions": {
"biome": "jungle",
"feature": "Jungle_Pyramid",
"dimension": "minecraft:overworld",
"position": {
"x": 0,
"y": 60,
"z": {
"min": -10,
"max": 10
}
}
}
}
}
}
minecraft:nether_travel
Triggers when the player travels to the Nether and then returns to the Overworld. Available conditions:
- conditions:
- distance: The overworld distance between where the player entered the Nether and where the player exited the Nether.
- absolute:
- max: The maximum value.
- min: The minimum value.
- horizontal:
- max: The maximum value.
- min: The minimum value.
- x:
- max: The maximum value.
- min: The minimum value.
- y:
- max: The maximum value.
- min: The minimum value.
- z:
- max: The maximum value.
- min: The minimum value.
- absolute:
- distance: The overworld distance between where the player entered the Nether and where the player exited the Nether.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:nether_travel",
"conditions": {
"distance": {
"horizontal": {
"min": 1000
},
"absolute": {
"min": 1100
}
}
}
}
}
}
minecraft:placed_block
Triggers when the player placed a block. Available 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: The block states of the block.
- <state_name>: A single block state, with the key name being the state name and the value being the required value of that state.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:placed_block",
"conditions": {
"block": "minecraft:wall_torch",
"state": {
"facing": "west"
},
"location": {
"position": {
"x": 10,
"z": 14
},
"biome": "minecraft:plains"
},
"item": {
"item": "minecraft:torch"
}
}
}
}
}
minecraft:player_hurt_entity
Triggers after the player hurts a mob or player. Available conditions:
- conditions:
- damage: The damage that was dealt
- Damage tags
- entity: The entity that was damaged.
- All possible conditions for entities
- damage: The damage that was dealt
An example
{
"criteria": {
"example": {
"trigger": "minecraft:player_hurt_entity",
"conditions": {
"damage": {
"blocked": true,
"type": {
"direct_entity": {
"type": "arrow"
}
}
},
"entity": {
"type": "player",
"nbt": "{Tags:[\"example\"]}"
}
}
}
}
}
minecraft:player_killed_entity
Triggers after a player is the source of a mob or player being killed. Available conditions:
- conditions:
- entity: The entity that was killed.
- All possible conditions for entities
- killing_blow: The type of damage that killed an entity.
- Tags common to all damage types
- entity: The entity that was killed.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:player_killed_entity",
"conditions": {
"entity": {
"type": "creeper",
"nbt": "{powered:1b}",
"location": {
"biome": "minecraft:the_void"
},
"effects": {
"minecraft:slowness": {},
"minecraft:weakness": {
"amplifier": {
"min": 2
}
}
}
},
"killing_blow": {
"source_entity": {
"nbt": "{SelectedItem:{id:\"minecraft:wooden_sword\"}}"
}
}
}
}
}
}
minecraft:recipe_unlocked
Triggers after the player unlocks a recipe (using a knowledge book for example). Available conditions:
- conditions:
- recipe: The recipe that was unlocked.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "minecraft:wooden_sword"
}
}
}
}
minecraft:slept_in_bed
Triggers when the player enters a bed. Available conditions:
- conditions:
- location:
- Tags common to all locations
- location:
An example
{
"criteria": {
"example": {
"trigger": "minecraft:slept_in_bed",
"conditions": {
"location": {
"biome": "minecraft:desert",
"feature": "Village",
"position": {
"y": {
"min": 50,
"max": 100
}
}
}
}
}
}
}
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 (ender crystals) and the wither (wither skulls and soul sand). Using dispensers to place the wither skulls or pumpkins will still activate this trigger. Spawn eggs, commands and mob spawners will not work however. Available conditions:
- conditions:
- entity:
- All possible conditions for entities
- entity:
An example
{
"criteria": {
"example": {
"trigger": "minecraft:summoned_entity",
"conditions": {
"entity": {
"type": "minecraft:snow_golem"
}
}
}
}
}
minecraft:tame_animal
Triggers after the player tames an animal. Available conditions:
- conditions:
- entity: Checks the entity that was tamed.
- All possible conditions for entities
- entity: Checks the entity that was tamed.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:tame_animal",
"conditions": {
"entity": {
"type": "minecraft:parrot",
"nbt": "{Variant:2}"
}
}
}
}
}
minecraft:tick
Triggers every tick (20 times a second).
An example
{
"criteria": {
"example": {
"trigger": "minecraft:tick"
}
}
}
minecraft:used_ender_eye
Triggers when the player uses an eye of ender (in a world where strongholds generate). Available conditions:
- conditions:
- distance: The horizontal distance between the player and the stronghold.
- distance:
- max: A maximum value.
- min: A minimum value.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:used_ender_eye",
"conditions": {
"distance": {
"min": 100,
"max": 200
}
}
}
}
}
minecraft:used_totem
Triggers when the players uses a totem. Available conditions:
- conditions:
- item: The item, only works with totem items.
- All possible conditions for items
- item: The item, only works with totem items.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:used_totem",
"conditions": {
"item": {
"item": "minecraft:totem_of_undying"
}
}
}
}
}
minecraft:villager_trade
Triggers after the player trades with a villager. Available 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. The 'type' tag is redundant since it will always be "villager".
- All possible conditions for entities
- item: The item that was purchased. The "count" tag checks the count from one trade, not multiple.
An example
{
"criteria": {
"example": {
"trigger": "minecraft:villager_trade",
"conditions": {
"item": {
"item": "minecraft:emerald",
"count": {
"min": 1
}
},
"villager": {
"nbt": "{Career:1}"
}
}
}
}
}
History
| Java Edition | |||||
|---|---|---|---|---|---|
| 1.12 | February 16, 2017 | Dinnerbone tweets that he had spent an entire day designing "a new thing" with Darngeek. | |||
| February 20, 2017 | The design on "this thing" is now done and can begin to be implemented; he later hints at the feature's name.[5] | ||||
| February 22, 2017 | He states that he is "advancing" on the feature; "So. Many. Json. Files." he adds. | ||||
Later that day he states that the project is growing bigger, and that he may need a command "even more complicated than /scoreboard" | |||||
| March 6, 2017 | The backend of the mysterious feature is finished, but the UI needs work, he tweets. | ||||
| "I made a tabthulhu today," he later adds,[6] indicating this feature may use a large number of tabs. | |||||
| March 13, 2017 | He again references the name of the feature in a tweet, stating that he is almost done with "this new feature advancement". | ||||
| March 14, 2017 | He tweets that the UI is now working, and that the project took many days and a few research papers to accomplish. | ||||
| March 22, 2017 | The feature now "awards players with things", he states while making another reference to the feature name. | ||||
| March 23, 2017 | Dinnerbone states that the feature requires around 500 JSON files. | ||||
| He later tweets a teaser of what the feature holds,[7] though it is hidden behind an encrypted .zip file disguised as a .png image, which he clarifies in later tweets.[8][9][10] This .zip file contains custom recipe JSON files. | |||||
| He posts another encrypted .zip file soon afterwards, containing a few more recipes.[11] | |||||
| March 24, 2017 | "A deafening metallic condor keeps distracting me", Dinnerbone states. Users quickly pinpointed this bizarre message to this Gfycat URL officially showcasing advancements for the first time. | ||||
| He reveals that the UI can have several tabs with advancement trees that are themselves advancements.[2] He clarifies that that's what he meant by "tabthulhu."[12] | |||||
| All of the UI is data-driven, including positioning and layout, with no hardcoded data or positions.[13] | |||||
| 17w13a | Advancements added, replacing Achievements. | ||||
| 17w14a | Added new advancements, including a new "adventure" tab. | ||||
| Added new notifications for when players advance, which have a sliding effect, and come in two colors: yellow for normal advancements, and pink for special challenges. | |||||
| 17w15a | Added advancement descriptions and changed several titles. | ||||
| Added the "Adventuring Time" advancement. | |||||
| 17w16b | Added trigger minecraft:item_durability_changed. | ||||
| 17w17a | Added new advancements and two new tabs: "The End" and "Nether" | ||||
Added trigger levitation. | |||||
Added feature condition to the location trigger. | |||||
| Advancements can now execute commands when achieved. | |||||
| Advancement icons will now allow data values. | |||||
Added five modifiers to the /advancement grant and /advancement revoke commands: "everything", "from", "until", "through", and "only". | |||||
| 17w17b | The default advancements will now all receive their titles and descriptions from the localization files. | ||||
| Added a new number display to track progress while completing certain advancements. | |||||
Added the changed_dimension trigger, which takes two optional conditions: to and from, both being strings that accept "overworld", "the_nether", or "the_end". | |||||
The "location" shared object has a new dimension string (same values as above). | |||||
| 17w18a | Re-introduced announcements to chat when someone earns an advancement. | ||||
| Added new Adventure advancements: "Best Friends Forever", "The Parrots and the Bats", and "Two by Two". | |||||
Added new minecraft:tick and minecraft:tame_animal triggers. | |||||
Added new show_toast and announce_to_chat display options. | |||||
Added /gamerule announceAdvancements, which toggles announcing of advancements, replacing the old server.properties entry | |||||
"entity" objects and the minecraft:levitation trigger will now use a shared "distance" object. They check if the player is within or outside of the specified range on the x, y, or z axis. absolute and horizontal ranges check if the player is within range on all axes, though horizontal will exclude the Y axis. | |||||
| The "Great View From Up Here" advancement will now requires 50 vertical blocks, instead of levitating for 30 seconds. | |||||
| Changed the "Sniper Duel" advancement to horizontal distance. | |||||
| Advancement loading is now strict JSON. | |||||
| 17w18b | Added a new "Husbandry" tab and several new advancements: "A Seedy Place", "Serious Dedication", "A Balanced Diet", and "Hired Help". | ||||
| The advancements added in the previous snapshot were moved to the new Husbandry tab. | |||||
Added new advancement triggers: consume_item, placed_block, and arbitrary_player_tick. | |||||
| The "Monster Hunter" and "Monsters Hunted" advancements now use 22 mobs instead of 23, removing the illusioner from the list. | |||||
| pre1 | Added new advancements: "A Furious Cocktail", "Postmortal", "Subspace Bubble", and "Uneasy Alliance". | ||||
Added hidden field to advancement display info, which defaults to false. | |||||
Added new effects_changed, used_totem, and nether_travel advancements triggers. | |||||
Removed commands from advancement rewards, replaced with function. | |||||
| Advancement trees are now centered in the UI. | |||||
Items and entities in advancements will now have an extra NBT field. | |||||
Entities in advancements now have an extra effects and location field. | |||||
Removed arbitrary_player_tick advancement trigger. | |||||
| pre2 | Added new hidden advancement: "How Did We Get Here?", which rewards 100 experience. | ||||
| pre3 | Advancement "How Did We Get Here?" will now include the Resistance status effect, and will now reward 1000 experience. | ||||
| Advancement "Balanced Diet" will now include all fish types (raw and cooked if possible) and an enchanted golden apple. | |||||
| Advancements will now remember the tab the player last selected. | |||||
| pre5 | All recipe unlock advancements will now have a parent of minecraft:recipes/root.
| ||||
| Several recipe unlock advancements were renamed. | |||||
| pre7 | Added experience rewards to all "challenge" advancements. | ||||
| release | Added sounds to the toast notifications. | ||||
| 1.13 | 17w43a | Custom Advancements have been moved into data packs. | |||
| 17w45a | Added an advancement selector argument to test for obtained advancements. | ||||
| 18w14a | Added new advancements: "Fishy Business", "Tactical Fishing", "A Throwaway Joke" and "Very, Very Frightening". | ||||
| 18w14b | Advancements "A Furious Cocktail" and "How Did We Get Here?" will now include the Slow Falling status effect. | ||||
| 18w19a | Advancement "How Did We Get Here?" will now include the Conduit Power status effect. | ||||
| 18w22a | Advancement "Sniper Duel" description changed to not mention it has to be with an arrow (as it can be achieved with a Trident too). | ||||
| pre6 | Added a nbt field to the advancement icon section. | ||||
| pre7 | Normal and goal advancements will now have green descriptions, and challenge advancements have purple descriptions. | ||||
| Upcoming Java Edition | |||||
| 1.14 | 18w43a | Added new advancements: "Ol' Betsy", "Who's the Pillager Now?", "Two Birds, One Arrow" and "Arbalistic". | |||
| 18w44a | Added new advancement: "A Complete Catalogue". | ||||
| The requirements for "The Parrots and the Bats" and "Best Friends Forever" have now been changed, as the advancements will now require cats, instead of ocelots. | |||||
| The requirements for "Two by Two" have now been changed, as the advancement will now require pandas. | |||||
Issues
Issues relating to "Advancement" are maintained on the bug tracker. Report issues there.
Trivia
- Fourteen of the old Java Edition achievements were re-implemented as advancements: Benchmarking (called Minecraft), Getting an Upgrade, Acquire Hardware, We Need to Go Deeper, The End?, Return to Sender, Into Fire, Local Brewery, The Beginning? (called Withering Heights), Beaconator, DIAMONDS! (called Diamonds!), Adventuring Time, Monster Hunter and Sniper Duel.
- Six achievements from other editions were re-implemented as advancements: Body Guard (called Hired Help), Cheating Death (called Postmortal), Zombie Doctor, You Need a Mint, The End... Again... and Great View From Up Here.
- The Adventuring Time advancement is a reference to the Cartoon Network cartoon 'Adventure Time'.
- The Withering Heights advancement is possibly a reference to the book 'Wuthering Heights' by Ellis Bell.
- The Very Very Frighting advancement is a reference to Queen's 'Bohemian Rhapsody'
- The Ol' Betsy, is possibly a reference to Disney's Robin Hood.[upcoming: Lua error in Module:Version_link at line 112: attempt to concatenate local 'text' (a nil value).][14]
Gallery
See also
References
- ↑ https://www.reddit.com/r/Minecraft/comments/64pk6r/dinnerbone_working_on_giving_advancements/dg4uiou?context=1
- ↑ a b "The tabs are alternate trees that are themselves advancements too. We support a lot, but we'll use 4/5 in vanilla. http://media.dinnerbone.com/uploads/2017-03/screenshots/24_09-23-41_rYLfqg0Q52.png" – @Dinnerbone (Nathan Adams) on X, March 24, 2017
- ↑ "4 or 5 tabs. Probably: "mine & craft", "nether", "end", "combat", "engineering" or some variant of." – @Dinnerbone (Nathan Adams) on X, March 27, 2017
- ↑ [[1]]
- ↑ "Getting this implemented in a nice way would be a real advancement for the game." – @Dinnerbone (Nathan Adams) on X, February 20, 2017
- ↑ "I made a tabthulhu at work today. This is an interesting project!" – @Dinnerbone (Nathan Adams) on X, March 6, 2017
- ↑ "This is a super big spoiler of what I'm working on. Totally unfinished and may change a lot, but gives you an idea. http://media.dinnerbone.com/uploads/2017-03/screenshots/23_15-00-52_ttcfj9tDnV.png" – @Dinnerbone (Nathan Adams) on X, March 23, 2017
- ↑ "(No I'm not adding emoji.)" – @Dinnerbone (Nathan Adams) on X, March 23, 2017
- ↑ "(P.s. there was more to that picture than meets the eye. May need a bit of trickery.)" – @Dinnerbone (Nathan Adams) on X, March 23, 2017
- ↑ "Did the filesize seem a bit big?" – @Dinnerbone (Nathan Adams) on X, March 23, 2017
- ↑ "Okay so I think my webserver proxy messed that up. Technology is difficult. Here's a more fun image, in a zip: http:// media.dinnerbone.com/uploads/2017-0 3/screenshots/23_15-00-52_ttcfj9tDnV.zip" – @Dinnerbone (Nathan Adams) on X, March 23, 2017
- ↑ "(Thus "tabthulu" tweets from a few weeks back. :D)" – @Dinnerbone (Nathan Adams) on X, March 24, 2017
- ↑ "Also worth noting: all of that UI is data driven. Positioning and layout included. No hardcoded data in UI, no hardcoded positions in data." – @Dinnerbone (Nathan Adams) on X, March 24, 2017
- ↑ https://youtu.be/Gixvg1JZmso
| Components |
| ||
|---|---|---|---|
| Data packs | |||
| Tutorials | |||







