Import a Blender model into Prepar3D using a compatible P3D add-on and SDK, then compile the MDL, package it correctly and fix common errors.
Prepar3D cannot import a Blender .blend file directly. Install the SDK for the exact P3D release you are targeting, use a Blender P3D add-on compatible with both that SDK and your Blender version, export and compile an MDL with XToMDL, then package it as scenery or a SimObject.
Which Blender P3D add-on should I use?
Use an exporter that explicitly supports both your installed Blender release and the target Prepar3D SDK. Compatibility with only one side is not enough: an older P3D Blender exporter may understand the simulator format but fail under a newer Blender Python API.
- Blender compatibility: the add-on must install, register and export correctly in your specific Blender release.
- Prepar3D compatibility: it must target the model format and material features of the P3D version you intend to use.
- SDK integration: it must be able to invoke the matching XToMDL compiler and read that SDK's
modeldef.xmlwhen animations are involved. - Required features: confirm support for materials, LODs, animation tags and attachment points before choosing it for a complex aircraft or animated object.
Many Blender P3D add-ons export an intermediate .x file and then call XToMDL; others present this as a direct MDL export. An add-on installing without an error does not prove that its compiler paths, materials or animations are compatible.
Does a Blender P3D add-on work with Prepar3D v4.5?
A Blender exporter can work with Prepar3D v4.5 if it supports the P3D v4 model format, the v4.5 SDK tools and your chosen Blender release. Do not substitute the P3D v5 compiler or modeldef.xml for the v4.5 files.
| What “4.5” refers to | SDK to use | Exporter requirement |
|---|---|---|
| Prepar3D v4.5 | The matching P3D v4.5 SDK | Support for P3D v4 and the installed Blender release |
| Blender 4.5 | The SDK matching the target P3D version | Explicit support for Blender 4.5's add-on API |
| Prepar3D v5 | The corresponding P3D v5 SDK | Support for P3D v5 and the installed Blender release |
If a legacy exporter supports P3D v4.5 but not your preferred Blender release, the practical choice is to keep a compatible Blender installation solely for export. Work from a copy of the project rather than opening and resaving your only master file in an older release.
Install the SDK belonging to the Prepar3D release you will run. For v5, our guide to finding XToMDL, modeldef.xml and the other P3D v5 SDK tools explains the required components and paths. P3D v4.5 users must use the equivalent tools from the matching v4.5 SDK.
FBX, OBJ and glTF remain useful interchange formats between modelling applications, but Prepar3D does not load them directly at runtime. They can also discard simulator-specific animation tags, LOD definitions, material settings and attachment data.
How do I export and compile the Blender model?
The reliable workflow is to prepare the model for Prepar3D before compilation, then test the simplest possible package before adding advanced materials or animations.
- Choose the asset type. Decide whether the model will be static scenery, an aircraft or another SimObject. A static object is the easiest first export. A flyable aircraft requires configuration, flight dynamics, systems and cockpit work beyond the 3D mesh; our guide to preparing a simulator-ready aircraft mesh and its LODs covers that broader process.
- Make an export copy. Preserve the original
.blendfile before applying transforms, simplifying modifiers or adapting materials for a legacy exporter. - Set real-world dimensions. P3D export workflows normally expect model dimensions in metres. Check the exporter's unit handling, apply rotation and scale, and place the object origin deliberately. Do not add an unexplained 90-degree rotation unless the exporter documentation requires it; most dedicated exporters perform their own axis conversion.
- Clean the geometry. Merge unintended duplicate vertices, repair non-manifold areas and recalculate outward-facing normals. Check how the exporter triangulates faces, especially around shading-sensitive curved surfaces.
- Define usable LODs. Make certain there is a valid close-range model and that no LOD range causes the entire object to disappear. Naming and distance controls vary between exporters, so follow the add-on's P3D-specific method rather than relying on Blender collection names alone.
- Convert the materials. UV unwrap the model and configure materials through the exporter. Prepar3D cannot evaluate Blender's procedural node graph, so bake procedural colour, normal and surface effects into texture maps. Use PBR options only when both the target P3D version and exporter support them.
- Prepare runtime textures. DDS files with mipmaps are the normal production choice. Use uncomplicated filenames and place the finished maps in the package's texture folder; Blender's absolute path to a source image is not a runtime texture path for P3D.
- Tag animations correctly. Use animation names from the matching SDK's
modeldef.xml, retain the intended parent-child hierarchy and use the keyframe range expected by that definition. Static scenery needs no animation tags. - Configure the toolchain. Point the exporter to XToMDL and
modeldef.xmlfrom the same SDK. Export to a writable staging folder rather than compiling directly into a live Prepar3D installation. - Read the compiler output. Resolve the first meaningful XToMDL error before later cascading messages. The presence of an MDL does not guarantee that every material, animation or LOD compiled successfully.
- Test a minimal model. Start with one mesh and one basic material. Add PBR maps, animations, effects and extra LODs only after that version appears at the correct scale and orientation.
Where does the compiled Prepar3D model go?
The MDL must be referenced by a valid scenery or SimObject package; placing it in an arbitrary Prepar3D folder will not make it appear.
| Asset type | Role of the MDL | What is still required |
|---|---|---|
| Static scenery | Stored as an object in a model-library BGL | A unique GUID, placement data, textures and an active scenery package |
| Aircraft exterior or cockpit | Referenced by model.cfg from a model subfolder | Aircraft configuration, flight dynamics, systems, effects and textures |
| Other SimObject | Used as the category's visual model | The configuration files and package entries required for that SimObject type |
For static scenery, assign a unique GUID, compile the model library and placement data into one or more BGL files, then put those files and their textures in an active package. The full process for building the model-library and placement BGLs covers coordinates, altitude, texture folders and package structure.
Prepar3D v5 scenery can be registered through an add-on package or the simulator's scenery management system. Follow the appropriate steps for activating a P3D v5 scenery package with add-on.xml or the Scenery Library after the BGL files have compiled.
For an aircraft, the relevant entry in model.cfg must match the MDL filename, normally without the extension. Importing the Blender geometry does not create a flyable aircraft by itself.
Why doesn't my Blender model appear in Prepar3D?
A missing model usually indicates a compiler, package, placement, GUID or LOD problem rather than Prepar3D rejecting Blender geometry.
| Symptom | Likely cause | Fix |
|---|---|---|
| No MDL is produced | Incompatible exporter, wrong XToMDL path, inaccessible output folder or compiler failure | Verify Blender and P3D compatibility, use matching SDK paths and address the first compiler error. |
| MDL exists but scenery is absent | Inactive package, wrong coordinates or altitude, GUID mismatch, missing placement BGL or invalid LOD | Test at a known location and confirm that the placement entry references the library object's exact GUID. |
| Model is enormous, tiny or rotated | Unit mismatch, unapplied transforms or duplicated axis conversion | Check real dimensions, apply rotation and scale, then remove any unnecessary manual axis correction. |
| Parts vanish from one side | Reversed normals or single-sided geometry | Inspect face orientation in Blender and recalculate the affected normals outward. |
| Textures are black, white or missing | Unsupported Blender nodes, missing maps, unsuitable alpha settings or wrong runtime folder | Bake procedural materials, verify the exported material slots and copy every referenced map into the package's texture folder. |
| Animation remains static | Missing tag, wrong modeldef.xml, incorrect key range or broken hierarchy | Use the target SDK's definition and confirm that the exporter recognises the animation before compilation. |
| Model looks flat or excessively shiny | Blender shader values did not translate into P3D material parameters | Set the simulator material through the exporter and check the diffuse, normal, specular or supported PBR maps. |
| Prepar3D crashes while loading | Invalid compiled data, a problematic material or animation, or a package conflict | Remove the package, confirm P3D starts normally and restore a stripped-down model before adding features individually. |
What should I do if the exporter says “Retry”?
Use Retry only after correcting the first compiler or file-path error; pressing it repeatedly will not repair an invalid export.
- Read the earliest useful message. Later errors are often consequences of the first missing file, invalid material or failed compiler call.
- Use a simple staging path. Export to a writable folder with a short path and ordinary letters or numbers. Older scripts can mishandle spaces, apostrophes and other punctuation when constructing command lines.
- Recheck both SDK paths. XToMDL and
modeldef.xmlmust come from the same SDK release. - Release locked files. Close Prepar3D and any model-viewing tool if they have the output package open, then remove the partial output and retry.
- Export a plain cube. If that also fails, the exporter or SDK configuration is at fault. If the cube compiles but the production model does not, inspect that model's geometry, materials and animation data.
This simple split prevents wasted work: no MDL points to the Blender-to-XToMDL toolchain, a valid MDL that never appears points to packaging or placement, and a visible model with visual defects points back to the asset and its exporter settings.