BP-CMPLX-001
Flags Blueprints with high combined complexity. This is about human performance—maintainability, reviewability, and defect risk—not frame time.
Why It Matters
Complex Blueprints are development bottlenecks:
| Problem | Impact |
|---|---|
| Maintainability | Harder to understand, modify, debug |
| Iteration speed | 500 nodes = ~2.5s compile |
| Defect rate | Bug fixes introduce new bugs |
| Version control | Merge conflicts on spatial data |
Complexity score formula:
Nodes × 1.0 + Branches × 5.0 + Depth × 6.0 + ...
When It’s Acceptable
- Utility Blueprints: Pure data-flow utilities rarely modified
- Generated graphs: Auto-generated content
- Single complex algorithm: Can’t be decomposed further
The Fix
Option 1: Extract Functions
Before:
Event BeginPlay → [20 init nodes] → [15 UI nodes] → [25 input nodes]
After:
Event BeginPlay → InitializeCharacter → SetupUI → ConfigureInput
5-15 nodes per function is typical.
Option 2: Flatten Branches
Before: Branch → Branch → Branch → Branch → Action
After: Guard Branch → Return, Guard Branch → Return, Action
Early returns flatten the graph.
Option 3: Macros for Patterns
Repeated node patterns → Collapse to Macro (compiles inline, no overhead).
Compile Time Impact
| Nodes | Cold Compile | Warm Compile |
|---|---|---|
| 50 | ~0.1s | ~0.05s |
| 200 | ~0.5s | ~0.15s |
| 500 | ~2.5s | ~0.3s |
| 1000+ | ~8-15s | ~1-2s |
Extracting functions improves incremental compilation 50-70%.
Configuration
Project Settings → Blueprint Health Analyzer → BP-CMPLX-001 → 500.0
Related
- BP-TICK-001 — Complex graphs often have heavy Tick paths
- BP-CAST-001 — Cast chains add complexity