Advancement



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 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 Complete!".

Interface


The button to access the Advancements screen is found on the pause menu screen. You can also open this screen by pressing (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 be added ):


 * 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 golden 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:

Extra advancements and tabs can be added and customized with the use of JSON files, as detailed below.

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.
 * : The optional display data.
 * : The data for the icon.
 * : The item id.
 * : The nbt data of the item.
 * : The title for this advancement.
 * : A JSON text component (containing text and formatting like used in /tellraw and various other commands. Also translate tag can be used here).
 * : The optional type of frame for the icon.  for a tile with a more fancy spiked border as it is used for the kill all mobs advancement,   for a tile with a rounded border as it is used for the full beacon advancement,   for a normal tile (default.)
 * : The optional directory for the background to use in this advancement tab (only used for the root advancement).
 * : The description of the advancement.
 * : A JSON text component (containing text and formatting like used in and various other commands. Also translate tag can be used here).
 * : Can be  or  . Whether or not to show the toast pop up after completing this advancement. Defaults to true.
 * : Can be  or  . Whether or not to announce in the chat when this advancement has been completed. Defaults to true.
 * : Can be  or  . 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.
 * : The optional parent advancement directory of this advancement. If this field is absent, this advancement is a root advancement. Circular reference will cause a loading failure.
 * : The required criteria that have to be met.
 * : A name given to the criterion (can be any string, must be unique).
 * : The trigger for this advancement; specifies what the game should check for the advancement.
 * : All the conditions that need to be met when the trigger gets activated.
 * : An optional list of requirements (all the  ). 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)
 * : An optional object representing the rewards provided when this advancement is obtained.
 * : A list of recipes to unlock.
 * A namespaced ID for a recipe.
 * : A list of loot tables to give to the player.
 * A namespaced ID for a loot table.
 * : An amount of experience.
 * : A function to run. Function tags are not allowed.

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

If the tag is present, it must have both the  and  fields present in order to be a valid advancement display data.

The field, albeit not directly associated with the display data of an advancement, only affects 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 has no effect to the advancement itself.

Tab creation
To create a tab in the advancement menu, define a root advancement (an advancement without a parent) with a display. When the data pack containing the advancement is loaded, the root advancement will have a tab in the advancement menu when any of the advancements in its advancement tree is granted to the player viewing the menu.

When a background is not specified for a root advancement, the tab will still be created. However, the background of the tab will be the missing texture.

Presence
For a non-root advancement (i.e. an advancement with a parent defined), these conditions must be met in order to have it displayed in a tab when unlocked:
 * 1) Its root advancement must be a valid tab.
 * 2) It must have a display.

Position
The game will automatically arrange advancements and position them when it loads advancements from data packs and send the arrangement to the client. Each advancement will have an arrow from its closest visible ancestor (i.e. if its parent does not have a display, it will have a link from its grandparent, so on). The root advancement will be on the leftmost column while each arrow will point 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 or  fields defined in order to hide from users and enjoy a better loading performance.

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.
 * Though bearing similar names, Voluntary Exile advancement does not use criterion trigger, unlike most other advancements.