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

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:

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

IMPORTANT! The following information is only for use when dealing with legacy FX files. For creating new 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:

1. SimObjects/Airplanes/Asobo_Emerald/effects.emerald/LIGHT_NavigationRed.fx
2. SimObjects/Airplanes/Asobo/effects/LIGHT_NavigationRed.fx
3. SimObjects/Airplanes/MyAircraft/effects/LIGHT_NavigationRed.fx
4. SimObjects/Airplanes/SomeOtherAircraft/effects/LIGHT_NavigationRed.fx
5. 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: