Administrative Roles
Commands in this section require specific Discord roles:Referee Role
Basic tournament staff permissions for match and schedule management
Admin Role
Full administrative access for automated systems and bulk operations
Role IDs are configured via environment variables:
DISCORD_REFEREE_ROLE_ID and DISCORD_ADMIN_ROLE_IDMatch Management
/creatematchup
Creates a match with interactive availability checking.This command is also documented in Scheduling Commands. It’s included here as it’s a core management function.
/removematchup
Deletes a match from the schedule.The ID of the match to remove
Usage Example
/removequalifiersroom
Deletes a qualifier lobby.The ID of the qualifier room to remove
Usage Example
Automated Scheduling
/generate-schedules
Admin only. Uses constraint programming to automatically generate optimal schedules.The round to generate schedules for
Starting Friday date (DD/MM/YYYY format)
Usage Example
Algorithm Details
The schedule generator uses Google OR-Tools CP-SAT solver with these constraints: Hard Constraints:- Every match must be assigned exactly one time slot
- Players can only play when both are available
- No player can have overlapping matches
- Maximum 2 matches per player per week
- Friday matches: +3 penalty per match
- Monday matches: +50 penalty per match
- Multiple matches in same slot: +20 × (count²) penalty
- Incompatible schedules: +10,000 penalty (limbo slot)
- Days: Friday through Monday (4 days)
- Hours: 16:00 - 23:00 (Spain timezone / UTC+1)
- Weeks: 2 consecutive weeks
- Total slots: 64 possible time slots + 1 limbo slot
Output
The command generates:- CSV File with complete schedule
- Embed showing algorithmic cost and warnings
- Database Updates with all match times
Matches marked as “limbo” (N/A times) have incompatible player schedules and require manual scheduling.
/import-schedules
Admin only. Imports a modified schedule CSV back into the database.The round ID for these schedules
Reference Friday date (DD/MM/YYYY)
Modified CSV file to import
Workflow
- Generate initial schedule with
/generate-schedules - Download the CSV file
- Make manual adjustments (resolve limbo matches, adjust times)
- Upload modified CSV with
/import-schedules
Usage Example
/generate-groups
Admin only. Generates all group stage matchups automatically.The round ID for the group stage
Usage Example
Group Structure
Creates 8 groups (A-H) with 4 players each:- 6 matches per group (full round-robin)
- Total: 48 matches created
- Match IDs:
{Group}{Number}(e.g., A1, B3, H6)
Round-Robin Format
For each group with players [1, 2, 3, 4]:- Match 1: Player 1 vs Player 2
- Match 2: Player 3 vs Player 4
- Match 3: Player 1 vs Player 3
- Match 4: Player 2 vs Player 4
- Match 5: Player 1 vs Player 4
- Match 6: Player 2 vs Player 3
Score Management
/importscores
Imports scores from public osu! lobbies via API. See Scoring Commands for complete documentation./importscores-privaterooms
Imports scores from CSV/TXT files for private lobbies. See Scoring Commands for complete documentation./preparescores
Admin only. Generates seeding CSV for bracket generators.The round to export scores for
Usage Example
Output Format
The CSV includes:- Player Info: Username, osu! ID, country code
- Scores: Raw scores for each map in the pool
- Rankings: Per-map rankings for each player
- Seeds: Overall seed and mod-specific seeds (NM, HD, HR, DT)
- Team Size: Always 1 for 1v1 tournaments
- Mod type (NM → HD → HR → DT → TB)
- Map number within each mod
Seeds are calculated using Z-sum normalization to account for difficulty variance across maps.
/stats
Generates detailed statistical reports for qualifiers. See Scoring Commands for complete documentation.Referee Assignment
/assignref
Assigns a referee to a match or qualifier lobby.The match or lobby ID
Display name of the referee
Usage Example
- Works for both elimination matches and qualifier lobbies
- Validates referee exists in the database
- Allows reassignment by running again with different name
/linkirc
Configures referee IRC credentials. See Referee Commands for complete documentation.Match Environment Control
/startref
Starts a match and creates its Discord thread. See Referee Commands for complete documentation./endref
Ends a match and archives its thread. See Referee Commands for complete documentation.Permission Summary
| Command | Required Role | Description |
|---|---|---|
/creatematchup | Referee | Create matches with availability checking |
/removematchup | Referee | Delete matches |
/removequalifiersroom | Referee | Delete qualifier lobbies |
/assignref | Referee | Assign referees to matches |
/importscores | Referee | Import scores from API |
/importscores-privaterooms | Referee | Import scores from files |
/generate-schedules | Admin | Auto-generate optimal schedules |
/import-schedules | Admin | Import modified schedules |
/generate-groups | Admin | Generate group stage matches |
/preparescores | Admin | Export seeding data |
/stats | Admin | Generate statistical reports |