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

Resource map

Use this page to answer two questions before editing a graph:

  1. Which resource owns the missing definition or behavior?
  2. Which registration or native reference makes that owner reachable?

The Lab 1–5 resources are Structurally validated with WolvenKit 8.19.0. Rows marked Observed in vanilla describe game resources to inspect yourself.

Project and installation layers

Project path or artifactOwnsInstalled or consumed byDo not confuse it with
source\archive\Complete CR2W resources and archived non-CR2W payloads at their intended depot pathsWolvenKit packing/deployment produces a game .archiveLoose ArchiveXL configuration
source\resources\Loose framework configuration such as <project>.archive.xlDeployed beside the archive to the framework’s expected game pathA CR2W resource inside the archive
source\raw\WolvenKit CR2W-JSON review artifacts for mod-owned resourcesDocumentation review, round trips, diagrams, and semantic comparisonRuntime payloads or the beginner authoring format
*.cpmodprojWolvenKit project metadata and source-root configurationWolvenKitA depot resource or registration file
*.archivePacked runtime payload containerCyberpunk 2077’s resource loaderProof that ArchiveXL saw a loose registration file
*.archive.xlArchiveXL merge and registration instructionsArchiveXLThe packed archive or a native soft reference
Lab ZIPDownloadable checkpoint assembled from the projectReader extractionAn installed mod; start and completed alternatives must not coexist

The same depot path can appear as a file below source\archive, a ResourcePath inside another CR2W, a registration value, and a runtime log entry. A path below source\raw normally has an extra conversion suffix and must not be registered.

Native control, journal, and scene resources

ResourceRoot or decisive native typeOwnsBecomes reachable throughCoverage
*.questphasequestQuestPhaseResourceQuest graph, phase interface, condition scheduling, fact/journal operations, scene and child handoff, prefab declarationsA root uses ArchiveXL quest.phases; an external child uses the parent’s soft phaseResource1–5
*.journalgameJournalResourceThe contributed journal-entry tree: quests, phases, objectives, map pins, messages, files, and related entriesArchiveXL journal merge1–5
*.scenescnSceneResourceActors, screenplay items, choices, timed events, ordinary or rewindable graph flow, entry/exit names, interruption policy, and animation referencesA questSceneNodeDefinition.sceneFile soft reference; it is not a quest-root registrationLab 5 plus advanced scenes
*.sceneridscnRidResourceRecorded actor/camera tags, channel serials, animation buffers, and RID-local allocationA scene scnRidResourceHandler, then scene-local RID reference arrays and timed eventsAdvanced braindance; structurally validated candidate, runtime Experimental

Important ownership boundaries:

  • A questphase journal node changes state at a typed path; it does not define the target entry.
  • A root registration does not register external children or scenes as independent quest roots.
  • A .scene owns its named contact_done exit; the calling questphase owns the same-named output socket and the continuation after it.
  • Termination ends a graph route. It does not automatically clean a marker, community, scene, journal entry, or fact.

See Questphase resource anatomy, Journal trees and typed paths, and Scene resource anatomy.

Localization and audio resources

Several different CR2W resource types use the depot suffix .json. Inspect the root type and registration branch instead of treating the suffix as an ownership contract.

Player-facing contentResource typeOwns the decisive lookupRegistration or reference
Journal and onscreen UIJsonResource containing localizationPersistenceOnScreenEntriesText entries keyed by textual secondaryKeyArchiveXL localization.onscreens.<locale>
Spoken subtitles: mapJsonResource containing localizationPersistenceSubtitleMapMap entries whose subtitleFile points to subtitle-entry resourcesArchiveXL localization.subtitles.<locale>
Spoken subtitles: entriesJsonResource containing localizationPersistenceSubtitleEntriesSubtitle text keyed by unsigned stringIdReached through the registered subtitle map; not registered in its place
Spoken voice: mapJsonResource containing locVoiceoverMaplocVoLineEntry rows joining the same stringId to female/male audio pathsArchiveXL localization.vomaps.<locale>
Spoken voice: audio*.wemCooked audio bytesArchived at the femaleResPath / maleResPath named by the VO map
Scene choice textEmbedded scnlocLocStoreEmbedded inside *.sceneDescriptor/payload tables joined from screenplay choice RUIDsNo ArchiveXL localization branch; the scene owns it

