> ## Documentation Index
> Fetch the complete documentation index at: https://docs.czautoz.co.uk/llms.txt
> Use this file to discover all available pages before exploring further.

# Retexturing

> Make your own liveries for the fleet — 2D or Substance Painter workflows, the override config pattern, and how custom paint inherits the damage system.

Every airframe in the fleet can be repainted by server owners and community artists, and v0.4.1 turned this into a properly supported workflow: the UV maps were normalised on every helicopter, the example FBX files were fixed to import correctly, and custom liveries inherit the full [visual damage system](/features/damage-zones#visual-damage-stages-v041) automatically.

## Two Ways to Paint

**2D repaint** — open the shipped `_co` body texture in any image editor, paint over it, and export. Because your artwork sits on the same layout as ours, everything lands exactly where the original livery did. This is the fastest route and needs no 3D tools at all.

**Substance Painter / Blender** — import the example FBX for the airframe, paint in full 3D, and export your textures. As of v0.4.1 the FBX geometry matches the shipped models exactly — earlier versions imported mirrored, with every face reversed — and the UVs are identical to the ones the shipped textures use, normalised into the standard 0–1 tile so Painter's baking and fill layers behave.

<Note>
  Finished artwork must be converted to `.paa` (DayZ Tools → ImageToPAA) before the game can load it.
</Note>

## The Override Pattern

A retexture ships as a small mod of its own: a `config.cpp` that declares a new classname inheriting our airframe base, pointing the texture slots at your files. Nothing of ours is modified — your mod simply adds another variant.

```cpp theme={null}
class CfgPatches
{
    class MyServer_Helis
    {
        units[] = {"MyServer_Merlin_Red"};
        requiredAddons[] = {"CZ_AW101Merlin"};
    };
};

class CfgVehicles
{
    class CZ_AW101Merlin_base;
    class MyServer_Merlin_Red : CZ_AW101Merlin_base
    {
        scope = 2;
        displayName = "AW101 Merlin (Red Baron)";
        hiddenSelectionsTextures[] =
        {
            "vehicle_generic_detail2.paa",
            "", "", "", "", "", "", "", "",
            "MyServer\Helis\data\Merlin_Red_co.paa",
            "", "", "", ""
        };
    };
};
```

The texture array is **positional** — it must line up with the airframe's `hiddenSelections`. The first nine slots are lights, the **body texture goes in slot 10** (index 9), and the navigation-light slots follow. Copy the array from any shipped livery of that airframe and swap only the body path.

<Warning>
  The **UH-1H is the one airframe with a separate tail texture** — its list has `camo` at index 9 **and** `camotail` at index 10, so a UH-1H livery supplies two textures. Every other airframe paints the whole aircraft, tail included, from the single body texture.
</Warning>

## Doors and Wheels

Doors are separate attachment items with their own classes, and they **share the body texture layout** — a door painted with your body `_co` matches the airframe seamlessly. Declare your own door classes the same way, inheriting the airframe's door bases (for example `CZ_UH1H_Cargo1_base`), and point their `hiddenSelectionsTextures` at the same artwork.

## Damage Stages Come Free

Your livery inherits all five [visual damage stages](/features/damage-zones#visual-damage-stages-v041) with no extra work: the paint always comes from **your** textures, and only the damage overlay — dents, grime, the burnt wreck finish — is applied on top, falling back to our materials automatically when you have not shipped your own.

If you *do* override `hiddenSelectionsMaterials` with a custom material, you can also author the damage tiers yourself: place `<YourMaterial>_worn.rvmat`, `_damage.rvmat`, `_bad.rvmat` and `_destruct.rvmat` alongside it and the mod uses them stage for stage. Any tier you leave out falls back to ours — nothing ever renders broken.

<Tip>
  On the UH-1H, the **NASA roundel and N418NA registration are embossed into the normal map**, so they remain faintly visible under any repaint. To remove them completely, override `hiddenSelectionsMaterials` with a material pointing at your own `_nohq` normal map.
</Tip>

## Checklist

1. Paint — 2D over the shipped `_co`, or 3D via the example FBX
2. Convert to `.paa`
3. Override config: new class inheriting `CZ_<Airframe>_base`, textures in the right slots (UH-1H: body **and** tail)
4. Door classes the same way if you want matched doors
5. Add your classname to `types.xml` / trader files like any other variant
