> For the complete documentation index, see [llms.txt](https://docs.ohalee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ohalee.com/products/ultimateguilds/progression.md).

# Progression

The experience curve, level-ups and what each level is worth.

Before 3.0 a guild carried an experience number and a level number that never spoke to each other: nothing levelled a guild up, and the level only moved when an admin set it by hand. Both now come from one place, configured in `levels.yml`.

Experience is cumulative. A guild's level is whatever its total experience buys, so setting a level with `/guild level` also moves its experience to that level's threshold, and the two never disagree.

## The curve

```yaml
curve:
  max-level: 50
  base: 100
  growth: 1.5
  overrides: { }
```

Reaching level 2 costs `base`. Each step after that costs `growth` times the one before, so with the defaults level 2 → 3 costs 150 and level 3 → 4 costs 225. `overrides` replaces the cost of a single step, keyed by the level being reached:

```yaml
  overrides:
    2: 50
    3: 150
```

## What a level is worth

```yaml
levels:
  10:
    extra-members: 5
    multiplier: 1.1
    commands:
      - "broadcast <guild> reached level <level>"
```

<table><thead><tr><th width="200">Key</th><th>Effect</th></tr></thead><tbody><tr><td>extra-members</td><td>Member slots this level adds. They add up across levels, and never lower a limit the guild already has from <code>/guild maxmembers</code>.</td></tr><tr><td>multiplier</td><td>The experience multiplier the guild carries from here on. Taken from the highest level reached that names one.</td></tr><tr><td>commands</td><td>Run on the console once, when the level is reached. <code>%guild%</code> and <code>%level%</code> are replaced.</td></tr></tbody></table>

Set `announce-level-ups: false` to stop the message in guild chat.

## Granting experience

`/guild xp <guild> add <amount>` adds exactly that amount and levels the guild up if it crosses a threshold — including several at once.

Another plugin grants experience through `ProgressionService`, which applies the guild's multiplier and fires a cancellable `GuildXpGainEvent` first. See [for-developers.md](/products/ultimateguilds/for-developers.md).
