Grant a single advancement
/advancement grant @s only minecraft:story/mine_diamondUnlocks "Diamonds!" for you, and only that one.

/advancement grants or revokes advancements for players: one at a time, a whole branch of the tree, or all of them at once. It is the tool to test data packs, reset progress on a server or unlock steps of an adventure map.
/advancement grant <targets> (everything|from|only|through|until)/advancement revoke <targets> (everything|from|only|through|until)/advancement grant/advancement grant <targets> (everything|from|only|through|until)| Argument | Expects | What it does |
|---|---|---|
| targets | Player selectorone or several | Players concerned: @s, @p, @a or a player name. |
| advancement | ID · advancement | Advancement ID, for example minecraft:story/mine_diamond. The path matches the tab and the advancement name. |
| criterionoptional | Textrest of the line | Name of one criterion of the advancement, for example apple for A Balanced Diet. Only with only. |
/advancement revoke/advancement revoke <targets> (everything|from|only|through|until)| Argument | Expects | What it does |
|---|---|---|
| targets | Player selectorone or several | Players concerned: @s, @p, @a or a player name. |
| advancement | ID · advancement | Advancement ID, for example minecraft:story/mine_diamond. The path matches the tab and the advancement name. |
| criterionoptional | Textrest of the line | Name of one criterion of the advancement, for example apple for A Balanced Diet. Only with only. |
/advancement grant @s only minecraft:story/mine_diamondUnlocks "Diamonds!" for you, and only that one.
/advancement revoke @a everythingRevokes every advancement from all online players.
/advancement grant @s until minecraft:end/kill_dragonGrants "Free the End" and every advancement before it in the End tab.
/advancement revoke @p from minecraft:nether/rootStarting from its root, removes every Nether advancement from the nearest player.
/advancement grant @s through minecraft:story/enter_the_netherGrants "We Need to Go Deeper", its parents and all the advancements that follow it.
/advancement grant @s only minecraft:husbandry/balanced_diet appleMarks the apple as eaten for "A Balanced Diet" without completing it.
Fill in the fields, then copy the command.
Command generatoronly: one advancement, or a single criterion of it.from: the advancement and everything that follows it in the tree.until: the advancement and all its parents, back to the root of the tab.through: parents and children together.everything: every advancement, the hidden ones included.Some advancements have several criteria. "A Balanced Diet" has one per food, named after the item: /advancement grant @s only minecraft:husbandry/balanced_diet apple ticks off the Apple. Criterion names come from the advancement file in the game data; a wrong name returns "The advancement minecraft:husbandry/balanced_diet does not contain the criterion 'aple'".
Granting gives the rewards of the advancement, which can be experience, loot, recipes or a /function. Many recipes are unlocked by hidden advancements under minecraft:recipes/, so everything also fills the recipe book, like /recipe. Revoking does not take back items or experience already received. To count progress in a map, a /scoreboard objective is often simpler.
✓ Checked in Java Edition 26.3 · updated 2 November 2026
No. Items, experience and recipes already received stay with the player. Only the advancement itself is marked as not done.
Run /advancement revoke @a everything. Every online player starts again with an empty advancement screen.
Type it in the chat with cheats on: /advancement grant <targets> (everything|from|only|through|until).
Cheats on, or operator level 2.