SAMPLES, SCHEMAS, TUTORIALS AND PRIMERS
Here we have a number of samples, tutorials and primers for using the different Developer Mode tools and for creating add-on packages that can be distributed to people to use in Microsoft Flight Simulator.
Primers
This section provides additional information on some of the internal systems that are used by Microsoft Flight Simulator to generate the world, the objects in the world, as well as the behaviors of those objects:
Tutorials
Below we list some tutorials and primers that are also included with the documentation. These cover a variety of topics, and are for different skill levels from very basic to very advanced:
- Creating Or Replacing An Airport
- Creating A Simple RTC
- Creating Interactions Using InputEvents
- Using The MSFS Localization Manager
- Defining A Flight Model
We also have a complete tutorial that covers the creation of an aircraft, including modelling, animations, sound, the different configuration files, etc... You can find this from the following link:
Samples
You can find the sample files as a separate download from the Help menu in DevMode. When installed you will be able to find them in the following location in the SDK install directory:
<SDK ROOT>\Samples\
Most of the samples show very basic add-ons and have accompanying documentation to explain how they have been set up and can be used. In general they try to focus on one aspect of content creation for Microsoft Flight Simulator and they are designed for you to study and learn from, since a "complete" add-on package will generally require a combination of multiple things that each individual sample shows.
Before looking at the samples themselves, we recommend that you read the SDK Introduction, and the SDK Overview to get a general idea of how add-on packages are created and what they contain. Also be aware that creating an add-on that uses some of the things shown in these samples may require knowledge of third-party tools like Autodesk 3DS Max, or a knowledge of programming languages like C++.
DevMode Projects
The DevMode Projects folder contains samples that are designed to be opened within Microsoft Flight Simulator when Developer Mode has been enabled. These samples are deliberately created to show specific features of the different DevMode editors and it is expected that you not only test them in DevMode, but that you actively inspect the different files and folders that make up the projects.
- Misc:
- GLTF Materials - Shows how to set up Microsoft Flight Simulator materials in 3DS max and includes a sample object that can be added to the simulation.
- SimpleFX - Shows how to setup some simple VFX using The Visual Effects Editor in DevMode.
- StandaloneModule - This sample project illustrates how you can make a single, "stand alone" WASM module.
- TrafficVehiclesSample - Small example showing how you can override the traffic models used for road traffic.
- Sceneries:
- Airport KALO - Illustrates the full range of possibilities when creating an airport in a simple, yet complete, package.
- Airport Services - Intended as an example for studying, or as a template for creating your own Airport Services projects.
- LivingWorld - Intended as an example file for studying, or as a template for creating your own Living World projects.
- SimpleAerial - Illustrates the process of creating a new package of aerial images to blend with in-game aerial imagery.
- SimpleAirport - Illustrates the process of creating a new airport.
- SimpleBiomes - Illustrates the process of adding biome definitions and overriding vegetation placements.
- SimpleNavData - Illustrates how a simple NavData file is setup, and the effects it has on the world.
- SimpleProjectedMesh - Illustrates how to view the Projected Mesh object in a scene.
- SimpleScenery - Illustrates the process of creating a new scenery.
- SimObjects:
- Aircraft:
- GaugeAircraft - Creating and building custom WASM gauges, and linking them to the aircraft.
- GdiplusAircraft - Using a static library to extend the graphic capabilities via a GDI+ wrapper of the low level API.
- LiveryAircraft - Shows how to setup various packages to work together to offer different liveries for the same aircraft.
- MapViewAircraft - Illustrates a glass cockpit display showing weather information, created using WASM.
- MouseAircraft - Obtaining mouse information, and triggering sound events.
- RTCAircraft - Shows the basic setup for the RTC camera system.
- SimpleAircraft - How to setup and define a basic aircraft project.
- SoundAircraft - Small example illustrating how to generate sound effects in an aircraft cockpit.
- NetworkAircraft - Shows three glasscockpit displays that will use different configurations of the WASM network API when clicked.
- CommBusAircraft - Shows how to have cross-module communication between WASM and JS modules.
- VFXAircraft - Shows some simple uses for the WASM VFX API.
- DA62 - This is a sample airplane model that can be downloaded separately from the Help menu.
- Cabri G2 - This is a sample helicopter model that can be downloaded separately from the Help menu.
- Animals:
- Bears - The BearsSample project is designed to illustrate the creation of an animated SimObject that has various skins and is based off a single mesh and animation set.
- Vehicles:
- GroundVehicles - Shows how to set up an airport vehicle along with variations of that vehicle.
- Landmarks:
- Jetway - Illustrates how to add a Jetway asset to an airport.
- WindsockSample - Shows how to set up a basic SimObject for using in scenery.
- Aircraft:
Most of the samples can be added to the game directly using the Developer Mode tools, but if you close and restart the game, they will no longer be available. If you want to maintain these packages in the game without the need for loading them through the Project Editor again, then you can copy the package folder for each one into the Community packages folder so that they are available without having to reload the project when you restart the game (see here to find where the Community folder is if you don't know).
You can also download separately some samples that illustrate how properly designed scenery assets should look in your model editor before being exported as glTF. These samples can be accessed from the Help menu, and are outlined on the following page:
Additionally there is a sample for sound integration, the WwiseSampleProject
. This sample is discussed in full in the section of the documentation that covers sound:
Schemas
The SDK has a separate folder that contains a number of schema files. These files are JSON formatted and can be used with tools other than 3Ds Max to create your own import/export tools. You can find more information about the glTF schema format from the following link:
If you are using 3Ds Max, then installing the SDK should also have installed a plugin for the version of 3Ds Max that you are using, and this permits you to use the schemas listed here without having to do anything further. You can find more information on the plugin contents, here:
The folders and schemas available are as follows:
- ASOBO_animation_retargeting
gltf.ASOBO_animation_retargeting.schema.son
- ASOBO_collision_object
boxcollision.schema.json
collision.schema.json
cylindercollision.schema.json
gltf.ASOBO_collision_object.schema.json
spherecollision.schema.json
- ASOBO_gizmo_object
boxgizmo.schema.json
cylindergizmo.schema.json
gizmo.schema.json
gltf.ASOBO_gizmo_object.schema.json
spheregizmo.schema.json
- ASOBO_macro_light
gltf.ASOBO_macro_light.schema.json
- ASOBO_material_alphamode_dither
gltf.ASOBO_material_alphamode_dither.schema.json
- ASOBO_material_anisotropic
gltf.ASOBO_material_anisotropic.schema.json
- ASOBO_material_antialiasing_options
gltf.ASOBO_material_antialiasing_options.schema.json
- ASOBO_material_blend_gbuffer
gltf.ASOBO_material_blend_gbuffer.schema.json
- ASOBO_material_clear_coat
gltf.ASOBO_material_clear_coat.schema.json
- ASOBO_material_detail_map
gltf.ASOBO_material_detail_map.schema.json
- ASOBO_material_disable_motion_blur
- gltf.ASOBO_material_disable_motion_blur.schema.json
- ASOBO_material_draw_order
gltf.ASOBO_material_draw_order.schema.json
- ASOBO_material_environment_occluder
gltf.ASOBO_material_environment_occluder.schema.json
- ASOBO_material_fake_terrain
gltf.ASOBO_material_fake_terrain.schema.json
- ASOBO_material_fresnel_fade
gltf.ASOBO_material_fresnel_fade.schema.json
- ASOBO_material_glass
gltf.ASOBO_material_glass.schema.json
- ASOBO_material_invisible
gltf.ASOBO_material_invisible.schema.json
- ASOBO_material_parallax_window
gltf.ASOBO_material_parallax_window.schema.json
- ASOBO_material_pearlescent
gltf.ASOBO_material_pearlescent.schema.json
- ASOBO_material_shadow_options
gltf.ASOBO_material_shadow_options.schema.json
- ASOBO_material_SSS
gltf.ASOBO_material_SSS.schema.json
- ASOBO_material_UV_options
gltf.ASOBO_material_UV_options.schema.json
- ASOBO_material_windshield
gltf.ASOBO_material_windshield.schema.json
- ASOBO_material_windshield_v2
gltf.ASOBO_material_windshield_v2.schema.json
(Use v1, above.)
- ASOBO_normal_map_convention
gltf.ASOBO_normal_map_convention.schema.json
- ASOBO_property_animation
channel.schema.json
gltf.ASOBO_property_animation.schema.json