I was aware of the visual guides, but not of the ignore entry thing, dang. Sorry!For conditions the "ignore entry" logic type exists, which just skips over that given condition element.
View attachment 96574
And just to mention it - you can also enable visual guides indicating which condition is currently evaluating to "true":
Troubleshooting
An automation tool for OBS Studio. Contribute to WarmUpTill/SceneSwitcher development by creating an account on GitHub.github.com
Thanks very much! I was able to get it sorted using the Macros. (migration is a good thing)Do you want the macro to override the manual switch? Or do you want a set of scenes that shuffles itself *only* when you're already in that set? Both are possible, and the wrong one will likely be annoying!
The old tabs still exist, if you uncheck the box on the General tab to hide them, but they're not maintained anymore and might even go away at some point. So try to migrate everything to the macros.
So thrilled that you all took the time to respond. I feel very good about using this plugin with such great support. Thank you!As already mentioned by @AaronD there are multiple ways of achieving this.
Here is an example guide which might help you get started:
Switch scenes randomly
An automation tool for OBS Studio. Contribute to WarmUpTill/SceneSwitcher development by creating an account on GitHub.github.com
If you have any questions do not hesitate to ask! :)
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...
The normal way that I'd do this is:I'm trying to setup a "simple" script and I cant for the life of me figure this out!! Can someone please help me? Heres what I'm trying to achieve.
Main Scene - Viewed for 30 seconds, then transitions to a Second Scene
Second Scene - Viewed for 30 seconds, then transitions back to Main Scene
Main Scene - Viewed for 30 seconds, then transitions to Third Scene
Third Scene - Viewed for 30 seconds, then transitions back to Main Scene
etc, etc.
So just main - scene 1 - main - scene 2 - main - scene 3, etc. I....have....tried...everything....I dont understand how to achieve this...
There are multiple ways of achieving this (depends a lot on what you need to decide what the best approach would be):I'm trying to setup a "simple" script and I cant for the life of me figure this out!! Can someone please help me? Heres what I'm trying to achieve.
Main Scene - Viewed for 30 seconds, then transitions to a Second Scene
Second Scene - Viewed for 30 seconds, then transitions back to Main Scene
Main Scene - Viewed for 30 seconds, then transitions to Third Scene
Third Scene - Viewed for 30 seconds, then transitions back to Main Scene
etc, etc.
So just main - scene 1 - main - scene 2 - main - scene 3, etc. I....have....tried...everything....I dont understand how to achieve this...
An example how to use variables for scene switching exists here:@Warmuptill I know you've explained it already, but could there be a wiki entry on how to do that sort of thing with variables? Thanks!
My second version does do that. A->B->A->C My main goal there was expandability without modifying, adding, or removing any of the macros, which I don't think any of the other solutions can do. Debug it once, and then it's all in the naming convention for the scenes, as many or as few as you want to have.
- The approach outlined by @AaronD (using "current scene is ..." conditions) is of course also valid and has the mentioned upside of being able to easily interrupt the sequence.
The downside is that you cannot transition from one scene multiple different scenes easily. (So something like A->B->A->C might be tricky to set up)
I keep forgetting about the Sequence action. Thanks!
- Yet another approach would be to use the "Sequence" action.
View attachment 96638
It has the upside of making it rather easy to remove individual sequence elements at "runtime" by simply pausing the corresponding macro.
Bookmarked this time! Thanks again!An example how to use variables for scene switching exists here:
But I assume you had something specific to the sequence setup in mind.Variables
An automation tool for OBS Studio. Contribute to WarmUpTill/SceneSwitcher development by creating an account on GitHub.github.com
I might try to add some more wiki entries on the weekend. :)
There is not direct check for "non-transparent image is being rendered".Is there any way if e.g. a browser source is currently drawing anything = it has any non-transparent pixels? Unfortunately `Source` -> `is showing` is only checking visibility, which is always on. This is basically a notification popup browser source and I'd like to perform some actions once it shows up. I can get around it with sound as I can make it play one, but wondering if without that there's any way.
What about the "has no output" option? What does that do? I noticed that and thought that "if not has no output" might work, but I can't get both "if" and "if not" to fire with that.There is not direct check for "non-transparent image is being rendered".
But, depending on what is being displayed, you might be able to use the Video condition's brightness or color matching.
(If source is not "black" do X)
In this case "no output" means that no image is being rendered at all, which is not the same as a transparent image being rendered.What about the "has no output" option? What does that do? I noticed that and thought that "if not has no output" might work, but I can't get both "if" and "if not" to fire with that.
I believe you can use theI was told to come here for help. What I really want is to use the image slideshow source, but also have captions for said images. The easiest way to do that I think would be to use this plugin, have it change a text box every slide change to... display the file's name as the caption? Is that doable? Any help would be much appreciated, thank you!
Slide Show
-> Current slide path is
condition for each path, then execute Source
-> Set settings
for text sources. Not sure if there's a simplier way with the image slideshow source.That should be doable with the following set of macros:I was told to come here for help. What I really want is to use the image slideshow source, but also have captions for said images. The easiest way to do that I think would be to use this plugin, have it change a text box every slide change to... display the file's name as the caption? Is that doable? Any help would be much appreciated, thank you!
{"macros":[{"name":"Get current slide name","pause":false,"parallel":false,"onChange":true,"skipExecOnStart":false,"group":false,"dockSettings":{"register":false,"hasRunButton":true,"hasPauseButton":true,"hasStatusLabel":false,"highlightIfConditionsTrue":false,"runButtonText":"Run","pauseButtonText":"Pause","unpauseButtonText":"Unpause","conditionsTrueStatusText":"Conditions are true.","conditionsFalseStatusText":"Conditions are false."},"registerHotkeys":false,"pauseHotkey":[],"unpauseHotkey":[],"togglePauseHotkey":[],"conditions":[{"collapsed":false,"id":"slideshow","logic":0,"durationModifier":{"time_constraint":0,"seconds":{"value":{"value":0.0,"type":0},"unit":0,"version":1}},"condition":0,"source":{"type":0,"name":"Image Slide Show"},"index":{"value":0,"type":0},"path":""},{"collapsed":false,"id":"slideshow","logic":102,"durationModifier":{"time_constraint":0,"seconds":{"value":{"value":0.0,"type":0},"unit":0,"version":1}},"condition":2,"source":{"type":0,"name":"Image Slide Show"},"index":{"value":0,"type":0},"path":""}],"actions":[{"collapsed":false,"id":"variable","enabled":true,"variableName":"Image Path","variable2Name":"invalid variable selection","strValue":"","numValue":0.0,"condition":5,"segmentIdx":1,"subStringStart":0,"subStringSize":0,"regexPattern":".*","regexMatchIdx":0,"findStr":"Text to find","replaceStr":"Text to replace with","regexConfig":{"enable":false,"partial":true,"options":0},"mathExpression":"( 1 + 2 * 3 ) / 4","useCustomPrompt":false,"inputPrompt":"Assign value to variable:"}]},{"name":"Set Caption","pause":false,"parallel":false,"onChange":true,"skipExecOnStart":false,"group":false,"dockSettings":{"register":false,"hasRunButton":true,"hasPauseButton":true,"hasStatusLabel":false,"highlightIfConditionsTrue":false,"runButtonText":"Run","pauseButtonText":"Pause","unpauseButtonText":"Unpause","conditionsTrueStatusText":"Conditions are true.","conditionsFalseStatusText":"Conditions are false."},"registerHotkeys":false,"pauseHotkey":[],"unpauseHotkey":[],"togglePauseHotkey":[],"conditions":[{"collapsed":false,"id":"variable","logic":0,"durationModifier":{"time_constraint":0,"seconds":{"value":{"value":0.0,"type":0},"unit":0,"version":1}},"variableName":"Image Path","variable2Name":"invalid variable selection","strValue":"","numValue":0.0,"condition":5,"regexConfig":{"enable":false,"partial":false,"options":0}}],"actions":[{"collapsed":false,"id":"source","enabled":true,"source":{"type":0,"name":"Text (GDI+)"},"action":2,"sourceSettingButton":{"id":"","description":""},"settings":"{\n \"text\": \"${Image Path}\"\n}\n","deinterlaceMode":0,"deinterlaceOrder":0}]}],"version":"1.23.1"}
Could they be combined into one macro? Slide show conditions, then both actions? Seems like the second will always and exclusively run at the same time anyway, so you might as well.That should be doable with the following set of macros:
You can import these example macros using the following settings:
- A macro which gets the path of the current image being displayed and assigns it to a variable:
View attachment 96778
- A second macro which uses this variable while adjusting the settings of text source:
View attachment 96780
Code:{"macros":[{"name":"Get current slide name","pause":false,"parallel":false,"onChange":true,"skipExecOnStart":false,"group":false,"dockSettings":{"register":false,"hasRunButton":true,"hasPauseButton":true,"hasStatusLabel":false,"highlightIfConditionsTrue":false,"runButtonText":"Run","pauseButtonText":"Pause","unpauseButtonText":"Unpause","conditionsTrueStatusText":"Conditions are true.","conditionsFalseStatusText":"Conditions are false."},"registerHotkeys":false,"pauseHotkey":[],"unpauseHotkey":[],"togglePauseHotkey":[],"conditions":[{"collapsed":false,"id":"slideshow","logic":0,"durationModifier":{"time_constraint":0,"seconds":{"value":{"value":0.0,"type":0},"unit":0,"version":1}},"condition":0,"source":{"type":0,"name":"Image Slide Show"},"index":{"value":0,"type":0},"path":""},{"collapsed":false,"id":"slideshow","logic":102,"durationModifier":{"time_constraint":0,"seconds":{"value":{"value":0.0,"type":0},"unit":0,"version":1}},"condition":2,"source":{"type":0,"name":"Image Slide Show"},"index":{"value":0,"type":0},"path":""}],"actions":[{"collapsed":false,"id":"variable","enabled":true,"variableName":"Image Path","variable2Name":"invalid variable selection","strValue":"","numValue":0.0,"condition":5,"segmentIdx":1,"subStringStart":0,"subStringSize":0,"regexPattern":".*","regexMatchIdx":0,"findStr":"Text to find","replaceStr":"Text to replace with","regexConfig":{"enable":false,"partial":true,"options":0},"mathExpression":"( 1 + 2 * 3 ) / 4","useCustomPrompt":false,"inputPrompt":"Assign value to variable:"}]},{"name":"Set Caption","pause":false,"parallel":false,"onChange":true,"skipExecOnStart":false,"group":false,"dockSettings":{"register":false,"hasRunButton":true,"hasPauseButton":true,"hasStatusLabel":false,"highlightIfConditionsTrue":false,"runButtonText":"Run","pauseButtonText":"Pause","unpauseButtonText":"Unpause","conditionsTrueStatusText":"Conditions are true.","conditionsFalseStatusText":"Conditions are false."},"registerHotkeys":false,"pauseHotkey":[],"unpauseHotkey":[],"togglePauseHotkey":[],"conditions":[{"collapsed":false,"id":"variable","logic":0,"durationModifier":{"time_constraint":0,"seconds":{"value":{"value":0.0,"type":0},"unit":0,"version":1}},"variableName":"Image Path","variable2Name":"invalid variable selection","strValue":"","numValue":0.0,"condition":5,"regexConfig":{"enable":false,"partial":false,"options":0}}],"actions":[{"collapsed":false,"id":"source","enabled":true,"source":{"type":0,"name":"Text (GDI+)"},"action":2,"sourceSettingButton":{"id":"","description":""},"settings":"{\n \"text\": \"${Image Path}\"\n}\n","deinterlaceMode":0,"deinterlaceOrder":0}]}],"version":"1.23.1"}
Let me know if you have any questions or need further details! :)
this is fantastic. share the code to be able to import it and save us copying everything .. it is absolutely wonderfulPuede importar estas macros de ejemplo utilizando la siguiente configuración:
Code:{"macros":[{"name":"Get current slide name","pause":false,"parallel":false,"onChange":true,"skipExecOnStart":false,"group":false,"dockSettings":{"register":false,"hasRunButton":true,"hasPauseButton":true,"hasStatusLabel":false,"highlightIfConditionsTrue":false,"runButtonText":"Run","pauseButtonText":"Pause","unpauseButtonText":"Unpause","conditionsTrueStatusText":"Conditions are true.","conditionsFalseStatusText":"Conditions are false."},"registerHotkeys":false,"pauseHotkey":[],"unpauseHotkey":[],"togglePauseHotkey":[],"conditions":[{"collapsed":false,"id":"slideshow","logic":0,"durationModifier":{"time_constraint":0,"seconds":{"value":{"value":0.0,"type":0},"unit":0,"version":1}},"condition":0,"source":{"type":0,"name":"Image Slide Show"},"index":{"value":0,"type":0},"path":""},{"collapsed":false,"id":"slideshow","logic":102,"durationModifier":{"time_constraint":0,"seconds":{"value":{"value":0.0,"type":0},"unit":0,"version":1}},"condition":2,"source":{"type":0,"name":"Image Slide Show"},"index":{"value":0,"type":0},"path":""}],"actions":[{"collapsed":false,"id":"variable","enabled":true,"variableName":"Image Path","variable2Name":"invalid variable selection","strValue":"","numValue":0.0,"condition":5,"segmentIdx":1,"subStringStart":0,"subStringSize":0,"regexPattern":".*","regexMatchIdx":0,"findStr":"Text to find","replaceStr":"Text to replace with","regexConfig":{"enable":false,"partial":true,"options":0},"mathExpression":"( 1 + 2 * 3 ) / 4","useCustomPrompt":false,"inputPrompt":"Assign value to variable:"}]},{"name":"Set Caption","pause":false,"parallel":false,"onChange":true,"skipExecOnStart":false,"group":false,"dockSettings":{"register":false,"hasRunButton":true,"hasPauseButton":true,"hasStatusLabel":false,"highlightIfConditionsTrue":false,"runButtonText":"Run","pauseButtonText":"Pause","unpauseButtonText":"Unpause","conditionsTrueStatusText":"Conditions are true.","conditionsFalseStatusText":"Conditions are false."},"registerHotkeys":false,"pauseHotkey":[],"unpauseHotkey":[],"togglePauseHotkey":[],"conditions":[{"collapsed":false,"id":"variable","logic":0,"durationModifier":{"time_constraint":0,"seconds":{"value":{"value":0.0,"type":0},"unit":0,"version":1}},"variableName":"Image Path","variable2Name":"invalid variable selection","strValue":"","numValue":0.0,"condition":5,"regexConfig":{"enable":false,"partial":false,"options":0}}],"actions":[{"collapsed":false,"id":"source","enabled":true,"source":{"type":0,"name":"Text (GDI+)"},"action":2,"sourceSettingButton":{"id":"","description":""},"settings":"{\n \"text\": \"${Image Path}\"\n}\n","deinterlaceMode":0,"deinterlaceOrder":0}]}],"version":"1.23.1"}