Game Event Node Behavior
While the graph shows connections, the Node Behavior Configuration Window controls the detailed execution logic of each individual node.
Access: Double-click any node in the flow graph to open the configuration window for node behavior.

π― 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 we want 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β
Changed your mind about node type? No need to delete and recreate!
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.
π Next Stepsβ
Now that you can configure individual nodes, learn advanced patterns:
Build complex orchestrations with best practices
Master the condition builder (full reference)
Best Practice: Configure nodes as you build, not after.
- Add node to graph
- Double-click to configure
- Set conditions first (prevents unwanted execution)
- Add timing settings
- Test in isolation before connecting
Changes save automatically when you:
- Close the window
- Switch to another node
- Click outside the window
No manual save button needed!