> 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/xp.md).

# XP, Multipliers & Boosters

## Where Pass XP comes from

1. **Activities**: `config.yml` → `xp.activities` gives XP per unit of any [quest type](/p/pinnapass/quests/quest-types.md):

```yaml
xp:
  activities:
    kill-mobs: 5                 # 5 XP per kill
    break-blocks:                # with filters
      xp: 1
      exclude: [ 'dirt', 'grass_block', 'sand', '*_leaves' ]
    mcmmo-levelup: 20            # only does something with mcMMO installed
```

Filters: `targets` (only these), `exclude` (never these), `worlds`. Values are materials, mob types, skills, jobs... with `*` wildcards. Types not listed give no XP (their quests still move).

2. **Quests**: each finished quest pays a share of the XP the player's current tier needs (`reward: 15` = 15 %), or a fixed `flat-xp`.
3. **Commands / API**: `/pinnapass xp <player> <amount>`, reward lines `xp:<n>`, `PinnaPassAPI.giveXp(...)`.

Activities are added up when they happen and credited once a second per player on the main thread, so even thousands of blocks a second (enchants, bombs) cost nothing.

## Multipliers

Everything multiplies together:

**total = bought multiplier x personal boost x rank booster x server boost**

|                   | How                                                                                                                                                                                                                            |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Bought multiplier | `multiplier:` start, step per level, max level, cost formula; bought in `/pass`                                                                                                                                                |
| Rank booster      | `boosters.permissions`: the highest permission the player has (`pinnapass.booster.vip` = x1.1 by default)                                                                                                                      |
| Personal boost    | `/pinnapass boost <player> <multiplier> <seconds> [-s]` or the reward line `boost:<multiplier> <seconds>`; saved with the player, keeps running across restarts; a running boost keeps the higher multiplier and the later end |
| Server boost      | `/pinnapass globalboost <multiplier> <seconds>` (everyone, announced), `/pinnapass globalboost off`                                                                                                                            |

Quest rewards get the multipliers too; `xp:` reward lines and `/pinnapass xp <player> <n> raw` don't.

The `{total_multiplier}`, `{multiplier}`, `{booster}`, `{boost}`, `{global_boost}` tokens show each part.
