T5 furniture and poses in IMVU rooms (decorations)
CI / build (push) Successful in 44s

Community products are taken out of rooms their owners save and broadcast, kept on the hub per room,
and added back when anyone with T5DE loads the room or gets its owner's broadcast; the hub's decor
notice resends the room with the new ones. Placements are stored with the hub's product ID.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
dhkatzandClaude Opus 5.5 committed 2026-10-30 04:03:21 -07:00
1 parent d8332b21a8
commit 0be2cd8f4e
9 files changed
+685 -2

No files matched your search

+7
View File
@@ -87,6 +87,13 @@ T5DE-hosted rooms (`internal/hosted`, t5de-hub's `docs/hosted-rooms.md`): rooms
chat to and from the hub over its WebSocket), adds them to the room list, checks the room's products against its real
owner (`authorizeProducts2`), and answers any other request to IMVU naming one ("not found") rather than send it.
Decorations (`internal/products/decor.go`): community furniture and poses in IMVU rooms. They're taken out of the
room its owner saves (`test.setRoomState`) and broadcasts (`*imvu:setRoomState`, a zlib-compressed scene) so IMVU
keeps the base room, and stored on the hub for that room (`PUT /api/v1/decorations/<instance>`; placements name their
product, stored as the hub's ID). Loading the room (`test.getRoomState`, the hub asked at the same time) and the owner's
incoming broadcasts get them added back as local IDs; the hub's `decor` notice makes the proxy give the client the room
again with the new ones.
`T5DE_INSTANCE=<name>` (set by the client's `t5de-instances` patch for a second client run beside the first) keeps
the proxy's data in `%APPDATA%\T5DE-<name>\proxy` and its log in `t5de-proxy-<name>.log`.