The ELO leaderboard brings competitive skill-based rankings to your Discord server. Borrowed from chess and widely adopted in competitive gaming, the ELO system adjusts player ratings based on match outcomes and opponent strength. Beat someone rated higher than you and gain a lot of points; lose to someone lower and take a bigger hit.
How It Works
Every player starts at a base rating (default: 1000). When two players face off, the bot calculates the expected outcome based on their rating difference. The actual result is compared to the expectation, and both players' ratings are adjusted accordingly:
- Win against a stronger opponent — large rating gain
- Win against a weaker opponent — small rating gain
- Lose to a stronger opponent — small rating loss
- Lose to a weaker opponent — large rating loss
- Draw — small adjustment toward the expected outcome
The system is self-correcting. Over time, players gravitate toward a rating that accurately reflects their skill level relative to the competition.
Setting It Up
- Use the
/createcommand and select ELO as the scoreboard type. - Name your scoreboard — e.g., "Chess Ladder" or "Smash Bros Rankings".
- Configure the K-factor. This controls how much ratings change per match:
- Low K-factor (10-16) — Ratings move slowly. Better for established ladders where stability matters.
- Medium K-factor (20-32) — Balanced movement. Good default for most communities.
- High K-factor (40+) — Ratings swing quickly. Good for short events or when you want fast rank movement.
- Set the starting ELO if you want something other than the default 1000.
- Optionally enable ELO decay — inactive players gradually lose rating points. You can set the decay interval (daily, weekly, or monthly) and the amount lost per period.
Recording Matches
Use /match to record a match result between two players. You specify the winner (and optionally a draw). The bot handles all the math and updates both players' ratings instantly.
The leaderboard displays each player's current ELO rating along with match statistics: matches played, wins, draws, losses, and the time of their last match.
What It's Good For
- 1v1 competitive games — Fighting games, chess, card games, racing duels — any head-to-head format where you want a meaningful skill ranking.
- Ongoing ranked ladders — Keep a persistent ranking that evolves as players compete. No need for season resets (though you can if you want).
- Fair matchmaking — Use the ratings to pair players of similar skill for more competitive and enjoyable matches.
- Tournament seeding — Use ELO ratings to seed brackets for tournaments, ensuring top players don't eliminate each other in early rounds.
Tips and Best Practices
- Start with a moderate K-factor. A K-factor around 32 is a solid starting point. You can always adjust it later based on how your community responds.
- Use decay for active ladders. If your ladder is meant to reflect current skill, enable decay so that inactive players gradually drop, making room for active competitors.
- Require a minimum number of matches. Communicate to your community that ratings become meaningful after around 10-15 matches. Early ratings are volatile and don't reflect true skill yet.
- Don't change K-factor mid-season. Changing the K-factor affects how much future matches shift ratings, which can feel unfair to players who built their rating under different rules.
- Track match history. ELO boards show detailed stats per player. Use these to identify your most active players, track rivalries, and celebrate milestones (first player to 2000 ELO, longest win streak, etc.).
When to Choose Something Else
ELO requires 1v1 match results. If your competition doesn't have head-to-head matches, use Classic or High Score instead. If you're ranking creative submissions rather than competitive play, Image Rating is the right choice.