How do I add addon cars to my FiveM server?
In this article
GTA V ships with hundreds of vehicles, but a roleplay or racing server only truly stands out with custom cars. In this guide you will install an addon vehicle on your FiveM server: upload the resource via SFTP, enable it in server.cfg, test it in-game and then make the car purchasable in the ESX or QBCore vehicle shop.
Addon or replace: what is the difference?
Custom vehicles come in two flavours. A replace vehicle overwrites an existing GTA model: its files carry the name of a stock car (for example adder.yft) and everyone who spawns that model will see the new car from then on. An addon vehicle is added to the game as a completely new model with its own spawn name, without overwriting anything. Addon is almost always the better choice: you keep all original cars, avoid conflicts between resources and can give the vehicle its own price and shop category. This guide therefore focuses on addon cars.
The folder structure of a vehicle resource
An addon car is a regular FiveM resource. Inside the folder you will usually find:
- fxmanifest.lua — describes the resource and points to the meta files.
- stream/ — the model files:
.yft(the 3D model, often with a_hi.yftvariant) and.ytd(the textures). - data/ — the meta files:
vehicles.meta(model name and spawn data),carvariations.meta(colours and variants),carcols.meta(tuning options and lights) andhandling.meta(driving behaviour). Some cars ship extra files such asvehiclelayouts.meta.
You will find the spawn name in vehicles.meta inside the <modelName> tag — this guide uses sultan3 as an example. You will need that name later for spawning and for the shop.
Step 1: upload the resource via SFTP
- Connect to your server via SFTP with FileZilla or WinSCP, for example. Our SFTP article explains how.
- Open your FiveM server's
resourcesfolder. A subfolder in square brackets, such asresources/[cars], keeps things tidy — FiveM scans bracketed folders automatically. - Upload the complete vehicle folder (for example
sultanclassic) into that subfolder. - Make sure
fxmanifest.luasits directly inside the vehicle folder and not in an extra nested folder — the most common mistake with extracted downloads.
Step 2: enable the resource in server.cfg
- In the MC-Node panel, open the Files tab and open
server.cfg. - Add a line at the bottom:
ensure sultanclassic. Use the resource's folder name here, not the spawn name. - Save the file and restart your server from the Console tab.
Step 3: test the car in-game
- Join your server, open your admin menu — vMenu or the txAdmin menu, for example — and pick the option to spawn a vehicle.
- Enter the spawn name (
sultan3). On an ESX server with default commands,/car sultan3works too. - If the car appears, the resource is running. Take a moment to check the handling and whether all textures load.
Making the car purchasable in ESX
The default esx_vehicleshop reads its stock from the vehicles database table.
- In the panel, open the Databases tab and use the credentials shown there to log in to the database panel (phpMyAdmin).
- Select your server's database and open the SQL window.
- Run this query:
INSERT INTO vehicles (name, model, price, category) VALUES ('Sultan RS Classic', 'sultan3', 125000, 'sports'); - Note:
modelmust match the spawn name exactly and thecategorymust exist in thevehicle_categoriestable. - Restart the vehicle shop resource or the whole server; the car now shows up at the dealership.
Making the car purchasable in QBCore
QBCore does not use a database table but a shared config file.
- Via the Files tab, open
resources/[qb]/qb-core/shared/vehicles.lua. - Add a new entry, for example:
{ model = 'sultan3', name = 'Sultan RS Classic', brand = 'Karin', price = 125000, category = 'sports', type = 'automobile', shop = 'pdm' }, - The value
shop = 'pdm'puts the car in the default vehicle shop;categorydecides which tab it appears under in the shop menu. - Fully restart the server from the Console tab — shared files are only loaded at startup.
Common problems
- Streaming lag or invisible cars — Oversized
.ytdfiles (4K textures of tens of megabytes) fill up players' texture memory, causing lag, pop-in or invisible vehicles. Downscale textures to 2K or use an optimized version of the car. - Duplicate spawn names — Two resources with the same
modelNameconflict: the car will not spawn or the wrong model appears. Remove one of the resources, or rename the model, its file names and every meta reference consistently. - Car does not appear in the shop — Usually the shop category was forgotten or is wrong. In ESX the category must exist in
vehicle_categories; in QBCore it must match the categories in the shop config. Also check that the spawn name in the shop matches exactly. - Resource will not start — Check the error in the Console tab. Does the folder name in your ensure line match, and is
fxmanifest.luadirectly inside the vehicle folder? - Model not found when spawning — The resource is not running or you typed the wrong spawn name. Verify the name in
vehicles.metaand restart the server after changes.
Further reading
New to databases? Read how to create a database and how to connect to your database. If your server still feels sluggish after adding cars, also check our guide on server lag. Stuck anyway? Open a ticket via our support page and include the resource name and the error from the console.
Launch your server in 60 seconds on our own hardware.