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.

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.

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.

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.
