The Stage HUD is configured by notecards that are loaded into LSL's Link Set Data storage (LSD) as a series of key/value pairs. This is a more persistent storage that is not erased when scripts are reset. It also is much larger and allowes many venue notecards to be added to a single HUD without worrying about running out of memory.
LSD is a key/value store where each chunk of data (value) is referenced by a unique but if text (key). For the Stage HUD a single key venues
keeps a list of the loaded venues, each venue then is stored in a venue-specific key venue_<name>
.
The single top-level venue key venues
stores a list of the loaded venues in its value using JSON dictionaries (dict) based on the venue name, each of those is another dict that contains up to 3 entries:
center
- The reference point for a venue's stage (generally front-center of the stage) used to detect when the HUD is within a certain distance of the venue.distance
- The distance from the center
reference to declare 'at the venue'.region
- The name of the sim region the venue is located within.
The full data for each Venue is stored under another key venue_*
where '*' is the name of the venue as used in the above venues
list. The center
, distance
and region
values from above are repeated here along with the other items in the venue notecard.
cam_*
- A dict containing a camera position/rotation.center
- The reference point for a venue's stage (generally front-center of the stage) used to detect when the HUD is within a certain distance of the venue.curtain
- A dict containing curtain commandschannel
- The channel used to communicate with the curtain. (optional)close
- The command to close the curtain.open
- The command to open the curtain.distance
- The distance from the center
reference to declare 'at the venue'.region
- The name of the sim region the venue is located within.tipjar
- A dict containing tipjar commands.channel
- The channel used to communicate with the tipjar. (optional)login
- The command to login to the tipjar.logout
- The command to logout from the tipjar.version
- A version for the venue data to detect if it has changed (usually a date, can be any text)."venues": { "Noir Neverland": { "center": "<54.80000, 37.92000, 3185.73462>", "distance":"<20, 20, 10>", "region": "Tropic Breeze" }, "Queens of Burlesque": { "center": "<201.00000, 191.00000, 3003.00000>", "region": "Beachwood" } } "venue_Noir Neverland": { "cam_1": "<103.00000, 62.00000, 3015.00000>, <0.00000, 0.00000, 180.00000>", "cam_2": "<85.00000, 62.00000, 3020.00000>, <0.00000, -44.00000, 180.00000>", "cam_3": "<57.50000, 62.00000, 3017.00000>, <0.00000, 42.00000, 0.00000>", "cam_4": "<101.00000, 67.50000, 3009.00000>, <0.00000, 0.00000, 180.00000>", "center":"<54.80000, 37.92000, 3185.73462>", "curtain": { "channel": 42, "close": "close", "open": "open" }, "distance":"<20, 20, 10>", "region":"Tropic Breeze", "tipjar": { "channel": 70, "login": "login", "logout": "logout" }, "version": "2022-12-25" }
All of the data values are formatted as JSON strings to simplify extracting specific bits of data.