Skip to content
Strategy, host workflow14 phút đọc
Strategy, Host workflow

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.
, The host's first principle

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

  • Tên, Cái người chơi thấy trên hub và trang detail. 3–80 ký tự, gì cũng được.
  • URL slug, Phần path sau /tournaments/, chữ thường, số, dấu gạch ngang. Auto-suggest từ tên nhưng sửa được. Phải unique.
  • Format, Gen 9 OU, VGC 2026 Reg H, Gen 8 Ubers… Cố định lúc tạo; không đổi được về sau.
  • Visibility, Public (liệt kê trên hub, ai cũng join được) hoặc Private (chỉ mời qua code được sinh ra).
  • Loại bracket, Single-elim, double-elim, round-robin hay Swiss. Xem section kế tiếp để rõ tradeoff.
  • Số người chơi tối đa (tuỳ chọn), Soft cap cho lượt đăng ký. Để trống nếu không cap. Double-elim cần ít nhất 4 người chơi.
  • Match timer (tuỳ chọn), Số phút cho mỗi trận một khi cả hai người chơi đã biết. Nếu hết hạn, trận tự động bị disputed và host phải vào tay.
  • Mô tả (tuỳ chọn), Text tự do cho luật, lịch, team clause, prize pool. Hiển thị nổi bật trên trang giải.

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.

Seed được gán tự động theo thứ tự đăng ký (FIFO) lúc /start.

Trước khi launch, bạn có thể sắp xếp lại tay qua "Reseed" trên trang giải. Hữu ích để đặt top seed ở hai phía đối diện của bracket (pattern kinh điển: 1 vs 8 ở tứ kết, 2 vs 7, v.v.).

In practice

For competitive Pokémon tournaments, seed by recent ELO ranking from the relevant ladder. For invitational events, use last tournament results. For casual events, random seeding is fine, keeps it fun.

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 là khoá tuỳ chọn buộc người chơi xác nhận có mặt trước giờ khai mạc. Hữu ích cho event lên lịch sẵn nơi bạn muốn tránh no-show ở round 1.

Check-in workflow

  1. Host bấm Open check-in trên trang giải (chỉ trong giai đoạn draft/registration).
  2. Người chơi đã đăng ký thấy nút Check me in; bấm vào sẽ lật status từ registered sang checked_in.
  3. Khi host bấm Start, mọi người chơi còn ở trạng thái registered (chưa check-in) bị auto-drop khỏi bracket.
  4. Host cũng có thể Close check-in bất cứ lúc nào để tắt lại mà không cần start.

In practice

Check-in mặc định tắt. Nếu bạn không mở, tất cả người đăng ký tự động vào lúc start.

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.

Sẵn sàng launch? Click "Start tournament" (nút xanh, chỉ host thấy). Engine sẽ:

What happens at start

  • Khóa đăng ký, không ai vào thêm được.
  • Gán seed cuối (tôn trọng các reorder thủ công bạn đã làm).
  • Sinh bracket vòng 1 theo format bạn chọn.
  • Tự động đẩy bye qua (ví dụ khi số người không phải lũy thừa của 2).

Giải chuyển sang trạng thái "ongoing", không còn đăng ký được nữa. Người chơi nhận đối thủ đầu tiên trong feed thông báo.

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.

Mỗi trận tuân theo một lifecycle rõ ràng. Đây là các trạng thái bạn có thể thấy trên bracket:

The 6 match states

StateMeaning
pendingĐã tạo, đang chờ xác định cả hai người chơi.
ongoingCả hai đã confirm, trận đang diễn ra trên Showdown.
finishedĐã ghi nhận người thắng, bracket đi tiếp.
disputedMột bên flag trận đấu (hoặc deadline đã hết). Host phải xử.
forfeitedMột bên bỏ cuộc (tự xin thua) hoặc bị host DQ. Ghi nhận winner + đi tiếp.
byeKhông có đối thủ, người chơi tự động đi tiếp. Hay gặp ở bracket không phải lũy thừa của 2.

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.

Đây là killer feature bên Pokémon, bạn không phải chọn winner thủ công. Một khi cả hai người chơi đã xác định:

Auto-report flow

  1. Chơi trận trên Pokémon Showdown như bình thường.
  2. Cuối trận, bấm Save replay trên Showdown, bạn có URL replay.
  3. Mở room trận trên Pokékipe (bấm vào trận trong bracket) và paste URL vào ô Report result.
  4. Chúng tôi fetch replay, verify cả hai người chơi khớp với pseudo mong đợi và format khớp, trích winner từ log Showdown, đóng trận. Bracket tự động đẩy tiếp.

