← Blog

Configurar un servidor FiveM orientado al drift

Par Benjamin D. · PDG

· Mis à jour le 10 de septiembre de 2026 · Lecture 10 min

Índice

Un servidor FiveM drift bien afinado no se distingue por la cantidad de coches disponibles, sino por la coherencia entre handling.meta, los mapas en streaming y los scripts que puntúan el derrape. Esta guía recorre el server.cfg, el orden de carga de recursos, los parámetros de física que realmente cambian el comportamiento del vehículo y los ajustes que mantienen el rendimiento estable en tándems.



Qué define la física de un servidor FiveM drift

En GTA V, el derrape no es una mecánica separada: es el resultado de cómo el motor interpreta las curvas de tracción, la inercia del tren motriz y el ángulo de dirección. Un coche "driftable" es simplemente un vehículo con pérdida de adherencia lateral controlada y suficiente par para mantener las ruedas girando por encima de la velocidad del suelo.

Eso significa que el trabajo se reparte en tres capas muy concretas:

  • Capa de física: archivos handling.meta cargados mediante data_file desde un recurso propio.
  • Capa de contenido: vehículos add-on (vehicles.meta, carvariations.meta, carcols.meta) y mapas .ymap en streaming.
  • Capa de lógica: scripts de puntuación de derrape, zonas de práctica, tuning, humo de neumático y telemetría.

Si mezclas las tres capas en un solo recurso monolítico, cada cambio de física te obliga a reiniciar todo el paquete y a volver a descargar el streaming en el cliente. Separa siempre: [drift_physics], [drift_vehicles], [drift_maps], [drift_scripts].

Si prefieres delegar la infraestructura y dedicar tu tiempo a la física y a los mapas, el alojamiento servidor FiveM de Fly-Serv arranca con panel Pterodactyl, procesadores Ryzen de alta frecuencia, NVMe y anti-DDoS activo por defecto.



server.cfg: orden de carga y variables que importan

El server.cfg es el punto donde se decide qué se carga y en qué orden. En un entorno de derrape con muchos vehículos add-on y mapas personalizados, el orden importa más que en un servidor de rol clásico: los recursos de física deben cargarse después de los recursos que definen los vehículos.

# --- Endpoints ---
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

# --- Base ---
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap

# --- Categorias (carpetas entre corchetes) ---
ensure [drift_vehicles]
ensure [drift_physics]
ensure [drift_maps]
ensure [drift_scripts]

# --- Red y sincronizacion ---
set onesync on
sv_maxclients 48
set onesync_population false
set onesync_distanceCullVehicles true

# --- Identidad ---
sv_hostname "^5DRIFT^7 | Tandem & Touge"
sets tags "drift, tandem, cars"
sv_projectName "Drift Arena"
sv_licenseKey "TU_CLAVE_KEYMASTER"

# --- Seguridad ---
sv_scriptHookAllowed 0
rcon_password "cadena-larga-y-aleatoria"
set steam_webApiKey "none"

# --- Build del juego ---
sv_enforceGameBuild 3095

Variables críticas para el derrape

VariableEfecto en un entorno de drift
onesync_population falseElimina el tráfico y los peatones sincronizados. Menos entidades, menos colisiones aleatorias en mitad de un tándem y menos carga de red.
onesync_distanceCullVehicles trueDeja de sincronizar vehículos lejanos. Muy útil cuando hay 30 coches repartidos por varios mapas.
sv_maxclientsEn drift, 32–48 slots suelen ser suficientes. Un número alto con muchos vehículos activos castiga el tick del hilo principal.
sv_enforceGameBuildFija el build. Si tus vehículos add-on dependen de DLC recientes, forzar un build antiguo provoca modelos inválidos y caídas al entrar.
sv_scriptHookAllowed 0Bloquea Script Hook del lado cliente: menos trampas de teleport y de spawn arbitrario.

Después de cada cambio, no basta con refresh. Reinicia el proceso desde la consola del panel para que el orden de data_file se reconstruya limpio. En Pterodactyl lo tienes en la consola live, y puedes programar reinicios automáticos nocturnos para liberar memoria acumulada por el streaming.

Subir los recursos sin romper nada

El gestor de archivos del panel funciona bien para ediciones puntuales, pero para carpetas de mapas de varios cientos de megas conviene SFTP:

# Conexion SFTP con las credenciales del panel
sftp -P 2022 usuario.servidor@ip-del-nodo

sftp> cd /resources/[drift_maps]
sftp> put -r touge_mountain
sftp> put -r warehouse_arena
sftp> bye

Comprueba siempre los permisos y que ningún recurso quede duplicado en dos carpetas distintas: dos fxmanifest.lua con el mismo nombre de recurso hacen que el servidor cargue uno de forma impredecible.



handling.meta: los parámetros que controlan el derrape

Aquí está el 80 % del trabajo. Un recurso de física es tan simple como un manifiesto y un archivo .meta:

