# Vehicle liveries on a FiveM server

> How vehicle liveries work in FiveM: texture liveries vs mod-kit liveries, where the textures live, editing from a UV template and SetVehicleLivery.

Source: https://fam-tools.com/guides/fivem-vehicle-liveries · FAM Tools · published 2026-09-11 · updated 2026-09-11 · about 9 min

**Short answer.** Texture liveries are alternate textures (often named `sign_1`, `sign_2`…) inside the vehicle’s texture dictionary, selected with `SetVehicleLivery(veh, index)`. Mod-kit liveries are separate livery models defined in the vehicle’s mod kit (carcols.meta) and applied with `SetVehicleMod(veh, 48, index)`. Edit designs on the vehicle’s UV template, keep names and sizes, and check `GetVehicleLiveryCount` or the mod count to confirm they loaded.

## Key points

- Texture liveries: `SetVehicleLivery` / `GetVehicleLiveryCount`.
- Mod-kit liveries: `SetVehicleMod(veh, 48, i)` (48 = livery mod slot).
- Paint on the vehicle’s UV template, keep texture names.
- 2K is plenty for a livery texture.
- Mod kit IDs must be unique across packs.

Police decals, company wraps, race numbers — liveries turn a generic car into your server’s car. GTA supports two kinds, and knowing which one a vehicle uses decides how you add new designs and how scripts apply them.

## Two kinds of livery

|  | Texture livery | Mod-kit livery |
| --- | --- | --- |
| Stored as | Extra textures in the vehicle’s `.ytd`/`.yft` | Livery models in the mod kit |
| Apply with | `SetVehicleLivery(veh, i)` | `SetVehicleMod(veh, 48, i)` |
| Count | `GetVehicleLiveryCount(veh)` | `GetNumVehicleMods(veh, 48)` |
| Typical for | Emergency packs | Add-on sports cars |

## Applying in scripts

*client.lua*

```lua
local veh = GetVehiclePedIsIn(PlayerPedId(), false)

if GetVehicleLiveryCount(veh) > 0 then
    SetVehicleLivery(veh, 1)
else
    SetVehicleModKit(veh, 0)
    if GetNumVehicleMods(veh, 48) > 0 then
        SetVehicleMod(veh, 48, 0, false)
    end
end
```

`SetVehicleModKit(veh, 0)` is required before applying mods. Save the livery with the vehicle’s properties so garages restore it.

## Making or editing a livery

1. Export the vehicle’s livery texture (or the UV template the creator supplies) with CodeWalker or OpenIV.
2. Paint on the template in layers; keep the canvas size.
3. Save as DDS with alpha if the livery is transparent in places (BC3/BC7 with mipmaps).
4. Replace the texture with the same name and stream the edited dictionary.

Texture handling is the same as for weapon skins — see [editing YTDs in CodeWalker](https://fivem-weapons.com/guides/codewalker-ytd-editing).

## Emergency livery packs

- Keep one livery per department and number them consistently across the fleet.
- Check carcols.meta siren and kit IDs against other packs — see [vehicle meta files](https://fam-tools.com/guides/fivem-vehicle-meta-files).
- Oversized livery textures are a frequent cause of streaming warnings — see [oversized assets](https://fam-tools.com/guides/fivem-oversized-assets-warning).

## Questions

### How do I change a vehicle livery in FiveM?

Use `SetVehicleLivery(vehicle, index)` for texture liveries or `SetVehicleMod(vehicle, 48, index)` for mod-kit liveries.

### Why does SetVehicleLivery do nothing?

The vehicle uses mod-kit liveries. Set the mod kit and use `SetVehicleMod` with mod type 48.

### How do I add my own livery?

Paint it on the vehicle’s UV template and replace the livery texture with the same name, then stream it.

### What resolution should liveries be?

2048 is plenty for most vehicles.

## Related

- https://fam-tools.com/guides/fivem-vehicle-meta-files
- https://fam-tools.com/guides/fivem-add-addon-cars
- https://fam-tools.com/guides/fivem-oversized-assets-warning
- https://fam-tools.com/guides/fivem-replace-vs-addon-vehicles
