Planned overhaul for v2.6.0 (or whatever the next version is)
dumping this here because i need to put it somewhere and also id like for anyone to tell me if im doing anything wrong with this approach
How it currently works as of v2.5.3
- Main thread
- Installation check is performed
- Checks if
HKCU\Software\Bloxstrapexists - Checks if install location has ever been relocated (why the fuck do i check for this wtf)
- Checks if
- Notification area icon is created
- Allows for update notification to be shown
- i have to do the worst fucking workarounds for this because it ends up choking windows ui priority
- UI is started
- Singleton mutex is held open (if needed)
- Bootstrapper thread is started
- Installation check is performed
- Bootstrapper thread
- Connectivity check is carried out
- Automatic updates are checked
- Roblox is installed to
Versions\{versionGuid}\ - Roblox is started
- If activity watching is enabled, wait for Roblox to exit
- Literally does everything, handling installation, uninstallation, and watcher activities
- UX flow
- If not installed, assume menu launch
- If already installed, assume player launch
- After manual upgrade, assume menu launch
- Shortcuts available for either directly launching Roblox or opening the Menu
How v2.6.0 is planned to work
- Main thread
- Installation check is performed
- Checks if
HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\Bloxstrapexists - If it doesn't, then start the installer flow
- Update is checked (both automatic and manual)
- Checks if
- UI is started
- Bootstrapper thread is started
- Installation check is performed
- Installer flow
- Acts like a typical Windows Installer OOBE experience
- Goes through these steps in this specific order
- Welcome/introductory page
- Prerequisite check (connectivity, updates, WebView2, wmfcore)
- Install location chooser
- Proceed to install Bloxstrap itself setting up the registry key, install location folder, etc
- Shows the launch menu to proceed to either the configuration menu or launching Roblox
- Bootstrapper thread
- Connectivity check is carried out
- Roblox is installed to
App\Player\orApp\Studio\ - If activity watching is enabled, start the watcher agent if it's not running
- Roblox is started
- Exits immediately after starting the agent
- Watcher agent
- Runs in the background while Roblox is running
- Notification area icon is created
- Holds the singleton mutex open if needed
- Does activity watcher stuff
- Should hold a mutex open so that the bootstrapper thread from the launch process knows if it's running or not
- Launch menu
- Gives you the option of either launching Player, Studio, or opening the Configuration Menu
- Maybe some subtext for hinting at how to switch to native Roblox or uninstall
- UX flow
- If not installed, go through the installer flow
- If already installed, show the launch menu
- After manual upgrade, assume launch menu
- Shortcuts available for either opening the launch menu, launching Player, or launching Studio
Doesn't seem like anything is out of place or missing
- Gives you the option of either launching Player, Studio, or opening the Configuration Menu
The ability to use studio with Bloxstrap will be infinitely helpful, because I can't properly see Highlight elements without it.
- Gives you the option of either launching Player, Studio, or opening the Configuration Menu
An option to launch studio may be a bit redundant for Roblox Studio Mod Manager users
Shortcuts available for either opening the launch menu, launching Player, or launching Studio
Maybe consider having everything in a one shortcut just called "Bloxstrap" with that launch menu you mentioned instead of having one for "Play Roblox", "Bloxstrap Menu" and "Roblox studio (Bloxstrap)". It can feel a bit much with three different shortcuts for one application, but thats just my opinion.
Acts like a typical Windows Installer OOBE experience
I like this approach more than the current one. i imagine some users maybe confuse the configuration menu with the installer dialog considering how similar they look. (but maybe that isn't really an issue when the "before you install" thing exists)
Maybe consider having everything in a one shortcut just called "Bloxstrap" with that launch menu you mentioned
Yep, that's the idea, though I'd want the app-specific shortcuts to still exist as options to the user since I use them all the time.
dayum, that's a lot
Shame the ability to use studio with bloxstrap didn't end up making it to the 2.6.0 release