AIRCRAFT SIMOBJECTS
When creating an aircraft SimObject, your source files will be stored in multiple formats and folders, generally following this list:
- Multiple configuration files
- One or more model folders
- One or more texture folders
- One or more panel folders
- One or more sound folders
- A
soundai
folder
With the legacy FSX, all things relating to an aircraft SimObject were stored in a single file. However, this made finding what you needed somewhat of a chore, as these files contained a lot of information. So, in Microsoft Flight Simulator the aircraft configuration has been split into multiple files, with each one dedicated to a specific task. The sections below explain the structure of each of these files:
aircraft.cfg
ai.cfg
cameras.cfg
cockpit.cfg
engines.cfg
flight_model.cfg
gameplay.cfg
systems.cfg
target_performances.cfg
- Additional Config Information
Note that none of the above files except aircraft.cfg
are required for an aircraft, and you can add the sections for each thing - cameras, flight model, etc... - directly into the aircraft.cfg
if you prefer. However, we recommend that you keep everything in separate files for ease of use and forward compatibility. The image below shows the contents of the folder for a typical aircraft package before being compiled by the Microsoft Flight Simulator package manager:
In addition to the folder with all the aircraft files, resources can be shared between aircraft if they are put in different directories. For example, shared .CAB Files (Deprecated) will be searched for in the root directory of the game in the gauges folder if they do not exist in the panel folder.
For the user to be able to control an aircraft, the following parts are mandatory:
- Properly setup configuration files
- A model folder, containing at least:
- A configured
model.cfg
- An exterior model
- An interior model
- A configured
- A panel folder, containing at least:
- A basic
panel.cfg
- A basic
The following folders are also usually present for an aircraft to control how it looks and sounds:
- A texture folder containing the required texture images and the (optional)
texture.cfg
file - A sound and (optional) soundai folder for configuring the different aircraft sounds
You can find out more about the above-mentioned folders from the following sections of the SDK documentation:
For examples of aircraft and their configuration files, you can check the following directory:
<SDK Root>\Samples\Aircraft\
How to use these examples is documented in the following section:
Finally, to help with the configuration of the engines.cfg
and flight_model.cfg
files, we have included an *.xlsx
file with the documentation that can be used to generate the required values for many of the parameters based on a small number of inputs (these inputs are marked in blue in the file):
Note that once the values are generated within the file they may need tweaked when applied to the approprate parameters in the *.cfg
files, but this should give a good base from which to start.
Datum Reference Point
Many positions of components on an aircraft are given relative to the datum reference point for the aircraft. These are generally defined in the following order:
- longitudinal (Z), where to the front is positive and to the back negative
- lateral (X), where to the right is positive and to the left negative
- vertical (Y), where vertically up is positive and to the down is negative
The image below illustrates this:
The datum reference point itself is specified in the [WEIGHT_AND_BALANCE]
section of the flight_model.cfg
file, and the actual physical details of how we calculate this point is given in the Reference Datum Frame section of the page on Flight Model Physics.
Retro-Compatibility / Legacy
In previous versions of Microsoft Flight Simulator an aircraft was defined by a single Aircraft Configuration File aircraft.cfg
and an optional *.air
file containing some flight model parameters. Aircraft configuration files have been upgraded so that all the parameters that were only modifiable by the *.air
file can now be set in new specialized configuration files directly (listed in the section above). All tables (alpha and mach tables, engine tables) can now be modified in the flight_model.cfg
directly, along with all aerodynamics inputs (lift, drag, moment coefficients from various sources). With this change all *.air
files are now obsolete in Microsoft Flight Simulator and new aircraft are configured using the configuration files only. In addition, some legacy parameters have now become obsolete - for example, many parameters of the [AERODYNAMICS]
section. Most legacy parameters for engines and contact points remain relevant, however.
Legacy Visual Effects For Lights
IMPORTANT! The following information is only for use when dealing with legacy FX files, and these are only valid when used for creating aircraft lights. For creating all other effects you should be using the The Visual Effects Editor in combination with the Visual Effects XML.
If you have legacy *.fx
files and require them to work with a SimObject in Microsoft Flight Simulator then you should follow these instructions.
First you need to define the folder where the legacy effects are going to be placed. For that you need to add the relative folder path for the FX files into the aircraft.cfg
file. If this is the default "effects" folder, then you can leave it as an empty string (or omit it completely which has the same result), as shown in the following image:
The image below shows a typical folder structure for an aircraft SimObject with this folder:
If you are not using the default folder, then the name you give in the aircraft.cfg
file will be appended onto the "effects" folder name and that folder will be checked. For example, if we had this in the configuration file:
Then we would also have the following folder for the SimObject:
You can now place your legacy effects files in this folder, and then reference them in the [EFFECTS]
section of the aircraft.cfg
file.
effects.cfg
Depending on your use case, it is possible you want to specify fallback directories for effects in case the effects folder of your SimObject does not have the wanted effect, for example:
- when sharing effects between similar SimObjects
- when reusing an effect from a parent for a variation
These are two common use cases in which fallback directories avoids copy-pasting effects.
To specify fallback directories, you would need to create a new file inside inside your SimObject effects folder: effects.cfg
. In this file you would write the different folders to fallback to, using the [fltsim]
header. Inside this section, fallbacks are defined via the fallback.<index>=<path>
syntax, where the index must be incremented by 1 for each fallback directory and must start at 1, for example:
In this example, given the effect name "LIGHT_NavigationRed", the game will attempt to load the effects at these locations, stopping at the first valid path for which the effect exists:
SimObjects/Airplanes/Asobo_Emerald/effects.emerald/LIGHT_NavigationRed.fx
SimObjects/Airplanes/Asobo/effects/LIGHT_NavigationRed.fx
SimObjects/Airplanes/MyAircraft/effects/LIGHT_NavigationRed.fx
SimObjects/Airplanes/SomeOtherAircraft/effects/LIGHT_NavigationRed.fx
effects/LIGHT_NavigationRed.fx
The last path (effects/LIGHT_NavigationRed.fx
) is implicitly added to fallback to the global effects folder in case the effect could not be found.
IMPORTANT! If you define an effects.cfg
file, the PackageTool will check that your folders exist, and having a fallback folder which does not exist will result in an error. The missing fallback folder will be specified in the error.
So, to sum up what's been explained above:
- When loading an effect, the game will look inside your SimObject folder for the effects folder (or the appropriate folder name if you are working on a variation).
- If the specified effect cannot be found, the game starts using fallbacks directories specified inside
<effects folder>/effects.cfg
. - The global effects folder is implicitly used as a fallback directory if none of the provided fallback folders contained the effect.
- The global effects folder is considered even if the
effects.cfg
is non-existent, to make sure older packages can still access their effects.
This behaviour provides a way to override a base effect from the global effects folder - or the base package if applicable - for your SimObject by giving it the same name as the base effect.
Effect Textures
Effects can have textures, and the same process outlined above applies to looking for an effect texture, only that the simulation will append /texture
to each effect folder encountered to look for a given texture. To add a custom texture to an effect, simply insert the wanted texture inside the <effects folder>/texture
folder of your SimObject, as such: