Developer
DEV_USER_ID · falls back to administratorsSole authority over server bootstrap and panel deployment — the commands that reshape the server itself.
/setup_server/setup_ticket_panel/refresh_commandsReference for the Discord bot that runs tickets and roster logs. Nothing here is in-character.
Access is gated centrally in TieredCommandTree.interaction_check, not by per-command decorators, so the lists in config.py can't drift out of sync with the code. Anything unlisted is denied by default and logged.
Sole authority over server bootstrap and panel deployment — the commands that reshape the server itself.
/setup_server/setup_ticket_panel/refresh_commandsEvery ticket action, plus the diagnostic commands.
/ticket …/healthcheck/pingWorks the tickets on the floor. See the note below — this tier currently has no commands assigned to it.
—Opens tickets through the panel and tracks their own.
/mytickets/ticket subcommand sits in HEAD_COMMANDS, so a Command-role member who isn't a Head can't close, claim or rename a ticket. Move them into COMMAND_COMMANDS to fix — Heads keep access either way.Each feature lives in its own cog, so anything you don't want can simply be unloaded.
One dropdown, posted once, still working after restarts. Members pick a category and get their own channel.
Staff claim with one button so two people never work the same request. Claims hand over at any time.
Low through Urgent, each with its own colour on the embed so the queue is triageable at a glance.
Closing renders the full history to a text file and posts it to the log channel with a summary embed.
A closed ticket can be recreated from its number, linking back to its archived transcript.
New members get a branded greeting with their member count, plus rules and ticket-panel buttons.
On join, the bot builds its info category, a command list channel, and a direct dev-support channel.
Per-user open ticket caps and a creation cooldown. Defaults to 2 open tickets and 60 seconds.
Closing a Reserve, Retirement or LOA ticket parses the form inside it and files a structured entry in the matching log channel.
One central gate decides who runs what. A new command with no tier is denied and logged — it can't accidentally ship wide open.
/healthcheck verifies every channel ID, role, permission and intent before members hit the problem.
Heads outrank Command staff everywhere. Anything unlisted is denied by default.
| Command | Tier | Description |
|---|---|---|
/mytickets | Member | List your currently open tickets. |
/ticket close | Head | Close this ticket and archive its transcript. |
/ticket add | Head | Grant another member access to this ticket. |
/ticket remove | Head | Revoke a member's access to this ticket. |
/ticket rename | Head | Rename the ticket channel. |
/ticket transfer | Head | Hand the claim to another staff member. |
/ticket priority | Head | Set priority to low, normal, high or urgent. |
/ticket reopen | Head | Recreate a previously closed ticket by number. |
/healthcheck | Head | Verify configuration, permissions and intents. |
/ping | Head | Check the bot's latency. |
/setup_server | Dev | Create the information category and its channels. |
/setup_ticket_panel | Dev | Post the persistent ticket panel in this channel. |
/refresh_commands | Dev | Re-post the command list in the commands channel. |
Every category opens a private channel visible only to the member and the Command role, named from its own slug.