@artch said in Expose respawn/novice property on Game.map and/or Room: @tigga Terrain data is statically cached in all nodes and is fetched only once on launch. Novice/Respawn status is stored in MongoDB where all rooms info is located, this kind of query is way more expensive. Right, but as a user I'd just do the following: if (!global._roomInRespawnNoviceArea || resetRespawnNoviceCache) { global._roomInRespawnNoviceArea = {} for (all ~4000 rooms) global._roomInRespawnNoviceArea[roomName] = isRespawnNoviceArea(roomName) } Where resetRespawnNoviceCache is set on the tick any walls go down or up. There's probably a good reason you can't do this - I'm not at all familiar with the backend and you obviously are! My point is that this array shouldn't come to more than 4kb per user, and populating it once per reset seems fairly cheap. EDIT: I've used an object for simplicity. Pushing this into UInt8Array would be 4kb, packing it into a bitmask could get it down to 500b.