# 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`: ```json { "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.