Files
2026-10-14 06:59:51 +02:00
..
2026-10-14 06:59:51 +02:00

Importing rooms

Drop a JSON file here and import it from the admin panel (POST /admin/api/import_rooms, form field file = the filename).

What the file must look like

The same shape the room API returns — a Results array of full room objects, each with its SubRooms, and each subroom with its AllSaves:

{
  "Results": [
    {
      "RoomId": 12345,
      "Name": "SomeRoom",
      "CreatorAccountId": 1,
      "SubRooms": [
        {
          "SubRoomId": 1,
          "Name": "Home",
          "AllSaves": [
            { "SubRoomDataSaveId": 1, "DataBlob": "ABC....room", "PersistenceVersion": 227 }
          ]
        }
      ]
    }
  ]
}

RoomId and SubRoomId are reassigned on import — the server allocates its own ids, so they cannot collide with rooms already here. A room whose Name already exists is skipped.

The blobs are a separate step

Importing brings in the room, its subrooms and each save's DataBlob filename — not the file. Until the matching .room file exists in Data/CDN/RoomBlobs, FilterUnservableSaves hides that save and the room loads its base Unity scene instead of the saved build. That is deliberate: a room that loads plain beats a room that will not load at all.

The import response lists every blob still missing (blobsMissing). Put those files in Data/CDN/RoomBlobs under exactly the filename in the save, and the room starts loading its build with no code change and no restart.

A zero-byte blob counts as missing.