Advanced Scene Switcher

Advanced Scene Switcher 1.28.1

Important notes:​

  • This is a hotfix release for 1.28.0.
    Patch notes for 1.28.0 can be found here.
  • The minimum supported OBS version is now OBS 30.1.2 on all platforms in preparation for OBS 31 support
  • Please make sure to back up your settings!
  • The legacy tabs "Scene Triggers" and "Network" were removed. (More details below)
  • If you run into any issues, please either post in the OBS forums or create an issue on GitHub!

Fixes:​

  • Fixed the buttons used to expand or collapse macro groups on the Macro tab not using the correct icon on OBS 31 beta releases.
  • Fixed that not all buttons were being displayed in the "Source" and "Filter" action's option, which allows you to press buttons in the properties window of a given filter or source.
  • Fixed a regression introduced in 1.28.0, which resulted in the date condition being evaluated to true as soon as the plugin was started in certain scenarios.

Important notes:​

  • The minimum supported OBS version is now OBS 30.1.2 on all platforms in preparation for OBS 31 support.
  • Please make sure to back up your settings!
  • The legacy tabs "Scene Triggers" and "Network" were removed. (More details below)
  • If you run into any issues, please either post in the OBS forums or create an issue on GitHub!

Additions:​

  • Added the "Stream Deck" condition type.
    1730031906686.png

    It will allow you to trigger macros using a stream deck.
    The stream deck plugin to support this condition type can be found here on GitHub:
    https://github.com/WarmUpTill/advanced-scene-switcher-streamdeck-plugin/releases
  • Added additional macro properties that will be available for Variables when using a Media condition.
    1730031925639.png

    Especially in the case of using a "VLC source" this allows you to query a bunch of metadata about the item being currently played.
  • Added the option to enable short circuit evaluation of conditions.
    1730031936598.png

    This is mainly intended to enable users to skip resource intensive condition checks if they would not change the overall outcome of the condition evaluation.
  • Added the option to specify a custom macro condition check interval on a per macro basis.
    1730031944997.png

    For example, this should allow you to reduce the frequency of resource intensive checks (e.g. video pattern matching) while increasing the responsiveness of other macros.
  • Added the option to configure if macro will be in state "unpaused" or "paused" on startup.
    1730031957887.png

    The default will remain that the pause state persists across OBS startups.
  • Added the option to wait for media playback to end to the "Media" action type.
    1730031967596-png.108800

    This should enable some users to simplify their macro setups.
  • Added the option to check if users joined or left a given Twitch channel's chat room.
    The username is available in a corresponding macro property.
    1730032003048.png
  • Added more actions to modify variable values (trim and case change actions) (Destroy666x)
  • Added the option to assign the base64 encoded PNG of a screenshot captured with the "Screenshot" action to a variable.
  • Enable use of variables in various inputs of the "Variable" action. (Destroy666x)
  • Added the options to check the current stream key and streaming service to the "Streaming" condition type.
  • Added the option to move scene items above / below another specified scene item in the "Scene item order" action.
  • Added a new log level to log executed macros, but not individual actions being performed.

Other changes:​

  • Removed legacy tabs "Scene Triggers" and "Network".
    The former was a precursor to the Macro tab, with the only condition being "Scene" and a tiny subset of the actions now available for macros.
    A description of how you can translate the entries on the "Scene Trigger" tab to macros can be found here.
    The latter set up a custom websocket server / client to synchronize the currently active scene between OBS instances.
    A description of how to set this up using macros can be found here.
    If you are affected by those tabs being removed and the guides above do not help, please do not hesitate to reach out, and I will guide you on how you can setup macros to achieve the same functionality.
    I apologize if this is causing issues!
    I do not have any concrete plans to remove other legacy tabs yet.
  • The priority settings section on the General tab is now hidden when legacy tabs are hidden.
  • Increased volume meter scale in the "Audio" condition type from [-60dB, 0dB] to [-100dB, 0dB].
  • Added the option to select all items in a source of type "Group" for scene item selections.
  • Added regex options to scene name pattern check of the "Scene" condition type.
  • Added a context menu entry to remove selected macro segment.
  • Added the option to disable the settings being saved when switching between macros.
    This option is only intended for users with huge macro setups, for which this saving of setting introduces a noticeable delay when switching between macros.
  • New macros are now added after the currently selected macro instead of at the end of the macro list.
  • Added option to trim screenshots created in "Video" condition for pattern matching.
  • Added more Twitch chat message and macro properties. (Destroy666x)
  • Allow using regex capture groups in replacement (Destroy666x)
  • UI improvements to the Variable tab. (Destroy666x)
  • UI improvements to the Queue tab.
  • Minor UI changes.
  • Updated Japanese locale (tansancola).

