THE ORB
Starting the studio

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 liveriesMod kit liveries
Where the livery livesA texture in the car's .ytdA 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 itSetVehicleLivery(vehicle, index), 0 is the firstSetVehicleModKit(vehicle, 0), then SetVehicleMod(vehicle, 48, index, false)
Where players pick itWhatever livery menu your garage or mod shop hasLivery, in the mod shop
Vehicles in our catalogue172, with 315 livery textures376, with 5,194 liveries
Usual sizeSmall: 256 of the 315 are 256 to 512 pixels on their longest side2048 × 2048 for 4,616 of the 5,194
ExamplePolice Cruiser (police3): policenew_sign_1 to policenew_sign_8, 256 × 256Sultan 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. 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. 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. 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. 4

    Stream it

    Make a resource folder with an fxmanifest.lua (fx_version 'cerulean' and game 'gta5') and the .ytd in stream/. Add ensure with the folder name to server.cfg and restart the server.

  5. 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:

client.lua
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. 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. 2

    Copy the mod kit

    In a new carcols.meta, copy the car's whole mod kit, give the copy a new kitName and a new id, and add an <Item> of type VMT_LIVERY_MOD whose modelName is your livery model.

  3. 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. 4

    Load it

    In fxmanifest.lua: data_file 'CARCOLS_FILE' 'data/carcols.meta' and data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta', both files listed in files, and the livery .yft in stream/.

  5. 5

    Pick it in game

    Livery, in the mod shop, or SetVehicleMod(vehicle, 48, index, false) after SetVehicleModKit(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. 1

    Pick the car

    Every vehicle in GTA V is in the garage, with its livery layout and its factory liveries.

  2. 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. 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. 4

    Install

    Drop the folder in resources/, add ensure to 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.

More guides