HyperScript
Docs

← All of the Docs What players see

Advancements

structureadvancement "<name>":since 1.7.20

At the left margin. The name is what it is granted by

advancement "first kill":
    title: "&cFirst blood"
    description: "Win a fight against another player"
    icon: iron sword
    frame: challenge
Try it
structuretitle: / description:since 1.7.20

What players read. Without a title, the name is shown

advancement "rich":
    title: "&6Rich"
    description: "Own a thousand coins"
Try it
expressionicon: <item>since 1.7.20

The item drawn in its frame; a book unless said otherwise

advancement "miner":
    icon: diamond pickaxe
Try it
expressionframe: task, goal or challengesince 1.7.20

The shape of the frame, and how grandly it is announced

advancement "dragon":
    frame: challenge
Try it
expressionparent: "<name>"since 1.7.20

The advancement it hangs under in the screen. Without one it hangs under the server's own first entry

advancement "miner":
    icon: diamond pickaxe

advancement "master miner":
    parent: "miner"
    icon: netherite pickaxe
Try it
expressionannounce: falsesince 1.7.20

Do not tell everybody in chat

advancement "tutorial":
    announce: false
Try it
expressionhidden: truesince 1.7.20

Out of sight until somebody has it

advancement "secret room":
    hidden: true
Try it
expressiongrant advancement <name> to <who>since 1.7.20

Give it. The pop-up, the sound and the line in chat are the game's own

advancement "welcome":
    title: "Welcome"

on first join:
    grant advancement "welcome" to player
Try it
expressionrevoke advancement <name> from <who>since 1.7.20

Take it back

advancement "welcome":
    title: "Welcome"

command /again:
    trigger:
        revoke advancement "welcome" from player
Try it
condition<who> has advancement <name>since 1.7.20

A condition; does not have advancement likewise

advancement "vip":
    title: "VIP"

command /lounge:
    trigger:
        if player has advancement "vip":
            send "&aWelcome in."
        else:
            send "&cMembers only."
Try it
Guide and examples

A script can add advancements of its own to the game's advancement screen, and hand them out:

advancement "first kill":
    title: "&cFirst blood"
    description: "Win a fight against another player"
    icon: iron sword
    frame: challenge

on player kill:
    grant advancement "first kill" to player
WrittenMeaning
advancement "<name>":At the left margin. The name is what it is granted by
title: / description:What players read. Without a title, the name is shown
icon: <item>The item drawn in its frame; a book unless said otherwise
frame: task, goal or challengeThe shape of the frame, and how grandly it is announced
parent: "<name>"The advancement it hangs under in the screen. Without one it hangs under the server's own first entry
announce: falseDo not tell everybody in chat
hidden: trueOut of sight until somebody has it
grant advancement <name> to <who>Give it. The pop-up, the sound and the line in chat are the game's own
revoke advancement <name> from <who>Take it back
<who> has advancement <name>A condition; does not have advancement likewise
  • Nothing in the game can earn these: only grant advancement does. That makes them a way of remembering as well; player has advancement "first kill" is saved by the game itself.
  • All of a server's own advancements share one tab in the advancement screen.
  • They are added when the scripts load. A player's progress is kept by the game and survives restarts; an advancement that is taken out of its script is gone from the screen.