Knowledge base
Knowledge base
Knowledge base
Free, anonymous browsing of Unreal Engine Blueprint examples, node references, and best practices. The same content the WoalzCraft plugin uses to generate Blueprints.
57 results for blueprint
SETUP: Create a Blueprint Interface asset (BPI_Interactable) with a function 'Interact'. IMPLEMENT: In the actor BP, go to Class Settings → Interfaces → Add → BPI_Interactable. Then implement the 'Interact' event that appears in the event graph. CALL: Get actor reference → 'Does Implement Interface(BPI_Interactable)' → Branch → True → 'Interact (Message)' node (the interface call). Key: Interface calls are 'Message' type nodes. Use 'Does Implement Interface' before calling to avoid crashes on actors that don't implement it.
1. DIRECT REFERENCE (tightest coupling): Get reference → CastTo<BP_Other> → call function. Use when: actor A always knows about actor B (e.g. Player → HUD). 2. CAST via GetAllActorsOfClass (loose): find → cast → call. Use when: you need to find actors dynamically. 3. EVENT DISPATCHER (loose): Owner calls dispatcher → listeners receive event. Use when: one actor notifies many others (e.g. death notification). 4. BLUEPRINT INTERFACE (loosest): Call interface message → any implementing actor responds. Use when: multiple different actor types should respond to same action (e.g. 'Interact'). 5. GAME INSTANCE (persistent): Store shared data in GameInstance → GetGameInstance → Cast. Use when: data must survive level loads.
Why: UE5 has a soft limit on graph complexity (typically ~2000 nodes per function). Your Blueprint exceeded it. Fix: Split logic across multiple functions: pick a logically-cohesive section, right-click → Collapse to Function. Repeat until each function is under ~500 nodes. Consider creating separate Macro Library or Blueprint Function Library assets to share common chunks.
A UMG (Unreal Motion Graphics) UI Blueprint. Holds the visual hierarchy + the logic graph for menus, HUDs, and panels.
Why: Some node or variable hardcoded a reference to BP_{name}, but that file was deleted or moved. The Asset Registry can't resolve it. Fix: Either: (a) re-create BP_{name} if accidentally deleted (Content Browser → right-click → Blueprint Class), or (b) update the reference to point at the correct existing Blueprint, or (c) make the reference soft (TSoftObjectPtr) so missing assets don't fail compilation.
MISTAKE 1: Calling GetAllActorsOfClass every Tick. FIX: Cache results in BeginPlay or use delegates/tags instead. MISTAKE 2: Not checking IsValid before using object references. FIX: Always IsValid → Branch → Is Valid before dereferencing. MISTAKE 3: Using hard references to large assets in variables. FIX: Use Soft Object References + AsyncLoadAsset. MISTAKE 4: Tick enabled on many actors doing heavy work. FIX: SetActorTickInterval(0.1) for non-critical logic, or use Timers. MISTAKE 5: Casting to specific class without checking IsValid first. FIX: CastTo has 'Cast Failed' output — always handle it. MISTAKE 6: Modifying array elements by getting then setting a copy. FIX: Use 'Array Set' with index to modify in-place. MISTAKE 7: Creating widget every time it's shown. FIX: Create once → cache reference → show/hide with SetVisibility or Add/RemoveFromParent.
1. TICK MANAGEMENT: - Disable tick on static actors (SetActorTickEnabled=false). - Use SetActorTickInterval(0.1-0.5) for AI, non-critical systems. - Prefer event-driven over tick polling where possible. 2. AVOID EVERY-TICK EXPENSIVE CALLS: - GetAllActorsOfClass: cache in BeginPlay, refresh only when needed. - CastTo: cache result in variable after first cast. - GetComponentByClass: call once and store reference. 3. VISIBILITY: - SetActorHiddenInGame + SetActorTickEnabled=false for off-screen actors. - Use LOD (Level of Detail) on meshes. 4. SPAWNING: - Use object pooling for frequently spawned/destroyed actors (bullets, effects). 5. EVENTS OVER POLLING: - Use overlap events instead of periodic distance checks. - Use delegates/dispatchers instead of checking conditions each frame.