DataLayers and world state
DataLayers distinguish event, season and user-content layouts on the same ground. Entities and groups contain DataLayerFilters. In the measured campus cell, distinct event layouts explain overlapping ramps and bowls; grids do not separate those states. Observed
DataLayer (0x41813744) has a two-byte body in the checked DataPC population, without member lists. Layer-owned GridCellDataBlocks instead carry a layer ClassID as their final key. Observed
Little-endian. Offsets are relative to this structure.
| Offset | Size | Type | Field | Confidence | Notes |
|---|---|---|---|---|---|
| 0x0 | 8 | u64 = 0 | id | Observed | |
| 0x8 | 4 | u32 = 0xE31593E1 | type | Observed | |
| 0xC | 1 | u8 = 00 | tag | Observed | |
| 0xD | 8 | u64 | DataLayer | Observed | a DataLayer 0x41813744's ClassID |
| 0x15 | 4 | u32 | action | Observed | 0 or 1 |
| Action | Interpretation | Confidence |
|---|---|---|
| 0 | Entity present while layer enabled | Inferred |
| 1 | Entity present while layer disabled | Inferred |
That polarity fits 360 zero actions and 47 one actions among 556 placeable campus-cell Entities: event structures use zero, replaced ordinary furniture uses one. This is content evidence rather than execution of the layer manager. Observed
Both checked USNAT WorldDataLayerManagers contain one entry linking Looping_Assets and its GridCellDataBlock, not an event/season active-layer set. Their 35-byte bodies contain no event layer or group references. Observed
DataLayer bodies are 01 01 on 1,047 base and 475 patch layers, and 01 00 on 23 base and three patch layers. Interpreting the second byte as runtime-switchable versus always-loaded fits these contents but remains inferred. Observed Inferred
DataLayerGroup has 01 + u32 count + ten-byte references + 00; all 53 checked groups fit. Groups organize career, live-user-content and day-one layer sets. Observed
Little-endian. Offsets are relative to this structure.
| Offset | Size | Type | Field | Confidence | Notes |
|---|---|---|---|---|---|
| 0x0 | 1 | u8 = 00 | tag | Observed | |
| 0x1 | 8 | u64 | id | Observed | |
| 0x9 | 4 | u32 = 0x7313743E | type | Observed | |
| 0xD | 4 | u32 | PropertyCount | Observed | GameStateData.PropertyCount (registry u32): 9 273,240, 8 94,437, 7 88,147, 10 10,261, 13 9,777, 3 9,038 |
| 0x11 | 4 | u32 | DescBuffer length L1 | Observed | GameStateData.DescBuffer is an array of bytes: its length. L1 = 130 273,240, 116 94,437, 102 88,147, 144 10,261 |
| 0x15 | L1 | bytes | DescBuffer | Unknown | Opaque descriptor bytes; checked length fits 4 + 14 × PropertyCount. |
| 21+L1 | 4 | u32 | DataBuffer length L2 | Observed | GameStateData.DataBuffer is an array of bytes: its length, 169 273,215, 168 94,437, 167 88,105, 170 10,237 |
| 25+L1 | L2 | bytes | DataBuffer | Unknown | Opaque property-value bytes. |
ResetData is null or inline GameStateData. Registry names identify PropertyCount, DescBuffer and DataBuffer; 490,803 measured Entity tails end exactly at these buffers. Descriptor length fits 4 + 14 × PropertyCount in checked profiles; internal descriptor semantics remain unresolved. Observed
The manager does not supply a general active-event set. Event-name prefixes cannot define the default world, and AND versus OR combination of multiple Entity actions is not established. Unknown