Import a Blender model into Prepar3D correctly: match the SDK and exporter, compile an MDL, package textures, and fix common errors.
Prepar3D cannot read a Blender .blend file directly. Install the SDK that matches your Prepar3D version, use a Blender exporter compatible with that SDK, prepare P3D materials and animations, compile the export with XToMDL into an MDL, then package it as scenery or place it in a SimObject.
What tools do I need for Blender-to-Prepar3D export?
You need the target version's Prepar3D SDK and a Prepar3D-capable Blender exporter. The exporter must support both your Blender release and the SDK's model format; matching only one side is not enough.
- Matching Prepar3D SDK: this supplies XToMDL, BGLComp,
modeldef.xmland the relevant documentation. - Compatible Blender exporter: this converts Blender geometry and P3D-specific material or animation data into an intermediate file, then normally invokes XToMDL.
- A package structure: the compiled model must be installed as scenery or as part of a SimObject. An MDL sitting by itself in an arbitrary folder will not appear.
Use the SDK supplied for the Prepar3D release you are targeting rather than borrowing tools or modeldef.xml from another major version. Our Prepar3D SDK installation and version-matching guide covers the compiler, exporters and required SDK paths.
FBX, OBJ and glTF can be useful interchange formats, but Prepar3D does not load them directly at runtime. They also tend to lose P3D animation tags, material parameters, attachment points and level-of-detail definitions.
How do I export and compile the Blender model?
The reliable workflow is to prepare the asset for Prepar3D before exporting, not to repair scale, materials and animations after compilation.
- Choose the asset type. Decide whether the model is static scenery, an aircraft model or another SimObject. Static scenery is the simplest first test; a flyable aircraft needs flight dynamics, configuration files, effects and systems beyond its 3D model.
- Set real-world dimensions. Most P3D export workflows expect metre-based dimensions. Check the exporter's unit setting, size the object correctly, and apply Blender's rotation and scale transforms before export.
- Clean the mesh. Remove duplicate or non-manifold geometry, recalculate outward-facing normals and confirm how the exporter handles triangulation. Keep a valid visible level of detail; an incorrect LOD range can make an otherwise valid object disappear.
- Prepare runtime materials. UV unwrap the model and assign materials supported by the target SDK. Prepar3D cannot evaluate Blender's procedural shader graph, so bake procedural colour, roughness and other effects into texture maps. Use PBR parameters only where the target P3D version and exporter support them.
- Prepare the textures. DDS textures with mipmaps are the normal production choice. Use simple filenames and place the finished files in the package's texture folder rather than relying on absolute paths from your Blender project.
- Add animations where required. Assign animation tags defined by the matching SDK's
modeldef.xml, preserve the parent-child hierarchy and use the keyframe range expected by that definition. A static object does not need animation tags. - Configure the exporter. Point it to the matching XToMDL compiler and
modeldef.xml. Some exporters create an intermediate.xfile and call XToMDL automatically; others present the result as a direct MDL export. - Compile and inspect the log. Do not treat the appearance of an MDL file as proof that every feature compiled. Resolve missing-texture, unsupported-material, animation and geometry warnings before packaging it.
- Test a minimal package. Load one model with one basic material first. Add PBR maps, animations, effects and extra LODs only after the simple version appears correctly in Prepar3D.
Where does the compiled Prepar3D model go?
The destination depends on what the Blender model represents. A mistake we see constantly is treating a successful MDL compilation as a complete Prepar3D add-on.
| Asset | Required output | Runtime location |
|---|---|---|
| Static scenery | Model-library and placement BGL data, often in separate files, plus textures | An active scenery package with scenery and texture folders |
| Aircraft exterior or interior | One or more MDL files referenced by model.cfg | The aircraft's model subfolder inside its SimObject package |
| Other SimObject | MDL and the configuration files required by that SimObject category | The appropriate SimObjects category or an add-on package |
For scenery, assign the library object a unique GUID, compile the library and placement data with the SDK tools, and register the package with Prepar3D. The practical scenery packaging and registration steps for Prepar3D v5 explain both add-on.xml and Scenery Library methods.
For an aircraft, model.cfg must reference the MDL filename correctly, normally without its extension. Importing the Blender mesh does not create a flyable aircraft by itself; the aircraft still needs its configuration, flight model, contact points, systems and any cockpit components.
Why doesn't my Blender model appear in Prepar3D?
Most missing Blender models are caused by an SDK mismatch, inactive package, incorrect placement, broken GUID reference or invalid LOD—not by Prepar3D failing to understand the mesh.
| Symptom | Likely cause | Fix |
|---|---|---|
| No MDL is produced | Wrong SDK path, incompatible exporter or compiler error | Match the exporter to the Blender and P3D versions, then read the first meaningful XToMDL error rather than later cascading messages. |
| Scenery object is absent | Inactive scenery package, wrong coordinates, altitude error, GUID mismatch or invalid LOD | Confirm the package is enabled, test at a known location and verify that the placement reference uses the compiled library object's GUID. |
| Model is enormous, tiny or rotated | Unit mismatch or unapplied Blender transforms | Check real dimensions and exporter units, then apply rotation and scale before recompiling. |
| Parts vanish from one side | Reversed normals or single-sided geometry | Display face orientation in Blender and recalculate the affected normals outward. |
| Textures are blank, black or missing | Unsupported Blender nodes, absent files or incorrect runtime texture location | Bake procedural materials, use supported maps and place every referenced texture in the active package's texture folder. |
| Animation remains static | Missing animation tag, wrong modeldef.xml, incorrect key range or broken hierarchy | Use the target SDK's animation definition and confirm that the exporter recognises the tag before compilation. |
| Model looks flat or excessively shiny | Blender material values did not translate into P3D parameters | Configure the material through the exporter and verify the expected diffuse, normal, specular or PBR maps for the target simulator version. |
If loading the package crashes Prepar3D rather than merely hiding the object, remove it, confirm the simulator starts cleanly, and restore a stripped-down model without animations or complex materials. Our Prepar3D add-on crash isolation checklist covers the next diagnostic steps.