WOW. I've run multiple instants before with no problems. I have noticed that the last obs exited, is what is saved. As each instant is ended, that writes it setting to the global settings in %%appdata%/obs-studio. I always use flags when starting up the multiple instants with command line args, so that they have different profiles and port settings. no big deal. If I just started obs with no flags, it just starts with the setting from the last obs that exited, which i don't do. Good coding practices demand that you don't break things (on purpose) and force your user apps to fail. Case in point is obs 27 to 28. I do applaud the fact that there is a obs-websocket v4-v5 capability driver. People have used your application and have tuned it for their uses, then a "upgrade" with no warning breaks their channel. The proper way is to give people a warning, that maybe in +2 upgrades, you plan on changing this. Give people some voice on breaking changes. People start to mis-trust obs and it's maintainers when they just say "surprise".
I "Like" a lot of posts, but I rarely "Love" one. That one I did. And I've written my own pointed criticism elsewhere, several times independently, about the v27 to v28 unwarned debacle...
YOU DO NOT EVER BREAK THINGS WITHOUT WARNING!!!! That's far more important than any particular function by itself, this one included.
I absolutely agree, that it doesn't matter if something was a mistake. If it's there now and people are using it, *keep the functionality*! Even if you have to re-invent it.
If you need to "clean house" - which can, does, and should happen from time to time - collect all of the "bugs" and "mistakes" that people are using as features, and make their end results part of the new requirements. Yes, they'll work differently, and that's fine, but the end results should never go away, nor become prohibitively difficult.
---
There's an argument earlier in this thread to, "just install the portable version for each additional instance," which might be okay if the user has already installed the native version by a similar process. But not everyone fits into that category.
Linux especially, has a greatly-preferred installation method, which gives you one copy that is expected to be recurrent-safe or recurrency-not-needed. If you break that, as native OBS does now, it's kind of a big deal. (understatement) Installing a different way, outside of "how you're supposed to do it" (
sudo apt install...
for Debian and its derivatives like Ubuntu, Mint, and Raspberry Pi; other distros use something else with a similar idea...) is a similar big deal.
So I still maintain, from the perspective of *very* widespread expectations, that *NATIVE* OBS (not portable) should remain recurrent-safe, whatever that takes.
---
For a little bit more context:
Windows installs a separate dedicated copy of every required library for every app, so recurrency and API stability really aren't particularly important there, at the expense of requiring more storage. Multiple instances (and versions!) of the same library do still need to coexist, simply because they're used by different apps and installed separately for each app. But their completely separate installations, all to app-specific directories, usually make it a non-issue.
This also makes it (slightly) easier to uninstall something. (if the uninstaller actually does what it's supposed to) No need to see if a shared library is no longer used. Just go ahead and remove the dedicated copy that came with the app to uninstall.
Linux installs ONE copy of each thing - library, app, or whatever - in its own directory outside of any app, and expects everything to share it. So recurrency is HUGE on the Linux side, as is API stability for old functions.
This requires some significant software logic to figure out whether a shared library is still in use or not. Just because it came with something that you're now removing, doesn't mean it can be removed too, because something else that you installed in the meantime may still be using it. That's what the various package managers do. (
apt
,
rpm
, etc.)
Don't know what Mac does.