ECS Node Reference
This document provides a complete reference for all built-in blueprint nodes with visual examples.
Pin Type Legend
Section titled “Pin Type Legend”Event Nodes
Section titled “Event Nodes”Lifecycle Events
Section titled “Lifecycle Events”Lifecycle events as blueprint entry points:
| Node | Description | Outputs |
|---|---|---|
EventBeginPlay | Triggered when blueprint starts | Exec, Self (Entity) |
EventTick | Triggered each frame | Exec, Delta Time |
EventEndPlay | Triggered when blueprint stops | Exec |
Custom Events
Section titled “Custom Events”Custom event nodes allow you to define your own events and trigger blueprint logic from code.
| Node | Description | Outputs |
|---|---|---|
EventCustom | Custom event triggered from code | Exec, 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 entityconst blueprint = entity.getComponent(BlueprintComponent);
// Trigger custom event with parametersblueprint.vm?.triggerCustomEvent('OnDamage', { damage: 50, source: attackerEntity});
// Trigger event without parametersblueprint.vm?.triggerCustomEvent('OnPickup');Receiving Event Data in Blueprint:
Custom event nodes expose passed parameters as output pins:
Common Custom Event Examples:
| Event Name | Purpose | Parameter Examples |
|---|---|---|
OnDamage | Taking damage | { damage: number, source: Entity } |
OnHeal | Healing | { amount: number } |
OnCollision | Collision detection | { other: Entity, point: Vector2 } |
OnPickup | Picking up items | { item: Entity } |
OnInteract | Interaction | { player: Entity } |
OnDeath | Death | { killer: Entity } |
Example: Game Initialization
Section titled “Example: Game Initialization”Example: Per-Frame Movement
Section titled “Example: Per-Frame Movement”Entity Nodes
Section titled “Entity Nodes”Manipulate ECS entities:
| Node | Description | Type |
|---|---|---|
Get Self | Get the entity owning this blueprint | Pure |
Create Entity | Create a new entity in the scene | Exec |
Destroy Entity | Destroy specified entity | Exec |
Destroy Self | Destroy the owning entity | Exec |
Is Valid | Check if entity is valid | Pure |
Get Entity Name | Get entity name | Pure |
Set Entity Name | Set entity name | Exec |
Find Entity By Name | Find entity by name | Pure |
Find Entities By Tag | Find all entities with tag | Pure |
Example: Create Bullet
Section titled “Example: Create Bullet”Component Nodes
Section titled “Component Nodes”Read and write component properties:
| Node | Description | Type |
|---|---|---|
Get Component | Get component of specified type from entity | Pure |
Has Component | Check if entity has specified component | Pure |
Add Component | Add component to entity | Exec |
Remove Component | Remove component from entity | Exec |
Get Property | Get component property value | Pure |
Set Property | Set component property value | Exec |
Example: Modify Position
Section titled “Example: Modify Position”Flow Control Nodes
Section titled “Flow Control Nodes”Control blueprint execution flow:
| Node | Description |
|---|---|
Branch | Conditional branching (if/else) |
Sequence | Execute multiple branches in order |
For Loop | Loop specified number of times |
For Each | Iterate over array elements |
While Loop | Loop while condition is true |
Do Once | Execute only once |
Flip Flop | Alternate between A and B |
Gate | Gate switch control |
Example: Conditional Branch
Section titled “Example: Conditional Branch”Example: For Loop
Section titled “Example: For Loop”Time Nodes
Section titled “Time Nodes”| Node | Description | Output |
|---|---|---|
Delay | Delay execution by specified seconds | Exec |
Get Delta Time | Get frame delta time | Float |
Get Time | Get total runtime | Float |
Example: Delayed Execution
Section titled “Example: Delayed Execution”Math Nodes
Section titled “Math Nodes”Basic Operations
Section titled “Basic Operations”| Node | Description | Inputs | Output |
|---|---|---|---|
Add | Addition | A, B | A + B |
Subtract | Subtraction | A, B | A - B |
Multiply | Multiplication | A, B | A × B |
Divide | Division | A, B | A / B |
Modulo | Modulo | A, B | A % B |
Math Functions
Section titled “Math Functions”| Node | Description | Inputs | Output |
|---|---|---|---|
Abs | Absolute value | Value | |Value| |
Sqrt | Square root | Value | √Value |
Pow | Power | Base, Exp | Base^Exp |
Floor | Floor | Value | ⌊Value⌋ |
Ceil | Ceiling | Value | ⌈Value⌉ |
Round | Round | Value | round(Value) |
Clamp | Clamp to range | Value, Min, Max | min(max(V, Min), Max) |
Lerp | Linear interpolation | A, B, Alpha | A + (B-A) × Alpha |
Min | Minimum | A, B | min(A, B) |
Max | Maximum | A, B | max(A, B) |
Trigonometric Functions
Section titled “Trigonometric Functions”| Node | Description |
|---|---|
Sin | Sine |
Cos | Cosine |
Tan | Tangent |
Asin | Arc sine |
Acos | Arc cosine |
Atan | Arc tangent |
Atan2 | Two-argument arc tangent |
Random Numbers
Section titled “Random Numbers”| Node | Description | Inputs | Output |
|---|---|---|---|
Random | Random float [0, 1) | - | Float |
Random Range | Random in range | Min, Max | Float |
Random Int | Random integer | Min, Max | Int |
Comparison Nodes
Section titled “Comparison Nodes”| Node | Description | Output |
|---|---|---|
Equal | A == B | Boolean |
Not Equal | A != B | Boolean |
Greater | A > B | Boolean |
Greater Or Equal | A >= B | Boolean |
Less | A < B | Boolean |
Less Or Equal | A <= B | Boolean |
Extended Math Nodes
Section titled “Extended Math Nodes”Vector2, Fixed32, FixedVector2, Color and other advanced math nodes are provided by the
@esengine/ecs-framework-mathmodule.See: Math Blueprint Nodes
Example: Clamp Value
Section titled “Example: Clamp Value”Variable Nodes
Section titled “Variable Nodes”Blueprint-defined variables automatically generate Get and Set nodes:
| Node | Description | Type |
|---|---|---|
Get <varname> | Read variable value | Pure |
Set <varname> | Set variable value | Exec |
Example: Counter
Section titled “Example: Counter”Debug Nodes
Section titled “Debug Nodes”| Node | Description |
|---|---|
Print | Output message to console |
Related Documentation
Section titled “Related Documentation”- Math Blueprint Nodes - Vector2, Fixed32, Color and other math nodes
- Blueprint Editor Guide - Learn how to use the editor
- Custom Nodes - Create custom nodes
- Blueprint VM - Runtime API