How To Install Custom Cars (FiveM)
Learn how to install with our step-by-step guide. Includes production‑ready configs you can copy‑paste. Complete tutorial for 2025.
This is the authoritative, no‑fluff guide to installing custom cars on a FiveM server—safely, correctly, and with production‑ready configs you can copy‑paste. We’ll cover one‑off add‑on cars, multi‑car packs, converting single‑player DLCs, and wiring vehicles into ESX/QBCore shops.
What you’ll need (prereqs)
- A running FiveM server and FTP/FS access to the
resourcesfolder. - Basic text editor (VS Code) and the ability to restart the server.
- (Optional for conversions) OpenIV to unpack SP DLCs → use our safe link: /openiv-download
- (Recommended) An admin menu or spawn tool (e.g., vMenu) for testing: /vmenu
- (Performance) Know how to use Resmon to spot heavy cars: /how-to-use-resmon-in-fivem-optimize-resources
Opinionated best practice: Group all vehicles under a resource category folder like
resources//.... This keeps your server tidy and lets youensureto start every pack at once.
Quick map — pick your path
- I have a FiveM‑ready add‑on car (it already ships with
fxmanifest.luaand metas): jump to Install a single add‑on car. - I have an SP DLC (only
dlc.rpfwith metas and models): go to Convert SP DLC to FiveM. - I want many cars in one pack: see Multi‑car resource (batch).
- I want cars purchasable in‑game: see Wire into ESX/QBCore vehicle shops.
Install a single add‑on car (the 90% case)
Let’s assume your car is named elegy and you received YFT/YTD model files and standard vehicle meta files.
1) Create the resource structure
resources/
/
fm_elegy/
stream/
elegy.yft
elegy_hi.yft
elegy.ytd
data/
handling.meta
vehicles.meta
carcols.meta
carvariations.meta
vehiclelayouts.meta (if provided)
fxmanifest.lua
vehicle_names.lua (optional, for in‑game display name)
Rules that save hours
- Do not drop
.asi/.oivinstallers in a server. Only streamable assets and metas.- Keep models in
stream/, metas indata/.- File names are case‑sensitive on Linux—match exactly.
2) fxmanifest.lua (copy‑paste)
fx_version 'cerulean'
game 'gta5'
files {
'data/handling.meta',
'data/vehicles.meta',
'data/carcols.meta',
'data/carvariations.meta',
'data/vehiclelayouts.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 'vehicle_names.lua' -- optional
Legacy note:
__resource.luais deprecated. If you must support legacy only, use this minimal file:
-- __resource.lua (legacy)
resource_manifest_version '77731fab-63ca-442c-a67b-abc70f28dfa5'
files {
'data/handling.meta',
'data/vehicles.meta',
'data/carcols.meta',
'data/carvariations.meta',
'data/vehiclelayouts.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 'vehicle_names.lua'
3) Optional vehicle_names.lua
Some packs don’t ship a GXT label. Add one so the car shows a clean name in UI.
-- vehicle_names.lua
CreateThread(function()
-- key must match spawn name in vehicles.meta <gameName>
AddTextEntry('elegy', 'Elegy RH8 Custom')
end)
4) Start the resource in server.cfg
# Start all cars inside the group
ensure
# (or) start this car only
# ensure fm_elegy
Restart the server or run refresh + ensure fm_elegy from the console.
5) Find the spawn name & test
Open data/vehicles.meta and find:
<Item type="CHandlingData">
...
</Item>
<!-- Look for -->
<modelName>elegy</modelName>
<gameName>elegy</gameName>
- Your spawn code is usually the
<gameName>or<modelName>(e.g.,elegy). - Test with an admin tool:
- vMenu → Vehicle Spawner → Add‑on →
elegy - or use your admin command (depends on your admin menu).
- vMenu → Vehicle Spawner → Add‑on →
If it spawns and wheels, lights, and tuning parts look correct—you’re done.
Convert a single‑player DLC to FiveM resource
Many “SP‑only” cars come as dlc.rpf packs. Convert them like this:
- Open OpenIV → navigate into the DLC’s
dlc.rpf. - Extract models from
x64/vehicles.rpf(YFT/YTD) → put intostream/. - Extract metas from
common/data/intodata/:handling.meta,vehicles.meta,carcols.meta,carvariations.meta,vehiclelayouts.meta(if present).
- Create
fxmanifest.luaexactly as shown above. - Start the resource and test the spawn name from
<gameName>.
Tip: If the car has custom sound kits (audio), the pack may include an
.awcrouting that doesn’t work server‑side. Prefer packs already marked FiveM‑ready or swap<audioNameHash>to a vanilla kit.
Multi‑car resource (batch)
You can stream many cars from one resource to simplify management.
Folder layout
resources//vip_pack/
stream/
elegy.yft
elegy_hi.yft
elegy.ytd
supra.yft
supra_hi.yft
supra.ytd
...
data/
handling.meta # merged or per‑car files
vehicles.meta
carcols.meta
carvariations.meta
fxmanifest.lua
fxmanifest.lua for wildcarded data
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'
Merging metas: Use known‑good merges only. Duplicate
<initDatas>or misplaced<kit>entries incarcols.metaare the #1 reason for black wheels or broken extras.
Wire into ESX/QBCore vehicle shops
Spawning is fine for testing. For a real economy, wire cars into your framework shop.
QBCore (example entry)
Add to qb-core/shared/vehicles.lua (or your shop config):
['elegy'] = {
['name'] = 'Elegy RH8',
['brand'] = 'Annis',
['model'] = 'elegy', -- spawn code
['price'] = 125000,
['category'] = 'sports',
['shop'] = 'pdm'
}
- Use a vehicle shop that supports add‑on cars. We recommend proven options:
- Brutal Scripts Vehicle Shop → /fivem-vehicle-shop-brutal-scripts
- Wais VehicleShop → /wais-vehicleshop
- AV VehicleShop → /av-vehicleshop
ESX (SQL quick add)
If your shop reads from DB:
INSERT INTO vehicles (name, label, price, category) VALUES
('elegy', 'Elegy RH8', 125000, 'sports');
Garage & keys: Pair your shop with a reliable garage and vehicle keys script so players keep ownership across restarts:
- Garages: /advanced-garages / /the-garage-system
- Keys: /renewed-vehicle-keys
Car control & tuning: For windows/doors/lights/seat control and tuning immersion:
- Car Control (YesPixel‑inspired): /car-control-inspired-by-yespixel-4-0
- Tuning System: /tuning-system
Performance & safety checklist
Install is only half the job—keep it fast and stable.
- Texture budgets: Keep
.ytdunder ~16 MB; prefer 1k–2k textures. Downscale heavy liveries in OpenIV. - Model LODs: Ensure cars have LODs (
_hi.yft+ base). Missing LODs → big FPS drops in traffic. - Wheel/tire UVs: Black wheels typically mean missing
carcols.metaor bad material IDs—fix the meta before blaming ELS. - Spawn conflicts: If your
<gameName>matches a vanilla vehicle, rename model & all references consistently. - Streaming order: Don’t rely on load order hacks. Put all metas in the same resource that streams the model.
- Use Resmon: After each install, drive for 1–2 minutes and watch
resmonfor spikes. Guide: /how-to-use-resmon-in-fivem-optimize-resources - Clear client cache after big packs if players report invisible cars: /how-to-clear-fivem-cache
Troubleshooting (fast fixes)
Car won’t spawn
- Wrong spawn code. Open
vehicles.metaand take<gameName>. - Resource didn’t start. Check
txAdmin → Live Consolefor errors; runensure fm_elegy.
Wheels are black / liveries broken
- Missing
carcols.meta/carvariations.metaor bad merges. Re‑add the correct kits & modkits.
Game crashes on spawn
- Overweight textures or missing bones. Downscale
.ytdand confirm the base/_hipair exists.
Interior or dials don’t work
- The pack requires a newer game build. Ask the author—or test on a newer build. (If needed, enable DLCs: /how-to-enable-dlcs-for-fivem-server)
Names show as NULL
- Add a
vehicle_names.luawithAddTextEntry('SPAWN', 'Nice Name').
Pro tip: Keep cars organized
- Put all vehicles under and name packs with a prefix, e.g.,
fm_→fm_civ_sports,fm_pd_fleet. - Keep a simple CHANGELOG.md inside each pack for future you.
- Avoid mixing ELS packs designed for SP unless the author provides a FiveM variant.
Example: production‑ready car pack you can drop in
Duplicate this template for every car pack you add.
fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
files {
'data/handling.meta',
'data/vehicles.meta',
'data/carcols.meta',
'data/carvariations.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'
server.cfg
# FiveM car packs
ensure
data/vehicles.meta (minimal snippet just to show where spawn name lives)
<CVehicleModelInfo__InitDataList>
<initDatas>
<Item>
<modelName>elegy</modelName>
<txdName>elegy</txdName>
<handlingId>elegy</handlingId>
<gameName>elegy</gameName>
<vehicleMakeName>ANNIS</vehicleMakeName>
<plateType>VPT_DEFAULT</plateType>
<vehicleClass>VC_SPORT</vehicleClass>
<flags>440010</flags>
</Item>
</initDatas>
</CVehicleModelInfo__InitDataList>
vehicle_names.lua (optional)
CreateThread(function()
AddTextEntry('elegy', 'Elegy RH8')
end)
Turn installs into content & retention (next steps)
- Build a dealership experience players remember. Try:
- Vehicle shops: /fivem-vehicle-shop-brutal-scripts / /wais-vehicleshop
- Garage systems: /advanced-garages
- Car control: /car-control-inspired-by-yespixel-4-0
- Keys/locking: /renewed-vehicle-keys
- Optimize load times and performance so cars feel snappy:
- Performance hub → /performance
- How to use Resmon → /how-to-use-resmon-in-fivem-optimize-resources
- Loading time wins → /optimize-loading-times
- Explore more curated cars & packs:
- FiveM Cars (category) → /fivem-cars
- All Cars (FiveMX) → /cars
Want a deeper dive specifically on add‑on cars? Read our focused how‑to → /how-to-install-addon-cars-to-fivem-server
FAQ
Does this work with OneSync and big servers?
Yes—streamed vehicles are the norm. Keep texture sizes sensible and watch resmon.
Where do I get high‑quality cars?
From creators who ship FiveM‑ready packs—or browse our curated catalog: /fivem-cars.
Can I bundle police fleets/civilians together?
Yes. Organize by role (fm_pd_fleet, fm_civ_sports) so you can enable/disable packs quickly.
Do I need to set a specific game build?
Only if the mod relies on newer features. The author usually notes this. If something spawns broken, test on a newer build and re‑try.
Copy‑paste summary (checklist)
- Create
resources//<pack>/withstream/+data/. - Drop YFT/YTD into
stream/; metas intodata/. - Add
fxmanifest.luawithfiles { ... }+data_file ...lines. ensure(or the pack) inserver.cfg.- Find
<gameName>invehicles.metaand spawn via vMenu/admin. - Wire to shop (ESX SQL or QBCore table) and pair with garage/keys.
- Resmon test, texture budget check, and done.
You’re set. If you want an even faster path, grab a pre‑made server pack and start customizing: /fivem-servers





![[ESX/QB] JustCarWash](https://forum-cfx-re.akamaized.net/original/5X/6/b/1/5/6b15a859524cd21d95c7b761d23308e296438c14.gif)

