For the complete documentation index, see llms.txt. This page is also available as Markdown.

Instalación

Guía paso a paso para dejar el recurso completamente funcional en tu servidor de FiveM.


1. Requisitos previos

Antes de empezar, asegúrate de tener instalados en tu servidor:

Dependencia
Obligatoria
Notas

✅ Sí

Librería de utilidades (notificaciones, callbacks, etc.)

✅ Sí

Driver MySQL para FiveM

Framework (uno de estos)

✅ Sí

QBCore, QBox o ESX — se detecta automáticamente

❌ Opcional

Para gestión de inventario/loadouts avanzada

MySQL / MariaDB

✅ Sí

Base de datos del servidor

Nota: El recurso detecta tu framework automáticamente (Config.framework = 'auto'). No necesitas configurar nada extra si usas QBCore, QBox o ESX.


2. Instalar el recurso

  1. Descarga o clona el recurso.

  2. Copia la carpeta rc-pvpsystem dentro de tu directorio resources/:

    resources/
    └── [tu-carpeta]/
        └── rc-pvpsystem/
            ├── fxmanifest.lua
            ├── config/
            ├── client/
            ├── server/
            ├── web/
            └── ...
  3. Comprueba que la estructura del recurso está completa (debe contener fxmanifest.lua, carpetas client/, server/, config/, web/, sql/, etc.).


3. Importar la base de datos

El recurso crea las tablas automáticamente al iniciar por primera vez gracias al sistema de migraciones integrado. No necesitas importar SQL manualmente.

Sin embargo, si prefieres importarlo a mano o si tienes problemas:

  1. Abre tu herramienta de base de datos (HeidiSQL, phpMyAdmin, DBeaver, etc.).

  2. Selecciona la base de datos de tu servidor FiveM.

  3. Importa el archivo sql/schema.sql.

Tablas que se crean

Todas las tablas usan el prefijo rcpvp_ para evitar conflictos con otros recursos.

Tabla
Descripción

rcpvp_meta

Metadatos internos del recurso

rcpvp_users

Jugadores registrados en el sistema PvP

rcpvp_friends

Sistema de amigos

rcpvp_lobbies

Lobbies/salas creadas

rcpvp_lobby_members

Miembros de cada lobby

rcpvp_matches

Historial de partidas

rcpvp_match_events

Eventos durante partidas (kills, etc.)

rcpvp_redzone_deaths

Muertes en la Redzone

rcpvp_redzone_stats

Estadísticas de Redzone por jugador

rcpvp_ratings

ELO/rating por jugador y modo

rcpvp_arena_stats

Estadísticas de Arena por jugador

rcpvp_leaderboard_snapshots

Snapshots de la tabla de clasificación

rcpvp_settings

Ajustes por jugador

rcpvp_sanctions

Bans y sanciones


4. Configurar el server.cfg

Añade las siguientes líneas a tu server.cfg. El orden importa: las dependencias deben arrancar antes que rc-pvpsystem.

⚠️ Importante: rc-pvpsystem debe ir después de oxmysql, ox_lib y tu framework en el server.cfg.


5. Configuración principal (config.lua)

El archivo de configuración principal está en config/config.lua. A continuación se explican las secciones más importantes.

5.1 Framework e inventario

  • auto es el valor recomendado. El recurso detecta qué tienes instalado.

  • Si por algún motivo la detección falla, ponlo manualmente ('qbcore', 'esx', etc.).

5.2 Branding (personalización del nombre)

5.3 Hub (punto central)

El Hub es el lugar donde los jugadores acceden a la tablet/NUI y esperan partidas.

Cambia las coordenadas a la ubicación que quieras en tu servidor.

5.4 Tecla para abrir la NUI

5.5 Relleno con bots

Si no tienes suficientes jugadores, el sistema puede rellenar partidas con bots IA:

5.6 Modos de juego

Activa o desactiva cada modo:

5.7 Redzone (zona PvP libre)

5.8 Munición

5.9 Admin

Define qué grupos de permisos pueden usar comandos admin:


6. Configuración de Discord (discord.lua)

El archivo server/config/discord.lua permite integrar avatares y datos de Discord.