Nếu hai người chơi không phải hai người chúng tôi expect (sai replay, lẫn pseudo) hoặc format không khớp, report bị reject với thông báo lỗi rõ ràng. Lúc đó, đánh lại trận hoặc fallback sang "Host resolve" nếu sự cố không sửa được.

In practice

Người chơi nào trong trận, hoặc organizer, đều có thể submit report. Cái valid đầu tiên thắng, double-submit là idempotent.

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

Nếu trận bị nghẽn (đối thủ no-show, nghi cheat, sự cố server, bất đồng kết quả), một người chơi hoặc organizer có thể dispute. Trận chuyển sang status `disputed` với reason tự do. Sau đó đóng băng cho tới khi organizer phân xử qua "Host resolve".

Forfeits

Dùng khi có người phải bỏ giải hoặc không xuất hiện. Hai biến thể:

  • Người chơi tự forfeit: chỉ có thể tuyên bố đối thủ là winner. Hợp cho tự withdrawal.
  • Host forfeit: chọn ai trong hai người làm winner. Hợp cho DQ (vi phạm luật, harassment, v.v.).

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.

Sau dispute, hoặc đơn giản là khi auto-report không khả dụng, chỉ organizer được đóng trận. Bấm "Host resolve" trong room trận, chọn winner trong hai người, xong.

Resolution được log trong audit với user_id, timestamp và winner đã chọn. Là final: không undo (cố ý vậy, phân xử của host là tối thượng).

Format rule

Host-resolve rule, host calls are final within a tournament. Players who disagree can complain in chat but cannot override. This authority structure is what keeps tournaments runnable; ambiguity kills bracket flow.

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

Nếu giải có timer cấu hình, mỗi trận chuyển sang trạng thái playable sẽ có deadline = now + timer. Một badge đếm ngược hiện trên trận trong bracket và trong room trận.

Khi deadline hết hạn, trận tự động bị flag disputed với reason `deadline_exceeded`. Organizer phải vào tay, gia hạn qua resolution mới, chọn winner, hoặc cancel.

Tournament chat

Mỗi trận có chat room riêng, chỉ hai người chơi và organizer thấy được. Dùng để khớp giờ, share URL room Showdown, báo sự cố kỹ thuật.

Tin nhắn xuất hiện real-time qua server-sent events, không cần refresh. Lịch sử giữ tới 30 ngày sau khi trận kết thúc, để tham chiếu khi có dispute.

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).

Với bracket round-robin và swiss, panel "Standings" hiển thị vị trí real-time của mỗi người chơi. Các cột:

Standings columns

  • Wins, số trận thắng (tính cả bye và forfeit nhận được).
  • Losses, số trận thua (tính cả tự forfeit và DQ).
  • Played, tổng số trận đã đóng (không tính bye).
  • Pending, số trận còn lại của bạn ở vòng này.

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.

Bracket double-elim kết bằng grand final giữa UB champion và LB champion. UB tới với 0 loss, LB với 1. Đó là lý do hệ thống có cơ chế reset.

Nếu UB champion thắng grand final → giải kết thúc (vẫn 0 loss). Nếu LB champion thắng → một trận bracket reset tự động sinh ra. Hai người giờ cùng có 1 loss. Người thắng thật ở round hai này lấy giải.

Worth knowing

Single-elim, Swiss, and round-robin don't have a grand-final special case. Standard final match decides.

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

Khi giải còn ở draft hoặc registration, organizer có thể bấm "Edit" trên trang detail để chỉnh tên, slug, mô tả, visibility, bracket, cap, ngày, và timer. Format Pokémon cố tình không sửa được sau khi tạo, đổi nó sẽ phá hỏng check của auto-report.

Format rule

Cancel khả dụng bất kỳ lúc nào trừ sau khi giải đã finished. Lật status sang `cancelled` không thể đảo ngược. Các trận đang chạy bị ngắt, lịch sử giữ lại để tham chiếu, người tham gia được thông báo.

Audit trail

Mọi hành động nhạy cảm của organizer (start, resolve, forfeit, cancel, edit) đều được log trong tab "Audit". Chỉ organizer thấy. Chứa loại action, tác giả, timestamp và chi tiết, hữu ích khi có người chơi nộp claim hoặc khi post-mortem sự cố.

Where to go from here

Hosting is one half of the tournament loop. The other half is competing, see the player-side guides below.