Skip to main content

Ticketing

PLEASE NOTE: Ticketing functions are permission locked to Admins and Mods, with some of the advanced config only changable by Admin users

Ticketing is built on the Tickets cog from VRT-Cogs which has a number of useful functions that made it ideal for our use case.

  • Multiple Categories (it uses the term 'Panels' to refer to these)
  • Dynamic, in discord forms for the member to fill out (no needing to remember commands or visit external websites)
  • Custom Questions on Forms
  • Native in-discord management of ticket requests (no external web interface or DM's needed)
  • History Retention and Accountability (You'd be shocked but most bots ask for payment for that function!)
  • Custom Responses on Ticket Opening, and Reason Tracking on Closure
  • Nice friendly Welcome Messages with users only needing to click a button to submit a ticket.
  • Minimal Disruption to regular channel structure (everthing is in a thread in our set up, and they self hide as well as disappear once closed)
Note that you will need channel and message ID's to perform some of the commands here, and thus your Discord client needs to be in Developer Mode. Documentation on how to do that is here

Creating a Channel for a Ticket Panel

In order to add another panel to the server, we need to create a channel for the tickets to nest under.
We have a few rules to follow though;

  1. Users cannot message the Top Level Channel, but can view it's Messages and Message History.
  2. Bots must be given permissions to create and delete both threads and private threads.
  3. Admins and Mods must be able to message and view private threads (Should already be active)

Conventions I have established for the server include as well that these channels should sit under Server Contacts in the sidebar, Embeds should have a thumbnail, and one panel per channel.

Before you start, send a square icon in PNG format (preferrably with a transparent background, ask Under for help if you need that) to the bot spam channel. This is going to be your thumbnail. Copy the Media Link for the picture (Right Click or Press and Hold) and store it somewhere safe for later.

Create the channel we want in the Server Contacts category, give it a nice simple name.

Permissions are đŸš« Deny, / Inherit, and ✅ Allow

Permissions for Everyone
Permission Name Setting
View Channel Allow
Manage Channel Deny
Manage Permissions Deny
Manage Webhooks Deny
Create Invite Deny
Send Messages Deny
Send Messages In Threads Allow
Create Public Threads Deny
Create Private Threads Deny
Embed Links Allow
Attach Files Allow
Add Reactions Allow
Use External Emoji Allow
Use External Stickers Allow
Mention @everyone etc etc. Deny
Manage Messages Deny
Pin Messages Deny
Manage Threads Deny
Read Message History Allow
Send Text to Speech Messages Deny
Send Voice Messages Deny
Create Polls Deny
Use Application Commands Allow
Use Activities Deny
Use External Apps Deny
Permissions for Bots

We're giving the bots a ton of power here, but only for these threads, I don't fully understand all the permissions but this is the combo that makes it run

Permission Name Setting
View Channel Allow
Manage Channel Allow
Manage Permissions Allow
Manage Webhooks Allow
Create Invite Allow
Send Messages Allow
Send Messages In Threads Allow
Create Public Threads SUPER IMPORTANT Allow
Create Private Threads SUPER IMPORTANT Allow
Embed Links Allow
Attach Files Allow
Add Reactions Allow
Use External Emoji Allow
Use External Stickers Allow
Mention @everyone etc etc. Allow
Manage Messages Allow
Pin Messages Allow
Manage Threads SUPER IMPORTANT Allow
Read Message History SUPER IMPORTANT Allow
Send Text to Speech Messages Inherit
Send Voice Messages Inherit
Create Polls Inherit
Use Application Commands Allow
Use Activities Inherit
Use External Apps Inherit
Permissions for Moderators

Basically the same as the bots.

Permission Name Setting
View Channel Allow
Manage Channel Allow
Manage Permissions Allow
Manage Webhooks Allow
Create Invite Allow
Send Messages Allow
Send Messages In Threads Allow
Create Public Threads SUPER IMPORTANT Allow
Create Private Threads SUPER IMPORTANT Allow
Embed Links Allow
Attach Files Allow
Add Reactions Allow
Use External Emoji Allow
Use External Stickers Allow
Mention @everyone etc etc. Allow
Manage Messages Allow
Pin Messages Allow
Manage Threads SUPER IMPORTANT Allow
Read Message History SUPER IMPORTANT Allow
Send Text to Speech Messages Inherit
Send Voice Messages Inherit
Create Polls Inherit
Use Application Commands Allow
Use Activities Inherit
Use External Apps Inherit

Now once this is all set up, you'll want to write a nice welcome message. but it needs to be sent in an embed by the bot, Pop up to #bot-spam and issue a command.
!tickets embed [colour] [channel] <title> <description> Bot Command Formatting Guide
This has a couple parts

Section What to enter Required?
Colour Name of a colour No, and I'd recommend not using it
Channel The ID of the channel you created  (remember you get this from discord developer mode being on, and you right clicking the channel, and selecting Copy ID) No, but for this case, YES
Title Now this needs to be formatted specifically, Put the title between  Double Quotes "like so" or part of it will shift over to the main message and make a mess YES
Description

The Message you want to show, in this DO NOT use double quotes for the text or it will put those in the message.

The description can be Multi-Line

YES

Once you have completed and submitted the command, you will be asked a few questions by the bot.

  1. Firstly it will ask you if you want a footer, press No
  2. Then it will ask if you want a thumbnail, press Yes
  3. It will ask for a URL, paste the link you copied waaaay back at the start of this process into the message box and hit enter (or send)
  4. It will then ask you if you want to include an image, press No
  5. And finally it will ask if you want to include a field, Press No

It'll have a think for a minute, then it will generate the embed and send it to the right channel, and you'll have your channel all set up to be fully integrated into a ticket panel!