Modules (Cogs)

Tickets

The Tickets module provides a full support ticket system through private channels. Users open tickets via a panel button, and staff can manage them with slash commands.

Enabling the Module

Enable the module

Dashboard → Your server → toggle Tickets

Configure support roles

Click Edit and configure support roles + ticket category

Deploy the panel

Deploy the panel with /ticket panel

Configuration

OptionTypeDefaultDescription
support_rolesstring[][]Roles that can view and manage all tickets
ticket_category_idstring / nullnullDiscord category where ticket channels are created
max_tickets_per_usernumber3Maximum open tickets per user
close_confirmationbooleantrueAsk for confirmation before closing
ticket_categoriesarray[]Named categories (dropdown instead of button)
auto_close_hoursnumber0Auto-close after X hours of inactivity (0 = off)

How It Works

Panel Deployment

Run the command

Admin runs /ticket panel in the desired channel

Bot posts the panel

Bot posts an embed with either a single "Open Ticket" button (no categories configured) or a dropdown menu with category options (categories configured)

Persistence

Panel message ID is saved to config (persistent across restarts)

Ticket Lifecycle

User clicks "Open Ticket"

Bot checks max_tickets_per_user limit

Creates private channel: #ticket-{number}

Sets permissions (user + support roles)

Sends welcome message

... conversation ...

/ticket close (or auto-close)

Channel deleted

Permissions

WhoSees ticketCan close
Ticket creator
Support roles
Added users (via /ticket add)
Everyone else

Commands

CommandDescriptionWho can use
/ticket close [reason]Close the ticketCreator, support, admin
/ticket add [user]Add a user to the ticketAnyone in the ticket
/ticket remove [user]Remove a user from the ticketAnyone in the ticket
/ticket panelDeploy the panel embedAdministrator

Categories

Configure ticket categories in the dashboard to offer a dropdown instead of a plain button:

[
  {
    "name": "General Support",
    "description": "General questions and help",
    "emoji": "❓"
  },
  {
    "name": "Bug Report",
    "description": "Report a bug or issue",
    "emoji": "🐛"
  }
]

Each category can have:

  • name — displayed in the dropdown (max 25 categories)
  • description — subtitle in the dropdown (max 100 chars)
  • emoji — optional emoji next to the name

Auto-Close

When auto_close_hours > 0:

  • Background task runs periodically
  • Checks the last message time in each open ticket channel
  • If inactivity exceeds the threshold → closes the ticket automatically
  • Sends a notification before closing (warning)

Logging

Actions logged by Logs under the tickets category:

  • 🎫 Ticket Opened — who opened, category, channel
  • 🎫 Ticket Closed — who closed, reason, duration
  • 🎫 User Added/Removed

Tips

Best Practices

  • Set ticket_category_id to a dedicated Discord category — keeps tickets organized
  • Configure at least one support_role so staff can see all tickets
  • Use categories if you have multiple departments (support, billing, etc.)
  • Set auto_close_hours: 48 to prevent abandoned tickets from cluttering

Support Roles Required

Without support_roles configured, only administrators and the ticket creator can see tickets. Make sure to add relevant staff roles.