Learn how to make MSFS 2020 liveries, including paint kits, DDS export, package structure, layout.json and fixes for broken textures.
To make a livery for MSFS 2020, start with a paint kit made for the exact aircraft, edit its layered textures, export them in the required DDS format, and build a separate Community package with valid aircraft.cfg, texture.cfg, manifest.json and layout.json files. Never overwrite the installed aircraft itself.
What software do I need to make an MSFS 2020 livery?
A layered image editor, DDS export support, a text editor and a layout-file generator are enough for most Microsoft Flight Simulator 2020 liveries. Blender is optional; it helps with three-dimensional previewing and complex alignment but is not required when a good paint kit is available.
- Layered image editor: edits PSD, XCF or similar paint-kit files without destroying masks, shading and UV guides.
- DDS exporter or converter: creates the texture format expected by the aircraft.
- Text editor: edits JSON and CFG files without adding rich-text formatting.
- Layout generator or SDK package builder: updates
layout.jsonafter files change.
Our guide to editors, DDS utilities and package-management tools for MSFS liveries explains which applications suit each part of the job.
How do I create an MSFS 2020 livery step by step?
The reliable method is to build a new livery package around an aircraft-specific paint kit rather than modifying files inside the original aircraft package.
- Identify the exact aircraft. A livery made for the default Asobo aircraft will not automatically fit another developer's version of the same aeroplane. The model, variant and installed aircraft version must match the paint kit and package template.
- Obtain the correct paint kit. Use an author-supplied layered kit or a texture template whose redistribution terms permit repainting. Keep UV wireframes, panel lines, rivets, dirt and shading on separate layers. Our complete paint-kit and aircraft repaint workflow covers texture preparation in more detail.
- Start a separate package. Use the aircraft developer's livery template, an official SDK sample appropriate to the aircraft, or a known-working package for that exact model. Change its internal identifiers so it does not conflict with another livery.
- Paint the base-colour textures. Work at the original image dimensions and preserve transparency or alpha data. Place artwork below weathering and detail layers but above the base paint unless the kit's instructions say otherwise. Check seams around the nose, tail, doors, wing roots and fuselage joins.
- Export the textures as DDS. Match the source texture's compression, colour channels, alpha handling and mipmap behaviour. BC7 is common for MSFS colour textures, but it is not universal; the original texture or developer documentation is the authority.
- Configure the variation. The livery's
aircraft.cfgmust identify the correct base aircraft and use a unique variation title. Itstexture.cfgnormally falls back to the base aircraft for textures that the livery does not replace. Copy these settings from a template for the same aircraft rather than from an unrelated model. - Update the package metadata. Check
manifest.json, then regeneratelayout.jsonafter every renamed, added or re-exported file. A stale layout is one of the most common reasons a valid-looking repaint fails to load. - Install and test the built package. Put the package in the active Community folder, restart the simulator and select the livery from the aircraft's variation list. Use our Community-folder installation and testing instructions if the simulator has more than one packages location.
For a concrete example of these steps on a stock aircraft, see our worked Asobo A320neo repaint and packaging example.
Which MSFS texture files should I edit?
For most airline-style repaints, edit only the base-colour or albedo textures and leave the material maps unchanged unless the paint kit specifically includes them.
| Texture type | What it controls | Recommended action |
|---|---|---|
| Albedo or base colour | Paint, markings, logos and much of the visible surface colour | Edit this for a normal livery |
| COMP | Material properties stored in separate colour channels, commonly including roughness, metallic response and ambient occlusion | Keep the original unless the finish must change |
| Normal map | Small surface contours such as seams and fasteners | Do not paint it as an ordinary colour image |
| Emissive | Self-lit markings and night lighting | Edit only when the aircraft and paint kit support it |
Do not assume that alpha means transparency. Depending on the aircraft and material, it may control another surface property. Preserving the supplied channels avoids glossy paint turning matt, opaque areas becoming transparent or metallic surfaces appearing incorrect.
What should the livery package contain?
A finished Community package normally has its metadata at the package root and its aircraft variation under SimObjects.
Community\My_Livery\manifest.jsonCommunity\My_Livery\layout.jsonCommunity\My_Livery\SimObjects\Airplanes\My_Livery\aircraft.cfgCommunity\My_Livery\SimObjects\Airplanes\My_Livery\texture.MyLivery\texture.cfgCommunity\My_Livery\SimObjects\Airplanes\My_Livery\texture.MyLivery\*.DDS
The exact names and additional files vary by aircraft. If using the SDK, copy the built package to Community rather than the development project's source folders. Also check for accidental nesting: the simulator must find manifest.json directly inside the package folder, not one folder deeper.
Why does my MSFS 2020 livery not appear?
A livery that is absent from the aircraft selector usually has a packaging, dependency or configuration error rather than a painting error.
- Wrong Community folder: custom installations can leave more than one folder with that name. Confirm the packages path used by the simulator.
- Extra folder level: move the package so
manifest.jsonandlayout.jsonsit at its top level. - Stale layout: regenerate
layout.jsonafter changing a texture, file name or folder. - Duplicate variation identifier: give the livery a unique title rather than reusing one from the template.
- Wrong base aircraft: verify that the configuration references the exact installed model and variant.
- Missing dependency: a livery for a payware or freeware aircraft cannot load unless that aircraft is installed.
- Invalid JSON or CFG syntax: check quotation marks, commas, section headings and file encoding.
Why is the aircraft pink, white or covered in broken textures?
Pink or missing textures usually mean the simulator cannot resolve a DDS file or its fallback path, while an all-white aircraft often means the material is looking for a differently named texture.
Compare every texture name with the aircraft template, including suffixes and the texture-folder name. Then verify that each file appears in layout.json. If the texture loads but looks corrupted, export it again using the original dimensions, compression type, channel arrangement and mipmap settings.
Mirrored or reversed logos are different: some aircraft mirror part of the UV map to save texture space. A texture-only repaint cannot always place unique lettering on both sides; that requires model or decal support from the aircraft developer.
Can every MSFS 2020 aircraft be repainted?
No. Some aircraft have mirrored UVs, encrypted assets, no public paint kit or a custom livery system that does not follow the usual package structure.
For a third-party or Marketplace aircraft, use the developer's paint kit and template whenever one is supplied. Avoid distributing original textures, source paint-kit layers or copyrighted artwork without permission; include only the files needed for the variation and rely on texture fallback for unchanged assets.
This Community-package workflow is for the PC edition of MSFS 2020. Xbox users cannot import arbitrary local livery packages into a Community folder and must use content distributed through supported in-simulator channels.