Advanced Scene Switcher

Advanced Scene Switcher 1.28.1

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!

Additions:​

  • Added the option to set custom labels on macro segments.
    Label.gif
  • Added the option to export macro as plain json instead of compressed json.
    Export.gif

    Both variants can be imported just like before.
  • Increased the maximum for scene item selections based on the index to 999. (Previously 99)

Fixes:​

  • Fixed index based scene item selection not saving the end of the index range correctly. (Destroy666x)
  • Fixed source setting and macro property selection not resizing correctly in some circumstances.
  • Fixed macro selection dialogs not opening at the plugin's setting window location.

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!

Additions:​

  • Added the "Clipboard" condition type.
    It allows you to trigger actions based on the content of your clipboard.
  • Added new macro properties for the "Run" action and condition type. (Destroy666x)
  • Added the option to configure the behavior of macros in case a new execution is triggered while another execution is already running. (Destroy666x)
  • Added the option to enable or disable audio sources on given audio tracks to the "Audio" condition type.
  • Added the option to truncate or pad variable values.
  • Added the option to press buttons in the properties dialogs of filters.

Other changes:​

  • Improvements to the Variable tab (Destroy666x):
    • Added the "last changed" column
    • Added tooltips
    • Added hotkey to remove all selected variables (Del)
    • Added hotkey to open the settings dialog of selected variable (F2)
  • The settings selections will now display the value type that is expected to be entered and if they belong to a group of settings.
  • Minor UI improvements

Fixes:​

  • Fixed "Source" and "Filter" action saving decimal numbers as integers when modifying a single settings value. (Destroy666x)
  • Fixed a crash when attempting to set the value of a variable to an invalid environment variable.
  • Fixed that the timer condition was not properly generating random values.
  • Fixed a crash when stopping a queue from an action within the queue itself.
  • Fixed disabled actions being inserted into action queues.
  • Fixed deletion of variables via Variable tab not updating other variable selections properly.
  • Fixed the macro group expand / collapse icons not being set on OBS 30.1.2.

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.
  • Like
Reactions: IDLT and youjiman

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.
    306569067-5769f78c-8197-405c-9cae-ca61e97bf521.png


    You can check if a action queue is started, stopped, and its size using the "Queue" condition.
    306570144-154ee8cb-8c8f-434d-94fe-06bda71b5950.png

    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:
    306573275-82c982ae-e7dd-4e38-8ca8-0741f2e8bca4.png


    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)
    306575809-a901b654-b7f2-488e-a860-f326f3526acd.png
  • 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.
    306576317-b32ae1d8-0518-479e-9e0f-ac1db34a2ff7.png
  • 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.
    306578960-92a38fe6-32dc-4459-bebe-a591d4bcdd4e.png
  • 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.
    306580250-fd381e5e-ad36-4bb9-bcf1-1e08fe780479.png


    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.
    309480050-4e5090d7-f541-494a-aa36-779483790b93.PNG
  • 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.
    309480448-0f2c74e3-c093-4bd2-a731-b8bdd76a7dee.png

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.
    309480325-540966ff-3a71-4467-a4d0-144052d924c7.png

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.
    image
  • Added option to check if a given macro is currently paused
    image
  • Added the "Clipboard" action type. (Destroy666x)
    image
    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.
    Process
    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
    TwitchAction
  • 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 ...
    TwitchCondition
    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:
    ElseAction
    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.
    grafik
    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.
    image
  • Improved the "Variable" action by adding the option to ...
    • Set a placeholder text when asking for input.
      image
    • Set to the value of a given environment variable.
      image
    • Set to the value of the count of scene items of a given scene. (to enable iteration over scene items)
      image
    • Added the option to set a variable value to the length of a given input string.
      grafik
    • Added the option to extract json fields from a variable.
      grafik
  • Added the "all" option in filter selection to make it easier to apply changes to all filters of a given source.
    grafik
  • Added the option to check if the scene item transform of a given source changed. (Oekn5w)
    grafik
  • Added the option to open the properties and filter windows of sources.
    grafik
  • Added the option to the "Media" action to seek to the percentage value of the media source's playback length.
    image
  • 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:
    grafik
    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.
    image
  • Added option to disable filtering by typing in various selections.
    image
  • 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:​

  • Added the option to selectively skip execution of macros on startup.
    SkipExec

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.
Top