The subtitle map and VO map are registration roots. The subtitle-entry file and WEM are referenced leaves. Registering a leaf where a map is expected does not complete the lookup.

For the complete joins and locale spelling differences, use Localization paths. Lab 5’s externally localized one-line route is explained in Author one spoken line.

World and streaming resources

ResourceRoot or decisive native typeOwnsBecomes reachable throughEvidence boundary
*.streamingblockworldStreamingBlockSector descriptors, sector paths, streaming boxes, categories, levels, and quest-prefab rootsArchiveXL streaming.blocksLab 3–5 shapes are Structurally validated
*.streamingsectorworldStreamingSectorConcrete world nodes, placement/cooked metadata, registered NodeRefs, and references to inplace contentworldStreamingSectorDescriptor.data in a registered blockLab 3–5 compact shapes are Structurally validated
*.streamingsector_inplaceworldStreamingSectorInplaceContentAn inplaceResources[] collection with corresponding embedded CR2W bodies represented separately in the serialized containerA sector’s local or external inplace-resource relationshipObserved in vanilla here; not supplied by Labs 1–5
Base *.streamingworldworldStreamingWorldReferences compiled blocks and broader global world resourcesGame-owned world rootObserved in vanilla; inspect, do not replace or redistribute

The compact placed-node chain used by the labs is:

registered streaming block
  -> descriptor.data
  -> streaming sector
  -> concrete nodes[] object
  +  nodeData placement and QuestPrefabRefHash
  +  nodeRefs[] identity registration

The three sector collections are related but not universally parallel. nodeData.NodeIndex is the explicit association in the compact mod-owned shape; array position is not a schema rule. See Sector nodes and placement.

Community and character resources

Lab 5 embeds its community template data in a world registry node rather than shipping a standalone .community resource.

OwnerNative type or resourceResponsibilityDiscovery path
Registry nodeworldCommunityRegistryNode in an AlwaysLoaded sectorCommunity template, initial entry state, persistent AI-spot data, and the registry side of the community identity joinConcrete sector node plus placement/identity records
Compiled areaworldCompiledCommunityAreaNode_Streamable in a Quest sectorStreamed source placement and entry/phase/time-period mirror to AI-spot IDsConcrete sector node plus placement/identity records
Community entrycommunitySpawnEntry inside communityCommunityTemplateDataEntry CName, character TweakDB record, quantity, and spawn phasesEmbedded in the Lab 5 registry item
Spawn phasecommunitySpawnPhase and communityPhaseTimePeriodPhase, appearance, period, sequencing, and spot referencesEmbedded beneath the community entry
AI spotworldAISpotNode containing AIActionSpotPlaced activity and soft workspot resource pathQuest sector placement and NodeRef registration
Standalone community*.community rooted at communityCommunityTemplateReusable community template data in the cited vanilla examplesObserved in vanilla comparison source; not a Lab 5 dependency
Character recordTweakDBID such as Character.jpn_tyger_claws_biker2_ranged2_copperhead_waGameplay record that leads onward to a character/template dependency chainTweakDB; it is not a depot path
Entity template*.ent, commonly rooted at entEntityTemplateTemplate-specific components, slots, appearances, interactions, and other entity compositionReferenced from records or world entity nodes; advanced authoring is bounded by the compatible mod-owned-shell requirement
Appearance resource*.app rooted at appearanceAppearanceResourceInternal appearance definitions and their component graphsAn entity template’s exposed appearance mapping; advanced custom behavior remains Experimental
Workspot*.workspotReferenced activity/animation behaviorworldAISpotNode.spot.resource; the AI spot still owns placement

The exact Lab 5 join is developed in Registries and compiled areas and Entries, phases, and AI spots. The advanced chain and its legal-shell boundary are in Character records, entities, and appearances, while AI roles, behavior, and workspots separates actor, role, route, and activity ownership. Never add an extracted vanilla CR2W to a downloadable project.

