Configurable K-factor
Pick how fast ratings move. A low K (10–16) keeps an established ladder stable. A high K (40+) suits short events where you want fast rank shifts. The default K=32 is a balanced start.
Competitive, skill-based rankings that adjust after every match — with configurable K-factor, decay, tier roles, and a live web leaderboard.

Scoreboards is the Discord ELO bot built for competitive communities. Run a ranked ladder, seed a tournament bracket, or give your PvP server the kind of skill-based ranking system that keeps players chasing the next rating tier — all without leaving Discord, and with a web leaderboard your members can share outside it.
The basics
ELO is a rating system originally developed by Arpad Elo for chess in the 1960s. Today it's the gold standard for competitive rankings — used by chess federations, fighting-game tournaments, StarCraft ladders, League of Legends, and most serious PvP communities, for 1v1 duels and team games alike.
The idea is simple: every match is a rating exchange. Beat a higher-rated opponent and gain a lot of points. Lose to a lower-rated opponent and lose a lot. Over time ratings self-correct and settle around each player's true skill level.
That's why ELO is the format of choice when you want a leaderboard that means something — not just a tally of who played the most.
Move the ratings and pick a result. This is the formula the bot settles every match with.
K-factor
Result
Your chance to win30%
Your rating
15001523
+23Their rating
16501627
−23Features
Pick how fast ratings move. A low K (10–16) keeps an established ladder stable. A high K (40+) suits short events where you want fast rank shifts. The default K=32 is a balanced start.
Players start at 1200 by default, but you can set any base rating that fits your community.
Hit Submit result on the leaderboard, choose both sides, declare a winner (or a draw) — you are already filled in as player 1. The bot handles the expected-score maths and updates every participant's rating as soon as the match counts.
The opponent is pinged in a private match thread to Confirm or Disagree. Nobody answers? The match counts on its own after 3 hours. A disagreement goes to your admins, who have 48 hours to decide.
Players click the queue button to join a pool of opponents. An expanding-window algorithm pairs players of similar ELO, the button shows how many are waiting, and members can ask to be pinged when someone queues.
Want a specific opponent? Press Challenge and pick a player: an accepted challenge becomes a match thread, just like a queue match. When a 1v1 is settled, its thread offers a Rematch button.
Not every game has two sides. An ELO board can run free-for-alls of 3 to 8 players instead: report the finishing order (or an all-draw) and everyone is rated against everyone else, with the K-factor split across the lobby so one game is worth about one match of movement. Exactly zero-sum, and the queue can form full lobbies with a shared voice room.
Inactive players gradually drop rating on a daily, weekly, or monthly schedule — keeping your ladder reflective of current skill.
A new ELO board creates Bronze, Silver, Gold, Platinum and Diamond roles at its first match and moves players between them as their rating changes, telling each player by DM when they move up. Prefer your own bands? Edit them like any tier roles.
When a match counts, the bot posts one line in the match thread: who won, the rating change and the new rank, such as “now #3 (↑2)”. Nobody is pinged.
Run a knockout or group tournament in the server, seeded from the board's ratings, and let its matches count on the ELO leaderboard.
Every ELO board gets a shareable web leaderboard with full match history, win/draw/loss stats, rank history and a stats page per player — so players can follow the ladder outside Discord too.
Want the full mechanics and best-practice tips? Read the complete ELO guide →
Matchmaking · Beta
Most ELO Discord bots stop at reporting matches. Scoreboards also makes them — so players don't have to hunt for evenly-rated opponents in chat, or organise a full team by hand.
Players click the queue button on the leaderboard to enter the matchmaking pool.
The system looks for players within a narrow ELO band first, then widens the window until it has enough for a match — two players on a 1v1 board, six on a 3v3.
On a team board the lobby is split so the two sides' average ratings land as close together as possible, keeping the strongest and weakest players apart.
Once everyone clicks Ready, the match gets a dedicated Discord thread with voting buttons built in.
The players vote on the winner and every participant's rating updates automatically. After 3 hours the match is settled from the votes cast, and nobody can queue again before voting.
The expanding-window search takes the closest-rated players available, so every match carries meaningful ELO weight.
Queue entries expire automatically after a set duration (5 minutes by default, customizable per leaderboard) so nobody sits in an endless queue.
Optionally spin up voice automatically — one shared room for a 1v1, or a private room per side on a team board so mates can talk tactics without the opposition listening. Cleaned up when the match ends.
A result is locked in once a majority of each team picks it, so one side can never declare its own win. Anything else raises a dispute for an admin or validator to settle.
Turn on fixed teams and persistent named squads sign up once, get their own team ELO on the board, and queue as a unit — any member's click queues the whole roster, and up to two reserves can tag along, with the first to ready up making the lineup.
The matchmaking queue is currently in beta. Toggle it per-leaderboard in your dashboard settings.
In Discord
When the queue makes a match, the bot posts who is playing and what is at stake, so the match thread starts with context instead of questions.


