Discord Ticket-Bot erstellen und einrichten (2026)
Wenn Fragen in #general untergehen, hilft ein Ticket-Bot: Mitglieder öffnen einen privaten Kanal mit deinem Team, ihr klärt das Anliegen, das Ticket wird geschlossen. Diese Anleitung zeigt die Einrichtung Schritt für Schritt, vergleicht gehostete und selbst gehostete Bots und zeigt den Kern im Code.
Was ein Ticket-Bot macht
- Ein Mitglied klickt im Ticket-Panel auf einen Button oder nutzt einen Befehl.
- Der Bot legt einen privaten Kanal oder einen privaten Thread an, den nur das Mitglied und deine Staff-Rolle sehen.
- Dein Team hilft dort weiter.
- Jemand schließt das Ticket. Optional landet ein Transkript im Log-Kanal.
Gehostet oder selbst gehostet?
| Öffentlicher, gehosteter Bot | Selbst gehosteter Bot (Quellcode) | |
|---|---|---|
| Einrichtung | Minuten | etwa eine Stunde |
| Kosten | Gratis-Stufe, Extras oft im Abo | einmal Code + Hosting |
| Wer sieht Ticket-Inhalte | der Betreiber des Bots | nur du |
| Eigene Funktionen | was die Einstellungen hergeben | alles, was du programmierst |
| Name und Avatar | deren Bot | dein eigener Bot |
Voraussetzungen
- Ein Discord-Server, auf dem du Server verwalten darfst
- Eine Staff-Rolle für alle, die Tickets beantworten
- Ein Rechner für den Bot: dein PC zum Ausprobieren, ein kleiner VPS oder Heimserver für Dauerbetrieb
- Node.js oder Docker
Schritt 1: Bot-Anwendung anlegen
- Im Discord Developer Portal auf New Application klicken.
- Namen vergeben, dann den Tab Bot öffnen.
- Reset Token klicken und den Token kopieren. Behandle ihn wie ein Passwort: nie posten, nie in Git einchecken.
Schritt 2: Bot mit passenden Rechten einladen
Unter OAuth2 → URL Generator die Scopes bot und applications.commands wählen. Ein Ticket-Bot braucht typischerweise:
- Kanäle ansehen und Nachrichten senden
- Kanäle verwalten (Ticket-Kanäle anlegen und löschen)
- Nachrichtenverlauf lesen
- bei Threads: Private Threads erstellen und Nachrichten in Threads senden
Administrator ist bequem, aber unnötig. Gib der Bot-Rolle nur, was sie braucht.
Schritt 3: Konfigurieren und starten
.env.examplenach.envkopieren.- Bot-Token, Server-ID und die ID der Staff-Rolle eintragen. (IDs kopierst du per Rechtsklick, wenn in Discord der Entwicklermodus an ist.)
- Slash-Befehle registrieren, zuerst auf einem Testserver; dort erscheinen Server-Befehle sofort.
- Mit
docker compose upodernpm startstarten und prüfen, ob der Bot online ist.
Der Kern im Code: ein privater Ticket-Kanal
Mit discord.js 14 machst du den Kanal über Permission Overwrites beim Anlegen privat (laut discord.js-Guide):
import { ChannelType, PermissionsBitField } from "discord.js";
const channel = await interaction.guild!.channels.create({
name: `ticket-${interaction.user.username}`,
type: ChannelType.GuildText,
permissionOverwrites: [
{ id: interaction.guild!.id, deny: [PermissionsBitField.Flags.ViewChannel] }, // @everyone
{ id: interaction.user.id, allow: [PermissionsBitField.Flags.ViewChannel] },
{ id: STAFF_ROLE_ID, allow: [PermissionsBitField.Flags.ViewChannel] },
],
});Die Server-ID ist zugleich die ID der Rolle @everyone. Deshalb versteckt die erste Regel den Kanal vor allen anderen.
Schritt 4: Den Ablauf durchspielen
Mit einem zweiten Konto oder einer Freundin:
- Ticket öffnen: Erscheint ein privater Kanal oder Thread?
- Sehen ihn nur das Mitglied und die Staff-Rolle?
- Ticket schließen: Wird es nach der Bestätigung geschlossen?
- Bei Transkripten: Landet das Transkript im Log-Kanal und nur dort?
Discords Developer Policy verlangt außerdem eine Möglichkeit, Probleme mit dem Bot zu melden. Trag deshalb eine Kontaktzeile ins Bot-Profil ein.
Worauf du bei Ticket-Bot-Quellcode achten solltest
- Aktuelle Bibliothek, etwa discord.js 14
- Slash-Befehle und Buttons statt alter Präfix-Befehle wie
!ticket - Saubere Permission Overwrites: Der Ticket-Kanal muss für @everyone unsichtbar sein
- Dockerfile und
.env.example - Automatisierte Tests und eine README, die dich vom ZIP zum laufenden Bot bringt
- Eine klare Lizenz: Wo darfst du den Bot einsetzen?
Discord Ticket Bot Starter
Der Discord Ticket Bot Starter ist ein selbst gehosteter Ticket-Bot in TypeScript für deinen privaten oder Community-Server. Laut Produktseite: /ticket-Panel mit bis zu 5 Themen und Grundabfrage, private Ticket-Kanäle oder Threads, Übernahme durch Staff, Schließen mit Bestätigung, Transkripte als HTML/Text (abschaltbar, Standard: Löschung nach 30 Tagen), Limit und Cooldown pro Nutzer, DE/EN, SQLite, Dockerfile und automatisierte Tests. Voraussetzungen: Node.js 22.13 oder neuer (oder Docker), eigener Bot-Token, eigenes Hosting. Preis: 19 € inkl. MwSt. Lizenz: nur eigene, nicht gewerbliche Nutzung auf privaten und Community-Servern (Lizenz). Nicht mit Discord Inc. verbunden.
Häufige Probleme
- Slash-Befehle fehlen: Bot ohne
applications.commandseingeladen oder globale Befehle noch nicht verteilt. Neu einladen oder auf dem Testserver registrieren. - „Missing Permissions“: Die Bot-Rolle steht zu tief oder hat kein „Kanäle verwalten“. Rolle nach oben schieben.
- Mitglied sieht sein Ticket nicht: Permission Overwrites des Kanals prüfen.
- Bot nachts offline: Er läuft auf deinem PC. Auf einen VPS umziehen.
FAQ
Ist der Ticket Bot Starter ein Abo?
Nein. 19 € inkl. MwSt., einmal bezahlt, Lieferung als ZIP. Das Hosting übernimmst du selbst.
Muss ich programmieren können?
Für die Grundeinrichtung nicht. Du trägst Werte in eine .env-Datei ein und startest den Bot. Programmieren brauchst du nur für eigene Funktionen.
Kanäle oder Threads für Tickets?
Beides hält Tickets privat. Kanäle bleiben in der Seitenleiste sichtbar, private Threads halten die Kanalliste kurz. Der Ticket Bot Starter kann beides.
Darf ich den Ticket Bot Starter auf dem Server meines Shops oder meiner Firma nutzen?
Nein. Die Lizenz gilt nur für eigene, nicht gewerbliche Nutzung auf privaten und Community-Servern, nicht für Shops, Unternehmen oder Server mit bezahlten Mitgliedschaften oder Rollen (Lizenz).
Gibt es den Bot auf Deutsch?
Ja, die Meldungen gibt es auf Deutsch und Englisch.
Weitere Guides
_Nicht mit Discord Inc. verbunden und nicht von Discord unterstützt. „Discord“ ist eine Marke der Discord Inc._