For an interactive guide with visuals: view online
- Overview
- VDO.Ninja OBS Control Dock (Modified)
- Advanced Scene Layouts Lua Script
- Integrated Workflow
- Requirements
- Credits & Original Resources
This repository provides a suite of tools for advanced automation in OBS Studio, focusing on dynamic scene layouts and seamless integration with VDO.Ninja. It includes:
- A robust Lua script for dynamic scene management (Grid, Reaction, and Highlight layouts).
- A modified VDO.Ninja OBS Control Dock for streamlined source management and deep OBS integration.
- Multi-language support and an intuitive user interface.
This is a customized version of the OBS Control Dock by Steve Seguin (creator of VDO.Ninja). It functions as a web-based interface for managing VDO.Ninja sources in OBS Studio via the OBS WebSocket plugin.
- VDO.Ninja Room Integration: Connect to your VDO.Ninja room and manage participants.
- Dynamic Source Management: Automatically add, remove, and rename VDO.Ninja video sources in your chosen OBS scenes.
- Screen Share Integration: Dedicated features for handling and switching VDO.Ninja screen share sources in OBS.
- Highlight Source Management: Designate and control a "highlighted" VDO.Ninja source, perfect for dynamic layouts.
- Stream Mapping: Advanced rules for routing specific streams to scenes or layouts.
-
Access the Page:
- Local Option: Download
obs.htmland open it locally. - Hosted Option: Use https://morsethecode.github.io/OBS-Scripts/obs.
- Local Option: Download
-
Add as an OBS Dock:
- In OBS: Go to Docks → Custom Browser Docks....
- Choose a Dock Name (e.g., "VDO.Ninja Control").
- Enter the local file path or the hosted URL.
- Click Apply, then Close.
-
Configure the Websocket:
- Connection Adress: Enter URL (default:
ws://localhost:4455) and password. Click Connect. - Prefixes: Set Camera, Reaction, and Highlight prefixes (must match those in the Lua script).
- Click Connect.
- Connection Adress: Enter URL (default:
-
Configure the VDO.Ninja Connection:
- VDO.Ninja: Enter your room name and password (if any), then connect.
-
Configure Scenes:
- Target Scenes: Select main, highlight, and screen share scenes as needed.
- Resolution: Select resolution of new cameras e screen shares.
- Automation: Choose wether the Dock will automatically add/remove sources upon connection/disconnection.
This Lua script adds dynamic scene management and layout automation to OBS Studio. It works best with sources named and managed by the Control Dock.
- Dynamic Grid Layout: Organize multiple video sources in a customizable grid. Supports split-screen for two cameras.
- Immersive Reaction Layout: Place reaction cameras relative to a main content window. Choose side/symmetrical camera distribution and custom spacing.
- Dynamic Highlight Layout: Feature a specific source ("highlighted" participant) in the main area, with other cameras arranged around it.
- Multi-Language Support: UI in English, Portuguese, Spanish, Chinese, Russian, Japanese, and German.
- Integrated UI: All settings are available in the OBS script properties panel. Changes apply in real-time.
- Download the Script: Get
Advanced Scene Layouts.luafrom this repo. - Open OBS Studio: Start OBS.
- Add the Script:
- Go to Tools → Scripts.
- Click the "+" button and select the
.luafile.
- Configure the Script:
- Select the script in the list to show properties.
- Enable/disable layouts as needed.
- Assign target scenes for each layout.
- Set source name prefixes (must match the Control Dock).
- Adjust spacing, margins, and offsets using sliders.
When used together, the Control Dock and Lua script create a highly automated streaming environment. The Dock manages VDO.Ninja connections and source naming, while the Lua script arranges scenes and applies dynamic layouts.
- The Control Dock adds new VDO.Ninja participants to OBS with a Camera Prefix (e.g.,
VDO_guest1). - Using the Highlight feature, the Dock renames a participant's source to the Highlight Prefix (e.g.,
VDO.Highlight_guest2) and transitions to the highlight scene. - The Lua script monitors source names and applies the correct layout based on prefixes.
- Consistent prefix configuration between the Dock and Lua script is essential for automation.
-
Configuration:
- Set
Camera PrefixandHighlight Prefixin both the Control Dock and Lua script. - Assign the highlight scene in both tools.
- Set
-
In Action:
- Guests join your VDO.Ninja room and are added to OBS as, e.g.,
VDO_guest1,VDO_guest2. - Click "Highlight" on a guest in the Control Dock. The source is renamed to
VDO.Highlight_guest2and the scene transitions. - The Lua script detects the prefix and applies the highlight layout.
- "Unhighlight" reverses the process and returns to grid layout.
- Guests join your VDO.Ninja room and are added to OBS as, e.g.,
- OBS Studio (version 27.0 or higher recommended)
- OBS WebSocket plugin (for Control Dock)
- Lua scripting support (included with OBS Studio)
- VDO.Ninja for browser-based guest video
- Control Dock based on work by Steve Seguin (original OBS Controller).
- OBS Studio
- VDO.Ninja
- Interactive Guide
Feel free to explore, use, and adapt these tools to automate and optimize your OBS Studio + VDO.Ninja workflow!