-- resources/[drift_physics]/drift_handling/fxmanifest.lua
fx_version 'cerulean'
game 'gta5'

files {
  'data/handling.meta'
}

data_file 'HANDLING_FILE' 'data/handling.meta'

Y el archivo de física, con un bloque por vehículo:

<CHandlingDataMgr>
 <HandlingData>
  <Item type="CHandlingData">
   <handlingName>futo</handlingName>
   <fMass value="1180.000000" />
   <fInitialDriveForce value="0.320000" />
   <nInitialDriveGears value="6" />
   <fDriveInertia value="1.050000" />
   <fClutchChangeRateScaleUpShift value="3.500000" />
   <fClutchChangeRateScaleDownShift value="3.500000" />
   <fInitialDriveMaxFlatVel value="165.000000" />
   <fBrakeForce value="0.850000" />
   <fHandBrakeForce value="1.200000" />
   <fSteeringLock value="52.000000" />
   <fTractionCurveMax value="2.050000" />
   <fTractionCurveMin value="1.750000" />
   <fTractionCurveLateral value="19.500000" />
   <fTractionSpringDeltaMax value="0.120000" />
   <fLowSpeedTractionLossMult value="0.450000" />
   <fCamberStiffnesss value="0.100000" />
   <fTractionBiasFront value="0.480000" />
   <fSuspensionForce value="2.100000" />
   <fSuspensionCompDamp value="1.400000" />
   <fSuspensionReboundDamp value="2.100000" />
   <fAntiRollBarForce value="0.450000" />
   <strAdvancedFlags>20000</strAdvancedFlags>
   <strHandlingFlags>440010</strHandlingFlags>
   <strModelFlags>40</strModelFlags>
  </Item>
 </HandlingData>
</CHandlingDataMgr>

Qué toca cada valor

ParámetroFunción realRango habitual en drift
fTractionCurveMaxAdherencia máxima con neumático en su ángulo óptimo. Bajarlo hace el coche más resbaladizo en general.1.8 – 2.3
fTractionCurveMinAdherencia una vez pasado el pico. La diferencia entre Max y Min define lo "brusco" que resulta perder el eje trasero.1.5 – 1.9
fTractionCurveLateralÁngulo, en grados, en el que se alcanza el pico lateral. Valores altos permiten mantener ángulos grandes sin perder impulso.17 – 24
fLowSpeedTractionLossMultPérdida de tracción a baja velocidad. Es la clave para iniciar derrapes desde parado o en horquillas lentas.0.3 – 0.8
fSteeringLockÁngulo máximo de dirección. Por debajo de 45 es casi imposible contravolantear; por encima de 60 el coche se vuelve nervioso.48 – 58
fInitialDriveForcePar disponible. Demasiado alto y el coche gira sobre sí mismo; demasiado bajo y el derrape se apaga a mitad de curva.0.28 – 0.40
fDriveInertiaRapidez con la que sube de vueltas el motor. Valores altos ayudan a recuperar régimen tras el cambio.0.9 – 1.2
fCamberStiffnesssEfecto del camber sobre la adherencia. Combinado con recursos de stance permite ajustes finos de tren delantero.0.0 – 0.2
fSuspensionReboundDampControl de la extensión. Un rebote demasiado rápido provoca saltos que rompen el ángulo en transiciones.1.8 – 2.6
fTractionBiasFrontReparto de adherencia. Por debajo de 0.5 favorece el sobreviraje.0.44 – 0.49

Flags que marcan la diferencia

Los flags son máscaras hexadecimales. Dos de uso frecuente en configuraciones de derrape:

  • handlingFlags: el bit 0x10 (HF_FORCE_RWD en tracciones mixtas) y 0x400000 (HF_NO_REVERSE_LIMIT) suelen aparecer en setups de tándem.
  • modelFlags: 0x40 (MF_IS_RWD) confirma la propulsión trasera; 0x200000 reduce el daño de deformación, práctico cuando los muros forman parte del recorrido.
  • advancedFlags: 0x20000 desactiva ciertas asistencias internas del motor.

Cámbialos de uno en uno. Modificar tres flags a la vez y probar después es la forma más rápida de perder dos horas sin saber qué valor provocó el comportamiento. La documentación oficial de FiveM sobre vehicle flags mantiene la lista completa actualizada.

Método de prueba en dos ventanas

Edita el .meta en el gestor de archivos del panel, guarda, y desde la consola live ejecuta:

refresh
restart drift_handling

Del lado cliente, vuelve a entrar en el vehículo (el juego cachea el handling al instanciar el coche). Un /dv y un nuevo spawn son obligatorios para ver el cambio real.



Mapas, scripts y rendimiento en un servidor FiveM drift

Streaming de mapas sin destrozar los tiempos de carga

Los circuitos de touge y los almacenes personalizados llegan como .ymap más .ydr/.ytd. Estructura recomendada por mapa:

