• Share page
  •  
  •  
  •  
  •  

How to create a project for MSFS SDK/Create a project for Google Earth Decoder

Users can use the MSFS SDK to create add-on content for Microsoft Flight Simulator. This is stored in a folder structure called "projects" defined by the SDK.
Here we will explain the MSFS SDK project and how to create a project for Google Earth Decoder (a tool that converts Google Earth 3D maps to MSFS).

Installation of various development tools

To create add-on content for Microsoft Flight Simulator, first install various tools on your computer. Please refer to the page below.

Projects, packages and asset groups

Add-on content is created as an MSFS SDK "project." When you build the "project," a "package" will be created that can be installed on the simulator.
You can create multiple "packages" in an MSFS SDK "project". Each "package" can include multiple "asset groups".
A "package" is a unit distributed as an add-on. Add-ons such as scenery, aircraft, and airports distributed on sites such as flightsim.to are compressed versions of this "package" folder.
The "asset group" is a component that is included in a package. Types of "asset groups" include ModelLib, ArtProj, BGL, Mission, SimObject, etc. You can read more about these asset groups on the ASSET TYPES page of the MSFS SDK docs.
If you save the "Package" folder in the "Community" folder in the MSFS data storage folder, it will be loaded (installed) into the game. Add-on "Package"s downloaded and purchased from the in-game marketplace are saved in the "Official" folder in the MSFS data storage folder.

Project structure

Inside each project folder, the following folders are generated:
General Package Folder Structure
FolderDescription
_PackageIntAs development progresses, information such as the history of changes made to the package and various parameters will be recorded. Generated by SDK.
PackageDefinitionsContains information about the internal structure of a package, such as information about asset groups included in the package. Generated by SDK.
PackagesThis is where the finished package is stored. This content can be distributed to other users as an add-on. It is generated by the SDK by performing an operation called build.
PackagesMetadata(??)
PackageSourcesSaves the original data (asset group) that makes up the package, such as the 3D model of the scenery. Prepared by the developer.
[Project name].xmlContains basic information about the project. Specify this file when opening your project with MSFS SDK. Generated by SDK.
You can read more about these on the USING THE SDK page of the MSFS SDK docs.

Package naming conventions

The MSFS SDK has strict package naming conventions. If you want to widely distribute your add-on to other users, you should name it according to this naming convention. In addition, the package name can only contain alphanumeric characters and "-" (hyphens), and must be 128 characters or less.
Basics of package naming conventions
Basic rulesdeveloper - type ( - subtype ) - name-of-asset ( - variation-of-named-asset ) ( - subcontent )
"developer" is the name of the developer (you). In the list below, it is expressed as "company". When you create a project with MSFS SDK, it is automatically added.
"Type" is a word that indicates the type of add-on, and is determined as shown in the table below.
Follow this with a descriptive name for the add-on.
Package naming conventions
Package TypeNaming conventions
Airports<company>-airport-<ICAO>-<airport_name>
Aircraft<company>-aircraft-<aircraft_name>
Aircraft paint (Aircraft Liveries)<company>-aircraft-<aircraft_name>-livery-<livery_name>
Landing Challenges<company>-landingchalenge-<ICAO>-<name>
Discovery mission<company>-discovery-<name>
Bush trip<company>-bushtrip-<name>
Model library<company>-modellib-<name>
Moving object (SimObjects)<company>-simobjects-<type>
Scenery<company>-scenery-<name>
The type of add-on created using Google Earth Decoder is "scenery".
For example, if developer name "someone" wants to distribute a scenery named "tokyo", the package must be named "someone-scenery-tokyo".
You can read more about naming conventions on the THE PROJECT EDITOR page of the MSFS SDK docs.

Where to save the project

When developing a project, a lot of reading and writing of data occurs. Developing a project on an SSD will cause the SSD to deteriorate faster, and slow write speeds will make builds take longer.
The drive where you save your project can be different from the drive where you installed the MSFS SDK. We recommend that you use a dedicated hard disk for project development, rather than an SSD.

Create a project with Blender plugin (GEDOT)

As an example, we will introduce the steps to create a scenery project for Google Earth Decoder (a tool that converts Google Earth 3D maps to MSFS). There are two ways to create this: one using the MSFS SDK and the other using the Blender plugin. First, we will show you how to create a scenery project for Google Earth Decoder using the Blender plug-in "Google Earth Decoder Optimization Tools (GEDOT)".

Installing plugins


Please see below for instructions on how to install "Google Earth Decoder Optimization Tools (GEDOT)".

Determining the package name


