Bot de Discord con discord.js para administrar el servidor Etema.
- Node.js 18 o superior.
- Un bot creado en Discord Developer Portal.
- Estas variables de entorno:
DISCORD_TOKENCLIENT_IDGUILD_IDBOT_OWNER_IDopcional, para darle a una cuenta override extra sobre las restricciones normales
- Copia
.env.examplea.env. - Rellena tus valores reales.
- Instala dependencias con
npm install. - Si no tienes
npmen el PATH de Windows, usanpm-local.cmd install. - Registra comandos con
npm run deployodeploy-commands.cmd. - Inicia el bot con
npm startostart-bot.cmd.
Variables opcionales para una bienvenida persistente en Railway:
WELCOME_ENABLED=trueWELCOME_CHANNEL_ID=id del canal de bienvenidaWELCOME_MESSAGE_TEMPLATE=usa{user},{server}y{memberCount}
Los .cmd del proyecto siguen funcionando para un flujo local comodo:
npm-local.cmdnode-local.cmdstart-bot.cmdwatch-bot.cmddeploy-commands.cmdvalidate.cmdexport-guild-state.cmdrun-bot-24-7.cmd
Si existe Tools\node-v24.14.1-win-x64, esos atajos usaran ese Node portable.
Si no existe, intentaran usar node y npm instalados en el sistema.
npm run validategit status
Sube el codigo fuente y los archivos de configuracion del proyecto, por ejemplo:
src/package.jsonpackage-lock.json.gitignore.env.exampleREADME.md- scripts
.cmdsi quieres seguir con soporte Windows
Estos archivos o carpetas deben quedarse fuera del repo:
.envnode_modules/logs/data/snapshots/reports/Tools/
- Sube el proyecto a un repositorio privado de GitHub.
- En Railway, crea un proyecto nuevo desde ese repo.
- Agrega estas variables en Railway:
DISCORD_TOKENCLIENT_IDGUILD_IDBOT_OWNER_IDsolo si quieres una cuenta con override extraWELCOME_ENABLED,WELCOME_CHANNEL_IDyWELCOME_MESSAGE_TEMPLATEsi quieres fijar la bienvenida por variables y que sobreviva redeploys
- Deja que Railway use el comando por defecto de Node. Este proyecto ya expone
npm start.
No hace falta exponer un puerto HTTP: este servicio corre como bot de Discord.
Ejecuta run-bot-24-7.cmd.
- Si el bot se cae, vuelve a arrancar solo.
- Los logs quedan en
logs\bot.logylogs\runner.log.
Ejecuta install-24-7-task.cmd.
- Crea una tarea programada llamada
EtemaServerBot24x7. - Se inicia automaticamente al abrir sesion.
- Para quitarla, usa
remove-24-7-task.cmd.
/ping/server/limpiar/rol/canal/moderar/diagnostico/automod/bienvenida/mods/room
- Las salas temporales usan el chat integrado del canal de voz. El bot ya no crea un
chat-*separado para cada sala. /ping: comprueba si el bot responde./server: muestra informacion basica del servidor actual./mods list: muestra los roles de aviso disponibles y tus suscripciones actuales./mods join mod:<mod>: te suscribe a los avisos de un mod./mods leave mod:<mod>: te quita los avisos de un mod./room status: muestra el estado de tu sala temporal./room claim: reclama la sala si el owner actual ya no esta dentro./room rename name:<nuevo nombre>: cambia el nombre de tu sala temporal./room limit slots:<numero>: cambia el limite de usuarios de la sala./room lock: bloquea la sala./room unlock: desbloquea la sala./room allow user:<usuario>: permite acceso a una persona concreta./room kick user:<usuario>: saca de la sala a una persona conectada./room transfer user:<usuario>: transfiere la ownership de la sala.
/limpiar: elimina mensajes recientes del canal actual./rol: crea, edita, asigna y quita roles./canal: crea y configura canales del servidor./moderar: timeout, kick y ban sobre miembros./diagnostico: revisa permisos y requisitos del bot./automod: configura la moderacion automatica./bienvenida: configura el mensaje de bienvenida./mods panel: publica el panel de autoasignacion para roles de aviso.
Puedes pegar algo como esto en #bot-commands o #how-to-use-the-bot:
**Bot Quick Guide**
**Public commands**
`/ping` Check whether the bot is responding.
`/server` Show basic information about the server.
`/mods list` Show the available mod alert roles and your current subscriptions.
`/mods join mod:<mod>` Subscribe to a mod alert role.
`/mods leave mod:<mod>` Unsubscribe from a mod alert role.
Temporary rooms use the voice channel's built-in chat. The bot does not create a separate `chat-*` channel anymore.
`/room status` Show the current status of your temporary voice room.
`/room claim` Claim ownership if the current owner is gone.
`/room rename name:<name>` Rename your temporary room.
`/room limit slots:<number>` Change the user limit of the room.
`/room lock` Lock the room.
`/room unlock` Unlock the room.
`/room allow user:<user>` Allow a specific user into the room.
`/room kick user:<user>` Disconnect a user from your room.
`/room transfer user:<user>` Transfer room ownership.
**Staff commands**
`/limpiar`
`/rol`
`/canal`
`/moderar`
`/diagnostico`
`/automod`
`/bienvenida`
`/mods panel`