Skip to content

More OBS, and Streamlabs Desktop

C# methods for a Run C# code step. See C# methods for how to use them.

ObsGetConnectionByName

Finds the number of an OBS connection by its name, as shown on the OBS page. The first connection is 0. Capital letters do not matter.

int ObsGetConnectionByName(string name)

Gives back: The connection number, or -1 when no connection has that name.

Example

int studio = CPH.ObsGetConnectionByName("Studio PC");
CPH.LogInfo($"Studio PC is connection {studio}");

ObsConnect

Checks whether OBS is connected. Cuebot connects (and reconnects) OBS by itself, so this does not start a connection.

bool ObsConnect(int connection = 0)

Gives back: true when OBS is connected, otherwise false.

Example

bool ready = CPH.ObsConnect();
CPH.LogInfo($"OBS connected: {ready}");

ObsDisconnect

Not supported in Cuebot: Cuebot keeps its OBS connections open. It only writes a warning in the log. Disconnect OBS on the OBS page instead.

void ObsDisconnect(int connection = 0)

Gives back: Nothing.

Example

CPH.ObsDisconnect();

ObsPauseRecording

Pauses the OBS recording. Gives an error when OBS is not connected.

void ObsPauseRecording(int connection = 0)

Gives back: Nothing.

Example

CPH.ObsPauseRecording();

ObsResumeRecording

Carries on with a paused OBS recording. Gives an error when OBS is not connected.

void ObsResumeRecording(int connection = 0)

Gives back: Nothing.

Example

CPH.ObsResumeRecording();

ObsReplayBufferStart

Starts the OBS replay buffer, which keeps the last few seconds of your stream ready to save. Gives an error when OBS is not connected.

void ObsReplayBufferStart(int connection = 0)

Gives back: Nothing.

Example

CPH.ObsReplayBufferStart();

ObsReplayBufferStop

Stops the OBS replay buffer. Gives an error when OBS is not connected.

void ObsReplayBufferStop(int connection = 0)

Gives back: Nothing.

Example

CPH.ObsReplayBufferStop();

ObsReplayBufferSave

Saves the replay buffer to a file, so you keep the last few seconds of your stream. The replay buffer must be running in OBS.

void ObsReplayBufferSave(int connection = 0)

Gives back: Nothing.

Example

CPH.ObsReplayBufferSave();

ObsSetReplayBufferState

Starts, stops or saves the OBS replay buffer with a number: 0 starts it, 1 stops it, 2 saves it. Any other number gives an error.

