Skip to main content

βš™ Configuration

Hello there! Welcome to the configuration guide on how to configure Open Ticket without any problems!

Many people fail with correctly writing the configuration, but that's mostly because they can't write JSON.

This guide also contains a small FAQ section for frequently occuring problems.

Configuration

How to configure Open Ticket?


βš™ Configuration​

Open Ticket is fully configurable using five JSON config files. Each file controls a different aspect of the bot, allowing you to customize everything from ticket options to panel layouts. Here’s a breakdown of each config file and what they do:

πŸ’Ό config/general.json – General Bot Settings​

This file contains the core settings of Open Ticket, including:

  • Bot token - never share this
  • Bot Status - configure the bot status
  • Primary Color - for embeds and messages
  • Permissions - who can manage tickets
  • Extra settings - button visibility, emojis & additional settings

πŸ“Œ This is the most important config file!

❓ config/questions.json – Custom Ticket Questions​

This file defines questions that users must answer before opening a ticket.

  • Each question is shown in a form (modal) before ticket creation.
  • You can add up to 5 questions per ticket type.
  • Questions can have custom names, placeholders, and input limits.

πŸ“Œ If no questions are configured, tickets will open immediately!

🎟 config/options.json – Ticket Types & Buttons​

This file defines the ticket options, which appear as buttons or dropdown items in your panel.

  • Each option represents a ticket type, website link, or reaction role.
  • You can customize admins, embeds, and button layouts per option.
  • Options can be linked to specific questions (from questions.json).
  • Options can be used in panels (from panels.json) to show them.

πŸ“Œ If no options are configured, users won't be able to create tickets!

πŸ“œ config/panels.json – Ticket Panels & Embeds​

Panels are the embeds/messages that display the ticket options in Discord.

  • Each panel contains buttons/dropdowns linked to ticket options.
  • You can create multiple panels for different categories.
  • Panels can be fully customized with text, embeds, and layouts.
  • Panels can be linked to specific options (from options.json).

πŸ“Œ After configuring a panel, use the /panel command to send it to a channel!

πŸ“‚ config/transcripts.json – Transcript Settings​

This file controls how ticket transcripts are saved when a ticket is deleted.

  • Choose between HTML or text transcripts.
  • Customize the transcript layout, colors, and format.
  • Transcripts are disabled by default.

πŸ“Œ Transcripts let you keep a record of past tickets for future reference!

πŸ”§ How to Edit the Config​

  1. Navigate to the config/ folder inside your bot’s files.
  2. Open the JSON file you want to edit using a text editor.
  3. Modify the settings to fit your needs.
  4. Save your changes and restart the bot for them to take effect.

πŸ“Œ Need more details? Check out the full config reference!

That’s it! You're ready to test the bot. πŸŽ‰


πŸ’‘ Frequently Asked Questions​

How to add multiple questions, options or panels?​

To create multiple questions, options or panels, you need to copy everything between and including the brackets ({...}).
Then you paste it after the last question ({...}) and make sure that they are seperated by a comma.

Before​

[
{
"id":"example",
"lorem":"ipsum",
/* ... more settings (1) */
},
{
"id":"example-2",
"lorem":"ipsum",
/* ... more settings (2) */
}
]





After​

[
{
"id":"example",
"lorem":"ipsum",
/* ... more settings (1) */
},
{
"id":"example-2",
"lorem":"ipsum",
/* ... more settings (2) */
},
{
"id":"example-3",
"lorem":"ipsum",
/* ... more settings (3) */
}
]

How to remove the website & reaction role options?​

To remove options that you don't want (e.g. website or reaction roles), you need to delete everything between and including the brackets ({...}) from the option you want to remove. Then you make sure that the comma also has been removed.

Before​

[
{
"id":"example-ticket",
"type":"ticket",
/* ... more settings (Option 1) */
},
{
"id":"example-ticket-2",
"type":"ticket",
/* ... more settings (Option 2) */
},
{
"id":"example-website",
"type":"website",
/* ... more settings (Option 3) */
},
{
"id":"example-role",
"type":"role",
/* ... more settings (Option 4) */
}
]

After​

[
{
"id":"example-ticket",
"type":"ticket",
/* ... more settings (Option 1) */
},
{
"id":"example-ticket-2",
"type":"ticket",
/* ... more settings (Option 2) */
}
]










Can I ignore or leave ... empty?​

Within the config, there are a lot of settings which are optional. These are most of the times lists/arrays (e.g. ["some list"]), if you want to ignore it, you need to leave it empty by setting it to ([]). Nothing else is required to be done, just make sure that the list is empty by setting it to [].

Use Cases​

  • general.json - "globalAdmins", ...
  • options.json - "ticketAdmins", "readonlyAdmins", "questions", "claimedCategory", ...
  • panels.json - "options", "fields", ...

Before (options.json example)​

"channel":{
"prefix":"question-",
"suffix":"user-name",
"category":"",
"closedCategory":"",
"backupCategory":"",
"claimedCategory":[
{"user":"user id","category":"category id"}
],
"description":"This is a question ticket"
},

After (options.json example)​

"channel":{
"prefix":"question-",
"suffix":"user-name",
"category":"",
"closedCategory":"",
"backupCategory":"",
"claimedCategory":[],
"description":"This is a question ticket"
},



πŸ† Summary​

Congratulations! Open Ticket should now be configured correctly. πŸš€

⭐ awesome ⭐

Don't forget to give Open Ticket a star on Github to help us grow!

Next Steps​

Learn More​