Skip to content

Ticket System

The Ticket System provides a complete, GUI-driven support workflow for your server. A persistent ticket menu embed lives in a designated channel; members pick a type from a dropdown, fill in a modal form, and receive a private channel instantly. Staff manage tickets through a pinned control panel inside each channel, and an HTML transcript is automatically generated and delivered on close.

  1. Type-based creation - members choose a ticket type from a dropdown; each type triggers its own custom modal with up to 5 intake questions
  2. Private ticket channels - each ticket gets its own text channel inside a configured category, visible only to the opener, the support role, and the bot
  3. Pinned control panel - a control panel embed is pinned in every ticket channel with Claim, Add User, and Close buttons
  4. Staff claim system - staff can claim a ticket to indicate ownership; the Claim button disables and shows who claimed it
  5. Add User - staff can add any server member to a ticket channel by entering their user ID via a modal
  6. HTML transcript on close - closing a ticket generates a full HTML transcript, DMed to the ticket creator and posted to the log channel
  7. Ticket type manager - admins can add, remove, and edit ticket types and their per-type questions from the /ticket admin GUI without re-running setup
  8. Auto-incrementing ticket IDs - each ticket is numbered sequentially per server with built-in protections to prevent duplicate IDs even during high traffic

The ticket menu is a persistent embed posted in the configured menu channel. It lists all active ticket types with their names and descriptions, shows the current active ticket count for the server, and contains a dropdown to select a type.

  • The menu is automatically updated (active count, type list) whenever a ticket is opened or closed
  • If the menu message is deleted, it is recreated automatically the next time an update is triggered

Each member can have only one open ticket at a time. Attempting to open a second ticket shows a link to the existing one.


  1. Run the setup command - use /ticket setup with the required options:

    • menu-channel - the channel where the ticket selection embed will be posted
    • category - the channel category where ticket channels will be created

    Optional options:

    • log-channel - a channel to receive creation, closure, claim, and user-add events
    • support-role - a role that is pinged on new tickets and has staff permissions in all ticket channels
  2. Verify the menu - confirm the ticket embed has appeared in the menu channel with the correct types listed and a working dropdown.

  3. Customise ticket types Optional - run /ticket admin and open Manage Types to add server-specific types, or edit the default ones’ questions to fit your intake needs.

  4. Test a ticket - open a test ticket as a regular member, verify the channel is created with the correct permissions and a pinned control panel, then close it to confirm the transcript DM and log channel post work correctly.