[Bug] Fab Blender Plugin v0.2.15 fails to install on Blender 4.0 - 5.0

Summary

The Fab Blender plugin (v0.2.15) that the Epic Games Launcher attempts to install
automatically does not work on Blender 4.0 through 5.0. There are two categories of
issues: packaging errors and deprecated/removed Blender APIs.

Environment

  • OS: Windows 10
  • Blender version: 5.0
  • Fab plugin version: 0.2.15
  • Epic Games Launcher: Latest

Steps to Reproduce

  1. Open Epic Games Launcher
  2. Attempt to export/send a Fab asset to Blender 5.0
  3. The plugin auto-install fails silently
  4. Attempting to manually install the zip in Blender gives the error:
    “ZIP packaged incorrectly; init.py should be in a directory, not at top-level”

Issue 1: ZIP Packaging Error

The addon zip has init.py at the root level instead of inside a subdirectory.
Blender requires addon zips to contain a folder with init.py inside it:

Wrong (current):
init.py
fabplugins/

Correct:
fab/
init.py
fab/fabplugins/

Issue 2: 10 Broken APIs (Blender 4.0+ Incompatibility)

Even after fixing the zip structure, the plugin crashes due to APIs that were
removed in Blender 4.0:

  1. ShaderNodeSeparateRGB → removed, replaced by ShaderNodeSeparateColor
  2. ShaderNodeCombineRGB → removed, replaced by ShaderNodeCombineColor
  3. ShaderNodeMixRGB → removed, replaced by ShaderNodeMix (with data_type=‘RGBA’)
  4. Named outputs “R”, “G”, “B” → renamed to “Red”, “Green”, “Blue”
  5. node_principled.distribution property → removed in Principled BSDF rewrite
  6. node_principled.subsurface_method property → removed (always random walk now)
  7. material.blend_method = ‘HASHED’ → removed in EEVEE-Next
  8. bpy.ops.import_scene.obj → removed, only bpy.ops.wm.obj_import remains
  9. thread.getName() → deprecated in Python 3.10, removed in Python 3.12+
  10. Folder name “blender_v0.2.15” contains dots → invalid Python module name

Suggested Fix

I have a working patched version (0.3.0) that maintains backward compatibility
with Blender 3.6 while supporting Blender 4.0 through 5.0. The approach uses:

  • A version flag: IS_BLENDER_4 = bpy.app.version >= (4, 0, 0)
  • Conditional node type constants for the renamed shader nodes
  • try/except wrappers for removed properties
  • Index-based socket access instead of named access where names changed
  • Version-conditional OBJ import path

Ive share the patched files if helpful to the team.

Expected Behavior

The Fab plugin should install and work correctly on Blender 4.0 - 5.0, allowing
one-click asset imports from the Epic Games Launcher.