Game Event Node Behavior
The Node Behavior Configuration Window sets each node's execution logic: its condition gate, start delay, argument passing, and the type-specific settings for Trigger and Chain nodes. This is where a node's timing and priority are decided.
For developers configuring individual flow nodes after placing them on the canvas.The graph shows connections; the Node Behavior Configuration Window controls the execution logic of each individual node.
Access: Double-click any node in the flow graph to open its behavior configuration window.

Window Overviewβ
The configuration window is divided into three main sections:
| Section | Purpose | Applies To |
|---|---|---|
| Node Information | View event details and type | All nodes |
| Node Condition | Visual logic gate for execution control | All nodes |
| Node Configuration | Timing, priority, and data passing settings | All nodes (type-specific) |
Node Informationβ
Displays read-only details about the selected node.
Event Name: The Game Event this node will raise.
Node Type: Trigger (parallel) or Chain (sequential).
Event GUID: Unique identifier for internal tracking.
Use Case: Verify you're editing the correct node before making changes.
Node Condition (Flow Gate)β
Each node has its own visual condition tree that controls whether it executes.

How It Worksβ
If condition evaluates to FALSE:
- Node does not fire
- Flow stops down this branch
- Connected child nodes are skipped
If condition evaluates to TRUE:
- Node fires normally
- Flow continues to children
Condition Contextβ
You have access to:
Event Argument (Arg): Data from the incoming event
Example: Arg.amount > 50
Sender (Sender): Source object (for sender events)
Example: Sender.tag == "Enemy"
Scene Objects: Any GameObject/Component in the scene
Example: Player.Health < 20
Visual Builderβ
The condition system uses the same Visual Condition Tree as Event Behaviors.
Full Documentation: See Visual Condition Tree for complete guide on:
- Building logic gates (AND/OR groups)
- Source types (Event Argument, Scene Type, Random, Constant)
- Comparison operators
- Type validation
- Best practices
The visual condition system is identical across:
- Event Behaviors (in Event Inspector)
- Flow Nodes (this window)
Learn it once, use it everywhere!
Practical Exampleβ
Scenario: Only play "Low Health Warning" when health is critical.
Condition Tree:
Result: Sound only plays when all three conditions pass.
Node Configurationβ
Settings that control timing, priority, and data flow.
General Settings (All Nodes)β

Start Delay
Unit: Seconds (float)
Effect: Node waits this duration before raising its event.
Use Cases:
- Staggered explosions (0.2s apart)
- Delayed reactions to events
- Timed sequences
Example:
π Raise: OnButtonPressed
β
βββΊ β±οΈ 0.5s βββ
β βΌ
β π΅ PlayClickSound β
Executed
β
βββΊ β±οΈ 1.0s βββββββββ
β βΌ
β π¬ ShowConfirmation β
Executed
β
βββΊ β±οΈ 2.0s βββββββββββββββββββ
βΌ
πͺ CloseMenu β
Finalized
Visual Indicator: Badge shows β±οΈ 0.5s at bottom of node.
Pass Argument
Type: Boolean toggle
Effect: Controls whether event data flows to this node.
Checked (Pass Argument: ON)β
Node receives data from previous event (if types are compatible).
When to Use:
- Forwarding damage info
- Passing scores/values
- Data pipelines
Example:
Connection Color: Depends on type compatibility (Green/Yellow/Orange).
Unchecked (Pass Argument: OFF)β
Node fires as static call with default/null arguments.
When to Use:
- Connecting incompatible types
- Generic notifications (no data needed)
- Forcing type-safe connections
Example:
π Event: OnDamageReceived(DamageInfo)
β (Payload: { amount: 20.0, ... })
β
π‘οΈ Filter: [ Pass Argument: OFF ]
β (Logic: Trigger Only / Data Dropped)
β
βββΊ π Callback: PlayGenericSound()
β
π― Result: Sound plays reliably without needing DamageInfo data.
Connection Color: Always π’ Green (forced safe).
Impact on Connectionsβ
Pass Argument directly affects connection line colors:
| Pass | Source Type | Target Type | Result |
|---|---|---|---|
| OFF | Any | Any | π’ Green (always safe) |
| ON | <int> | <int> | π’ Green (perfect match) |
| ON | <int> | <void> | π‘ Yellow (data discarded) |
| ON | <int> | <float> | π Orange (conversion) |
| ON | <int> | <string> | π΄ Red (blocked) |
Recommendation: Use OFF when connecting incompatible types to avoid red connections.
Type-Specific Settingsβ
Configuration options change based on node type (Trigger vs Chain).
Trigger Node
Trigger Node (π Orange)β
Execution: Parallel (fan-out) - fires and immediately continues.

