-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Milestone
Description
Accounts
- Microsoft authentication
- Device code flow
- Auth code flow
- Switch between accounts
- Refresh the account
- Refresh the Minecraft access token when it expires using the Microsoft refresh token, should run seamlessly on game launch, skin update.
- View account details
- Handle the case when logging in to an account that doesn't have a Minecraft Java or Xbox account.
- Handle common errors from Xbox API (e.g, account is banned, country not supported, requires adult consultation).
- Handle refresh token expiration which is 90 days after it was initially issued. It can still be revoked at any point, and the responses should always be handled. Ask the user to log in again.
- Unit tests
- Store the account tokens securely using flutter_secure_storage instead of storing them in the JSON file, which can be accessed easily by other apps and mods.
- Store the account tokens in a local file when system secure storage is unsupported on this OS. Show a warning alert to the end-user before logging in with a Microsoft account.
- Handle the case where the account tokens are not found in the system secure storage for an account. Ask the user to log in again. Important for portable mode.
- Local accounts search.
- Handle the case where the user doesn't have a Minecraft profile for Game Pass subscribers.
Profiles
- Install and run while supporting all desktop platforms
- Backward compatibility for older Minecraft versions
- Automate Java installation
- Isolated profiles
- Sorting (order by last launched or name) and search
- Custom command similar to MultiMC launchers
- Environment variables
- Show log and allow to upload using APIs like mclo.gs
- JVM arguments
- Minimum and maximum memory allocation
- Quick Play, allowing configuration of the instance to join a server, world, or realm on launch—either directly from the options via a dropdown showing the worlds and servers of the current profile, or while configuring the profile by manually entering the details. Also allows joining with Quick Play disabled via an option, or configuring it in the profile settings.
- If Quick Play is not supported on the current Minecraft version, fallback to join server on launch argument
- Linux feral gamemode and mangohud support
- Total time spent playing a profile or all profiles, allows to disable this feature
- Allow grouping or labeling profiles to put some of them in a category for organization, allow creating groups, and changing them
- EPIC: Allow sharing profiles with other players but with more advanced features, like syncing mods, resource-packs with the order, custom files, key binds, configuration or options, shader packs, game and mod loader versions, quick play and assets from different sources while allowing to update, allow user to unlink the share process at anytime so it become a normal profile, allow admins to have more options for the share process, also automate the upload of the file to GitHub. Add more advanced and unique features, like installing a mod only on a specific OS, user preferences (whether they want an optional mod) for each one, and also by group or option. Also, allow the steps and configs to be set differently based on the preferences and the OS info? Also maybe allow sharing profiles to external launchers? This will complicate the implementation further.
- Export and import profiles to share them with other players, support MultiMC and other common formats
- Open the folder of the profile
- Copy and delete a profile
- Shortcuts for worlds, servers, and realms (QuickPlay) or running the profile directly using default settings. It should be integrated with Profile sharing.
- Custom game arguments
- Custom resolution
- Mod loaders and mods from Modrinth and CourseForge, while also supporting downloading mods from CourseForge that have third-party share disabled, allowing to update mods
- Change icon or image of profile, also set some default based on play hours and modloaders
- Backups?
- Install modpacks
- Indicates versions that are not supported by the launcher or not verified
- Allow to kill the process and handle crashes
- Import profiles from other launchers directly within the launcher
- Copy profiles to other launchers directly within the launcher?
- Import game files from other launchers to avoid downloading them again?
- Show random Minecraft notes while launching or installing or?
- Show text when the user doesn't own Minecraft Java or has bedrock only instead
- Install modpacks from Modrinth + Course Forge, handle mods that can't be downloaded using third-party launchers.
Settings
- Change order
- Dark, Light, and system theme
- Dynamic Theme
- Accent color
- Languages
- Hide launcher when game launches
- Override default file paths (maybe?)
- Install different Java versions
- Global settings for all profiles, also allow each profile to override (e.g., custom command)
- Default tab in the general settings
- Default mod/asset platform
- Show Fabric mods when the Sinytra connector is installed
- Modrinth and Course forge API keys? (probably not)
- Optional Crashlytics
- Auto update implemented
- The option to invalidate / remove cached network images
News or Home
- Show articles with images that update over time
- Show last played profiles
Onboarding
- Good UI design with Lottie animations
- Allow to change language and disable or enable Crashlytics
- Ask user to log in (optional)
- Choose language
- Importing full data from other launchers on first start? (Also allow to import them at any time in the settings)
Packaging
- Flatpak
- Requires
libsecret. - Test all usages of
dbuspackage. - Test Auth code redirect HTTP server.
- Requires
- Winget
- Homebrew?
- Host bundles on GitHub release assets
- Portable version
- Register the macOS app with Apple to avoid warnings when installing and to access Keychain for secure storage Register the macOS app with Apple #2.
Server
Server-related features (e.g., creating servers) might be added someday; however, they will unlikely be part of the initial prototype. However, the ability to sync profiles within a script that runs on the script is likely to be a priority in the long term, although I'm not sure whether we should provide a mod, a script, or both.
General
Metadata
Metadata
Assignees
Labels
No labels