Godot Pipeline
Godot Pipeline — Documentation
v1.0.4 · Blender 4.2 LTS and later · targets Godot 4 · Windows / macOS / Linux
1. Install
- Download the add-on archive (do not unpack).
- Edit → Preferences → Add-ons, press the arrow button in the top right corner, choose Install from Disk, pick the ZIP, enable Godot Pipeline.
- Press N in the 3D Viewport → Godot tab.
After installing, press N in the 3D Viewport: a tab named Godot appears in the sidebar.
2. Quick start
- Set Export Path (your Godot res:// assets folder).
- Pick Target preset: Desktop / Mobile / Web (HTML5).
- (Optional) toggle snake_case, .import sidecars, Lightmap UV, MultiMesh folding.
- Click Export Scene.
3. Scene export
Writes a top-level .tscn + per-mesh .glb via Blender's glTF exporter with the full Godot 4 arg set: export_tangents (correct Normal Map shading), export_extras (Blender custom props → Godot metadata), export_morph, export_skins, export_animations, export_cameras, export_lights, plus use_visible and use_renderable filtering.
4. Writing into your project folder
The folder you export into is your Godot project, and the names of the files come from the names of your objects, so a name can already be taken there. Every file this add-on writes — the .glb meshes, the .tscn scene, the .tres materials, animations and mesh libraries, and the .import sidecars — is written to a temporary file beside its destination and moved into place in one step. An interrupted write therefore cannot leave a truncated file where a good one was; you either keep the previous file or get the complete new one.
If an export fails partway through, the clean-up removes only the files that run created. A file that was already in the folder and was updated by this run is left where it is: it is your work, not ours.
5. .import sidecars
For each .glb, writes a Godot 4 .import file pre-configured: tangents on, mesh shadow generation on, LOD generation on, light baking mode per target preset. Texture compression and mipmaps are not written; Godot applies its own import settings for those.
6. Target presets
| Preset | Light baking in .import |
|---|---|
| Desktop | Static |
| Mobile | Static |
| Web (HTML5) | Disabled |
7. MultiMeshInstance3D folding
Groups of ≥3 objects sharing the same mesh.data + identical materials + no children + no Armature modifier are written as a single _multimesh.tscn: a MultiMeshInstance3D node whose MultiMesh uses the group's mesh, written next to it as <mesh>.obj (+ .mtl, Y-up, in the mesh's own space), and holds one transform per instance in Godot's PackedFloat32Array layout. The MultiMesh scene is also placed in the main .tscn. A duplicate with modifiers, children, a mirror (negative scale), animated shape keys, or anything that can move it (keys, drivers, constraints — its own or its parents', including Armature constraints and animated paths) is exported as its own node instead, because a MultiMesh draws one mesh at a frozen transform. Texture paths in the .mtl are relative to the export folder and carry no options (Godot does not read them); a texture from outside the Godot project is copied into textures/ next to the export. A file in the export folder that the add-on did not write is not replaced — ours takes the next free name. Checked by loading the scene in Godot 4.7.2: four linked duplicates, turned and scaled differently, each within 1 cm of its place in Blender.
8. Cyrillic-safe naming
to_godot_name transliterates non-ASCII to Latin (а→a, ш→sh, ё→yo, ...) instead of stripping. It is applied to the names of the scene, mesh files, nodes, materials, animation resources and GridMap tiles; bone names are not changed. Empty results fall back to unnamed.
9. Lightmap UV channel 2
If enabled, generates a second UV layer via Lightmap Pack (Smart UV Project fallback) for any mesh missing one. A mesh that already has two UV layers is left as it is.
10. Batch export by collection
Walks every top-level collection that is not hidden from render. Each collection writes a sub-folder with its own .tscn, .glb and .import set. Useful for modular asset libraries.
11. Collision shapes
| Suffix | Collision type in the panel |
|---|---|
| -col | Col |
| -colonly | Colonly |
| -rigid | Rigid |
| -area | Area |
| -vehicle | Vehicle |
| -navmesh | Navmesh |
The add-on names the collision object; what Godot builds from each suffix is decided by Godot's importer. Hidden / not-renderable objects are skipped at collision-generation time.
12. Material conversion
Every material referenced by exported meshes is converted to a Godot 4 StandardMaterial3D resource written to materials/.tres. Mapped: Base Color, Metallic, Roughness, Normal, Emission, Alpha.
13. Animation export
Bone tracks (position_3d / rotation_3d / scale_3d) baked into the .glb or exported as separate .tres resources. Split by NLA clips walks armature NLA tracks; overlapping clip ranges trigger a popup warning.
14. GridMap MeshLibrary
Tile meshes auto-centred to cell-size origin, validated against chosen cell size. Imports straight into a GridMap node's MeshLibrary slot.
15. Troubleshooting
Normal maps look wrong in Godot — check .glb includes tangents (v1.0 sets export_tangents=True). Verify .import wasn't overwritten to disable tangents.
A Russian name became 'unnamed' — transliteration covers Cyrillic in file, node, material and action names. Stripped chars: punctuation only. Bone names are not changed by the add-on.
MultiMeshInstance3D shows nothing — the scene was exported by version 1.0.3 or earlier, which wrote the MultiMesh without a mesh. Export again with 1.0.4.
Hidden objects still in export — check hide_render is on, not just hide_viewport. Collection-level hide_render also respected.
16. Limitations
- The exported scene and MultiMesh were checked in Godot 4.7.2 only; earlier 4.x versions were not tried.
- Material conversion covers StandardMaterial3D basics — Anisotropic, SSS, procedural shaders not preserved.
- NLA animation split requires each clip on a separate Action.
17. Support & License
Through marketplace messaging. GPL-3.0. Assets you export are yours to ship in any commercial project.