Important note: You will have to use at least OBS 28 to use this version of the plugin!
Please make sure to back up your settings before updating OBS to version 28!
- Added support for OBS 28.
With this also comes support for native Apple Silicon builds.
Note that the different versions of the plugin for Windows, MacOS, and Linux are now split into separate archives.
The prebuilt Linux binaries depend on Qt6.
- Added the "Websocket" condition and action action types.
This will allow you to trigger macros on other OBS instances by sending messages via websockets.
For more details you can have a look at this wiki entry.
- Added the option to split recordings to the "Recording" action.
- Added the option to refresh sources to the "Source" action.
This can be used to e.g. refresh browser sources.
- Added the "Http" action which will allow you to more easily send GET and POST requests.
- Added a condition to check current profile.
- Added the option to check the states of multiple macros at the same time to the "Macro" condition type.
- Added Spanish translation (provided by EliasDIPA)
- Set the default screenshot file extension to *.png in the "Video" condition.
- Minor UI layout adjustments for new Yami theme of OBS 28.
- Fixed duration modifier of media conditions not saving correctly.
- Fixed potential crashes when removing macros.
- Fixed hotkeys not being registered for new macros.
- Improved the date condition:
- Added the option to set the show and hide transition of sources and override transitions of scenes using the "Transition" action.
- Added the new duration modifier "within the last" to macro conditions.
This will result in an overall condition being true for at least the specified duration even after the underlying condition is no longer true.
- Added a new action "Studio mode" which will allow you to en-/disable the Studio mode.
- Added option to disable registering of pause hotkeys for macros.
- Added Spanish locale (provided by EliasDIPA).
- Removed artificial delay in "Replay buffer" action before saving replay buffer could be triggered again.
This was added as attempting to save the replay buffer too frequently would result in no file action being saved, but lead to unexpected behaviour in certain setups.
A warning has been added instead.
- The actions "Swap scene" and "Switch preview scene" have been combined into the new "Studio mode" action.
- Enable the option to check for the previous scene during an active transition.
- Allow for finer control of the threshold used for video pattern matching.
- Fix macOS memory leak.
- Fix crash when deleting last macro when highlighting of macro segments is enabled.
- Fix "Media" and "Audio" conditions unexpectedly returning true after unpausing macros containing these condition types.
- Fix scene group random option not being random.
- Fix "Cursor" condition preview frame blocking mouse inputs.
- Fix "Wait until transition to target scene is complete" waiting too long. (E.g. when using the "Cut" transition type).
- Newly created macros will not register pause hotkeys.
They will however be registered when rebooting OBS or toggling the registering of hotkeys.
- Improved the video condition type:
- Added the option to apply the condition checks to only parts of the selected video source.
This option can be used for all types of checks where it would be applicable:
This change should open up much more possibilities to use this condition type and can also save a lot of resources for the more expensive operations like object detection.
- exact match
- change detection
- pattern matching
- object detection
For an example on how this could be used have a look at this guide to automatically hide parts of the screen if a certain pattern is found.
- Added the option to select OBS' main video output as the video source to check.
- Improved the audio action type:
- Added the option to specify rate of change instead of duration for audio fade. (1)
- Added the option to abort any already active audio fade when starting new fade. (2)
When not using this new option a new audio fade will not start if an audio fade was already in progress for a particular source.
- Added the option to wait for an audio fade to complete before continuing with the next action. (3)
- Added media seek action.
- UI improvements:
- Added the option to reorder individual conditions or actions via drag and drop.
- Added a settings dialog to macro tab which contains a few options which can be useful to analyse ...
- Which macros are currently being executed.
- Which conditions are true.
- Which actions are currently being performed.
- Reworked the stop action of the "Macro" action type to ...
- Interrupt any ongoing "Wait" action.
- Block until the macro in question is stopped.
- Reworked some of the state checks of the "Media" condition type.
The state "Ended" and "Ended(Playlist)" will only make a difference on the VLC source type as the regular Media Source does not support playlists.
- Removed the "Played to end" state as it worked identically to the "Ended" state.
- Introduced a new state "Ended(Playlist)", which can be used to check for the end of a playlist.
- The "Ended" state will now also detect the end of individual playlist items.
Any existing Media condition previously using the "Ended" or "Played to end" state checks will automatically be adjusted to use the equivalent "Ended(Playlist)" check.
- Ignore delete hotkey if the macro tab is not in focus.
- Tabs which can be represented via macros will now be hidden by default on fresh installations of the plugin.
This will not change your current settings.
The goal of this change is to slowly transition away from these outdated tabs and remove them at some point in the future.
- Update zh-CN locale. (provided by qwe1154323937)
- Fix date condition's "At" check not working correctly under rare circumstances.
- Fix random action not being very random.
- Fix fade animation triggering unexpectedly for action and condition controls.
- Fix start streaming action only working every second attempt.
- Fix UI freezes if using the video conditions preview dialog while switching to different condition type.
- Added "OBS stats" condition type.
It allows performing actions based on various OBS and system load related statistics:
- CPU usage
- RAM usage
- Average frame time
- Percentage of skipped frames
- Percentage of missed frames
- Percentage of dropped frames
- Amount of data streamed or recorded
- Current bitrate
- Added the option to check whether or not OBS is currently shutting down to the "Plugin state" condition type.
This can be useful if you want to perform actions when closing OBS. For example, if you would want to prepare for the next time you start it back up.
- Added the option to toggle between a simple and a more advanced version of the date condition.
The simple view supports setting up the condition by just providing a day of the week and a time.
- Added the option to highlight recently executed macros on the Macro tab.
- Added hotkey to delete macro segments.
It can be found the OBS settings' hotkey section.
- Added Turkish locale (provided by @dargat)
- Allow reordering macros via drag and drop.
- Reworked the controls for the macro tab's condition and action areas.
Instead of the controls appearing under each condition or action when hovering other them, these controls were moved to the bottom of the condition and action areas respectively.
Individual conditions and actions can now be selected by clicking on them and be moved, deleted or copied using the controls mentioned before.
This should make it easier to work with large amounts of conditions or actions and especially as this avoids the conditions and actions shifting around unexpectedly when hovering over them.
- Added frame around individual macro segments to visually separate them more clearly.
- Moved macro segments will now be highlighted to make it easier to track them visually.
- Removed a bunch of unnecessary collapsing animation triggering when reordering, adding or removing macro segments.
- In case of having only a few single actions or conditions in a macro the segments will no longer be stretched to fill the entire condition or action area.
- Slightly reduced spacing between macro segments.
- Reduced the space taken up by the text edit areas like they are used in the file, filter, source and transform condition and action types.
- Add context menu entry for expanding and minimizing the condition and action edit area.
- The "Show match" button of the video condition will now automatically refresh every second instead of only showing a single match.
This will make it much easier to dial in the settings needed for a successful pattern match or object detection.
- The last opened tab will now automatically be reopened when opening the plugin's settings dialog.
It will reset to the General tab after restarting OBS.
- Allow selecting current scene, previous scene and scene groups in "Switch preview scene" action.
- Allow switching to already active scene if in studio mode.
- Use name of the macro to be copied when attempting to duplicate a macro.
- Also copy the logic type selection when duplicating conditions.
- Double clicking on items in the lists of the "Run" or "Sequence" actions will now allow you to edit the entry.
- Added the option to hide the tabs of the plugin which can be expressed via macros and reduce the visible tabs to "General", "Macro", "Network" and "Scene Group".
This setting will be set as a default in a future version.
- Fix potential crashes when adding or removing macro actions or conditions.
- Fix scene switch action blocking unexpectedly
- Fix freeze when highlighting certain widgets
Special thanks to @lindenkron for his support in testing and providing feedback!
- Add "Sequence" macro action.
This new action will allow you to advance through a list of other macros' actions, advancing to the next item in the list each time this action type is performed.
An example can be found here.
- Add macro action to stop other macros to the "Macro" action type.
- Add option to also check for configured volume level to the "Audio" condition type.
- Fix unexpectedly returning true for hotkey condition.
The condition would return true after unpausing a macro, if a configured hotkey was pressed during the time the macro was paused.
- Fix dock location and size not saving correctly.
- Fix potential crashes reported with the recent beta releases of OBS.
- The plugin folder structure has been slightly changed to move any dependencies the plugin ships with into a separate folder "adv-ss-plugins".
This should make it easier if you would need to manually uninstall the plugin.
- Added the option create a dock widget to check and control whether or not the Advanced Scene Switcher is currently running.
You can access it via View -> Docks -> Advanced Scene Switcher.
It can be used just like any other dock and be freely placed in OBS' dock areas.
- Added the OpenVR macro condition. (Windows only for now)
This will allow you to perform actions based on where your VR Headset is currently located.
Thanks for the suggestion and support in testing @munkilicious!
- Added the option to check if an audio source is muted.
- Added the condition "Studio Mode".
This will allow you to check whether or not studio mode and which preview scene is currently active.
- Added action to switch the current OBS profile.
- Added action to switch scene collections.
- Added action to import plugin settings from a file.
- Added the option to the "Switch scene" action to wait for the transition to complete before continuing with the next action.
This will make it much easier to set up a sequence of scene switches without having to know the duration of each transition beforehand.
- Improved the scene item selection for visibility, order, and transform related macro actions and conditions.
If a particular scene item exists multiple times in the selected scene you can now choose which scene item in particular shall be selected.
The previous behaviour of selecting all scene items is also available still.
- Fix startup behaviour settings not loading correctly, causing the plugin to always be active on startup.
- Fix crash when reordering macros which were marked to run in the background.
- Fix volume not changing when selecting a fade with a duration of zero seconds.
- Fix plugin asking to backup settings when starting the plugin for the first time.
- The OpenCV parts of the plugin have been moved outside the main plugin into a separate library.
This was done to avoid the issue (especially on Linux) of the whole plugin not being able to start if a particular version of OpenCV was not available.
- I started work on the wiki for this plugin:
Feel free to contribute! :)
- Add macro action for triggering screenshots.
Individual sources, scenes or OBS' main output is supported.
- Add macro action to display system tray notifications.
- Add hotkey to toggle pause state of macros.
This will allow setting up even more complicated hotkey actions.
- Add button to manually run macro actions.
This will make it much easier to test macro actions.
- Allow running macros in parallel to other macros.
Previously a macro containing actions that would take a long time to execute (e.g. the "wait" condition) would "block" the plugin from performing any other checks or actions during this time.
While in some situations, this could be the desired effect, there are certainly also situations where this is not ideal. (E.g. a continuous scene switching loop)
Checking this box will allow you to run a macro's action in parallel to other potentially running actions.
- Add condition to check if the plugin is running.
This is mostly useful if you need a condition that is always true, but could also be used to perform actions if the plugin was running for a specific amount of time when combining it with a time constraint. (Small clock icon)
- Allow setting random duration in specified range.
- The run action now also supports supplying a path to a file that is not an application itself.
So for example, if you pass it the path to an mp3 file and your default media player is VLC it will launch the VLC player and start playback of this file, just as if you would have clicked on the file's icon on the desktop.
- Add option to match any or all media sources of a specific scene.
- Add the option to execute another macro's actions.
- Suggest a file name when saving settings.
- Minor UI improvements like resize lists on the macro tab to minimum necessary height.
- Add the option to check for the source and the target scene of an ongoing transition.
At the same time the option "wait for transition to complete" was removed from the "current scene is" check as it did not really fit into that category and its description was not really formulated clearly to begin with.
Note that the behaviour has not change for any already existing macros.
- Add a warning if the macro functionality is not running with highest priority.
- Update locale (zh-CN locale provided by qwe1154323937)
- The plugin is now also available via Flatpak on Linux
The main focus of this update was fixing issues and improving upon existing functionality.
- Add the option to fade in/out volume changes via the "Audio" macro action.
- Add macro action "Random", which will allow you to execute other macros at random.
Paused macros will be ignored.
This should allow you to expand upon the functionality provided by the "Random" tab if needed.
I will probably expand upon this functionality in future, but I thought it wouldn't hurt to make it available to everyone in its current state.
- Allow selecting source type instead of just individual sources for scene visibility action.
This should simplify some setups.
- Add scene-visibility macro condition.
- Allow use of "previous scene" in scene visibility action.
- Allow interacting with OBS main window while plugin settings are opened.
- Fix macro un-/pause hotkeys not working once a macro was executed.
- Fix add, delete, reorder not working when changing macro segment type.
- Fix macro count not updating correctly.
- No longer check the conditions of paused macros.
This should improve the performance if you have a lot of paused macros with "expensive" conditions like video pattern matching.
- Ensure contents of combo boxes are readable when changing scene/filter.
Minor additions and changes:
- Improve the video condition's pattern matching functionality:
This option now supports the option to provide a mask for the used pattern by using the pattern's alpha channel.
In short, this will allow you to match parts of an image which are not shaped as a rectangle.
For example using the following pattern ...
... will all you to match both of the following images:
- Add option to use pattern matching for "output changed" macro condition.
This will allow to use this type of condition for "noisy" video sources like compressed video streams and thus ignore minor changes in the image output.
- Improve the timer condition and add a timer action:
The timer condition was improved to now support pausing and continuing the timer.
The timer's state will now also be saved and reloaded when exiting and relaunching OBS.
So if a timer still had 10 seconds remaining of a 60 second timeout when exiting OBS, the timer will now continue at 10 seconds when restarting OBS.
A corresponding timer macro action was introduced also:
This new action will allow you to pause, continue, reset and set remaining time of timers of other macros.
- Add version info to the window title.
- Add "wait for transition to complete option" for current scene check on the macro tab.
- Add conditions "stream starting" and "stream stopping" to the streaming macro condition.
- Add option to display notifications when the plugin was started or stopped.
- Add description for the "minimum neighbors" parameter for the object detection.
- Reword date condition's repeat option.
- Slightly clean up general tab.
- Improve error output when the data directory cannot be found.
- Fix minimum neighbors parameter of object detection not loading correctly.
- Fix crash when switching scene collection during macro wait action.
- Fix newly created scene sequences not working when including scene groups.
- Fix scroll position being lost on the macro tab when adding or removing macro segments.
- Fix exact image match not working when using images containing alpha channel information.
- Linux: Use process names for the process macro condition and executable tab, instead of relying on window names for this functionality.