Airplane skins
A skin is a new paint scheme for an airplane the game already has. The model stays exactly the same; your mod only brings new pictures that are painted onto it. So you paint on the airplane's existing UV layout (the flat map that says which part of the picture lands where on the model), the same one the built-in skins use.
A mod skin behaves like a built-in one:
- It shows up in every skin selection next to the built-in skins: the airplane's own panel, the fleet's default and randomize settings, and the ordering window.
- It is unlocked from the start.
- It is put on an airplane with the Paint Airplane task, like any other skin.
- It is part of the pool the randomize setting picks from.
Example files
Example files for airplane skins are in the example folder on Google Drive. Use them as a reference for how your own files should look.
Quick start
-
Make a mod folder with an
Airplanes/folder inside:Mods/ my_mod/ Airplanes/ config.json DesertRat_BaseMap_1001.png -
Put this into
Airplanes/config.json:{ "Skins": { "DesertRat": { "Airplane": "spitfire" } } } -
Paint
DesertRat_BaseMap_1001.pngon the Spitfire's UV layout and save it as PNG. - Open Main menu → Mods and press Refresh so the game finds the new mod folder, make sure my_mod is switched on, then load a save.
The skin DesertRat is now in the Spitfire's skin selection.
The Airplanes/ folder
Everything for your skins lives in the mod's Airplanes/ folder:
Mods/
my_mod/
Airplanes/
config.json required - which skins the folder adds
DesertRat_BaseMap_1001.png required - base colour, tile 1001
DesertRat_BaseMap_1002.png optional - base colour, tile 1002
DesertRat_Specular_1001.png optional - specular colour, tile 1001
DesertRat_Specular_1002.png optional - specular colour, tile 1002
DesertRat.thumbnail.png optional - the skin's icon in the menus
- PNGs may sit in subfolders of
Airplanes/, so you can sort them however you like. The game knows a file by its name alone. - Capitalisation in file names does not matter:
desertrat_basemap_1001.pngis found as well. - Only the
config.jsondirectly insideAirplanes/is read. Aconfig.jsonin a subfolder is not. - Any other file type is ignored, with a warning in the log.
config.json
config.json lists your skins under Skins. Each skin gets an entry, keyed by its skin id. The skin id also names the skin's textures and its thumbnail.
{
"Skins": {
"DesertRat": {
"Airplane": "spitfire",
"Name": "Desert Rat",
"BaseSkin": "Supermarine-Spitfire_MK09_Day-Fighter_Toon-UDIM"
}
}
}
| Key | Required | What it does |
|---|---|---|
Skins |
yes | One entry per skin. The key of each entry is the skin id (here DesertRat). |
Airplane |
yes | The airplane the skin is painted on. An id from Airplane ids. |
Name |
no | The name the skin selection shows. It is one text for all languages. Without it, the skin id is shown. |
BaseSkin |
no | The built-in skin your skin starts from. Its material is copied, and every texture your mod does not ship stays that skin's. Without it, the airplane's first skin is used (see Airplane ids). |
Warning
Keep the file valid JSON: no comments, no trailing commas.
When a skin is skipped
A skin is left out, with a warning in the log, when:
- it names no
Airplane, - the
Airplaneit names does not exist, - the folder has no
<skinId>_BaseMap_1001.png.
Textures
The texture names follow the naming of the game's own art, with your skin id in front. Bigger airplanes spread their paint over several pictures, called tiles, numbered 1001, 1002 and 1003.
| File | What it paints |
|---|---|
<skinId>_BaseMap_1001.png |
Base colour of tile 1001 (UVs with U from 0 to 1). Required. |
<skinId>_BaseMap_1002.png, <skinId>_BaseMap_1003.png |
Base colour of tile 1002 (U from 1 to 2) and tile 1003 (U from 2). |
<skinId>_Specular_1001.png, <skinId>_Specular_1002.png, <skinId>_Specular_1003.png |
Specular colour (the shine) of each tile. |
- Only the base colour of tile 1001 is required.
- A tile you leave out keeps the texture of the base skin. So you can repaint just part of an airplane.
- A tile the base skin's material has no slot for is ignored.
- A texture may be at most 4096 × 4096 pixels and 10 MB, the same limits as for object art (see Objects and models). A file over the limit is not scaled down; it is skipped with a warning in the log.
Thumbnail
<skinId>.thumbnail.png is the icon the skin selection shows for your skin, at most 512 × 512 pixels and 10 MB. It is optional: without one, the base skin's icon is shown.
Airplane ids
Use these ids for Airplane. The second column is the airplane's first skin, which is used when you leave out BaseSkin.
Airplane |
First (default) skin |
|---|---|
b17raf |
b17raf_Boeing-B17_MK02_Temperate-Sea_Toon-UDIM |
beaufighter |
Bristol-Beaufighter_MK01_Temperate-Land_Toon-Opaque |
blenheim |
Bristol-Blenheim_MK04_Temperate-Land_Toon-Opaque |
defiant |
BoultonPaul-Defiant_MK01_Night_Toon-Opaque |
flamingo |
DeHavilland-Flamingo_MK01_Temperate-Land_Toon-Opaque |
gladiator |
Gloster-Gladiator_MK01_Temperate-Land_Toon-UDIM |
hampden |
HandleyPage-Hampden_MK01_Night_Toon-Opaque |
hurricane |
Hawker-Hurricane_MK02_Day-Fighter_Toon-UDIM |
kittyhawk |
Curtiss-P40_E_Desert-Scheme_Toon-Opaque |
lancaster |
Avro-Lancaster_MK01_Night_Toon-UDIM |
lysander |
Westland-Lysander_MK03_Night_Toon-UDIM |
meteor |
Gloster-Meteor_MK03_Day-Fighter_Toon-Opaque |
mosquito |
DeHavilland-Mosquito_BMK04_Day-Fighter_Toon-UDIM |
mustangmk1 |
mustangmk1_NorthAmerican-Mustang_MK01_Day-Fighter_Toon-UDIM |
spitfire |
Supermarine-Spitfire_MK09_Day-Fighter_Toon-UDIM |
stirling |
Short-Stirling_MK01_Night_Toon-UDIM |
tempest |
Hawker-Tempest_MK05_Day-Fighter_Toon-UDIM |
typhoon |
Hawker-Typhoon_MK01B_Day-Fighter_Toon-UDIM |
vampire |
DeHavilland-Vampire_MK01_Day-Fighter_Toon-Opaque |
Saves and disabled mods
The game saves a mod skin under the id mod_<modId>_<skinId>, in lower case. Your DesertRat in the mod my_mod is saved as mod_my_mod_desertrat. Because the mod id is part of it, two mods never clash, and your skin id needs no prefix of its own.
- When a save names a skin whose mod is no longer switched on, the airplane falls back to its first skin, and the skin disappears from the fleet's default and randomize settings.
- Scenes that show an airplane away from your base, the scramble interception and crash sites, show the airplane's built-in look. That is the same for the built-in skins.
Seeing your changes
Skins are read each time a level is loaded. No restart is needed.
| You changed... | To see it |
|---|---|
A skin PNG or Airplanes/config.json in a mod the game already knows |
Load a level (loading a save is enough). |
A new mod folder, or an Airplanes/ folder that was empty when the game started |
Press Refresh in the Mods window, then load a level. |
More on the test loop in Testing and reloading.
Checking the log
The game writes what it accepted and what it refused to Player.log. Lines about your mod start with [Mod <your mod id>]. When a skin does not show up, look there for the warnings described above: a skipped skin, an ignored file type or a texture over the size limit.
Note
The released game logs errors only. The detailed [Mod ...] lines appear only in development builds. So when the log shows nothing about your mod, check the skin selection in the game itself.