Database Data Structure
This document describes the JSON format saved to and loaded from the database.
Top-level: RoomExport
| Field |
Type |
Description |
guid |
string |
Unique room identifier |
skybox |
string | null |
Skybox asset path (currently unused) |
sky-color |
string |
Background hex color |
jsonversion |
number |
Schema version (2.0) |
items |
RoomItem[] |
All objects in the room |
RoomItem
Every item in the items array shares this base shape:
Coordinate system note: The X-axis is flipped on save (x = -creator_x) and un-flipped on load. Y-axis rotation is also negated.
ItemArg
All values are serialized as strings.
Per-type resourcename and custom args
Basic shapes
| Creator type |
resourcename |
Custom args |
Cube |
Cube |
color |
Sphere |
Sphere |
color |
Cylinder |
Cylinder |
color |
Cone |
Cone |
color |
Floor |
Plane |
color, opacity |
Wall |
Wall |
color, opacity |
Lights
| Creator type |
resourcename |
Custom args |
Directional Light |
Directional Light |
color, intensity†, target ("x,y,z") |
Point Light |
Point Light |
color, intensity† |
†intensity is the key saved in the database, but Unity reads brightness — the args will not apply at runtime until this mismatch is resolved. See individual object docs.
Room access
| Creator type |
resourcename |
Custom args |
Entrance |
Entrance |
(none) |
GoToOtherRoom |
GoToOtherRoom |
RoomName, UUID, color (❌ not yet implemented in Creator or Unity) |
Streaming / media
| Creator type |
resourcename |
Custom args |
Billboard |
Billboard |
url (Supabase storage path, signed at runtime) |
LiveKitStream |
LiveKitStream |
LiveKitRoomID, shader, GreenScreenColor, GreenScreenBorderSettings, GreenScreenColorNear, widthcrop, heightcrop |
VideoWall |
VideoWall |
file, shader, volume, controls, autoplay, widthcrop, heightcrop |
Presentation |
PresentationWall |
file, widthcrop, heightcrop, controls (❌ not in Creator) |
Camera |
CCTVCamera |
target ("x,y,z"), fov (derived: zoom * 60) |
Other / Props
| Creator type |
resourcename |
type field |
Custom args |
Text |
Text |
pre-defined |
text, color, fontSize, fontWeight |
Whiteboard |
WhiteboardWall |
pre-defined |
(none — not serialized by Creator) |
Custom |
(asset filename) |
user-defined |
file, color, material |
material values (Custom, Speaker)
| Value |
Shader |
0 |
Metallic |
1 |
Unlit |
2 |
Specular |
3 |
FakeEmission |
Common optional arg (all types)
| Arg |
Type |
Description |
grabable |
"true" | "false" |
Whether the item can be grabbed in-experience |
Example — Directional Light
Example — CCTV Camera
Example — Custom (user-uploaded GLB)