Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Node and socket index

This is a search index for the graph nodes and socket names introduced through Labs 1–5 and the supporting control-flow chapters. It is not a replacement for the node’s complete property contract.

The exact node sets in the completed lab projects are Structurally validated with WolvenKit 8.19.0. Wider arities and node families explicitly described as vanilla inventory are Observed in vanilla. Runtime scheduling, cancellation, save restoration, and re-entry remain governed by each lab’s retained evidence record. Start with Labs at a glance when choosing the smallest project that contains a node.

Read a quest node in four parts

For every quest graph node, record:

  1. the graph-local numeric id and containing .questphase;
  2. the concrete RED node type;
  3. the decisive typed payload or external reference;
  4. every connected socket name, socket type, and destination.

The node’s serialized array position and CR2W HandleId are not execution order. One output socket can contain several connections, and reciprocal references from the source and destination still describe one edge.

Quest graph boundary and state nodes

Socket sets below are the focused shapes used by the book. WolvenKit can omit unused ordinary sockets from one serialized instance, and some node types add dynamic sockets. Confirm the exact resource rather than manufacturing every name in this table.

WolvenKit label / RED typeJobDecisive property or payloadFocused socketsFirst complete use
Input / questInputNodeDefinitionExpose one phase entrysocketName, such as In1internal Out; CutDestinationLab 1
Output / questOutputNodeDefinitionExpose a phase result and optionally terminatesocketName, such as Out1; output typeinternal In; CutDestinationLab 1
Condition / questConditionNodeDefinitionEvaluate a predicate on entry and branch immediatelycondition handleIn, True, False, CutDestinationLab 1
PauseCondition / questPauseConditionNodeDefinitionHold one active route until a predicate is fulfilledcondition handleIn, Out, CutDestinationLab 1
Journal / questJournalNodeDefinitionRequest a state change for one typed journal pathtype handle, including path and presentation propertiesActive, Inactive, Succeeded, Failed inputs; Out; CutDestinationLab 1
FactsDBManager / questFactsDBManagerNodeDefinitionWrite a factquestSetVar_NodeType, including fact name, value, and exact/add policyIn, Out, CutDestinationLab 1
MappinManager / questMappinManagerNodeDefinitionRequest active/inactive state for a journal quest pinTyped pin path; disablePreviousMappinsActive, Inactive, Out, CutDestinationLab 3
Phase / questPhaseNodeDefinitionInvoke an inline or external child phaseExternal form: phaseResource, null phaseGraph, and phaseInstancePrefabsParent/child interface names such as In1, Out1; CutDestinationLab 4
SpawnManager / questSpawnManagerNodeDefinitionIssue community/spawner actionsactions[]; Lab 5 uses questCommunityTemplate_NodeTypeIn, Out, CutDestinationLab 5
Checkpoint / questCheckpointNodeDefinitionEstablish an explicit quest checkpoint in the supplied lifecycleCheckpoint flags and containing graph positionIn, Out, CutDestinationLab 5
Scene / questSceneNodeDefinitionStart an archived scene at a world marker and receive named resultssceneFile, sceneLocation, interruption fieldsNamed entry inputs and exit outputs; interruption/return outputs; CutDestinationLab 5

Input and output have two socket layers

In an external child, the parent interface and the child’s internal flow are different layers:

parent phase node In1
  -> child input socketName In1
       -> child input node Out

child work
  -> child output node In
       -> child output socketName Out1
            -> parent phase node Out1

In1 and Out1 are CName interface values in this arrangement. They are not universal requirements for every phase node. Observed in vanilla, a focused external phase node also exists with In1 but no Out1. See Inputs and outputs.

Journal and mappin state comes from the incoming socket

For questJournalNodeDefinition, the same path can receive different operations:

InputRequested journal state
ActiveActivate the target entry
InactiveInactivate it
SucceededMark it succeeded
FailedMark it failed

For the quest-pin form of questMappinManagerNodeDefinition, the focused inputs are Active and Inactive. disablePreviousMappins is transition policy; it does not replace the state socket. In either node, Out proves only that graph execution continued after the request, not that the UI was visibly redrawn.

Quest control-flow nodes

Graph-level logical nodes combine execution signals. They do not replace a questLogicalCondition tree inside Condition or Pause Condition.

RED typeStructural roleSocket/property shapeEvidence boundary
questLogicalAndNodeDefinitionJoin-shaped convergenceinputSocketCount, outputSocketCount, numbered ordinary socketsObserved in vanilla: 2–11 inputs and one output in the retained corpus; arrival memory and save restoration are not established by the type name
questLogicalXorNodeDefinitionRace-shaped convergenceinputSocketCount, outputSocketCount, numbered ordinary socketsLab 2’s exact two-input/one-output shape is Structurally validated; automatic loser cancellation is not implied
questLogicalHubNodeDefinitionGeneral structural routingCounts plus ordinary input/output socketsObserved in vanilla: split, merge, and 1→1 shapes all occur; “fan-out node” is not a complete definition
questSwitchNodeDefinitionMap conditions to case socketsconditions[], each socketId; Case<socketId> and Otherwise outputsObserved in vanilla for one retained switch; ordering and Otherwise runtime policy remain Experimental
questCutControlNodeDefinitionEmit an explicit cut toward named targetsordinary In/Out plus CutSourceCutSource→CutDestination edges are Observed in vanilla; rollback, propagation, persistence, and re-arm behavior are not inferred

Use Signal flow: joins, races, hubs, and switches for the retained counts and Parallel monitors and cancellation before wiring cuts.

Other quest node families introduced by the book

