Gives the selected advancements to the target
Every advancement in the game at once, including recipe unlocks. No advancement id needed.
Everything mode covers every advancement that exists, so no advancement id is needed. Switch to only, from, through or until to pick one.
Needs cheats on in singleplayer, or operator level 2 on a server. Works in chat and command blocks.
The /advancement command grants or revokes advancement progress for any player. It can target one advancement, a single criterion inside it, a whole branch of an advancement tab, or every advancement in the game at once. It needs cheats enabled in singleplayer or operator level 2 on a server.
Advancement progress is stored per player, so the command always takes a target: a player name or a selector like @s or @a. grant completes the selected advancements as if the player had earned them, and revoke clears that progress again. Neither touches items, statistics or anything else in the world.
Two details surprise people. First, granted advancements are announced in chat exactly like earned ones, so granting everything floods the chat unless the announceAdvancements gamerule is off. Second, recipe unlocks are advancements too (they live in a hidden recipes tab), which is why everything mode also fills the recipe book.
The generator above covers the full command: pick grant or revoke, build the target, choose one of the five selection modes, and search the advancement list by id or type any custom datapack id by hand.
The command has five forms, one per selection mode:
Advancement ids always include the tab path: minecraft:story/mine_diamond is Diamonds!, not mine_diamond on its own. Datapack advancements use their own namespace in the same way. The criterion argument is free text because datapacks can define any criterion names they like.
/advancement grant @s everything
Unlocks every advancement and every recipe for yourself. The classic completion command.
/advancement revoke @a everything
Resets advancement progress for every online player. Useful before a fresh challenge run or a map reset.
/advancement grant @p only minecraft:story/enter_the_nether
Grants only We Need to Go Deeper to the nearest player and nothing else.
/advancement grant @s only minecraft:adventure/adventuring_time minecraft:desert
Ticks off a single criterion: marks the desert as visited for Adventuring Time without granting the rest.
/advancement grant @s through minecraft:end/kill_dragon
Grants Free the End plus everything before and after it in the End tab with one command.
Every advancement tab is a tree: a root advancement with branches of children hanging off it. The three branch modes walk that tree from whichever advancement you name. from goes forward only (the advancement and all its descendants), until goes backward only (the advancement and its parent line up to the root), and through does both at once.
In practice: grant with through to jump a player to a specific point with all prerequisites filled in, revoke with from to reset a branch without touching what leads up to it, and grant with until when you only want the path that leads to a goal, leaving everything after it to be earned. only and everything handle the two extremes: exactly one advancement, or all of them.
Run /advancement grant @s everything in chat. You need cheats enabled in singleplayer (or operator level 2 on a server). It grants every advancement in the game at once, including all recipe unlocks, so expect a wall of chat messages unless announceAdvancements is off.
Use revoke instead of grant: /advancement revoke @s everything wipes all of your advancement progress, and /advancement revoke @s only <id> removes a single one. Revoking does not touch your statistics, your inventory or your world; it only clears the advancement progress itself.
The usual causes: cheats are off in that world, you are not a level 2 operator on the server, or the advancement id is wrong. Ids must include the tab path, like minecraft:story/mine_diamond; the in-game display name (Diamonds!) will not work. In a command block, leave out the leading slash. The target also has to be an online player.
All three work on an advancement's tree. from affects the advancement plus everything after it (its children and their children). until affects the advancement plus everything before it (its parent line back to the root). through combines both: the advancement, all its ancestors and all its descendants.
Yes. The only mode accepts an optional criterion after the advancement id: /advancement grant @s only minecraft:adventure/adventuring_time minecraft:desert marks just the desert as visited. The advancement completes once every criterion is granted, whether by play or by command.
Yes. Recipe unlocks are implemented as advancements in the recipes tab, so granting everything unlocks every recipe in the recipe book too. If you only want recipes without the achievements, use /recipe give @s * instead.
Need the exact id or criteria of an advancement? Or browse more Minecraft tools: