Tickets
Commands for managing the support ticket system. Tickets create private channels for users to communicate with staff.
Commands
/ticket close
Closes the current ticket channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
| reason | string | No | Close reason |
Permissions: Ticket creator, support roles, or Administrator
Example: /ticket close reason:Issue resolved
Success:
If close_confirmation is enabled — shows a confirmation button
Generates a transcript (if configured)
Sends close notification to the user
Deletes the ticket channel (or archives, based on config)
Logs the action
Errors:
- Not a ticket channel
- Missing permissions
/ticket add
Adds a user to the current ticket, granting them view and send permissions.
| Parameter | Type | Required | Description |
|---|---|---|---|
| user | Member | Yes | User to add to the ticket |
Permissions: Must be used inside a ticket channel
Example: /ticket add user:@moderator
Success: User gets view_channel and send_messages permissions + confirmation message
Errors:
- Not a ticket channel
/ticket remove
Removes a user from the current ticket, revoking their permissions.
| Parameter | Type | Required | Description |
|---|---|---|---|
| user | Member | Yes | User to remove from the ticket |
Permissions: Must be used inside a ticket channel
Example: /ticket remove user:@user
Success: User's permission overwrite removed + confirmation message
Errors:
- Not a ticket channel
/ticket panel
Deploys the ticket panel embed with an "Open Ticket" button (or category dropdown if categories are configured). Users click the button to create a new ticket.
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) | — | — | — |
Permissions: Administrator only
Example: /ticket panel
Success:
Sends an embed with "Support Tickets" title
Adds a button or category select menu
Saves panel message and channel ID to configuration
Panel types:
- Without categories — single "Open Ticket" button
- With categories — dropdown menu with up to 25 category options (name + description + emoji)
Errors:
- Not an administrator
Ticket Creation Flow
User clicks "Open Ticket" button on the panel
Bot checks if user hasn't exceeded max_tickets_per_user limit
Creates a private channel: ticket-{number} (incrementing)
Sets permissions: user + support roles can see, everyone else can't
Sends a welcome message in the channel
Logs the creation
Auto-Close
The cog runs a background task that checks for inactive tickets:
- Configurable inactivity timeout
- Warns before closing (if configured)
- Automatically closes stale tickets
Configuration
| Option | Description | Default |
|---|---|---|
support_roles | Roles that can see all tickets | [] |
ticket_category_id | Discord category for ticket channels | none |
max_tickets_per_user | Max open tickets per user | 3 |
close_confirmation | Require confirmation before closing | true |
ticket_categories | Named categories with descriptions | [] |
auto_close_hours | Hours of inactivity before auto-close (0 = disabled) | 0 |
Tip
Configure ticket_categories in the dashboard to offer a category dropdown instead of a plain button. Each category can have a name, description, and emoji.