Advanced Scene Switcher

Advanced Scene Switcher 1.29.0

Supported Bit Versions
  1. 64-bit
Source Code URL
https://github.com/WarmUpTill/SceneSwitcher
Minimum OBS Studio Version
30.1.0
Supported Platforms
  1. Windows
  2. Mac OS X
  3. Linux
This plugin will allow you to automate various tasks using "Macros".
Macros consist of a list of conditions under which a list of actions will be performed.

overview.gif


Examples and guides can be found in the wiki.
Feel free to contribute!

If you run into any issues feel free to report them in the discussion thread or create an issue on GitHub.


Currently supported condition types are:
Currently supported action types are:
  • Audio
  • Clipboard
  • File
  • Filter
  • Http
  • Hotkey
  • MIDI
  • Macro
  • Media
  • Open Sound Control
  • Plugin state
  • Profile
  • Projector
  • Queue
  • Random
  • Recording
  • Replay buffer
  • Run
  • Scene collection
  • Scene item lock
  • Scene item order
  • Scene item transform
  • Scene item visibility
  • Screenshot
  • Sequence
  • Source
  • Streaming
  • Studio mode
  • Switch scene
  • System tray notification
  • Timer
  • Transition
  • Twitch
  • Variable
  • Virtual camera
  • Wait
  • Websocket
  • Window
Select "Go to download" for download and not "Source Code URL".

Please have a quick look at the FAQ in case you are having an issue.

Installing the plugin:
It might be necessary to install the most recent version of the Microsoft Visual C++ Redistributable.
Then either ...
  • Run the provided installer. (You might have to click 'More info' and select 'Run anyway' if it is blocked by Windows)
  • Or alternatively manually copy the obs-plugins and data folders in the respective OBS Studio installation directory.
    It is usually located at C:\Program Files\obs-studio.
Recommended: Run the provided installer. (You might have to right click and select 'open' if it is blocked)

Alternatively manually install the the plugin files to ~/Library/Application\ Support/obs-studio/plugins/advanced-scene-switcher.plugin.

It might also be necessary (if MacOS decided to be annoying) to remove the plugin from the quarantine.
To do this follow these steps:
  1. Open the Terminal application
  2. Run the command: xattr -r -d com.apple.quarantine ~/Library/Application\ Support/obs-studio/plugins/advanced-scene-switcher.plugin
Thanks djSmileyMike for your help!
Note that the plugin has dependencies to:
* libXss
Optional:
* libXtst
* libcurl
* libopencv-imgproc
* libopencv-objdetect

If you are using snap you can install the following package for an OBS installation which comes bundled with the plugin:
sudo snap install obs-studio

The plugin is also available via the Flatpak package manager for users who installed OBS via Flatpak:
flatpak install com.obsproject.Studio.Plugin.SceneSwitcher

If you have installed OBS via other means, it is most likely necessary to install the plugin manually.
To do so copy the advanced-scene-switcher.so file and into the OBS Studio plugin folder.
The location of this folder can vary, so you might have to look around a bit.

Examples are ...
/usr/lib/obs-plugins/
/usr/lib/x86_64-linux-gnu/obs-plugins/
/usr/share/obs/obs-plugins/
~/.config/obs-studio/plugins/advanced-scene-switcher/bin/64bit/
~/.local/share/flatpak/app/com.obsproject.Studio/x86_64/stable/active/files/lib/obs-plugins/
/var/lib/flatpak/app/com.obsproject.Studio/x86_64/stable/active/files/lib/obs-plugins/

Unfortunately the expected location of the locale, which can be found in the data folder, can vary also.
The data folder, usually should be copied to:
~/.config/obs-studio/plugins/advanced-scene-switcher/

If this does not work you can try to copy the "locale" folder found inside the data folder to:
/usr/share/obs/obs-plugins/advanced-scene-switcher/locale
~/.local/share/flatpak/app/com.obsproject.Studio/x86_64/stable/active/files/share/obs/obs-plugins/advanced-scene-switcher/locale
/var/lib/flatpak/app/com.obsproject.Studio/x86_64/stable/active/files/share/obs/obs-plugins/advanced-scene-switcher/locale

In doubt, please check where other "en-US.ini" files are located on your system.

When manually installing the prebuilt artifacts from GitHub please keep in mind that they are built for Qt6.
If your OBS installation is still linking against Qt5 and you install a plugin depending on Qt6 OBS might crash.
Manually compiling the plugin for Qt5 is possible still if it should be required.

Additional Information and Notes:
If you want to build the plug-in yourself the source is available here.

Resource icon provided by lindenkron.
Author
Warmuptill
Downloads
666,873
Views
1,463,134
First release
Last update
Rating
4.60 star(s) 88 ratings

