mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-25 23:18:44 -07:00
feat(cdn): Rec Royale stub blob ships the room's game-rule chip
Frontier has no baked *_GameRuleWrapperCircuit; real Rec Room delivered Rec Royale's rule chip in the room blob, and without it there is no BattleRoyaleManager and no match. A newer-client export of a custom Rec Royale room shows the saved RecRoyaleSquads chip is minimal — prefab id, palette tag (prefab name lower-cased, 25 chars), circuit node id and an EMPTY GameRuleWrapperData (field 41) — so the stub can generate it. Prefab ids read from the client's spawnable-tool table in resources.assets (SpawnableTool_Runtime_<ENUM> → 20-byte hash → two u32 → 16-byte id), the Squads id cross-checked against the real save: Solos 983db81a…, Squads 857f7500…. The stub for a room whose name contains RecRoyaleSolos / RecRoyaleSquads carries the matching chip as a fourth persistence view. Test: Rec_royale_stub_carries_its_game_rule_chip (both rooms).
This commit is contained in:
@@ -232,6 +232,12 @@ actions:
|
||||
the second reason "enable + co-owner" still showed no Maker Pen. The
|
||||
default role sets `can_use_maker_pen` to true, matching the permissive
|
||||
room-role overlay; the built-in roles mirror the reference saves.
|
||||
For the two Rec Royale rooms the stub also carries the room's
|
||||
**game-rule chip** (`RecRoyaleSolos_GameRuleWrapperCircuit` prefab id
|
||||
`983db81a…`, `RecRoyaleSquads_…` `857f7500…`, read from the client's
|
||||
spawnable-tool table; a saved Squads chip is header + prefab id + tag +
|
||||
node id + an empty wrapper payload), so the match logic exists on first
|
||||
join without anyone spawning it by hand.
|
||||
- **Reset to baked scene** — `POST api/admin/v1/rooms/{id}/subrooms/{subRoomId}/blob/reset`.
|
||||
Clears both pointers. This is the escape hatch if a save left the room
|
||||
unplayable. Saved blobs stay in `RoomDataBlobs`, so the in-game restore
|
||||
|
||||
Reference in New Issue
Block a user