> 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/pinnaduels/playing/ranked.md).

# Ranked: ELO, Leagues & Seasons

## ELO

Standard Elo: a win against a stronger player gives more, at least 1 point for a decisive result.

| Setting                            | Default |                                                                                                                   |
| ---------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------- |
| `ranked.start-elo`                 | 1000    | new players                                                                                                       |
| `ranked.k-factor`                  | 32      | normal duels                                                                                                      |
| `ranked.placement-matches`         | 3       | duels before a player is ranked (shown as Unranked until then)                                                    |
| `ranked.placement-k-factor`        | 64      | K during placement                                                                                                |
| `ranked.ghost-k-factor`            | 24      | K against a ghost (only the player's ELO changes)                                                                 |
| `ranked.same-opponent-daily-limit` | 2       | ranked duels a day against the same player (or their ghosts) that count; more give no ELO (`summary-not-counted`) |

**Decay** (`ranked.decay`): players at or above `from-elo` who haven't played ranked for `after-days` lose `per-day` ELO a day, never below `from-elo`.

## Leagues

`leagues:` lists them from lowest to highest: `name`, `icon`, `min-elo`, optional `top: N` (also needs a top N ranking position), `item` (the material in the leagues menu) and optional `glyph` (for resource-pack menus, `%pinnaduels_league_glyph%`). Default: Bronze III to Diamond I by ELO, **Master** (top 50, 1800+) and **Legend** (top 10, 1800+). `unranked:` is the league before the placement duels.

League changes after a ranked duel send `league-up` / `league-down`, and a league up also shows `titles.league-up` with `sounds.league-up`. Players see every league in `/duel leagues`.

## Seasons

A season lasts `season.length-days`. When it ends (or on `/duel admin endseason`):

1. every placed player gets the `rewards.season` actions of the best league they reached this season (the highest league with rewards configured at or below it; their current league or the one their peak ELO reached). Offline players get them when they join;
2. ELO moves `season.soft-reset` of the way back to `start-elo` (0.5 = halfway) and placement starts over;
3. the server gets `season-ended`.

With MySQL storage shared by several servers, the first server that reaches the end does this for every stored player and the others announce it within a minute; see [Storage](/p/pinnaduels/getting-started/storage.md).

## Rewards

Rewards are PinnaPrison action lists (`give-eco tokens 25k`, `console crates give {player} vote 1`, `message ...`, `sound ...`); `{player}` works everywhere.

| Key                                            | When                                                                       |
| ---------------------------------------------- | -------------------------------------------------------------------------- |
| `rewards.win` / `rewards.loss`                 | after every ranked win / loss                                              |
| `rewards.weekly-wins` + `rewards.weekly-chest` | once a week (Monday to Sunday) when a player reaches that many ranked wins |
| `rewards.season.<league id>`                   | at the end of a season, see above                                          |

They are all empty by default: add your own.
