QueueBETA (FiveM + Discord) Desarrollado por DotComm Studios

Guía de Instalación

Última actualización Hace alrededor de 7 horas

REQUISITOS PREVIOS

  1. Python 3.10 o superior.

  2. Servidor FiveM (FXServer).

  3. Bot de Discord creado en Discord Developer Portal.

  4. En Discord Developer Portal > Bot, activar Server Members Intent y Message Content Intent.

PASO 1: CONFIGURAR EL BOT DE DISCORD

  1. Copia el Token del bot y la ID del servidor de Discord (Guild ID).

  2. Invita al bot a tu servidor usando el URL Generator en OAuth2 marcando las casillas bot y applications.commands.

PASO 2: CONFIGURAR VARIABLES DE ENTORNO (.ENV)

Copia el archivo .env.example y renómbralo a .env en la raíz del proyecto. Edita los valores:

env
DISCORD_TOKEN=TU_DISCORD_TOKEN
GUILD_ID=TU_GUILD_ID
HTTP_SECRET=TU_CLAVE_SECRETA_HTTP
HTTP_PORT=5000

Nota: HTTP_SECRET deb ser exactamente el mismo texto en el archivo .env y en el config.lua de FiveM

PASO 3: CONFIGURAR ROLES Y PRIORIDADES (CONFIG.JSON)

Abre config.json y pon las IDs reales de los roles de tu servidor de Discord:

json
{
  "max_server_slots": 64,
  "grace_period_seconds": 300,
  "panel_update_interval": 15,
  "http_host": "0.0.0.0",
  "http_port": 5000,
  "priorities": {
    "required_base_role_id": "ID_ROL_USUARIO_REGISTRADO",
    "staff_roles": [
      {
        "role_id": "ID_ROL_STAFF",
        "priority": 1000,
        "name": "👑 Staff / Admin (Instalote)",
        "instant_join": true
      }
    ],
    "vip_roles": [
      {
        "role_id": "ID_ROL_VIP",
        "priority": 500,
        "name": "💲 Donador",
        "instant_join": false
      }
    ],
    "normal_roles": [
      {
        "role_id": "ID_ROL_USUARIO_REGISTRADO",
        "priority": 1,
        "name": "👤 Usuario",
        "instant_join": false
      }
    ],
    "default_priority": 1
  },
  "messages": {
    "queue_connecting": "⏳ Conectando a la cola de espera de QueueBETA...",
    "queue_waiting": "🎮 Estás en la cola de espera de QueueBETA.\n📌 Posición: #{position} de {total}\n⭐ Prioridad: {priority_name}\n⏳ Jugadores en FiveM: {online}/{max}",
    "queue_ready": "✅ ¡Es tu turno! Entrando al servidor...",
    "grace_restored": "⚡ ¡Reconocido! Se ha restaurado tu posición prioritaria por reconexión rápida.",
    "discord_not_found": "❌ No se ha encontrado tu cuenta de Discord en el servidor oficial de QueueBETA.",
    "no_role_found": "❌ ACCESO DENEGADO: Debes tener asignado el rol obligatorio de Usuario Registrado en Discord para poder entrar.",
    "banned_or_no_discord": "❌ Debes tener el cliente de Discord abierto y pertenecer al servidor oficial."
  }
}

PASO 4: DESPLEGAR EL BOT DE PYTHON

Opcion A - VPS Linux (Automatico): Ejecuta en la consola de tu VPS: sudo bash deploy.sh

Comandos para controlar el bot en VPS:

bash
systemctl start queue_beta
systemctl status queue_beta
systemctl restart queue_beta

Opcion B - Instalación Manual o Pterodactyl:

  1. Instala dependencias: pip install -r requirements.txt

  2. Inicia el bot: python bot.py

PASO 5: INSTALAR EL RECURSO EN FIVEM

  1. Copia la carpeta fivem_resource/queue_beta a la carpeta resources/queue_beta de tu servidor FiveM.

  2. Abre resources/queue_beta/config.lua y edita:

lua
Config = {} Config.BotApiUrl = "http://IP_DE_TU_BOT:5000" Config.HttpSecret = "TU_CLAVE_SECRETA_HTTP" Config.CheckInterval = 3000
lua
Config.NoDiscordMessage = "[QueueBETA] No se ha detectado tu cuenta de Discord. Abre Discord e inténtalo de nuevo." Config.ApiOfflineMessage = "[QueueBETA] No se puede conectar con el bot de la cola de espera."
  1. En tu server.cfg añade:

cfg
ensure queue_beta

PASO 6: CREAR EL PANEL EN DISCORD

En el canal de Discord donde quieras poner el panel, ejecuta como Administrador:

Comandos Disponibles

/queue panel: Despliega el panel interactivo en el canal actual.
/queue status: Muestra el estado del servidor y la cola.
/queue config: Muestra la configuración de roles y prioridades.
/queue remove <discord_id>: Expulsa a un jugador de la cola.
/queue clear: Vacía la cola por completo.

PROBLEMAS FRECUENTES

  1. Error 403 al sincronizar comandos: Invita al bot marcando bot y applications.commands y comprueba GUILD_ID en .env.

  2. Error de conexión HTTP desde FiveM: Abre el puerto 5000/tcp en tu VPS (sudo ufw allow 5000/tcp) y comprueba que Config.BotApiUrl tenga la IP pública.

  3. Clave secreta incorrecta: Asegúrate de que HTTP_SECRET en .env sea idéntico a Config.HttpSecret en config.lua.