More resources from Warmuptill

Latest updates

  1. Advanced Scene Switcher 1.29.0

    Important notes: The minimum supported OBS version is OBS 30.1.2. Please make sure to back up...
  2. 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...
  3. Advanced Scene Switcher 1.28.0

    Important notes: The minimum supported OBS version is now OBS 30.1.2 on all platforms in...

Latest reviews

I'm still learning how to use this plugin, but I already know it is powerful, and is only getting more so by the update. Thank you for all the time you have put into this. It has resolved a number of real production issues for me.
Adds functionality which I can't find anywhere else
Specifically
1-the ability to take a screenshot of a SPECIFIC source rather than the default SELECTED source
2-the ability to run command lines
Ι can not stress enough how flexible and useful this plugin is. There is literally countless features and it allows you to tailor it to your needs in every possible way. It's almost like pseudo coding on steroids. Warmuptill sincerly thank you for this wonderful plugin! If I could only pick one it would wholeheartedly be this plugin. I hope you update it with much more features from feedbacks and your ideas but you've done a crazy job so far! I can also tell you are a great guy from responding to some of my questions promptly, it was a huge help. Much appreciated! Protect this fella at all cost! Best plugin by far.
This may be the best tool that I am currently using for my giveaway events. It works great with the Rode Caster Duo's MIDI features. Flawless. Thanks a lot!
Gotta admit Warmuptill is killing it with this plugin.

Regular new features, Regularly condensing back the interface, and Regularly detailed patch notes.
I have been using this since it's inception and I find myself relying upon it more and more as it expands.
I love this plug-in, but since i update obs, stop working, i try to install the last version of Advanced Switcher, but the problem still there...
W
Warmuptill
Unfortunately, handling support requests via reviews is very difficult.
Please provide more information in the discussion section and I am sure we can figure out what the issue is. :)
Would it be possible for you to add a condition for audio mute state (yes, not action)? It would be extremely useful for a conditional auto mute/unmute macro for away/active scene changes I'm trying to put together.

Thanks so much for this plugin! You're amazing! <3
W
Warmuptill
This option should already exist in the Audio condition type.
https://github.com/WarmUpTill/SceneSwitcher/wiki/Audio-condition#configured-volume-level

If I am misunderstanding your request, I apologize, and please let me know what you meant in the discussion thread!
Really good plugin, works extremely well on X11 and Windows platforms.

Through no fault of the developer, the cursor isn't captured well in Wayland which really sucks. Haven't been able to come up with a workaround yet.

It's a Wayland limitation as they've restricted access to that hard... but at the same time Wayland is kind of the standard for most distros now. There might be some places like pipewire to look at workarounds on this , but in the meantime no bueno.
W
Warmuptill
If there is any known (and feasible) workaround to get the global cursor position on Wayland based windowing systems I am open to adapt the plugin to handle this case.
Unfortunately so far I am not aware of any.

--------------------------------------------------
Update:
A potential workaround by achow101 can be found in this GitHub issue:
https://github.com/WarmUpTill/SceneSwitcher/issues/512#issuecomment-2372785305

It introduces a custom condition type "KWin Cursor" via the scripting interface.
Under the hood it uses "kdotool" to query the cursor position.
So, if this tool should be available for your particular Linux distribution it might be worth a shot.
Whenever I tried creating a condition for the macro, my OBS crashes immediately. I am using the latest plugin and OBS version and the crash log says that it is the plugin issue.

Someone else told me to downgrade my OBS but I'm not sure which version I should downgrade too. Does anyone know a way about this?
W
Warmuptill
Thank you for your review of the plugin.

Unfortunately handling support requests via reviews is very difficult since there is no way for me to communicate with you besides this single reply.
Please share the the crash log in the discussions thread and I will try to figure out what the issue is.

--------------------------------------------------------------------------------

Update:

After looking through your other discussion thread regarding this crash I have the suspicion that you might have attempted to manually install the plugin by copying individual files.
However, you seem to have forgotten at least one file / folder.

This results in the plugin not knowing any condition or action type.
The plugin cannot handle this state state and will thus crash when you try to add a new condition.

I would advise you to use the installer instead.
If that is not an option for you (e.g. because you are running a "portable" OBS install) feel free to contact me directly and I will guide you through the "manual" installation.

I hope this helps! Please let me know in the plugin's discussion thread! :)
Godlike automation.

Used this to hack together a replay buffer that doesn't overlap/waste space by re-clipping the same footage. Here's the importable macro code for anyone interested: https://obsproject.com/forum/threads/smarter-replay-buffer-options.156347/post-651432
Top