Connection Types & Ports
Before building flows, you must understand the visual language of the graph. Every color, shape, and line style communicates data flow and execution behavior.
The legend shown here is also available in the Flow Editor (right-side panel). mouse hover anywhere in the legend to see detailed tooltips.
𧬠Node Typesβ
A node's header color indicates its execution pattern.

Execution Patternsβ
| Color | Type | Behavior | Use Case |
|---|---|---|---|
| π΄ Red | Root Node | Entry Point - Fires when event is raised externally | Game start, player input, collision detection |
| π Orange | Trigger Node | Parallel (Fan-Out) - Fires and immediately continues (non-blocking) | Sound + VFX + UI updates happening simultaneously |
| π’ Green | Chain Node | Sequential (Blocking) - Fires and waits before continuing | Cutscenes, delayed actions, async operations |
Root Node Rulesβ
One Per Graph: Each graph has exactly one root node.
Set Root: Right-click any node to Set as Root to change entry point.
Visual: Red header gradient makes it instantly recognizable.
Trigger vs Chainβ
Trigger Pattern (Parallel):
All executed in parallel together!
Chain Pattern (Sequential):
Each waits for the previous to finish!
π Port Types (Data Signatures)β
Port colors indicate the C# event signature and data payload.

Port Color Meaningsβ
| Color | Signature | Description | Example Events |
|---|---|---|---|
| π΅ Cyan | () | Void - No data passed | OnGameStart, OnButtonClick |
| πΈ Pink | <T> | Single Argument - One data payload | OnScoreChanged(int), OnDamage(DamageInfo) |
| π Purple | <TSender, TArgs> | Dual Arguments - Sender + Payload | OnPlayerDamaged(GameObject, DamageInfo) |
Port Anatomyβ
- Left Port (Input): Receives data from previous node.
- Right Port (Output): Sends data to next node.
π Connection Compatibilityβ
The system provides real-time type safety when creating connections.

Compatibility Levelsβ
| Color | Status | Meaning | Impact |
|---|---|---|---|
| π’ Green | Perfect Match | Types match exactly | Zero overhead, no conversion |
| π‘ Yellow | Compatible | Safe operation with data discard | Arguments ignored, no errors |
| π Orange | Warning | Type conversion required | Auto-converts (e.g., int β float) |
| π΄ Red | Incompatible | Will fail at runtime | Connection blocked |
Visual Feedbackβ
While Dragging:
- Preview line shows compatibility color
- Invalid targets appear dimmed
- Valid targets highlight
After Connection:
- Line color persists
- Warning icon (β οΈ) appears for Orange/Red
- Hover for detailed tooltip
π Compatibility Matrixβ
Connection color is determined by Source Type, Target Type, and Pass Argument setting.
Full Compatibility Tableβ
| Source Event | Target Event | Pass Argument | Result | Explanation |
|---|---|---|---|---|
| Any | Any | OFF | π’ Green | Override: Target ignores all input |
Void () | Void () | ON | π’ Green | Perfect match - no data needed |
Void () | <T> | ON | π΄ Red | Error: Target needs data, source has none |
Void () | <S,T> | ON | π΄ Red | Error: Target needs sender, source has none |
<T> | Void () | ON | π‘ Yellow | Safe: Argument discarded |
<T> | <T> | ON | π’ Green | Perfect match - same type |
<T> | <S,T> | ON | π΄ Red | Error: Target needs sender, source has none |
<S,T> | Void () | ON | π‘ Yellow | Safe: Both sender & arg discarded |
<S,T> | <T> | ON | π‘ Yellow | Safe: Sender discarded, arg passes |
<S,T> | <S,T> | ON | π’ Green | Perfect match - sender + arg |
<T1> | <T2> | ON | π Orange | Warning: Type conversion (int β float) |
Special Casesβ
Pass Argument = OFF:
Always results in π’ Green connection because target ignores all input data.
Use Case: Chain a typed event to a void event without type errors.
Numeric Conversions:
Auto-converts between compatible numeric types (π Orange):
intβfloatfloatβdoubleintβlong
Warning: May lose precision (e.g., float 3.14 β int 3).
Incompatible Types:
Blocked at connection time (π΄ Red):
stringβintGameObjectβfloat- Custom type mismatches
System prevents creation of these connections.
π·οΈ Status Badgesβ
Badges appear at the bottom of nodes to show active configuration.

Badge Referenceβ
| Icon | Badge | Meaning | Applies To |
|---|---|---|---|
| π§© | Cond | Visual condition tree active | All nodes |
| β±οΈ | 2.5s | Start delay (seconds) | All nodes |
| β³ | 3.0s | Blocking duration (seconds) | Chain only |
| β | Wait | Wait for async completion | Chain only |
| β¬οΈ | +5 | Execution priority | Trigger only |
| π | Pass | Passing arguments to next node | All nodes |
| π | Static | Arguments blocked (static call) | All nodes |
Badge Examplesβ
Chain Node with Delay + Duration:
β±οΈ 1.0s β Wait 1 second before starting
β³ 3.0s β Then block for 3 seconds
Trigger Node with Condition + Priority:
π§© Cond β Only fires if condition passes
β¬οΈ +10 β Executes before other triggers
Any Node with Argument Passing:
π Pass β Forwards event data to next node
π¨ Visual Examplesβ
Example 1: Perfect Match Chainβ

Colors:
- Line 1: π’ Green (perfect match)
- Line 2: π‘ Yellow (sender discarded safely)
Example 2: Type Conversion Warningβ

Color: π Orange (int β float conversion)
Risk: Precision change, but works
Example 3: Pass Argumentβ

Colors: π’ Green (void β int)
No-Blocking: ignore argument to match
Example 4: Parallel Trigger Fan-Outβ

All connections: Green (void β void), executing immediately in parallel
π‘ Best Practicesβ
Use Pass Argument Wiselyβ
When to Pass (ON):
- Next node needs the event data
- Building data pipelines
- Forwarding damage info, scores, etc.
When to Block (OFF):
- Connecting incompatible types
- Generic notifications (no data needed)
- Simplifying complex type chains
Color-Code Your Flowsβ
Green-Heavy Graphs: Well-typed.
Yellow Connections: Acceptable when intentionally discarding data.
Orange Lines: Review for correctnessβensure conversions are intentional.
Red Blocks: Fix immediatelyβwill fail at runtime.
Organize by Typeβ
Group similar signature nodes together:
- Void events in one area
- Data events in another
- Async chains separate from triggers
Why: Makes type compatibility easier to visualize.
β Common Questionsβ
Why is my connection red?β
Cause: Type mismatch that cannot be resolved.
Fix:
- Check if target needs sender but source doesn't provide it
- Disable "Pass Argument" on target node
- Insert intermediate conversion node
Can I connect different numeric types?β
Yes: The system auto-converts int, float, double, long.
Result: π Orange connection with conversion warning.
Caution: Watch for precision loss (float β int).
What does yellow mean?β
Meaning: Safe connection with data discard.
Example: Sending <int> to <void> discards the integer.
Safe?: Yesβno runtime errors, just unused data.
While working in the Flow Graph Editor, the Legend Panel (right side) shows all node types, port colors, and connection meanings. Hover over any legend item for detailed tooltips.
π΄ Red connections are blocked during creation to prevent runtime crashes. If you need to connect incompatible types, disable "Pass Argument" on the target nodeβthis forces a π’ Green connection by ignoring input data.