Create an FS2004 aircraft with the right SDK tools, gmax and MakeMDL workflow, folder structure, flight model, testing and troubleshooting.
To create an aircraft for Microsoft Flight Simulator 2004 (FS2004 or FS9), build and animate an FS9-compatible 3D model, compile it to MDL with MakeMDL, produce compatible textures, configure aircraft.cfg and an AIR file, then add the panel and sounds. Test each component separately before packaging the aircraft.
What tools do I need to make an FS2004 aircraft?
The standard FS2004 development toolchain is gmax with the FS2004 gamepack and MakeMDL exporter supplied through Microsoft’s SDK. Our FS2004 SDK pack with the aircraft tools and documentation provides the exporter, ImageTool, samples and supporting kits used by the original workflow.
- gmax and the FS2004 gamepack: create the geometry, materials, object hierarchy, animations and levels of detail.
- MakeMDL: compile the scene into an FS2004-compatible
.mdlfile. - An image editor: prepare UV templates, colour artwork, night textures and alpha channels.
- ImageTool or another FS9-compatible converter: save textures in BMP formats that FS2004 can read.
- A text editor and, where needed, FSEdit: edit
aircraft.cfg, panel and sound configuration files, and supported AIR-file data. - Reliable aircraft data: dimensions, weights, centre-of-gravity limits, gear positions, fuel capacity, engine output and published performance figures.
A modern modelling package can prepare geometry, but it does not produce an FS9 aircraft by itself. The final conversion must preserve FS2004 material rules, pivots, part names, animations and detail levels before MakeMDL compiles the model. FSX, Prepar3D and modern MSFS models are not interchangeable with an FS2004 MDL.
These tools pre-date modern Windows security conventions. Keep projects in a short, writable folder outside protected application directories, inspect every MakeMDL log and retain numbered backups of the gmax source. Exporting repeatedly over the only working file is a common and avoidable loss.
How is an FS2004 aircraft folder structured?
A complete FS2004 aircraft is installed as one folder directly inside the simulator’s Aircraft directory.
| File or folder | Purpose |
|---|---|
aircraft.cfg | Defines menu identity, dimensions, mass, balance, fuel, engines, controls, contact points, lights and effects references. |
AircraftName.air | Contains binary aerodynamic and engine tables used by the FS9 flight model. |
model | Contains model.cfg and the compiled MDL file. |
texture | Contains BMP textures referenced by the model’s materials. |
panel | Contains panel.cfg, panel artwork and any panel-local gauges that may legally be distributed. |
sound | Contains sound.cfg and sound files, or configuration that aliases an installed sound set. |
The values in each [fltsim.x] section must match this structure. sim= identifies the AIR-file basename, while model=, texture=, panel= and sound= select corresponding suffixed folders. For example, texture=blue selects texture.blue; an empty value selects the unsuffixed texture folder.
Every variation needs a unique title=, and the [fltsim.x] sections should be numbered consecutively from zero. Duplicate titles, broken numbering and an extra wrapper folder are frequent reasons an otherwise valid aircraft does not appear in FS2004.
Effects and shared gauges may live elsewhere in the FS9 installation. Record those dependencies rather than assuming another simmer already has files that happen to exist on your development system.
How do I build and export the aircraft?
The safest method is to prove a simple model in FS9 first, then add detail, animation and systems in controlled stages.
- Define the aircraft. Record its dimensions, reference datum, empty weight, centre of gravity, fuel stations, landing-gear positions, engine type and target performance. Decide which data are confirmed and which must be estimated.
- Set the model’s scale and datum. Establish the correct size, orientation and origin before building fine detail. Correcting a misplaced datum after the gear, cockpit and animations are complete affects almost every other component.
- Build the main geometry. Create the fuselage, wings, tail, cockpit, undercarriage and propulsion components. Use an organised object hierarchy and keep polygon density appropriate for FS2004.
- Separate and pivot moving parts. Ailerons, elevators, rudders, flaps, wheels, gear doors, propellers, fans and cockpit controls need separate objects with correctly positioned pivots. Follow the part-naming and animation conventions in the FS2004 SDK.
- UV-map and texture the model. Use reliable power-of-two texture dimensions and an FS9-supported BMP format. Check alpha channels in the simulator: depending on the material, a faulty alpha may cause unwanted transparency, excessive reflectivity or an apparently missing surface.
- Add animations and detail levels. Test one group at a time and include lower-detail LOD models for distant views. An animation that moves in gmax can still fail in FS9 if its pivot, parent, recognised part name or exported keyframe range is wrong.
- Build the cockpit. A 2D panel can be developed independently, but a functional virtual cockpit requires instrument surfaces, appropriate gauge placement and readable textures. Keep the first test panel simple so a faulty gauge is not mistaken for a model problem.
- Export with MakeMDL. Read the compiler log and correct significant warnings. Place the resulting MDL in the
modelfolder and confirm thatmodel.cfgreferences its exact basename. - Create a minimal working aircraft package. Add a valid
aircraft.cfg, matching AIR file, one texture set, a basic panel and a basic sound configuration. Load this version in FS9 before adding optional liveries, gauges or effects.
Do not wait until the aircraft is visually finished before its first export. A plain fuselage with one texture and a working [fltsim.0] entry can prove the scale, model path and compiler setup while faults are still easy to isolate.
How do aircraft.cfg and the AIR file control the flight model?
FS2004 uses both aircraft.cfg and the binary AIR file; the shape of the visual model does not automatically generate lift, drag or stability.
Use aircraft.cfg for the aircraft’s dimensions, weights, centre of gravity, fuel tanks, engine installation, control effectiveness, contact points and other exposed values. The AIR file contains additional aerodynamic and engine tables. Some related values can interact, so changing several sections at once makes tuning needlessly difficult.
The visible wheels also do not determine where the aircraft contacts the runway. Ground height, attitude and handling depend on the model datum, centre-of-gravity position and [contact_points]. If the model’s datum is correct, adjust the contact points rather than moving the entire visual model to hide sinking or floating gear.
Begin with documented figures and change one parameter group at a time. A borrowed AIR file can help a private prototype load, but an unrelated default flight model is not a credible finished solution, particularly when engine type, wing planform or operating speeds differ.
Why does my aircraft not appear or work in FS2004?
Most missing or broken FS2004 aircraft are caused by packaging, configuration or export mismatches rather than by FS9 failing to recognise the entire project.
| Symptom | Likely cause and fix |
|---|---|
| Aircraft is absent from the selection menu | Remove extra folder nesting; check for aircraft.cfg, a valid [fltsim.0], unique title= values, consecutive section numbers and a sim= value matching the AIR file. |
| FS9 cannot load the aircraft or visual model | Confirm that the AIR file exists, the model= suffix selects the right folder, model.cfg names the MDL correctly and the MDL was compiled for FS2004 rather than another simulator. |
| Model is grey, black or partly invisible | Check texture filenames, material assignments, BMP conversion, alpha channels and whether every required texture was copied into the package. |
| Aircraft floats, sinks, bounces or tips over | Verify the datum, centre-of-gravity height, gear geometry and [contact_points]. Also check loading because an extreme centre of gravity can expose a package that appears stable when empty. |
| Controls remain static or move backwards | Recheck the recognised part convention, pivot direction, parent hierarchy, keyframes and exporter output. |
| FS9 crashes when the aircraft is selected | Temporarily replace custom panel and sound components with simple known-working configurations. If the crash remains, test a fresh MDL export and a backed-up AIR file separately. |
| An edit seems to have no effect | Reselect the aircraft or restart FS9, verify that you edited the installed copy rather than a backup, and check whether the controlling value is in the AIR file instead. |
How should I test an FS2004 aircraft?
Test the aircraft against known data at recorded weights, configurations and atmospheric conditions, changing only one related group of values between flights.
- Confirm dimensions, viewpoint, lights, texture mapping and exterior animations.
- Test ground attitude, steering, braking, suspension and gear operation before tuning airborne handling.
- Verify empty weight, loaded weight, fuel capacity and centre-of-gravity movement.
- Compare take-off distance, climb, cruise speed, fuel flow, stall behaviour and landing performance with credible references.
- Check trim and stability at several weights, speeds and altitudes rather than tuning only for cruise.
- Test the 2D panel and virtual cockpit independently when diagnosing gauges.
- Inspect the exterior and cockpit from demanding viewpoints, then simplify geometry, textures or LODs where performance suffers.
Should I keep an FS9 build log or project blog?
A dated FS9 build log is the simplest way to prevent circular flight-model tuning. Record the file version, test weight, weather conditions, exact values changed and observed result for each export or test flight.
If the work is published as an FS9 blog, distinguish measured specifications from estimates and document known limitations. That gives repaint artists and future maintainers far more useful information than a list of undocumented coefficient changes.
Which aircraft are included in the FS2004 default aircraft list?
A clean FS2004 installation contains a core fleet of 21 stock aircraft types, with additional liveries and configurations appearing as separate menu variations.
- General aviation, rotorcraft, aerobatic and glider: Beechcraft Baron 58, Beechcraft King Air 350, Bell 206B JetRanger III, Cessna 172SP Skyhawk, Cessna 182S Skylane, Cessna 208B Grand Caravan, Extra 300S, Mooney Bravo and Schweizer SGS 2-32.
- Airliners and business jet: Boeing 737-400, Boeing 747-400 and Learjet 45.
- Historic aircraft: 1903 Wright Flyer, Curtiss JN-4D Jenny, Vickers Vimy, Ryan NYP Spirit of St. Louis, Ford Tri-Motor, Lockheed Vega, de Havilland DH.88 Comet, Douglas DC-3 and Piper J-3 Cub.
Our complete FS2004 included-aircraft list and variant guide helps distinguish an original Microsoft aircraft from an add-on or repaint.
Can I use a default FS2004 aircraft as my starting point?
A similarly configured default aircraft can serve as a private test bed for proving that your model, panel and sound folders load. It should not replace flight dynamics developed for the new aircraft.
Do not distribute copied Microsoft models, textures, gauges, sounds or other protected assets. Your configuration may alias an installed stock panel or sound set, but disclose the dependency and do not include the stock files in the package.
Can I create a Rafale for FS2004 from a default aircraft?
A Rafale for FS2004 must be treated as a third-party add-on because FS9 has no default Rafale or comparable supersonic combat-aircraft model. Repainting a Learjet or another stock aircraft changes only its textures; it cannot reproduce the Rafale’s geometry, delta-canard controls, cockpit or flight characteristics.
A serious Rafale project therefore needs an original or properly licensed visual model, custom animations, purpose-built flight dynamics and an appropriate panel. FS2004 also has no native stock combat system, so any simulated military functions require separately developed gauges or effects and clear documentation of their limitations.
If the aim is to install rather than build one, check our freeware aircraft and add-on library for an explicitly FS2004-compatible release. An aircraft labelled only for FSX, Prepar3D or modern MSFS should not be assumed to work in FS9.
How do I package the finished FS2004 aircraft?
The release archive should contain one aircraft folder that users can place directly inside FS2004’s Aircraft directory, without an extra wrapper level.
Include a readme explaining installation, removal, controls, aliases, dependencies, known limitations and asset permissions. The folder arrangement should match the placement described in our FS2004 add-on installation and folder guide.
Remove gmax source files, layered artwork, compiler logs and backups from the runtime package unless they are intentionally supplied in a separate development archive. Check every texture, gauge, effect, sound and panel reference, then test the packaged folder after moving the development copy out of the simulator. This exposes missing files that were being loaded silently from your working installation.