Asset & Resource Problems May 24, 2026

Blender glTF Export at 0.01 Scale Imports Tiny Fab Environment Kit in Godot 4.5 - How to Fix

Fix tiny Fab kit imports in Godot 4.5 when Blender glTF uses 0.01 scale or unapplied transforms. Proof sphere, apply scale, bounding-box smoke ±1%, and fab_pipeline_receipt scale row.

By GamineAI Team

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

  1. Fab cart volume — Environment kits land faster than integration hours.
  2. Multi-engine presets — One artist exports 0.01 for Unreal; Godot lane inherits the file.
  3. Skip proof mesh — Teams batch ten kits without one 1 m reference object.
  4. Collision from visual mesh — Tiny visual mesh → tiny trimesh collider.
  5. 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_receipt missing scale_proof_pass.

Root causes (check in order)

  1. Object scale not applied before glTF export (Ctrl+A → Scale).
  2. Scene unit 0.01 with objects at scale 1—double-shrinking vs Godot meters.
  3. Parent empty at 0.01 scale wrapping entire kit.
  4. Godot import root scale “fixed” to 100—masks until reexport.
  5. Fab source FBX imported at wrong scale in Blender—never normalized.
  6. Mixed pipeline — UE centimeters vs Godot 1 unit = 1 meter convention.
  7. 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.

  1. Open kit in Blender → select root empty and floor mesh → note Scale in sidebar (expect 1,1,1 after fix).
  2. Add UV Sphere, radius 0.5 m (1 m diameter)—name PROOF_SPHERE_1M.
  3. Object → Apply → Scale on kit hierarchy (see Step 2).
  4. Export glTF Binary (.glb).
  5. Godot: delete old import cache → reimport → instance in test scene.
  6. Select PROOF_SPHERE_1MMeshInstance3D → 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

  1. Outliner → select kit rootCtrl+AAll Transforms (or Scale only if rotation correct).
  2. Repeat for child meshes if scale ≠ 1,1,1.
  3. 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)

  1. Delete prior imported scene resource (or Reimport from FileSystem).
  2. Select .glbImport tab → Import As: Scene.
  3. Open scene → inspect root Node3D scale—should be 1,1,1.
  4. 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_1M1 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_receipt scale_proof_pass: true
  • [ ] ORM/material pass after scale pass (separate help)

Prevention

  1. Use 12 Free Blender Fab→Godot scale proof tools as fest checklist spine.
  2. One proof sphere per Fab pack before placing 20 instances.
  3. Separate Blender export presets: Fab_UE_FBX_0.01 vs Fab_Godot_glTF_Meters.
  4. Asset charter caps kits until proof passes.
  5. 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

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.