Questphases
A questphase is an executable quest graph stored as a
questQuestPhaseResource. It coordinates progression; it does not replace the
resources that own journal content, localized text, scenes, communities, or
world objects.
This section turns the root-and-child model into exact native resource contracts:
- Resource anatomy identifies the CR2W root, graph, nodes, sockets, external references, and dependency lists.
- Registering a root separates ArchiveXL root attachment from normal depot-resource resolution.
- Inputs and outputs separates a phase interface from the sockets used inside its graph.
- Calling child phases documents
questPhaseNodeDefinitionand the parent/child handoff. - Prefab dependencies explains root-owned prefab
scope,
phasePrefabs, andphaseInstancePrefabswithout inventing a universal inheritance rule. - Completion and interruption reviews terminating outputs, parent continuation, re-entry, and cut obligations.
- Complex cleanup, interruption, and cancellation expands those obligations into an owner ledger for scenes, communities, AI, devices, markers, vehicles, monitors, and durable state.
- Lab 4: Handoff Point moves Lab 3’s world activity into an external child and makes the boundary inspectable.
The practical pages target the exact
pinned version set: Cyberpunk 2077
2.31a for Windows (GOG; public patch 2.31), WolvenKit 8.19.0, ArchiveXL
1.27.0, RED4ext 1.30.0, and redscript 0.5.31.
What belongs in a questphase?
A questphase owns execution order and orchestration. Its nodes can change a fact, update a journal entry, wait for a condition, invoke a child phase, or coordinate another native resource.
The referenced resource remains authoritative:
| Concern | Authoritative owner | Questphase role |
|---|---|---|
| Quest and objective hierarchy | Journal resource | Change entry state through a typed journal path |
| Player-facing text | Localization resource | Trigger the state that presents it |
| Dialogue and cinematic timing | Scene resource | Launch the scene and receive an outcome |
| Community, trigger, or marker | World resource | Refer to it through a NodeRef and manage its lifecycle |
| Durable progression | Save-backed fact or journal state | Read or write it at deliberate boundaries |
That distinction is visible in Lab 1: the phase contains no title text and no location. Lab 4 adds an external child, but that child still does not contain trigger geometry or journal strings. It refers to the world and journal resources that own them.
The composition boundary
Lab 4 uses one registered root and one externally resolved child:
ArchiveXL quest.phases
-> cqa004.questphase registered root
phasePrefabs: [#cqa004_pr_handoff]
questPhaseNodeDefinition
phaseResource (Soft)
-> cqa004_boundary.questphase archived child, not registered
phasePrefabs: []
In1 ... Out1
Out1 from child -> parent continuation
Registration answers how the root becomes reachable. phaseResource answers
which child the parent loads. The archive must contain both files at their
exact depot paths, but only the root appears under ArchiveXL quest.phases.