VSK VIRTUAL STUDIO KIT

Installation Field-tested

VSK travels as one plugin folder. Copying it into a project and pressing three Studio Setup buttons rebuilds the whole studio - the procedure below is the same one used to move the plugin between real machines.

Requirements

RequirementWhy
Unreal Engine 5.8 (Windows)The plugin targets EngineVersion 5.8.0; audio capture is WASAPI/Win64.
C++ toolchain (Visual Studio)VSK has one C++ Runtime module; first open compiles it (turns a Blueprint-only project into a code project).
Blackmagic Desktop Video + DeckLink cardSDI capture/output. Field-tested on a DeckLink Quad 2 at 1080p50.
ffmpeg on PATHMP4/MOV recording and video thumbnails. winget install Gyan.FFmpeg, then restart the editor.
NDI runtime (optional)Only for NDI in/out - free from ndi.video. Without it NDI features stay quietly inert.

Install steps

  1. Copy the plugin folder into <Project>/Plugins/VirtualStudioKit/. Deleting Intermediate/ and Binaries/ first is fine - they rebuild.
  2. Open the project and accept the “missing modules - rebuild?” prompt. The module compiles in seconds.
  3. Enable the Blackmagic Media plugin (Edit ▸ Plugins) and restart when asked.
  4. Open Window ▸ VSK Project and press STUDIO SETUP ▸ Apply Project Config, then restart. This writes the required engine config (HTTP bind address, r.AllowGlobalClipPlane=True, the VSK game mode) - the first start after it recompiles shaders once.
  5. Press Create SDI Input Assets (idempotent - safe to re-press) and Create SDI Output Asset. This materializes the whole media chain under /Game/VSK/Media.
  6. Build or migrate the level: a Camera Director, one AVS_Billboard per talent, CineCameras, lights, and a Planar Reflection actor. Point each billboard’s Plate at its VS_MT_CamN texture and add a VS Media Input component.
  7. SHOW FILE ▸ Import a .vskshow to restore a complete studio - settings, scenes, boards, bindings and shelf media in one step.
Firewall (one-time) - to reach the web remote from other devices, allow the port in an admin terminal:
netsh advfirewall firewall add rule name="VSK Web Remote 8090" dir=in action=allow protocol=TCP localport=8090

What travels, what doesn’t

Everything inside the plugin folder travels: the module, all Blueprint content, keyer materials and the web remote page. Project-side state (settings, scenes, keyer values, boards…) lives in SaveGame slots and travels via show files instead. Two assets are still hand-made because they use device pickers: VS_Genlock_BM (custom time step) and VS_TC_BM (timecode provider).

Build cycle - when developing on the plugin source: close the editor, run Build.bat (≈6-9 s), reopen. The editor locks the module DLL while it runs.