How to add a custom livery to a FiveM car
Updated October 11, 2026 · 6 min read
First find out how the car takes liveries. With texture liveries, each livery is a texture in the car's .ytd, picked with SetVehicleLivery. With mod kit liveries, each livery is a separate model in the car's mod kit, fitted as mod 48. Of the 887 vehicles in our catalogue, 172 use textures and 376 use a mod kit, and the steps differ for each.
Step 1: find out which system your car uses
Open the car in Livery templates: each page says how many factory liveries it has and whether they are "texture" or "mod kit". From a script, GetVehicleLiveryCount(vehicle) counts texture liveries, and GetNumVehicleMods(vehicle, 48) counts mod kit ones after SetVehicleModKit(vehicle, 0).
| Texture liveries | Mod kit liveries | |
|---|---|---|
| Where the livery lives | A texture in the car's .ytd | A separate model (.yft) for each livery, with its texture inside, listed as a VMT_LIVERY_MOD item in the car's mod kit in carcols.meta |
| How a script picks it | SetVehicleLivery(vehicle, index), 0 is the first | SetVehicleModKit(vehicle, 0), then SetVehicleMod(vehicle, 48, index, false) |
| Where players pick it | Whatever livery menu your garage or mod shop has | Livery, in the mod shop |
| Vehicles in our catalogue | 172, with 315 livery textures | 376, with 5,194 liveries |
| Usual size | Small: 256 of the 315 are 256 to 512 pixels on their longest side | 2048 × 2048 for 4,616 of the 5,194 |
| Example | Police Cruiser (police3): policenew_sign_1 to policenew_sign_8, 256 × 256 | Sultan RS (sultanrs): sultanrs_livery1 to sultanrs_livery8, 2048 × 2048 |
The other 339 vehicles have no factory livery we could extract. Putting a livery on one of those means shipping a modified copy of its model with the body switched to a livery shader, which is a job for a 3D tool, not an image editor.
By hand: a texture livery
- 1
Get the template
Download the factory livery from the car's page in Livery templates, or open the car's .ytd in OpenIV or CodeWalker and export the texture (for the Police Cruiser,
policenew_sign_1). - 2
Paint over it
In Photoshop, GIMP or Photopea, at the same size. The sheet is cut into pieces that are rotated, stretched and sometimes mirrored, so keep the factory livery as a guide layer to see where each part of the body sits.
- 3
Put it back
In OpenIV or CodeWalker, replace the texture in a copy of the .ytd, keeping the exact same name. Use DXT compression with mipmaps.
- 4
Stream it
Make a resource folder with an fxmanifest.lua (
fx_version 'cerulean'andgame 'gta5') and the .ytd instream/. Addensurewith the folder name to server.cfg and restart the server. - 5
Pick it in game
With
SetVehicleLivery(vehicle, index)or the livery option of your garage or mod shop menu.
Replacing the .ytd this way puts Rockstar's whole texture dictionary in your resource, and two resources that replace the same .ytd overwrite each other. The script route avoids both: put only your texture in a .ytd with a new name, and from a client script tell the game to draw it wherever it would draw the original. This is what the resources THE ORB Studio exports do:
CreateThread(function()
RequestStreamedTextureDict('my_livery')
local waited = 0
while not HasStreamedTextureDictLoaded('my_livery') and waited < 5000 do
Wait(50)
waited = waited + 50
end
-- Where the Police Cruiser draws its first livery, draw ours.
AddReplaceTexture('police3', 'policenew_sign_1', 'my_livery', 'my_livery_tex')
AddReplaceTexture('police3+hi', 'policenew_sign_1', 'my_livery', 'my_livery_tex')
end)Here my_livery.ytd sits in stream/ with one texture called my_livery_tex. The second line covers the high detail dictionary the game uses up close. Your design now shows on every Police Cruiser set to livery 1 (SetVehicleLivery(vehicle, 0)).
By hand: a mod kit livery
Here each livery is its own small model. The Sultan RS has eight: sultanrs_livery1.yft to sultanrs_livery8.yft, each with its 2048 × 2048 texture inside, listed in the car's mod kit in carcols.meta.
- 1
Make the livery model
Copy one of the car's livery .yft files, give it a new name, and replace the texture inside it in OpenIV or CodeWalker.
- 2
Copy the mod kit
In a new carcols.meta, copy the car's whole mod kit, give the copy a new
kitNameand a newid, and add an<Item>of typeVMT_LIVERY_MODwhosemodelNameis your livery model. - 3
Point the car at the copy
In a carvariations.meta entry for the car, put your kit's name in
<kits>in place of the original. - 4
Load it
In fxmanifest.lua:
data_file 'CARCOLS_FILE' 'data/carcols.meta'anddata_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta', both files listed infiles, and the livery .yft instream/. - 5
Pick it in game
Livery, in the mod shop, or
SetVehicleMod(vehicle, 48, index, false)afterSetVehicleModKit(vehicle, 0).
Why a copy of the kit and not one more item in the original: we tested it in game on the Sultan RS. An item added to the game's own kit did nothing, because the game keeps the kit it registered first. A new kit with its own id, with the car's carvariations pointing at it, works. Streaming a file with the same name as a factory livery does not replace it either: the game loads mod kit liveries from the car's own package. The catch: two resources that add liveries to the same car both rewrite its carvariations, so only one of them wins.
With THE ORB Studio
On the game's own car, with the Livery Creator:
- 1
Pick the car
Every vehicle in GTA V is in the garage, with its livery layout and its factory liveries.
- 2
Design on the car
Add text, images, shapes or a base colour, or a video or GIF for an animated livery. Images are projected onto the bodywork and baked into the sheet. You can also import a finished PNG, .ytd or .dds, and save the sheet or the UV template as PNG.
- 3
Choose how it goes in
Replace one of the car's liveries, keep it on every car of that model, or, on a mod kit car, add it as a new option in the mod shop. A car the game gave no livery can get its model switched to the livery shader.
- 4
Install
Drop the folder in
resources/, addensureto server.cfg and restart. The README has the command that spawns the car wearing the livery and the native to set it from a script.
On a new car, with the Vehicle Creator: the Livery step uses the same editor and can start from one of the car's factory liveries. The design is baked into the car's model, next to the parts, wheels and paint you chose, and the car spawns with its own name (/car <name>). The game's car is not changed. The button on each page in Livery templates opens that car here.
Free to try with your Discord login: 10 exports the first month and 5 a month after on the Free plan, unlimited on any paid plan. Uploading your own car needs a paid plan or the Pro Pass. See pricing.
Skip the extraction and the restarts
Pick the car, design the livery on the 3D model, and download a new car with the livery baked in, ready to spawn with /car. Free to try with your Discord login: 10 exports the first month and 5 a month after on the Free plan, unlimited on any paid plan.
Frequently asked questions
How do I add a livery to a FiveM car?
Find out whether the car uses texture or mod kit liveries. For texture liveries, replace one of the textures in its .ytd, or draw your own texture over it with AddReplaceTexture from a client script. For mod kit liveries, add a livery model to a copy of the car's mod kit and point its carvariations at that copy. Or design it on the 3D car in THE ORB Studio and download the resource.
How do I know if a car uses texture or mod kit liveries?
Its page in THE ORB Studio's livery templates says so. From a script, GetVehicleLiveryCount(vehicle) counts texture liveries, and GetNumVehicleMods(vehicle, 48) counts mod kit liveries after SetVehicleModKit(vehicle, 0).
Why does my livery show the default paint?
Usually a name. The replaced texture has to keep the exact name the model asks for, the .ytd has to be in the resource's stream folder, and the resource has to be started. With AddReplaceTexture, the dictionary and texture names in the script have to match the ones in your .ytd.
What size should a FiveM livery texture be?
The same size as the factory livery you replace. Most texture liveries are 256 to 512 pixels on their longest side, and most mod kit liveries are 2048 × 2048.
Will a custom livery work on ESX and QBCore?
Yes. A livery is a resource, not a framework feature, so it works the same on any framework. Garages and mod shops that pick liveries show it like any other.