Tutorial - Updating mods to new paints

This tutorial will explain step by step how to update a mod to use the new paint system.

Please pay close attention to the syntax, especially the use of brackets!

Library paints

If your mod is using duplicates of certain paint colors from vanilla cars, we encourage you to check if these paints already exist in the default paint library , and replace your entries with the references to the library paints. This ensures that if the vanilla paint is updated in the future (due to graphics or syntax changes), the change will be carried over to the mod automatically.

"paints": {
  "Night Blue": {
    "baseColor": [0.04,  0.06,  0.16,  1.0],
    "clearcoat": 0.8,
    "clearcoatRoughness": 0.07,
    "metallic": 0.8,
    "roughness": 0.5
  },
  (...)
},

Before

"libraryPaints": [
  "Night Blue",
  (...)
],

After

Paint classes

In order to reduce the number of selectable paints in the vehicle selector, you can move some paints, which would not be available from factory, into the Custom class.

"paints": {
  "Night Blue": {
    "baseColor": [0.04,  0.06,  0.16,  1.0],
    "clearcoat": 0.8,
    "clearcoatRoughness": 0.07,
    "metallic": 0.8,
    "roughness": 0.5
  },
  (...)
},

Before

"paints": {
  "Night Blue": {
    "class": "custom",
    "baseColor": [0.04,  0.06,  0.16,  1.0],
    "clearcoat": 0.8,
    "clearcoatRoughness": 0.07,
    "metallic": 0.8,
    "roughness": 0.5
  },
  (...)
},

After

You can apply the same approach to some of the library paints .

"libraryPaints": [
  "matte_black",
  (...)
],

Before

"libraryPaints": [
  { "id": "matte_black",    "class": "custom" },
  (...)
],

After

Multi-paint setups

Inside the configuration info.json files, whenever multiple paint colors are used together (for example with two-tone skins), you should replace the occurrences of defaultPaintName1, defaultPaintName2 and defaultPaintName3 with multi-paint setups . This will make the paint setups properly selectable with fitting color combinations.

For factory configurations, add multi-paint setups with their paints to the vehicle’s main info.json file:

"multiPaintSetups": [
  {
    "name": "Cream Two-Tone",
    "class": "factory",
    "paint1": "cream",
    "paint2": "light_brown",
    "paint3": "cream"
  },
  (...)
],

And reference them inside the configuration’s info.json files:

"defaultPaintName1": "cream",
"defaultPaintName2": "light_brown",
"defaultPaintName3": "cream"

Before

"defaultMultiPaintSetup":"Cream Two-Tone"

After

For custom configurations, it is better to declare the multi-paint setup directly within the configuration’s info.json file. This will make it only usable on this specific configuration.

"defaultPaintName1": "matte_dune",
"defaultPaintName2": "army_green",
"defaultPaintName3": "matte_black"

Before

"defaultMultiPaintSetup":
{
  "name": "Two-Tone Adventure",
  "class": "custom",
  "paint1": "matte_dune",
  "paint2": "army_green",
  "paint3": "matte_black"
}

After

Last modified: September 5, 2025

Any further questions?

Join our discord
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.