Forums » Bugs
[win10] Multiple instances of VO always uses latest install folder's files
Okay, so I was wondering how duel clients would work, since I run shop on one, and my main client separately, and simultaneously.
With OSX, each client is contained within the application bundle itself, and runs completely seperate of other VO clients currently running.
With Win10, you'd think that one vendetta.exe would point to a particular Program Files Folder (Usually C:\Program Files (x86)\Vendetta Online), and if you had another installation, for example C:\Program Files (x86)\Vendetta Online extra\ then the new installation would run completely seperately, but it doesn't.
If you install one VO, say in the normal program files folder, then another to your desktop, each with different plugins, only the most recent installation would be pointed to by BOTH vendetta.exe's.
The first installation from then on out is completely ignored, irrespective of how you try to run VO.
With OSX, each client is contained within the application bundle itself, and runs completely seperate of other VO clients currently running.
With Win10, you'd think that one vendetta.exe would point to a particular Program Files Folder (Usually C:\Program Files (x86)\Vendetta Online), and if you had another installation, for example C:\Program Files (x86)\Vendetta Online extra\ then the new installation would run completely seperately, but it doesn't.
If you install one VO, say in the normal program files folder, then another to your desktop, each with different plugins, only the most recent installation would be pointed to by BOTH vendetta.exe's.
The first installation from then on out is completely ignored, irrespective of how you try to run VO.
Yeah, it has always been like this, well it is actually better now as at one point if you ran the game from a backed up folder without installing it, it would cry that a registry entry was missing, now it simply recreates this entry if it detects it is wrong.
So yeah, VO stores stuff in the registry, as far as I know it has something to do with the updater knowing where VO is installed or some such, but I could be wrong about that. I am often wrong. So if you run the vendetta.exe from any location (which in turn runs the updater) it looks in the registry to see where VO is installed and uses that entry to run update.rlb, which in turn uses the location to run vendetta.rlb. Even if you do not run the installer and just copy the folder, this is what happens, only the VO install reflected in the registry will be ran, unless it does not exist in which case at least it updates to the new location now.
I've always wondered why this is needed and have posted about it in the past, but unless the devs change the way this works, the only real fix is don't use Windows for multi-client stuff, which isn't helpful (or manually load your shop plugin by not having a main.lua and then using /lua dofile('plugins/shopbot/lua.lua') on the client running the bot). All other desktop platforms just presume the VO files will be present in the folder that update/vendetta.rlb is found, so go figure! But I guess there is some reason for it.
So yeah, VO stores stuff in the registry, as far as I know it has something to do with the updater knowing where VO is installed or some such, but I could be wrong about that. I am often wrong. So if you run the vendetta.exe from any location (which in turn runs the updater) it looks in the registry to see where VO is installed and uses that entry to run update.rlb, which in turn uses the location to run vendetta.rlb. Even if you do not run the installer and just copy the folder, this is what happens, only the VO install reflected in the registry will be ran, unless it does not exist in which case at least it updates to the new location now.
I've always wondered why this is needed and have posted about it in the past, but unless the devs change the way this works, the only real fix is don't use Windows for multi-client stuff, which isn't helpful (or manually load your shop plugin by not having a main.lua and then using /lua dofile('plugins/shopbot/lua.lua') on the client running the bot). All other desktop platforms just presume the VO files will be present in the folder that update/vendetta.rlb is found, so go figure! But I guess there is some reason for it.
So, a lot of this is really old stuff, but.. basically there were a few problems. Some were related to the way Windows handles (or handled) "working directory" locations when something was run from a link. Like, someone making a link on their desktop or whatever.
Also, the registry is used by the game installer to store the un-install information, and was re-used for other things. Multiple concurrent installations was just not a target back when we did all of that.
We have plans to completely re-work the way the Windows version is installed, to basically be a bit more compatible with the newer Windows Universal Platform concept, as well as not requiring privilege elevation every time you run the game. But, it's a fairly big undertaking.
Whenever we do that, though, we'll try to keep this use-case in mind, if we can. UWP may also impart its own new requirements and excitement as well.
Also, the registry is used by the game installer to store the un-install information, and was re-used for other things. Multiple concurrent installations was just not a target back when we did all of that.
We have plans to completely re-work the way the Windows version is installed, to basically be a bit more compatible with the newer Windows Universal Platform concept, as well as not requiring privilege elevation every time you run the game. But, it's a fairly big undertaking.
Whenever we do that, though, we'll try to keep this use-case in mind, if we can. UWP may also impart its own new requirements and excitement as well.
Good luck with all that Inc! I honestly mean it! Going from what is basically a single user install to the newer (and friendlier) mutli-user install isn't going to be an easy under-taking at all. Please do not pull a SoH and just shove everything in the %USERSPROFILE% though! Keep executables out of my working directories please! (they wont run from there for me anyway)