Tickets
Configure ticket system, categories, permissions, and automation
Introduction
The Tickets configuration file (tickets.json) manages your support ticket system including categories, permissions, questions, transcripts, and automation.
General Settings
send_transcript_to_ticket_creator
Type: Boolean
Send transcript copy to ticket creator.
send_transcript_to_ticket_creator: trueWhen true: User receives transcript when ticket closes
When false: No transcript is sent to user
save_ticket_transcript_on_disk
Type: Boolean
Save transcripts to disk locally.
save_ticket_transcript_on_disk: trueWhen true: Transcripts saved to \logs\transcripts\
When false: No local save
update_permissions_on_move
Type: Boolean
Sync permissions when moving tickets.
When true: Permissions update to match new category when using /tmove
When false: Permissions stay the same
ticket_channel_name
Type: String
Channel name format for tickets.
Placeholders:
%random%- Random number%creator%- Username%created_total%- Total tickets created%category%- Category name
Categories can override this with custom names.
ticket_transcript_message_limit
Type: Number
Maximum messages included in transcripts.
close_ticket_after_creator_left
Type: Boolean
Auto-close tickets when creator leaves server.
ping_role_at_permission_update
Type: Boolean
Ping role when ticket is elevated/lowered.
When true: New permission level role is mentioned
When false: No ping
ticket_creation_limit
Type: String
How many tickets users can create.
Options:
"CATEGORY"- One ticket per category"GLOBAL"- One ticket total across all categories"NONE"- Unlimited tickets
Does not apply to applications.
enable_web_server
Type: Boolean
Upload transcripts to web server.
When true: Transcripts uploaded and replaced with link
When false: Transcripts sent as files
send_transcript_to_claimed_user
Type: Boolean
Send transcript to staff who claimed ticket.
send_plain_ticket_create_message
Type: Boolean
Use plain text instead of embed for ticket creation message.
use_discord_category_permissions
Type: Boolean
Inherit Discord category permissions.
When true: Uses Discord category permissions, ignores permission_level settings
When false: Uses configured permission levels
generate_new_category_if_full
Type: Boolean
Auto-create new categories when full (50 channel limit).
maximum_generated_categories
Type: Number
Maximum auto-generated categories.
Only applies when generate_new_category_if_full is enabled.
all_roles_required_to_open
Type: Boolean
Whether all roles in required_role_to_open are needed.
When true: User needs ALL configured roles
When false: User needs only ONE of the configured roles
enable_ticket_rating_system
Type: Boolean
Enable rating system after ticket closure.
Ticket Categories
Type: Array of Objects
Define ticket types and their settings. Each category represents a different ticket type (e.g., General Support, Bug Reports, Appeals, etc.).
category - Category name displayed in the ticket panel and channel
description - Category description shown in panel dropdown/buttons
emoji - Emoji for category button (use Discord emoji picker or custom emoji ID)
category_id - Discord category ID where ticket channels will be created
permission_level - Starting permission level (0 = lowest, higher numbers = more restricted)
ticket_create_questions - Question set ID from question_list or null to skip questions
required_role_to_open - Array of role IDs required to open this ticket type (empty array = anyone can open)
mention_roles - Array of role IDs to ping when ticket is created (e.g., support team roles)
ticket_create_msg - Message template ID from ticket_create_message section
Example Use Cases:
General Support: Open to everyone, low permission level, asks basic questions
Bug Report: Open to everyone, higher permission for developers, asks detailed bug info
VIP Support: Restricted to VIP role, pings senior staff, no questions needed
Appeals: Open to everyone, highest permission for admins, asks for appeal details
Permission Levels
Type: Array of Strings
Define ticket access hierarchy using Discord role IDs. This creates a tiered support system where higher-level staff can access lower-level tickets.
How Permission Levels Work:
Position in Array: Index 0 is the lowest level, higher indexes = higher permission levels
Ticket Access: Staff with a role can see tickets at their level AND all levels below them
Starting Level: Tickets start at the
permission_levelset in their categoryEscalation: Use
/televateto increase level,/tlowerto decrease level
Detailed Example:
Let's say you have these permission levels:
Level 0: Helper role (ID:
111111111111111111)Level 1: Moderator role (ID:
222222222222222222)Level 2: Admin role (ID:
333333333333333333)
Scenario 1 - General Support Ticket (permission_level: 0)
β Helpers can see it (they are level 0)
β Moderators can see it (level 1 can access level 0)
β Admins can see it (level 2 can access levels 0 and 1)
Scenario 2 - Bug Report Ticket (permission_level: 1)
β Helpers CANNOT see it (level 0 cannot access level 1)
β Moderators can see it (they are level 1)
β Admins can see it (level 2 can access level 1)
Scenario 3 - Ticket Elevated to Level 2
β Helpers CANNOT see it
β Moderators CANNOT see it
β Only Admins can see it (level 2)
Common Setup:
Level 0: Junior Support / Helpers
Level 1: Moderators / Regular Support
Level 2: Senior Moderators / Team Leads
Level 3: Administrators / Management
This allows tickets to start with helpers, then be escalated to mods, then admins if needed.
Ticket Create Questions
Pre-ticket questions to gather information before the ticket is created. This helps support staff have context immediately.
enabled
Type: Boolean
Whether to enable question system.
question_list
Type: Object
Question sets for different categories. Each set has a unique ID that you reference in ticket_categories.
question - Question text displayed to the user
max_length - For text: max characters allowed. For dropdowns: max number of options user can select
min_length - For text: min characters required. For dropdowns: min number of options user must select
placeholder - Placeholder text shown in the input field
select_options - Empty array [] = text input. Array with values = dropdown menu
required - true = must be answered, false = optional
Important: For select menus (dropdowns), max_length and min_length control how many options can be selected, NOT the character length of each option.
Example:
max_length: 1, min_length: 1= User must select exactly 1 optionmax_length: 3, min_length: 1= User can select 1 to 3 optionsmax_length: 5, min_length: 2= User must select between 2 and 5 options
Question Type Examples:
Text Input (Short Answer):
Text Input (Long Answer):
Single Selection Dropdown:
Multiple Selection Dropdown:
Optional Question:
Ticket Create Message
Type: Object
First message sent in new tickets. Each template has a unique ID that you reference in ticket categories.
Uses same embed format as lang.json configuration file.
Available Placeholders:
%creator%- Mentions the ticket creator%ticket_channel%- Mentions the ticket channel%guild%- Server name%guild_icon%- Server icon URL
Embed Properties:
author- Author section with name and icontitle- Embed titledescription- Main embed content (supports newlines with\n)color- Hex color code (e.g.,"#3498db")thumbnail- Small image in top-right cornerimage- Large image at bottomfields- Array of field objects withnameandvaluefooter- Footer text and icondefaultFooter- Use default footer (true/false)defaultTimestamp- Add timestamp (true/false)userIcon- Use ticket creator's avatar (true/false)
Pro Tip: Create different templates for different ticket types to set the right expectations:
General Support: Welcoming message with basic instructions
Bug Reports: Technical format asking for reproduction steps
VIP Support: Priority messaging with faster response times
Appeals: Formal tone with appeal process information
Role Priority
Priority support for specific roles.
enabled
Type: Boolean
Enable priority support.
roles
Type: Array of Strings
Roles that trigger priority support (e.g., boosters).
mention_roles
Type: Array of Strings
Additional roles to mention for priority tickets.
Out of Service
Notify users during off-hours.
enabled
Type: Boolean
Enable out-of-service notifications.
time
Type: Object
Off-hours time range in UTC.
Format: "hh:mm" in 24-hour UTC time.
Inactivity Closure
Auto-close inactive tickets.
enabled
Type: Boolean
Enable inactivity closure.
send_warning
Type: Boolean
Send warning before closing.
send_warning_before
Type: Number
Hours before closure to send warning.
inactive_for
Type: Number
Hours of inactivity before closing.
Ticket Buttons
Type: Object
Control which buttons appear on ticket creation message.
close - Direct close button close_request - Request closure button elevate - Increase permission level lower - Decrease permission level claim - Claim ticket unclaim - Unclaim ticket
Complete Configuration Example
Here's a production-ready tickets configuration:
Last updated