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

47 lines
1.5 KiB
Markdown

# 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.