Setup guide
Get Rocket Tickets running in your Discord server. Most people are done in about 15 minutes.
Before you start
You need:
- Your license key and the download, both in your dashboard under My products.
- A computer or server that stays on, with Node.js 20 or newer. A small VPS works best; a home PC works while it’s switched on.
- A Discord server where you have Manage Server permission.
Create the Discord bot
- Make an applicationOpen the Discord Developer Portal, press New Application and give it a name. This is the name members see.
- Copy the bot tokenGo to Bot, press Reset Token and copy it. Turn on Message Content Intent on the same page; transcripts need it. Never share the token.
- Copy the Client ID and SecretGo to OAuth2. Copy the Client ID, then press Reset Secret and copy the Client Secret. These power the dashboard login.
- Add the dashboard redirectStill under OAuth2, add a redirect: your dashboard address followed by
/callback, for examplehttp://localhost:3000/callbackorhttps://tickets.yourdomain.com/callback. Save. - Invite the botOpen this link with your Client ID filled in, pick your server and authorize:
https://discord.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&scope=bot+applications.commands&permissions=8
Get a free database
Rocket Tickets stores tickets and settings in MongoDB. The free tier of MongoDB Atlas is enough for almost every server.
- Create a free clusterSign up at MongoDB Atlas and create a free M0 cluster.
- Create a database userUnder Database Access, add a user with a password. Write both down.
- Allow your serverUnder Network Access, add the IP address of the machine that runs the bot.
- Copy the connection stringPress Connect → Drivers and copy the string that starts with
mongodb+srv://. Put your password in place of<password>.
Install Rocket Tickets
Download the zip from your dashboard, unzip it, open a terminal in the rocket-tickets folder and run:
npm install
cp config.example.json config.json
On Windows Command Prompt, use copy config.example.json config.json instead of cp.
Fill in config.json
Open config.json in any text editor and fill in:
| Setting | What to put there |
|---|---|
token | Your bot token |
clientId, clientSecret | From the OAuth2 page |
guildId | Your server ID. Turn on Developer Mode in Discord (Settings → Advanced), then right-click your server → Copy Server ID |
mongoUri | Your MongoDB connection string |
licenseKey | Your RKT-… key from the dashboard |
dashboard.url | Where you’ll open the bot’s dashboard. Must match the redirect you added, without /callback |
dashboard.sessionSecret | Any long random text |
Start the bot
npm start
You should see the license marked Valid, Connected to MongoDB and Logged in as …. Then open your dashboard address in a browser and log in with Discord.
Set up tickets
- SettingsPick Components V2 or classic embeds, your log, transcript and review channels, and your support roles.
- FeaturesSwitch off anything you don’t need. Its buttons and commands disappear from Discord.
- Ticket typesCreate types like General Support or Purchases, and add questions if you want answers before a ticket opens.
- PanelsBuild the message members click to open tickets, pick a channel and press Send to Discord.
- Messages and saved repliesChange any wording to match your server, and save answers your team sends often.
Keep it online
On a server, use pm2 so the bot restarts by itself after crashes and reboots:
npm install -g pm2
pm2 start src/index.js --name rocket-tickets
pm2 save
pm2 startup
Your license
- The bot checks your license when it starts and every 6 hours. If our server can’t be reached, it keeps running for up to 72 hours.
- Moving to another Discord server: stop the bot, open your dashboard, press Reset server, then start the bot in the new server. You can reset once every 24 hours.
- New versions: download the latest zip from your dashboard and replace the files, keeping your
config.json.
Troubleshooting
“License key not found” or “bound to a different Discord server”
Check that licenseKey is copied exactly, and that guildId is the server you want. If you moved servers, reset the binding in your dashboard.
Slash commands don’t show up
Make sure you invited the bot with the link above (it includes applications.commands), then restart the bot. Discord can take a minute to show them.
Transcripts are empty
Turn on Message Content Intent in the Developer Portal under Bot, then restart.
The bot can’t create ticket channels
Give the bot’s role Manage Channels and access to the category tickets are created in. The bot’s role must be above the roles it needs to manage.
Dashboard login fails
The redirect in the Developer Portal must match dashboard.url followed by /callback exactly, including http or https.
