Discord-Bot programmieren mit discord.js v14: Anleitung und Starter-Template (2026)
Du willst deinen eigenen Discord-Bot programmieren? Mit discord.js, der beliebtesten JavaScript-Bibliothek für Discord, geht das schneller als gedacht. In dieser Anleitung legst du einen Bot an, schreibst deinen ersten Slash-Befehl und bringst ihn online. Am Ende zeigen wir dir, wie ein Starter-Template dir die lästige Grundarbeit abnimmt.
Was du brauchst
- Node.js (eine aktuelle LTS-Version) und einen Code-Editor wie VS Code
- Grundkenntnisse in JavaScript: Variablen, Funktionen,
async/await - Einen Discord-Server, auf dem du Bots hinzufügen darfst (am besten einen eigenen Testserver)
Schritt 1: Bot im Developer Portal anlegen
- Öffne das Discord Developer Portal und klicke auf New Application.
- Gib einen Namen ein. So heißt dein Bot später.
- Gehe zum Tab Bot, klicke auf Reset Token und kopiere den Token.
- Notiere dir unter General Information die Application ID.
Der Token ist das Passwort deines Bots. Laut Discords Developer Terms (Abschnitt 2d) musst du ihn vertraulich behandeln; in Open-Source-Projekten darf er nicht stehen. Er gehört in eine .env-Datei, die nie in Git landet.
Schritt 2: Projekt einrichten
mkdir mein-bot && cd mein-bot
npm init -y
npm install discord.js dotenvLege eine Datei .env an:
DISCORD_TOKEN=dein-token
CLIENT_ID=deine-application-id
GUILD_ID=id-deines-testserversDie Server-ID kopierst du per Rechtsklick auf den Server, nachdem du in den Discord-Einstellungen den Entwicklermodus aktiviert hast. Schreib .env gleich in deine .gitignore.
Schritt 3: Den ersten Slash-Befehl registrieren
Slash-Befehle musst du bei Discord anmelden, bevor sie erscheinen. Auf einem einzelnen Server (Guild) geht das sofort, deshalb testest du dort. Datei deploy.js:
require('dotenv').config();
const { REST, Routes, SlashCommandBuilder } = require('discord.js');
const commands = [
new SlashCommandBuilder().setName('ping').setDescription('Antwortet mit Pong'),
].map((c) => c.toJSON());
const rest = new REST().setToken(process.env.DISCORD_TOKEN);
rest
.put(Routes.applicationGuildCommands(process.env.CLIENT_ID, process.env.GUILD_ID), { body: commands })
.then(() => console.log('Befehle registriert'))
.catch(console.error);Starte es einmal mit node deploy.js.
Schritt 4: Den Bot schreiben
Datei index.js:
require('dotenv').config();
const { Client, Events, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once(Events.ClientReady, (c) => {
console.log(`Online als ${c.user.tag}`);
});
client.on(Events.InteractionCreate, async (interaction) => {
if (!interaction.isChatInputCommand()) return;
if (interaction.commandName === 'ping') {
await interaction.reply('Pong!');
}
});
client.login(process.env.DISCORD_TOKEN);Für Slash-Befehle reicht der Intent Guilds. Willst du Nachrichteninhalte lesen (etwa für einen Filter), brauchst du zusätzlich GuildMessages und MessageContent und musst den Message-Content-Intent im Developer Portal aktivieren.
Schritt 5: Bot einladen und testen
Im Developer Portal unter OAuth2 → URL Generator wählst du die Scopes bot und applications.commands und die Rechte, die dein Bot braucht (für den Anfang: Nachrichten senden). Öffne die URL, wähle deinen Testserver, fertig. Jetzt node index.js starten und im Server /ping eingeben.
Vom Testbot zum echten Projekt
Ein index.js mit allem drin wird schnell unübersichtlich. Echte Bots brauchen:
- Einen Command-Loader: jeder Befehl in einer eigenen Datei im Ordner
commands/, automatisch geladen. - Zentrale Fehlerbehandlung, damit ein Fehler in einem Befehl nicht den ganzen Bot abstürzen lässt.
- Logging, am besten strukturiert (JSON), damit du Probleme findest.
- Ein Deploy-Skript für globale Befehle und einen Testserver.
- Graceful Shutdown: sauber beenden, statt mitten in einer Antwort abzubrechen.
- Ein Dockerfile, damit der Bot überall gleich läuft.
Das alles selbst zu bauen kostet ein Wochenende, bevor du überhaupt an deiner eigentlichen Idee arbeitest.
Abkürzung: Discord Bot Starter für 19 €
Der Botnexio Discord Bot Starter ist genau diese Grundlage. Laut Produktseite enthält er:
- discord.js v14 mit automatischem Slash-Command-Loader
- Beispielbefehle
/ping,/help(listet alle Befehle) und/poll(Reaktions-Umfrage) - Zentrale Fehlerbehandlung und JSON-Logging
- Ein Skript zum Registrieren der Befehle, global oder auf einem Testserver
- Graceful Shutdown und Dockerfile
Bewusst nicht enthalten: Datenbank und Dashboard. Lieferung: ZIP direkt nach der Zahlung. Lizenz: Nutzung in eigenen Projekten erlaubt, auch kommerziell; Weiterverkauf der Vorlage selbst nicht. Preis: 19 € inkl. MwSt.
Lieber gleich einen fertigen Bot? Der Support Ticket Bot (39 €) und der Anti-Scam Bot (25 €) sind ebenfalls mit discord.js gebaut und laufen auf deinem eigenen Server. Mehr zur Entscheidung im Guide Discord-Bot kaufen oder erstellen lassen?
Den Bot online halten
Solange node index.js auf deinem PC läuft, ist der Bot online. Schaltest du den PC aus, ist er weg. Für Betrieb rund um die Uhr:
- Kleiner VPS: der übliche Weg. Mit Docker startest du den Bot dort mit einem Befehl.
- Heimserver oder Raspberry Pi: günstig, wenn er ohnehin läuft.
- Prozessmanager: sorgt dafür, dass der Bot nach einem Absturz neu startet (Docker kann das mit einer Restart-Policy auch).
Typische Fehler
- Befehl erscheint nicht: Bot ohne
applications.commandseingeladen, oderdeploy.jsnicht ausgeführt. Globale Befehle können etwas brauchen, Guild-Befehle erscheinen sofort. - „Used disallowed intents": Du forderst einen privilegierten Intent an, der im Developer Portal nicht aktiviert ist.
- „The application did not respond": Dein Bot antwortet nicht schnell genug. Bei längeren Aufgaben zuerst
interaction.deferReply()aufrufen. - Token geleakt: sofort im Portal neu erzeugen.
FAQ
Kann ich einen Discord-Bot ohne Programmieren erstellen?
Mit fertigen Bots ja: Du füllst nur eine .env-Datei aus und startest ihn. Für eigene Funktionen brauchst du JavaScript-Grundlagen.
Ist discord.js kostenlos?
Ja, discord.js ist eine Open-Source-Bibliothek. Kosten entstehen nur fürs Hosting, wenn du einen Server mietest.
Warum discord.js v14?
Es ist die aktuelle Hauptversion mit voller Unterstützung für Slash-Befehle, Buttons und Modals. Viele ältere Tutorials nutzen v12 oder v13 und funktionieren so nicht mehr.
Brauche ich eine Datenbank?
Für einfache Bots nicht. Sobald du Daten dauerhaft speichern willst (Level, Einstellungen), lohnt sich eine. Der Discord Bot Starter lässt sie bewusst offen.
Darf ich meinen Bot später verkaufen?
Deinen eigenen Code ja. Halte dich an Discords Developer Terms und Developer Policy und verkaufe Code, nicht deinen Bot-Account.
Weniger Setup, mehr Bot
Überspring das Grundgerüst. Bau deine Idee.
→ Discord Bot Starter für 19 € holen