CueServer keeps track of the “context” of the currently executing string of CueScript commands, which allows multiple commands which operate on a single object to be split into completely separate requests.

When the user types Channel 1 At 100, the user is actually executing two separate commands. The first command, Channel 1 tells CueServer to select DMX channel 1. The second command, At 100 tells CueServer to set the currently selected objects (DMX channel 1) to 100%.

The selected objects (in this case, DMX channel 1) are part of the saved command context.

If the user then enters the command At 75, CueServer still has DMX channel 1 selected, so channel 1 will be set to 75%.

The command context stores the selected objects (channels, buttons, outputs, etc.), which playback fader is chosen, timing parameters such as fade and follow times and more.

CueServer uses separate command contexts internally to keep the user who is using the live command line in CueServer Studio operating in a different environment from other asynchronous actions that are occurring elsewhere in the system. For instance, if an external process is sending UDP messages to CueServer, these messages get their own command context so they don’t interfere with others using the system. Also, if a timer or button executes in-between when the user selected a channel and set it’s level, this process won’t be disturbed, because each of these asynchronous actions occur in their own context.