PACKAGE TOOL XML DEFINITIONS

The <project_name>.xml file should be formatted as follows:

<?xml version="1.0" encoding="utf-8"?>
<AssetPackage Version="0.1.0">
    <ItemSettings>
        <!-- GENERAL ITEM DATA HERE -->
    </ItemSettings>
    <Flags>
        <!-- ITEM FLAGS HERE -->
    </Flags>
    <Dependencies>
        <!-- DEPENDENCIES HERE -->
    </Dependencies>
    <AssetGroups>
        <AssetGroup [Attributes]>
            <!-- ASSET GROUP DETAILS HERE -->
        </AssetGroup>
        <!-- FURTHER ASSET GROUP ELEMENTS HERE -->
    </AssetGroups>
</AssetPackage>

Within the <AssetPackage> element you would define some of the meta data related to the entire package, and then have one or more opening and closing <AssetGroup> elements for the different types of assets that comprise the package.IMPORTANT! The XML format for the 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 to create projects, packages and asset groups, as that will always generate correct XML.

 

The contents of the main <AssetPackage> container are listed below.

 

 

<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:

<ItemSettings>
    <ContentType>LIVERY</ContentType>
    <Title>103 Solo - Livery 07</Title>
    <Manufacturer/>
    <Creator>Asobo Studio</Creator>
    <Description/>
</ItemSettings>

 

<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.

 

 

<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:

<Flags>
    <VisibleInStore>true</VisibleInStore>
    <CanBeReferenced>true</CanBeReferenced>
</Flags>

 

<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 <Flags> container element is used within the <AssetGroup> 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 <AssetGroup> section below).

 

 

<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 <Dependency> sub-element.For example:

<Dependencies>
    <Dependency Version "0.1.0">
        <Name>dependency-package-name</Name>
    </Dependency>
</Dependencies>

 

<Dependency>

This element is used as a container for the <Name> element. You can have multiple <Dependency> elements in a package to define multiple dependencies. It has the following attribute:

 

Attribute Description Type Required
Version This should always be "0.1.0". String Yes

 

<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 <AssetGroup> 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:

<AssetGroups>
    <AssetGroup Name="ContentInfo">
        <Type>ContentInfo</Type>
        <Flags>
            <FSXCompatibility>false</FSXCompatibility>
        </Flags>
        <AssetDir>PackageDefinitions\asobo-aircraft-103solo-smallwheels-livery-07\ContentInfo</AssetDir>
        <OutputDir>ContentInfo\asobo-aircraft-103solo-smallwheels-livery-07</OutputDir>
    </AssetGroup>
    <AssetGroup Name="Asobo_103Solo_SmallWheels_Livery_07">
        <Type>SimObject</Type>
        <Flags>
            <FSXCompatibility>false</FSXCompatibility>
        </Flags>
        <AssetDir>Content\fs\SimObjects\Airplanes\Asobo_103Solo_SmallWheels_Livery_07\</AssetDir>
        <OutputDir>SimObjects\Airplanes\Asobo_103Solo_SmallWheels_Livery_07\</OutputDir>
        <Config>
            <Extras>
                <File>Readme.txt</File>
            </Extras>
        </Config>
    </AssetGroup>
</AssetGroups>

 

 

<AssetGroup>

This element is used to define a single asset group that is contained within the package. You can have multiple <AssetGroup> elements in a single package and it has the following attribute:

 

Attribute Description Type Required
Name The name of the asset group. String Yes

 

<Type>

This sub-element defines the type of asset group that is being defined. It can be any one of those listed here:

 

<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 <Extras> sub-element, and has no attributes. It is a child element of <AssetGroup>.

 

<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 <Config> element, has no attributes, and can contain one or more <File> sub-elements.

 

<File>

This sub-element should be within the <Extras> 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: SimObject Folder Structure). 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:

File Explorer Showing Samples Of Extra Documents In A Package

<AssetGroup Name="airplane">
    <Type>SimObject</Type>
    <Flags>
        <FSXCompatibility>false</FSXCompatibility>
    </Flags>
    <AssetDir>Assets\SimObjects\Airplanes\airplane</AssetDir>
    <OutputDir>SimObjects\Airplanes\airplane\</OutputDir>
    <Config>
        <Extras>
            <File>readme.txt</File>
            <File>Documents\licence.pdf</File>
        </Extras>
    </Config>
</AssetGroup>