VIRTUAL FILE SYSTEM INFORMATION
Content for Microsoft Flight Simulator 2024 is distributed through add-on packages. Each package includes multiple folders and files organized in a very specific way which allows the simulator to identify and load the package contents, along with the packages of other developers (including those of the simulation itself). These packages may be stored in different locations depending on their origin and nature, and what version of the simulation is being used, illustrated by the table below:
| Simulator version | Community folders | Official folders | Other |
|---|---|---|---|
| MSFS2020 | Community | Official | N/A |
| MSFS2024 | Community, Community2024 | Official2020, Official2024 | StreamedPackages |
These folders are used for the following:
- Community - this folder is used by both MSFS 2020 and MSFS 2024 to add 3rd party add-ons inside the simulator. Both 2020 and 2024 versions of a package can be put inside Community. It is not recommended that you use this folder for MSFS 2024 packages, as it's more for legacy compatibility than anything else and MSFS 2020 may try and lose them causing issues.
- Community2024 - this folder is only used by MSFS 2024 and is where all 2024-only packages should be placed.
- Official 2020 - this is where MSFS 2024 installs any 2020 versions of "official" downloaded packages. Packages in this location should not be manipulated, and no add-on package should be added here.
- Official 2024 - this is where MSFS 2024 installs any 2024 versions of "official" downloaded packages. Packages in this location should not be manipulated, and no add-on package should be added here.
- StreamedPackages - This is where MSFS 2024 downloads a few files required for streaming the rest of the package.
You can explore the contents of these folders, using the Virtual File System tool, and you can check out the UserCfg.opt file if you need to check the full path to the packages folders, as the simulator will only look at this file to determine where the Official and Community folders are. This file will normally have an entry like the following:
InstalledPackagesPath "C:\Users\malexander\AppData\Roaming\Microsoft Flight Simulator 2024\Packages"
Note that if you wish to make an installer for your add-on, then you can check the InstalledPackagesPath in the UserCfg.opt file as part of the installer process to get the correct install location.
NOTE: We strongly recommend against making any changes to this path or the UserCfg.opt file in general, otherwise you could cause issues with the running of the simulation.
Virtual Merging
Internally, upon booting the simulation, the Package Manager has the following two tasks:
- Find out which packages the simulator on the user machine has access to, ie:
- Packages that are part of the base installation.
- Packages found inside the Community folders.
- Packages bought from the the Marketplace.
- Packages currently being edited inside DevMode.
- Activate the correct packages based on the findings. This process goes as follows:
- The simulation starts by reading the
Content.xmlof each package source to figure out which packages are enabled or not. - Two lists are compiled: one of the packages to activate, and one of the packages to keep deactivated.
- The simulation will then attempt to activate each package in the enabled package list.
- The simulation starts by reading the
Note that - for technical reasons - if two packages share the same name, only one of them will be activated. For example, if the user has two versions of the package mycompany-myaircraft (one inside the Official folder, and one inside the Community folder) then only one of these versions can be active at any given time. The user can, however, switch between these packages through the My Library UI.
Package Precedence
To produce deterministic results when it comes to setting up the packages to be activated, the simulation follows a strict rule based on package scores. Essentially, each package source is given a score, and the version of the package that belongs in the source with the highest score is selected. The table below shows the sources and their score values:
| Source | Score |
|---|---|
| Package edited in DevMode | Infinite (trumps all other package sources) |
| Packages required for simulator to boot | 100 |
| Community2024 folder | 4 |
| Community folder | 3 |
| Marketplace (installed) | 2 |
| Marketplace (streamed) | 1 |
| Streamed | 0 |
| Base content | -1 |
Mounting Packages
Once a list of packages has been created, these are are installed ("mounted") into the simulator through its Virtual File System (shortened to VFS), which acts as a single giant virtual hard drive aggregating all folders and files together within a common hierarchy. For example, say we have two packages set up as follows:
+ mycompany-package-1
+ folder 1
- file1
- file2
- file3
+ mycompany-package-2
+ folder 2
- file1
- file2
- file4
Once these packages are installed on the VFS, the structure will look like this:
+ root
+ folder 1
- file1
- file2
+ folder 2
- file1
- file2
- file3
- file4
Package Type Hierarchy
Packages of different types are mounted to specific locations within the VFS for the simulator to be able to identify and load their contents correctly. This hierarchy is complicated and will depend on the asset types contained within the package, but to give an example, here's how SimObjects are placed within the VFS:
+ root
+ SimObjects
+ airplanes
+ animals
+ boats
+ groundvehicles
+ humans
+ landmarks
+ misc
+ proceduralcharacters
The other different package types will have a similar structure (ie: scenery, POI's, model libraries, etc...). Note that you can see the VFS hierarchy at any time by using the VFS Projector.
Package Mount Order
All files are mounted within a strict hierarchy in the VFS, and will always be placed in the same locations depending on asset type. However, the order in which they are mounted in the VFS will depend on a number of factors, all of which should be taken into consideration, especially when you start to look into the VFS override functionality (explained below). The following rules will be applied when mounting a package:
- When the same package is in both an Official folder (streamed or not) and a Community folder, the latter is used.
- Packages are mounted in the order given by their Package Order Hint.
- Within a group of packages with the same package order hint:
- Packages are mounted in the alphabetical order.
- A newly mounted package has priority over previously mounted ones.
VFS Overriding
When multiple packages include a file that would end up mounted in the same location in the VFS, the package priority defined above is used to determine which one should be used. This is the way that files override each other automatically as they are mounted in the VFS. However, a few locations in the VFS require that the files you intend to override are listed as Globally Overriden Fileswithin the package. These are:
- All files in
html_ui - All files in
ModelBehaviorDefs
You can find more information about how these locations can be overridden from the following page:
Related Topics