Skip to main content

Node Behavior Configuration

In the Flow Graph, a Node represents an Event execution step, and a Connection represents the flow of data.

This chapter is the comprehensive guide to node anatomy, connection rules, and internal logic configuration.


🧬 Node Anatomy & Visuals​

A node acts as a wrapper around a Game Event Flow Asset. Its visual appearance provides a real-time dashboard of its runtime configuration.

1. The Three Logic Types​

Node Anatomy Diagram

Nodes serve as the visual building blocks of your logic, allowing you to wrap specific Game Events from your database and define how they interact, you can convert between Trigger and Chain types by Right-Clicking a node.

ColorTypeBehaviorBest For
πŸ”΄Root NodeThe Entry Point. Every graph has exactly one Root. It acts as the "Listener" that starts the graph when the external event fires.Starting the logic flow.
🟠Trigger NodeFan-Out (Parallel). Fires its task and immediately continues to the next node. Non-blocking.Visual effects, UI updates, Sound effects.
🟒Chain NodeSequence (Serial). Fires its task and blocks the flow until completion or duration expires.Cutscenes, Dialogues, Step-by-step tutorials.
Logic Identity The Root Node is not a separate logic type. Fundamentally, it acts as the initial Trigger or Chain starter, serving as the listener that fires the entire graph when the event is raised.

2. Status Badges (The Info Bar)​

Node Status Diagram

The icons at the bottom of a node give you a complete summary of its internal settings without needing to open the inspector.

IconLabelLogic TypeMeaning
🧩CondAllConditions Active. This node contains a Logic Tree. It will only fire if conditions are met.
⏱0.5sAllStart Delay. The node waits X seconds before raising the event.
⏳2.0sChain 🟒Duration. The flow pauses here for X seconds after the event fires (Artificial blocking).
βš“WaitChain 🟒Wait for Completion. The flow pauses until the event's listeners (Coroutines/Async) finish execution.
⬆10Trigger 🟠Priority. Determines execution order relative to other sibling triggers (Higher = Earlier).
πŸ”—PassAllPass Argument. The data from the previous node is passed into this event.
πŸ“ŒStaticAllStatic Call. Incoming data is ignored. The event fires with default/null arguments.

3. Data Ports​

Node Ports Diagram

The Flow Graph enforces Type Safety. The input (left) and output (right) ports are color-coded to base on the Event Argument Type.

Port Legend​

ColorTypeSignatureDescription
πŸ”΅ CyanVoid()Simple signal. Carries no data.
🌸 PinkSingle Arg(T)Carries one data packet (e.g., float, int, class).
πŸ’œ PurpleDouble Args(TSender, TArgs)Carries the source object and a data packet.

4. Connection Compatibility​

Node Connection Diagram

When you drag a line, the color indicates whether the data flow is valid:

ColorCompatibilityMeaning
🟒 GreenMatchPerfect. Types match exactly (e.g., Int β†’ Int).
🟑 YellowCompatibleSafe. Incoming data is discarded (e.g., Int β†’ Void).
🟠 OrangeWarningAuto-Conversion. System generates a runtime converter (e.g., Float β†’ Int).
πŸ”΄ RedErrorIncompatible. Connection is blocked (e.g., String β†’ Int).

The specific connection color is determined by the combination of the Source Event Type, the Target Event Type, and the Pass Argument configuration on the target node. The table below details the logic for every possible scenario:

Source TypeTarget TypePass ArgumentResultExplanation
AnyAnyFalse🟒 GreenConfig Override: Target ignores input; absolute safety.
<Void><Void>True🟒 GreenPerfect match.
<Void><T>TrueπŸ”΄ RedTarget requires T, but Source cannot provide it.
<Void><S, T>TrueπŸ”΄ RedTarget requires Sender & T, but Source cannot provide them.
<T><Void>True🟑 YellowSafe Discard: Argument T is ignored.
<T><T>True🟒 GreenPerfect match.
<T><S, T>TrueπŸ”΄ RedTarget requires Sender, but Source cannot provide it.
<S, T><Void>True🟑 YellowSafe Discard: Sender & T are ignored.
<S, T><T>True🟑 YellowSafe Discard: Sender is ignored.
<S, T><S, T>True🟒 GreenPerfect match.
<T1><T2>True🟠 OrangeRisky type conversion (e.g., int -> float).
<S, T1><T2>True🟠 OrangeDiscard Sender + Risky type conversion (Warning priority).
<S, T1><S, T2>True🟠 OrangeRisky type conversion (e.g., object -> string).

βš™οΈ Node Configuration Window​

To configure the internal behavior of a node, Double-Click it. This opens the floating configuration window.

1. General Settings​

This section applies to all node types.

General Settings

  • Start Delay: Time (seconds) to wait before raising the event.
  • Pass Argument:
    • βœ… Checked: Passes data from the previous node to this one.
    • ❌ Unchecked: Fires this event as a standalone "Static" call (Badge: πŸ“Œ).

2. Logic Specific Settings​

The middle section changes based on whether the node is a Trigger or a Chain.

For Trigger Nodes (🟠)​

Trigger Settings

  • Priority: An integer value. When a single event triggers multiple downstream nodes, this determines the execution order.
    • Example: Priority 100 executes before Priority 0.

For Chain Nodes (🟒)​

Chain Settings

  • Node Duration:
    • Forces the graph to wait for a specific time after the event fires.
    • Use Case: Playing a 3-second animation. Set Duration to 3.0.
  • Wait For Completion:
    • If checked, the graph intelligently waits for any Coroutines or Async Tasks registered to this event to finish.

3. Node Conditions πŸ§©β€‹

Just like in the Inspector Behavior, you can add a Condition Tree to any node.

Node Conditions

  • Logic: (A AND B) OR C
  • Behavior: If the condition evaluates to FALSE, this node will not fire, and the flow stops down this branch.
  • Use Case: Only play the "Low Health Sound" if Player.Health < 20.

πŸ–±οΈ Adding Nodes (The Selector)​

When you Right-Click > Add Node or drop a connection into empty space, the Selector Window appears.

Selector Window

  • Search: Fuzzy search your entire database.
  • Categorized: Groups events by their folder structure.
  • Auto-Wiring: Dropping a connection onto the selector automatically links the new node.
Quick Conversion

Did you place a Trigger but realized you needed a Chain? Don't delete it! Just Right-Click the Node and select Convert to Chain. All your settings (Delay, Conditions) are preserved.