FSX & FSX: Steam Edition 7 min read

How do I create aircraft or scenery with the FSX SDK?

Adam McEnroe
In short

Learn to create FSX aircraft and scenery add-ons with the SDK, compile MDL and BGL files, package projects, and fix common build errors.

To create FSX aircraft or scenery add-ons, install the SDK that matches your boxed FSX service-pack or Acceleration level, build source assets with compatible modelling or GIS tools, compile them into FSX formats such as MDL and BGL, then package and test them in separate add-on folders.

The original SDK came with boxed FSX Deluxe, with updates corresponding to later FSX releases. FSX: Steam Edition can run FSX-targeted compiled content but does not itself provide the full original authoring SDK. Our edition-specific SDK installation and documentation notes explain the setup requirements and matching problem in detail.

What do I need before using the FSX SDK?

You need a legally installed, version-matched SDK, a suitable content-creation tool and a working directory outside the live simulator.

  • A matching SDK: compiler and exporter versions must suit the FSX runtime you intend to support. An aircraft compiled for a later model format may not work in an unpatched boxed installation.
  • An authoring tool: aircraft and custom objects require a modelling application with an FSX-compatible export route. Airport work is easier in a purpose-built airport editor, while imagery and elevation projects begin with geospatial source data.
  • Separate source and release folders: keep editable models, XML, imagery and intermediate files away from Program Files. Copy only the compiled release into FSX.
  • Distribution rights: confirm that you may redistribute every model, texture, sound, aerial image and data source. Referencing a stock FSX sound or panel by alias is different from copying and distributing Microsoft's files.

The SDK is primarily a collection of compilers, exporters, schemas, examples and documentation. It is not one visual application that creates an entire add-on.

Should I start with an aircraft or scenery project?

An airport edit is usually the shortest first project; a completely new flyable aircraft requires modelling, animation, flight dynamics, textures, sounds and cockpit work.

ProjectTypical workflowMain output
Modify parking, runways or taxiwaysAirport editor using the SDK compilerAirport BGL
Place a custom buildingModel, export, create an object library and place itLibrary and placement BGL files
Add aerial imagery or elevationPrepare geospatial data and a control file for ResampleTerrain BGL
Create a flyable aircraftModel, animate, compile and build the complete SimObject containerMDL files plus aircraft configuration and assets

How do I create an FSX aircraft with the SDK?

An FSX aircraft is a SimObject folder containing compiled models, flight dynamics, textures, sounds, panels and configuration files.

  1. Plan the aircraft container. Create a development tree with separate source, build and release directories. The final release normally goes under SimObjects\Airplanes\YourAircraft, but source models and intermediate exports should remain elsewhere.
  2. Build the exterior and cockpit models. Set correct dimensions, origins, pivots and object hierarchy before animating anything. Exterior and virtual-cockpit models may be separate, and complex aircraft should use sensible levels of detail rather than rendering the full model at every distance.
  3. Add FSX animations and attach points. Apply animation tags recognised by the SDK model-definition system to controls, landing gear, propellers and other moving parts. A made-up tag name in the modelling application will not acquire simulator behaviour automatically.
  4. Export and compile the models. Use a compatible exporter to produce the intermediate data expected by XtoMDL, then compile the exterior and interior MDL files. Read the compiler output: an exported file is not proof that every material, animation or hierarchy compiled correctly.
  5. Create the model and flight configuration. A model.cfg identifies the exterior and interior MDL files. In aircraft.cfg, the [fltsim.0] entry makes the aircraft available in the selection menu, while sim=, model=, panel= and sound= must point to matching files or suffixed folders. Aerodynamic tables are stored partly in the AIR file and partly in aircraft.cfg.
  6. Add the panel, gauges and sounds. During development, panel and sound configurations can alias compatible default aircraft. A custom cockpit may use XML gauges or compiled gauges, but virtual-cockpit displays also require the correct model material and panel mapping.
  7. Convert and assign textures. Use FSX-compatible DDS formats, include alpha channels only where the material requires them, and check the mipmaps. Texture names in the material definitions must match the deployed files and folder suffixes.
  8. Test the assembled aircraft. Check selection-menu visibility, contact points, engine start, control direction, animations, lights, fuel stations, payload, views and both cockpit modes. Restart FSX after model changes because reselecting the aircraft does not reliably reload every resource.

