Advanced Scene Switcher

Advanced Scene Switcher 1.28.1

Supported Bit Versions
  1. 64-bit
Source Code URL
https://github.com/WarmUpTill/SceneSwitcher
Minimum OBS Studio Version
30.0.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
600,384
Views
1,323,851
First release
Last update
Rating
4.58 star(s) 83 ratings

More resources from Warmuptill

Latest updates

  1. 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...
  2. Advanced Scene Switcher 1.28.0

    Important notes: The minimum supported OBS version is now OBS 30.1.2 on all platforms in...
  3. Advanced Scene Switcher 1.27.2

    Important notes: The minimum supported OBS version is now OBS 30 on all platforms. Please make...

Latest reviews

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
why my advanced scene switcher only show up general and macro only? where are the others like time or something else....
W
Warmuptill
I assume you were previously using an OBS version older than OBS 28 and just upgraded to a more recent release.
There was unfortunately a breaking change a few years ago when OBS 28 was released, which resulted in you having to reinstall a more recent version of the advanced scene switcher plugin as the old version of the plugin was no longer compatible.
This unfortunately resulted in your settings being reset to default and thus the old non-macro tabs being hidden by default.
You can re-enable the old tabs, but clicking the corresponding checkbox on the General tab.
A screenshot of this setting is also visible in the FAQ:
https://github.com/WarmUpTill/SceneSwitcher/wiki/FAQ

I am very sorry about this and I hope this information helped!

If you have further questions feel free to ask in the discussion thread as the communication via reviews is rather limited.
I wish this plugin was called something else because its name undersells it HARD, there's so much you can do with it, switching scenes is like a single grain of sand on the beach of functionality it offers.
I legitimately think I'm not exagerating when I say most people do not understand how crazy powerful this plugin is.
Fantastic plugin that i've used for a good few months now, has pushed our broadcast to new levels.

One issue I have run into today is that when using the 'Scene item visibility - sources in index range' function, the upper index range doesn't save on reload or if duplicating the macro making it effectively broken. Also it only goes up to 99. So scenes with over 99 sources have limitations. Makes it difficult if you are bulk hiding sources, but only on the truly large scenes!
W
Warmuptill
Glad to hear that you found a use for the plugin! :)

The issue of the upper index not saving correctly should be solved with the most recent release.
The maximum value for the index selection was also increased to 999.
Sugestion: Change audio source delay when change a scene
W
Warmuptill
I believe this should already be possible, if I am understanding correctly what you are trying to do.
You can use the "Scene" condition to check for the scene change and use the "Audio" action to set the "Sync offset" the desired value.

If that is not what you were looking for or you need support in setting this up, feel free to reach out in the plugin's discussion thread! :)
Top