Een Discord-bot in Python schrijven kost een avond. Hem 24/7 online houden kost een hostingpakket. Hieronder de volledige weg: van het aanmaken van de botapplicatie tot een werkende bot op het gamepanel van HostValues.
Stap 1: botapplicatie aanmaken
- Ga naar het Discord Developer Portal en klik op "New Application".
- Geef de applicatie een naam en klik op "Create".
- Ga naar het tabblad "Bot" en klik op "Reset Token" om een token te genereren. Kopieer het token en sla het veilig op. U ziet het maar een keer.
- Zet onder "Privileged Gateway Intents" de volgende opties aan: Presence Intent, Server Members Intent en Message Content Intent.
- Ga naar "OAuth2", selecteer onder Scopes "bot" en onder Bot Permissions de rechten die uw bot nodig heeft (minimaal: Send Messages, Read Message History).
- Kopieer de gegenereerde URL en open die in uw browser om de bot aan uw server toe te voegen.
Stap 2: de code
Maak een map aan met twee bestanden:
requirements.txt
discord.py>=2.5 python-dotenv
bot.py
import os
import discord
from discord.ext import commands
from dotenv import load_dotenv
load_dotenv()
bot = commands.Bot(
command_prefix="!",
intents=discord.Intents.all()
)
@bot.event
async def on_ready():
print(f"Online als {bot.user}")
@bot.command()
async def ping(ctx):
await ctx.send(f"Pong! Latency: {round(bot.latency * 1000)}ms")
@bot.command()
async def hallo(ctx):
await ctx.send(f"Hoi {ctx.author.display_name}!")
bot.run(os.getenv("DISCORD_TOKEN"))
.env
DISCORD_TOKEN=uw_token_hier
Test lokaal: pip install -r requirements.txt, daarna python bot.py. Typ !ping in uw Discord-server. Werkt het? Door naar hosting.
Stap 3: hosten op het gamepanel
- Bestel een Discord-botpakket.
- Upload
bot.py,requirements.txten.envvia het tabblad Files. Upload niet de map__pycache__of een virtuele omgeving. - Stel in het tabblad Startup het startbestand in op
bot.pyen kies Python 3.12. - Start de server. Het panel installeert automatisch de packages uit
requirements.txt. - In de console verschijnt "Online als BotNaam". Uw bot is nu 24/7 bereikbaar.
Slash commands toevoegen
Slash commands zijn de moderne manier om met bots te werken. Ze verschijnen in het Discord-menu als u / typt:
@bot.tree.command(name="info", description="Toont serverinformatie")
async def info(interaction: discord.Interaction):
guild = interaction.guild
await interaction.response.send_message(
f"{guild.name} heeft {guild.member_count} leden."
)
# Voeg toe aan on_ready:
@bot.event
async def on_ready():
await bot.tree.sync()
print(f"Online als {bot.user}")
De drie fouten die iedereen maakt
- Token in de code. Zet het token in een
.env-bestand, niet inbot.py. Een token dat op GitHub terechtkomt wordt door Discord automatisch ingetrokken. - Intents niet aangezet. Als u
discord.Intents.all()gebruikt maar de intents niet in het Developer Portal aanvinktt, start de bot maar reageert hij op niets. - requirements.txt vergeten. Het panel kan geen packages installeren als het bestand er niet is. Lokaal werkt het omdat u handmatig hebt geinstalleerd.
Hoeveel RAM heeft mijn bot nodig?
Een simpele commando- of moderatiebot: minder dan 256 MB. Het kleinste pakket van 1 GB is ruim voldoende. Een muziekbot op meerdere servers: 2 GB.
Kan ik meerdere bots op een pakket draaien?
Ja. Gebruik pm2 (npm install -g pm2) om meerdere Python-scripts tegelijk te draaien. Drie kleine bots passen in 1 GB.
discord.py of discord.js?
Python als u begint met programmeren: de syntax is leesbaarder. JavaScript als u al webervaring heeft of een dashboard wilt bouwen. Beide bibliotheken zijn actief onderhouden en evenwaardig in functionaliteit.
Bekijk de Discord-botpakketten of de KVM VPS als u naast de bot ook een website of database draait.