Pre-launch test environment — payments use test credentials and data may be reset before launch.

TournabotDocsProductSign in with Discord
Documentation menu

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 profileShows your stored profile — no modal.

Row 2

  • Button: My slot → modal View my slot
    • Button: My schedule → modal View my schedule
        Lists your upcoming nights — the night id is optional.
      • 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
              Your own seat, the one deadline on it, and the fee state — read-only.
            • Button: Raise a ticketOpens a private modal; subject is derived from your seat or registration.

            Row 4

            • Button: List open nightsShows 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 rankShows your level and XP — no modal.
            • Button: LeaderboardOpens the server leaderboard — no modal.

            Row 2

            • Select: Someone’s rankPick 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
              When exactly one night is open, the button acts for that night with no modal.
            • Button: Accept hold → modal Accept a seat hold
              • Event public id — required
              Converts a timed held seat (lottery / fair-queue / staff reassign) to allocated.
            • Button: Confirm seat → modal Confirm a seat
              • Event public id — required
              Confirm-to-keep on an allocated seat — distinct from claim.
            • Button: Release seat → modal Release a seat
              • Event public id — required
              Same sole-night shortcut as Claim seat.

            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)DashboardWhat it is for
              /poll/community/pollsCreate and manage polls.
              /tag/community/tagsCustom tags and auto-replies.
              /welcome-test/community/welcomeWelcome message preview and config.
              /xp/community/xpXP and levelling settings.
              /setup-status/onboardingSetup checklist and missing steps (with /setup-link and /setup-apply).
              /setup-link/onboardingGuild-connect claim — same onboarding wizard.
              /setup-apply/onboardingApply keyed Create-this steps — same onboarding wizard.
              /results-evidence-submit/resultsUpload result evidence (Discord modals cannot carry attachments).
              /giveaway/community/giveawaysCreate and end prize giveaways.
              /scrim-fee/scrims/feesFee flags, grants, and unpaid chase.
              /team-code/team-codesMint, lookup, and revoke team codes.
              /division/participants/divisionsList divisions and assign teams by season.
              /points/infractionsShow, adjust, and reset member infraction scores.
              /roster-lock/eventsLock or unlock event roster edits.
              /trust/securityTrust dossier and score overrides.
              /whitelist/securitySecurity 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.