Creare il tuo primo bot Discord è più facile di quanto pensi. Non hai bisogno di un grado in informatica o anni di esperienza di programmazione. Nel 2026, costruire e deployare un bot funzionale prende un weekend se sei focalizzato.
Questa guida cammina attraverso l'intero processo: registrare il tuo bot, scrivere il tuo primo comando, testarlo localmente, e deployarlo vivo. Alla fine, avrai un bot correndo sul tuo server.
Capire Cosa È un Bot Discord
Un bot Discord è un programma che si connette a Discord via l'API e risponde a eventi: quando qualcuno digita un comando, reagisce a un messaggio, si unisce al server, etc.
Concetti chiave:
- Applicazione vs. Bot: La tua "applicazione" è registrata nel Discord Developer Portal. Il "bot" è l'account utente associato a quell'applicazione. Un'applicazione ha un bot.
- Token: Una chiave segreta che autentica il tuo bot. Non mai condividere. È come una password al tuo bot.
- Intenti: Permessi che lasciano il tuo bot vedere certi eventi (messaggi, reazioni, cambi status member, etc.). Abiliti solo quello che hai bisogno.
- Comandi: I bot rispondono a comandi. I bot moderni usano comandi slash (
/command) piuttosto che comandi prefisso (!command). I comandi slash sono ufficialmente supportati e raccomandati. - Eventi: Il tuo bot ascolta eventi Discord (messaggio mandato, reazione aggiunta, member unito) e reagisce.
Step 1: Registra il Tuo Bot nel Discord Developer Portal
Qui è aonde il tuo bot ufficialmente esiste nel sistema di Discord.
Processo:
- Vai a Discord Developer Portal
- Accedi con il tuo account Discord
- Clicca "New Application"
- Nominalo (e.g., "My First Bot")
- Clicca "Create"
- Sei adesso nelle impostazioni della tua applicazione
Adesso crea l'utente bot:
- Vai a sezione "Bot" (left sidebar)
- Clicca "Add Bot"
- Sotto il nome utente del bot, vedrai un bottone "TOKEN"
- Copia il token — così è come il tuo bot si autentica. Mantieni questo segreto. Non mai condividerlo pubblicamente o commetterlo a GitHub senza crittografia.
Configura impostazioni bot:
- Abilita "Message Content Intent" (lascia bot leggere testo messaggio)
- Abilita "Server Members Intent" (lascia bot vedere chi è nel server)
- Scorri giù a sezione "OAuth2"
Step 2: Genera il Link di Invito del Tuo Bot
Hai bisogno di un link di invito speciale per aggiungere il bot a un server.
Nel Developer Portal:
- Vai a "OAuth2" → "URL Generator"
- Sotto "SCOPES", controlla:
bot - Sotto "PERMISSIONS", seleziona cosa il bot può fare:
Send Messages(essenziale per qualunque bot)Manage Messages(se moderando)Add Reactions(se il bot reagisce a cose)Connect+Speak(se è un bot musica/voce)- Per imparare, solo seleziona
Send Messages+Read Messages(minimo viable)
- Copia l'URL generato al fondo
- Condividi questo URL con proprietari di server (o usalo tu stesso per aggiungere al tuo server di test)
Non usare permesso Administrator a meno che sia assolutamente necessario. Over-permissioning è un rischio di sicurezza.
Step 3: Scegli il Tuo Linguaggio e Framework
Due opzioni principali per principianti:
JavaScript (discord.js)
Discord.js è il framework bot Discord più popolare. Comunità enorme, molti tutorial, e documentazione eccellente.
Pro:
- Comunità più grande e più tutorial online
- Documentazione discord.js è eccellente
- Node.js è ampiamente usato e facile da imparare
- Deployment facile a la maggior parte piattaforme hosting
Contro:
- JavaScript ha stranezze (curva di apprendimento async/await)
- Node.js aggiunge overhead di memoria vs. Python
Inizia:
- Installa Node.js (v18+)
- Crea una cartella progetto
npm init -ynpm install discord.js
Python (discord.py)
Sintassi più semplice, grande per principianti, eccellente per imparare fondamentali.
Pro:
- Sintassi più facile da imparare
- Intuitivo per principianti
- Documentazione discord.py è buona
- Python è usato ovunque (data science, web, automazione)
Contro:
- Comunità più piccola che discord.js (ma ancora grande)
- Meno tutorial di JavaScript
- Uso di memoria leggermente più alto
Inizia:
- Installa Python 3.10+
- Crea una cartella progetto
pip install discord.py
Raccomandazione per principianti: Se conosci Python, usa discord.py. Se conosci JavaScript, usa discord.js. Se non conosci nessuno, Python è più facile da imparare, ma JavaScript ha più risorse online. Scegline uno e impegnati.
Step 4: Scrivi il Tuo Primo Bot (Esempio Python)
Ecco un bot Discord funzionante minimo in Python che risponde a un comando:
import discord
from discord.ext import commands
# Crea bot con prefisso comando e intenti
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print(f'{bot.user} ha connesso a Discord!')
@bot.command(name='hello', help='Dice ciao')
async def hello(ctx):
await ctx.send(f'Ciao {ctx.author.name}!')
@bot.command(name='ping', help='Risponde con pong')
async def ping(ctx):
await ctx.send('Pong!')
bot.run('YOUR_TOKEN_HERE')
Cosa fa:
- Si connette a Discord
- Ascolta per comandi
!helloe!ping - Risponde con un messaggio quando triggerato
Per mandarlo:
- Rimpiazza
'YOUR_TOKEN_HERE'con il tuo token effettivo da Step 1 - Salva come
bot.py - Manda:
python bot.py - In Discord, digita
!helloin qualunque canale - Bot risponde: "Hello [YourName]!"
Step 5: Testa Localmente
Prima di deployare, testa il tuo bot localmente (sul tuo computer).
Setup un server di test:
- Crea un server Discord privato per testing
- Aggiungi il tuo bot usando il link di invito da Step 2
- Manda il tuo codice bot localmente
- Digita comandi nel server di test
- Guarda per errori nel tuo terminale; riparali
Errori comuni:
- "Invalid token" — Hai copiato il token male o è scaduto. Rigenera nel Developer Portal.
- "Missing permissions" — Il bot non ha permesso per fare quell'azione in questo canale. Aggiungi permessi o usa un canale aonde il bot ha più diritti.
- "Intents are not enabled" — Hai bisogno di abilitare intenti nel Developer Portal (Message Content Intent, Server Members Intent, etc.)
Testa thoroughly. Un bot con bug in produzione è imbarazzante.
Step 6: Aggiungi Più Comandi
Adesso che capisci le basi, espandi con più feature.
Esempio Python — un semplice comando di economia:
@bot.command(name='balance', help='Controlla il tuo saldo di moneta')
async def balance(ctx):
# In un bot reale, questo queryerebbe un database
# Per adesso, solo ritorna un valore mock
await ctx.send(f'{ctx.author.name}, hai 100 monete!')
@bot.command(name='roll', help='Lancia un dado (1-6)')
async def roll(ctx):
import random
result = random.randint(1, 6)
await ctx.send(f'{ctx.author.name} ha lanciato: **{result}**')
Ogni comando è una semplice funzione. Aggiungi quanti ne vuoi.
Step 7: Deploya il Tuo Bot
L'hosting localmente funziona per testing, ma il tuo bot si ferma quando chiudi il laptop. Deploya a un server così corre 24/7.
Opzioni di Hosting Gratuito
Replit (più facile per principianti):
- Vai a Replit.com
- Crea nuovo Repl → Python (o Node.js)
- Incolla il tuo codice bot
- Clicca "Run"
- Replit lo ospita gratis (con limitazioni: potrebbe dormire dopo inattività)
Railway.app (moderno, affidabile):
- Vai a Railway.app
- Connetti GitHub (o carica file direttamente)
- Crea nuovo progetto → seleziona il tuo bot
- Railway deploya automaticamente
- Il tier gratuito include $5 di credito mensile
Glitch (simile a Replit):
- Vai a Glitch.com
- Crea nuovo progetto
- Incolla codice
- Glitch lo mantiene in esecuzione (entro limiti di tier gratuito)
Importante: Non fare hardcode il tuo token nel codice che butti su GitHub. Usa variabili di ambiente:
import os
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
bot.run(TOKEN)
Crea un file .env localmente (aggiungi a .gitignore così non è committato):
DISCORD_TOKEN=your_actual_token_here
Su Replit/Railway, settato il token come variabile d'ambiente segreta nelle impostazioni della piattaforma (non nel codice).
Errori Comuni di Principiante
Errore 1: Hardcoding il token Non mai mettere il token nel codice che butti su GitHub. I bot con token leaked sono compromessi istantaneamente. Usa variabili d'ambiente.
Errore 2: Non gestire errori Il tuo bot crasha su input inaspettato. Aggiungi gestione errori:
@bot.command()
async def divide(ctx, a: int, b: int):
try:
result = a / b
await ctx.send(result)
except ZeroDivisionError:
await ctx.send('Non posso dividere per zero!')
except ValueError:
await ctx.send('Per favore inserisci numeri validi!')
Errore 3: Non rispettare rate limit Discord limita quanto veloce puoi mandare messaggi. Non spammare l'API. Aggiungi delay tra azioni bulk.
Errore 4: Ignorare intenti Molti bot di principiante falliscono perché non abilitano intenti necessari nel Developer Portal. Controlla gli intenti che il tuo bot ha bisogno prima di deployare.
Errore 5: Scopo troppo ambizioso Non cercare di costruire un sistema di economia, moderazione, musica, e 50 comandi nel tuo primo bot. Inizia con 3-5 comandi semplici. Espandi una volta che sei comodo.
Prossimi Step
Adesso che hai un bot basico:
- Espandi funzionalità: Aggiungi più comandi, usa database per persistere dati, implementa logica complessa
- Usa comandi slash: Sintassi moderna
/commandpiuttosto che comandi prefisso - Aggiungi reazioni: Lascia utenti cliccare bottoni o reagire con emoji
- Connetti un database: Immagazzina dati utente, monete, preferenze (SQLite per principianti, PostgreSQL per scala)
- Unisciti a comunità: Le comunità di sviluppatore bot Discord (reddit.com/r/discordbots, server di supporto Discord.js) hanno risposte a ogni domanda
Risorse
- Documentazione discord.js: https://discord.js.org
- Documentazione discord.py: https://discordpy.readthedocs.io
- Documentazione Discord API: https://discord.com/developers/docs/intro
- Tutorial YouTube: Cerca "[discord.js/discord.py] tutorial" — quantità massiccia di contenuto
Il tuo primo bot Discord è un progetto di weekend. Il tuo primo bot Discord buono è un mese di pratica. Il tuo primo bot usato da 1,000 server è mesi di iterazione, sviluppo feature, e costruzione comunitaria. Inizia adesso, itera costantemente, e non overthink.