Referenced world and device surfaces

These owners form the advanced device research model. Their linked procedure is complete as an Experimental authoring and acceptance boundary, not as a generic Runtime-proven custom-device recipe:

SurfaceOwnerBoundary
Placed entity or deviceworldEntityNode or worldDeviceNodeRefers to an entity template and may carry node-local instanceData
Node-local controller/component stateentEntityInstanceData leading to a RedPackageDifferent from sector inplace content
Global device tables*.devices and *.psrepContext-dependent; absence from one focused vanilla flow is not a universal no-registration rule
Persistent device identitySave plus world identity/NodeRefA materially changed device may require both a clean save and deliberate identity policy

See Devices and persistence and Advanced devices and interactions before using any of these surfaces. The current Labs 1–5 do not supply a custom device.

Registration versus native reference

This is the quickest lookup for “which file do I put in ArchiveXL?”

TargetArchiveXL registration?Native reference that reaches non-root dependencies
Registered root questphaseYes: quest.phasesParent is base\quest\cyberpunk2077.quest
External child questphaseNo independent root entryParent questPhaseNodeDefinition.phaseResource
Journal contributionYes: journalQuest nodes then use typed gameJournalPath values
Onscreen localizationYes: localization.onscreens.<locale>Journal/UI LocalizationString.value joins to secondaryKey
Subtitle mapYes: localization.subtitles.<locale>Map entry subtitleFile reaches subtitle entries
Subtitle entriesNo direct registration in this routeRegistered subtitle map
VO mapYes: localization.vomaps.<locale>Its line entries reach WEM resource paths
WEMNo direct registrationVO-map femaleResPath / maleResPath
Streaming blockYes: streaming.blocksIts descriptors reach sectors
Streaming sectorNo separate block registrationDescriptor data resource reference
SceneNo quest-root registrationquestSceneNodeDefinition.sceneFile
Scene RID or animation-set leafNo independent quest-root registrationScene RID handlers and resouresReferences arrays
Mod-owned character recordNot through ArchiveXL; use the locally pinned TweakXL 1.11.3 routeRecord entityTemplatePath reaches the archived .ent
Mod-owned entity/appearance resourceArchived at a unique depot path; no root mergeCharacter record reaches .ent; entity appearance mapping reaches .app
Vanilla workspot or animation setNo new registration in the taught routeAI spot or scene resource-reference path

Custom visual effects

Resource or recordOwnsReached through
TweakDB status recordDuration and VFX/SFX requestsItem, quickhack, or other gameplay action
StatusEffectFX recordRequested effect CNameStatus record’s VFX array
entEffectSpawnerComponent / entEffectDescEffect-name lookup, timeline path, event placementsComponent on the target entity; add with an ArchiveXL resource.patch when needed
.effect / worldEffectParticle/sound tracks, loop range, outroDescriptor’s effect reference
.particle / CParticleSystemEmitters, drawer, authored and compiled simulationeffectTrackItemParticles.particleSystem
Local CMaterialInstanceTexture references, tint, opacity, blendingEmitter’s localMaterialInstance
.xbm texturesColor and mask pixelsMaterial’s Diffuse and AlphaMask references

The VFX record name, effect CName, component name, and effect depot path are different identifiers. Follow Custom effects to connect them and test the screen and NPC variants separately.

Save-state overlay

Resource ownership and saved runtime state overlap but are not the same layer:

Definition in installed resourcesState that can remain in the save
Fact names and graph writers/readersCurrent fact integer values
Journal entries and typed pathsActive, inactive, succeeded, failed, visited, and tracking state
Questphase nodes and edgesActive phase work and checkpoints
Scene graph, actors, and exitsActive or completed scene state
Community registry, area, and spotsActivation and actor lifecycle state
Device template and instance dataPersistent controller/device state associated with identity

Repacking a definition cannot be used as evidence that the corresponding saved state was reset. Route stale or contradictory retests through Facts, journals, and saves before changing more resource fields.