Fixes:​

  • Fixed "Transition" condition being able to miss the start of very fast transitions (e.g. "Cut) in certain scenarios.
  • Fixed "QCssParser::parseColorValue" showing up in the OBS log.
  • Fixed minor UI issues related to macro segment highlighting.
  • Fixed a crashes when using certain special chracters in file selection widgets throughout the plugin.
  • Fixed a crash when changing position of a scene item using the "Scene item transform" action type.
  • Fixed macro action paste happening in the wrong section in certain scenarios.
  • Fixed the "Process" condition not respecting the selected regex options.
  • Added a workaround for obs_source_set_sync_offset() not applying the given audio sync offset for a given source in the "Audio" action type.
  • Fixed connecting Twitch account leading to OBS freeze in some scenarios.
  • Fixed crash when the option was enabled to clear the Twitch chat buffer when a matching message was found.
  • Fixed the "Queue" condition not displaying the correct size selection.

Attachments

  • 1730031967596.png
    1730031967596.png
    5.2 KB · Views: 1,711

Important notes:​

  • The minimum supported OBS version is now OBS 30 on all platforms.
  • 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 various additional settings to the Twitch condition's option to check for new chat messages.
Chat.PNG

Fixes:​

  • Fixed a crash when using the Twitch condition to check for new chat messages and the Twitch IRC servers shut down for maintenance.
  • Fixed a crash which could occur when adding new entries to the legacy tabs.
  • Minor UI layout fixes.
  • Like
Reactions: IDLT and Monsteer

Important notes:​

  • The minimum supported OBS version is now OBS 30 on all platforms.
  • 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!

1.27.1 Hotfix Changes:​

  • Fixed crashes related to widget highlighting.
  • Fixed a crash when accessing macro conditions or actions, which access information about other conditions or actions.
  • Fixed macro selections in conditions or actions not correctly unhiding the very first macro, if this selection was previously hidden.
  • Fixed a crash when selecting a macro in a condition or action while the currently selected macro is being deleted.

Important notes:​

  • The minimum supported OBS version is now OBS 30 on all platforms.
  • 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 "USB" condition type.
    It will allow you to check if USB devices matching given criteria are currently connected or not.
    USB.PNG
  • Added an API to register new macro condition and action types via the OBS scripting interface.
    ScriptingExample.PNG
    A detailed description and examples can be found here in the wiki.
  • You can now choose to paste copied macro actions as regular actions or else-actions.
    ActionPaste.gif
  • Added the option to check and set individual scene item transform settings instead of only being able to modify all settings at once.
    Transform
  • Add option to set maximum replay buffer time.
    ReplayBuffer.PNG
  • Add option to check disk space available.
    DiskSpace.PNG
  • Added a context menu entry to change the existing custom label for macro segments.
    LabelRename.gif
  • Added Portuguese Brazil locale (junior-anzolin)
  • Added Japanese locale (tansancola)

Other changes:​

  • "Slide Show" condition:
    • Added support for "slideshow_v2" source in the "Slide show" condition type.
    • Added the option to use regular expressions to match the current slide show path.
    • Added support for the "Slide index", "Slide path", and "Slide file name" macro properties to be used in variables.
  • If the monitor setup changed, the "Projector" action type will now no longer discard the monitor selection but instead simply skip executing its action.
    It will continue executing the action if the original monitor setup is restored or a new monitor selection is made.
  • Minor UI improvements:
    • Switch button type to more closely match the OBS style.
    • Use default cursor icon on macro segment control hover.
    • Prevented users from accidentally enabling the option to "skip executing actions [...]" when scrolling through the General tab options.
  • Logging improvements:
    • Erros will now be logged when starting a commercial in the "Twitch" action type fails.
    • Removed a few outdated log messages.
    • Some messages will now only appear in verbose logging mode.
  • Changed the folder name of the advanced scene switcher internal plugin folder from adv-ss-plugins to advanced-scene-switcher-plugins to make it more clear which files and folders belong to this plugin.
  • buildspec: Update OBS Studio dependency to 30.0.2
  • Adapted the dock widget handling to the new OBS dock API:
    • The plugin will no longer attempt to restore dock positions on scene collection change.
    • When a macro is being renamed the current macro dock widget will be removed and the one with the new name manually has to be reopened.
    • The "Advanced scene switcher" dock position might be lost be when updating the plugin to this version.
  • The "Run" condition default timeout was increased to one second.
    This does not affect existing instances of this condition type.
  • Reworked the "Media" condition to now either check for the "state" or a "time restriction" of a given media source, instead of always checking both at the same time.
    This makes it much easier to check for scenarios like "If media source is in state ended OR the time remaining is less than 3 seconds".
    This will only affect new instances of the "Media" condition.
    The behavior of existing instances of the "Media" condition will not change.
  • Added the option to clear message buffers of the "Websocket", "Midi", and "Twitch" condition types when the condition matches.
    This can be useful if very high frequency signals are expected, for which only the first "match" shall be handled.
  • When comparing the output of a video source to an image file, the "Video" condition type will now check if the underlying file has been modified.
    If it was modified, the file content will be reloaded.
  • The plugin will now show warning, if the default action or condition type ("Scene") cannot be created.
    This is intended to detect corrupt installations of the plugin and warn the user of potential crashes.
  • Increase default threshold value for image pattern matching in the "Video" condition type.
    This means when not changing the threshold setting the pattern must more closely match the sources video output to be considered a match.
    This was done as false positive matches often resulted in seemingly random actions being performed, which in most scenarios is more harmful than no action being performed.
  • The warning displayed if a advanced scene switcher plugin failed to load will now only be displayed a single time per OBS startup.

Fixes:​

  • Fixed a crash which could happen in rare scenarios of extremely high frequency resize events being fired.
  • Fixed a crash in "MIDI" condition and action initialization if no audio devices are connected at all. (Linux)
  • Fixed a crash when using the "Advanced scene switcher" dock.
  • Fixed the "goal type" macro property tooltips of the "Twitch" condition type not being displayed correctly.
  • Fixed exponentially growing RAM consumption based on the number of items in a scene for the "Media" condition type in scenarios where the "Any / All media sources on scene ..." was selected.

Important notes:​

Fixes:​

  • Fixed "Video" condition type not being available on Windows.
  • Like
Reactions: IDLT

Important notes:​

Additions:​

  • Added the option to define input variables for macros for which values can be set when executing them via the Macro action.
    337784832-90a497b7-5cae-4d0e-8dd0-2381fe01fbab.png
  • Added the option to swap the values of two variables. (Destroy666x)
    337784189-b563ce37-c08c-450e-b2b2-dcdb56ac553d.png
  • Added the option to check the width and height of a source.
    337784001-f972911e-607b-4e50-a3cc-825205dbfd28.png
  • Added macro properties to the filter and source condition.

Other changes:​

  • Minor UI improvements.
  • Improved visibility of the red highlight in the status dock when the plugin is stopped.
  • The default option of the action of type "Macro" is now "Run macro".

Fixes:​

  • Fixed imported variables and action queues not being visible in the respective tabs until reopening the settings window.
  • Fixed rare crash related to widget highlighting.
  • Fixed crash when adding variables, action queues, websocket connections, or Twitch connections.
  • Fixed the plugin attempting to restore the last opened tab, if that tab is no longer visible. (E.g. the variable tab if all variables were removed)
  • Fixed some locale issues.

Important notes:​

Additions:​

  • Added the "Folder watch" condition type.
    This will allow you to monitor for changes in a given directory. (For example check new files or folders)
    1716079546758.png
  • Some minor UI improvements

Fixes:​

  • Fixed "Audio" condition not treating an audio source not outputting any audio as having a volume level of "0%".
    This was a regression introduced in 1.26.0.
  • Reworked some code which resulted in a newer version of the Microsoft Visual C++ Redistributable having be installed for the plugin to be functional. (Windows only)
  • Like
Reactions: IDLT and OpenFields

Important notes:​

Please make sure to back up your settings!
Windows only: It might be necessary to install the most recent version of the Microsoft Visual C++ Redistributable.

If you run into any issues, please either post in the OBS forums or create an issue on GitHub!

Fixes:​

  • Fixed potential UI stuttering.
    This could happen, if macros utilizing the Twitch APIs are set up.
    In that case, the querying of the Twitch connection status for the Twitch connection tab could time out.
    The rate at which this information is being queried was now reduced to be only performed once when switching to the Twitch tab.
  • Like
Reactions: IDLT

Important notes:​

Please make sure to back up your settings!
Windows only: It might be necessary to install the most recent version of the Microsoft Visual C++ Redistributable.

If you run into any issues, please either post in the OBS forums or create an issue on GitHub!

Additions:​

  • Added the option to copy and paste individual macro segments across macros.
    You can either right-click on the segment of interest or select it and press CTRL+C to copy it.
    Pasting can be done either by right-clicking in the current macro or pressing CTRL+V.
    CopyPaste.gif

    At the moment the selection is limited to only a single macro segment.
  • Similar to the recently introduced Variables tab, new tabs will now be shown for websocket connections, action queues, and Twitch connections, if those types of resources are in use.
    329693036-f9c5d6a8-ea3b-4b99-9932-e6f352992389.png
  • Improved the "Macro" action type to allow users to conditionally execute actions of other macros.
    329693206-9dd73443-7fe4-4e60-af1f-a4a7a3464421.png
  • Added the option to check if a hotkey is released.
    329693348-4a7868dd-4828-4827-ad35-930684ea7444.png
    This was already possible previously by inverting the condition, but this should make it more clear that this type of check is possible.
  • Improved "Window" action type (Windows only)
    • The option to focus a window no longer restores maximized windows to their original size.
    • The focus, maximize, minimize, and close options will now be performed on all windows matching the given window title instead of only the first one being found.

Fixes:​

  • Fixed the layout of the "System tray notification" action.
  • Fixed a potential crash when adding new actions to a macro.
  • Fixed the very first replay buffer save not triggering "Replay buffer" condition properly.
  • Fixed macro segment highlighting not being in sync, which could lead to the impression, that actions of macros are executed in a random order instead of sequentially.
  • Fixed a crash which could occur on Linux systems if the access to MIDI devices was denied.
  • Fixed the "Audio" condition type incorrectly reporting low volume levels, when the configured "check conditions every X ms" option on the General tab was set to very low values.
  • Fixed else-action controls not being highlighted correctly.
Top