Discord Ticket Bot that stays on your server
A self-hosted ticket system for Discord admins who want their transcripts on their own machine. Free, no telemetry, no basics behind a paywall.
Built on Discord.js v14, AGPL-3.0. Every number on this page is live: see the stats
Your support history is not yours
One click and the history is gone
A moderator deletes a ticket channel and the only record of what happened goes with it. Four weeks later somebody asks, and you have nothing to show.
Every transcript sits with someone else
Your member data, your disputes, your payout arguments end up on a provider’s infrastructure, and you never find out what happens to them there.
The basics cost extra
Transcripts, attachments, more than one panel. The very things you got the bot for sit behind a paywall, billed per server.
Everything in three steps
Verify your account, manage your bot and track its usage.
Verify
Sign in with Discord and select your server. Your personal API key is generated instantly and unlocks the MSK transcript service for your bot.
Get API KeyDashboard
Set up a custom domain for your transcripts and, on Premium, fully manage a hosted bot: start, stop, restart, one-click update and stream live logs.
Open DashboardStats
Browse anonymous live statistics of the MSK Ticket Bot across all servers: hosted transcripts, active API keys, tier distribution and storage usage.
View StatsA full feature set out of the box
Everything a serious support team needs. No add-ons, no paywalled basics.
Ticket Types
Up to 25 configurable types, each with its own emoji, color, category and questions.
Questionnaires
Modal forms with up to 5 questions shown when a ticket is opened.
Claim System
Staff claim and release tickets. Embed, topic and channel name update automatically.
Priorities
Low, Medium, High or Urgent, predefined per ticket type or set live via /priority, reflected in the channel topic and opening embed.
Rating System
1 to 5 star feedback after closing, posted automatically to a channel of your choice.
Auto-Close & Reminders
Close inactive tickets automatically and ping staff after X hours without a reply.
HTML Transcripts
Self-contained HTML with avatars embedded as Base64, no CDN needed, served via a public link.
Canned Responses
Pre-defined snippets sent with one command, with placeholders and autocomplete.
Custom Domain
Premium servers serve transcripts under their own domain with automatic SSL.
Lock & Blacklist
Lock a ticket to mute the user, or blacklist users from opening tickets entirely.
Reopen Tickets
Reopen a closed ticket with one click or /reopen. It restores access and moves the ticket back, so you never have to recreate it.
User Notifications
Users can opt in to a DM when staff first replies, rate-limited to avoid spam.
Broadcast
Send a single message to every open ticket channel at once.
Flexible Database
Runs on SQLite with zero setup, or connect your own MySQL, MariaDB or PostgreSQL, with a migration script to move existing data.
Self-Hosted Dashboard
Optional built-in web dashboard to manage tickets, stats, config and the bot itself from the browser. Disabled by default, secure by default.
From nothing to a running bot in three minutes
Sign in with Discord
No second password to create.
Select your server
We show the servers you administer, you pick one.
Copy the API key
It appears straight away, drop it into the bot’s .env.
Start the bot
Host it yourself, or switch on hosting with us.
A web dashboard, right in your bot
Start the bot with npm run dashboard and manage everything from the browser instead of over SSH: tickets, statistics, the full config and the bot process itself. It ships with the bot and works on every tier, including the free one. It stays fully optional: npm start keeps running the plain bot with no web server at all.
Secure by default: off until you enable it, bound to localhost so it is never exposed by accident, and it refuses to start on a public interface without HTTPS. Login is Discord OAuth, access is granted per role and per user, and every change is written to an audit log.
Tickets & Stats
Browse and filter tickets, claim, close, reopen, move and reply, with live team statistics.
Config & Locales
Edit config.jsonc, snippets, .env and the language files in a form or raw view with syntax highlighting.
Permissions
Grant dashboard access per role or per user, each with fine-grained rights, backed by an audit log.
Reply as yourself
Answers you send from the dashboard appear in Discord under your own name and avatar, not the bot.
Or let us host it for you
Prefer not to run a server at all? Set hosting up yourself in the dashboard: enter your bot token, client ID and client secret, and we install the bot, start it and check that it really came up. Your bot then gets its own address, and your whole team signs in there with Discord. No SSH access or server knowledge required.
Set up yourself
Three values from the Discord developer portal and one button. No ticket, no waiting.
Stays reversible
Remove hosting whenever you want. We keep the installation for 14 days, so one click brings it back with your tickets intact.
Bot control and live logs
Start, stop, restart and update the bot, and read its output live, which is exactly what you need when it will not come up.
Its own address
The bot dashboard runs on its own address with its own Discord login, so your team gets in too. Bring your own domain if you prefer.
Choose your tier
Host transcripts as public links. Premium tiers come with a 14-day free trial, no credit card required. Cancel anytime. No VAT is added (§ 19 UStG), the price you see is the price you pay.
Basic
- Transcript hosting & links
- Up to 10 MB per transcript
- File attachments
- Custom domain
- Remove the MSK branding
- 30 days storage
- 30 uploads / hour
- Hosted bot management
Premium
or €49.00 / year, 2 months free
- Transcript hosting & links
- Up to 50 MB per transcript
- Attachments up to 100 MB per ticket
- Custom domain
- Remove the MSK branding
- 180 days storage
- 60 uploads / hour
- Hosted bot management
Hosted
or €99.00 / year, 2 months free
- Transcript hosting & links
- Up to 100 MB per transcript
- Attachments up to 200 MB per ticket
- Custom domain
- Remove the MSK branding
- 365 days storage
- 120 uploads / hour
- Hosted bot management
Business
or €199.00 / year, 2 months free
- Transcript hosting & links
- Up to 200 MB per transcript
- Attachments up to 500 MB per ticket
- Custom domain
- Remove the MSK branding
- 10 years storage
- 300 uploads / hour
- Hosted bot management
Plans are per guild
A subscription applies to a single Discord server. Each guild you manage has its own plan, upgrade them independently from each guild’s dashboard.
The questions we get most
Is the bot free, or is that a trial balloon?
The bot is AGPL-3.0 and stays free, including tickets, panels and transcript generation. What you pay for is the hosting around it: longer retention, attachments, your own domain, a managed process.
What happens to my ticket data?
The ticket database lives with you, in your SQLite or your own SQL server. Only the transcripts your bot actively uploads reach us, and you can delete them at any time. There is no telemetry, and the code is open to check.
I already run a ticket bot. Is it worth switching?
Only if one of two things bothers you: that your transcripts sit with someone else, or that the basics cost money. Otherwise stay where you are.
Do I need a game server or FiveM?
No. It is a plain Discord bot. It needs Node.js and a bot token, nothing else.
What happens if I cancel?
You can cancel any time in the billing portal. The bot keeps running, it is yours. Transcripts already stored with us stay for another 30 days, which is enough time to save them.
Your first ticket runs in three minutes
Sign in, pick a server, copy the key. After that you decide whether you host it or we do.
Also from MSK Scripts:Discord Giveaway Botfree to invite, restart-safe and multilingual.