Still not perfect, thanks to C#'s async threading weirdness it's possible for ownership of the mutex to still be lost - no idea how, but it should mostly work fine.
mutexes are created before starting the menu or bootstrapper to ensure only one instance of them are running
also menu can be opened without having to close bloxstrap background processes
also fixed roblox singleton mutex not being created properly
its 12 am and im fucking tired
- Features
- Added integration with rbxfpsunlocker
- Added support for user-applicable mods
- Added ability to disable auto-update checking
- Misc
- Removed Bloxstrap branding from Discord Rich Presence
- Mod presets for old death sound and mouse cursor are now statically stored as base64 strings, eliminating reliance on the website and the old cursors still existing
- Bugfixes
- Fixed vista bootstrapper style not hiding properly and improper behavior when closed
- Fixed forms not being brought to the front when shown
- Code
- Reconsolidated Bootstrapper to a single file, using regions instead of partials
- Features
- Add Discord Rich Presence support (the nuget package is like a year and a half out of date so submodule it is lol)
- Add update checker
- Add start menu folder creation
- Bugfixes
- Fix "Directory is not empty" error when updating Roblox
- Fix uninstalling sometimes not working properly
- Quality of Life
- Split Bootstrapper class into partial files
- Renamed TaskDialogStyle to VistaDialog for name simplification