Skip to content

ECS Node Reference

This document provides a complete reference for all built-in blueprint nodes with visual examples.

Execution Flow
Entity
Component
Number
String
Boolean

Lifecycle events as blueprint entry points:

NodeDescriptionOutputs
EventBeginPlayTriggered when blueprint startsExec, Self (Entity)
EventTickTriggered each frameExec, Delta Time
EventEndPlayTriggered when blueprint stopsExec

Custom event nodes allow you to define your own events and trigger blueprint logic from code.

NodeDescriptionOutputs
EventCustomCustom event triggered from codeExec, Custom parameters

Creating Custom Events:

When creating a custom event node in the blueprint editor, you need to set:

  • Event Name (eventName): Used to trigger the event from code
  • Output Parameters: Data passed by the event, such as damage, amount, etc.

Triggering Custom Events from Code:

// Get the blueprint component from entity
const blueprint = entity.getComponent(BlueprintComponent);
// Trigger custom event with parameters
blueprint.vm?.triggerCustomEvent('OnDamage', {
damage: 50,
source: attackerEntity
});
// Trigger event without parameters
blueprint.vm?.triggerCustomEvent('OnPickup');

Receiving Event Data in Blueprint:

Custom event nodes expose passed parameters as output pins:

Event OnDamage
Self
Damage
Print
Exec
Msg

Common Custom Event Examples:

Event NamePurposeParameter Examples
OnDamageTaking damage{ damage: number, source: Entity }
OnHealHealing{ amount: number }
OnCollisionCollision detection{ other: Entity, point: Vector2 }
OnPickupPicking up items{ item: Entity }
OnInteractInteraction{ player: Entity }
OnDeathDeath{ killer: Entity }
Event BeginPlay
Self
Print
Exec
Message "Game Started!"
Event Tick
Delta Time
Multiply
A
B 100
Result
Set Property
Exec
Target
x

Manipulate ECS entities:

NodeDescriptionType
Get SelfGet the entity owning this blueprintPure
Create EntityCreate a new entity in the sceneExec
Destroy EntityDestroy specified entityExec
Destroy SelfDestroy the owning entityExec
Is ValidCheck if entity is validPure
Get Entity NameGet entity namePure
Set Entity NameSet entity nameExec
Find Entity By NameFind entity by namePure
Find Entities By TagFind all entities with tagPure
Event BeginPlay
Self
Create Entity
Exec
Exec
Entity
Add Transform
Exec
Entity

Read and write component properties:

NodeDescriptionType
Get ComponentGet component of specified type from entityPure
Has ComponentCheck if entity has specified componentPure
Add ComponentAdd component to entityExec
Remove ComponentRemove component from entityExec
Get PropertyGet component property valuePure
Set PropertySet component property valueExec
Get Self
Entity
Get Component
Entity
Transform
Get Property
Target
x

Control blueprint execution flow:

NodeDescription
BranchConditional branching (if/else)
SequenceExecute multiple branches in order
For LoopLoop specified number of times
For EachIterate over array elements
While LoopLoop while condition is true
Do OnceExecute only once
Flip FlopAlternate between A and B
GateGate switch control
Condition
Exec
Result
Branch
Exec
Cond
True
False
Print
Exec
Msg "Yes"
Print
Exec
Msg "No"
Event BeginPlay
For Loop
Exec
First 0
Last 10
Body
Index
Done
NodeDescriptionOutput
DelayDelay execution by specified secondsExec
Get Delta TimeGet frame delta timeFloat
Get TimeGet total runtimeFloat
Event BeginPlay
Delay
Exec
Duration 2.0
Done
Print
Exec
Msg "After 2s"
NodeDescriptionInputsOutput
AddAdditionA, BA + B
SubtractSubtractionA, BA - B
MultiplyMultiplicationA, BA × B
DivideDivisionA, BA / B
ModuloModuloA, BA % B
NodeDescriptionInputsOutput
AbsAbsolute valueValue|Value|
SqrtSquare rootValue√Value
PowPowerBase, ExpBase^Exp
FloorFloorValue⌊Value⌋
CeilCeilingValue⌈Value⌉
RoundRoundValueround(Value)
ClampClamp to rangeValue, Min, Maxmin(max(V, Min), Max)
LerpLinear interpolationA, B, AlphaA + (B-A) × Alpha
MinMinimumA, Bmin(A, B)
MaxMaximumA, Bmax(A, B)
NodeDescription
SinSine
CosCosine
TanTangent
AsinArc sine
AcosArc cosine
AtanArc tangent
Atan2Two-argument arc tangent
NodeDescriptionInputsOutput
RandomRandom float [0, 1)-Float
Random RangeRandom in rangeMin, MaxFloat
Random IntRandom integerMin, MaxInt
NodeDescriptionOutput
EqualA == BBoolean
Not EqualA != BBoolean
GreaterA > BBoolean
Greater Or EqualA >= BBoolean
LessA < BBoolean
Less Or EqualA <= BBoolean

Vector2, Fixed32, FixedVector2, Color and other advanced math nodes are provided by the @esengine/ecs-framework-math module.

See: Math Blueprint Nodes

Random Range
Min 0
Max 100
Result
Clamp
Value
Min 20
Max 80
Result

Blueprint-defined variables automatically generate Get and Set nodes:

NodeDescriptionType
Get <varname>Read variable valuePure
Set <varname>Set variable valueExec
Event Tick
Delta
Get Count
Value
Add
Exec
A
B 1
Result
Set Count
Exec
Value
Exec
NodeDescription
PrintOutput message to console