Name & Ordinals - Sockets 101

How sockets and name-ordinal indexing works for quest and scene nodes

Imagine nodes are like LEGO blocks with connection points:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Block A   │────▢│   Block B   β”‚
β”‚             β”‚     β”‚             β”‚
β”‚ OUT socket  β”‚     β”‚ IN socket   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • OUT sockets = Where signals LEAVE a block

  • IN sockets = Where signals ENTER a block

  • Name & Ordinal in a nutshell is the "address" that tells signals which socket to use

🎬 Enter: Cut

When you're watching a movie and suddenly:

  • The phone rings and interrupts the conversation

  • Explosions start and everyone stops talking

  • An emergency happens and the scene changes immediately

That's a "Cut" - something that interrupts the normal story flow

In Cyberpunk:

Normal Story Flow:
V talks to Jackie ───▢ Jackie responds ───▢ Conversation continues

With a Cut:
V talks to Jackie ───▢ πŸ’₯ COMBAT STARTS! ───▢ Conversation STOPS
                      ↑
                   Cut signal

πŸ”„ Two Types of Connections:

  1. Normal connections = "Continue the story naturally"

  2. Cut connections = "INTERRUPT! Something urgent happened!"

Every node in a scene or quest can:

  • Send normal signals = "Here's the next part of the quest or scene"

  • Send cut signals = "STOP! Emergency!"

  • Receive normal signals = "Ok, continuing the story..."

  • Receive cut signals = "Oh no! I'm being interrupted!"


πŸ“¬ Now, How Do We Address These Messages?

Every message between story blocks needs an address label with two numbers:

πŸ“ The Address System:

  • Name = "What KIND of message?" (Normal=0, Cut=1, etc.)

  • Ordinal = "Which version/slot?" (Usually 0)

πŸ€” But Here's the Tricky Part:

Quest nodes and Scene nodes use different rules for these addresses. They speak different languages:

Quest Node Logic: "I organize by message type first"

  • Normal message #1: Name:0, Ordinal:0

  • Normal message #2: Name:0, Ordinal:1 ← Same Name, different Ordinal

  • Emergency message or a cut: Name:1, Ordinal:0

Scene Node Logic: "I organize by giving each path a unique ID"

  • Normal message: Name:0, Ordinal:0

  • Emergency message or a cut : Name:1, Ordinal:0 ← Different Name, same Ordinal

  • Story path 1: Name:2, Ordinal:0

  • Story path 2: Name:3, Ordinal:0

Think of it like this:

  • Quest nodes count: "Type 0: slot 1, slot 2, slot 3..."

  • Scene nodes count: "Path 0, Path 1, Path 2, Path 3..."

That's it! The rest is just knowing which system each block type uses! 🎯


The Complete Socket Reference Table

Node Type
Connection Type
Name
Ordinal
Socket Index
Socket Name

Quest

Cut Destination

0

0

0

"CutDestination"

Quest

Normal Input

0

1

1

"In"

Scene

Normal Input

0

0

0

"In"

Scene

Cut Input

1

0

1

"Cut"

Output Sockets (Both Types):

Node Type
Output Type
Name
Ordinal
Socket Index

Both

Normal Out

0

0

0

Both

Cut Out

1

0

1


🎨 ASCII Visual Guide

Quest Node Layout:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚        Quest Node           β”‚
β”‚                             β”‚
β”‚ INPUT:                      β”‚
β”‚  ● [0] CutDestination       β”‚ ← N:0, O:0
β”‚  ● [1] In                   β”‚ ← N:0, O:1
β”‚                             β”‚
β”‚ OUTPUT:                     β”‚
β”‚  ● [0] Out (Normal)         β”‚ ← N:0, O:0
β”‚  ● [1] Out (Cut)            β”‚ ← N:1, O:0
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Scene Node Layout:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚        Scene Node           β”‚
β”‚                             β”‚
β”‚ INPUT:                      β”‚
β”‚  ● [0] In                   β”‚ ← N:0, O:0
β”‚  ● [1] Cut                  β”‚ ← N:1, O:0
β”‚                             β”‚
β”‚ OUTPUT:                     β”‚
β”‚  ● [0] Out (Normal)         β”‚ ← N:0, O:0
β”‚  ● [1] Out (Cut)            β”‚ ← N:1, O:0
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ”— Connection Flow Examples

Normal Story Flow:

Quest Node ────────────────▢ Scene Node
N:0, O:1 (Out)              N:0, O:0 (In)
"Normal flow"               "Normal input"

Cut/Interrupt Flow:

Scene Node ────────────────▢ Scene Node
N:1, O:0 (Cut Out)          N:1, O:0 (Cut In)
"Interrupt signal"          "Interrupt input"

Mixed Example:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    Normal    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    Cut      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Quest Node  │─────────────▢│ Choice Node │────────────▢│ Section     β”‚
β”‚             β”‚  N:0, O:1    β”‚             β”‚  N:1, O:0   β”‚             β”‚
β”‚ ● Out       β”‚              β”‚ ● In        β”‚             β”‚ ● Cut       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚ ● Cut       β”‚             β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“‹ Quick Reference for Modders

When Creating Connections:

TO Quest Nodes:

  • Normal flow: Name: 0, Ordinal: 1

  • Cut flow: Name: 0, Ordinal: 0

TO Scene Nodes:

  • Normal flow: Name: 0, Ordinal: 0

  • Cut flow: Name: 1, Ordinal: 0

FROM Any Node (Outputs):

  • Normal output: Name: 0, Ordinal: 0

  • Cut output: Name: 1, Ordinal: 0


⚠ Common Mistakes to Avoid

DON'T Mix Systems:

❌ BAD: Scene node with N:0, O:1 (Quest pattern on Scene node)
βœ… GOOD: Scene node with N:1, O:0 (Proper Scene pattern)

Remember the Rule:

  • Quest nodes: Ordinal determines socket

  • Scene nodes: Name determines socket type

Last updated