Docs Tutorials
Documentation
Discord Bot Tutorials
Step-by-step guide to using the Team Up Discord bot for tracking Elo ratings and competitive matches
Looking for a specific command?
The command reference lists every command and subcommand with its options, defaults, and who can run it.
Getting Started
You can start on the website or straight from Discord. The website sets up the league, its public pages and the dashboard for you; Discord gets you recording matches fastest.
Start from the website
Sign up with Discord, Google or email, then choose Create a league. A short guided setup takes you through five steps:
- Connect Discord: pick a server you run and add the bot to it. You can skip this and link a server later from your league's Discord › Server Connection page. If the server already used the bot, its ratings and match history come with it.
- League identity: name, icon and description. Choosing your own web address needs Pro.
- Branding & games: how the league looks, whether it is public, and the games you play.
- Explorer listing (optional): a short description and how to join, so players can find you on Explore. Skip it and the draft is kept for later.
- First leaderboard: its name, starting rating and K-factor.
Or start from Discord
Add the bot and record a match; the leaderboard is created for you. You can create a league on the website later and pick this server in its first step.
1. Invite the Bot
Add the Team Up bot to your Discord server. The bot needs basic permissions to send messages and manage roles (for tier assignments).
Add Bot to Server →2. Set Default Leaderboard (Optional)
If you plan to use multiple leaderboards, set a default one to use when no leaderboard is specified. It lives on the dashboard: your league → Discord → Channels & Defaults (Server default leaderboard).
/config server Shows the current default (and everything else) in Discord, with a button through to that page
3. Record Your First Match
Start tracking matches immediately! Use the quick command for 1v1 matches. The leaderboard will be created automatically.
/record_match quick opponent:@player2 winner:I won That's it! Your leaderboard is now live.
4. Display Leaderboard
Create an auto-updating leaderboard message in any channel to see the rankings.
/leaderboard display_leaderboard rating_type:Global Shows the global leaderboard with all players
Recording Matches
Quick 1v1 Matches
The fastest way to record a simple 1v1 match.
/record_match quick opponent:@player2 winner:I won Quick command when you win
/record_match quick opponent:@player2 winner:Opponent won Quick command when opponent wins
Standard Match Recording
Record matches with full placement details. Works for 1v1, teams, and free-for-all formats.
1v1 Match
/record_match elo 1st_place:@player1 2nd_place:@player2 Player1 wins, Player2 loses
2v2 Team Match
/record_match elo 1st_place:(@player1 @player2) 2nd_place:(@player3 @player4) Group teammates with parentheses
Free-For-All (4 players)
/record_match elo 1st_place:@winner 2nd_place:@second 3rd_place:@third 4th_place:@fourth List placements in order
Undo Mistakes
Made a mistake? Undo the last recorded match.
/record_match undo Reverts the most recent match
Manual Rating Adjustments
Manually specify exact rating changes (for special cases or corrections).
/record_match manual 1st_place:@player1 1st_place_delta:25 2nd_place:@player2 2nd_place_delta:-25 Player1 gains 25 rating, Player2 loses 25
Managing Leaderboards
Display a Leaderboard
Create an auto-updating leaderboard message in any channel.
/leaderboard display_leaderboard rating_type:Global Shows the global leaderboard (all match types)
Display Match History
Show recent matches in a channel.
/leaderboard display_history limit:10 Shows the 10 most recent matches
Configure Elo Settings
Customize how Elo ratings are calculated. See the configuration reference for all available options.
Open Rating Rules
Rating settings are edited on the dashboard: your league → the leaderboard → Rating Rules.
In Discord, /config leaderboard shows the current values with a button straight to that page.
K-Factor
Controls how much ratings change per match (default: 32)
Starting rating
Rating new players begin on (default: 1200)
Matches Required for Ranking
Players need this many matches before appearing on the leaderboard
View Configuration
Check your current leaderboard settings.
/config leaderboard Shows all current configuration values
Creating Tiers
Elo-Based Tiers
Automatically assign Discord roles when players reach certain Elo ratings.
Add them on the dashboard: your leaderboard → Tiers. Each tier is an Elo threshold and the role to grant.
Elo ≥ 1800 → @Diamond
Players with 1800+ rating get the Diamond role
Elo ≥ 1500 → @Platinum
Players with 1500+ rating get the Platinum role
Rank-Based Tiers
Assign roles based on leaderboard position (e.g., top 10, top 50).
Top 1 → @Champion
The #1 player gets the Champion role. Same page — pick Rank instead of Elo when adding the tier.
View Tiers
See all configured tiers for your leaderboards.
/config tiers Shows all tier configurations
Customization
Customize Leaderboard Appearance
Add branding to your leaderboard with custom names, icons, and colors.
/profile leaderboard View a leaderboard's current identity, with links to edit it on the web dashboard: its name and icon on its Standings page, its description and colors on its Default look page (Website → Leaderboard Pages → Default look)
Player Profiles
Players can customize their own profile appearance on the web dashboard.
/profile player Shows your current profile and a direct link to edit your display name, colors, and avatar on the web
Server Profile
Customize your server's appearance on the public leaderboard website.
/profile server View your server's current identity and get a direct link to edit its public display name, colors, and images on Website › Theme in the web dashboard
Advanced Features
Channel Configuration
Associate specific leaderboards with Discord channels for auto-detection.
Map them on the dashboard: Discord → Channels & Defaults.
#match-recording → ranked, results posted to #match-results
Matches recorded in the mapped channel use that leaderboard automatically. /config channel shows a channel's mapping in Discord.
Backup & Import
Export your leaderboard data or import from another source.
/backup export leaderboard:"default" Exports all data as a JSON file
/backup import data_file:[attach-file] leaderboard:"default" Imports data from a JSON file
Team Management
Create persistent teams with custom names and track their ratings separately.
/team_admin create team_id:"team-alpha" team_size:3 members:@player1 @player2 @player3 Creates a team called "team-alpha" with 3 members
/record_match team_alias 1st_place:team-alpha 2nd_place:team-beta Record a match using team names instead of @mentions
Hide/Show Players
Hide specific players from leaderboards (useful for bots, test accounts, etc.). Hiding and showing is done on the dashboard — your league → Players for every board at once, or a leaderboard's own Players page to hide someone on just that board.
/config hidden Lists everyone hidden across every leaderboard
/config hidden leaderboard:"my-league" Lists who's hidden on one board — including players auto-hidden for inactivity
Troubleshooting
"Leaderboard not found"
The leaderboard ID doesn't exist or you're using the wrong ID.
- • Use
/leaderboard listto see available leaderboards - • Check for typos in the leaderboard name
- • Set a default leaderboard on the dashboard, under Discord → Channels & Defaults
"You don't have permission"
Some commands require admin permissions.
- • Check if you have the "Manage Server" permission in Discord
- • Ask a server admin to run the command
- • Recording matches typically doesn't require admin permissions
Bot not responding
The bot may be offline or missing permissions.
- • Check if the bot is online (shows in the member list)
- • Ensure the bot has "Send Messages" permission in the channel
- • Try using the command in a different channel
- • Re-invite the bot if commands don't appear
Tier roles not being assigned
The bot can't assign roles higher than its own.
- • Move the Team Up bot role above the tier roles in Server Settings → Roles
- • Ensure the bot has "Manage Roles" permission
- • Check that the tier is configured correctly with
/config tiers
Rating changes seem wrong
Rating calculations depend on your configuration.
- • Check current settings with
/config leaderboard - • Use the Elo Calculator to test scenarios
- • Rating changes depend on the difference between players (upsets = bigger swings)
- • K-factor controls the magnitude of all changes
Player not appearing on leaderboard
Players may be hidden or not meet ranking requirements.
- • Check Matches Required for Ranking on the leaderboard's Rating Rules page (a player needs that many matches first)
- • Check whether the player is hidden with
/config hidden - • Check Inactive Days Threshold on the same page: inactive players may be hidden