Jayo's OBS Plugin for VNyan
A downloadable plugin
A VNyan Plugin that allows you to connect to OBS over the OBS Websocket API and use VNyan Parameters to control OBS through your VNyan node graphs. Change scenes, enable/disable Sources and Filters, mute and unmute Audio inputs, and more!
Table of contents
Compatibility
At the current time, this plugin in only compatible with OBS Websocket Server 5.0 and above, which means that OBS Version 28 or above is required for proper functioning of this plugin
Installation
- Grab the ZIP file for the latest release of the plugin from this store.
- Extract the contents of the ZIP file directly into your VNyan installation folder. This will add the plugin files to yor VNyan
Item\Assemblies
folder. - Open the VNyan Settings window, go to the "Misc" section, and ensure that Allow 3rd Party Mods/Plugins is enabled. This is required for this plugin (or any plugin) to function correctly, so if you've already got other plugins installed you can probably skip this step.
- Save your Node Graph and restart VNyan to allow the plugin and libraries to be loaded
- One VNyan loads, confirm that a button for the plugin now exists in your Plugins window!
Usage
Connecting to OBS
In order for the plugin to interact with your OBS, you'll need to authorize the plugin access the OBS Websocket API. You can do this by providing the password for your API and adjusting the pre-set IP address and Port if needed. This authorization is saved in the plugin's settings, so you won't need to do this every time!
If you're unsure about whether or not your OBS Websocket API is running or need to find your API password, follow these steps in OBS:
- In the top menu, go to Tools -> Websocket Server Settings
- Make sure "Enable Websocket Server" is checked off, set or generate a password if needed, and click the "Show Connect Info" button
- Take note of the Server IP, Port, and Password, and enter these in the relevant fields in the OBS Plugin Window
Once the plugin has been authorized, it'll be able to retrieve status information from OBS as well as control certain actions through VNyan Parameters and Triggers. A sample node graph is included which provides various examples!
Controlling OBS
When the plugin is connected, the plugin will set some "Status Parameters" related to some critical statuses within OBS. When certain events happen within OBS, the plugin will emit Outbound Triggers that you can respond to in your node graphs. You can call certain Inbound Triggers in your node graphs to control OBS and make things happen.
Inbound Triggers
These are the triggers that you can call in VNyan in order to control something in OBS.
Arguments are passed to each trigger through the node's text
sockets, with a common strucutre:
text1
usually refers to a target (such as a scene or source name)text2
refers to a secondary/specific target where needed (i.e. the name of specific property on a specific source)text3
contains a value that will be in the operation (i.e. the value to set for a property)
Title | Trigger Name | text1 Contents |
text2 Contents |
text3 Contents |
---|---|---|---|---|
Change Scene | _xjo_switch_scene |
The name of the Target Scene | [Unused] | [Unused] |
Fire a Hotkey | _xjo_fire_hotkey |
The name of the Target Hotkey | [Unused] | [Unused] |
Mute Audio Input | _xjo_audio_mute |
The name of the Audio Input | [Unused] | [Unused] |
Unmute Audio Input | _xjo_audio_unmute |
The name of the Audio Input | [Unused] | [Unused] |
Set Input Volume | _xjo_audio_setvolume |
Target Audio Input name | [Unused] | volume level from 0-1 |
Enable Scene Item | _xjo_item_enable |
Scene and Source name i.e. MySceneName;;MySourceName |
[Unused] | [Unused] |
Disable Scene Item | _xjo_item_disable |
Scene and Source name i.e. MySceneName;;MySourceName |
[Unused] | [Unused] |
Get Source Setting | _xjo_get_input_setting |
Target Source/Input name | Target setting name | [Unused] |
Set Source Setting | _xjo_set_input_setting |
Target Source/Input name | Target setting name | new setting value |
Enable Source Filter | _xjo_filter_enable |
Source and Filter name i.e. MySourceName;;MyFilterName |
[Unused] | [Unused] |
Disable Source Filter | _xjo_filter_disable |
Source and Filter name i.e. MySourceName;;MyFilterName |
[Unused] | [Unused] |
Get Filter Setting | _xjo_get_filter_setting |
Source and Filter name i.e. MySourceName;;MyFilterName |
Target setting name | [Unused] |
Set Filter Setting | _xjo_set_filter_setting |
Source and Filter name i.e. MySourceName;;MyFilterName |
Target setting name | new setting value |
Start Virtual Cam | _xjo_vcam_start |
[Unused] | [Unused] | [Unused] |
Stop Virtual Cam | _xjo_vcam_stop |
[Unused] | [Unused] | [Unused] |
Start Recording | _xjo_record_start |
[Unused] | [Unused] | [Unused] |
Stop Recording | _xjo_record_stop |
[Unused] | [Unused] | [Unused] |
Start Streaming | _xjo_stream_start |
[Unused] | [Unused] | [Unused] |
Stop Streaming | _xjo_stream_stop |
[Unused] | [Unused] | [Unused] |
Outbound Triggers
These are the Triggers that will be fired by the OBS plugin in response to certain things happening within OBS:
Title | Trigger Name | Description of Action |
---|---|---|
Plugin Connected | _xjo_obsConnected |
The plugin has connected to the OBS websocket |
Plugin Disconnected | _xjo_obsDisconnected |
The plugin has disconnected from the OBS websocket |
Scene Changed | _xjo_sceneChanged |
The scene in OBS has been changed |
Virtual Cam Started | _xjo_vCamStarted |
the OBS virtual camera has been activated |
Virtual Cam Stopped | _xjo_vCamStopped |
the OBS virtual camera has been deactivated |
Recording Started | _xjo_recordStarted |
recording has started in OBS |
Recording Stopped | _xjo_recordStopped |
recording has stopped in OBS |
Streaming Started | _xjo_streamStarted |
streaming has started in OBS |
Streaming Stopped | _xjo_streamStopped |
streaming has stopped in OBS |
Status Parameters
These are the Status Parameters that will automatically get set in response to certain things happening in OBS:
Title | Paramter Name | Description of Value | Example Value |
---|---|---|---|
Current Active Scene | _xjo_currentscene |
The name of the currently-active Scene in OBS | MySampleScene |
Virtual Camera State | _xjo_vcamactive |
The active state of the OBS Virtual Camera | 0 |
Recording State | _xjo_recordactive |
The active state of the OBS Recording | 1 |
Recording Paused State | _xjo_recordpaused |
Whether or not an active recording state is currently paused | 0 |
Stream State | _xjo_streamactive |
The active state of the OBS Streaming | 1 |
Control Parameters (Legacy)
NOTE: This parameter-controlled behaviour is considered deprecated; it still works, but will likely be removed in a future release. Consider updating your existing graphs with the Inbound Trigger behaviour outlined above! These are the Control Parameters that can be set to make somethig happen in OBS:
Title | Parameter Name | Description of Value | Example Value |
---|---|---|---|
Change Scene | _xjo_scenetoswitch |
The name of the Scene to switch over to | MySceneName |
Fire a Hotkey | _xjo_hotkeytofire |
The name of the Hotkey to activate | ObsBrowser.Refresh |
Mute Audio Input | _xjo_audiotomute |
The name of the Audio Input to mute | MyInputName |
Unmute Audio Input | _xjo_audiotounmute |
The name of the Audio Input to unmute | MyInputName |
Set Input Volume | _xjo_audiotoset |
The name and desired volume of the audio input to adjust | MyInputName;;0.69 |
Enable Scene Item | _xjo_itemtoenable |
The name of the Scene and Source of the item to enable | MySceneName;;MySourceName |
Disable Scene Item | _xjo_itemtodisable |
The name of the Scene and Source of the item to disable | MySceneName;;MySourceName |
Enable Source Filter | _xjo_filtertoenable |
The name of the Source and Filter to enable | MySourceName;;MyFilterName |
Disable Source Filter | _xjo_filtertodisable |
The name of the Source and Filter to disable | MySourceName;;MyFilterName |
Start Virtual Cam | _xjo_startvcam |
set to 1 to enable the OBS virtual camera | 1 |
Stop Virtual Cam | _xjo_stopvcam |
set to 1 to disable the OBS virtual camera | 1 |
Start Recording | _xjo_startrecord |
set to 1 to start recording | 1 |
Stop Recording | _xjo_stoprecord |
set to 1 to stop recording | 1 |
Start Streaming | _xjo_startstream |
set to 1 to start streaming | 1 |
Stop Streaming | _xjo_stopstream |
set to 1 to stop streaming | 1 |
Download
Click download now to get access to the following files: