How to install add-on cars on a FiveM server
Add-on cars are streamed as new models, so they sit next to the base-game vehicles instead of replacing them. This guide shows how to install add-on cars on a FiveM server, give them proper names, put them in your dealership, and avoid the texture and handling problems that come with large car packs.
Add-on or replace?
A replace car overwrites a base-game model (every Adder becomes your car). An add-on car gets its own spawn name, so you can have as many as you like. For a roleplay server, add-on is almost always what you want.
Resource layout
my_cars/
├─ fxmanifest.lua
├─ vehicle_names.lua
├─ stream/
│ ├─ mycar.yft
│ ├─ mycar_hi.yft
│ └─ mycar.ytd
└─ data/
└─ mycar/
├─ vehicles.meta
├─ handling.meta
├─ carvariations.meta
└─ carcols.metaThe 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'
client_script 'vehicle_names.lua'Only declare the meta files the car actually has. Some cars also ship vehiclelayouts.meta (VEHICLE_LAYOUTS_FILE) for custom seating.
Give the car a display name
Without a text entry the car shows as "NULL" in menus. Map the gameName from vehicles.meta to a readable name:
AddTextEntry('MYCAR', 'Brand Model 2026')Start and test
Add ensure my_cars to server.cfg, restart, and spawn the car by its model name with your admin menu (for example /car mycar on QBCore). Drive it, check every livery and extra, and open F8 for warnings.
Selling it in your dealership
QBCore
Add an entry to qb-core/shared/vehicles.lua with the model, name, brand, price, category and shop, then restart. The model must match the spawn name exactly.
ESX Legacy
Most ESX vehicle shops read from the database: add a row to the vehicles table with the model, name, price and category used by your shop resource.
Car packs
Combining many cars into one resource cuts resource count, but keep each car's meta files in its own folder and make sure no two cars use the same handlingName, modelName or texture dictionary name. FiveM prints an oversized-asset warning for very large models or texture dictionaries; those are the usual cause of texture loss for players with less video memory.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Car does not spawn | Wrong spawn name or resource not started | Use the modelName from vehicles.meta and check ensure. |
| Shows as NULL | No text entry | Add AddTextEntry in vehicle_names.lua. |
| Drives like another car | Duplicate handlingName | Give each car a unique handling name. |
| Blurry or missing textures | Oversized .ytd, too many big cars | Use optimised versions and fewer 4K textures. |
| No liveries or extras | carvariations.meta or carcols.meta not loaded | Check the data_file lines and paths. |
Find vehicle releases and feedback in the vehicles hub, and add matching interiors with how to install an MLO.