Here, let's assume that the developer name is "someone" and the scenery name is "tokyo". Then, according to the naming convention shown above, the package name will be "someone-scenery-tokyo".

Create a project


PC Start Blender and select [Google Earth Decoder Optimization Tools]-[Initialize a new MSFS project scenery] from the menu.
PC A dialog box like this will then appear.
Click on the area labeled Path of the MSFS projects... in the top center of the screen to open the folder selection screen. Specify where to save the project.
In the Name of the project to initialize field, specify the package name determined according to the naming rules (in this example, "scenery-tokyo").
In the Author of the project field, specify your name/pen name (in this example, "someone").
Click the red "Initialize a new MSFS project scenery..." button and a new project folder will be generated.
Clicking the blue [OK] button will close this dialog box.
PC Then a screen like this will appear. After a few seconds, "Script correctly applied" will be displayed.
Once processing is complete, minimize this screen. If you close this screen with the [X] button, Blender will also be terminated.
PC A project folder has been generated in the specified folder. You can close Blender.
Specify the "PackageSources" folder inside this as the output destination for Google Earth Decoder.
Next, you will download the map data, optimize the project, and build it. For details, please refer to the following page.

Create a project with MSFS SDK

Here, we will explain how to create one using the MSFS SDK.

Determining the package name


Here, let's assume that the developer name is "someone" and the scenery name is "tokyo". Then, according to the naming convention shown above, the package name will be "someone-scenery-tokyo".

Create a project


PC Start MSFS and select [File]-[New project] from the developer menu.
PC A window like this will open.
In the Projects Folder field, specify the folder in which to save the project. Since large amounts of data will be read and written many times, we recommend using a large-capacity hard disk rather than an SSD.
In the Project Name field, specify the project name without the developer name part. In this example, it will be "scenery-tokyo".
In the Default creator name field, enter the developer's name. Specify your name, pen name, etc. In this example, it will be "someone".
In the Default company name field, enter the production company name. If you are an individual developer, it should be the same as the Default creator name field. In this example, it will be "someone".
Then click the [Create new project] button at the bottom right of the screen. Then, a project folder named "scenery-tokyo" will be created under the folder specified in the Projects Folder field.
PC Next, a wizard screen like this will open. Since we are creating a package this time, click the [Package] button on the far left of the screen. Then click [Next] at the bottom right of the screen.
When creating Packs (distributing multiple created packages as a set) or Bundles (selling packages that have already been published on the marketplace as a set), select [Bundle/Pack]. In this case, one project will contain multiple packages.
Also, when creating Packs or Bundles as a new project, you can add existing packages to the new project. In this case, select [Import Item].
PC Next, you will see a screen like this. Click [Aircraft] to create an aircraft, [Airport] to create an airport, and [Visual effect] to create visual effects such as flames, smoke, etc. If you want to create other types of add-ons, such as scenery, click the [Custom] button on the far right of the screen.
When you click [Custom], the following items will appear below it.
in the Display title field, specify the display name for this package. This will be displayed as the title when distributed on marketplaces, etc.
In the Company name field, enter the production company name. If you are an individual developer, specify your name, pen name, etc.
In the Package name field, specify the package name "scenery-tokyo" determined according to the naming rules.
In the Content-Type field's drop-down list, specify the package type. This time, specify "SCENARY".
Then click [Next] at the bottom right of the screen.
PC Next, you will be taken to the asset group specification screen. A package requires at least one asset group. First, create a "BGL" type asset group that will store the most basic information.
In the Asset group name field, specify the name of the asset group. When using Google Earth Decoder, a BGL asset group called "scene" is generated. This time, we will input "scene" accordingly.
In the Asset type field, specify the type of asset group. Here, select "BGL".
Then click [Create] at the bottom of the screen.
PC "Project Editor" is displayed on the MSFS screen. Inside you will see a list of package names included in this project in blue text. In the example shown, only one package called "someone-scenery-tokyo" is included.
Click on the package name to see a list of the asset groups it contains. The example shown contains only one asset group of type "BGL" named "scene".
You can add new packages by using the [Add Item] button at the bottom of this screen. You can also add existing packages (Bundle/Pack) using the [Import Item] button.
PC Up to this point, you have completed creating a scenery project for Google Earth Decoder. Select [Project]-[Save] in the Project Editor to save the project, select [Project]-[Close] to close the project, and exit MSFS.
PC Folders like these will be generated under the project storage folder. Specify the "PackageSources" folder inside this as the output destination for Google Earth Decoder.

Settings after using Google Earth Decoder


