Skip to content
Back to blog

Team Up Blog

How to Set Up Elo Leaderboards in Your Discord Server

| Team Up | 3 min read

A step-by-step guide to adding an Elo rating system to your Discord server. Track competitive matches, display live leaderboards, and rank players automatically, in under 5 minutes.

guideeloleaderboardsdiscord

If you run any kind of competitive community on Discord (Valorant customs, Smash Bros. weeklies, chess matches, poker nights), you've probably wished there was an easy way to track who's actually winning over time. Spreadsheets get messy. Manual tracking doesn't scale. And arguing about who's "the best" never goes anywhere productive.

That's exactly what an Elo leaderboard solves. The Elo rating system (originally designed for chess) gives every player a number that goes up when they win and down when they lose. Beat someone rated higher than you? You gain more points. The ratings naturally sort themselves over time into a fair ranking.

Here's how to get one running in your Discord server in about 5 minutes.

Step 1: Add the Bot

Invite Team Up to your server from the Discord App Directory. It needs basic permissions to send messages and manage roles (the role permission is only needed if you want automatic tier role assignments later).

Once the bot is in your server, you're ready to go. No setup wizard, no configuration files. The bot creates leaderboards on the fly when you record your first match.

Step 2: Record Your First Match

The fastest way to get started is with a quick 1v1:

/record_match quick opponent:@player2 winner:I won

That's it. The bot creates a leaderboard, assigns both players a default rating of 1200, calculates the Elo change, and records the result. You'll see a response showing the updated ratings for both players.

Recording a match with the /record_match command

Other Match Formats

Team Up handles more than just 1v1s. Here are a few examples:

2v2 team match — group teammates with parentheses:

/record_match elo 1st_place:(@player1 @player2) 2nd_place:(@player3 @player4)

Free-for-all with 4 players — list placements in order:

/record_match elo 1st_place:@winner 2nd_place:@second 3rd_place:@third 4th_place:@fourth

Made a mistake? Undo the last match:

/record_match undo

Step 3: Display the Leaderboard

Create a live leaderboard message that auto-updates after every match:

/leaderboard display_leaderboard rating_type:Global

This posts a leaderboard embed in the current channel. As new matches are recorded, the leaderboard updates itself. No need to re-run the command.

A live leaderboard displayed in Discord showing player rankings and Elo ratings

You can also display it on the web with a shareable link by visiting your server's page on teamupgg.com/leaderboard.

You can also post a live match history feed:

/leaderboard display_history limit:10

Step 4: Fine-Tune the Settings (Optional)

The defaults work great for most communities, but you can customize everything.

K-Factor controls how volatile ratings are. A higher K-Factor means bigger swings per match, which is good for smaller communities where you want rankings to settle faster. A lower K-Factor is better for large communities with lots of matches:

/leaderboard_config basics set k_factor:32

Placement matches keep unranked players off the leaderboard until they've played enough games:

/leaderboard_config ranking set matches_required:5

Default rating changes the starting point for new players (default is 1200):

/leaderboard_config basics set default_rating:1200

For a full breakdown of every setting, check the configuration guide.

Bonus: Add Tier Roles

Want to reward your top players with visible Discord roles? Tier roles let you automatically assign roles like "Diamond", "Gold", or "Bronze" based on Elo thresholds:

/tiers create rating_type:Global required_elo:1800 role:@Diamond
/tiers create rating_type:Global required_elo:1500 role:@Platinum
/tiers create rating_type:Global required_elo:1200 role:@Gold

When a player's rating crosses a threshold, their role updates automatically. No manual work required. Players love having a visible rank in the member list and chat.

Tier roles displayed in a Discord server

You can also create rank-based tiers (e.g., "Top 10" role for the 10 highest-rated players) instead of Elo-based thresholds.

What's Next

Once your leaderboard is running, there's a lot more you can do:

  • Matchmaking queues — let players queue up and get automatically matched into balanced games
  • Multiple leaderboards — run separate rankings for different games or formats
  • Web dashboard — manage your server, view match history, and configure settings from a browser
  • REST API — build custom integrations with your leaderboard data

Curious how Team Up compares to other options? See our comparison of the best Discord bots for Elo and matchmaking.

The free tier gives you 50 matches per day and 3 leaderboards, which is plenty to get started. If your community grows and you need more, Pro starts at $1.99/month and adds features like automatic tier roles, higher limits, and priority support.


Questions? Check the full tutorials or ask in our Discord community.