Skip to main content
5Stack provides a complete tournament management system designed specifically for Counter-Strike 2 competitions. From small community events to large-scale tournaments, the platform handles everything from registration to bracket visualization.

Key Features

Multiple Formats

Support for Swiss, Round Robin, Single Elimination, and Double Elimination formats with flexible configuration options.

Multi-Stage Tournaments

Create complex tournament structures with multiple stages, each with different formats and team counts.

Team Management

Handle team registration, roster management, seeding, and eligibility checks automatically.

Automated Bracket Generation

Brackets are automatically created and updated based on match results with real-time visualization.

Tournament Lifecycle

Tournaments in 5Stack follow a structured lifecycle with automatic state management:

Tournament States

Initial configuration state where organizers can set up tournament details, match options, and stages before opening registration.
Teams can join the tournament. Organizers can manually add teams or allow self-registration.
Registration is locked. Organizers finalize seeding and prepare for tournament start.
Tournament is active. Brackets are generated, matches are created, and teams compete.
Tournament temporarily suspended. No new matches created, existing matches can continue.
Tournament complete with final standings and results recorded.
Tournament cancelled (manually or due to insufficient teams).

Tournament Configuration

Basic Information

Every tournament requires:
  • Name: Tournament identifier
  • Description: Optional detailed information
  • Start Time: Scheduled start date and time
  • Auto Start: Whether tournament automatically starts at scheduled time

Match Options

Tournaments inherit global match options with support for:
  • Match type (Competitive, Wingman, Premier)
  • Map pool and veto configuration
  • Best-of settings (BO1, BO3, BO5)
  • Knife round, overtime, and coaching options
  • Regional server preferences
  • Check-in and ready settings
See Match Options for detailed configuration.

Tournament Types

Each tournament can have multiple stages with different formats. For example, a tournament might start with a Swiss stage for seeding, followed by a Single Elimination playoff bracket.

Supported Formats

Swiss

Teams play until they reach a win/loss threshold. Ideal for large tournaments with fair matchmaking.

Round Robin

Every team plays every other team. Perfect for small group stages.

Single Elimination

Single-loss elimination bracket. Fast and straightforward.

Double Elimination

Winners and losers brackets with a grand final. Gives teams a second chance.

Team Management

Team Registration

Teams can be added through:
  1. Self-Registration: Teams join during the registration period
  2. Organizer Invitation: Direct team addition by organizers
  3. Manual Creation: Organizers create placeholder teams

Team Structure

interface TournamentTeam {
  id: string;
  name: string;
  seed?: number;              // Seeding position
  eligible_at?: string;       // When team becomes eligible
  roster: RosterPlayer[];     // Team players
  owner: Player;              // Team captain
  team?: Team;                // Optional linked team
}

Seeding

Teams can be seeded to control bracket placement:
  • Automatic Seeding: Based on registration order or team rating
  • Manual Seeding: Organizers assign seed positions
  • Stage Seeding: Carry results from previous stages

Multi-Stage Tournaments

Create complex tournament structures with multiple stages:
1

Create Tournament

Set up basic tournament information and default match options.
2

Add Stages

Define each stage with format, team count, and progression rules.
3

Configure Advancement

Specify how many teams advance from each stage to the next.
4

Manage Progression

System automatically moves teams between stages based on results.

Example: Multi-Stage Tournament

Stage 1: Swiss (64 teams)
  → Top 16 advance
  
Stage 2: Single Elimination (16 teams)
  → Determine final champion

Bracket Visualization

All tournament formats include real-time bracket visualization with:
  • Interactive Navigation: Pan, zoom, and fullscreen support
  • Live Updates: Brackets update automatically as matches complete
  • Match Details: Click matches to view details and results
  • Minimap: Navigation aid for large brackets
  • Scheduling: Organizers can schedule match start times
See Brackets for detailed visualization features.

Notifications

Tournaments support Discord webhook integration for automated notifications at every stage of match progression.
Configurable notifications for:
  • Match scheduled
  • Match starting
  • Match live
  • Match finished
  • Player check-in required
  • Map veto phase
  • And more…
See Tournament Notifications for setup.

Permissions

Tournament Organizers

Organizers have full control over:
  • Tournament settings and configuration
  • Team management (add, remove, seed)
  • Match scheduling and management
  • Stage configuration
  • Starting, pausing, and cancelling tournament

Additional Organizers

Tournaments can have multiple organizers with shared permissions. Add organizers in the tournament settings.

API Access

Access tournament data programmatically through GraphQL:
subscription GetTournament($tournamentId: uuid!) {
  tournaments_by_pk(id: $tournamentId) {
    id
    name
    status
    start
    stages {
      id
      type
      brackets {
        id
        round
        match {
          id
          status
        }
      }
    }
  }
}

Next Steps

Create a Tournament

Step-by-step guide to creating your first tournament

Tournament Formats

Learn about Swiss, Round Robin, and Elimination formats

Bracket Management

Understand bracket visualization and match scheduling

Managing Tournaments

Tournament administration and team management

Build docs developers (and LLMs) love