Develop, debug, and upgrade Blender add-ons/plugins and `bpy` scripts with Blender 4.x and 5.x compatibility. Use when tasks involve generating new add-on co...
Check register/unregister order and operator bl_idname format.
Confirm no removed API names remain in generated output.
Script Generation Patterns
Generate small, composable files:
operators.py for operators.
ui.py for panels/menus.
compat.py for version shims.
__init__.py for bl_info and registration entrypoints.
Use idempotent register/unregister functions.
Keep class lists explicit (tuple of classes) and unregister in reverse order.
Report actionable failures with self.report({"ERROR"}, "...") inside operators.
Avoid hard-coded context assumptions in poll() and execute().
Required Compatibility Rules
Avoid dict-like access for runtime-defined RNA properties in 5.0 when accessing add-on-defined data; use supported property access patterns documented in Blender 5.0 release notes.
Never depend on bundled private modules listed in Blender 5.0 notes (for example, bl_ui_utils, rna_info).
Treat scene.use_nodes as deprecated and avoid using it for new code.
Avoid UILayout.template_asset_view() in new code; use asset-shelf-compatible APIs.
Keep code ready for Blender 6.0 removals by addressing documented 5.0 deprecations proactively.
Resources (optional)
scripts/
scripts/scaffold_addon.py: Generate a Blender 4/5-ready add-on package skeleton.
references/
references/blender4_to_5_compat.md: Blender 4.0 and 5.0 compatibility map with official sources.
references/script_generation_patterns.md: Reusable patterns for operators, panels, and background scripts.