| Concept | Key Node / Pattern |
|---|---|
| Events | Event BeginPlay / Event Tick / Event ActorBeginOverlap |
| Execution flow | White exec pins (▶) — sequential control flow |
| Data flow | Coloured data pins — values passed between nodes |
| Branching | Branch (bool) / Switch on Int / Switch on String |
| Casting | Cast To <Type> — convert reference to child type |
| Interfaces | BPI_ prefix + Event <Message> — cross-class communication |
| Timelines | Timeline node — keyframed float/vector/colour curves |
| Animation | State Machine inside AnimBP — State Alias / Blend Space |
Event BeginPlay → runs once on game start
Event Tick → runs every frame (enable in Class Defaults)
Event EndPlay → runs when actor is destroyed/level unloads
Event Tick
│
▼
Branch ──True──▶ Print String "Active"
│
False
│
▼ (nothing)
Event BeginPlay
│
▼
Sequence ──Then 0──▶ Spawn Actor
├─Then 1──▶ Set Timer
└─Then 2──▶ Play Sound
// C++ equivalent for reference
if (APlayerCharacter* PC = Cast<APlayerCharacter>(OtherActor)) {
PC->TakeDamage(10);
}
Blueprint pattern:
OnActorBeginOverlap (Other Actor)
│
▼
Cast To PlayerCharacter ──Success──▶ [Ref] ▶ Take Damage
│
Cast Failed
Creating a Blueprint Interface:
BPI_InteractableInteract (no implementation in interface)Calling an Interface:
OnActorBeginOverlap (Other Actor)
│
▼
Does Implement Interface (BPI_Interactable)
│
▼ True
Interact (Message) — Target: Other Actor
Interface vs Casting: Interfaces give loose coupling across unrelated classes. Casting requires knowing the exact class at compile time.
AnimBP → AnimGraph → Add State Machine
State Machine:
Idle ──(Speed > 0)──▶ Walk
Walk ──(Speed == 0)──▶ Idle
Any State ──(IsJumping)──▶ Jump
Jump ──(OnLand)──▶ Idle
Transition: Idle → Walk
Get Speed (float from Character Movement)
Float > Float ──True──▶ Can Transition
Blendspace Player (Speed)Use State Alias nodes to reference states by name. E.g. Alias GroundLocomotion → Idle / Walk / Run blendspace.
Event BeginPlay
│
▼
Timeline ──Update──▶ Set Actor Location (Lerp from A to B)
├─Finished──▶ Destroy Actor
└─Play from Start
| Exposure | Flag | Notes |
|---|---|---|
| Instance Editable | Editable (eye icon) | Shows in Details panel per-instance |
| Expose on Spawn | Expose on Spawn | Shows as pin on Spawn Actor node |
| Private | Uncheck both | Only accessible inside this Blueprint |
Boolean → Branch
Integer → Switch on Int
Float → Math Expression, Lerp
Vector → Location, Scale
Rotator → Rotation
Transform → Location + Rotation + Scale
Object Ref → Cast To
Gameplay Tag → Has Tag, Switch on Gameplay Tag
Print String liberally during debugging — it's your console.log().