Cómo configurar el archivo server.cfg de FiveM
Par Benjamin D. · PDG
· Mis à jour le 19 de agosto de 2026 · Lecture 10 min
Índice
El archivo server.cfg FiveM es el corazón de cualquier servidor GTA V roleplay o freeroam: define puertos, licencia, recursos cargados, permisos ACE, slots y OneSync. Mal configurado, el servidor no arranca o queda invisible en la lista. Bien ajustado, ganas estabilidad, latencia baja y control total. Esta guía 2026 repasa cada bloque con sintaxis real y ejemplos probados en producción.
Qué es el server.cfg de FiveM y dónde se encuentra
FXServer (el binario del servidor FiveM) lee al arrancar un único fichero de configuración pasado por parámetro: server.cfg. Todo lo que no esté declarado ahí simplemente no existe para el servidor. No hay interfaz gráfica que sustituya este archivo; incluso txAdmin escribe en él.
Ubicación según el tipo de hosting
| Entorno | Ruta típica | Cómo editarlo |
|---|---|---|
| Panel Pterodactyl (hosting gestionado) | /home/container/server.cfg o /txData/<perfil>/server.cfg |
Gestor de archivos del panel o SFTP |
| VPS Linux con FXServer manual | /home/fivem/server-data/server.cfg |
SSH + nano/vim |
| VPS Windows | C:\FXServer\server-data\server.cfg |
Editor de texto (UTF-8 sin BOM) |
En un Serveur FiveM alojado con panel Pterodactyl, el archivo aparece en el gestor de ficheros y basta un reinicio desde la consola para aplicar los cambios. Si prefieres administrar la máquina entera, un VPS Linux te deja instalar FXServer, txAdmin y MariaDB a tu manera.
Reglas de sintaxis que evitan el 90 % de los fallos
- Una directiva por línea, sin punto y coma final.
- Los comentarios empiezan por
#. - Los valores con espacios van entre comillas:
sv_hostname "Mi Servidor RP". - El orden importa: un
ensurede un recurso que depende de otro debe ir después. - Guarda siempre en UTF-8 sin BOM. Un BOM invisible provoca couldn't parse config.
Configurar el server.cfg FiveM paso a paso en 2026
Vamos por bloques. Puedes copiar esta base y adaptarla; está pensada para un servidor de rol con framework (ESX o QBox) y OneSync activo.
1. Endpoints y puertos
# Escucha en todas las interfaces, puerto UDP/TCP 30120
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
# Puerto de la consola remota (opcional, solo si sabes lo que haces)
# rcon_password "cambia_esto_por_algo_largo"
El TCP sirve para la descarga de recursos y la lista de servidores; el UDP transporta el tráfico de juego. Si cambias el puerto, ábrelo en el firewall. En un VPS con ufw:
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
sudo ufw reload
2. Identidad del servidor
sv_hostname "^3[ES] Ciudad Aurora ^7| RP Serio | Whitelist"
sv_projectName "Ciudad Aurora RP"
sv_projectDesc "Rol serio en español, economia realista, staff activo 24/7"
sv_maxclients 64
sv_licenseKey "TU_CLAVE_DE_KEYMASTER"
sv_enforceGameBuild 3407
locale "es-ES"
load_server_icon icon.png
Detalles que marcan la diferencia:
- sv_licenseKey: se genera en el portal Keymaster y va ligada a la IP del servidor. Si migras de máquina, edita la IP de la clave o el servidor no aparecerá públicamente.
- sv_maxclients: hasta 48 sin OneSync; con OneSync Infinity puedes subir a 128 o más, siempre que la CPU acompañe. Ryzen de alta frecuencia y NVMe ayudan porque FiveM es muy dependiente del rendimiento monohilo.
- sv_enforceGameBuild: fija la build de GTA V (por ejemplo 2802, 3095, 3407…). Es obligatorio si usas DLC recientes; si tus MLO o vehículos son de build antigua, no la subas sin probar.
- load_server_icon: PNG de 96x96 exactos, en la raíz del server-data.
3. OneSync y tickrate
set onesync on
set onesync_population true
set onesync_enableInfinity true
set onesync_enableBeyond true
set onesync_distanceCullVehicles true
set onesync_forceMigration true
# Frecuencia de red (ms entre ticks). 30-50 es un buen compromiso.
set sv_scriptHookAllowed 0
sets tags "roleplay, español, economia, whitelist"
onesync_population en false elimina el tráfico y los NPC generados por el juego: reduce muchísimo la carga de red y el uso de CPU, útil en servidores con más de 64 jugadores. En cambio, para RP inmersivo la mayoría lo deja activo y limita la población desde el cliente.
4. Base de datos y variables convar
set mysql_connection_string "mysql://fivem:[email protected]/es_extended?charset=utf8mb4"
setr locale "es"
set es_enableCustomData 1
set sv_lan 0
Diferencia clave entre los tres comandos:
| Comando | Visibilidad | Uso típico |
|---|---|---|
set | Solo servidor | Credenciales, claves de API, cadenas de conexión |
setr | Replicada al cliente | Idioma, modo de juego, flags visibles en scripts client-side |
sets | Enviada a la lista de servidores | Tags, Discord, banner, web |
Nunca uses sets ni setr para contraseñas: acabarían expuestas en la información pública del servidor.
5. Carga de recursos
# Núcleo
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap
ensure rconlog
# Framework
ensure oxmysql
ensure es_extended
ensure ox_lib
# Categorias por carpeta
ensure [voice]
ensure [standalone]
ensure [ox]
ensure [jobs]
ensure [mlo]
Usa ensure y no start: ensure reinicia el recurso si ya estaba activo, lo que evita estados corruptos tras un refresh. Agrupar recursos en carpetas entre corchetes ([jobs]) permite cargarlos en bloque y mantener un server.cfg FiveM legible cuando tienes 300 resources.
6. Permisos ACE y administración
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_ace group.moderator command.ban allow
add_ace group.moderator command.kick allow
add_principal identifier.fivem:1234567 group.admin
add_principal identifier.license:a1b2c3d4e5f6... group.moderator
add_principal group.admin group.moderator
El sistema ACE es jerárquico: un principal puede heredar de otro grupo. Trabaja siempre con identifier.license: (estable) en vez de steam: si algunos jugadores entran sin Steam. Y añade explícitamente los deny de comandos peligrosos como quit, stop o load_server_icon para los grupos intermedios.
Seguridad, rendimiento y errores frecuentes del server.cfg FiveM
Endurecer la configuración
- RCON: si no lo necesitas, deja la línea comentada. Si lo activas, usa una contraseña de 24+ caracteres aleatorios y restringe el puerto por firewall a tu IP.
- sv_scriptHookAllowed 0: bloquea ScriptHookV en el cliente. Imprescindible en RP.
- Whitelist: para comunidades cerradas, gestiona el acceso vía txAdmin o un recurso de whitelist en base de datos; el
sv_authMaxVarianceysv_authMinTrustaportan una capa extra contra cuentas recién creadas.
sv_authMaxVariance 1
sv_authMinTrust 5
set steam_webApiKey "TU_API_KEY"
La protección DDoS volumétrica no se configura desde el server.cfg: se filtra a nivel de red. En Fly-Serv el anti-DDoS viene incluido por defecto en todos los servidores de juego y VPS, así que tu trabajo se limita a la capa aplicativa: permisos, whitelist y control de recursos.
Copias de seguridad antes de tocar nada
Cualquier cambio importante (subir la build, migrar de ESX a QBox, añadir 40 MLO) merece un respaldo previo del server.cfg, de la carpeta resources y de la base de datos. En panel, las copias automáticas cubren el sistema de archivos; el dump SQL lo lanzas tú:
mysqldump -u fivem -p es_extended > backup_$(date +%F).sql
tar -czf resources_$(date +%F).tar.gz resources/ server.cfg
Errores clásicos y su solución
| Síntoma | Causa habitual | Solución |
|---|---|---|
| El servidor no aparece en la lista | Licencia ligada a otra IP o puerto TCP cerrado | Regenerar/editar la clave en Keymaster y abrir 30120/tcp |
Couldn't find resource X |
Nombre de carpeta distinto al del ensure |
Respetar mayúsculas/minúsculas exactas (Linux distingue) |
| Los jugadores se quedan en "Loading screen" | Recurso pesado o error en fxmanifest.lua |
Revisar consola, aislar recursos con stop uno a uno |
| Vehículos DLC invisibles | sv_enforceGameBuild demasiado bajo |
Subir la build a la que incluya el DLC y probar los MLO |
| Hitching y caídas de tickrate | Scripts con bucles sin Wait |
resmon 1 en consola cliente para localizar el ms culpable |
Medir antes de optimizar
Desde la consola del servidor, svmon muestra el consumo de cada recurso. En cliente, F8 y resmon 1 revela el tiempo por frame. Como regla de campo: un recurso que supera 0,10 ms en reposo con 40 jugadores necesita revisión. El hardware ayuda —CPU Ryzen de alta frecuencia y almacenamiento NVMe reducen los tiempos de carga y el stream de MLO— pero ningún procesador arregla un bucle infinito en Lua.
# En la consola del servidor
svmon
# Recursos activos y su estado
list_resources
# Recargar un recurso sin reiniciar el servidor
refresh
ensure mi_recurso
Plantilla completa y flujo de trabajo recomendado
Este es un server.cfg FiveM funcional y comentado que puedes usar como punto de partida:
# ============ RED ============
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
# ============ IDENTIDAD ============
sv_hostname "^2Ciudad Aurora ^7| ES | RP Serio"
sv_projectName "Ciudad Aurora"
sv_projectDesc "Servidor de rol en español"
sv_maxclients 64
sv_licenseKey "cfxk_XXXXXXXXXXXXXXXXXXXX"
sv_enforceGameBuild 3407
load_server_icon icon.png
sets locale "es-ES"
sets Discord "discord.gg/ejemplo"
sets tags "roleplay, español, economia"
# ============ ONESYNC ============
set onesync on
set onesync_enableInfinity true
set onesync_enableBeyond true
set onesync_population true
set onesync_distanceCullVehicles true
# ============ SEGURIDAD ============
set sv_scriptHookAllowed 0
sv_authMaxVariance 1
sv_authMinTrust 5
set steam_webApiKey "none"
# rcon_password ""
# ============ BASE DE DATOS ============
set mysql_connection_string "mysql://fivem:[email protected]/aurora?charset=utf8mb4"
# ============ RECURSOS ============
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure hardcap
ensure oxmysql
ensure ox_lib
ensure es_extended
ensure [voice]
ensure [standalone]
ensure [jobs]
ensure [mlo]
# ============ PERMISOS ============
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_principal identifier.license:XXXXXXXX group.admin
Metodología para no romper el servidor
- Duplica el archivo antes de editar:
cp server.cfg server.cfg.bak. - Cambia una cosa a la vez y reinicia desde la consola del panel.
- Lee la consola completa en el arranque: los errores rojos aparecen en los primeros 15 segundos.
- Si el servidor no levanta, restaura el backup y compara línea a línea.
- Documenta cada bloque con comentarios
#; en seis meses lo agradecerás.
txAdmin y el server.cfg
txAdmin gestiona perfiles de despliegue y puede escribir su propio server.cfg dentro de txData. Si usas txAdmin, edita el archivo desde su interfaz (pestaña Settings → CFG Editor) o desde el gestor de archivos, pero nunca los dos a la vez en la misma sesión: sobrescribirás cambios. La documentación oficial de referencia sigue siendo la de Cfx.re, donde se listan todas las convars soportadas y las deprecadas de cada versión: Source.
¿Panel gestionado o VPS?
- Servidor de juego gestionado: instalación instantánea, panel Pterodactyl con consola en vivo, gestor de archivos, subusuarios para tu staff y copias automáticas. Ideal si quieres centrarte en los scripts y el rol, no en el sistema operativo. Es el enfoque de nuestros Tous nos serveurs de jeu.
- VPS: control total de la máquina, varias instancias, tu propia MariaDB, tus reglas de firewall. Un VPS Pterodactyl te da el mismo panel pero autoalojado; un VPS Windows sirve si tu equipo trabaja con herramientas gráficas.
En ambos casos las buenas prácticas de administración son las mismas: contraseñas largas, claves SSH en lugar de contraseñas, fail2ban activo, actualizaciones regulares del artifact de FXServer y copias de seguridad verificadas. Puedes generar tu par de claves así:
ssh-keygen -t ed25519 -C "admin@ciudadaurora"
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@TU_IP
sudo systemctl restart ssh
Y si gestionas FXServer como servicio en Linux, un simple systemctl mantiene el proceso vivo tras un reinicio de la máquina:
sudo systemctl enable fivem
sudo systemctl status fivem
journalctl -u fivem -f
Conclusión
Dominar el server.cfg es lo que separa un servidor FiveM inestable de uno que aguanta 100 jugadores sin hitching. Trabaja por bloques, comenta cada línea, mide con svmon y guarda copias antes de cada cambio grande. Con una base ordenada, añadir frameworks, MLO o nuevos empleos deja de ser una lotería. Más guías técnicas en el Blog Fly-Serv.
FAQ
¿Por qué mi servidor FiveM no aparece en la lista pública pese a tener el server.cfg correcto?Casi siempre es la licencia: la clave de Keymaster está vinculada a una IP concreta. Si has migrado de máquina o cambiado de IP, edita la clave en el portal o genera una nueva y pégala en sv_licenseKey. Comprueba también que el puerto 30120 está abierto en TCP y UDP, y que sv_lan vale 0.
Sin OneSync el límite duro es 48. Con OneSync Infinity puedes declarar 64, 128 o más, pero el techo real lo marca la CPU monohilo y la calidad de tus scripts. Sube en escalones de 16 slots, vigila svmon y el tickrate en horas punta, y desactiva onesync_population si la red se satura.
Añade su identificador con add_principal identifier.license:XXXX group.admin y define qué puede hacer ese grupo con add_ace group.admin command allow. Usa el identificador license: porque no depende de Steam ni de Discord. Deniega explícitamente comandos críticos como quit o stop a los grupos intermedios y reinicia el servidor para aplicar.