Discord · Guía

Cómo crear un bot de Discord

Actualizado October 10, 2026 5 min de lectura

En esta página
  1. Paso 1: Crea la aplicación y el token del bot
  2. Paso 2: Invita el bot a tu servidor
  3. Paso 3a: Escribe el bot en Python (discord.py)
  4. Paso 3b: Escribe el bot en JavaScript (discord.js)
  5. Mantén el token fuera de tu código
  6. Paso 4: Mantén tu bot en línea
  7. FAQ

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

  1. Abre el Developer Portal. Ve a discord.com/developers/applications, crea una nueva aplicación y ponle un nombre.
  2. 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.
  3. 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.
¿Necesitas intents? Un bot que solo usa comandos de barra no necesita ningún intent privilegiado. Activa Message Content en la página Bot solo si el bot debe leer lo que la gente escribe en mensajes normales. Los bots presentes en servidores con más de 10.000 usuarios necesitan la aprobación de Discord para los intents privilegiados.

Paso 2: Invita el bot a tu servidor

  1. Abre la página Installation de tu aplicación.
  2. En la configuración de instalación predeterminada para servidores, añade los scopes bot y applications.commands, y los permisos que necesite el bot: Send Messages basta para esta guía.
  3. 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 .env a .gitignore antes 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 bots
FAQ

Preguntas 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?