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.
22 results for dispatcher
SETUP: In your BP, create an Event Dispatcher (e.g. 'OnPlayerDied') in the My Blueprint panel. BIND (in another BP): Get reference to actor → Bind Event to OnPlayerDied → connect a Custom Event as the target. CALL (in owning BP): Call OnPlayerDied (appears as a pink node) → this broadcasts to all bound listeners. Key: Event Dispatchers are called with 'Call <DispatcherName>' (not 'Broadcast'). Binding is done via 'Bind Event to <DispatcherName>' which has an 'Event' exec-like pin.
Why: You're binding a function to an Event Dispatcher (Delegate), but the function's parameters don't match the dispatcher's expected signature '{expected}'. You passed '{got}'. Fix: Either: (a) change your function's input parameter types to match the dispatcher (open the function → My Blueprint → Inputs section → match types one-by-one), or (b) bind a DIFFERENT function whose signature already matches. The Details panel of the Bind Event node shows the expected signature.
A typed broadcast — bind one or many listeners, fire once, all run. Use for loose coupling (e.g. health changed → UI update).
Pattern: Actor A declares EventDispatcher OnScoreChanged(int NewScore). Actor B (listener) BeginPlay: GetActorOfClass(A) → BindEvent(OnScoreChanged) → custom event handler. Actor A calls OnScoreChanged.Broadcast(Score) when score changes. Bind in BeginPlay, Unbind in EndPlay to avoid dangling references.
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.
A type-safe function pointer used by Event Dispatchers and bindings. Bind, broadcast, unbind.
Pattern: Pickup actor with SphereCollision(overlap), StaticMesh visual. OnComponentBeginOverlap → CastTo PlayerCharacter → Success: call AddScore/AddItem interface on player → PlaySoundAtLocation → SpawnEmitterAtLocation → DestroyActor(self). Set collision to OverlapOnlyPawn for performance.
Pattern: Variables CurrentWave(int)=0, EnemiesAlive(int)=0, EnemiesPerWave(Array<int>). StartWave: CurrentWave++ → SET EnemiesAlive=EnemiesPerWave[CurrentWave]. Timer looping: Branch(SpawnedThisWave < EnemiesPerWave[CurrentWave]) → SpawnActor(EnemyClass, RandomSpawnPoint) → SpawnedThisWave++. OnEnemyDeath: EnemiesAlive-- → Branch(EnemiesAlive <= 0) → StartNextWave or Victory.
Pattern: Trigger → SpawnActorFromClass(Class, MakeTransform(Location, Rotation, Scale), CollisionHandling, Owner) → ReturnValue → IsValid branch → use spawned actor. Always check IsValid on ReturnValue. For many spawns, spread across frames with timer to avoid hitches.
PossessPawnUE 5.3, 5.4, 5.5, 5.6, 5.7updated 3mo ago