Use cases
Fighting games, chess, card games, racing duels — any head-to-head format where you want ranks to actually reflect skill.
Set the leaderboard to a fixed team size and every player still gets their own rating. Expected scores come from each team's average, so beating a stronger squad pays the whole team.
Persistent seasons that evolve as players compete. Pair with decay if you want ratings to track current form.
Use live ELO ratings to seed brackets so the strongest players don't eliminate each other in round one.
Pair players of similar rating for more competitive, enjoyable matches — the ratings do the matchmaking work for you.
Economy
Switch on the economy and every approved result on this board pays your members a currency you name. They spend it in your server's shop on roles, board emojis and name colours, so there is always a reason to play one more.
See how the economy worksQuick start
Invite the bot to your Discord server. It takes a few seconds.
Add to DiscordName the board and pick ELO. Press More options afterwards for team matches up to 8v8, a free-for-all or fixed teams.
Press Submit result on the leaderboard, choose both sides and the winner — the opponent confirms it — or press Queue and let the bot find an opponent.
Auto-approval, roles for the top ranks, seasons, colours and a web page for every board are all in the dashboard.
Open the dashboardFAQ
Yes. Scoreboards is a Discord ELO bot: it keeps an ELO leaderboard in your server, with a matchmaking queue, opponent confirmation, challenges, team and free-for-all matches, rank roles and a web page for every board.
Add Scoreboards to your server, run /leaderboard create and pick ELO. The leaderboard is posted in the channel straight away. Players press Submit result to report a match, or Queue to find an opponent, and ratings move from the first result.
Yes, on a 1v1 ELO or League board with the queue on. Press Challenge and pick a player: they get Accept and Decline by DM for 30 minutes, and an accepted challenge becomes a match thread like a queue match. After a 1v1, Rematch in the match thread sends the same challenge again.
Keep the default of 32 if you are unsure. Lower it to 16 for a long-running ladder that should move slowly, or raise it to 40 or more for a short event where ranks should shift quickly. You can change it in the dashboard at any time.
1200 by default. You can set any starting rating in the dashboard, and every new player on that board starts there.
Yes. Set a team size from 2v2 to 8v8 and every player keeps their own rating. The expected result comes from each team's average, so beating a stronger team pays every player on yours. Fixed teams can also have one rating per team.
Yes. A draw moves ratings too: the higher-rated player loses a little and the lower-rated one gains the same amount.
The opponent presses Disagree and an admin decides; if nobody does within 48 hours, the result doesn't count. A result that already counted can be cancelled or edited, and the ratings it moved are put back.
Unless you turn on decay. Then players who stop playing lose rating on a daily, weekly or monthly schedule, so the top of the ladder reflects who is playing now.
More leaderboard types
Every Scoreboards leaderboard lives in Discord and on the web, and one server can run as many as it likes.
A live ELO leaderboard turns every match into something to fight for — and gives the whole community a shared scoreboard to rally around.
Add to Discord