Minecraft Wiki
Advertisement
Information icon
This feature is exclusive to Java Edition. 

Gives or takes an advancement or its criterion from one or more players.

Syntax[]

advancement (grant|revoke) <targets> everything
Adds or removes all loaded advancements.
advancement (grant|revoke) <targets> only <advancement> [<criterion>]
Adds or removes a single advancement or criterion.
advancement (grant|revoke) <targets> from <advancement>
Adds or removes an advancement and all its child advancements.
Think of specifying everything from that advancement to the end.
The exact order the operation is carried out in is specified advancement > child > child's child > ... When it operates on a child that branches, it iterates through all its children before continuing.
advancement (grant|revoke) <targets> through <advancement>
Specifies an advancement, and adds or removes all its parent advancements, and all its child advancements.
Think of specifying everything through the specified advancement, going both backwards and forwards.
The exact order the operation is as if the command were executed with "until" specified, then with "from" specified: parent > parent's parent > ... > root > specified advancement > child > child's child > ...
advancement (grant|revoke) <targets> until <advancement>
Adds or removes an advancement and all its parent advancements until the root for addition/removal.
Think of specifying everything from the start until that advancement.
The exact order the operation is carried out in is: parent > parent's parent > ... > root > specified advancement.

Arguments[]

grant|revoke

Specifies whether to add or remove the to-be-specified advancement(s).

<targets>: entity

Specifies one player or more.
Must be a player name, a target selector or a UUID. And the target selector must be of player type.

<advancement>: resource_location

Specifies a valid resource location of the advancement to target.
Must be a resource location which will be resolved during command execution into unregistered content or client-side content.

<criterion>: string

Specifies a valid criterion of the advancement to manipulate.
The command defaults to the entire advancement.
If specified, the command refers to merely the criterion and not the entire advancement.
Must be a string. And it is a greedy phrase (taking the rest of the command as the string argument).

Result[]

CommandTriggerJava Edition
anythe arguments are not specified correctly Unparseable
if <entity> fails to resolve to one or more online players Failed
there's no advancement/criterion added to/remove from any player Error
... only <advancement> <criterion>the <criterion> is invalid for the <advancement>
anyOtherwiseSuccessful

Output[]

CommandEditionSituationSuccess Count/execute store success .../execute store result ...
anyJava EditionOn error0unchangedunchanged
On fail000
On success11the total number of advancements/criterions added to/removed from each player.

Examples[]

  • To grant the "Cover Me With Diamonds" advancement to your player, execute the command /advancement grant @s only minecraft:story/shiny_gear.
  • To grant all advancements to every player, execute /advancement grant @a everything.

History[]

Java Edition
1.1217w13aAdded advancement.
1.1317w45aRemoved advancement test in favor of advancement target selectors.

See also[]

Advertisement