djzone
Trace: • internals

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_<name>.

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.

Previous Next

djzone

Table of Contents

Table of Contents

  • Venue Kit: Stage HUD Internals
    • Data Model
      • Keys
      • Values



Venue Kit

  • Curtain
  • Stage HUD
  • Tipjar

Builder's Buddy

  • Builder's Buddy v1

LSL

  • Examples

SLua

  • Examples

Login