The whole world: .streamingsector
Documentation on .streamingsector files
StreamingSectors are the files that define the world in Cyberpunk, they tell the engine what goes where, and define everything from the meshes you see and how you can interact with them, to the locations of lights, sounds and fx. They call up the NPCs, they define the minimap.
The fundamental bits of the structure are 2 main lists, the nodes, and the nodeData. The nodes define the assets that make up the sector, and the nodeData tells the engine where to put them. Theres a nodeRef list as well, which seem to be the link that quests use to tie in to triggers etc via the .scene files. Theres also some bits that define variants, that seem to be how sectors change after missions, not worked those out yet.
Theory
Streaming Sectors contain the world's data, holding a node tree that includes all its models and entities.
LOD data and grid sizes
The world is broken up into a grid, with several sizes of squares available (bit like graph paper with major and minor grid lines). The size of the grid in use is dependent on the Level of Detail (LOD) of the sector file your looking at, which is the last digit of the filename.
Chunk sizes are as below.
0
32
64
1
64
128
2
128
256?
For every location, there can be multiple overlapping levels of LOD sectors with progressively more detail as you go down the levels.
For instance, Lizzies bar is located at approximately -1200, 1562, 22:

Filenames are structured as sectortype_X_Y_Z.streamingsector
. If you preview a sector in wkit, the axes are shown as Z=-Y and Y=Z.
Calculating the files
I've left the detail of the process below for record, but if you just want a list of sectors I've created a python script to find the ones that a set of co-ordinates are in. You can find it HERE. Simply enter the co-ordinates in the player_loc dict in block 3 then run all blocks. You'll be given 2 lists containing of all the interior and exterior sectors which contain the co-ords within their bounding boxes. The list also shows the distance from the centre of the sectors to the co-ords given.
From those co-ordinates we can calculate the sector files for interior/exterior sectors by dividing by the grid size for the LOD and rounding. (ie 1200/32=38 etc)
0
-38_49_0
-19_24_0
1
-19_24_0
-9_12_0
2
-9_12_0
-5_6_0
At the level 0 files the whole building isn't covered by 1 sector, so you end up needing 4, conversely the exterior level 2 is several city blocks.
Some locations are partially defined in quest sectors, where parts of the location are locked away behind story triggers (for example half of V's apartment, as a lot of decoration will only be shown after completing quests). The exact process isn't fully understood as of May 2023.
Node Types
List below is the node types I've found so far while building the blender sector import script.
MinimapDataNode
worldAISpotNode
worldAcousticSectorNode
worldAmbientAreaNode
worldBendedMeshNode
worldBuildingProxyMeshNode
Proxy mesh for building at further distance. Textures are normally embedded so cant export automatically currently.
worldCableMeshNode
worldCollisionNode
partial support, defines 3 types of collision, box, capsule and mesh. Can import the first 2.
worldCompiledCommunityAreaNode_Streamable
worldCompiledSmartObjectsNode
worldDestructibleEntityProxyMeshNode
worldDeviceNode
worldEffectNode
worldEntityNode
Defines an object defined by an ent file (door, vending machine, fan etc)
worldEntityProxyMeshNode
worldFoliageNode
worldGINode
worldGIShapeNode
worldGISpaceNode
worldGenericProxyMeshNode
Proxy mesh for objects at distance.
worldGuardAreaNode
worldInstancedDestructibleMeshNode
as worldInstancedMeshNode but breakable
worldInstancedMeshNode
Instanced copies of a static mesh uses a worldTransformBuffer in the nodeData to define the number of copies and positions of all the copies
worldInstancedOccluderNode
worldInterestingConversationsAreaNode
worldInteriorAreaNode
worldLightChannelShapeNode
worldLightChannelVolumeNode
worldPerformanceAreaNode
worldPhysicalDestructionNode
worldPopulationSpawnerNode
worldReflectionProbeNode
worldRoadProxyMeshNode
Road Mesh.
worldRotatingMeshNode
worldStaticDecalNode
Static Decal, nodeData has x,y,z not sure how engine decides what to project to
worldStaticFogVolumeNode
worldStaticMeshNode
Static mesh, nodeData has position data
worldStaticOccluderMeshNode
worldStaticParticleNode
worldStaticSoundEmitterNode
worldTerrainCollisionNode
worldTerrainMeshNode
The ground, textures are embedded so cant export automatically currently.
worldTrafficCompiledNode
worldTriggerAreaNode
worldSmartObjectNode
worldStaticLightNode
worldInteriorMapNode
worldAdvertisementNode
worldMeshNode
Last updated