Advanced Scene Switcher

Advanced Scene Switcher 1.28.1

Destroy666

Member
Is there a way to create an action to toggle the status of a macro? Basically setting a Paused macro to Unpause and vice versa?
Macro action has a bunch macro related stuff to select, including (un)pausing. No toggle but you could tinker with else setup like this:
1738019513294.png

Although running such macro would also be cumbersome as it would require 2x Run macro action for actions and else actions when condition matches.I could maybe add Toggle macro action whenever I have time, but who knows when that'll be.
 
  • Is it possible to utilize a variable in the X and Y fields for the Cursor "is in region" function of a macro?
  • Is it possible to make a "HTML" style button for hover and click, but on an object instead of using the Cursor "is in region" function?

BACKGROUND
I have "badges" on my OBS gui, that are activated with a hotkey.... that look like this:

Screenshot 2025-01-29 104353.jpg



And when one is triggered by the hotkey, it appears as if hovered and clicked by the mouse:

Screenshot 2025-01-29 105507.jpg



I have been successful in creating macros that behave as I want them to, using the Cursor function in some macros, but it is limited to hard-coding the X-Y values for the region that makes the hover or click work.

And, I have multiple monitors I might want to place the OBS gui screen on, and I also want to be able to support users that have completely different screen setups.

In a nutshell, I'd like to able to specify which screen is the one used for the OBS gui, and then have the Cursor "in this region" X-Y values be set by whatever "values" that screen reflects -- as in, if the screen is to the right vs. the left of the "primary" screen that OBS is actually recording.

Any thoughts or ideas?
 

Destroy666

Member
Is it possible to utilize a variable in the X and Y fields for the Cursor "is in region" function of a macro?

Press the kebab icon (triple vertical dot) next to the fields. That turns them into variable selection.

Not sure what the rest means. Are those "badges" added by another plugin? Checking their screen position is definitely not the most reliable solution, yeah. Not only because of screens but the OBS window can also be resized.
 
Press the kebab icon (triple vertical dot) next to the fields. That turns them into variable selection.

Not sure what the rest means. Are those "badges" added by another plugin? Checking their screen position is definitely not the most reliable solution, yeah. Not only because of screens but the OBS window can also be resized.

Thank you for the reply,

The “badges” are just what I called the graphic elements, since they are not actual working “buttons”.

I did have an idea that I am working out… that is to utilize the Windows “primary” display for the OBS gui instead of as the display to “capture” for recordings — that way the X and Y values would always have 0,0 in the upper left of the screen for thr gui.

Then, I am using Autohotkey to force the gui to the 0,0 location, and to be maximized as well… this will be part of a macro I already use “on launch” of OBS, and also a macro I use to “reset the gui” when needed.
 

Ads1234

New Member
Hi everybody, first time here.

I have a simple task I want triggered by a stream deck and I’m having trouble figuring out how. Here’s what I’m after:

I have 3 cameras (let’s call them C1, C2 & C3) and, with the press of a button, would like to trigger them to cycle in a certain order with a set interval. I'd then like this sequence cancelled when I manually select a scene.

Button 1 - C1-C2-C3 repeat
Button 2 - C1-C3 repeat
Button 3 - C1-C2 repeat
Button 4 - C2-C3 repeat

I have the scene group tabs set in ACS and was hoping to just have a hotkey to just play a group until I manually switch scene again.

I’ve really spent too much time trying to work this out so thought I’d see if there’s a solution anybody knows of?

I even faffed about with getting streamer.bot on my Mac…

Thanks in advance



Adam
 

AaronD

Active Member
Hi everybody, first time here.

I have a simple task I want triggered by a stream deck and I’m having trouble figuring out how. Here’s what I’m after:

I have 3 cameras (let’s call them C1, C2 & C3) and, with the press of a button, would like to trigger them to cycle in a certain order with a set interval. I'd then like this sequence cancelled when I manually select a scene.

Button 1 - C1-C2-C3 repeat
Button 2 - C1-C3 repeat
Button 3 - C1-C2 repeat
Button 4 - C2-C3 repeat

I have the scene group tabs set in ACS and was hoping to just have a hotkey to just play a group until I manually switch scene again.

I’ve really spent too much time trying to work this out so thought I’d see if there’s a solution anybody knows of?

I even faffed about with getting streamer.bot on my Mac…

Thanks in advance



Adam
There are probably more ways to do this, but I can see two at the moment:

---

