Adding add-on vehicles to FiveM
Custom cars are the most popular asset on FiveM servers — and the most common source of “it will not spawn” questions. An add-on car is a resource with models and textures in stream/, a handful of meta files in data/, and five data_file lines. Once you know the pattern, every car pack is installed the same way.
Short answer: Put the .yft models and .ytd textures in stream/, the meta files (vehicles.meta, handling.meta, carvariations.meta, carcols.meta, optionally vehiclelayouts.meta) in data/, and declare them in the fxmanifest with HANDLING_FILE, VEHICLE_METADATA_FILE, VEHICLE_VARIATION_FILE, CARCOLS_FILE and VEHICLE_LAYOUTS_FILE. The spawn name is the modelName in vehicles.meta. Register a display name with AddTextEntry and add the car to your framework’s vehicle list for shops and garages.

#Step 1: the resource layout
fxmanifest.lua
stream/
mycar.yft
mycar_hi.yft
mycar.ytd
mycar+hi.ytd (if the pack ships one)
data/
vehicles.meta
handling.meta
carvariations.meta
carcols.meta
vehiclelayouts.meta (optional)#Step 2: the fxmanifest
fx_version 'cerulean'
game 'gta5'
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'
data_file 'VEHICLE_LAYOUTS_FILE' 'data/**/vehiclelayouts.meta'
client_script 'names.lua'Wildcards let one resource hold many cars, each in its own data/<car>/ folder. What each file does is in vehicle meta files explained.
#Step 3: spawn name and display name
The spawn name is <modelName> in vehicles.meta — that is what you use in /car mycar or in your dealership config. The name shown in game comes from <gameName>, which needs a text entry:
AddTextEntry('MYCAR', 'Annis Elegy Custom')#Step 4: dealerships and garages
| Framework | Where cars are listed |
|---|---|
| QBCore | qb-core/shared/vehicles.lua |
| Qbox | qbx_core/shared/vehicles.lua |
| ESX | The vehicles table used by the dealership resource |
| Standalone / vMenu | Nothing — spawn by model name |
Without an entry, garages may refuse to store the car or show it with a wrong price and class.
#Step 5: start and test
Add ensure mycar to server.cfg (or ensure [cars] for a whole folder) and restart. Watch the server console for “oversized asset” warnings — large car packs are the most common cause of texture loss and crashes; see oversized assets.
#When the car does not spawn
| Symptom | Cause |
|---|---|
| “Model does not exist” | Wrong spawn name, resource not started, or vehicles.meta not loaded |
| Spawns invisible or as a different car | Model name mismatch between .yft and vehicles.meta |
| No sound or wrong sound | audioNameHash points to a sound bank you do not have |
| Handling feels vanilla | handlingId does not match the handlingName in handling.meta |
| Crash when spawning | Broken or oversized model; test the car alone |
Questions
How do I add a car to my FiveM server?
stream/, the meta files in data/, declare them with data_file lines in the fxmanifest, and ensure it in server.cfg.What is the spawn name of an add-on car?
modelName in its vehicles.meta.Why does my car show NULL as its name?
gameName has no text entry. Add AddTextEntry(gameName, "Name") in a client script.Can I put many cars in one resource?
data_file paths and one data/<car>/ folder per car.Ready to pick a map?
Twelve themes on three base map styles, $8 each, instant download.