Priorityβ
Type: Integer (default: 0)
Rule: Higher number = Earlier execution
Use Case: Control execution order when multiple Triggers connect to the same parent.
How Priority Worksβ
Scenario: Three Triggers connected to one Root node.
Execution Order: 10 β 5 β 0 (high to low)
Priority Valuesβ
| Value | Meaning | Use Case |
|---|---|---|
| Positive | Higher priority | Critical actions (sound, input blocking) |
| 0 | Default priority | Normal actions |
| Negative | Lower priority | Cleanup, logging, analytics |
Example Use Cases:
- +100: Block player input
- +50: Play critical sound
- 0: Standard VFX
- -50: Log to analytics
- -100: Cleanup temporary objects
Visual Indicatorβ
Badge shows β¬οΈ +10 at bottom of node.
Chain Node
Chain Node (π’ Green)β
Execution: Sequential (blocking) - fires and waits before continuing.

Durationβ
Type: Seconds (float)
Effect: Forces graph to pause at this node for specified time after event fires.
Use Case: Wait for animations, timed sequences, cooldowns.
Duration Examplesβ
Animation Wait:
πΌοΈ T+0.0s | Initiation
βοΈ PlayAttackAnimation()
β
β (Ξ 1.5s Delay: Animation Duration)
βΌ
πΌοΈ T+1.5s | Execution
π₯ DealDamage()
β
π Result: 1.5s total duration | β
Chain Completed
Timed Sequence:
πΌοΈ T+0.0s | Activation
β οΈ ShowWarning()
β
β (Ξ 3.0s Display Duration)
βΌ
πΌοΈ T+3.0s | Cleanup
π HideWarning()
β
π Lifecycle: 3.0s Active | β
Auto-Cleanup Completed
Visual Indicator: Badge shows β³ 3.0s at bottom of node.
Wait for Completionβ
Type: Boolean toggle
Effect: Graph waits for async operations to finish before continuing.
Requirements: Event listener must return Task or IEnumerator.
Async Supportβ
Coroutines (IEnumerator):
public IEnumerator OnLoadLevel()
{
yield return SceneManager.LoadSceneAsync("Level2");
Debug.Log("Load complete");
}
Async/Await (Task):
public async Task OnDownloadData()
{
await DownloadFromServer();
Debug.Log("Download complete");
}
Flow Behavior:
Without "Wait for Completion", ShowSuccessMessage would fire immediately (before loading finishes).
Duration + Wait Combinedβ
Both settings work together:
Scenario A: Task < Duration (Minimum Floor)
Example: The cutscene finishes quickly (1.5s), but the goal is to maintain the 2.0s pacing.
πΌοΈ T+0.0s | Initiation
π¬ PlayCutscene() β [Task Starts]
β
ββ β±οΈ 1.5s: [Task Completed Internally]
β β³ Status: Still Waiting (Safety Floor active)
β
ββ π T+2.0s: Logic Continues
β
π Result: Exact 2.0s duration (Pacing Maintained)
Scenario B: Task > Duration (Async Wait)
Example: The cutscene takes longer (5.0s) due to loading. The system waits for the task to finish.
πΌοΈ T+0.0s | Initiation
π¬ PlayCutscene() β [Task Starts]
β
ββ β±οΈ 2.0s: [Safety Floor Reached]
β β³ Status: Task still running... (Async Wait active)
β
ββ π T+5.0s: [Task Finally Completed] β Logic Continues
β
π Result: 5.0s duration (Full Completion Guaranteed)
Visual Indicators:
- β³ 2.0s (duration badge)
- β Wait (completion badge)
Configuration Examplesβ
Example 1: Delayed Trigger Sequenceβ
Goal: Play 3 sounds with staggered timing.
Example 2: Conditional Chain with Waitβ
Goal: Load level only if player completed tutorial.
Flow:
- Level completes
- Check condition (passes if tutorial done)
- Start async load, wait for completion
- Show level start UI
Quick Node Type Conversionβ
To change a node's type, you do not delete and recreate it.
How To:
- Right-click the node in graph
- Select "Convert to Trigger" or "Convert to Chain"
What's Preserved:
- β Event assignment
- β Connections
- β Start Delay
- β Pass Argument
- β Conditions
What Changes:
- Trigger β Chain: Priority removed, Duration/Wait added
- Chain β Trigger: Duration/Wait removed, Priority added
Troubleshootingβ
Node Doesn't Fireβ
Checklist:
- β Is condition enabled and passing?
- β Is parent node firing?
- β Is connection intact?
- β Is graph enabled in toolbar?
Debug: Add temporary condition-less node to test flow.
"Pass Argument" Grayed Outβ
Cause: Event type is void (no arguments to pass).
Solution: This is expectedβvoid events have no data to forward.
Duration Not Workingβ
Common Issues:
- Node type is Trigger (duration only works on Chain nodes)
- Duration set to 0
- "Wait for Completion" blocking longer than duration
Solution: Verify node type and check both duration and wait settings.
Async Not Waitingβ
Cause: "Wait for Completion" is unchecked.
Solution: Enable "Wait for Completion" toggle.
Requirement: Event listener must return Task or IEnumerator.