Cómo crear un bot de Discord
En esta página
Un bot de Discord es un programa que inicia sesión en Discord con su propia cuenta y responde a comandos, modera, juega o publica novedades. Para crear uno necesitas tres cosas: una aplicación en el Developer Portal de Discord, unas pocas líneas de código y un lugar donde ejecutar ese código.
Esta guía construye un bot funcional con un comando de barra /ping, en Python (discord.py) o JavaScript (discord.js): elige el lenguaje que conozcas.
Paso 1: Crea la aplicación y el token del bot
- Abre el Developer Portal. Ve a discord.com/developers/applications, crea una nueva aplicación y ponle un nombre.
- Obtén el token. En la página Bot, haz clic en Reset Token y cópialo. Discord lo muestra una sola vez; si lo pierdes, vuelve a restablecerlo.
- Mantén el token en secreto. Es la contraseña del bot: quien lo tenga controla tu bot. Nunca lo pegues en código que compartas ni lo subas a Git.
Paso 2: Invita el bot a tu servidor
- Abre la página Installation de tu aplicación.
- En la configuración de instalación predeterminada para servidores, añade los scopes
botyapplications.commands, y los permisos que necesite el bot: Send Messages basta para esta guía. - Abre el enlace de instalación que te da, elige tu servidor y autoriza. El bot aparece en la lista de miembros, desconectado hasta que se ejecute tu código.
Los tutoriales más antiguos usan OAuth2 > URL Generator con los mismos dos scopes; sigue funcionando.
Paso 3a: Escribe el bot en Python (discord.py)
discord.py 2.7 requiere Python 3.8 o posterior. Instálalo y crea 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"])
Ejecútalo con el token en una variable de entorno, por ejemplo DISCORD_TOKEN=your-token python bot.py en Linux o macOS.
Paso 3b: Escribe el bot en JavaScript (discord.js)
discord.js 14 requiere Node.js 18 o posterior. En una carpeta nueva, ejecuta npm install discord.js y crea 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);
Arráncalo con DISCORD_TOKEN=your-token node index.js. Cuando la consola muestre Logged in, escribe /ping en tu servidor.
Mantén el token fuera de tu código
- Usa una variable de entorno o un archivo
.env, y añade.enva.gitignoreantes de tu primer commit. - Si el token se filtra, restablécelo de inmediato en la página Bot. El token antiguo deja de funcionar y actualizas el nuevo allí donde se ejecuta el bot.
- GitHub analiza los repositorios públicos en busca de tokens de bots de Discord y los notifica a Discord, que puede revocarlos; por eso un token subido por error suele dejar de funcionar antes de que te des cuenta.
Paso 4: Mantén tu bot en línea
Tu bot solo está en línea mientras se ejecuta su código. Si cierras la terminal o apagas el PC, se desconecta. Tienes tres opciones:
- Tu propio PC: gratis y válido para desarrollar y probar, pero el bot se duerme cuando lo hace el ordenador.
- Un plan gratuito: la mayoría suspenden o limitan los bots que funcionan todo el mes; las ventajas y desventajas se comparan en hosting gratuito para bots de Discord.
- Hosting de bots: un pequeño servidor siempre encendido. En el hosting de bots de Discord de HytHost subes tu proyecto, eliges Node.js, Python u otro runtime, y el panel inicia el bot y lo reinicia si se cae.
El proceso completo, desde la subida hasta el reinicio automático, está en cómo alojar un bot de Discord 24/7.
Ejecuta tu bot sin dejar el PC encendido: el hosting de bots de Discord de HytHost admite Node.js, Python, Java, Go, C#, Bun y Lavalink, desde €0.89/mes.
Ver planes de hosting de botsPreguntas frecuentes
Sí. Crear la aplicación, el token y el código no cuesta nada, y discord.py y discord.js son gratuitos. Solo pagas si quieres alojarlo en algún sitio que permanezca en línea.
El que ya conozcas. discord.py y discord.js están maduros y cubren toda la API de Discord. Si no conoces ninguno, Python se lee de forma más sencilla; JavaScript tiene un ecosistema de librerías más amplio.
Comprueba que lo invitaste con el scope applications.commands y que el código sincronizó los comandos. Los comandos globales pueden tardar un momento en aparecer; si no aparecen, reinicia Discord.
Leer el texto de los mensajes normales requiere el intent Message Content, activado en el Developer Portal y solicitado en tu código. Sin él, el bot sigue recibiendo comandos de barra, menciones y mensajes directos.
Restablécelo de inmediato en la página Bot del Developer Portal. El token antiguo deja de funcionar; pon el nuevo allí donde se ejecuta el bot y elimina el antiguo de tu código o de tu historial.
Tu bot en línea sin tu PC
El hosting de bots de Discord de HytHost ejecuta Node.js, Python, Java, Go, C#, Bun o Lavalink con base de datos MySQL y copias de seguridad, desde €0.89/mes.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours¿Te ha resultado útil esta guía?