To see more of my work, including more screenshots, go to https://kingrabbit.dev/
Ticket Bot is an advanced ticketing management system, with it's most unique selling point being the ticket panels being fully customisable from inside Discord. The bot stores all of its data per-server, meaning one instance of the bot can handle the tickets for an unlimited number of discord servers. The bot allows users to create tickets using the ticket configs provided by server staff, with extensive customisability being supported. Server staff can setup which users and roles (and optionally the ticket owner) can manage the ticket; they can also configure the category, name template, maximum number of tickets per user, and default role overrides for each individual ticket config. Users and roles can be added to tickets as either a viewer or a manager. As previously stated, the ticket panels and starting messages are fully configurable from inside Discord.
Video demonstration: https://youtu.be/KiS5SUbkiZw
The name template and the message content for ticket configs can contain the following variables:
| Variable | Result |
|---|---|
| {user} | The ticket owner's username |
| {tag} | The ticket owner's tag |
| {id} | The ticket owner's user ID |
| {mention} | Pings the ticket owner |
<> required parameter
[] optional parameter
Creates a ticket using a ticket config, as if the user had clicked the corresponding button.
Adds a user or a role to a ticket, giving them perms to either view or manage the ticket. This command can only be run be a user with perms to manage the respective ticket.
Removes a user or a role from a ticket. This command can only be run be a user with perms to manage the respective ticket.
Closes the current ticket. This command can only be run be a user with perms to manage the respective ticket.
Manages the server's ticket configs. This is an admin-only command, although additional overrides can be setup with Server Settings > Integrations. Autocompletion is provided for ticket config names.
- Lists all ticket configs that have been set up.
- Displays more information about a ticket config.
- Creates a new ticket config.
- Edits an existing ticket config.
- Opens the message builder to create the message that appears at the start of tickets using the provided ticket config. If the message is left completely blank, none will be sent.
- Sets up a default permission override for a user or role for all future tickets created using the ticket config. For example, this can be used to add staff as ticket managers to all support tickets.
-
Removes the default permission override for a user or role that was created using
/ticket-config set-default-override. - Creates a clone of a ticket config.
- Deletes a ticket config.
Manages the server's ticket panels. This is an admin-only command, although additional overrides can be setup with Server Settings > Integrations. Autocompletion is provided for panel names.
- Lists all ticket panels that have been set up.
- Sends a ticket panel to a channel. If no channel was provided, the current channel will be used.
-
Creates a new ticket panel with the provided name. This immediately opens up the message builder for the panel, although this can later be reopned with
/panel edit. - Edits an existing ticket panel by opening up the message builder for it.
- Creates a clone of a ticket panel.
- Deletes a ticket panel.
The bot is built using Node.js 20. To run the bot, install the required dependencies with npm i and then run the bot with npm run start.
The bot requires environment variables to be set (optionally through the creation of a .env file):
BOT_ID- The bot's user IDBOT_TOKEN- The bot tokenMONGO_URI- The MongoDB URI the bot should connect to. This database will be used to store the ticket configs, ticket panels, and active tickets.