How do I create FSX scenery with the SDK?

FSX scenery development uses different compilers for airport data, placed objects, terrain vectors, imagery and elevation.

  1. Choose the correct compiler path. Airport and scenery-placement XML is compiled with BGLComp. Custom models pass through XtoMDL, imagery and elevation use Resample, and suitable vector data uses Shp2Vec.
  2. Edit or create the airport. A visual editor prevents many XML and coordinate mistakes. Our practical ADE airport-editing workflow covers runways, parking, object placement, validation and BGL compilation. There is also a downloadable beginner project for configuring ADE and compiling scenery.
  3. Build custom objects separately. Model and compile each object, assign it a stable GUID, add it to an object-library BGL and create placement records for its latitude, longitude, altitude and heading. Do not generate a new GUID after placing the object, or existing placements will no longer find it.
  4. Handle stock scenery deliberately. Adding a replacement does not necessarily remove the original object, airport feature or terrain. Use the appropriate airport record, exclusion rectangle or terrain method rather than hiding duplicates beneath a new model.
  5. Prepare terrain sources correctly. Aerial imagery and elevation need valid coordinates, projection information and an INF control file for Resample. Wrong bounds or coordinate systems can produce a valid BGL thousands of miles from the intended location.
  6. Package the compiled output. Put BGL files in a scenery subfolder and required textures in a neighbouring texture subfolder. Activate the parent area in the Scenery Library using our scenery-folder and library-activation instructions.
  7. Set scenery priority and test. Place specific local scenery above broader regional packages when it needs to override them. Test every runway end, seasonal or night textures, approach paths and nearby add-ons that may contain another version of the same airport.

Why does an FSX SDK project compile but not appear?

A successful compiler exit only proves that acceptable input was produced; folder references, coordinates, model versions and Scenery Library activation can still prevent the add-on from appearing.

SymptomLikely causeWhat to check
Aircraft is absent from the menuInvalid aircraft containerConfirm [fltsim.0], a unique title=, the sim= AIR-file name and the aircraft's menu metadata.
Aircraft loads with no visible modelBroken model referenceCheck the selected model folder, model.cfg, MDL filenames and compilation target.
Model is black, white or untexturedMissing or incompatible texturesVerify material filenames, DDS format, alpha channel, folder suffix and texture fallback configuration.
Animation does not moveIncorrect model tag or hierarchyCheck the SDK animation definition, key-frame range, pivot and exported hierarchy.
BGL exists but scenery is absentInactive area or incorrect coordinatesVerify the Scenery Library entry, folder structure, placement coordinates and compiler log.
Two airports or buildings overlapCompeting BGL filesSearch installed scenery for another airport version, add the required exclusions and correct the library priority.
Exporter or compiler cannot be foundSDK or authoring-tool mismatchConfirm the SDK installation, supported exporter chain and configured tool paths.

How should I package and test the finished add-on?

A release package should contain only the files FSX needs, with a documented folder structure and no private source assets or SDK executables.

  1. Build into an empty release folder. This exposes hidden dependencies on files that happen to exist in your development installation.
  2. Test without unrelated add-ons. Establish that the project works in a clean configuration, then restore likely conflicting scenery, gauges or aircraft modifications.
  3. Check the intended FSX editions. Test boxed FSX and FSX: Steam Edition separately if you claim support for both; do not assume identical installation paths or add-on behaviour.
  4. Use unique names. Unique aircraft titles, folders, BGL filenames and object GUIDs reduce conflicts with other packages.
  5. Include concise installation and removal instructions. The SDK compiles content but does not create a universal installer. A simple folder-based package is often easier to inspect, update and uninstall.
AI Assistant New

Still stuck? Ask Fly Away

Ask Fly Away is our AI flight-sim assistant. Ask your exact question and get a direct, step-by-step answer in seconds — free to try.

Ask Fly Away Free preview · unlimited for PRO members