Vehicle Pack Validator
Drop a FiveM vehicle resource folder and get a report: models without handling, handling ids that do not match, missing carcols or carvariations entries, missing .yft/.ytd files, missing _hi models, data_file lines that are wrong or missing, duplicate names and more, each with the fix.
How to use it
Drop the resource folder (the one with fxmanifest.lua), a whole [cars] folder with many resources, or a .zip. Dropping several car resources at once also finds conflicts between them: the same model twice, shared kit or siren ids, and stream files that overwrite each other. Everything stays in your browser.
Each finding says where the problem is (file and line) and what to change. The Vehicles tab shows every model with the files it links to, and the fxmanifest tab has a manifest built from what is really in the folder. The report downloads as Markdown for a ticket or a Discord post.
What it checks
fxmanifest and data_file
- Every meta needs a
data_fileline with the right type and must be infiles { }, or clients never download it. Types:VEHICLE_METADATA_FILE(vehicles.meta),HANDLING_FILE,CARCOLS_FILE,VEHICLE_VARIATION_FILE(carvariations),VEHICLE_LAYOUTS_FILE. The type is checked against what the file contains, not its name. DLCTEXT_FILEis in many templates but is not a type FiveM has a loader for, so it does nothing. Car names come fromAddTextEntryin a client script.- Order: FiveM moves
HANDLING_FILEandVEHICLE_LAYOUTS_FILEto the front on its own and keeps the rest in manifest order. Rockstar's DLCs load vehicles.meta, then carcols.meta, then carvariations.meta. - Globs follow FiveM's rules:
*stays inside one folder,**matches any number of folders. Paths that only match with different upper/lower case are flagged because they break on Linux hosts. - Engine sounds:
AUDIO_GAMEDATApoints atname_game.datfor the filename_game.dat151.rel,AUDIO_SOUNDDATAat the.dat54.rel,AUDIO_WAVEPACKat the folder with the.awcfiles. Audio data files can't use wildcards.
Links between the metas
modelNameneeds a matching.yftinstream/, plus_hi.yftfor the close up model.txdNameneeds a.ytd(or a base game dictionary). txd parents must exist.handlingIdmust match ahandlingName. Base game handling names are allowed but reported.layoutmust be a base game layout or be defined in a loaded vehiclelayouts.meta.- carvariations kits must exist in a carcols.meta,
sirenSettingsmust point at a siren id that exists. audioNameHashmust be a base game car or a sound in the pack.
Ids and sizes
- Names and ids are compared with the base game: 935 model names, 827 handling names, 386 layouts, mod kit ids 0 to 640 and 999, siren ids 0 to 20. A kit or siren id the game already uses mixes up tuning parts or light patterns.
- Siren ids above 255 wrap around in FiveM (only 8 bits are kept), so 300 acts as 44. Seecitizenfx/fivem issue 2612.
- Memory size is the same number the server prints as "Asset uses X MiB of physical memory". Over 16 MiB is a warning, over 48 MiB is an error because FiveM says those "can and WILL lead to streaming issues". When it can't be read (escrowed files), the file size is shown instead and labelled as such.
Limits
- It checks metas and file sizes. It does not open the models, so it can't see a broken mesh, missing bones or a wrong embedded texture.
- Escrowed (.fxap) stream files are encrypted, so their memory size is estimated from the file size.
- A sound that another resource provides can't be seen from here. The finding says so instead of calling it broken.
- Normal zip files work. Password protected zips and 7z/rar need to be extracted first.
- The sample pack is made up: invented names and placeholder model files, no game or author data.
Sources
- Data files and resource manifest (Cfx.re docs)
- AddonCarSounds for the audio data_file layout
- Rockstar's own DLC
content.xmlfiles for load order and data file types
More config & code tools
server.cfg Generator
Build a complete, working server.cfg with hostname, slots, OneSync, endpoints, tags, resources & ACE permissions.
fxmanifest.lua Generator
Scaffold a valid resource manifest: fx_version, scripts, NUI page, files, lua54 & dependencies.
Vehicle Handling Editor
Tune mass, drive force, grip and suspension from a UI, then export handling.meta or runtime Lua.