RED typeJobDecisive payloadEvidence route
questRewardManagerNodeDefinitionGrant one or more reward recordsquestGiveReward_NodeType.rewards[]The focused arrangement is covered in Rewards and completion; it is not a Labs 1–5 dependency
questPuppetAIManagerNodeDefinitionRequest a puppet AI tier or operationTarget entity reference and operation-specific fieldsLab 5 wraps one Cinematic-tier request inside scnQuestNode; see Entry, exit, and quest handoff
questMiscAICommandNodeAssign or clear a temporary scripted AI roleTyped command params, target actor, follow/path/role dataAI roles, behavior, and workspots
questUseWorkspotNodeDefinitionPut a selected actor into a world or scene-local workspot contractActor reference plus versioned workspot params/instance IDAnimation events and workspots
questInteractiveObjectManagerNodeDefinitionIssue a typed operation to an interactive object/devicequestDeviceManager_NodeType, controller/action names, target and action propertiesAdvanced devices and interactions

These manager nodes perform their own operation only. A reward node does not set a completion fact or succeed the journal, and a PuppetAI request does not finish a scene.

Socket vocabulary

Socket name or typeLocal meaningCommon mistake
In / OutOrdinary internal entry and continuationTreating Out as proof that an external system visibly completed
In1 / Out1First named phase interface or numbered logical socket, depending on node typeAssuming the text has one global meaning or that every phase exposes both
True / FalseResults of an immediate Condition nodeExpecting the False route to wait and later become True
Active, Inactive, Succeeded, FailedState-operation inputs on journal-like manager nodesLooking only at the node payload and ignoring which input the edge reaches
Case<n> / OtherwiseSwitch outputs mapped from condition itemsAssuming case evaluation order from array order
CutSourceExplicit cancellation source on a Cut ControlWiring it as ordinary success flow
CutDestinationTarget for a cut edgeAssuming an unwired destination provides automatic cleanup
Scene entry name, such as startInput on questSceneNodeDefinition matching a scene entryPointUsing the scene Start node’s numeric ID as the caller interface
Scene exit name, such as contact_doneOutput on questSceneNodeDefinition matching a scene exitPointInventing an end output because the scene contains an End node
<scenario> INT / <scenario> RETQuest-scene outputs associated with scene interruption and return policyTreating them as normal completion without a tested interruption design

The socket type remains decisive. A socket named CutDestination has the cut-destination role; it is not an ordinary input merely because another record also contains the text In.

Lab 5 scene-caller socket contract

The completed First Contact child uses this exact questSceneNodeDefinition interface:

SocketTypeConnection
CutDestinationCutDestinationUnconnected
startInputFrom the child route after community readiness and broad setup
contact_doneOutputTo the meet-success and cleanup route
Default INTOutputUnconnected
Default RETOutputUnconnected

The resource shape is Structurally validated. Active-line interruption, return, and cut behavior remain Experimental outside Lab 5’s frozen acceptance cases.

Scene graph node index

Scene nodes use scnNodeId and scene socket stamps. They do not use questSocketDefinition directly, except when scnQuestNode wraps a quest node.

Scene RED typeJobBoundary data
scnStartNodeReceive the published start entry and fan one 0/0 output to two destinationsListed in sceneGraph.startNodes; targeted by entryPoints[].nodeId
scnSectionNodeOwn actor behavior, timed line events, duration, and normal/cancel outputsNormal 0/0 reaches End; cancel 1/0 is unconnected in the fixture
scnQuestNodeWrap a scene-local quest node; First Contact wraps questPuppetAIManagerNodeDefinitionInput/output mappings connect scene stamps to the wrapped quest sockets
scnEndNodeTerminate the normal scene routeListed in sceneGraph.endNodes; targeted by the named contact_done exit
scnChoiceNodePresent scene-local screenplay options and route the selected branchOption-to-screenplay IDs, choice conditions, output ordinals, and later named exits are separate joins
scnRewindableSectionNodeOwn a seekable/rewindable timed-event collectionPlayback strategies, duration, RID/clue/camera events, and side-effect reconstruction policy

The exact scene topology is:

                         +-> Section 2 -> End 3 [contact_done]
Start 1 -- one fan-out --+
                         +-> scnQuestNode 4 / PuppetAI [fire-and-forget]

The PuppetAI branch has no output destination and does not join the line branch. The section alone reaches End. See Entry, exit, and quest handoff.

Scene socket stamps are name/ordinal pairs

The First Contact scene supplies this exact stamp table:

SourceOutput stampDestinationInput stamp
Start 1name 0, ordinal 0Section 2name 0, ordinal 0
Start 1name 0, ordinal 0PuppetAI wrapper 4name 0, ordinal 1
Section 2 normalname 0, ordinal 0End 3name 0, ordinal 0

The two Start connections are one output fan-out, not two differently stamped outputs. The wrapper’s input ordinal 1 selects its mapped internal In; its ordinal 0 is reserved for the CutDestination mapping. Treat ordinals as a node-local contract, not whole-scene execution order.

Review checklist

Before diagnosing a graph from its labels:

  1. Name the containing questphase or scene graph as well as the node ID.
  2. Confirm the concrete RED type and every non-null typed payload handle.
  3. Trace each edge by source socket and destination socket.
  4. Distinguish one socket with several connections from several sockets.
  5. Distinguish a quest socket from a scene socket stamp.
  6. Confirm every phase input/output and scene entry/exit name on both sides.
  7. Inventory parallel waits, delays, scenes, community operations, and cut targets before permitting termination.
  8. Apply the evidence label of the exact arrangement, not the reputation of the node name.