# Package Tool XML Properties The `.xml` file should be formatted as follows: ``` xml ``` Within the `` element you would define some of the meta data related to the entire package, and then have one or more opening and closing `` elements for the different types of assets that comprise the package.**IMPORTANT!** The XML format for the [Package Tool](../package-tool/) is constantly evolving as new features and elements are added to the DevMode tools. As such this documentation is a constant work-in-progress. This document is here for **reference only** and you should not be creating package XML yourself, but should instead be using [The Project Editor](../../../devmode/editors/project-editor/the-project-editor/) to create projects, packages and asset groups, as that will always generate correct XML. The contents of the main `` container are listed below. ### <PackageOrderHint> This is used to give the package order *hint* which is used by the {{< glossterm >}}vfs{{< /glossterm >}} to place the package in the correct place in the load order. This element simply takes a string which can be any one of those listed in the table below, for example: ``` xml CUSTOM_NAVDATA ``` The table below lists *all* the package order hints, but note that **only those flagged for 3rd parties should be used**. The others are provided for *reference* only. {{< table-wrapper "270px" >}} | Hint | Description| 3rd Parties | |----|----|:-----:| | `BESPOKE_AIRPORT` | These are core simulation packages that bring changes to one or more generic airports. **This **cannot** be used.** | {{< check/bad >}} | | `BESPOKE_AIRPORT_PATCH` | These are 3rd party packages that override changes in `BESPOKE_AIRPORT` packages. | {{< check/good >}} | | `CUSTOM_AIRPORT` | These are 3rd party packages that override one or more generic airports or that add in new ones to the simulation. | {{< check/good >}} | | `CUSTOM_AIRPORT_LIFE` | These are 3rd party packages that change airport life (ie: apron services or navigation services). | {{< check/good >}} | | `CUSTOM_AIRPORT_PATCH` | These are 3rd party packages that override changes in `CUSTOM_AIRPORT` packages. | {{< check/good >}} | | `CUSTOM_INSTRUMENT` | These are 3rd party packages that contain one or more cockpit instruments (altimeters, radios, flight computers, etc...). | {{< check/good >}} | | `CUSTOM_INSTRUMENT_PATCH` | These are 3rd party packages that override changes in `CUSTOM_INSTRUMENT` packages.| {{< check/good >}} | | `CUSTOM_LOCAL_SCENERY` | These are 3rd party packages that contain scenery from a specific region. | {{< check/good >}} | | `CUSTOM_MATERIAL_LIB` | These are 3rd party packages that contain a library of different materials. | {{< check/good >}} | | `CUSTOM_MATERIAL_LIB_PATCH` | These are 3rd party packages that override changes in `CUSTOM_MATERIAL_LIB` packages. | {{< check/good >}} | | `CUSTOM_MODELLIB` | These are 3rd party packages that contain models. | {{< check/good >}} | | `CUSTOM_MODELLIB_PATCH` | These are 3rd party packages that override models from `CUSTOM_MODELLIB` packages. | {{< check/good >}} | | `CUSTOM_NAVDATA` | These are 3rd party packages that replace all the navigation data for the world. | {{< check/good >}} | | `CUSTOM_NAVDATA_PATCH` | These are 3rd party packages that override navigation data from `CUSTOM_NAVDATA` packages. | {{< check/good >}} | | `CUSTOM_POI`| These are 3rd party packages that contain [POI](../../../devmode/editors/project-editor/the-project-inspector/#) scenery elements. | {{< check/good >}} | | `CUSTOM_POI_PATCH`| These are 3rd party packages that override [POI](../../../devmode/editors/project-editor/the-project-inspector/#) scenery elements from `CUSTOM_NAVDATA` packages.| {{< check/good >}} | | `CUSTOM_SCENERY_PATCH` | These are 3rd party packages that override `CUSTOM_WORLD_SCENERY` or `CUSTOM_LOCAL_SCENERY` packages.| {{< check/good >}} | | `CUSTOM_SIMATTACHMENT_LIB` | These are 3rd party packages that contain one or more sim-attachments for use in aircraft or elsewhere in the world. | {{< check/good >}} | | `CUSTOM_SIMATTACHMENT_LIB_PATCH` | These are 3rd party packages that override sim-attachment data from `CUSTOM_SIMATTACHMENT_LIB` packages. | {{< check/good >}} | | `CUSTOM_SIMOBJECTS` | These are 3rd party packages contain one or more SimObjects. | {{< check/good >}} | | `CUSTOM_SIMOBJECTS_PATCH` | These are 3rd party packages that SimObject data from `CUSTOM_SIMOBJECTS` packages.| {{< check/good >}} | | `CUSTOM_SIMPROPCONTAINER_LIB` | These are 3rd party packages that contain one or more SimProp Container objects. | {{< check/good >}} | | `CUSTOM_SIMPROPCONTAINER_LIB_PATCH` | These are 3rd party packages that SimProp Container data from `CUSTOM_SIMPROPCONTAINER_LIB` packages.| {{< check/good >}} | | `CUSTOM_TEXTURELIB` | These are 3rd party packages that contain textures. | {{< check/good >}} | | `CUSTOM_TEXTURELIB_PATCH` | These are 3rd party packages that override textures from `CUSTOM_TEXTURELIB` packages. | {{< check/good >}} | | `CUSTOM_VFX`| These are 3rd party packages that contain custom visual effects. | {{< check/good >}} | | `CUSTOM_WORLD_SCENERY` | These are 3rd party packages that contain scenery from around the world. | {{< check/good >}} | | `DEVICE` | These can be either core simulation packages or 3rd party packages that are related to input device configurations. | {{< check/good >}} | | `GENERIC_AIRPORT` | These are core simulation packages that contain all the airports of the world. | {{< check/bad >}} | | `GENERIC_AIRPORT_PATCH` | These are 3rd party packages that override one or more airports from `GENERIC_AIRPORT` packages. | {{< check/good >}} | | `GENERIC_COVERAGE_MAP` | These are core simulation packages that contain generic vegetation coverage maps from around the world. **This cannot be used.** | {{< check/bad >}} | | `GENERIC_MODELLIB`| These are core simulation packages that contain generic models. **This **cannot** not be used.** | {{< check/bad >}} | | `GENERIC_MODELLIB_PATCH`| These are 3rd party packages that override some models of the `GENERIC_MODELLIB` packages. | {{< check/good >}} | | `GENERIC_NAVDATA` | These are core simulation packages that contain all the navigation data for the world (waypoints, NDB, VOR, ILS, etc...). **This **cannot** be used.** | {{< check/bad >}} | | `GENERIC_NAVDATA_PATCH` | These are 3rd party packages that override the navigation data from `GENERIC_NAVDATA` package. | {{< check/good >}} | | `GENERIC_SCENERY` | These are core simulation packages that contain generic scenery from around the world. **This cannot be used.** | {{< check/bad >}} | | `GENERIC_SCENERY_PATCH` | These are 3rd party packages that override scenery from `GENERIC_SCENERY` packages.| {{< check/good >}} | | `GENERIC_TEXTURELIB` | These are core simulation packages which contain generic textures used by core models. **This **cannot** be used.** | {{< check/good >}} | | `GENERIC_TEXTURELIB_PATCH` | These are 3rd party packages that override some textures of `GENERIC_TEXTURELIB` packages. | {{< check/bad >}} | | `INPUT` | These can be either core simulation packages or 3rd party packages that are related to input binding configurations. | {{< check/good >}} | | `INSTRUMENT`| These are core simulation packages that are focused on cockpit instruments, such as altimeters, radios, or flight computers. **This **cannot** be used.** | {{< check/bad >}} | | `INSTRUMENT_PATCH`| These are 3rd party packages that override `INSTRUMENT` packages.| {{< check/bad >}} | | `INVALID` | This would be the default category for those packages with an unset category hint. **This cannot be used.**| {{< check/bad >}} | | `MATERIAL_LIB` | These are core simulation packages which contain the materials used in the world and on some models. **This **cannot** be used.** | {{< check/bad >}} | | `MATERIAL_LIB_PATCH` | These are 3rd party packages that override some materials from `MATERIAL_LIB` packages. | {{< check/good >}} | | `MISC`| These are core simulation packages that do not match any other hint category available. **This cannot be used.** | {{< check/bad >}} | | `MISSION` | These are core simulation packages that contain predefined flight scenarios, challenges, or story-driven missions. **This **cannot** be used.**| {{< check/bad >}} | | `PANEL` | These are core simulation packages that define cockpit panel layouts, displays, and/or interactable controls. **This **cannot** be used.** | {{< check/bad >}} | | `PANEL_PATCH` | These are 3rd party packages that override `PANEL` packages. | {{< check/good >}} | | `POI` | These are core simulation packages that contain [POI](../../../devmode/editors/project-editor/the-project-inspector/#) scenery elements (for example, the Eiffel tower). **This **cannot** be used.** | {{< check/bad >}} | | `POI_PATCH` | These are 3rd party packages that override `POI` packages. | {{< check/good >}} | | `SERVICES` | These are core simulation packages that describe airport services. | {{< check/good >}} | | `SIMATTACHMENT_LIB` | These are core simulation packages that define various sim-attachments such as instruments and decorations. **This **cannot** be used.** | {{< check/bad >}} | | `SIMATTACHMENT_LIB_PATCH` | These are 3rd party packages that modify or enhance `SIMATTACHMENT_LIB` packages. | {{< check/good >}} | | `SIMOBJECTS`| These are core simulation packages that define interactive objects in the simulation, such as aircraft or characters. **This **cannot** be used.** | {{< check/bad >}} | | `SIMOBJECTS_PATCH`| These are 3rd party packages that modify or enhance `SIMOBJECTS` packages. | {{< check/good >}} | | `SIMPROPCONTAINER_LIB` | These are core simulation packages that define SimProp Containers that are used in the simulation. **This **cannot** be used.** | {{< check/bad >}} | | `SIMPROPCONTAINER_LIB_PATCH` | These are 3rd party packages that modify or enhance `SIMPROPCONTAINER_LIB` packages. | {{< check/good >}} | | `TRAFFIC` | These are core simulation packages that define or manage AI traffic behavior. **This **cannot** be used.** | {{< check/bad >}} | | `TRAVEL_BOOK` | These are core simulation packages that contain information needed by travel book missions. **This **cannot** be used.** | {{< check/bad >}} | | `UI` | These are core simulation packages that include user interface elements such as menus, overlays, and HUD designs. **This **cannot** be used.** | {{< check/bad >}} | | `UI PATCH` | These are 3rd party packages that override `UI` packages. | {{< check/good >}} | | `VFX` | These are core simulation packages that contain visual effects such as weather effects, explosions, water splashes, or other graphical enhancements. **This **cannot** be used.** | {{< check/bad >}} | | `WILDLIFE` | Core packages that introduce or modify wildlife models, animations, or behaviors within the world. **This **cannot** be used.** | {{< check/bad >}} | {{< /table-wrapper >}} ### <ItemSettings> This is the main container element that defines the package. It has no attributes and contains the the sub-elements listed below. For example: ``` xml LIVERY 103 Solo - Livery 07 Asobo Studio ``` #### <ContentType> This element is where the type of content that the package is for will be defined. It can be any one of the following: - **MISSION** - **AIRCRAFT** - **INSTRUMENTS** - **LIVERY** - **SCENERY** - **MISC** #### <Title> This element is for the title of the package, as shown in the Project Editor. #### <Manufacturer> This element is only required for Aircraft and is used to define the manufacturer of the aircraft. #### <Creator> With this element you can define the person or company that created the package. #### <Description> This element is used to add a description of the package. ### <Dependencies> This element is used to set any package dependencies for the package being defined. It has no attributes and can have one or more `` sub-element.For example: ``` xml dependency-package-name ``` #### <Dependency> This element is used as a container for the `` element. You can have multiple `` elements in a package to define multiple dependencies. It has the following attribute: {{< table-wrapper "200px" "" "150px" "150px" >}} | Attribute | Description | Type | Required | |-----|----|----|:----:| | `Version` | This should always be "0.1.0". | String | Yes | {{< /table-wrapper >}} #### <Name> This element has no attributes and is used to give the name of the package that the package being defined is dependent on. The package name should be given without any file extension. ### <AssetGroups> This is a container element for the different `` elements that are required to generate the package being defined. This element has no attributes, and you can see how it looks with all the sub-elements in this example: ``` xml ContentInfo false PackageDefinitions\asobo-aircraft-103solo-smallwheels-livery-07\ContentInfo ContentInfo\asobo-aircraft-103solo-smallwheels-livery-07 SimObject false Content\fs\SimObjects\Airplanes\Asobo_103Solo_SmallWheels_Livery_07\ SimObjects\Airplanes\Asobo_103Solo_SmallWheels_Livery_07\ Readme.txt ``` ### <AssetGroup> This element is used to define a single asset group that is contained within the package. You can have multiple `` elements in a single package and it has the following attribute: {{< table-wrapper "200px" "" "150px" "150px" >}} | Attribute | Description| Type | Required | |-----|----|----|:----:| | `Name` | The name of the asset group. | String | Yes | {{< /table-wrapper >}} #### <Type> This sub-element defines the type of asset group that is being defined. It can be any one of those listed here: - [Asset Types](../../../devmode/editors/project-editor/asset-types/) #### <AssetDir> This element sets the (relative) path to the assets that are used to generate the package. #### <OutputDir> This element sets the path to the output directory where the package will be created. This is a relative path that will always be within the `Packages` output folder. #### <Config> This is a simple container element for the `` sub-element, and has no attributes. It is a child element of ``. #### <Extras> This container element is used for listing any files that you may wish to include as part of the package. It is a child of the `` element, has no attributes, and can contain one or more `` sub-elements. #### <File> This sub-element should be within the `` element and is used to include an extra file as part of the package. The files that you can include here can be of any type, and can also be within sub-folders, however **they should *not* be any of the "base" files used by a SimObject** (as listed here: ). Essentially, this section is only for files that are not directly referenced by the simulation itself. Also note that the files/folders must be included within the package at the root level relative to the main package CFG/XML. For example: {{< image-center src="images/8_Tools/package_tool/package_1_extras.png" alt="File Explorer Showing Samples Of Extra Documents In A Package" >}} ``` xml SimObject false Assets\SimObjects\Airplanes\airplane SimObjects\Airplanes\airplane\ readme.txt Documents\licence.pdf ``` #### <Flags> This is a container element that sets some extra flags for the package when being compiled. It has no attributes and can contain the sub-elements listed below. For example: ``` xml true true ``` ##### <VisibleInStore> This element can be either `true` or `false`. It is used to tell the compiler if the package is to be shown in the Microsoft store or not. ##### <CanBeReferenced> This element can be either `true` or `false`. It is used to tell the compiler that the package can be refrenced from other packages. ##### <FSXCompatibility> This element can be either `true` or `false` and is only used when the `` container element is used within the `` element. The element is used to tell the compiler that the asset group should be compiled as legacy FSX file (see the example shown in the `` section below). ### <GloballyOverridenBaseSimFiles> This is a container element for the different `` elements that are used to define the different override files that the package requires. This element has no attributes, and you can see how it looks with a sub-element in this example: ``` xml effects\fx_beacon.fx ``` For more information please see here: - [Globally Overriden Base Sim Files](../../../devmode/editors/project-editor/the-project-inspector/#globally-overriden-base-sim-files) #### <GloballyOverridenBaseSimFile> This is a sub-element of `` and is used to give the relative path and filename to a core simulation file that you want to override.