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
| Node | Returns |
|---|---|
Get VSK Logical / Scalar / Integer | bool · float · int for the named channel |
Get VSK Vector / Color / Text | FVector · FLinearColor · FString |
Get VSK Transformation | FTransform |
Get VSK Video | The 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:
| Name | Kind | Meaning |
|---|---|---|
Cam.N · Preset.N · Scene.N | Trigger | Cut camera · recall preset · recall scene |
Play / Pause / Stop | Trigger | Transport |
ArmA / ArmB / Off | Trigger | Camera state |
Rec.Start / Rec.Stop | Trigger | Recording |
Output.Start / Output.Stop / GoLive | Trigger | Program output / one-press live |
<Screen>.Cut.N / <Screen>.Off | Trigger | Video Hub cut banks per screen |
Master.Speed · Cam.Speed | Scalar | Speed multipliers |
Audio.<Strip>.Volume/GainDb/DelayMs/Mute/Solo/MuteToggle | Scalar/Logical/Trigger | Mixer strips (Audio.Master.*, Audio.Monitor.* too) |
Audio.<Strip>.Level | Scalar (publish-only) | Live meter level |
Worked example - an operator-driven lower third
- In the lower-third widget Blueprint:
Get VSK Text "L3.Name"andGet VSK Text "L3.Role"feed the text blocks;Get VSK Logical "L3.Show"drives visibility (or animate on aListen for VSK Trigger "L3.Take"). - Play once - the channels self-register and appear in VSK Control as two text fields and a toggle.
- Add a Custom controls module to a web board: the journalist’s name is now editable from a phone, and
L3.Takeis a Stream Deck button away.
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.