How to Install Custom Vehicles in FiveM – Complete Guide for ESX & QBCore (2026)
fivem

How to Install Custom Vehicles in FiveM – Complete Guide for ESX & QBCore (2026)

fivevault_fivevault_
7 min readviews
fivemvehiclesesxqbcoretutorialscriptscustomization

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

BenefitWhy It Matters
Server identityUnique vehicles make your server instantly recognisable
Roleplay immersionRealistic or themed cars enhance every RP scenario
Player retentionPlayers stay longer when there's always something new to drive
Job integrationCustom vehicles tie directly into police, EMS, and mechanic jobs
Community growthUnique 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

RequirementDetails
FiveM serverAny artifact build, 6016+ recommended
Server accessSFTP (FileZilla, WinSCP) or file manager via hosting panel
A vehicle resourceDownloaded from FiveVault — all vehicles are ESX & QBCore compatible
server.cfg accessTo add the ensure line
txAdminRecommended 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 .yft and .ytd files with no fxmanifest.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:

lua
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-pack

For 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-rides

Step 5: Add the Vehicle Spawn Name to Your Framework

For ESX — add to your vehicles database table:
sql
INSERT INTO vehicles (model, price, category)
VALUES ('myvehicle', 50000, 'super');
For QBCore — add to qb-core/shared/vehicles.lua:
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 .yft filename inside the stream/ folder, lowercase, no spaces.

Step 6: Restart and Test

Restart the resource in your txAdmin console or server console:

restart [vehicles]/my-vehicle-pack

Once in-game, test with:

/car myvehicle

If the vehicle spawns correctly, you're done. If not, check the troubleshooting section below.


Framework Compatibility

FrameworkCompatibility Notes
StandaloneStream-only vehicles work on any server without any framework config
ESXAdd spawn name to vehicles DB table. Works with esx-vehicleshop out of the box
QBCoreRegister in qb-core/shared/vehicles.lua and optionally in qb-vehiclesales
QBOXSame as QBCore — fully compatible with the vehicles shared config
OX CoreWorks standalone, pair with ox_inventory for vehicle key systems
How to check: Open the vehicle folder. If you see only 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 in server.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 a handling.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 your vehicles database table. Run the SQL insert from Step 5 and restart esx-vehicleshop.

❌ QBCore PDM shop doesn't show vehicle

Solution: Make sure shop = 'pdm' is set in qb-core/shared/vehicles.lua and restart qb-core.

❌ Server crashes on startup after adding vehicle

Solution: The fxmanifest.lua references a missing file. Comment out data_file lines one by one to find the culprit.

Recommended Vehicle Packs for Your Server

Pack NameTypeBest For
Police Pack 2026Law enforcementPolice RP servers
Civilian SupercarsLuxury / exoticCar meet & street racing RP
EMS Vehicle PackEmergency servicesMedical & fire RP
Gang Rides CollectionStreet / customGang & hood RP
Mechanic Utility PackWork vehiclesMechanic job RP
Off-Road Pack4x4 / trucksRural & wilderness RP
Browse all vehicle packs on FiveVault →

Final Tips

  • ✅ Keep vehicles in [vehicles] — organised subfolders make your resource list manageable
  • ✅ Match spawn names exactly — the .yft filename 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.

Q: Can I add liveries and custom textures to vehicles?

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.