Cómo obtener el bot token y guild ID

  1. Crea una aplicación (o selecciona una existente).

  2. En la sección Bot, copia el Token.

  3. Activa los Privileged Gateway IntentsServer Members Intent.

  4. Invita el bot a tu servidor de Discord con el scope bot y permiso View Members.

  5. Para obtener el Guild ID: activa el modo desarrollador en Discord (Ajustes → Avanzado), haz clic derecho en tu servidor → "Copiar ID del servidor".

Si no quieres usar Discord, simplemente pon enabled = false.


7. Sistema de muerte — Compatibilidad con ambulancejob

El recurso incluye su propio sistema de muerte/downed. Si ya usas qb-ambulancejob, esx_ambulancejob u otro sistema de muerte, debes desactivarlo.

En config/config.lua:

enabled

Comportamiento

true

RC-PVP gestiona toda la muerte (mundo, redzone, partidas)

false

RC-PVP solo gestiona la muerte dentro de partidas y redzone. Fuera de estos contextos, tu ambulancejob se encarga.

Recomendación: Si tienes qb-ambulancejob o similar, usa enabled = false.


8. Configurar mapas y zonas

Los mapas de partida se definen en config/maps.lua. El recurso viene con mapas preconfigurados:

Mapa
Modo
Descripción

arena_training

Arena

Hangar de entrenamiento (2v2)

docks_dm

Deathmatch

Terminal portuario

(y más según la configuración)

Para añadir un mapa nuevo, sigue la estructura existente:


9. Frontend (NUI)

La interfaz web ya viene pre-compilada en web/build/. No necesitas hacer nada para que funcione.

Solo si quieres modificar la interfaz:

El frontend usa SvelteKit + Vite. Necesitarás Node.js LTS instalado.

Tras hacer npm run build, reinicia el recurso en el servidor para que los cambios se apliquen.


10. Primer arranque y verificación

  1. Arranca tu servidor de FiveM.

  2. Comprueba la consola del servidor. Deberías ver mensajes del recurso creando las tablas de la base de datos. Si ves errores de conexión MySQL, revisa tu server.cfg (connection string de oxmysql).

  3. Entra al servidor con un personaje.

  4. Ve al Hub — dirígete a las coordenadas configuradas en Config.hub.location y verifica que:

    • El NPC aparece (si npc.enabled = true).

    • Al interactuar o pulsar la tecla (F5 por defecto), se abre la tablet/NUI.

  5. Prueba la Redzone — entra en una de las zonas configuradas (aeropuerto, Grove Street, etc.) y comprueba que:

    • Aparece la notificación de entrada.

    • Las paredes de zona se muestran.

    • El PvP funciona correctamente.

  6. Crea una partida — desde la tablet, crea una partida de Deathmatch o Arena y verifica que el matchmaking y los spawns funcionan.

Comandos útiles para admin

Desde la consola del servidor o el chat (si eres admin):

Comando
Descripción

ensure rc-pvpsystem

Iniciar/reiniciar el recurso

restart rc-pvpsystem

Reiniciar el recurso


11. Solución de problemas

"No supported framework detected"

  • Comprueba que tu framework (qb-core, es_extended o qbox-core) arranca antes que rc-pvpsystem en el server.cfg.

Las tablas no se crean en la base de datos

  • Verifica que oxmysql está correctamente configurado y arrancado.

  • Revisa que la cadena de conexión en tu server.cfg es correcta:

  • Prueba importar sql/schema.sql manualmente.

La NUI no se abre / se ve en blanco

  • Comprueba que la carpeta web/build/ contiene archivos (index.html, carpeta _app/, etc.).

  • Si falta contenido, recompila:

Error con ox_lib

  • Asegúrate de tener la última versión de ox_lib.

  • Debe arrancar antes que rc-pvpsystem en el server.cfg.

Los bots no aparecen

  • Verifica que Config.botFill.enabled = true.

  • Los bots solo se activan tras esperar Config.botFill.waitSeconds segundos si no hay suficientes jugadores.

Discord: "Debes tener Discord vinculado"

  • Si no quieres obligar Discord, pon DiscordConfig.required = false en server/config/discord.lua.

  • Si quieres desactivar completamente Discord, pon DiscordConfig.enabled = false.

La muerte no funciona correctamente fuera de partidas

  • Si usas qb-ambulancejob o similar, asegúrate de que Config.death.enabled = false.

  • Si no usas ambulancejob, ponlo a true para que RC-PVP gestione la muerte global.


Resumen rápido (checklist)


rc-pvpsystem v1.0.1 — xByMarcos · RealCity Developments

Última actualización