Discord Ticket Bot

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.

Self-hostedNo game server neededNo telemetrySQLite · MySQL · PostgreSQLDiscord.js v14

Built on Discord.js v14, AGPL-3.0. Every number on this page is live: see the stats

Diese Seite auf Deutsch

Why this exists

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.

Get started

Everything in three steps

Verify your account, manage your bot and track its usage.

Step 1

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 Key
Manage

Dashboard

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 Dashboard
Insights

Stats

Browse anonymous live statistics of the MSK Ticket Bot across all servers: hosted transcripts, active API keys, tier distribution and storage usage.

View Stats
Features

A 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.

How verification works

From nothing to a running bot in three minutes

1

Sign in with Discord

No second password to create.

2

Select your server

We show the servers you administer, you pick one.

3

Copy the API key

It appears straight away, drop it into the bot’s .env.

4

Start the bot

Host it yourself, or switch on hosting with us.

New · self-hosted

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.

Hosted & Business

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.

Transcript service

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

Freeforever
  • 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
Get API Key

Premium

€4.99/ month

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
Start free trial
Most popular

Hosted

€9.99/ month

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
Start free trial

Business

€19.99/ month

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
Start free trial

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.

Before you ask

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.