Blender glTF Export at 0.01 Scale Imports Tiny Fab Environment Kit in Godot 4.5 - How to Fix
Problem: You dropped a Fab environment kit GLB into Godot 4.5. Meshes appear as a speck at the world origin—or vanish until you zoom in 100×. Collisions are wrong; playtesters fall through what should be the floor. Blender viewport looked fine before export.
Who is affected now: Teams under June 2026 Fab pipeline pressure who reused a Unreal-oriented 0.01 unit Blender scene for Godot glTF without re-applying transforms. This is object scale / unit pipeline drift—not ORM blown-out materials (fix scale before ORM tuning).
Fastest safe fix: Add a 1 m proof sphere in Blender → Apply → Scale (and Rotation if needed) on kit root + children → export glTF with applied transforms (no hidden 0.01 object scale) → Reimport in Godot → compare AABB to Blender dimensions ±1% → set scale_proof_pass: true on fab_pipeline_receipt_v1.json before expanding the kit across the fest map.
Direct answer
Godot imports the transforms baked into the glTF file. If Blender still stores 0.01 on the object (common for UE FBX habits) or a parent empty scales the whole kit down, Godot faithfully spawns a tiny scene. Fixing import scale in Godot without fixing Blender only hides the bug until the next reimport.
Why this issue spikes in June 2026
- Fab cart volume — Environment kits land faster than integration hours.
- Multi-engine presets — One artist exports 0.01 for Unreal; Godot lane inherits the file.
- Skip proof mesh — Teams batch ten kits without one 1 m reference object.
- Collision from visual mesh — Tiny visual mesh → tiny trimesh collider.
- Fest demo expansion — First kit “worked” at wrong scale; duplicated instances multiply the error.
Symptoms and search phrases
- Fab floor kit invisible until editor camera zooms to 0.01×.
- Player falls through ground; debug draw shows microscopic collision.
- Blender Dimensions panel shows meters; Godot AABB is centimeters or less.
- Root node Scale 0.01 on imported scene.
- Worked in Unreal after re-scale; broken in Godot with same GLB.
fab_pipeline_receiptmissingscale_proof_pass.
Root causes (check in order)
- Object scale not applied before glTF export (
Ctrl+A → Scale). - Scene unit 0.01 with objects at scale 1—double-shrinking vs Godot meters.
- Parent empty at 0.01 scale wrapping entire kit.
- Godot import root scale “fixed” to 100—masks until reexport.
- Fab source FBX imported at wrong scale in Blender—never normalized.
- Mixed pipeline — UE centimeters vs Godot 1 unit = 1 meter convention.
- Collision shape generated from unapplied visual mesh.
Beginner path (first 45 minutes)
Prerequisites: Blender 4.x, Godot 4.5, one Fab environment GLB or .blend sidecar.
- Open kit in Blender → select root empty and floor mesh → note Scale in sidebar (expect 1,1,1 after fix).
- Add UV Sphere, radius 0.5 m (1 m diameter)—name
PROOF_SPHERE_1M. - Object → Apply → Scale on kit hierarchy (see Step 2).
- Export glTF Binary (.glb).
- Godot: delete old import cache → reimport → instance in test scene.
- Select
PROOF_SPHERE_1M→ MeshInstance3D → Transform → Scale should be ~1; measure height ≈ 1 m.
Common mistake: Scaling proof sphere to “see” the kit—fix the kit, not the reference.
Fastest safe fix path
Step 1 — Proof sphere in Blender (1 m reference)
| Check | Pass |
|---|---|
PROOF_SPHERE_1M diameter ≈ 2 Blender units when Unit Scale = 1 |
Yes |
| Sphere shares same parent as kit root (or world-aligned) | Yes |
| Sphere visible in exported GLB | Yes |
Official: Applying transforms.
Step 2 — Apply transforms on kit hierarchy
- Outliner → select kit root →
Ctrl+A→ All Transforms (or Scale only if rotation correct). - Repeat for child meshes if scale ≠ 1,1,1.
- Confirm Dimensions on floor mesh match design doc (e.g. 10 m × 10 m platform).
Do not leave 0.01 on object while hoping glTF “+Y up” fixes units.
Step 3 — glTF export settings (no 0.01 cheat)
File → Export → glTF 2.0 (.glb):
| Option | Setting |
|---|---|
| Format | glTF Binary (.glb) |
| +Y Up | On (Godot default) |
| Apply Modifiers | On |
| Transform | + Apply (if exporter shows apply transform toggle) |
Avoid reusing FBX 0.01 export presets for Godot glTF—see 12 Free Fab→Godot scale tools.
Run Khronos glTF Validator before commit.
Step 4 — Godot 4.5 reimport (do not permanent-hack root scale)
- Delete prior imported scene resource (or Reimport from FileSystem).
- Select
.glb→ Import tab → Import As: Scene. - Open scene → inspect root Node3D scale—should be 1,1,1.
- If Advanced Import shows Root Scale ≠ 1, fix Blender source and reexport—do not ship 100,100,100 as team policy.
Docs: Importing 3D scenes, Advanced import settings.
Step 5 — Bounding-box smoke (±1%)
In Godot script or editor:
# Attach to imported kit root for smoke test
func _ready() -> void:
var aabb := _merged_aabb(self)
print("AABB size: ", aabb.size) # compare to Blender floor Dimensions
func _merged_aabb(n: Node3D) -> AABB:
var box := AABB()
for c in n.get_children():
if c is MeshInstance3D:
var mi := c as MeshInstance3D
var local := mi.mesh.get_aabb()
box = box.merge(mi.global_transform * local)
return box
Pass: Each major mesh width/depth/height within ±1% of Blender Dimensions (document exceptions for intentional stylized scale).
Step 6 — fab_pipeline_receipt_v1.json scale row
{
"schema": "fab_pipeline_receipt_v1",
"packs": [
{
"fab_listing_id": "environment-kit-meadow-01",
"scale_proof_pass": true,
"proof_sphere_blender_m": 1.0,
"floor_mesh_godot_aabb_m": [10.02, 0.48, 10.01],
"blender_floor_dimensions_m": [10.0, 0.5, 10.0],
"gltf_validator_pass": true
}
]
}
Attach beside Fab pipeline scope resource. Block kit expansion until scale_proof_pass is true.
Working dev path — collision parity
| Symptom | Fix |
|---|---|
| Visual correct, fall-through | Regenerate collision from scaled mesh; remove tiny StaticBody3D child |
| Only floor wrong | Floor mesh had unapplied scale—re-apply on that mesh only |
| Instances tiny in scene | Parent Node3D scaled—reset parent to 1,1,1 |
| Works in Editor, wrong in export | Export packed scene after reimport smoke |
Pair with Blender FBX armature scale help for unit vocabulary across engines.
Verification checklist
- [ ] Blender object scale 1,1,1 on kit root after apply
- [ ]
PROOF_SPHERE_1M≈ 1 m tall in Godot - [ ] Floor AABB within ±1% of Blender dimensions
- [ ] glTF Validator 0 errors (warnings documented)
- [ ] Collision matches walkable floor at human scale
- [ ]
fab_pipeline_receiptscale_proof_pass: true - [ ] ORM/material pass after scale pass (separate help)
Prevention
- Use 12 Free Blender Fab→Godot scale proof tools as fest checklist spine.
- One proof sphere per Fab pack before placing 20 instances.
- Separate Blender export presets:
Fab_UE_FBX_0.01vsFab_Godot_glTF_Meters. - Asset charter caps kits until proof passes.
- Wednesday smoke includes scale row on BUILD_RECEIPT.
Troubleshooting
| Symptom | Fix |
|---|---|
| Still tiny after apply | Parent empty scale—apply on parent chain |
| Huge after apply | Applied twice—reimport Fab source clean |
| Proof sphere tiny, kit OK | Sphere not applied—ignore; fix kit metrics |
| Only collision tiny | Trimesh from old import—rebuild collision shape |
| UE correct, Godot wrong | Export Godot-specific GLB; do not share FBX |
FAQ
Should I set Godot root scale to 100?
Emergency debug only. Fix Blender export so root stays 1,1,1—otherwise the next artist reimport breaks again.
Is this the same as ORM metallic blowout?
No—scale first per this article; then ORM packing help.
Fab kit in Unity worked—why Godot fails?
Unity import Scale Factor may have compensated. Godot glTF path is stricter about baked transforms.
Related links
- 12 Free Blender Fab to Godot 4.5 glTF Scale and Import Proof Tools
- 25 Free Blender to Engine Workflow Resources (2026)
- 15 Free Epic Fab Asset Pipeline Scope Resources
- Blender glTF ORM Packing Godot 4.5 Fix
- Blender FBX Armature Scale Wrong in Unity
- H2 2026 Fab and MegaGrants Pipeline Pressure
- Wednesday Demo Build Smoke Ritual
- Official: Blender glTF exporter, Godot importing 3D scenes
Apply scale in Blender, prove it with a 1 m sphere and an AABB—Fab kits are not “fixed” by zooming the Godot editor camera.