Skip to main content
Documentation

ELO & Ranking

How the rating system, rank tiers, and seasons work

ELO Modes

Each queue uses one of two ELO modes, set during /setup or via the dashboard.

Dynamic K-Factor (Default)

The standard ELO mode. How much your rating changes per match depends on the difference between your rating and your opponent's, and whether you're a new or established player.

  • Upset wins (beating higher-rated opponents) earn more ELO
  • Expected wins (beating lower-rated opponents) earn less ELO
  • New players' ratings move faster so they find their true skill level quickly

K-Factor controls how much ratings move per match:

K-Factor values
Player TypeDefault K-FactorDescription
Provisional40New players (fewer than 7 matches) — ratings move fast
Established20Players with 7+ matches — ratings stabilize

Both K-factors and the provisional threshold (number of matches before a player becomes "established") are configurable per-queue via the dashboard.

Flat Mode

Simple fixed ELO gain/loss. Every win gives you +X and every loss takes -X, regardless of opponent ratings.

  • Default amount: 25 per win/loss
  • Configurable via /setup flat-amount:15 or the dashboard
  • Good for casual servers that want straightforward rankings

Starting ELO

New players start at 1200 ELO by default when they /register. You can change this in the dashboard under Settings (range: 100-3000).


Nickname Display

The bot updates each player's Discord nickname to show their current ELO:

[1350] PlayerName

This updates automatically after matches, manual ELO changes, and season resets.


MVP Bonus

Admins can award MVP to standout players after a match using /mvp. If an MVP bonus is configured (via /set-mvp-bonus), the player receives bonus ELO on top of their normal match gain.

  • Default bonus: 0 (disabled)
  • Maximum: 100 ELO per MVP
  • Multiple MVPs can be awarded in the same match
  • MVP awards are reversed if the match is voided

Rank Tiers

Players are assigned a rank tier based on their ELO rating. Tiers are displayed on leaderboards, stats cards, and in the dashboard.

Default Tiers

Default rank tiers
TierMin ELOColor
Bronze0#CD7F32
Silver1000#C0C0C0
Gold1200#FFD700
Platinum1400#00CED1
Diamond1600#B9F2FF
Master1900#FF4500

Customizing Tiers

From the dashboard (Settings tab), you can:

  • Rename tiers — Call them whatever fits your community
  • Change ELO thresholds — Adjust min ELO for each tier
  • Change colors — Pick any hex color
  • Add or remove tiers — Have as many or few as you want
  • Assign Discord roles — Optionally link a Discord role to each tier

Auto-Role Assignment

If you assign a Discord role to a tier, the bot automatically manages role assignment:

  • When a player's ELO crosses into a new tier, the bot removes the old tier role and assigns the new one
  • This happens after every match result, manual ELO change, and season reset
  • The bot needs the "Manage Roles" permission for this to work

Team Balancing

When a match starts in AUTO_MATCH mode, the bot uses a snake draft algorithm to create balanced teams:

  1. Players are sorted by ELO (highest to lowest)
  2. Round 1: Best player goes to Team 1, next to Team 2
  3. Round 2: Next player goes to Team 2, then Team 1 (reversed)
  4. This alternating pattern continues until all spots are filled

With parties: Parties are placed first (largest parties first), then solo players fill remaining spots using the snake draft.

This produces consistently fair matches — the total ELO of each team is as close as possible.


Seasons

Seasons let you periodically reset the leaderboard so everyone starts fresh. Past season standings are archived and viewable.

How Seasons Work

  1. Enable seasons in the dashboard (Settings tab)
  2. Set a duration — 4, 6, 8, or 12 weeks
  3. When the season expires, ELOs are automatically reset
  4. A summary of final standings is posted to your summary channel
  5. Past seasons are viewable via /season-leaderboard and the dashboard

Hard Reset

Everyone goes back to the starting ELO (e.g., 1200). Clean slate.

Soft Reset

Players are moved partially toward the starting ELO. How much depends on the soft reset factor:

New ELO = Starting ELO + (Current ELO - Starting ELO) x Factor

Examples (starting ELO: 1200, factor: 0.50):

Soft reset examples
Current ELONew ELOChange
18001500-300
16001400-200
120012000
9001050+150
600900+300
  • Factor 0.00 = full reset (same as hard reset)
  • Factor 0.50 = move halfway toward starting ELO (default)
  • Factor 1.00 = no change

What Happens During a Season Reset

  1. All active players' stats are archived (final ELO, peak ELO, record, MVPs, final rank)
  2. ELOs are reset according to the reset type
  3. Season match stats are zeroed (wins, losses, MVPs)
  4. Nicknames are updated with new ELO
  5. Season number increments
  6. Summary embed is posted to the configured channel

Manual Reset

You can trigger a season reset at any time with:

/season-reset confirm:true

Or use the manual reset button in the dashboard (Settings tab).

Viewing Past Seasons

  • In Discord: /season-leaderboard season:3
  • On the dashboard: Seasons tab shows all past seasons with full leaderboards
  • Stats tracked: Final ELO, peak ELO, matches played, wins, losses, MVP count, and the reset ELO each player received