> For the complete documentation index, see [llms.txt](https://edseries-plugins.gitbook.io/p/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://edseries-plugins.gitbook.io/p/pinnapass/the-pass/tiers.md).

# Tiers & Rewards

Players work on one tier at a time. Completing it (collecting its XP) unlocks that tier's rewards: the **free** reward for everyone and the **premium** reward for owners of its pass. Rewards wait until they are claimed, in the menu or with `/pass claim`.

## config.yml → tiers

```yaml
tiers:
  max: 30                          # number of tiers
  complete-last-tier: true         # the last tier can be completed (then the Infinite Pass starts)
  xp-formula: '1000 + 200 * {tier}' # XP to complete a tier; + - * / ^ ( ), {tier}
  per-page: 7                      # tiers per page of the pass menu
```

## tiers.yml

```yaml
tiers:
  5:
    xp: 3000                        # optional: this tier's XP instead of the formula
    free:
      icon: DIAMOND                 # the menu icon ({icon})
      lore:                         # the reward lines shown in the menu
        - ' &8• &b2x Diamonds'
        - ' &8• &a5 XP Levels'
      items:
        - { material: DIAMOND, amount: 2 }
      commands: [ 'levels:5' ]
    premium:
      owner: gold                   # gold | diamond (default: passes.owner-rule)
      icon: ENCHANTED_BOOK
      lore: [ ' &8• &e1x Mending Book' ]
      items:
        - material: ENCHANTED_BOOK
          enchantments: { mending: 1 }
      commands: [ 'money:2500', 'broadcast:&e{player} &7reached tier 5!' ]
```

* A tier without `free:` or `premium:` shows nothing on that row.
* `items:` keys: `material`, `amount`, `name`, `lore`, `enchantments` (`{ sharpness: 5 }`; stored enchantments on books), `glow`, `unbreakable`, `custom-model-data`.
* `commands:` take every [reward line](/p/pinnapass/getting-started/configuration.md#reward-lines) (`rewards:` works as a name too).
* An empty reward (`commands: []`, no items) is display only: claiming it just marks it claimed.

Claims are written to the database **before** the reward is given, so a crash can never make a claimed reward claimable again; if the save fails, nothing is claimed and the player is told to try again.

## Claiming

* Click a glowing reward in `/pass`, or the **Claim All** button.
* `/pass claim` claims everything unlocked.
* Premium rewards of a pass the player doesn't own stay waiting: buying the pass later unlocks them all.
