VSK VIRTUAL STUDIO KIT

Using custom nodes Field-tested

VSK’s Blueprint node family is the show-designer API - named, typed operator pins for your show logic. Any Blueprint can read operator controls, and any operator surface (panel, web board, Stream Deck) can drive Blueprint logic, with no wiring beyond a shared channel name.

Channel types

Nine typed channel kinds, self-registering on first use: Trigger · Logical · Scalar · Integer · Vector · Color · Text · Transformation · Video. Each materializes automatically as a typed widget in the VSK Control panel (buttons, lit toggles, spinboxes, colored XYZ fields, a color picker, text fields) with UE-convention copy/paste - right-click a channel name copies the whole value in Details-panel format.

Readers - category Virtual Studio Kit | Control Bus

NodeReturns
Get VSK Logical / Scalar / Integerbool · float · int for the named channel
Get VSK Vector / Color / TextFVector · FLinearColor · FString
Get VSK TransformationFTransform
Get VSK VideoThe channel’s texture (route with Bus:Name)

Readers are pure - poll them from Tick or wherever the value is consumed.

Writers

Fire VSK Trigger and Set VSK <Type> push values the other way - show logic can light indicators or expose state to the operator surfaces.

Event-style - no Tick polling

Listen for VSK Trigger (async node - fires its exec pin each time the named trigger fires; leave the name empty to hear every trigger) and the VS Trigger Listener component (bind an event in any actor). Prefer these over Tick-polling triggers.

Scenes nodes - category VSK | Scenes

Num Scenes · Get Scene Name · Add Scene · Store Scene · Recall Scene · Remove Scene. Indices are 0-based; the Scene.N bus triggers are 1-based.

Reserved bus names

The built-in surfaces publish on well-known names - fire or listen to them from Blueprints, web boards, Stream Deck or HTTP alike:

NameKindMeaning
Cam.N · Preset.N · Scene.NTriggerCut camera · recall preset · recall scene
Play / Pause / StopTriggerTransport
ArmA / ArmB / OffTriggerCamera state
Rec.Start / Rec.StopTriggerRecording
Output.Start / Output.Stop / GoLiveTriggerProgram output / one-press live
<Screen>.Cut.N / <Screen>.OffTriggerVideo Hub cut banks per screen
Master.Speed · Cam.SpeedScalarSpeed multipliers
Audio.<Strip>.Volume/GainDb/DelayMs/Mute/Solo/MuteToggleScalar/Logical/TriggerMixer strips (Audio.Master.*, Audio.Monitor.* too)
Audio.<Strip>.LevelScalar (publish-only)Live meter level

Worked example - an operator-driven lower third

  1. In the lower-third widget Blueprint: Get VSK Text "L3.Name" and Get VSK Text "L3.Role" feed the text blocks; Get VSK Logical "L3.Show" drives visibility (or animate on a Listen for VSK Trigger "L3.Take").
  2. Play once - the channels self-register and appear in VSK Control as two text fields and a toggle.
  3. Add a Custom controls module to a web board: the journalist’s name is now editable from a phone, and L3.Take is a Stream Deck button away.
Also "custom nodes" - the keyer and grounding materials (VS_M_ChromaKey, AO, shadow, the masked reflection twin) are each implemented as a single Custom HLSL node, so there's exactly one place to edit shader logic per effect. See Keyer.