Filters
Changes or adds settings to a filter in a specified source.
Requires the same formatting that is used in the OBS JSON file.
An easy way to see your current filter’s settings is to use the Check Settings button - after filling out the Source and Filter Name boxes, you will get a pop-up showing the filter’s settings, excluding any still at default values.

| Box Name | Type | Description |
|---|---|---|
| OBS | Dropdown | OBS to send this command to (if using multiple OBS) |
| Source Name | String | Source name containing the filter. Select from dropdown or input manually. |
| Filter Name | String | Filter name to change the settings. Select from dropdown or input manually. |
| Settings | JSON String | The filter settings to be included. Formatted as a JSON String. Must be enclosed in {}. |
OBS WebSocket 5 Request: SetSourceFilterSettings
| Request Field | Type | Description |
|---|---|---|
| sourceName | String | Name of the source the filter belongs to. |
| filterName | String | Name of the filter to change settings for. |
| filterSettings | Object | JSON object with the settings to apply. |
| overlay | Boolean (optional) | true (default) = merge with existing settings, false = replace all settings. |
Common filter setting keys by filter type:
| Filter | Setting Keys | Example |
|---|---|---|
| Color Correction | brightness, contrast, saturation, hue_shift, opacity |
{"brightness": 0.1, "opacity": 0.8} |
| Color Key | key_color_type, similarity, smoothness |
{"similarity": 80} |
| Chroma Key | key_color_type, similarity, smoothness, spill |
{"similarity": 400} |
| Noise Suppression | suppress_level |
{"suppress_level": -30} |
| Gain | db |
{"db": 5.0} |
| Render Delay | delay_ms |
{"delay_ms": 500} |
Use the Check Settings button in SAMMI or Send OBS Request with GetSourceFilter to inspect the current filter settings for your specific filter.
Changes visibility of a filter in a given source.\
| Box Name | Type | Description |
|---|---|---|
| OBS | Dropdown | OBS to send this command to (if using multiple OBS) |
| Source Name | String | Source name containing the filter. Select from dropdown or input manually. |
| Filter Name | String | Filter name to change the visibility. Select from dropdown or input manually. |
| Visible | checkbox | checked = visible, unchecked = not visible |
OBS WebSocket 5 Request: SetSourceFilterEnabled
| Request Field | Type | Description |
|---|---|---|
| sourceName | String | Name of the source the filter is applied to. |
| filterName | String | Name of the filter to enable or disable. |
| filterEnabled | Boolean | true to enable (show), false to disable (hide) the filter. |
Toggles the visibility of a filter. If the filter is visible it’s turn off and vice versa.
| Box Name | Type | Description |
|---|---|---|
| OBS | Dropdown | OBS to send this command to (if using multiple OBS) |
| Source Name | String | Source name containing the filter. Select from dropdown or input manually. |
| Filter Name | String | Filter name to change the visibility. Select from dropdown or input manually. |
OBS WebSocket 5 Request: SetSourceFilterEnabled
SAMMI reads the current filter state from its internal cache and calls SetSourceFilterEnabled with the inverted value.
| Request Field | Type | Description |
|---|---|---|
| sourceName | String | Name of the source the filter is applied to. |
| filterName | String | Name of the filter to toggle. |
| filterEnabled | Boolean | The toggled state (opposite of the current visibility). |
Gets the current settings of an OBS filter and saves them as an object.
| Box Name | Type | Description |
|---|---|---|
| OBS | Dropdown | OBS to send this command to, if using multiple OBS connections. |
| Source Name | String | Source the filter belongs to. Select from dropdown or input manually. |
| Filter Name | String | Filter to get settings from. Select from dropdown or input manually. |
| Save Variable As | String | Variable name to save the filter settings object. |
Example:
| Source Name | Filter Name | Save Variable As | Saved Object Example |
|---|---|---|---|
| Webcam | Color Correction | filterSettings | Object containing filter settings such as brightness, contrast, opacity, or other values returned by OBS. |
| Microphone | Noise Suppression | filterSettings | Object containing the settings returned by OBS for that audio filter. |
This is useful for reading current filter values before changing them, creating backups, or debugging filter settings.
OBS WebSocket 5 Request: GetSourceFilter
| Request Field | Type | Description |
|---|---|---|
| sourceName | String | Name of the source the filter is on. |
| filterName | String | Name of the filter to get settings from. |
| Response Field | Type | Description |
|---|---|---|
| filterSettings | Object | All non-default filter settings. Saved directly to your variable. |
| filterEnabled | Boolean | Whether the filter is currently enabled. |
| filterKind | String | The filter type ID (e.g. color_filter_v2, noise_suppress_filter_v2). |
Example saved objects by filter type:
| Filter | Example filterSettings |
|---|---|
| Color Correction | {"brightness": 0.1, "contrast": 0.2, "saturation": 0.5, "opacity": 1.0} |
| Chroma Key | {"key_color_type": "green", "similarity": 400, "smoothness": 80} |
| Gain | {"db": 5.0} |
| Noise Suppression | {"suppress_level": -30, "method": "rnnoise"} |
Transitions specified filter settings over a set duration.
| Box Name | Type | Description |
|---|---|---|
| OBS | Dropdown | OBS to send this command to (if using multiple OBS) |
| Source Name | String | Source name containing the filter. Select from dropdown or input manually. |
| Filter Name | String | Filter name to transition the settings. Select from dropdown or input manually. |
| Filter Setting | String | The string name of the specific filter setting to transition (e.g. brightness). Use the Check Settings button to find the correct setting name. |
| Value Start | Int | Starting value of the filter |
| Value End | Int | Final value of the filter |
| Duration (ms) | Int | Transition duration in milliseconds |
| Smooth | Dropdown | Type of transition. None = Normal, Out = Starts out fast and ends slow, In = Starts out slow and ends fast, In/Out= Starts out slow, gets faster and then slows down at the end again. |
OBS WebSocket 5 Request: SetSourceFilterSettings (called repeatedly each SAMMI frame)
Sends {"<filterSetting>": value} as filterSettings on every frame until the duration is complete. Use Check Settings in the Filter Change Settings command to discover the correct setting name for your filter.
Changes the transparency of a source over a set duration.
Requires a Color Correction filter to be added to your source.
This way you can gradually fade out a source before turning its visibility completely off and gradually fade in a source after turning its visibility on.
| Box Name | Type | Description |
|---|---|---|
| OBS | Dropdown | OBS to send this command to (if using multiple OBS) |
| Source Name | String | Source name to change the transparency of. Select from dropdown or input manually. |
| Color Correction | String | Color Correction filter name. |
| Alpha Start | Real | Starting transparency percentage. 0-100 or 0-1 depending on the filter’s version. |
| Alpha End | Real | Final transparency percentage. 0-100 or 0-1 depending on the filter’s version. |
| Duration (ms) | Int | Transition duration in milliseconds |
| Smooth | dropdown | Type of transition. None = Normal, Out = Starts out fast and ends slow, In = Starts out slow and ends fast, In/Out= Starts out slow, gets faster and then slows down at the end again. |
OBS WebSocket 5 Request: SetSourceFilterSettings (called repeatedly each SAMMI frame)
Sends {"opacity": value} as filterSettings every frame, targeting the specified Color Correction filter. Older Color Correction filters use the opacity key with a 0–100 range; newer ones use 0–1.