Cómo añadir coches addon a un servidor FiveM: ficheros stream y data
Añade coches addon a FiveM paso a paso: la carpeta stream, vehicles.meta, carvariations.meta, carcols.meta, handling.meta, líneas de data_file en fxmanifest, addon vs reemplazar.
Tienes un pack de coches que quieres en tu servidor, y la carpeta contiene ficheros como .yft, .ytd y varios ficheros .meta. Esta guía explica dónde va cada fichero, qué necesita el fxmanifest.lua y cómo invocar el coche, con la diferencia entre coches addon y de reemplazo.
Qué contiene un pack de coches addon
Un coche viene en dos tipos de ficheros:
- Ficheros de modelo y textura, que van en una carpeta
stream:mycar.yft(el modelo),mycar_hi.yft(el modelo de alto detalle),mycar.ytd(texturas) y a veces ficheros.ydro.ytyp. - Ficheros de datos, que van en una carpeta
data:vehicles.meta,carvariations.meta,carcols.metayhandling.meta, y a vecesvehiclelayouts.meta.
El primer conjunto es cómo se ve el coche, el segundo conjunto es qué es: su nombre, colores, conducción y asientos.
La estructura de carpetas
Crea un recurso para el coche, o uno para un pack completo:
resources/[cars]/mycar/
fxmanifest.lua
stream/
mycar.yft
mycar_hi.yft
mycar.ytd
data/
vehicles.meta
carvariations.meta
carcols.meta
handling.metaLos ficheros en stream se envían a los jugadores automáticamente. No los listas en el manifest. Los ficheros en data no se transmiten, y el manifest debe declararlos.
El fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
files {
'data/vehicles.meta',
'data/carvariations.meta',
'data/carcols.meta',
'data/handling.meta',
}
data_file 'HANDLING_FILE' 'data/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'
data_file 'CARCOLS_FILE' 'data/carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta'El bloque files {} hace que los ficheros estén disponibles para el cliente del juego. Cada línea de data_file le dice al juego qué tipo es un fichero. Dos reglas importan:
- Cada fichero necesita ambos: una entrada en
filesy una línea dedata_filecon el tipo correcto. - Un pack con muchos coches a menudo tiene una carpeta
datapor coche. Puedes usar un patrón como'data/**/*.meta'enfiles {}, pero las líneas dedata_filepara estos ficheros aún deben escribirse, una por tipo, y las líneas de tipo aceptan el mismo patrón.
files { 'data/**/*.meta' }
data_file 'HANDLING_FILE' 'data/**/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'data/**/vehicles.meta'
data_file 'CARCOLS_FILE' 'data/**/carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/**/carvariations.meta'Si el pack también tiene un vehiclelayouts.meta, decláralo también, con data_file 'VEHICLE_LAYOUTS_FILE' 'data/vehiclelayouts.meta'.
Inicia e invoca
En server.cfg, añade el recurso:
ensure mycarEl nombre de la carpeta del recurso y el nombre del ensure deben coincidir. Si usas una carpeta de bracket como [cars], ensure [cars] inicia todo lo que hay dentro.
El nombre de invocación es el modelName en vehicles.meta:
<Item>
<modelName>mycar</modelName>
<txdName>mycar</txdName>
<handlingId>MYCAR</handlingId>
...
</Item>Aquí lo invocas con mycar. En un script:
local model = joaat('mycar')
lib.requestModel(model)
local veh = CreateVehicle(model, coords.x, coords.y, coords.z, heading, true, false)lib.requestModel es de ox_lib. Sin él, llama a RequestModel(model) y espera hasta que HasModelLoaded(model) sea verdadero. La mayoría de menús de administrador y el menú de txAdmin invocan un coche con el mismo nombre.
Consejo: el
modelName, los nombres de fichero.yft/.ytdy eltxdNamedeben coincidir todos. Un desajuste es lo primero que debes comprobar cuando un coche no aparece.
Coches addon versus coches de reemplazo
Un coche addon tiene un nuevo nombre que el juego base no usa, por ejemplo mycar. Necesita los ficheros de datos anteriores, y añade un coche a la lista. Tu nuevo coche y los coches originales existen. Esta es la opción correcta para casi todos los coches hoy en día.
Un coche de reemplazo usa los nombres de fichero de un coche del juego base, como sultan.yft, y los pone en una carpeta stream. FiveM carga entonces la tuya en lugar de la original, en todas partes donde aparece ese coche, incluso en el tráfico. Normalmente no necesita un vehicles.meta para el modelo, ya que el juego ya conoce el nombre. Un coche de reemplazo solo cambia la apariencia. Si quieres otra conducción, necesitas el handling.meta coincidente con el id de conducción original.
No mezcles las dos ideas en una carpeta. Un pack que mezcla ficheros de reemplazo y addon es una fuente común de errores confusos.
Comprueba el resultado
- Inicia el servidor y lee la consola. Los errores de recursos, como un fichero faltante listado en
files, aparecen al iniciar. Si el recurso no inicia en absoluto, ver couldn't start resource. - Únete e invoca el coche. Si no se encuentra un coche, el nombre no coincide con el
modelName, o el recurso no se ha iniciado. - Abre los colores y conducción del coche en el juego para comprobar que los ficheros
carcols.metayhandling.metaestán en uso.
Problemas comunes
- El coche no existe. Comprueba
ensure, las entradas defilesy elmodelName. Un error tipográfico en una ruta enfilesdetiene el recurso. - El coche es invisible, blanco, o tiene texturas incorrectas. El
.ytdfalta o tiene un nombre diferente al del modelo. Ver oversized assets si también ves advertencias de streaming. - El coche conduce como un coche de base. El
handling.metano se ha declarado, o suhandlingIdno coincide con el devehicles.meta. - Un coche basado en DLC se muestra como roto. Algunos coches necesitan una compilación de juego más reciente. Establece uno con
sv_enforceGameBuildenserver.cfg: ver sv_enforceGameBuild and DLC.
Lista de verificación
| Síntoma | Solución |
|---|---|
| El recurso no inicia | Comprueba que cada ruta en files {} existe y que el manifest no tiene errores tipográficos |
| El coche no puede invocarse | Invoca con el modelName de vehicles.meta; ensure el recurso |
| El coche es blanco o sin texturas | Comprueba el fichero .ytd y su nombre contra el modelo |
| El coche conduce mal | Añade la línea HANDLING_FILE y coincide el handlingId |
| Sin colores o colores incorrectos | Añade líneas CARCOLS_FILE y VEHICLE_VARIATION_FILE |
| El coche original cambió | Usaste un nombre de reemplazo: renombra los ficheros y el modelo para un addon |
| Coche roto con modelo DLC | Aumenta la compilación del juego con sv_enforceGameBuild |
Respuestas rápidas
¿Qué nombre uso para invocar un coche addon?
El valor modelName en vehicles.meta. Si dice <modelName>mycar</modelName>, lo invocas con mycar, que también debe coincidir con los nombres de los ficheros .yft y .ytd.
¿Cuál es la diferencia entre un coche addon y un coche de reemplazo?
Un coche de reemplazo sobrescribe un coche del juego base usando sus nombres de fichero, así que el original desaparece. Un coche addon tiene un nuevo nombre único y sus propios ficheros meta, y se sitúa junto a los coches originales.
Mi coche aparece pero conduce mal o se ve blanco. ¿Qué debo comprobar?
La conducción incorrecta apunta a handling.meta y su línea de data_file. Un coche blanco o con texturas faltantes apunta a un .ytd faltante o a un nombre que no coincide con el modelo.
Scripts que evitan este problema
Chameleon Paints82 pinturas camaleón que cambian de color, en un menú de un clic.Ver script →
Advanced BoostingBoosting de vehículos desde una tablet: contratos de clase D a S+, crews y cola en vivo.Ver script →
Car BombColoca, detecta y desactiva bombas en coches — con detonador y minijuego de C4.Ver script →