void ObsSetReplayBufferState(int state, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsSetReplayBufferState(2);

ObsMediaPlay

Plays a media source (a video or sound file in OBS). The scene is not needed, because OBS finds the source by its name.

void ObsMediaPlay(string scene, string source, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsMediaPlay("Gameplay", "Intro Video");

ObsMediaPause

Pauses a media source (a video or sound file in OBS). The scene is not needed, because OBS finds the source by its name.

void ObsMediaPause(string scene, string source, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsMediaPause("Gameplay", "Intro Video");

ObsMediaRestart

Starts a media source again from the beginning. The scene is not needed, because OBS finds the source by its name.

void ObsMediaRestart(string scene, string source, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsMediaRestart("Gameplay", "Intro Video");

ObsMediaStop

Stops a media source (a video or sound file in OBS). The scene is not needed, because OBS finds the source by its name.

void ObsMediaStop(string scene, string source, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsMediaStop("Gameplay", "Intro Video");

ObsMediaNext

Skips to the next file in a media source that plays a list (like a VLC playlist source).

void ObsMediaNext(string scene, string source, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsMediaNext("Just Chatting", "Music Playlist");

ObsMediaPrevious

Goes back to the previous file in a media source that plays a list (like a VLC playlist source).

void ObsMediaPrevious(string scene, string source, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsMediaPrevious("Just Chatting", "Music Playlist");

ObsSetMediaState

Controls a media source with a number: 0 play, 1 pause, 2 restart, 3 stop, 4 next, 5 previous. Any other number gives an error.

void ObsSetMediaState(string scene, string source, int state, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsSetMediaState("Gameplay", "Intro Video", 0);

ObsSourceMute

Mutes an audio source in OBS, like your microphone. The scene is not needed, because OBS finds the source by its name.

void ObsSourceMute(string scene, string source, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsSourceMute("Gameplay", "Mic");

ObsSourceUnMute

Unmutes an audio source in OBS, like your microphone. The scene is not needed, because OBS finds the source by its name.

void ObsSourceUnMute(string scene, string source, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsSourceUnMute("Gameplay", "Mic");

ObsSourceMuteToggle

Mutes an audio source when it is on, or unmutes it when it is muted.

void ObsSourceMuteToggle(string scene, string source, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsSourceMuteToggle("Gameplay", "Mic");

ObsSetSourceMuteState

Mutes or unmutes an audio source with a number: 0 mutes, 1 unmutes, 2 switches it. Any other number gives an error.

void ObsSetSourceMuteState(string scene, string source, int state, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsSetSourceMuteState("Gameplay", "Mic", 0);

ObsSetSceneFilterState

Turns a filter on a scene itself on or off with a number: 0 on, 1 off, 2 switches it.

void ObsSetSceneFilterState(string scene, string filterName, int state, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsSetSceneFilterState("Gameplay", "Blur", 0);

ObsSetSourceFilterState

Turns a filter on a source on or off with a number: 0 on, 1 off, 2 switches it. The scene is not needed, because OBS finds the source by its name.

void ObsSetSourceFilterState(string scene, string source, string filterName, int state, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsSetSourceFilterState("Gameplay", "Webcam", "Green Screen", 1);

ObsHideGroupsSources

Hides every source inside an OBS group. The scene is not needed, because OBS finds the group by its name.

void ObsHideGroupsSources(string scene, string groupName, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsHideGroupsSources("Gameplay", "Alerts");

ObsHideSceneSources

Hides every source in a scene.

void ObsHideSceneSources(string scene, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsHideSceneSources("Gameplay");

ObsSetRandomGroupSourceVisible

Shows one random source inside an OBS group and hides the others. Fun for a random hat or sticker. The scene is not needed.

string ObsSetRandomGroupSourceVisible(string scene, string groupName, int connection = 0)

Gives back: The name of the source it showed, or empty text when the group has no sources.

Example

string picked = CPH.ObsSetRandomGroupSourceVisible("Gameplay", "Hats");
CPH.LogInfo($"Showing {picked}");

ObsSetRandomSceneSourceVisible

Shows one random source in a scene and hides the others.

string ObsSetRandomSceneSourceVisible(string scene, int connection = 0)

Gives back: The name of the source it showed, or empty text when the scene has no sources.

Example

string picked = CPH.ObsSetRandomSceneSourceVisible("Backgrounds");
CPH.LogInfo($"Showing {picked}");

ObsGetGroupSources

Lists the sources inside an OBS group, top first. The scene is not needed, because OBS finds the group by its name.

List<string> ObsGetGroupSources(string scene, string groupName, int connection = 0)

Gives back: A list with the names of the group's sources.

Example

List<string> hats = CPH.ObsGetGroupSources("Gameplay", "Hats");
CPH.LogInfo($"Hats: {string.Join(", ", hats)}");

ObsSetColorSourceColor

Changes the colour of a colour source. Give the colour as text like "#FF0000" (red) or "#80FF0000" (see-through red), or as four numbers 0-255: alpha (see-through), red, green, blue.

void ObsSetColorSourceColor(string scene, string source, int a, int r, int g, int b, int connection = 0)
void ObsSetColorSourceColor(string scene, string source, string hexColor, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsSetColorSourceColor("Gameplay", "Background", "#9146FF");
CPH.ObsSetColorSourceColor("Gameplay", "Border", 255, 255, 0, 0);

ObsSetColorSourceRandomColor

Gives a colour source a random colour. The colour is never see-through.

void ObsSetColorSourceRandomColor(string scene, string source, int connection = 0)

Gives back: Nothing.

Example

CPH.ObsSetColorSourceRandomColor("Gameplay", "Background");

ObsConvertColorHex

Turns a colour like "#FF0000" or "#80FF0000" (the # is optional) into the colour number OBS uses. Text that is not a colour gives an error.

long ObsConvertColorHex(string colorHex)

Gives back: The colour as OBS's number.

Example

long red = CPH.ObsConvertColorHex("#FF0000");
CPH.LogInfo($"OBS colour number: {red}");

ObsConvertRgb

Turns alpha (see-through), red, green and blue (each 0-255) into the colour number OBS uses. Numbers outside 0-255 are cut to fit.

long ObsConvertRgb(int a, int r, int g, int b)

Gives back: The colour as OBS's number.

Example

long purple = CPH.ObsConvertRgb(255, 145, 70, 255);
CPH.LogInfo($"OBS colour number: {purple}");

ObsTakeScreenshot

Saves a picture of a source or scene to a file. Leave the source empty for what is on stream. The file ending (.png, .jpg) sets the format. Quality is 0-100, or -1 for OBS's default.

bool ObsTakeScreenshot(string source, string path, int quality = -1, int connection = 0)
bool ObsTakeScreenshot(string scene, string source, string path, int quality = -1, int connection = 0)

Gives back: true when the picture was saved, false when it failed (a warning goes in the log).

Example

bool saved = CPH.ObsTakeScreenshot("Webcam", "C:/Stream/Screenshots/webcam.png");
CPH.LogInfo($"Screenshot saved: {saved}");

ObsGetSceneItemProperties

Reads the details of a source in a scene, like its position, size, whether it is visible or locked. Uses the same names as the "Get Scene Item Properties" sub-action.

string ObsGetSceneItemProperties(string scene, string source, int connection = 0)

Gives back: The details as text in JSON format, or "{}" when there are none.

Example

string props = CPH.ObsGetSceneItemProperties("Gameplay", "Webcam");
CPH.LogInfo(props);

ObsSendBatchRaw

Sends several raw OBS requests at once, for advanced users. The data is a JSON list of {requestType, requestData}. Cuebot always runs them in order. haltOnFailure stops at the first one that fails.

string ObsSendBatchRaw(string data, bool haltOnFailure = false, int executionType = 0, int connectionIdx = 0)

Gives back: The answers from OBS as text in JSON format.

Example

string answers = CPH.ObsSendBatchRaw("[{\"requestType\":\"GetVersion\"}]");
CPH.LogInfo(answers);

SlobsIsConnected

Checks whether Cuebot is connected to Streamlabs Desktop. Cuebot has one Streamlabs Desktop connection, number 0.

bool SlobsIsConnected(int connection = 0)

Gives back: true when it is connected, otherwise false (also for any connection number other than 0).

Example

bool ready = CPH.SlobsIsConnected();
CPH.LogInfo($"Streamlabs Desktop connected: {ready}");

SlobsConnect

Checks whether Streamlabs Desktop is connected. Cuebot connects (and reconnects) it by itself, so this does not start a connection.

bool SlobsConnect(int connection = 0)

Gives back: true when it is connected, otherwise false.

Example

bool ready = CPH.SlobsConnect();
CPH.LogInfo($"Streamlabs Desktop connected: {ready}");

SlobsDisconnect

Not supported in Cuebot: Cuebot keeps the Streamlabs Desktop connection open. It only writes a warning in the log. Disconnect it on its page instead.

void SlobsDisconnect(int connection = 0)

Gives back: Nothing.

Example

CPH.SlobsDisconnect();

SlobsSetScene

Switches Streamlabs Desktop to another scene.

void SlobsSetScene(string sceneName, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsSetScene("Gameplay");

SlobsGetCurrentScene

Finds out which scene Streamlabs Desktop is showing right now.

string SlobsGetCurrentScene(int connection = 0)

Gives back: The scene's name, or empty text when Streamlabs Desktop is not connected.

Example

string scene = CPH.SlobsGetCurrentScene();
CPH.LogInfo($"Current scene: {scene}");

SlobsStartStreaming

Starts streaming in Streamlabs Desktop.

void SlobsStartStreaming(int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsStartStreaming();

SlobsStopStreaming

Stops streaming in Streamlabs Desktop.

void SlobsStopStreaming(int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsStopStreaming();

SlobsStartRecording

Starts recording in Streamlabs Desktop.

void SlobsStartRecording(int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsStartRecording();

SlobsStopRecording

Stops recording in Streamlabs Desktop.

void SlobsStopRecording(int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsStopRecording();

SlobsPauseRecording

Not supported in Cuebot: Streamlabs Desktop cannot pause a recording from outside. It only writes a warning in the log.

void SlobsPauseRecording(int connection = 0)

Gives back: Nothing.

Example

CPH.SlobsPauseRecording();

SlobsResumeRecording

Not supported in Cuebot: Streamlabs Desktop cannot pause or resume a recording from outside. It only writes a warning in the log.

void SlobsResumeRecording(int connection = 0)

Gives back: Nothing.

Example

CPH.SlobsResumeRecording();

SlobsIsStreaming

Checks whether Streamlabs Desktop is live right now.

bool SlobsIsStreaming(int connection = 0)

Gives back: true while it is streaming, otherwise false. Also false when Streamlabs Desktop is not connected.

Example

bool live = CPH.SlobsIsStreaming();
CPH.LogInfo($"Streamlabs live: {live}");

SlobsIsRecording

Checks whether Streamlabs Desktop is recording right now.

bool SlobsIsRecording(int connection = 0)

Gives back: true while it is recording, otherwise false. Also false when Streamlabs Desktop is not connected.

Example

bool recording = CPH.SlobsIsRecording();
CPH.LogInfo($"Recording: {recording}");

SlobsSetSourceVisibility

Shows (true) or hides (false) a source in a Streamlabs Desktop scene. The form with an output (horizontal or vertical) works the same: Cuebot ignores the output.

void SlobsSetSourceVisibility(string scene, string source, bool visible, int connection = 0)
void SlobsSetSourceVisibility(string scene, string source, bool visible, StreamlabsDesktopOutputType output, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsSetSourceVisibility("Gameplay", "Webcam", true);

SlobsSetSourceVisibilityState

Shows or hides a source in a Streamlabs Desktop scene with a number: 0 shows it, 1 hides it, 2 switches it. The output setting is ignored.

void SlobsSetSourceVisibilityState(string scene, string source, int state, StreamlabsDesktopOutputType output = StreamlabsDesktopOutputType.Both, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsSetSourceVisibilityState("Gameplay", "Webcam", 2);

SlobsShowSource

Shows a source in a Streamlabs Desktop scene. The form with an output (horizontal or vertical) works the same: Cuebot ignores the output.

void SlobsShowSource(string scene, string source, int connection = 0)
void SlobsShowSource(string scene, string source, StreamlabsDesktopOutputType output, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsShowSource("Gameplay", "Webcam");

SlobsHideSource

Hides a source in a Streamlabs Desktop scene. The form with an output (horizontal or vertical) works the same: Cuebot ignores the output.

void SlobsHideSource(string scene, string source, int connection = 0)
void SlobsHideSource(string scene, string source, StreamlabsDesktopOutputType output, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsHideSource("Gameplay", "Webcam");

SlobsIsSourceVisible

Checks whether a source in a Streamlabs Desktop scene is showing. The output setting is ignored.

bool SlobsIsSourceVisible(string scene, string source, int connection = 0)
bool SlobsIsSourceVisible(string scene, string source, StreamlabsDesktopOutputType output, int connection = 0)

Gives back: true when the source is visible, false when it is hidden or not found. Also false when Streamlabs Desktop is not connected.

Example

bool showing = CPH.SlobsIsSourceVisible("Gameplay", "Webcam");
CPH.LogInfo($"Webcam visible: {showing}");

SlobsGetGroupSources

Lists the sources inside a Streamlabs Desktop folder (group) in a scene.

List<string> SlobsGetGroupSources(string scene, string groupName, int connection = 0)

Gives back: A list with the names of the sources, or an empty list when the folder is not found. Empty when Streamlabs Desktop is not connected.

Example

List<string> hats = CPH.SlobsGetGroupSources("Gameplay", "Hats");
CPH.LogInfo($"Hats: {string.Join(", ", hats)}");

SlobsHideGroupsSources

Hides every source inside a Streamlabs Desktop folder (group). The output setting is ignored.

void SlobsHideGroupsSources(string scene, string groupName, int connection = 0)
void SlobsHideGroupsSources(string scene, string groupName, StreamlabsDesktopOutputType output, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsHideGroupsSources("Gameplay", "Alerts");

SlobsSetRandomGroupSourceVisible

Shows one random source inside a Streamlabs Desktop folder (group) and hides the others. The output setting is ignored.

string SlobsSetRandomGroupSourceVisible(string scene, string groupName, int connection = 0)
string SlobsSetRandomGroupSourceVisible(string scene, string groupName, StreamlabsDesktopOutputType output, int connection = 0)

Gives back: The name of the source it showed, or empty text when there is none. Empty when Streamlabs Desktop is not connected.

Example

string picked = CPH.SlobsSetRandomGroupSourceVisible("Gameplay", "Hats");
CPH.LogInfo($"Showing {picked}");

SlobsSetGdiText

Changes the words in a Streamlabs Desktop text source. The scene is not needed.

void SlobsSetGdiText(string scene, string source, string text, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsSetGdiText("Gameplay", "Last Follower", "Thanks, CoolViewer!");

SlobsSetBrowserSource

Changes the web address a Streamlabs Desktop browser source shows. The scene is not needed.

void SlobsSetBrowserSource(string scene, string source, string url, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsSetBrowserSource("Gameplay", "Alert Box", "https://example.com/alerts");

SlobsSourceMute

Mutes an audio source in Streamlabs Desktop, like your microphone. The scene and the third text (filterName) are not used; you can leave the third one empty.

void SlobsSourceMute(string scene, string source, string filterName, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsSourceMute("Gameplay", "Mic", "");

SlobsSourceUnMute

Unmutes an audio source in Streamlabs Desktop. The scene and the third text (filterName) are not used; you can leave the third one empty.

void SlobsSourceUnMute(string scene, string source, string filterName, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsSourceUnMute("Gameplay", "Mic", "");

SlobsSourceMuteToggle

Mutes an audio source in Streamlabs Desktop when it is on, or unmutes it when it is muted. The scene and the third text are not used.

void SlobsSourceMuteToggle(string scene, string source, string filterName, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsSourceMuteToggle("Gameplay", "Mic", "");

SlobsSetSourceMuteState

Mutes or unmutes an audio source in Streamlabs Desktop with a number: 0 mutes, 1 unmutes, 2 switches it. Any other number gives an error.

void SlobsSetSourceMuteState(string scene, string source, int state, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsSetSourceMuteState("Gameplay", "Mic", 0);

SlobsShowFilter

Turns on a filter in Streamlabs Desktop. With a scene and a filter it changes the scene's own filter; with a scene, a source and a filter it changes the source's filter.

void SlobsShowFilter(string scene, string filterName, int connection = 0)
void SlobsShowFilter(string scene, string source, string filterName, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsShowFilter("Gameplay", "Webcam", "Green Screen");

SlobsHideFilter

Turns off a filter in Streamlabs Desktop. With a scene and a filter it changes the scene's own filter; with a scene, a source and a filter it changes the source's filter.

void SlobsHideFilter(string scene, string filterName, int connection = 0)
void SlobsHideFilter(string scene, string source, string filterName, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsHideFilter("Gameplay", "Blur");

SlobsToggleFilter

Switches a filter in Streamlabs Desktop on or off. With a scene and a filter it changes the scene's own filter; with a scene, a source and a filter, the source's filter.

void SlobsToggleFilter(string scene, string filterName, int connection = 0)
void SlobsToggleFilter(string scene, string source, string filterName, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsToggleFilter("Gameplay", "Webcam", "Blur");

SlobsSetFilterState

Turns a Streamlabs Desktop filter on or off with a number: 0 on, 1 off, 2 switches it. Give a source too to change the source's filter instead of the scene's own.

void SlobsSetFilterState(string scene, string filterName, int state, int connection = 0)
void SlobsSetFilterState(string scene, string source, string filterName, int state, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsSetFilterState("Gameplay", "Webcam", "Blur", 2);

SlobsSetRandomFilterState

Picks one random filter and sets it with a number: 0 on, 1 off, 2 switches it. With only a scene it picks from the scene's own filters; with a source, from that source's.

void SlobsSetRandomFilterState(string scene, int state, int connection = 0)
void SlobsSetRandomFilterState(string scene, string source, int state, int connection = 0)

Gives back: Nothing. When Streamlabs Desktop is not connected, it does nothing and writes a warning in the log.

Example

CPH.SlobsSetRandomFilterState("Gameplay", "Webcam", 0);

SlobsIsFilterEnabled

Checks whether a Streamlabs Desktop filter is on. With a scene and a filter it checks the scene's own filter; with a scene, a source and a filter, the source's filter.

bool SlobsIsFilterEnabled(string scene, string filterName, int connection = 0)
bool SlobsIsFilterEnabled(string scene, string source, string filterName, int connection = 0)

Gives back: true when the filter is on, false when it is off or not found. Also false when Streamlabs Desktop is not connected.

Example

bool blurred = CPH.SlobsIsFilterEnabled("Gameplay", "Webcam", "Blur");
CPH.LogInfo($"Blur on: {blurred}");