WarmUpTill SceneSwitcher for automated OBS scene control
An automation tool for OBS Studio
At a glance
- What is it?
- WarmUpTill SceneSwitcher is a GPL-2.0 C++ automation plugin for OBS Studio, with binary installers for Windows and macOS and a Flatpak package for Flatpak-based Linux installations. Its usefulness depends on OBS automation requirements, while its public README leaves the first-use configuration dependent on the project wiki.
- Who is it for?
- Adopt WarmUpTill SceneSwitcher when an OBS-based production needs plugin-driven automation and can accommodate GPL-2.0 obligations. Do not choose it solely for a one-off manual scene change, and verify the documented installation route, runtime conditions and actions, and scripting requirements in the project wiki before integrating it into a production workflow.
- Can I use it commercially?
- Yes, with conditions. GPL-2.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What WarmUpTill SceneSwitcher automates in OBS
WarmUpTill SceneSwitcher addresses repetitive scene-selection work inside OBS Studio. Its repository description identifies it as an automation tool, while the README calls it an automation plugin. The intended audience is OBS users who want scene changes to be associated with conditions or actions rather than handled only through manual operation.
The clearest evidence for that purpose appears in the contribution documentation, which says users can add custom conditions and actions at runtime through the project's scripting API. That wording places the plugin at an event-and-response layer rather than presenting it as a general OBS interface replacement. The public README does not enumerate the built-in conditions or actions, so an engineer cannot determine from this page alone whether the project supports audio detection, timers, scene status, external application state, or another trigger. Those details need to be checked in the linked scripting wiki and OBS forum resource.
The project is also a conventional native OBS plugin rather than a standalone streaming application. The repository language is C++, and its top-level directories include `plugins/`, `forms/`, `scripting/`, and `module/`. The Windows and macOS installation instructions recommend the installers, while the Linux package is addressed to OBS installations made through Flatpak. This makes SceneSwitcher most directly relevant to an existing OBS Studio environment.
The repository structure behind SceneSwitcher's C++ plugin
Based on the repository layout, development is split between plugin integration, interface definitions, scripting support, tests, and native dependencies. `CMakeLists.txt`, `CMakePresets.json`, and `cmake/` provide the visible native build system. Directories such as `build-aux/`, `buildspec.json`, `deps/`, and `.gitmodules` indicate that the build also has packaging, dependency, and possibly submodule handling concerns.
The `plugins/` directory is the most direct entry point for locating OBS plugin code. Interface resources are separated into `forms/`, while `scripting/` corresponds to the runtime API mentioned in the README. The presence of `tests/` gives the project a dedicated place for automated checks, although the README does not describe the test coverage or state which OBS versions are validated.
Translation work has a clearly defined location under `data/locale`. This is relevant to contributors because the README directs translation submissions to translation files rather than to a separate service. The repository also includes formatting configuration such as `.clang-format` and `.cmake-format.json`, plus `.pre-commit-config.yaml`. The README says contributors can optionally use `pre-commit` to handle formatting automatically.
This structure suggests that plugin behavior is split across native code and an extension surface. It would be inaccurate, however, to claim a particular event pipeline, rule format, or runtime architecture because the public README does not publish those internals. The wiki is the appropriate source for the scripting contract and the OBS forum resource is the more detailed product page.
Installing SceneSwitcher on Windows, macOS, and Flatpak Linux
The repository provides prebuilt releases for Windows, macOS, and Linux. For Windows and macOS, the README explicitly recommends running the project's installer. The repository also links an installation wiki, but it does not reproduce the installer steps or describe where OBS presents the plugin settings after installation.
For Linux, the documented path is Flatpak and applies specifically when OBS Studio itself was installed through Flatpak. Install the plugin with this command:
flatpak install com.obsproject.Studio.Plugin.SceneSwitcherThe package identifier shown by the README is `com.obsproject.Studio.Plugin.SceneSwitcher`. The README does not publish a separate native Linux package command, so the Flatpak command should not be presented as the installation route for every Linux distribution or for a system package of OBS.
After installation, the project does not provide a first-use sequence in the README. It does establish that runtime conditions and actions can be added through the scripting API, but the menu location, required files, initialization procedure, and example rule are not given. The linked installation and scripting wiki entries are therefore required before attempting a first configuration.
Starting a first SceneSwitcher automation in OBS
A useful first use begins by obtaining a release for the target platform and completing the documented installation. On Windows and macOS, use the provided installer rather than treating the source repository as an installation package. On Linux, use the Flatpak package command only for an OBS Studio installation managed by Flatpak.
The next step cannot be reduced to a reliable code example from the public README. The project says custom conditions and actions can be added at runtime using its scripting API, but it does not include the API signature, file destination, import command, or a complete configuration example. Copying an invented snippet would risk creating a file that SceneSwitcher ignores or a function that does not exist.
A first-use checklist should therefore stop at the project-specific documentation boundary. Confirm the installed plugin in the OBS environment, consult the scripting wiki for the accepted API, and identify the exact condition and action needed by the production workflow. The OBS forum resource may also provide setup context beyond the short README. Until those details are checked, installation success should not be confused with a functioning automation rule.
GPL-2.0 and distribution constraints for SceneSwitcher
SceneSwitcher is distributed under GPL-2.0. For an organization planning to package SceneSwitcher with an OBS deployment, distribute modified binaries, or incorporate repository files into another distribution, the applicable GPL obligations should be reviewed before shipping. This is a licensing checkpoint rather than legal advice.
The public README does not provide a separate commercial-use policy, support contract, or exception for particular deployments. It also does not say that using the unmodified plugin requires a paid licence. The repository's `LICENSE` file is the authoritative project source for the GPL-2.0 text, while `BUILDING.md` covers compilation for contributors.
Using the Windows or macOS installers simplifies acquisition but does not remove the need for an organization to understand how its particular distribution includes and exposes the plugin. Source-build operators also need the build dependencies documented in `BUILDING.md`; the short README does not list them.
SceneSwitcher maintenance, releases, and upgrade exposure
The repository is not archived, and its last push was on 2026-10-17. The recent release history includes Advanced Scene Switcher 1.36.1 on 2026-08-07, 1.35.1 on 2026-07-07, and 1.35.0 on 2026-07-06. These dates document recent code and release activity without establishing compatibility with a particular OBS release.
Upgrading still requires operational attention because the README does not provide a migration guide, rollback procedure, configuration compatibility matrix, or list of breaking changes. It does not state whether custom scripting rules survive an upgrade or whether a newer plugin requires corresponding changes to user scripts. The linked wiki is the place to look for installation or scripting updates, while release entries are the relevant source for release-specific notes.
Contributors face a separate build path. `BUILDING.md` is the documented starting point, and the repository includes CMake files, tests, dependencies, and formatting configuration. The README does not give one universal build command, so it would be misleading to publish a compile command without the contents of that guide.
Where SceneSwitcher differs from manual or external OBS control
The direct alternative is selecting scenes manually through OBS Studio, or handling each transition as an explicit operator action. Manual control has less plugin and configuration surface, but it does not provide SceneSwitcher's documented ability to define custom conditions and actions. That distinction matters for repeatable productions where the transition criteria are known in advance.
Another approach would be an external automation program that controls OBS through a separate interface. The repository materials do not document such an alternative or a comparison, so its exact capabilities cannot be asserted. The defensible difference is architectural: SceneSwitcher is distributed as an OBS Studio plugin and exposes a project-specific scripting API for runtime conditions and actions. An external controller would sit outside that plugin boundary and would require its own deployment and interface.
SceneSwitcher is the wrong choice for a simple production with only a few occasional scene changes, where operator control is sufficient. It is also a poor fit if a required trigger cannot be expressed by the plugin's documented conditions, or if the deployment cannot use the supported installation route. The missing built-in trigger catalogue makes that suitability check a documentation task rather than a feature claim.
Editorial conclusion
Adopt WarmUpTill SceneSwitcher when an OBS-based production needs plugin-driven automation and can accommodate GPL-2.0 obligations. Do not choose it solely for a one-off manual scene change, and verify the documented installation route, runtime conditions and actions, and scripting requirements in the project wiki before integrating it into a production workflow.
Frequently asked questions
Which platforms does WarmUpTill SceneSwitcher support?
The README says binaries are available for Windows, macOS, and Linux. It recommends installers on Windows and macOS, while the documented Linux installation route is for OBS installed through Flatpak.
How do I install WarmUpTill SceneSwitcher on Linux with Flatpak?
The README gives one package-manager command for users whose OBS Studio installation came from Flatpak. It does not document a native Linux package command for other installation methods.
Does WarmUpTill SceneSwitcher support custom runtime conditions and actions?
The README says users can add custom conditions and actions at runtime through the project's scripting API. It does not include the API definition or a complete example, so the linked scripting wiki is needed for implementation details.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/warmuptill-sceneswitcher)Was this useful?