Get information about the bot and important update notices
/help Get information about the bot and important update notices
Documentation
Every command the Team Up bot registers — 30 slash commands and 4 right-click message actions, 88 runnable subcommands in total. Search it, or filter by what it does and who can run it.
This page is generated from the same command list the bot registers with Discord, so it always matches what you see in the client. 21 commands require Manage Server (or Administrator) by default — see command permissions to open them up to your members.
Start here if you have just added the bot.
Get information about the bot and important update notices
/help Get information about the bot and important update notices
Record results, adjust ratings, and fix mistakes. Includes the right-click message actions that parse results out of a chat message.
Challenge one or more players to a match
Name one opponent for a 1v1, or up to three more (opponent_2, opponent_3, opponent_4) for a free-for-all where everyone reports their own finishing place and ratings are scored by placement. The options count opponents, so you are not one of them — naming three opponents makes a 4-player match. The challenge message shows each player's exact best case (finishing 1st) and worst case (finishing last); middle placements land between them. The optional `message` option attaches a short note to the challenge ("Bo3 tonight at 8pm") — it is shown to the players and nothing more; it does not set the map or any other match setting. Set the leaderboard's map voting strategy to **Challenger Chooses** and `/challenge` will ask you to pick the map from the pool before it sends the challenge, so the players agree to a settled map rather than voting on one after. The same picker can ask for **match conditions** — any match-level choice stats the leaderboard nominates under Discord Management → Challenge Command, such as tees, wind or ruleset. They show on the challenge so opponents know what they are accepting, and they are recorded with the match, so nobody enters them again afterwards. Declining a multi-player challenge never records a loss — forfeit-on-decline applies to 1v1 only. Cooldowns (with an issue-time or resolution-time clock), allow/block lists for who can challenge and who can be challenged, forfeit-on-decline roles, the response timer, the player cap, whether everyone or just anyone has to accept, and whether the resulting match is recorded at all are set per leaderboard under Discord Management → Challenge Command. A challenge can be called off with the Cancel button — usable by the challenger or a server admin, never by the challenged player — or from Discord Management → Challenge Command → Open Challenges. Cancelling records nothing and never counts as a forfeit.
/challenge Challenge one or more players to a match
| Option | Type | What it does |
|---|---|---|
| opponent * | user | The player you're challenging (1v1) |
| opponent_2 | user | Add a 2nd opponent — makes it a 3-player free-for-all |
| opponent_3 | user | Add a 3rd opponent — makes it a 4-player free-for-all |
| opponent_4 | user | Add a 4th opponent — makes it a 5-player free-for-all |
| message | text | A short note shown with the challenge (e.g. "Bo3 tonight at 8pm") |
* required
Record match results and update player ratings
/record_match elo Record match results and update ratings for any game format (1v1, 2v2, FFA, etc)
| Option | Type | What it does |
|---|---|---|
| 1st_place * | text | First place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 2nd_place | text | Second place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 3rd_place | text | Third place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 4th_place | text | Fourth place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 5th_place | text | Fifth place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 6th_place | text | Sixth place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 7th_place | text | Seventh place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 8th_place | text | Eighth place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 9th_place | text | Ninth place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 10th_place | text | Tenth place player(s). For teams, group with parentheses like: (@player1 @player2) |
| leaderboard | text autocomplete | Optional: Leaderboard name. Default: 'default' |
| multiplier | number min 0.01 | Optional: weight this match's Elo change (e.g. 0.5 = half, 2 = double). Default: 1 |
* required
/record_match manual Manually record a match with specific rating changes (works for single player adjustments too)
| Option | Type | What it does |
|---|---|---|
| 1st_place * | text | First place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 1st_place_delta * | integer | Rating change for 1st place (positive to increase, negative to decrease) |
| 2nd_place | text | Second place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 2nd_place_delta | integer | Rating change for 2nd place (positive to increase, negative to decrease) |
| 3rd_place | text | Third place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 3rd_place_delta | integer | Rating change for 3rd place (positive to increase, negative to decrease) |
| 4th_place | text | Fourth place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 4th_place_delta | integer | Rating change for 4th place (positive to increase, negative to decrease) |
| 5th_place | text | Fifth place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 5th_place_delta | integer | Rating change for 5th place (positive to increase, negative to decrease) |
| 6th_place | text | Sixth place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 6th_place_delta | integer | Rating change for 6th place (positive to increase, negative to decrease) |
| 7th_place | text | Seventh place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 7th_place_delta | integer | Rating change for 7th place (positive to increase, negative to decrease) |
| 8th_place | text | Eighth place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 8th_place_delta | integer | Rating change for 8th place (positive to increase, negative to decrease) |
| 9th_place | text | Ninth place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 9th_place_delta | integer | Rating change for 9th place (positive to increase, negative to decrease) |
| 10th_place | text | Tenth place player(s). For teams, group with parentheses like: (@player1 @player2) |
| 10th_place_delta | integer | Rating change for 10th place (positive to increase, negative to decrease) |
| leaderboard | text autocomplete | Optional: Leaderboard name. Default: 'default' |
* required
/record_match quick Quick 1v1 match recording - a faster way to log simple 1v1 matches
| Option | Type | What it does |
|---|---|---|
| opponent * | user | Tag your opponent (@player) |
| winner | text | Who won the match? Choices: me, opponent |
| leaderboard | text autocomplete | Optional: Leaderboard name. Default: 'default' |
| multiplier | number min 0.01 | Optional: weight this match's Elo change (e.g. 0.5 = half, 2 = double). Default: 1 |
* required
/record_match team_alias Record match results using predefined team names (requires teams created with /team_admin)
| Option | Type | What it does |
|---|---|---|
| 1st_place * | text | First place team name (use team alias, not @mentions) |
| 2nd_place | text | Second place team name (use team alias, not @mentions) |
| 3rd_place | text | Third place team name (use team alias, not @mentions) |
| 4th_place | text | Fourth place team name (use team alias, not @mentions) |
| 5th_place | text | Fifth place team name (use team alias, not @mentions) |
| 6th_place | text | Sixth place team name (use team alias, not @mentions) |
| 7th_place | text | Seventh place team name (use team alias, not @mentions) |
| 8th_place | text | Eighth place team name (use team alias, not @mentions) |
| 9th_place | text | Ninth place team name (use team alias, not @mentions) |
| 10th_place | text | Tenth place team name (use team alias, not @mentions) |
| 11th_place | text | Eleventh place team name (use team alias, not @mentions) |
| 12th_place | text | Twelfth place team name (use team alias, not @mentions) |
| 13th_place | text | Thirteenth place team name (use team alias, not @mentions) |
| 14th_place | text | Fourteenth place team name (use team alias, not @mentions) |
| 15th_place | text | Fifteenth place team name (use team alias, not @mentions) |
| 16th_place | text | Sixteenth place team name (use team alias, not @mentions) |
| 17th_place | text | Seventeenth place team name (use team alias, not @mentions) |
| 18th_place | text | Eighteenth place team name (use team alias, not @mentions) |
| 19th_place | text | Nineteenth place team name (use team alias, not @mentions) |
| 20th_place | text | Twentieth place team name (use team alias, not @mentions) |
| 21st_place | text | Twenty-first place team name (use team alias, not @mentions) |
| 22nd_place | text | Twenty-second place team name (use team alias, not @mentions) |
| 23rd_place | text | Twenty-third place team name (use team alias, not @mentions) |
| leaderboard | text autocomplete | Optional: Leaderboard name. Default: 'default' |
| multiplier | number min 0.01 | Optional: weight this match's Elo change (e.g. 0.5 = half, 2 = double). Default: 1 |
* required
/record_match stats Record a match where rating changes are calculated from custom stat values (Stat Points mode)
| Option | Type | What it does |
|---|---|---|
| players * | text | Player(s) to record stats for (e.g., @player1 @player2) |
| leaderboard | text autocomplete | Optional: Leaderboard name. Default: 'default' |
* required
/record_match undo Undo the last recorded match in this leaderboard
| Option | Type | What it does |
|---|---|---|
| leaderboard | text autocomplete | Name of the leaderboard (defaults to 'default') |
* required
/record_match screenshot Read a post-match scoreboard screenshot with AI and record it after you confirm
| Option | Type | What it does |
|---|---|---|
| screenshot * | attachment | Screenshot of the post-match scoreboard (PNG/JPG) |
| players * | text | @mention everyone in the match (the AI matches in-game names to these members) |
| leaderboard | text autocomplete | Name of the leaderboard (defaults to 'default') |
* required
/set_rating player Set a player's rating manually
| Option | Type | What it does |
|---|---|---|
| player * | user | The player to set the rating for |
| rating * | integer | The new rating to set |
| rating_type | text | Type of rating to set (uses default if not specified) Choices: player_global_all, player_global_even, player_global_uneven, player_broad, player_specific, player_choices |
| leaderboard | text autocomplete | The leaderboard to set the rating on (defaults to 'default') |
| team_size | integer min 1 | Team size (required for Player Broad rating type) |
| versus | text | Match format (required for Player Specific rating type e.g. '2v2', '1v1v1') |
| matches | integer min 0 | Number of matches played (optional) |
* required
/set_rating team Set a team's rating manually
| Option | Type | What it does |
|---|---|---|
| members * | text | The team members (mention multiple users) |
| rating * | integer | The new rating to set |
| rating_type | text | Type of rating to set (uses default if not specified) Choices: team_broad, team_specific |
| leaderboard | text autocomplete | The leaderboard to set the rating on (defaults to 'default') |
| team_size | integer min 1 | Team size (required for Team Broad rating type) |
| versus | text | Match format (required for Team Specific rating type e.g. '2v2', '1v1v1') |
| matches | integer min 0 | Number of matches played (optional) |
* required
Right-click a message → Apps → Mobile Result Format. Same as PC Result Format, but each command is posted as its own message so it can be copied with one tap on mobile.
Mobile Result Format Right-click a message → Apps → PC Result Format. Parses the message into ready-made `/record_match elo` commands inside code blocks, for copy-paste on desktop.
PC Result Format Right-click a message → Apps → Record Result. Now an alias of Parse Game Stats — same parser, same preview, same Record Match button. Kept for discoverability and slated for deprecation.
Record Result Right-click a message → Apps → Parse Game Stats. Reads match results and per-player stats out of the message text (e.g. `(map=dust) 1 @player1 (kills=3) 2 @player2 (kills=1)`) and shows a preview with a Record Match button.
Parse Game Stats /score Submit your team's score for a cumulative match
| Option | Type | What it does |
|---|---|---|
| score * | number | Your team's score for this round |
* required
Queues that form matches automatically, hosted lobbies players join by button, map pools, and position selection.
/host Create a matchmaking lobby for other players to join.
| Option | Type | What it does |
|---|---|---|
| lobby * | text | The description of your matchmaking lobby |
| versus * | text | Ex. 5v5, 10v10 |
| team_formation | text | The way teams are selected when the match starts. Choices: players_choose, random, random_anonymous, captains_host_picks, balance_elo, no_teams |
| leaderboard | text autocomplete | Display Elo ratings from a leaderboard of your choosing. Enter the leaderboard name. |
| custom_invite_code | text | Share a code for the game server if needed. Ex. 12345 |
| match_result | text | How match results affect ratings and who approves them. Choices: disabled, ranked, ranked_admin, ranked_admin_decide, unranked, unranked_admin, unranked_admin_decide |
| competitive_format | text | Single match (auto-close after recording) or endless (multiple matches per lobby). Choices: single_match, endless_matches |
* required
/queue_ffa headless Automatic matchmaking queue
| Option | Type | What it does |
|---|---|---|
| queue_name * | text | Unique name for this queue (max 32 chars) |
| min_players * | integer min 2 | Minimum players required to start a match (default: 2) |
| title | text | Display title for the queue |
| description | text | Description of the queue |
| max_players | integer min 2 | Maximum players in a match (default: min_players) |
| join_grace_period | integer min 0 | Minutes to wait for more players after minimum is reached (default: 2) |
| leaderboard | text autocomplete | Leaderboard to use for Elo ratings (defaults to 'default') |
* required
/queue_ffa hosted User-hosted lobby launcher
| Option | Type | What it does |
|---|---|---|
| queue_name * | text | Unique name for this launcher (max 32 chars) |
| min_players * | integer min 2 | Minimum players required to start a match (default: 2) |
| title | text | Display title for the launcher |
| description | text | Description of the launcher |
| max_players | integer min 2 | Maximum players in a match (default: min_players) |
| leaderboard | text autocomplete | Leaderboard to use for Elo ratings (defaults to 'default') |
* required
/queue_coop headless Automatic matchmaking queue
| Option | Type | What it does |
|---|---|---|
| queue_name * | text | Unique name for this queue (max 32 chars) |
| min_players * | integer min 2 | Minimum players required to start a match (default: 2) |
| title | text | Display title for the queue |
| description | text | Description of the queue |
| max_players | integer min 2 | Maximum players in a match (default: 8) |
| join_grace_period | integer min 0 | Minutes to wait for more players after minimum is reached (default: 2) |
* required
/queue_coop hosted User-hosted lobby launcher
| Option | Type | What it does |
|---|---|---|
| queue_name * | text | Unique name for this launcher (max 32 chars) |
| title | text | Display title for the launcher |
| description | text | Description of the launcher |
| party_size | integer 2–20 | Number of players needed to fill a lobby (default: 4) |
* required
/queue_versus headless Automatic matchmaking queue
| Option | Type | What it does |
|---|---|---|
| queue_name * | text | Unique name for this queue (max 32 chars) |
| team_size * | integer 1–25 | Number of players per team (always 2 teams) |
| title | text | Display title for the queue |
| description | text | Description of the queue |
| leaderboard | text autocomplete | Leaderboard to use for Elo ratings (defaults to 'default') |
| queue_password | text | Password required to join this queue (leave empty for no password) |
* required
/queue_versus hosted User-hosted lobby launcher
| Option | Type | What it does |
|---|---|---|
| queue_name * | text | Unique name for this launcher (max 32 chars) |
| team_size * | integer min 1 | Number of players per team (e.g., 1 for 1v1, 2 for 2v2) |
| title | text | Display title for the launcher |
| description | text | Description of the launcher |
| leaderboard | text autocomplete | Leaderboard to use for Elo ratings (defaults to 'default') |
* required
Create a team-based queue or lobby launcher for predefined teams
/queue_team headless Automatic matchmaking queue
| Option | Type | What it does |
|---|---|---|
| queue_name * | text | Unique name for this queue (max 32 chars) |
| team_size * | integer min 1 | Size of teams that can join this queue (e.g., 5 for 5-player teams) |
| title | text | Display title for the queue |
| description | text | Description of the queue |
| leaderboard | text autocomplete | Leaderboard to use for team ratings (defaults to 'default') |
* required
/queue_team hosted User-hosted lobby launcher
| Option | Type | What it does |
|---|---|---|
| queue_name * | text | Unique name for this launcher (max 32 chars) |
| team_size * | integer min 1 | Size of predefined teams that can join |
| title | text | Display title for the launcher |
| description | text | Description of the launcher |
| leaderboard | text autocomplete | Leaderboard to use for team ratings (defaults to 'default') |
* required
Create an anonymous queue or lobby launcher (random hidden teams)
/queue_anonymous headless Automatic matchmaking queue
| Option | Type | What it does |
|---|---|---|
| queue_name * | text | Unique name for this queue (max 32 chars) |
| team_1_size * | integer 1–25 | Number of players on team 1 |
| team_2_size * | integer 1–25 | Number of players on team 2 |
| title | text | Display title for the queue |
| description | text | Description of the queue |
| leaderboard | text autocomplete | Leaderboard to use for Elo ratings (defaults to 'default') |
* required
/queue_anonymous hosted User-hosted lobby launcher
| Option | Type | What it does |
|---|---|---|
| queue_name * | text | Unique name for this launcher (max 32 chars) |
| team_1_size * | integer 1–25 | Number of players on team 1 |
| team_2_size * | integer 1–25 | Number of players on team 2 |
| title | text | Display title for the launcher |
| description | text | Description of the launcher |
* required
/queue_manage list List all active matchmaking queues
/queue_manage repost Re-post a queue message so it's the newest message again, or move it to another channel
| Option | Type | What it does |
|---|---|---|
| queue_name * | text autocomplete | Name of the queue to re-post |
| channel | channel | Channel to post it in (defaults to where it already is) |
| silent | true/false | Re-post without pinging the open-ping role (for config changes) |
* required
/queue_manage unpost Take a queue message down without deleting the queue, its settings or its players
| Option | Type | What it does |
|---|---|---|
| queue_name * | text autocomplete | Name of the queue to take down |
* required
/queue_manage delete Delete a matchmaking queue
| Option | Type | What it does |
|---|---|---|
| queue_name * | text autocomplete | Name of the queue to delete |
* required
/queue_manage clear_stuck Clear stuck/orphaned hosted lobbies blocking players from joining new ones
| Option | Type | What it does |
|---|---|---|
| player | user | Only clear lobbies blocking this player (leave empty to sweep the whole server) |
* required
/map_vote Start a map vote for players
| Option | Type | What it does |
|---|---|---|
| players | text | Players voting (comma-separated mentions, e.g., @user1, @user2) |
| team_red_players | text | Team Red players (comma-separated mentions, for team-based voting) |
| team_blue_players | text | Team Blue players (comma-separated mentions, for team-based voting) |
| map_pool | text autocomplete | Map pool to use (uses channel → server default if not specified) |
| strategy | text | Voting strategy Choices: simple, captains_ban_with_reroll, stage_striking, stage_striking_counterpick |
* required
Post and manage leaderboards, rank tiers, server defaults, and rating visibility.
/leaderboard display_leaderboard Create an auto-updating leaderboard message in the current channel
| Option | Type | What it does |
|---|---|---|
| rating_type * | text | Type of rating to display Choices: player, team, team_alias, player_choices, choice, player_global_even, player_global_uneven |
| leaderboard | text autocomplete | Name of the leaderboard (defaults to 'default') |
| team_size | integer min 1 | Filter by team size (e.g., 2 for duos, 3 for trios) |
| versus | text | Filter by match format (e.g., '2v2', '3v3', '1v1v1') |
| limit | integer 1–250 | Number of players/teams to display (max 250) |
| show_rating | true/false | Show player ratings (default: Yes) |
| show_record | true/false | Show win/loss/draw record |
| show_winrate | true/false | Show win rate percentage |
| show_count | true/false | Show match count for each player |
| ordinal_suffix | true/false | Use ordinal format for rankings (4th instead of 4.) |
| custom_link | text | Custom URL to replace the default leaderboard website link (PRO) |
| rank_by | text | How to rank players (default: Rating) Choices: rating, wins, net_wins, win_rate, matches |
* required
/leaderboard display_history Create a message showing recent matches
| Option | Type | What it does |
|---|---|---|
| leaderboard | text autocomplete | Name of the leaderboard (defaults to 'default') |
| rating_type | text | Type of rating to display Choices: player_global_all, player_global_even, player_global_uneven, player_broad, player_specific, team_broad, team_specific, team_alias_broad, team_alias_specific, player_choices, choice |
| player | user | Filter matches to only show those involving this player |
| team_size | integer min 1 | Team size for broad rating types (e.g., 2 for 2v2) |
| versus | text | Match format for specific rating types (e.g., '2v2', '1v1v1') |
| limit | integer 1–25 | Number of recent matches to display (max 25) |
* required
/leaderboard list View all leaderboards for this server
/ratings View your ratings across featured leaderboards
| Option | Type | What it does |
|---|---|---|
| user | user | Player to view ratings for (defaults to yourself) |
* required
/stats view Privately view stats — only you see the result
| Option | Type | What it does |
|---|---|---|
| leaderboard * | text autocomplete | Public leaderboard to pull stats from |
| user | user | Player to look up (defaults to yourself) |
* required
Look up stats and open the profile and branding settings that are edited on the web dashboard.
View your own player statistics (ephemeral — only you can see it)
/mystats View your own player statistics (ephemeral — only you can see it)
| Option | Type | What it does |
|---|---|---|
| leaderboard | text autocomplete | Name of the leaderboard (defaults to 'default') |
| rating_type | text | Type of rating to display (defaults to global) Choices: player_global_all, player_global_even, player_global_uneven, player_broad, player_specific, player_choices |
| team_size | integer min 1 | Team size for broad rating types (e.g., 2 for 2v2, 2v2v2, etc) |
| versus | text | Match format for specific rating types (e.g., '2v2', '1v1v1') |
* required
/player stats View detailed player statistics and rating history
| Option | Type | What it does |
|---|---|---|
| user | user | Player to view stats for (defaults to yourself) |
| leaderboard | text autocomplete | Name of the leaderboard (defaults to 'default') |
| rating_type | text | Type of rating to display (defaults to global) Choices: player_global_all, player_global_even, player_global_uneven, player_broad, player_specific, player_choices |
| team_size | integer min 1 | Team size for broad rating types (e.g., 2 for 2v2, 2v2v2, etc) |
| versus | text | Match format for specific rating types (e.g., '2v2', '1v1v1') |
* required
/player compare Compare stats between two players
| Option | Type | What it does |
|---|---|---|
| player_to_compare * | user | Player to compare with (if no 'compare_with' is given, compares with you) |
| compare_with | user | Optional: Compare with this player instead of yourself |
| leaderboard | text autocomplete | Name of the leaderboard (defaults to 'default') |
| rating_type | text | Type of rating to display (defaults to global) Choices: player_global_all, player_global_even, player_global_uneven, player_broad, player_specific, player_choices |
| team_size | integer min 1 | Team size for broad rating types (e.g., 2 for 2v2) |
| versus | text | Match format for specific rating types (e.g., '2v2', '1v1v1') |
* required
View profile & branding settings, set your display name, or open the web dashboard
/profile server View the server / league identity settings and get the edit link
/profile player View your (or another player's) profile settings and get the edit link
| Option | Type | What it does |
|---|---|---|
| player | user | The player to view (leave blank for your own profile) |
* required
/profile name Set your own display name (leave blank to go back to your Discord name)
| Option | Type | What it does |
|---|---|---|
| name | text | Your display name, up to 32 characters (leave blank to reset) |
* required
/profile team View a team's profile settings and get the edit link
| Option | Type | What it does |
|---|---|---|
| team_id | text autocomplete | Team alias id (leave blank to open the teams list) |
* required
/profile leaderboard View a leaderboard's identity settings and get the edit link
| Option | Type | What it does |
|---|---|---|
| leaderboard | text autocomplete | Leaderboard name (defaults to "default") |
* required
Named teams with their own rosters and ratings.
View and manage team profiles and statistics
/team stats View detailed team statistics and rating history
| Option | Type | What it does |
|---|---|---|
| team_name * | text autocomplete | Team to view stats for (team alias) |
| leaderboard | text autocomplete | Name of the leaderboard (defaults to 'default') |
| team_size | integer min 1 | Only for a per-size rating (e.g. 5 for 5v5). Omit for the overall team rating |
| versus | text | Only for an uneven-format rating (e.g. '2v3', '1v1v2'). Omit for the overall team rating |
| time_period | text | Time period for stats Choices: all, 30days, 90days, 10matches, 25matches |
* required
/team compare Compare statistics between two teams
| Option | Type | What it does |
|---|---|---|
| first_team_name * | text autocomplete | First team to compare (team alias) |
| second_team_name * | text autocomplete | Second team to compare (team alias) |
| leaderboard | text autocomplete | Name of the leaderboard (defaults to 'default') |
| team_size | integer min 1 | Only for a per-size rating (e.g. 5 for 5v5). Omit for the overall team rating |
| versus | text | Only for an uneven-format rating (e.g. '2v3', '1v1v2'). Omit for the overall team rating |
* required
Create and manage teams
/team_admin create Create a new team with specified size and optional members
| Option | Type | What it does |
|---|---|---|
| team_id * | text | Unique identifier for the team |
| team_size * | integer min 1 | Number of players on this team |
| members | text | Initial team members (mention multiple users) - optional |
* required
/team_admin list List all teams on this server
| Option | Type | What it does |
|---|---|---|
| team_size | integer min 1 | Filter teams by size (optional) |
* required
/team_admin modify Modify an existing team's roster or size
| Option | Type | What it does |
|---|---|---|
| team_id * | text autocomplete | Identifier of the team to modify |
| members | text | Updated team members (mention users) - omit to remove all members |
| team_size | integer min 1 | Updated maximum team size |
* required
/team_admin add_member Add a single member to an existing team
| Option | Type | What it does |
|---|---|---|
| team_id * | text autocomplete | Identifier of the team |
| player * | user | Player to add to the team |
* required
/team_admin remove_member Remove a single member from an existing team
| Option | Type | What it does |
|---|---|---|
| team_id * | text autocomplete | Identifier of the team |
| player * | user | Player to remove from the team |
* required
/team_admin set_captain Set or remove the captain for a team (captains submit match results)
| Option | Type | What it does |
|---|---|---|
| team_id * | text autocomplete | Identifier of the team |
| captain | user | Player to designate as captain (omit to remove captain) |
* required
/team_admin delete Delete an existing team
| Option | Type | What it does |
|---|---|---|
| team_id * | text autocomplete | Name of the team to delete |
| confirmation * | text | Confirm deletion of the team Choices: no, confirm |
* required
Bracket schedules and live tournament messages in Discord. Tournaments are created and run from the web dashboard.
Tournament schedule and live tournament messages
/tournaments schedule Post the tournament schedule — members register right from its buttons
| Option | Type | What it does |
|---|---|---|
| filter | text | Which tournaments to show (default: upcoming & live) Choices: upcoming, past |
* required
/tournaments start Draw the bracket and start a tournament
| Option | Type | What it does |
|---|---|---|
| tournament * | text autocomplete | Which tournament to start |
| drop_no_shows | true/false | Drop anyone who did not check in (default: follow the check-in window) |
* required
/tournaments view Privately preview a tournament embed — only you see the result
| Option | Type | What it does |
|---|---|---|
| tournament * | text autocomplete | Which tournament to view |
* required
/tournaments display Post the live tournament message — auto-updates as the event progresses
| Option | Type | What it does |
|---|---|---|
| tournament * | text autocomplete | Which tournament to display |
* required
Rating math, server-wide defaults, per-channel behaviour, and custom match statistics.
View server, leaderboard, tier, channel and visibility configuration
One viewer for every admin config surface, replacing the former `/leaderboard_config`, `/server_config`, `/tiers`, `/channel_config`, `/default_leaderboard`, `/default_rating_type` and `/hide_rating` commands. `leaderboard` shows a board's rating settings — rating calculation, caps, ranking thresholds, farming detection, casual policy, choice ratings and scoreboard instructions — each labelled with where its value came from (board override, server default, or built-in default). `server` shows the league-wide defaults plus the audit channel, record nicknames, the server default leaderboard and rating type, and featured ratings. `tiers` shows a board's Elo and rank tiers with the Discord role each grants. `channel` shows one channel's leaderboard mapping and `channels` shows every mapping on the server. `hidden` lists players missing from the rankings — hidden by an admin league-wide or on one board, plus the ones a board auto-hides for inactivity. Each reply carries buttons to the dashboard page that owns the section, since that is where all of it is edited. The exception is `featured_rating add|remove|list`, which still writes from Discord: featured ratings (what `/ratings` shows) are the one setting with no dashboard editor.
/config leaderboard A leaderboard's rating settings, and where to edit them
| Option | Type | What it does |
|---|---|---|
| leaderboard | text autocomplete | Leaderboard (defaults to channel) |
* required
/config server Server-wide defaults, and where to edit them
/config tiers A leaderboard's tier roles, and where to edit them
| Option | Type | What it does |
|---|---|---|
| leaderboard | text autocomplete | Name of the leaderboard (defaults to 'default') |
* required
/config channel One channel's leaderboard mapping (defaults to this channel)
| Option | Type | What it does |
|---|---|---|
| channel_id | channel | Channel to view configuration for (defaults to current channel) |
* required
/config channels Every channel mapping on this server
/config featured_rating add Add a featured rating
| Option | Type | What it does |
|---|---|---|
| leaderboard * | text autocomplete | Leaderboard to feature |
| rating_type * | text | Type of rating to display Choices: player_global_all, player_global_even, player_global_uneven, player_broad, player_specific, player_choices, choice |
| team_size | integer 1–10 | Team size (required for By Team Size rating type) |
| versus | text | Match format (required for By Format, e.g., 1v1, 2v2v2) |
| custom_url | text | Custom URL slug for direct link to this ranking (e.g. cs-ranked). Requires PRO. |
* required
/config featured_rating remove Remove a featured rating
| Option | Type | What it does |
|---|---|---|
| position * | integer min 1 | Position to remove (use list to see positions) |
* required
/config featured_rating list List all configured featured ratings
Export, import, and permanent deletion. Take a backup before anything in the danger zone.
Manage leaderboard data import and export operations
/backup export Export leaderboard data as JSON file
| Option | Type | What it does |
|---|---|---|
| leaderboard | text autocomplete | The leaderboard to export (defaults to "default") |
* required
/backup import Import leaderboard data from a JSON file
| Option | Type | What it does |
|---|---|---|
| data_file * | attachment | The JSON file containing the leaderboard data |
| leaderboard | text autocomplete | The leaderboard to import to (defaults to "default") |
* required
DANGER: Permanently delete leaderboards and server data - Admin only
Every action here is permanent and cannot be undone. Run /backup export first.
/danger_zone delete_leaderboard PERMANENTLY delete a specific leaderboard - cannot be undone
| Option | Type | What it does |
|---|---|---|
| leaderboard * | text autocomplete | Name of the leaderboard to delete |
| confirmation * | text | Confirm permanent deletion of this leaderboard Choices: no, confirm |
* required
/danger_zone delete_user Delete selected data for a user from the system
| Option | Type | What it does |
|---|---|---|
| user_id * | text | Discord user ID to delete (works even if user has left the server) |
| delete_ratings * | true/false | Delete user's ratings (removes from leaderboards) |
| delete_player_matches * | true/false | Delete user's individual match records |
| delete_head_to_head * | true/false | Delete user's head-to-head statistics |
| delete_metadata * | true/false | Delete user's profile data (WARNING: Historical matches will lose player names) |
| confirmation * | text | Confirm deletion of user data Choices: no, confirm |
* required
/danger_zone wipe_server PERMANENTLY delete ALL leaderboards and data - cannot be undone
| Option | Type | What it does |
|---|---|---|
| confirmation * | text | Confirm permanent deletion of ALL server data Choices: no, confirm |
| verify_id * | text | Type your server ID to confirm deletion |
* required
API keys and webhooks for wiring Team Up into your own systems.
View webhooks, map pools and custom stats
View-only, and narrower than it used to be. `webhooks` lists registered webhooks, `map_pools` lists map pools (optionally one pool), and `stats` lists a leaderboard's custom stats — each with a link to the dashboard page that edits it: Webhooks, Discord Management → Map Pools, and the leaderboard's Stats page. Map pools cover Matchmaking & Lobbies and custom stats cover match recording, despite filing here. **API keys are no longer in Discord at all** — generate, view and revoke them on the dashboard's API Keys page, where they are shown masked and revealed on click rather than reprinted in chat.
/settings webhooks List registered webhooks, with a link to manage them
/settings map_pools List map pools, with a link to edit them on the web
| Option | Type | What it does |
|---|---|---|
| pool | text autocomplete | The map pool to list (leave empty to list all pools) |
* required
/settings stats List a leaderboard's custom stats, with a link to edit them
| Option | Type | What it does |
|---|---|---|
| leaderboard | text autocomplete | Leaderboard to list stats for (defaults to 'default') |
* required
Subscription status and vote-reward loot crates.
Vote-rewards loot crates — check your points and open crates for cosmetics
/crate status Check your points, crates, vote streak, and collection
/crate open Open your crates for a chance at cosmetics (or points back)
| Option | Type | What it does |
|---|---|---|
| count | integer | How many crates to open (default 1) Choices: 1, 5, 10 |
* required
/crate buy Spend vote points to buy crates
| Option | Type | What it does |
|---|---|---|
| count * | integer min 1 | How many crates to buy (10 points each) |
* required
/crate leaderboard See the top voters
| Option | Type | What it does |
|---|---|---|
| scope | text | Which ranking to show (default: this month) Choices: monthly, alltime, streak |
* required
Season Pass progress — XP, tier, and what the next tier unlocks
Season XP is earned by playing, not by paying. Every match you are recorded in during the season is worth 10 XP, up to 5 matches per UTC day, and 100 XP is one tier — so a tier is roughly ten matches and the full 12-tier ladder is about 120 over a 13-week season. The daily cap exists because most leagues self-report results; it bounds what a farming day can be worth. XP counts across every league you play in, and it accrues against your Discord account whether or not you have a Team Up web account yet — sign in later and the progress is already there. Everyone progresses the free track; the one-time season pass unlocks the premium track on the SAME tiers you have already reached, so buying late never costs you earned rewards. Rewards are vote-reward points, loot crates and cosmetics only — nothing on either track changes a rating, a placement or a queue. Rewards are claimed on the web at /app/season-pass and claims stay open for 30 days after the season ends. Pass-exclusive cosmetics are never sold separately and never enter crate or voucher pools. Pass `user` to look up someone else's tier and XP; the reply is only visible to you either way.
/season Season Pass progress — XP, tier, and what the next tier unlocks
| Option | Type | What it does |
|---|---|---|
| user | user | Whose progress to show (default: yours) |
* required
Gift crates or cosmetics to another member
/gift crate Give crates you already own — sent instantly, no payment
| Option | Type | What it does |
|---|---|---|
| user * | user | Who to send crates to |
| count * | integer min 1 | How many crates to gift |
* required
/gift cosmetic Buy a cosmetic (or a pick-your-own voucher) for someone else
| Option | Type | What it does |
|---|---|---|
| item * | text autocomplete | What to gift — start typing to search |
* required
/gift send Post a gift link you already bought, and ping who it is for
| Option | Type | What it does |
|---|---|---|
| link * | text | The claim link (or code) from your checkout page |
| user * | user | Who the gift is for |
* required
Manage subscription plans and status for this server
/subscription activate Activate a purchased subscription
/subscription buy View available subscription plans to purchase
/subscription status View the server's current subscription status and features
21 of the 34 commands require Manage Server until you say otherwise — full Administrator is not needed. Discord controls that under Server Settings → Integrations → Team Up, where you can grant individual commands to roles or members.