server.cfg explicado: cada línea del server.cfg de FiveM, una por una

Qué hace cada línea en un server.cfg de FiveM: endpoints, sv_hostname, projectName, tags, locale, icon, sv_maxclients, license key, OneSync, ensure, ACE y exec.

Abriste server.cfg y es una pared de líneas que copiaste de una receta. Esta guía va a través de las líneas que encontrarás en la mayoría de servidores, en el orden en que suelen aparecer, con una explicación breve y un enlace donde hay una guía más larga.

Endpoints

cfg
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

Estas son la dirección y puerto donde escucha el servidor. 0.0.0.0 significa todas las interfaces de red, y 30120 es el puerto por defecto. Los jugadores se conectan por UDP y usan TCP para HTTP y el proxy de txAdmin, así que abres ambos en tu firewall. Con txAdmin, la interfaz y el puerto suelen estar gestionados para ti, y la configuración de txAdmin puede quejarse si no coinciden. Si los jugadores no pueden entrar desde fuera, mira port forwarding.

Nombre y listado

cfg
sv_hostname "My Server"
sets sv_projectName "My Server"
sets sv_projectDesc "A friendly roleplay server"
sets tags "roleplay, esx, english"
sets locale "en-US"
load_server_icon myLogo.png
  • sv_hostname es el nombre del servidor anterior.
  • sv_projectName y sv_projectDesc son el nombre y la descripción en el listado de servidores. El formato sets los publica.
  • tags son las palabras clave por las que la gente filtra, y locale es el idioma.
  • load_server_icon carga un pequeño PNG desde la carpeta del servidor.

Los colores, los banners y el tamaño del icono se tratan en icono de servidor, banner y tags.

Jugadores

cfg
sv_maxclients 48

El número de espacios de jugador. Ir por encima de 48 necesita OneSync y un nivel de supporter en el lado de Cfx.re. Los detalles están en OneSync y el límite de jugadores.

Claves

cfg
sv_licenseKey "cfxk_xxxxxxxxxxxxxxxxxxxx_xxxxx"
set steam_webApiKey "none"

sv_licenseKey es la clave del Portal de Cfx.re, y el servidor no arrancará sin una válida. Mira error de license key del servidor. steam_webApiKey solo se necesita si quieres identificadores de Steam, y none se acepta cuando no lo haces. Ambas líneas son secretos: no compartas tu server.cfg en capturas.

Base de datos

cfg
set mysql_connection_string "mysql://user:password@localhost/dbname?charset=utf8mb4"

La cadena de conexión que oxmysql lee. Valores incorrectos dan los errores en error de conexión oxmysql. Usa set, no setr o sets, así la contraseña permanece en el servidor.

OneSync y construcción de juego

cfg
set onesync on
sv_enforceGameBuild 3258

onesync on activa OneSync, que es el estándar para servidores modernos y necesario para muchas ranuras. sv_enforceGameBuild obliga a los clientes a usar una construcción de juego, y los coches DLC, ropa y mapas necesitan uno reciente. Los números de construcción y qué desbloquean están en sv_enforceGameBuild y DLC. Usa un número de construcción compatible con tus artefactos, no solo el del ejemplo.

Recursos: ensure

cfg
ensure oxmysql
ensure ox_lib
ensure es_extended
ensure [standalone]

Cada ensure inicia un recurso, o una carpeta de corchetes completa. El orden importa: bases de datos, librerías y el framework primero. Mira orden de ensure en server.cfg. Si uno falla, no se pudo iniciar el recurso explica el mensaje.

Permisos: add_ace y add_principal

cfg
add_ace group.admin command allow
add_principal identifier.fivem:1234567 group.admin

add_ace da un permiso a un grupo, aquí cada comando. add_principal pone a un jugador (por identificador) en ese grupo. Reemplaza el identificador con el tuyo. La explicación completa, con la diferencia entre ACE y los grupos propios de tu framework, está en permisos ACE.

Incluir otros archivos: exec

cfg
exec permissions.cfg
exec resources.cfg

exec ejecuta otro archivo cfg como si sus líneas estuvieran aquí. Dividir permisos o recursos en sus propios archivos mantiene server.cfg legible, y puedes mantener los secretos en un archivo que nunca compartes.

Un ejemplo mínimo

cfg
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

sv_licenseKey "cfxk_..."
sv_hostname "My Server"
sets sv_projectName "My Server"
sets sv_projectDesc "A friendly roleplay server"
sets tags "roleplay"
sets locale "en-US"
load_server_icon myLogo.png
sv_maxclients 48
set onesync on
set mysql_connection_string "mysql://user:password@localhost/dbname?charset=utf8mb4"

ensure oxmysql
ensure ox_lib
ensure es_extended

Cuidado: un error tipográfico en una línea no siempre detiene el servidor. Una convar mal escrita se crea silenciosamente y no hace nada. Cuando una configuración parece ignorada, comprueba primero la ortografía.

Lista de comprobación

Síntoma Solución
Los jugadores no pueden entrar desde fuera Abre TCP y UDP en el puerto, mira port forwarding
El servidor no arrancará Comprueba sv_licenseKey
El nombre o los tags no se ven Usa sets, reinicia y espera a que se actualice el listado
Más de 48 ranuras rechazadas Activa OneSync y comprueba tu nivel en Cfx.re
Errores de base de datos Comprueba mysql_connection_string
Contenido DLC faltante Sube sv_enforceGameBuild
No es admin Arregla add_principal con tu propio identificador

Respuestas rápidas

¿Dónde está server.cfg?

En tu carpeta de datos del servidor, al lado de la carpeta resources. Con txAdmin también puedes abrirlo y editarlo desde la página del Editor de CFG en el panel web.

¿Necesito reiniciar después de editar server.cfg?

Sí. El archivo se lee cuando arranca el servidor. Reinicia el servidor para que los cambios en endpoints, convars y permisos tengan efecto. Las nuevas líneas ensure también se pueden ejecutar en la consola en vivo.

¿Cuál es la diferencia entre set, sets y setr?

set crea una convar que solo el servidor puede leer. sets también la publica en el listado de servidores. setr la replica a los clientes también, así que nunca pongas un secreto en setr o sets.

Scripts que evitan este problema

Shop CreatorCrea una tienda en menos de un minuto — dueños, empleados, caja fuerte y atracos.Ver script →Mic PhoneUn móvil plegable que se abre en tablet y llega al móvil real del jugador.Ver script →

Sigue leyendo