COMPONENTS AND CONCEPTS
This page contains detailed information about the main components of the Package Tool and the concepts behind them. The three main components of the tool are as follows:
- Projects: collections of packages to build together
- Packages: collections of assets to package together
- Asset Groups: folders containing assets of a single type to compile and add to a package
This page also covers some of the various intermediary files that are created as part of the packaging pipeline using the above mentioned components:
- Timestamps: files containing the modification date of each source file at the last time they were compiled
- Metadata: files that contain custom data used by the tool to optimize the compilation process
- Temporary Asset Files: files containing the compilation result of intermediate compilation steps
Projects
Projects are groups of packages that are processed together in the build process. Each project is defined in the XML element <PackageProject>
. The packages are only referenced in this XML and need to be defined elsewhere for the tool to be able to load a project element and run the build.
Packages
A package contains a combination of asset groups to compile and may define extra files and/or folders to copy to the output folder. Packages are defined in the XML element <AssetPackage>
.
Packages are the most basic element handled by the store. Users can download packages, but not individual asset groups inside of them. Packages may define extra options saying whether they should be visible in the store, define dependencies, and more. For more information see Package Tool XML Definitions.
Asset Groups
An asset group is a folder containing assets to be compiled and put in a package. Each asset group has a type associated with it (see the XML element <AssetGroup>
in the Package Tool XML Definitions). The "type" is an asset type recognized by Microsoft Flight Simulator and defines how the package tool treats the files in the folder. Asset groups may not be nested.
Asset Group Types
The table below lists the main types of Asset Group that you can create:
Type | Behavior | Output folder format |
---|---|---|
None |
The files in an asset group of this type are not compiled nor copied, unless another asset group references them. For example, an aircraft may reference a texture folder inside of it by relative file path. | Any |
ArtProj |
All glTF models found in the asset group folder will be compiled along with their used textures, and a BGL file will be created containing all compiled model files. If this asset group has the FSXCompatibility flag, it will expect legacy assets such as .MDL and compile/copy them instead. |
Scenery\<Folders>\Scenery |
BGL |
All XML files in the asset group folder that define BGL files will be compiled to a .BGL file and copied to the output. |
Scenery\<Folder(s)>\Scenery |
Mission |
If an XML file is found in root of the asset group folder, it will be compiled to .SPB . The rest of the files will be copied |
Missions\<Folder(s)> |
SimObject |
The main .cfg file of the SimObject will be read and dependent assets will be compiled to game-ready formats and copied to the output. |
SimObjects\<Type>\<Name> |
SPB |
All XML files in the asset group folder that define missions will be compiled as .SPB to the output. |
Any |
You can find a complete list of the different types of Asset Group from the following page:
Intermediate Folders And Files
This section outlines the intermediate folders and files that are created as part of the package generation process.
IMPORTANT! Removing or otherwise altering the files and folders mentioned in this section may cause crashes, make compilation fail or cause the next run of the tool to last longer, and as such they should never need to be touched manually by the user.
Timestamps
Timestamp files are used to determine if a source asset has been updated since the last time it has been successfully compiled. Removing or altering these files may result in assets unnecessarily recompiling and thus loss of time.
Timestamp files are stored in the XML format in a _timestamps
sub-directory of the intermediate directory _PackageInt
used by the tool. They are organized by package (folder name) and by asset group (XML file name).
Metadata
Metadata files are used to store various information about assets and are used to accelerate the command generation step of the tool. Each asset type command generator (dubbed a lister) may use metadata files at its own discretion, and generally use it to store data that is time-consuming to retrieve.
Metadata files are stored in the XML format in a _metadata
sub-directory of the intermediate directory _PackageInt
used by the tool. They are organized by package (folder name) and by asset group (XML file name). Not every asset group may have a matching metadata file.
Temporary Asset Files
These files hold data that is temporary and required by another compilation step to generate their end-result. They are all under the _tempFiles
sub-directory of the intermediate directory _PackageInt
used by the tool. They are organized by package (folder name) and by source file directory.