Docs · Reference
Buttons and commands
People act from Discord panels and the website. Buttons and selects are the primary path in the channels your setup creates; the dashboard holds configuration. Slash commands have been removed from the Discord picker entirely (D-65) — every action lives on a panel, the dashboard, or the ?name text path.
Buttons first
Every command has a working button, panel control, or dashboard page — that parity is what allowed slash to be removed (D-65). If you preferred typing, use ?name anywhere the bot can read messages: it is the same handler the slash path used (D-61).
Registration channel
Three messages in the public registration channel — register and profile, rank and leaderboard, then claim or release a seat. Setup posts them from the website; staff do not type them into Discord.
Registration, slotlist, and profile
Registration. Use the buttons below to register a team or view the slotlist. Set your in-game identity with Set profile. Registering accepts the night's published rulebook when one is set. Staff run nights from the dashboard.
Row 1
- Button: Register team → modal Register a team
- Night id — required
- Team name — required
- Teammate 2 Discord id (optional)
- Teammate 3 Discord id (optional)
- Teammate 4 Discord id (optional)
- Button: Register with code → modal Register with team code
- Night id — required
- Team code — required
- Button: View slotlist → modal View slotlist
- Night id — required
- Button: Set profile → modal Set your profile
- IGN (optional)
- Character UID (optional)
- Region (optional)
- Button: Show profile — Shows your stored profile — no modal.
Row 2
- Button: My slot → modal View my slot
- Button: My schedule → modal View my schedule
- Button: Check in → modal Check in
- Night id (not needed for schedule) — required
- Button: Status → modal View my status
- Button: View standings → modal View standings
Row 3
- Button: My slot state → modal View my slot state
- Button: Raise a ticket — Opens a private modal; subject is derived from your seat or registration.
Row 4
- Button: List open nights — Shows advance-bookable nights — no modal.
- Button: Book ahead → modal Book ahead
- Night id — required
- Team name — required
Rank and leaderboard
Level and XP — your rank, someone else’s, or the server leaderboard.
Row 1
- Button: My rank — Shows your level and XP — no modal.
- Button: Leaderboard — Opens the server leaderboard — no modal.
Row 2
- Select: Someone’s rank — Pick a member to see their rank — no modal.
Claim, accept a hold, confirm, and release a seat
Claim, accept a hold, confirm, or release your team’s seat for this open night. When zero or many nights are open: Claim, accept a hold, confirm, or release your team’s seat — enter the event’s public id when asked.
Row 1
- Button: Claim seat → modal Claim a seat
- Event public id — required
- Button: Accept hold → modal Accept a seat hold
- Event public id — required
- Button: Confirm seat → modal Confirm a seat
- Event public id — required
- Button: Release seat → modal Release a seat
- Event public id — required
Staff-ops channel
One private channel (hidden from @everyone) carries two full panel messages — five Discord action rows each. Seeing the channel is not permission to act: every control still checks your organisation role.
Panel 1 — punish, evidence, security, events, standings
Pick the member to act on. Staff only — this panel is visible in this channel because of its permissions, but every action is still checked against your role.
Row 1 — member select
- Select: Choose a member → modal Issue a punishment
- Kind — required
- Reason — required
- Duration in seconds (blank = indefinite)
Row 2 — evidence
- Button: Check extraction status → modal Extraction status
- Extraction run id — required
Row 3 — security
- Button: Engage lockdown → modal Engage lockdown
- Scope
- Duration in minutes (blank = until lifted)
- Incident id (optional)
- Reason
- Button: Lift lockdown → modal Lift lockdown
- Lockdown id
- Reason
- Button: Disarm threat state → modal Disarm threat state
- Reason
Row 4 — events
- Button: Create event → modal Create event
- Title — required
- Game
- Format
- Capacity (whole number, blank for none)
- Scheduled start (ISO-8601) — required
- Button: Move event stage → modal Move event stage
- Event id — required
- Move to state — required
- Reason
Row 5 — standings
- Button: Show standings → modal Show standings
- Stage id — required
- Team lookup (optional)
- Button: Adjust points → modal Adjust points
- Stage id — required
- Team id — required
- Points (signed, e.g. -2 or 5) — required
- Reason — required
Panel 2 — cases, scrim nights, seed and lobbies
Open or view a moderation case. Pick a member to open; view looks up by case number. Staff only — every action is still checked against your role.
Row 1 — case select
- Select: Choose a member to open a case → modal Open a case
- Reason — required
- Moderation action (optional)
- Team id (optional)
- Points (optional, 0–1000)
Row 2 — view case
- Button: View case → modal View case
- Case number — required
Row 3 — registration open/close
- Button: Open registration → modal Open registration
- Scrim night id — required
- Reason (optional; required on reopen)
- Button: Close registration → modal Close registration
- Scrim night id — required
- Reason (optional)
Row 4 — mint and series
- Button: Mint scrim night → modal Mint scrim night
- Series id — required
- Date YYYY-MM-DD (blank = tonight)
- Title override (optional)
- Capacity override (optional)
- Button: Create series → modal Create scrim series
- Series name — required
- Game id — required
- Timezone (e.g. Asia/Kolkata) — required
- Default capacity — required
Row 5 — stage structure
- Button: Seed stage → modal Seed stage
- Stage id — required
- Method (slot, random, seeded-by-standing) — required
- Team ids (comma or space separated) — required
- Standings CSV (optional; same order)
- Button: Split lobbies → modal Split lobbies
- Stage id — required
- Teams per lobby — required
- Button: Ban team → modal Ban team
- Public event id — required
- Team id — required
- Duration in seconds (blank = tenant default)
- Reason — required
- Button: Unban team → modal Unban team
- Button: Bulk series move → modal Bulk series move
- Series id — required
- Target state — required
- Reason (if cancel/pause/archive/reopen)
Website
Operator configuration belongs on the dashboard (D-60), not as Discord buttons. 16 slash families map to 13 dashboard paths:
| Slash (while mounted) | Dashboard | What it is for |
|---|---|---|
| /poll | /community/polls | Create and manage polls. |
| /tag | /community/tags | Custom tags and auto-replies. |
| /welcome-test | /community/welcome | Welcome message preview and config. |
| /xp | /community/xp | XP and levelling settings. |
| /setup-status | /onboarding | Setup checklist and missing steps (with /setup-link and /setup-apply). |
| /setup-link | /onboarding | Guild-connect claim — same onboarding wizard. |
| /setup-apply | /onboarding | Apply keyed Create-this steps — same onboarding wizard. |
| /results-evidence-submit | /results | Upload result evidence (Discord modals cannot carry attachments). |
| /giveaway | /community/giveaways | Create and end prize giveaways. |
| /scrim-fee | /scrims/fees | Fee flags, grants, and unpaid chase. |
| /team-code | /team-codes | Mint, lookup, and revoke team codes. |
| /division | /participants/divisions | List divisions and assign teams by season. |
| /points | /infractions | Show, adjust, and reset member infraction scores. |
| /roster-lock | /events | Lock or unlock event roster edits. |
| /trust | /security | Trust dossier and score overrides. |
| /whitelist | /security | Security allowlist add, remove, list, and approve. |
Bot-commands channel
Setup provisions a bot-commands channel and restricts Use Application Commands to it (D-66): guild-wide the permission is denied for @everyone, then allowed back only on that channel. With slash removed from the registry the picker is empty everywhere; the posture stays in place as belt-and-braces, and the channel remains the natural home for typed ?name commands. Panel buttons and modals work in every channel; they never needed the picker.
Every command that used to be slash still answers as ?name — same handler, same permissions, same refusal wording (D-61). Examples: ?sticky, ?slot, ?punish.
Slash commands (removed)
Slash commands were removed from Discord's registry once every command had a button, panel, or dashboard surface (D-65). The handlers stay mounted: a stale Discord client that still offers a cached command gets a clear "no longer recognised" reply, and ?name covers anyone who prefers typing. There is nothing to relearn — the panels above are the same actions.
If a control refuses, it names the reason rather than failing silently — a missing permission is reported as that permission. See Troubleshooting.