# Livery XML Properties The `livery.xml` file goes in the `model.[tag]` folder beside the `*.glTF` and `*.bin` files for an aircraft livery and should be formatted as follows: ``` xml ```   For an explanation of how this file will be added to the base aircraft files at the time of the modular merge, please see here: - [Merge Process For Liveries](../../modular-simobject-merging/#livery_merge)   For examples of how this file is setup, please see here: - [Livery XML Examples](livery-xml-examples/)   For an explanation of how to set up your liveries so that they work with the adaptive elements that dynamic materials generate, please see here: - [Liveries](liveries/)     ### <ModelInfo> This element is a container element for all the livery {{< glossterm >}}lod{{< /glossterm >}} details. This element can contain the following: 1. ``   This element has the following attributes:   {{< table-wrapper >}} | Attribute | Description | Type | Required | |-----------|--------------------------------------------------------------------------------------|-------|:--------:| | `Version` | The version of this ModelInfo definition. Default is "1.0". Currently not important. | Float | No | {{< /table-wrapper >}}     ### <LODS> This is a container element that has no attributes and contains one or more `` sub-elements. The LODs given here should correspond to the glTF files of the livery part where the file is located.     #### <LOD /> This sub-element of `` is used to describe a single {{< glossterm >}}lod{{< /glossterm >}} model. It can be self closing, or it can contain one or more `` elements. It has the following attributes:   {{< table-wrapper >}} | Attribute | Description | Type | Required | |-------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|:--------:| | `modelFile` | Defines the model file to use (from a relative path) for this LOD. | String | No | | `minSize` | This is the minimum size on screen before this LOD model is considered for display, as a percentage. Note that the value can be greater than 100%. Please see the [LOD Selection System](../../../../models-and-textures/modeling/lods/lod-selection-system/) page for more information on this property. | Float | Yes | {{< /table-wrapper >}}     #### <MergeModel> This element is used to define the different animation and/or sub-model {{< glossterm >}}gltf{{< /glossterm >}} files that should be used for the SimObject over the different `` elements. Paths for this element are relative to the model XML file location. If you are using both sub-models and animations then you would have at least two of these elements, although you can have more as required. You can find an example for this element here: [Submodels And Animations](../../../models/model-xml-examples/#Submodel). You can also find out more information about sub-model merging here: [Submodel Merging](../../../../models-and-textures/submodel-merging/).     ### <DynamicMaterial> This is a container element used for defining various properties which will change how a material is rendered dynamically, based on a combination of factors (the location, the career, the applied labels, etc...). This element can contain different sub-elements depending on which of these types of dynamic assets you are targeting, and you can have multiple `` container elements in the livery XML file (one for each material of the model to set up).   The types of dynamic material available are as follows:   - **Material**: This is used when you wish to swap the "base" material for another one. For dynamic materials you will need to have set up a `material.lbl` (using [The Material Editor](../../../../devmode/editors/material-editor/the-material-editor/)) and then use the following elements: 1. `` 2. `` 3. `` 4. ``   - **Texture**: This is for when you wish to assign a texture to a material. For dynamic textures you will need to have a `texture.lbl` and then use the following elements: 1. `` 2. `` 3. `` *Not Currently Used In The Simulation.* 4. ``   - **Text**: This is when you wish to use a material to render text instead of a texture. For dynamic text you will need a [text.lbl](../../../lbl-files/text-lbl/) and then use the following elements: 1. `` 2. `` 3. `` 4. `` *Not Currently Used In The Simulation.* 5. `` 6. `` 7. ``   - **Color**: This is used when you wish to alter the albedo of a material and not its texture. For dynamic palettes you will need a `palette.lbl` and the following elements: 1. `` 2. `` 3. `` 4. `` 5. ``     ### <MatName> This element is a child of `` and is where you give the name of a [flightsim material](../../../../models-and-textures/textures/materials/flightsim-materials/) in a model {{< glossterm >}}gltf{{< /glossterm >}} that is to be the target of the dynamic material being defined. For example: ``` xml TEXT_01 ```     ### <TrueRandom> This element is a child of `` and can be set to `TRUE` if you want different random stickers when 2 dynamic materials calls the same parameters. Set it to `FALSE` if you want both images to be the same. For example: ``` xml TRUE ``` Note that if this element is not included then it will default to `FALSE`.     ### <EnforcePlayerCompany> This element is a child of `` and can be set to either `EnforceLogo` or `EnforceName`, depending on whether the material being targeted is being used for an image or for text. This will force the material to display the user selected Logo/Name instead of a dynamic one. {{< callout context="note" title="NOTE" icon="outline/bulb" >}} This is currently not used by the simulation. {{< /callout >}} For example: ``` xml EnforceName ```     ### <Type> This element is a child of `` and is used to set the type of dynamic material being defined. It can be one of the following: - **Texture**: This XML is defining a texture (logo/sticker). See here for an example: [Adaptive Texture Example](livery-xml-examples/#texture). Note that in addition to changing the image of a texture, you may include the material in an `editable_color.N` definition to colour it dynamically. - **Text**: This XML is defining some text. See here for an example: [Adaptive Text Example](livery-xml-examples/#text). Note that in addition to changing the image of a texture, you may include the material in an `editable_color.N` definition to colour it dynamically. - **Material**: This XML is defining a material to be used instead of the "base" material. See here for an example: [Adaptive Material Example](livery-xml-examples/#material). - **Color**: This XML is defining a colour palette to be used. See here for an example: [Adaptive Palette Example](livery-xml-examples/#palette). *Not currently used in the simulation*.   For example: ``` xml Text ```     ### <TextureSize /> This self-closing element is a child of `` and is only used when the `` is set to **Text**. This sets the texture resolution for the text to be displayed on the mesh with the linked material. In general this should mimic approximately the aspect ratio of the mesh itself (so if the mesh is square then the width/height will be the same, but if it's a rectangle then the width will be greater than the height). The values used here will affect the quality of the text rendering and in general you should keep this as low as possible. For example, the text below was rendered with a texture size of (1024, 160): {{< image-center src="images/5_Content_Config/SimObj/modular_aircraft/liveries/livery_xml_1_textres.png" alt="Example Of Dynamic Text Rendering" >}}   This element has the following attributes:   {{< table-wrapper >}} | Attribute | Description | Type | Required | |-----------|----------------------------------------|---------|:--------:| | `Width` | The width of the texture (in pixels). | Integer | Yes | | `Height` | The height of the texture (in pixels). | Integer | Yes | {{< /table-wrapper >}}   For example: ``` xml ```     ### <Labels> This element is a child of `` and is used to setup the various labels that will be used to specify under which circumstances the dynamic material being defined will be used as well as which image or text should be used (when appropriate). This element has no parameters and requires one or more `