Skip to content

Documentation

Tournaments & Brackets

Run single and double elimination tournaments with registration, Elo-based seeding, and live public brackets

Overview

Team Up tournaments take an event from sign-ups to a crowned champion. You create and manage the tournament from the web dashboard, players register from Discord or the web, and everyone follows the bracket on a live public page. Tournaments can link to one of your leaderboards so seeding comes from real Elo ratings and results feed back into the ladder.

The Three Surfaces

  • Web dashboard — create, seed, start, record results
  • Discord/tournaments schedule & live messages with register buttons
  • Public page — live bracket at /l/your-league/t/your-tournament

Tournament Lifecycle

Every tournament moves through these statuses:

setup → registration open →
registration closed → active →
completed (or cancelled)

Creating a Tournament

Tournaments are created from the web dashboard — open your league and head to the Tournaments section. The create form covers:

Identity & Schedule

  • Name & URL slug — the slug becomes the public page address
  • Description — shown on the public page
  • Start time — drives the schedule timeline (optional until you start)
  • Info & rules — markdown field for rules, prize pool, channel links

Competition Settings

  • Data source — optionally link a leaderboard + rating type for seeding and Elo
  • Format — single or double elimination
  • Registration cap — 8, 16, 32, 64, 128, or unlimited (up to 256)
  • Registration mode — self-serve sign-ups or admin-managed roster

Locked after setup: the data source, format, and participant cap can only be changed while the tournament is still in setup. Once registration opens, those settings are fixed so the bracket stays consistent with what players signed up for.

Registration

Rosters can be self-serve (players sign themselves up) or admin-managed (you add every participant). Admins can always add or remove participants from the dashboard, whichever mode is active.

Self-Serve Sign-ups

  • From Discord — members click the Register button on the /tournaments schedule card or the live tournament message
  • From the web — league members sign up on the public tournament page
  • • Registration stays open through the setup and registration open statuses, until the cap is reached
  • • Players can unregister themselves — optionally only until an unregister deadline you set, so the bracket stays stable near start time

Admin-Managed Rosters

  • • Add participants from your league roster in the dashboard's Participants tab
  • • Each participant's Elo is snapshotted when they join the roster
  • • Remove or replace participants any time before the tournament starts
  • • Ideal for invitationals, qualifier-fed brackets, and curated events

Seeding

Seeds determine bracket placement: the #1 seed plays the lowest seed in round one, and top seeds are kept on opposite sides of the bracket so they can only meet late.

Auto-Seed by Elo

One click in the Participants tab orders the whole field by current Elo rating from the linked leaderboard — highest rating gets the #1 seed. Unrated players sort to the bottom.

Requires a linked data source. Available while the tournament is in setup or registration.

Manual Seeding

Drag and drop participants into any order. Useful for qualifier results, standalone tournaments without a leaderboard link, or when you want to hand-craft the storyline.

New sign-ups are appended with the next free seed automatically.

Bracket Formats

Single Elimination

  • • One loss and you're out — N players, N − 1 matches
  • • Works with any field size: the bracket pads to the next power of two and byes resolve automatically in round one
  • • Podium: champion, runner-up, and joint-third semifinalists

Double Elimination

  • • Lose once → drop to the losers bracket; lose twice → out
  • • Winners bracket + losers bracket + a single grand final (winners-bracket champion vs losers-bracket champion)
  • • Requires a power-of-two field: 4, 8, 16, 32…

Round robin and Swiss formats appear in the format picker as coming soon — they're on the roadmap but not playable yet. For round-robin-style play today, run a matchmaking queue for the group stage and seed a bracket from the results.

Running the Tournament

Status transitions live in the dashboard: Open Registration, Close Registration, and Start Tournament. Starting requires at least 2 participants — it locks the roster, compacts the seeds, and generates the bracket.

Recording Results

Pick the winner in the Bracket tab, optionally with per-side scores (e.g. games won in a Bo3) and a match note. The winner advances instantly; in double elimination the loser drops to the losers bracket.

Undo

Recorded the wrong winner? Undo reverses the match and pulls players back out of downstream slots. Undo works top-down — if a later match was already reported, undo that one first. Elo changes from the match are rolled back too.

Completion

Recording the final completes the tournament: the champion is crowned, placements are assigned (1st, 2nd, joint 3rd), the public page switches to its podium view, and a champion announcement posts to Discord.

Elo Integration

When a tournament is linked to a leaderboard, every recorded match is also written to that leaderboard's match history and updates Elo ratings — exactly like a regular recorded match. A strong tournament run moves the ladder.

Standalone tournaments (no data source) skip Elo entirely — the bracket alone decides the outcome. Note that a locked leaderboard blocks tournament match recording until it's unlocked.

Discord Commands

The /tournaments command group keeps your server in sync with the event. It's admin-only by default — grant access to other roles via Server Settings → Integrations in Discord.

/tournaments schedule [filter] Post the tournament schedule

Posts an auto-updating schedule card listing upcoming and live tournaments (or past ones with filter: Past). Members register and unregister right from its buttons. The card refreshes whenever a tournament is created, changes status, fills up, or ends — up to 5 tracked schedule cards per server.

/tournaments view <tournament> Privately preview a tournament

Shows the tournament embed only to you — handy for checking how an event looks before posting it publicly.

/tournaments display <tournament> Post the live tournament message

Posts the public tournament message with a Register button. It auto-updates as the event progresses, and when the final is recorded a separate champion announcement is posted to the same channel — a fresh message, so the win actually notifies the server.

Public Tournament Pages

Every league gets a tournament timeline at /l/your-league/t and every tournament gets its own page at /l/your-league/t/your-tournament. No Discord login needed — share the link anywhere.

The Page Follows the Event

  • Before — schedule, rules, roster, and a register button
  • Live — pannable, zoomable bracket, up-next matches, and a results feed
  • After — champion banner, podium, match history, and final standings

Branding & Visibility

  • • Pages inherit your league's branding, or the linked leaderboard's theme
  • • Per-tournament theme overrides with a live preview in the dashboard
  • • Hide any tournament from the public listing while keeping its direct link working
  • • Players' equipped nameplates show on the bracket and champion banner

Planning Your First Event?

The guide How to Run a Discord Tournament covers formats, seeding fairness, scheduling, and prizes — everything around the bracket itself.

Or start from the feature overview on the tournament bot page.

Want to remove ads? Upgrade to Premium for your Discord server!