[drift_maps]/
 touge_mountain/
   fxmanifest.lua
   stream/
     tm_props.ydr
     tm_props.ytd
   data/
     tm_map.ymap
fx_version 'cerulean'
game 'gta5'

this_is_a_map 'yes'

files {
  'data/tm_map.ymap'
}

Tres reglas de terreno que ahorran problemas:

  1. Comprime las texturas. Un .ytd de 40 MB por prop multiplica el tamaño de descarga y consume memoria de vídeo en el cliente. DXT5/BC3 y resoluciones de 1024 px bastan para asfalto y barreras.
  2. Vigila el peso total del streaming. Cuando el conjunto pasa de 1–2 GB, los jugadores con conexión modesta abandonan durante la descarga inicial. Un almacenamiento NVMe acelera el servido de archivos, pero no reduce el ancho de banda del cliente.
  3. Elimina colisiones innecesarias. Props decorativos sin .ybn reducen los cálculos de física en cada tick.

Scripts especializados que sí aportan

  • Sistema de puntuación: calcula ángulo, velocidad y proximidad a la línea. Que el cálculo se ejecute en el cliente y solo el resultado viaje al servidor; puntuar en el servidor a 60 Hz por jugador es un desperdicio de CPU.
  • Zonas de derrape: polígonos que activan la puntuación solo en el circuito, evitando que se cuenten trompos en el spawn.
  • Ajuste de stance y camber (tipo vstancer): sincroniza offsets de rueda entre clientes. Limita el rango máximo o alguien aparecerá con ruedas a dos metros del coche.
  • Humo de neumático personalizado: color por jugador, guardado en base de datos o en un KVP local.
  • Tuning persistente: guarda mods, presets de handling permitidos y librea al desconectar.

Medir antes de optimizar

El comando cliente /resmon 1 muestra el consumo por recurso en milisegundos. Referencias prácticas:

ValorInterpretación
< 0.05 ms en reposoNormal para un script bien escrito.
0.10 – 0.50 ms constantesRevisar bucles: probablemente hay un Citizen.Wait(0) innecesario.
> 1 ms constanteCuello de botella claro. Sustituir o reescribir el recurso.

En la consola del servidor, svgc y los avisos de hitch delatan qué recurso bloquea el hilo principal. El derrape es un modo de juego muy sensible a los micro-tirones: un hitch de 80 ms en plena transición arruina la vuelta, por lo que un CPU de alta frecuencia y una latencia de red baja pesan más aquí que en un servidor de rol pausado.

Administración y protección de los datos

  • Contraseña RCON larga y única, distinta de la del panel.
  • Copias de seguridad automáticas antes de cada tanda de cambios en handling.meta: revertir un archivo es cuestión de segundos si tienes el punto de restauración.
  • Subusuarios en el panel para tu equipo de moderación, sin darles acceso al proceso completo.
  • Reinicio programado diario para limpiar entidades huérfanas y memoria del streaming.
  • Whitelist o cola durante los eventos de tándem para mantener el número de coches activos bajo control.

Si además gestionas otras comunidades, la lógica de recursos es prácticamente idéntica en Servidor RedM, y encontrarás guías equivalentes para otros títulos en Todos nuestros servidores de juegos o directamente en el Blog de Fly-Serv.



Conclusión

Un entorno de derrape sólido se construye por capas: física aislada en su propio recurso, mapas comprimidos, scripts medidos con resmon y un server.cfg ordenado. Cambia un parámetro a la vez, documenta cada valor de handling.meta y guarda una copia antes de tocar nada. Con esa disciplina, el ajuste fino deja de ser prueba y error y se convierte en trabajo reproducible.



FAQ

¿Por qué mis cambios en handling.meta no se aplican al reiniciar el recurso?

El juego cachea el handling en el momento en que se instancia el vehículo. Tras un restart del recurso de física, elimina el coche con /dv y vuelve a hacer spawn. Si aun así no cambia nada, comprueba que el handlingName coincide exactamente con el del vehículo y que ningún otro recurso carga un HANDLING_FILE con el mismo nombre y se cargue después.

¿Cuántos slots conviene abrir para eventos de tándem?

Entre 32 y 48 suele ser el punto de equilibrio. Lo determinante no es el número de conectados, sino el de vehículos sincronizados simultáneamente. Activa onesync_distanceCullVehicles true, desactiva la población con onesync_population false y usa cola de espera en eventos grandes para que el hilo principal no acumule hitches.

¿Cómo reduzco el tiempo de descarga inicial de los mapas personalizados?

Recomprime las texturas .ytd a BC3/DXT5 y baja resoluciones innecesarias a 1024 px, elimina props duplicados entre mapas, retira archivos de colisión de elementos puramente decorativos y divide los circuitos en recursos independientes para poder desactivar los que no estén en rotación. Un almacenamiento NVMe sirve los archivos rápido, pero el límite real es el ancho de banda del jugador.