Run a Tournament on Pokékipe
Pokékipe's tournament engine runs the full host workflow — bracket creation, seeding, check-in, match management, dispute handling, standings — without you leaving the site. This page is the end-to-end host workflow, in 12 steps, with the engine UI as the active tool.
Bracket types
Single-elim, double-elim, Swiss, round-robin
Cost
Free — no player count cap
Match flow
Auto-report + dispute → host-resolve
Audit
Full trail of host actions, transparent
A clean tournament feels boring to host: matches resolve themselves, disputes are rare, standings publish on schedule. That "boring" outcome is the result of disciplined setup. Spend 20 min configuring; save 2 hours of mid-tournament chaos.
At a glance
Hosting a tournament is a 12-step workflow. The first 4 steps happen pre-tournament (configure, seed, check-in, start). The next 7 happen during play (match lifecycle, auto-report, disputes, host-resolve, deadlines, chat, standings). The last 3 close it out (grand final, edit/cancel, audit).
- Pre-tournament (Steps 1-4)Configure → Seed → Check-in → Start
- During play (Steps 5-10)Match lifecycle, auto-report, disputes, host-resolve, deadlines, standings
- Close-out (Steps 11-12)Grand final (DE), edit/cancel, audit trail
- Bracket typesSingle-elim, double-elim, Swiss (Pokémon Champions standard), round-robin
- Match statespending → ongoing → finished | disputed | forfeited | bye
- Dispute flowMismatched auto-reports → disputed → host-resolve final ruling
Step 1 — Create the tournament
Open the tournament engine, click "Create." The form has 8 fields — name, slug, format, visibility, bracket, max players, timer, description. Each one matters; spending 5 min here saves issues later.
The 8 fields
- Name — What players see on the hub and the detail page. 3–80 characters, anything goes.
- URL slug — The path part after /tournaments/ — lowercase, digits, hyphens. Auto-suggested from the name but editable. Must be unique.
- Format — Gen 9 OU, VGC 2026 Reg H, Gen 8 Ubers… Fixed at creation; can't be changed later.
- Visibility — Public (listed on the hub, anyone can join) or Private (invite-only via a generated code).
- Bracket type — Single-elim, double-elim, round-robin or Swiss. See the next section for the tradeoffs.
- Max players (optional) — Soft cap on registrations. Leave empty for no cap. Double-elim requires at least 4 players.
- Match timer (optional) — Minutes allowed per match once both players are known. If the deadline passes, the match is auto-disputed and the host steps in.
- Description (optional) — Free-form text for rules, schedule, team clauses, prize pool. Shown prominently on the tournament page.
Step 2 — Seed the bracket
Seeding determines who faces whom in round 1. Higher seed = better matchup against lower-seeded players. Pokékipe auto-seeds by ELO if available; you can also manually arrange.
Seeds are auto-assigned in registration order (FIFO) at /start time.
Before launching, you can manually reorder via "Reseed" on the tournament page. Useful for placing top seeds on opposite sides of the bracket (classic pattern: 1 vs 8 in the quarterfinals, 2 vs 7, etc.).
Step 3 — Run check-in
Check-in is the window between "tournament published" and "bracket starts." Players confirm presence; no-shows get auto-removed. Skipping check-in = bracket starts with absent players, who get assigned forfeits.
Check-in is an optional lock that forces players to confirm attendance before the launch. Useful for scheduled events where you want to avoid no-shows in round 1.
Check-in workflow
- Host clicks Open check-in on the tournament page (only during draft/registration).
- Registered players see a Check me in button; clicking flips their status from registered to checked_in.
- When the host clicks Start, any player still in registered (not checked in) is auto-dropped from the bracket.
- Host can also Close check-in at any time to disable it again without starting.
Step 4 — Start the bracket
Once check-in closes, click "Start." The engine generates round 1 matches based on seeds, notifies players, and starts the match timer. From here, the tournament is live.
Ready to launch? Click "Start tournament" (green button, host only). The engine then:
What happens at start
- Locks registrations — nobody else can join.
- Assigns final seeds (respecting any manual reorder you did).
- Generates the round 1 bracket according to your chosen format.
- Auto-advances any byes (e.g. for non-power-of-2 participant counts).
The tournament moves to "ongoing" status, no more sign-ups possible. Players get their first opponent in their notifications feed.
Step 5 — Match lifecycle
Every match in the bracket goes through a defined sequence of states. Knowing the states means knowing what action is required at each point.
Each match follows a well-defined lifecycle. Here are the statuses you might see on the bracket:
The 6 match states
| State | Meaning |
|---|---|
pending | Created, waiting for both players to be known. |
ongoing | Both players confirmed, match in progress on Showdown. |
finished | Winner recorded, bracket advanced. |
disputed | A player flagged the match (or the deadline expired). Host must resolve. |
forfeited | A player gave up (self-forfeit) or was DQ'd by the host. Winner recorded + advance. |
bye | No opponent — player auto-advances. Common in non-power-of-2 brackets. |
Step 6 — Auto-report results
Auto-report is the standard match-resolution flow: both players submit the result; if reports match, the match auto-finalizes. Disagreement flips the match into disputed state for host-resolve.
This is the killer feature on the Pokémon side — you don't manually pick the winner. Once both players are known:
Auto-report flow
- Play the match on Pokémon Showdown as normal.
- At the end, click Save replay on Showdown — you get a replay URL.
- Open the match room in Pokékipe (click the match in the bracket) and paste the URL in the Report result box.
- We fetch the replay, verify both players match the expected pseudos and the format matches, extract the winner from the Showdown log, and close the match. Bracket advances automatically.
If the two players aren't who we expected (wrong replay, pseudo mixup) or if the format doesn't match, the report is rejected with a clear error message. In that case, re-play the match or fall back to "Host resolve" if the incident can't be fixed.
Step 7 — Disputes & forfeits
When auto-report fails (mismatched results), the match goes into disputed. Forfeit is when a player no-shows or concedes mid-match. Both end up at host-resolve.
Disputes
If the match is blocked (no-show opponent, cheating suspicion, server issue, disagreement on the result), a player or the organizer can dispute it. The match moves to `disputed` status with a free-text reason. It's then frozen until the organizer arbitrates via "Host resolve".
Forfeits
Use this when someone has to drop out or didn't show up. Two variants:
- A player forfeits: they can only declare their opponent as winner. Good for self-withdrawal.
- The host forfeits: picks either player as winner. Good for DQ'ing (rule violations, harassment, etc.).
Step 8 — Host resolve
Host resolve is where the host (or co-host) makes the final call on a disputed match. Replay evidence, screenshots, witness reports — all considered, but the host decides. The decision is logged in the audit trail.
After a dispute — or simply when auto-report isn't available — only the organizer can close the match. Click "Host resolve" in the match room, pick the winner from the two players, and it's done.
The resolution is logged in the audit with your user_id, timestamp and chosen winner. It's final: there's no undo (by design — the host's arbitrage is sovereign).
Step 9 — Deadlines & chat
Match deadlines and tournament chat are the two communication tools that keep play moving. Use deadlines aggressively (slow players slow the whole bracket); use chat to broadcast announcements.
Match deadlines
If the tournament has a configured timer, each match that becomes playable gets a deadline = now + timer. A countdown badge shows up on the match in the bracket and in the match room.
When the deadline expires, the match is auto-flagged as disputed with reason `deadline_exceeded`. The organizer then has to step in — extend via a fresh resolution, pick a winner, or cancel.
Tournament chat
Each match has its own chat room, visible only to the two players and the organizer. Use it to coordinate timing, share the Showdown room URL, report a technical problem.
Messages appear in real time via server-sent events — no need to refresh. History is kept after the match ends for up to 30 days, for dispute reference.
Step 10 — Standings & publication
Standings auto-update as matches finish. Once the final match resolves, standings are locked and the tournament is closed. Publication makes the bracket + standings publicly visible (or private depending on config).
For round-robin and swiss brackets, a "Standings" panel shows each player's real-time position. The columns:
Standings columns
- Wins — matches won (including byes and received forfeits).
- Losses — matches lost (including self-forfeits and DQs).
- Played — total matches closed (excludes byes).
- Pending — matches still ahead of you this round.
Step 11 — Grand final (double-elim only)
In double-elim, the grand final is special: the upper-bracket finalist has bracket advantage. If the lower-bracket finalist wins game 1, the bracket resets — they must win twice. Pokékipe handles this automatically.
Double-elim brackets end with a grand final between the upper bracket champion (UB) and the lower bracket champion (LB). The UB arrives with 0 losses, the LB with 1. That's why the system has a reset mechanic.
If the UB champion wins the grand final → the tournament ends (still 0 losses). If the LB champion wins → a bracket reset match is automatically created. Both players are now at 1 loss each. The true winner of this second round takes the tournament.
Step 12 — Edit, cancel, audit trail
Tournaments aren't immutable post-creation — edits before start are free; mid-bracket edits are constrained. Cancellation is final. Every host action is logged in an audit trail for transparency.
Edit + cancel
While the tournament is in draft or registration, the organizer can click "Edit" on the detail page to adjust name, slug, description, visibility, bracket, cap, dates, and timer. The Pokémon format is deliberately not editable after creation — changing it would invalidate auto-report checks.
Audit trail
Every sensitive organizer action (start, resolve, forfeit, cancel, edit) is logged in the "Audit" tab. Visible to the organizer only. Contains action type, author, timestamp and details — useful when a player files a claim or for post-mortem on an incident.
Where to go from here
Hosting is one half of the tournament loop. The other half is competing — see the player-side guides below.
- Tournaments FAQ — /faq/tournaments for the entry-point Q&A on the engine (what is it, can I use it, public vs private).
- Bo3 strategy — Bo3 Tournament Strategy for how to PLAY (vs. host) a Bo3.
- Match preparation — Match Preparation Workflow for player-side prep.
- Pokémon Champions — Pokémon Champions Era covers where Reg M-A community tournaments run.
- Live tools — Tournament engine, Pokémon Champions hub, your account.