PC Start Google Earth Decoder and download the map data.
For information on how to use the Google Earth Decoder, please see the page How to use Google Earth Decoder to create MSFS scenery on Google Maps .
PC Then, two asset groups called "modelLib" and "scene" will be generated under the "PackageSources" folder. Add these to your project.
The folder called "Scenery" that you can see in this figure was automatically generated by the SDK when you added the BGL asset group to the project using the SDK.
PC Start MSFS and select [File]-[Open project] from the developer menu.
Alternatively, you can select [Open recent] below to select from a list of recently opened projects.
PC A file selection dialog box will then appear, so select the "[package name].xml" file located directly under the project folder.
Note that if you create multiple packages in one project, multiple "[package name].xml" files will be generated here.
PC The project will be loaded and the "Project Editor" will be displayed. Click on the package name in blue text ("someone-scenery-tokyo") to display a list of asset groups. Then select the "BGL" asset group named "scene" that was added when creating a new project.
PC Change the settings of the asset group "scene". Select [View]-[Inspector] from the Project Editor menu.
PC The Inspector will then open and display detailed information for the asset group "scene". The source folder (AssetDir field) is a folder automatically generated by the SDK, so change it to the "scene" folder generated by Google Earth Decoder.
PC Click [...] to the left of where it says "AssetDir" to display the folder selection dialog screen. Select the "scene" generated by Google Earth Decoder located directly under the "PackageSources" folder.
PC Set it like this.
No particular changes are required for "OutputDir". Modify as desired to suit your packaging design. In the commonly distributed scenery add-on generated from Google Earth, "scenery/world/scenery" is often specified here.
PC Next, add "modelLib" where the 3D map data is saved to the project. On the Project Editor screen, click the blue package name ("someone-scenery-tokyo").
PC The Inspector screen will then switch to the entire package information. Click the [Add asset group] button in the asset group list at the bottom of the screen.
If you have closed the Inspector, select [View] - [Inspector] on the Project Editor screen.
PC Select [Custom] as the type of asset group to add. Then click [Next] at the bottom of the screen.
PC Next, enter the information for the asset group to be added.
In the Asset group name field, specify the name of the asset group. When using Google Earth Decoder, a ModelLib asset group called "modelLib" is generated. This time, we will input "modelLib" accordingly.
In the Asset type field, specify the type of asset group. Here, select "ModelLib". Then click [Create] at the bottom of the screen.
Then click [Create] at the bottom of the screen.
PC A "ModelLib" asset group named "modelLib" is then added to the package.
PC Change the settings of the asset group "modelLib". In the same way as when changing the "scene BGL" settings, click "modelLib" on the Project Editor screen and change the source folder (AssetDir) on the Inspector screen.
No particular changes are required for "OutputDir". Modify as desired to suit your packaging design. In the commonly distributed scenery add-on generated from Google Earth, "scenery/global/scenery" is often specified here.
PC At this point, you have completed creating a project for Google Earth Decoder. Select [Project]-[Save] on the Project Editor screen to save the project. Next, let's move on to building the project .
PC The "Scenery" folder under the PackageSources folder is an asset group folder automatically generated by the MSFS SDK. If you use an asset group generated with Google Earth Decoder, this folder will not be used, so delete it.

Build the project

PC Select [File]-[Open project] from the developer menu and select the "[package name].xml" file directly under the project folder. The project will then be loaded into the SDK.
When building for the first time, it is necessary to save the project beforehand. Click [Project]-[Save] on the Project Editor screen.
Clicking the [Clean All] button on the Project Editor screen will delete old packages under the "Packages" folder. Next, click the [Build All] button to start the build.
PC You can check the build status in Windows Task Manager. During the build, the CPU usage is stuck at 100%, and the usage of the disk where the project was created also increases.
The build time will vary depending on the size of the area cropped from Google Earth and the LOD level.
PC When the build is finished, the SDK Console screen will open and the results will be displayed. If Errors at the top left of the screen is not 0, scroll up the screen, check the error details, and take action.
Most of the errors that occur here are mismatches between the storage path/folder name of the asset group as recognized by the SDK and the actual storage path/folder name. Open "[package name].xml" stored in the PackageDefinitions folder with a text editor, etc., and check that the contents of the "<AssetDir>" tag match the actual storage path/folder name.
PC If the build is successful, a folder with the package name "someone-scenery-tokyo" will be created under the Packages folder. Copy this to the "Community" folder in the MSFS data storage folder and it will be installed on your MSFS. When distributing the package, compress this folder and upload it to a distribution site, etc.
If "layout.json" and "manifest.json" are not generated under the [Packages]-[(package name)] folder in the project folder, the build has failed. If the amount of data is too large, the build may crash during the process. Try narrowing the range of the scenery.