Einen Discord-Bot erstellen
Auf dieser Seite
Ein Discord-Bot ist ein Programm, das sich mit einem eigenen Konto bei Discord anmeldet und auf Befehle antwortet, moderiert, Spiele startet oder Updates postet. Dafür brauchst du drei Dinge: eine Anwendung im Developer Portal von Discord, ein paar Zeilen Code und einen Ort, an dem dieser Code läuft.
In dieser Anleitung baust du einen funktionierenden Bot mit dem Slash-Befehl /ping, in Python (discord.py) oder JavaScript (discord.js) — nimm die Sprache, die du kennst.
Schritt 1: Anwendung und Bot-Token erstellen
- Developer Portal öffnen. Gehe zu discord.com/developers/applications, lege eine neue Anwendung an und gib ihr einen Namen.
- Token holen. Klicke auf der Seite Bot auf Reset Token und kopiere ihn. Discord zeigt ihn nur einmal an; wenn du ihn verlierst, setze ihn erneut zurück.
- Token geheim halten. Er ist das Passwort des Bots: Wer ihn hat, steuert deinen Bot. Füge ihn nie in Code ein, den du teilst, und committe ihn nie in Git.
Schritt 2: Den Bot auf deinen Server einladen
- Öffne die Seite Installation deiner Anwendung.
- Füge in den Standard-Installationseinstellungen für Server (Guilds) die Scopes
botundapplications.commandshinzu, dazu die Berechtigungen, die der Bot braucht — für diese Anleitung reicht Send Messages. - Öffne den angezeigten Installationslink, wähle deinen Server und autorisiere. Der Bot erscheint in der Mitgliederliste, offline, bis dein Code läuft.
Ältere Tutorials nutzen OAuth2 > URL Generator mit denselben zwei Scopes; das funktioniert weiterhin.
Schritt 3a: Den Bot in Python schreiben (discord.py)
discord.py 2.7 benötigt Python 3.8 oder neuer. Installiere es und erstelle bot.py:
pip install discord.py
import os
import discord
from discord import app_commands
class Bot(discord.Client):
def __init__(self):
super().__init__(intents=discord.Intents.default())
self.tree = app_commands.CommandTree(self)
async def setup_hook(self):
await self.tree.sync()
bot = Bot()
@bot.tree.command(description="Replies with Pong!")
async def ping(interaction: discord.Interaction):
await interaction.response.send_message("Pong!")
bot.run(os.environ["DISCORD_TOKEN"])
Starte ihn mit dem Token in einer Umgebungsvariablen, zum Beispiel DISCORD_TOKEN=your-token python bot.py unter Linux oder macOS.
Schritt 3b: Den Bot in JavaScript schreiben (discord.js)
discord.js 14 benötigt Node.js 18 oder neuer. Führe in einem neuen Ordner npm install discord.js aus und erstelle index.js:
const { Client, Events, GatewayIntentBits, REST, Routes, SlashCommandBuilder } = require('discord.js');
const commands = [new SlashCommandBuilder().setName('ping').setDescription('Replies with Pong!').toJSON()];
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once(Events.ClientReady, async (c) => {
await new REST().setToken(process.env.DISCORD_TOKEN).put(Routes.applicationCommands(c.user.id), { body: commands });
console.log(`Logged in as ${c.user.tag}`);
});
client.on(Events.InteractionCreate, async (interaction) => {
if (interaction.isChatInputCommand() && interaction.commandName === 'ping') await interaction.reply('Pong!');
});
client.login(process.env.DISCORD_TOKEN);
Starte ihn mit DISCORD_TOKEN=your-token node index.js. Sobald die Konsole Logged in zeigt, tippe /ping auf deinem Server.
Den Token aus dem Code heraushalten
- Nutze eine Umgebungsvariable oder eine
.env-Datei und trage.envvor deinem ersten Commit in.gitignoreein. - Wenn der Token öffentlich wird, setze ihn sofort auf der Seite Bot zurück. Der alte Token funktioniert dann nicht mehr, und du trägst den neuen dort ein, wo der Bot läuft.
- GitHub durchsucht öffentliche Repositorys nach Discord-Bot-Tokens und meldet sie an Discord, das sie widerrufen kann — ein versehentlich gepushter Token funktioniert deshalb oft nicht mehr, bevor du es merkst.
Schritt 4: Deinen Bot online halten
Dein Bot ist nur online, solange sein Code läuft. Schließt du das Terminal oder fährst den PC herunter, geht er offline. Du hast drei Möglichkeiten:
- Dein eigener PC — kostenlos, gut zum Entwickeln und Testen, aber der Bot schläft, wenn der Rechner schläft.
- Ein kostenloser Tarif — die meisten pausieren oder begrenzen Bots, die den ganzen Monat laufen; die Vor- und Nachteile vergleicht kostenloses Discord-Bot-Hosting.
- Bot-Hosting — ein kleiner, ständig laufender Server. Beim Discord-Bot-Hosting von HytHost lädst du dein Projekt hoch, wählst Node.js, Python oder eine andere Laufzeitumgebung, und das Panel startet den Bot und startet ihn nach einem Absturz neu.
Die komplette Anleitung, vom Upload bis zum automatischen Neustart, findest du unter Discord-Bot 24/7 hosten.
Betreibe deinen Bot, ohne den PC laufen zu lassen: Das Discord-Bot-Hosting von HytHost unterstützt Node.js, Python, Java, Go, C#, Bun und Lavalink — ab €0.89/Monat.
Bot-Hosting-Pakete ansehenHäufige Fragen
Ja. Anwendung, Token und Code kosten nichts, und discord.py und discord.js sind kostenlos. Du zahlst nur, wenn du ihn irgendwo hosten willst, wo er online bleibt.
Die Sprache, die du schon kennst. discord.py und discord.js sind beide ausgereift und decken die gesamte Discord-API ab. Kennst du keine von beiden, liest sich Python einfacher; JavaScript hat das größere Bibliotheks-Ökosystem.
Prüfe, ob du ihn mit dem Scope applications.commands eingeladen hast und ob der Code die Befehle synchronisiert hat. Globale Befehle können einen Moment brauchen, bis sie erscheinen; starte Discord neu, falls nicht.
Um den Text normaler Nachrichten zu lesen, braucht er den Message Content Intent, aktiviert im Developer Portal und im Code angefordert. Ohne ihn empfängt der Bot trotzdem Slash-Befehle, Erwähnungen und Direktnachrichten.
Setze ihn sofort auf der Seite Bot im Developer Portal zurück. Der alte Token funktioniert dann nicht mehr; trage den neuen dort ein, wo der Bot läuft, und entferne den alten aus deinem Code oder Verlauf.
Dein Bot, online ohne deinen PC
Das Discord-Bot-Hosting von HytHost betreibt Node.js, Python, Java, Go, C#, Bun oder Lavalink mit MySQL-Datenbank und Backups — ab €0.89/Monat.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursWar diese Anleitung hilfreich?