fivemHow to Install Custom Vehicles in FiveM – Complete Guide for ESX & QBCore (2026)
What Are Custom Vehicles in FiveM?
Custom vehicles are player-made or converted car, bike, and emergency vehicle models that replace or extend the default GTA V vehicle roster on your server. Unlike vanilla GTA V, custom vehicles let you add:- Realistic police interceptors & marked units
- Luxury supercars & exotic imports
- Gang rides with custom liveries
- EMS ambulances & fire trucks
- Mechanic flatbeds & tow trucks
- Civilian daily drivers & off-roaders
If your framework is what makes your server work, custom vehicles are what make it feel alive. They're one of the fastest ways to give your server its own identity — and keep players coming back.
Why Add Custom Vehicles to Your Server
| Benefit | Why It Matters |
|---|---|
| Server identity | Unique vehicles make your server instantly recognisable |
| Roleplay immersion | Realistic or themed cars enhance every RP scenario |
| Player retention | Players stay longer when there's always something new to drive |
| Job integration | Custom vehicles tie directly into police, EMS, and mechanic jobs |
| Community growth | Unique content gets shared — free advertising for your server |
Did you know? All vehicles on FiveVault are ESX & QBCore ready out of the box — no framework conversion needed. Browse all vehicles →
Prerequisites
| Requirement | Details |
|---|---|
| FiveM server | Any artifact build, 6016+ recommended |
| Server access | SFTP (FileZilla, WinSCP) or file manager via hosting panel |
| A vehicle resource | Downloaded from FiveVault — all vehicles are ESX & QBCore compatible |
| server.cfg access | To add the ensure line |
| txAdmin | Recommended for easy resource management and restarts |
Step 1: Download Your Vehicle Pack
Head to FiveVault and grab a vehicle pack. Every vehicle on FiveVault works with ESX and QBCore out of the box — no extra configuration needed for basic streaming.
Once downloaded, extract the .zip or .rar. You should see a folder structured like this:
my-vehicle-pack/
├── stream/
│ ├── myvehicle.yft
│ ├── myvehicle.ytd
│ └── myvehicle+hi.yft
├── fxmanifest.lua
└── data/
└── vehicles.meta (optional)Pro tip: If the extracted folder contains only loose.yftand.ytdfiles with nofxmanifest.lua, the resource is incomplete. Always download from a trusted source like FiveVault to avoid broken packs.
Step 2: Upload to Your Server's Resources Folder
Connect to your server via SFTP or your hosting panel's file manager. Navigate to your resources folder:
server-data/
└── resources/Best practice is to keep vehicles organised in a dedicated subfolder:
resources/
└── [vehicles]/
└── my-vehicle-pack/Upload the entire extracted vehicle folder into resources/[vehicles]/. Do not rename the folder after uploading — the name must match exactly what you put in server.cfg.
Step 3: Verify the fxmanifest.lua
Before starting your server, open fxmanifest.lua inside the vehicle folder and confirm it looks something like this:
fx_version 'cerulean'
game 'gta5'
description 'My Custom Vehicle Pack'
version '1.0.0'
client_scripts {
'data/*.lua'
}
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'
data_file 'HANDLING_FILE' 'data/handling.meta'
files {
'data/*.meta'
}If the manifest only contains stream {} with no data files, that's fine — it means the vehicle uses default GTA handling and metadata. Both formats work perfectly.
Step 4: Add the Vehicle to server.cfg
Open your server.cfg and add the ensure line. Place it after your framework resources:
# Framework
ensure es_extended
# or
ensure qb-core
# Vehicles
ensure [vehicles]/my-vehicle-packFor large servers with many vehicle packs, keep them grouped:
# Vehicle packs
ensure [vehicles]/police-pack-2026
ensure [vehicles]/civilian-supercars
ensure [vehicles]/ems-vehicles
ensure [vehicles]/gang-ridesStep 5: Add the Vehicle Spawn Name to Your Framework
For ESX — add to your vehicles database table:INSERT INTO vehicles (model, price, category)
VALUES ('myvehicle', 50000, 'super');qb-core/shared/vehicles.lua:
['myvehicle'] = {
name = 'My Custom Vehicle',
brand = 'Custom',
model = 'myvehicle',
price = 50000,
category = 'super',
categoryLabel = 'Super',
type = 'automobile',
shop = 'pdm',
},Pro tip: The spawn name must exactly match the.yftfilename inside thestream/folder, lowercase, no spaces.
Step 6: Restart and Test
Restart the resource in your txAdmin console or server console:
restart [vehicles]/my-vehicle-packOnce in-game, test with:
/car myvehicleIf the vehicle spawns correctly, you're done. If not, check the troubleshooting section below.
Framework Compatibility
| Framework | Compatibility Notes |
|---|---|
| Standalone | Stream-only vehicles work on any server without any framework config |
| ESX | Add spawn name to vehicles DB table. Works with esx-vehicleshop out of the box |
| QBCore | Register in qb-core/shared/vehicles.lua and optionally in qb-vehiclesales |
| QBOX | Same as QBCore — fully compatible with the vehicles shared config |
| OX Core | Works standalone, pair with ox_inventory for vehicle key systems |
stream/ + fxmanifest.lua — it's standalone and works on any server. If you see a data/ folder with .meta files — review them before adding to make sure they don't conflict with existing vehicles.
Troubleshooting Common Vehicle Issues
❌ Vehicle spawns as a plain white or invisible model
Solution: The.ytd texture file is missing or named incorrectly. You need both a .yft and .ytd with matching names in stream/.
❌ "Could not find resource" error in console
Solution: The folder name inserver.cfg doesn't match the actual folder name on disk. Linux hosting is case-sensitive.
❌ Vehicle spawns but handling feels wrong
Solution: The vehicle is missing ahandling.meta file. Add one to data/handling.meta inside the resource.
❌ ESX vehicle shop doesn't show the vehicle
Solution: The spawn name isn't in yourvehicles database table. Run the SQL insert from Step 5 and restart esx-vehicleshop.
❌ QBCore PDM shop doesn't show vehicle
Solution: Make sureshop = 'pdm' is set in qb-core/shared/vehicles.lua and restart qb-core.
❌ Server crashes on startup after adding vehicle
Solution: Thefxmanifest.lua references a missing file. Comment out data_file lines one by one to find the culprit.
Recommended Vehicle Packs for Your Server
| Pack Name | Type | Best For |
|---|---|---|
| Police Pack 2026 | Law enforcement | Police RP servers |
| Civilian Supercars | Luxury / exotic | Car meet & street racing RP |
| EMS Vehicle Pack | Emergency services | Medical & fire RP |
| Gang Rides Collection | Street / custom | Gang & hood RP |
| Mechanic Utility Pack | Work vehicles | Mechanic job RP |
| Off-Road Pack | 4x4 / trucks | Rural & wilderness RP |
Final Tips
- ✅ Keep vehicles in
[vehicles]— organised subfolders make your resource list manageable - ✅ Match spawn names exactly — the
.yftfilename is your spawn name, always lowercase - ✅ Test on a dev server first — a broken vehicle manifest can crash your whole server
- ✅ Don't add 100 packs at once — add and test in batches of 5–10 to isolate issues
- ✅ Back up server.cfg before every session of adding new vehicles
- ✅ All FiveVault vehicles are ESX & QBCore ready — no framework conversion needed
- ✅ Use txAdmin's resource list to confirm the vehicle resource shows as "started"
Frequently Asked Questions
Q: How many custom vehicles can I add before it affects performance?A: There's no hard limit, but servers with 200+ vehicle resources can see longer load times. Monitor your startup time and client download size.
Q: Do players need to download anything to see custom vehicles?A: No — FiveM streams vehicle assets to players automatically when they join.
Q: Can I use the same vehicle pack on both ESX and QBCore servers?A: Yes. The streaming part is framework-agnostic. Only the shop/spawn registration differs.
Q: Why does my vehicle show a default GTA model instead of the custom one?A: The spawn name in your framework config doesn't match the .yft filename. Double-check both are identical.
A: Yes — liveries use additional .ytd files named with _sign_ suffixes in the stream/ folder.
Need help getting your vehicles working? Join our Discord — 3,500+ members and counting.