Set up each of the 4 sequences separately and independently, with each macro creating the condition that the next one looks for. So far, they'll fight each other, but you'll add a condition later that makes them play nice:
  • Sequence 1.1
    • Conditions:
      • C1 active for A1 seconds
    • Actions:
      • Switch to C2
  • Sequence 1.2
    • Conditions:
      • C2 active for B1 seconds
    • Actions:
      • Switch to C3
  • Sequence 1.3
    • Conditions:
      • C3 active for C1 seconds
    • Actions:
      • Switch to C1

  • Sequence 2.1
    • Conditions:
      • C1 active for A2 seconds
    • Actions:
      • Switch to C3
  • Sequence 2.2
    • Conditions:
      • C3 active for B2 seconds
    • Actions:
      • Switch to C1
Etc.
And likewise for all the other sequences you want, completely separate from each other, and ignoring for the moment that the others exist. Then to keep them from fighting each other, add a variable condition to each one (I've called it Selection here, but you can call it anything):
  • Sequence 1.1
    • Conditions:
      • Selection equals 1
        AND
        C1 active for A1 seconds
    • Actions:
      • Switch to C2
Etc.
Do that for all of them, with the appropriate value for Selection, and then each sequence only works when Selection equals that value.

Now, add one more set of macros to set the Selection:
  • Control 1
    • Conditions:
      • Button 1
    • Actions:
      • Set Selection = 1
  • Control 2
    • Conditions:
      • Button 2
    • Actions:
      • Set Selection = 2
Etc.
That's a lot of macros, but they're all short and simple, so it shouldn't be too bad to think through and see what it's all doing.

This way allows you to have complete customizability, with separate times and orders for each one. You may also have to "kick start" the sequence by explicitly switching to something that's included in it. Otherwise it'll just sit there and not do anything.

---

Have a macro for each scene that has no conditions and only switches to that scene:
  • C1
    • Conditions:
    • Actions:
      • Switch to C1
Etc.
And then a macro for each sequence that has a Sequence action in it. In each of those Sequence actions, add the appropriate switching macros to do what you want, and maybe a Timer condition to have it fire periodically:
  • Sequence 1
    • Conditions:
      • Every A seconds
    • Actions:
      • Sequence:
        • C1
        • C2
        • C3
  • Sequence 2
    • Conditions:
      • Every B seconds
    • Actions:
      • Sequence:
        • C1
        • C3
Etc.
And then to keep *those* from running over each other, you can add the variable as before, and its controlling macros:
Every A seconds:
  • Sequence 1
    • Conditions:
      • Selection equals 1
        AND
        Every A seconds
    • Actions:
      • Sequence:
        • C1
        • C2
        • C3
Etc.
  • Control 1
    • Conditions:
      • Button 1
    • Actions:
      • Set Selection = 1
  • Control 2
    • Conditions:
      • Button 2
    • Actions:
      • Set Selection = 2
Etc.

---

Personally, I like the first one better, but both should work.
 
Last edited:

Ads1234

New Member
Thanks Aaron!

I just started following this but think I'll try in the morning!

I'm just curious though: How can you utilise scenes groups? I was imaging I could just make scene groups and have a macro saying 'when button A is pressed - trigger scene group A'.

Anyway thanks for the reply, I'll do this on fresh eyes tomorrow.

Adam
 

AaronD

Active Member
I'm just curious though: How can you utilise scenes groups? I was imaging I could just make scene groups and have a macro saying 'when button A is pressed - trigger scene group A'.
It's possible that I've missed something obvious, but I don't remember seeing that. Where are you looking?

A bit of googling turns up a feature request from 2020, to be able to group scenes in the same way as you can with sources, but to my knowledge, that still hasn't happened. OBS 30.2.3 on Ubuntu Studio 22.04 LTS doesn't, which is what I use. (going to rebuild it on 24.04 LTS soon, but haven't yet)

For my more complex rigs, I have a naming convention that sorta gets me partway there, and I manually order them to make a folder structure of sorts with those names...but the naming convention is really to have something that Adv. SS can match and send the appropriate control messages all over the place to automate the rest of the rig. The organization is just a welcome side-effect of that.
 

Addiefied

New Member
Hi, I'm still wondering how to make it work on the latest OBS build (portable version). It works flawless on the normal version but I feel the need to use it on portable version as well, what's the workaround for that?
I've the latest version of plugin.
 

phillymantis

New Member
i know ADVSS has OCR .....but is therer a way to perform an action if the number on the selected area is bigger than or less than
that would be pretty cool for sports/gaming/finance very cool actually
 

Destroy666

Member
i know ADVSS has OCR .....but is therer a way to perform an action if the number on the selected area is bigger than or less than
that would be pretty cool for sports/gaming/finance very cool actually
You can perform anything that the Variable condition can perform. Just use Variable Set to macro property action with the OCR text first.
 
Top