= Venue Kit: Stage HUD Internals = == Data Model == 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_}}}. === Keys === 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 commands * {{{channel}}} - 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" } === Values === All of the data values are formatted as JSON strings to simplify extracting specific bits of data.