Important notes:
Please make sure to back up your settings!
If you run into any issues, please either post in the OBS forums or create an issue on GitHub!
Changes:
- Added handling for MIDI device dis- and reconnect.
Previously MIDI messages were not received / sent, if the device selected for the corresponding action or condition was not present, when the settings were loaded.
Now, once a new MIDI device is connected, it will be checked, if the device is supposed to be used in any MIDI actions or conditions, and be configured accordingly.- Fixed audio condition volume threshold values configured in versions 1.24.* or below not being converted correctly to version 1.25.* .
If you reimport your 1.24.* settings, the threshold values will now be converted correctly.- Increased the precision of the percent based volume threshold selection in the Audio condition.
- Action queues will now be exported and imported as well, if they are part of the macro selected for export or import.
Important notes:
Please make sure to back up your settings!
If you run into any issues, please either post in the OBS forums or create an issue on GitHub!
Changes:
- Fixed crash when selecting the virtual camera action.
Important notes:
Please make sure to back up your settings!
If you run into any issues, please either post in the OBS forums or create an issue on GitHub!
Changes:
- Fixed crashes related to the introduction of the variable tab.
- Fixed output volume check of the "Audio" condition not working correctly when using the percent based input method.
- Settings will now be saved when switching between macros on the macro tab.
This was done to minimize the loss of settings as much as possible in case of crash while the plugin's setting window is still opened.
Important notes:
Please make sure to back up your settings!
If you run into any issues, please either post in the OBS forums or create an issue on GitHub!
Note for MacOS users:
This version of the plugin is only compatible with OBS 30 or newer.
More information can be found here.
This does not affect Windows or Linux.
Additions:
- Added action queues
As the name implies you can now create queues of actions, which are executed sequentially but in parallel to the reset of the macro system.
You can append to, start, stop, or clear action queues using the "Queue" action.
You can check if a action queue is started, stopped, and its size using the "Queue" condition.
The first action added to the queue will be the first one to be processed.
You can create as many queues as you like.
They can be useful if you have events, which can happen in quick succession, but result in relatively long chains of actions, which themselves should not necessarily run in parallel to each other.
An example can be found here in the wiki.- Added the "Variable" tab:
This should make it significantly easier to work with larger amounts of variables.The tab will only be visible if at least one variable exists.
- Added the current pattern matching value to "Show match" dialog. (Oekn5w)
- Added the option to wait for spawned process to exit.
- Added the option to set the value of a variable to scene item name at a given index of a scene.
- Added the option to check the values of single settings in the "Source" condition.
- Added the option to check the value of single settings value in the "Filter" condition.
- Added the option to use decibel values as input for audio action and condition, instead of percent.
- Added the option to set the index of a given sequence action.
- Added the option to perform media actions on sources based on a scene item selection instead of just a source selection.
This might simplify some setups.
- Improved the "Display" condition by adding the option to check the width and height of connected displays.
- Added the "Window" action (Windows only):
This action type will allow you to focus, minimize, maximize, or close a window with a given name.
- Added the "Log" action:
As the name implies this action let's you add custom log messages to the OBS log file.
These messages will have the "[adv-ss]" prefix just like the other log messages produced by this plugin.
Other changes:
- Default settings values were adjusted:
- The plugin will now be active by default on new scene collections.
- The macro tab will be opened as the default tab.
- Recently executed macros, recently executed macro actions, and conditions, which evaluate to true, will be highlighted by default.
- This will not affect settings of already existing scene collections.
- Added tooltips to macro tab buttons, adjusted the TAB order of some widgets, and some other minor UI tweaks.
This should at least slightly improve the usability of the plugin in combination with screen readers.- A warning will now be displayed if settings are exported to a file, if potentially sensitive data might be contained in that file.
(For example websocket passwords or Twitch tokens)- Added new macro properties for the following conditions:
- Websocket
- Streaming
- Window (window class - windows only)
Here is an example how to use it.- Audio fade controls are now disabled if the fading option is not checked.
This was done to avoid confusion on some OBS themes where checkboxes can be very difficult to see.- Update internal hotkey names when the description of hotekys in changed in "Hotkey" conditions.
- The rename dialog of items (e.g. Variables, Websocket connections, etc.) will now be prefilled with the current name.
- Disabled dragging of macro segments when interacting with scrollbars.
- When storing numbers in variables truncate unnecessary decimal places.
1.23 would have been previously stored as 1.2300000... and is now stored as 1.23.- The MIDI condition and action type will now save the name of the selected device instead of the port number.
This should allow the device selection being restored correctly even if the devices are connected to different ports.- When manually starting a macro using the "Run macro" button fails, because the macro is already running, the option will now be offered to stop the current execution.
- Settings will now automatically be backed up to the plugin config directory.
On Windows this path could be: C:\Users\Admin\AppData\Roaming\obs-studio\plugin_config\advanced-scene-switcher.
One backup will be kept for each combination of scene collection name and plugin version.
The backup will only be made for the currently active scene collection on OBS shutdown.- Added a new log level which only prints the actions that were performed by the plugin but is much less verbose than the verbose log mode.
The log level will be reset to "Default" when installing this new version of the plugin.Fixes:
- Fixed the replay buffer save event only triggering in a single condition.
- Fix text becoming invisible in certain text boxes in special circumstances.
- Fixed macro segment widgets being squashed below a sensible minimum size.
- Fixed pattern matching issues by excluding non-finite results. (Oekn5w)
- Fixed media condition "any" / "all" selection ignoring some source types.
- Fixed scene item name conflict selection not being visible in some circumstances.
- Fixed flickering of macro list controls on widget creation.
- Fixed else action delete button only working with active selection.
- Fixed dialogs being opened at OBS instead of plugin window location.
- Fixed setting of show-/hide-transitions resulting in graphical glitches during the transition.
- Fixed Twitch chat connection not being re-established when when the Twitch account or channel was change.
- Fixed else-actions being executed for paused macros.
- Fixed open variable input dialogs causing a crash on shutdown.
- Fixed hotkey condition evaluating to true if the hotkey was pressed while the macro was paused.
- Fixed manually started macros not being stopped when stopping the plugin.
- Fixed Twitch token warning not being displayed when the token is invalid.
- Fixed possible crash on shutdown.
- Fixed crash when switching settings in the "OBS stats" condition.
- Fixed macro property references not being resolved on macro copy and import.
- Fixed websocket messages / Twitch events / MIDI messages arriving in very quick succession resulting in some of them being skipped.
- Fixed Twitch action not being able to send a chat message in some circumstances.
- Fixed manually changing the value of a variable in the variable's settings dialog not being considered a value change and thus some fields not using this new value of the variable.
Important notes:
Please make sure to back up your settings!
If you run into any issues, please either post in the OBS forums or create an issue on GitHub!
Note for MacOS users:
This version of the plugin is only compatible with OBS 30 or newer.
More information can be found here.
This does not affect Windows or Linux.
Fixes:
- Fixed crash related to the settings backup dialog.
Other changes:
- The audio condition will no longer return true if no audio source is selected.
- Decreased the minimal interval time to 10ms. (Oekn5w)
Please note that decreasing the interval value will result in the plugin using up more system resources.- Slight performance improvement related to the Video condition's area selection. (Oekn5w)
Important notes:
Please make sure to back up your settings!
If you run into any issues, please either post in the OBS forums or create an issue on GitHub!
Note for MacOS users:
This version of the plugin is only compatible with OBS 30 or newer.
More information can be found here.
This does not affect Windows or Linux.
Additions:
- Added the option to the "Recording" condition to check the current recording duration.
- Added option to check if a given macro is currently paused
- Added the "Clipboard" action type. (Destroy666x)
It will allow you to modify the clipboard contents.- Added support for "random()" function in Variable math expression, which will generate a random number in the rage [0,1).
Other changes:
- No longer wait for a transition to complete if the currently active scene is already the target scene.
- Reworked the "Process" condition to explicitly enable or disable the use of regular expressions.
This condition now also supports macro properties to query the process name.- Added macro property support to Macro condition.
This will allow you to query the number of times a macro was executed when using the "Macro run count" check type or how many of a given set of macros were true when using the "Multiple macro condition state" check type.- Added macro property support to the Video condition.
This will allow you to set query how often a given pattern was found, how often a given object was detected, the current average brightness value, the text detected by the OCR algorithm, or the average color of a given video input frame.- Added tooltip for run button explaining how to run else actions for testing. (Destroy666x)
- Added a button to toggle show / hide the else actions section. (Destroy666x)
- Minor UI layout changes.
Fixes:
- Fixed "Or not" logic type being ignored.
- Fixed macro references (in e.g. Macro conditions or actions) not being resolved to imported macros.
- Fixed duration value not being updated correctly when changing units from e.g. seconds to minutes in some circumstances.
- Fixed window condition not clearing macro property values of the previously selected condition type.
- Fixed a crash when interacting with sources which have settings values without a description.
- Fixed plugin on starting on Linux if the libprocps dependency is not met.
Important notes:
Please make sure to back up your settings!
If you run into any issues, please either post in the OBS forums or create an issue on GitHub!
Note for MacOS users:
This version of the plugin is only compatible with OBS 30 or newer.
More information can be found here.
This does not affect Windows or Linux.
Additions:
- Added the "Twitch" action, which will allow you to ...
- Set the stream title
- Set the stream category
- Create a stream marker (Destroy666x)
- Create a stream clip (Destroy666x)
- Start a commercial
- Send chat announcements (Destroy666x)
- Enable or disable emote-only mode (Destroy666x)
- Raid a channel
- Send chat message
- Added the "Twitch" condition type, which will allow you to ...
- Check if a stream went live
- Channel information was updated
- New followers were received
- Subscriptions were received
- Someone cheered in the channel
- Poll started
- Chat messages are received
- And more ...
Huge thanks once again to Destroy666x for his amazing support in implementing all of this!- Added an "else" action section to the macro tab.
This should allow you to simplify your macro setups if you previously created separate macros for the "else" branch.
Here is an example of the "else" section in use:
This unfortunately comes with a minor breaking change:
Previously, the "Perform actions on condition change" would also affect how the condition state of a macro was evaluated.
Macros with this option enabled would only be considered to be evaluated to "true" for the interval in which the conditions turned true.
Now they are considered to be evaluated to "true" in this scenario and the "on change" option only has an effect on if the actions are performed or not.
This could cause issues if you were previously relying on this behaviour in combination with the "Macro" condition type, but this should hopefully be a very rare circumstance.
This was necessary to be able to support the "else" actions also being affected by the "Perform actions only on condition change" option.
(And I also think it makes more sense logically as the option only mentions actions being affected)- Added the option to modify individual setting values of sources and filters.
This should make it a lot easier to modify the settings of sources and filters.
The old method of modifying the settings json string is still available as well.- Added option to check for settings changes to the "Source" and "Filter" condition.
- Improved the "Variable" action by adding the option to ...
- Set a placeholder text when asking for input.
- Set to the value of a given environment variable.
- Set to the value of the count of scene items of a given scene. (to enable iteration over scene items)
- Added the option to set a variable value to the length of a given input string.
- Added the option to extract json fields from a variable.
- Added the "all" option in filter selection to make it easier to apply changes to all filters of a given source.
- Added the option to check if the scene item transform of a given source changed. (Oekn5w)
- Added the option to open the properties and filter windows of sources.
- Added the option to the "Media" action to seek to the percentage value of the media source's playback length.
- Added French locale (lMagickl)
- Introduced "Macro properties".
These are basically temporary variables which are generated by certain types of conditions and can be used throughout the macro.
These were mostly introduced to make it easier to work with the various properties made available through the Twitch condition.
Here is an example of how to use them to set the text of a source to the user name of a new follower on Twitch if it matches a given pattern:
Other condition types which also set properties are:
- Audio
- Date
- MIDI
- Scene
- Timer
- Window
Other changes:
- Moved the action to switch the preview scene from the "Studio mode" action to the "Switch scene" action.
This change will not affect existing "Studio mode" actions.- Windows only: The "Window" condition type will now also list OBS windows instead of only the placeholder entry named "OBS".
For example, this will allow you to check if a projector window is already opened.- Reset monitor selection in "Projector" action when monitor setup changed, instead of defaulting back to the new monitor at the same index of the previous monitor setup.
- Only show the "Slide Show" condition type if the installed version of OBS supports necessary features.
- Added the option to reduce CPU load of the "Video" condition's "has changed" checks by reducing the frequency at which the output is checked.
- Added option to disable filtering by typing in various selections.
- The option to set the OBS master volume is now hidden as that functionality was deprecated from OBS for quite a while.
- Added compression to the export functionality for individual macros as the strings could get quite long.
- When exporting macros, any variables defined will now also be exported and defined on import to make it easier to share macros which are using variables.
Fixes:
- Fixed the "Video" condition's OCR value not being assigned to variables when the use of regular expressions was enabled.
- Fixed crash on shutdown related to macro docks.
- Fixed crash when reordering macro actions while they were executed.
Important notes:
Please make sure to back up your settings as there are quite a lot of changes!
If you run into any issues, please either post in the OBS forums or create an issue on GitHub!
Additions:
Fixes:
- Fixed crashes related to the "Video" condition type. (OpenCL support has been reverted)
- Fixed certain dialogs not being visible when OBS' "Always On Top" option was enabled.
- Fixed "Window" condition type not respecting the "Window title matches" being disabled in certain circumstances.
Important notes:
Please make sure to back up your settings as there are quite a lot of changes!
If you run into any issues, please either post in the OBS forums or create an issue on GitHub!
Additions:
- Added the option to disable individual actions of a given macro.
This can be controlled using the switch button to the top left of a given action.
You can also en-/disable or toggle the enable state of an action of a particular macro using the "Macro" action type or check its state using the "Macro" condition type.
- Added the option to search / filter the selection boxes in the condition, action, scene, source, transition, filter, variable, connection, and macro selections.
- Added export / import functionality to the right click context menu of the macro list.
This enables the easy sharing of macros across scene collections, other instances of OBS., and across users of the plugin.
A quick guide of the general workflow can be found here.- Additions to the scene item selection:
The scene item selection, which can be found in the "Scene item lock" "Scene item order", "Scene item transform", "Scene item visibility", and "Transition" conditions and/or actions, previously only allowed name based selections.
Now additional selections can be made based on index, source type, name pattern.
This should allow users to simplify some setups and reduce the maintenance required if the layout of a scene should change.
- Added the option to the "Hotkey" action to trigger global OBS hotkeys without them having to be bound to a specific key combination.
This can be used to interact with other OBS plugins, which offer such hotkeys.
For example, you could use this to trigger starting recording in the OBS Aitum Vertical plugin:
- Video condition additions:
- Added the option to check how similar a video output is to a given color.
- Enable use of other OCR language models and improved matching accuracy.
- Enabled OpenCV's OCL support to slightly improve performance.
- Added the "Slide show" condition.
It will allow you to check if a slide was changed, what the current slide index or path to the currently displayed image is.
- Added additional options to the "Scene item transform" option which can also be found when right clicking sources.
This includes flipping, centering, stretching, and rotation of sources.
- Added the option to the "Variable" action to open a dialog window to assign a new value to a given variable.
- Added more configuration options to macro docks:
- Added support for adding text labels to macro docks.
The text displayed can be configured to be different depending on if the conditions of the macros are true or false.- Added the option to highlight a macro dock its actions were executed.
- Added support for configuring additional streaming options:
- Set server URL
- Set stream key
- Set username
- Set password
- Add the option to the "Filter" action to toggle filters on and off instead of only enabling or disabling them.
This should enable some macro setups to be simplified.
- Added the "Scene item lock" action, which allows you to lock, unlock, or toggle the lock state of scene items.
- Added the option to the "Source" action type to change the deinterlace mode and deinterlace field order of a given source.
- Websocket action additions:
- Added support for sending generic OBS websocket messages.
This should enable you to interact with other plugins which offer an API via the OBS websocket interface or other OBS instances which are not running the Advanced scene switcher plugin.
For an example how to interact with the OBS Aitum Vertical plugin to switch vertical scenes click this link.- Added support for sending generic non-OBS protocol websocket messages.
Other changes:
- Enabled selecting scenes in the "Source" condition type.
- The "HTTP" action now allows use of longer header entries.
- Duration modifiers can now be used with the "Hotkey" condition to, for example, check how long a key was pressed.
- The "Timer" condition can now be used to assign values to variables.
The value assigned to the variable will be the time remaining.- The run action now allows passing empty arguments and arguments of larger sizes.
- The "Perform actions only on condition change" is now enabled by default for newly created macros.
- When creating a new scene collection you will now start with an empty macro list instead of copying the macro list of the previously active scene collection.
- Added buttons for the macro tab to move macro segments to top / bottom of segment list.
- Minor UI tweaks and cleanup.
Fixes:
- Improved the position of docks being restored incorrectly.
Unfortunately some problems still remain in that area.- Fixed a crash which could occur while waiting for a transition while no transition was selected.
- Fixed a potential crash when resolving variables during shutdown of OBS.
- Fixed various visual reordering issues in the macro list.
- Fixed creation of a group starting at an incorrect index.
- Fixed segment selection being lost when using the up / down button.
- Updated Chinese locale. (provided by qwe1154323937)
- Fixed function priorities not being saved.