This release brings initial support for Microsoft accounts, along with a nice pile of modpack platform support changes and improved Java runtime detection.
Java runtimes still need an overhaul, so we're staying on the 0.6 version for a little longer.
Next release should also tackle the current Forge 1.17.x issues in a systematic way.
### Microsoft accounts
This is the first release with Microsoft accounts in.
Implementation is loosely based on documentation available from [wiki.vg](https://wiki.vg/Microsoft_Authentication_Scheme) with some notable changes:
- More complete implementation including getting and displaying GamerTags [(see XR-046)](https://docs.microsoft.com/en-us/gaming/gdk/_content/gc/policies/pc/live-policies-pc#xr-046-display-name-and-gamerpic-).
- Using the OAuth Device Flow instead of closely integrating with a browser engine.
MultiMC asks you to open a Microsoft login web page and put in a code that lets MultiMC authenticate.
This lets you authenticate on a completely separate device like your phone, leaving code we ship and the computer you may not even trust out of the picture.
- A new build with Qt 5.15.2 that does work with Microsoft accounts, can use the new macOS dark theme and highlight colors, but requires at least macOS 10.13.
MultiMC will update to the 5.15.2 builds when it detects that this is possible. **It may look like it is updating twice, just let it do its thing.**
Similar approach got attempted on Windows, aiming to fix various display scaling and theming issues, but it ran into too many problems and will be attempted later, with more caution.
### Modpack platforms
In general, the modpack platform pages have been made more consistent with each other (GH-3118, GH-3720, GH-3731).
- FTB improvements:
- Modpack file downloads are now checked with checksums and cached.
- GH-1949: Allow Legacy FTB and FTB pack downloads to be aborted.
- CurseForge improvements:
- CurseForge modpack platform is now presented as CurseForge, not Twitch.
- Handling latest/custom/recommended mod loader versions.
- Fabric loader packs should now work.
- GH-3764: Only client mods are installed now for ATL packs.
- Improved error handling
- Optional mods are supported.
- GH-1949: Allow ATLauncher pack downloads to be aborted
- Fixed bugs in FTB platform search.
### Other changes
- Forge installation is disabled on Minecraft 1.17+ because of incompatible/unresolved changes on the Forge side.
We're going to aim for fixing it in time for 1.18. Thankfully, 1.17 is more of a in-between release, so go play some 1.16.x packs!
- GH-2529: On macOS, MultiMC will ask to move all the instance data to a new `Data` folder in order to fix long load times caused by macOS checking all files.
- Detection of a large amount of various Java runtime flavors have been added.
- It is now possible to join servers when starting an instance:
- From command line via the `--launch` and `--server` arguments.
- Or by setting this up in the instance settings page.
This may not work correctly in some cases, because it is a rarely used feature and modders do not test with it.
- MultiMC now prints resolved IP addresses of Minecraft services into the game log for diagnostic purposes.
- Updated instance icons based on Minecraft textures.
- Forge `mods.toml` files are now used for displaying mods in the UI.
- Datapack button is now disabled when no world is selected.
- MultiMC warns about GLFW and OpenAL workarounds being enabled in the game log.
- Languages in the translations list are now sorted by their two/three letter key
- GH-3450: Displaying and recording gameplay time is now optional and can be turned off.
- GH-3930: MultiMC can now track the gameplay time of the last session.
- GH-3033: The version pages of instances now have a filter bar.
- GH-2971: UI descriptions of texture and resource packs no longer mention mods.
- Quick and dirty minimum Java runtime versions checks have been added. This needs to be expanded in the future.
### Technical changes
- The codebase continues to move towards being debranded and harder to build as 'MultiMC' for third parties.
What got added since the last time? Quite a bit! But in general, this is more of a spring cleaning before the major changes that we need to make come in.
We've added a whole bunch of new modpack platforms to pick from right into the new instance dialog. If you run into any unusual issues with the imported packs, report them on the bug tracker.
- GH-2988: You can now import instances and curse modpacks from the command line with the `--import` option followed by either an URL or a local file path.
- GH-2544: MultiMC now supports downloading library files without including them on the Java classpath.
This is done by adding them to the `mavenFiles` list instead of the `libraries` list.
Such downloads are not deduplicated or version upgraded like libraries are.
This enables ForgeWrapper to work - MultiMC downloads all the files, and ForgeWrapper runs the Forge installer during instance start when needed.
This is mostly about removal of the 'curse URL' related features, because they were of low quality and generally unreliable.
There are some bug fixes included.
MultiMC also migrated to a new continuous deployment system, which makes everything that much smoother.
### New or changed features
- GH-852: Instance group expansion status now saves/loads as expected.
- The bees have invaded the launcher. We now have a bee icon.
- Translations have been overhauled, yet again...
- We now have a [crowdin site](https://translate.multimc.org/) for all the translation work.
- Translations are made based on the development version, and for the development version.
- Many strings have been tweaked to make translating the application easier.
- When selecting languages, European Portuguese is now displaying properly.
- Accessibility has been further improved - the main window reads as `MultiMC`, not a long string of nonsensical version numbers, when announced by a screen reader.
- Removed the unimplemented Technic page from instance creation dialog.
- GH-2859: Broken twitch URL import method was removed.
- GH-2819: Filter bar in mod lists now also works with descriptions and author lists.
- GH-2832: Version page now has buttons for opening the Minecraft and internal libraries folders of the instance.
- GH-2769: When copying an instance, there's now an option to keep or remove the total play time from the copy.
### Bugfixes
- GH-2880: Clicking the service status indicators now opens a valid site again, instead of going nowhere.
- GH-2853: When collapsing groups in instance view, the action no longer becomes 'sticky' and doesn't apply to items clicked afterwards.
The previous release introduced some extra buttons that made the instance window way too big for some displays. This release is aimed at fixing that, along with other UI and performance improvements.
- Mod lists are now asynchronous and heavily threaded.
Basically, both faster and more responsive.
The changes necessary for this also pave the way for having other sources of mod metadata, and for adding more mod-related features support in general.
- Mod list printed in log has been improved.
It now also shows disabled mods, and has prefix and suffix that shows if the mod is enabled, and if it is a folder.
On linux, MultiMC no longer bundles the Qt libraries. This fixes many issues, but it might not run after the update unless you have the required libraries installed.
Make sure you have the following packages before you update:
MultiMC on linux is built with Qt 5.4 and older versions of Qt will not work.
This should be a massive improvement to system integration on linux and resolves GH-1784, GH-2605, GH-1979, GH-2271, GH-1992, GH-1816 and their many duplicates.
- GH-2487: No is now the default button when deleting instances.
- It is now possible to launch with profilers in offline mode.
- Massively improved support for icon formats when importing and exporting instances.
All of the formats MultiMC supports are now supported in exported instances too, instead of just PNG.
- Added the pocket fox icon.
We still have the big one under the staircase. It's cute. Just hide your chickens.
- Global settings can be opened from instance settings where appropriate.
Many people use the instance overrides where using the global settings would be more appropriate. Hopefully this makes it clearer that the instance settings are overrides for the global settings.
- Added direct Fabric loader support.
Much overdue. It's good. Fabric mod metadata is also supported in the mod pages.
- MultiMC now recognizes the new `experimental` Minecraft versions.
Go mess with the combat experiment. It's interesting.
- Added Twitch URL as an option to the Add Instance dialog.
You can now drag the purple download buttons from CurseForge into MultiMC and get a modpack out of it. Much easier!
- UI for the language settings has been unified across the application
- GH-2209: Sounds in old (pre-1.6) versions should now work again
The launcher now downloads the correct assets and reconstructs the `resources` folder inside instances. This mirrors the same fix implemented in vanilla.
Also, a minor issue with the reconstruction being done twice per launch has been fixed.
When using a `.po` file, MultiMC logs which strings are missing from the translation on the currently displayed UI screen(s), and which one are marked as fuzzy. This should make it easy to determine what's important.
This is a release mostly aimed at getting all the small changes and fixes out of the door.
### Potentially breaking changes
- Local libraries are only loaded from inside the instances now.
Before, MultiMC allowed loading local libraries from the main `libraries` folder.
This in turn allowed existence of instances which could not be transported from one installation of MultiMC to another.
GH-2475: A bug that allowed the launch to continue with missing local libraries has also been fixed.
Effectively, you will get errors from launching such instances. You can fix the errors by copying the libraries to the locations indicated in the error log.
### New or changed features
- FTB import now has support for third party modpack codes.
Better late than never?
- Instance creation can now be interrupted / aborted.
- GH-2053: You can now inspect and change the `servers.dat` file from MultiMC.
- MultiMC now uses the https protocol for many more network requests.
- GH-2352: There is now a button to open the `.minecraft` folder inside the selected instance.
- GH-2232: MultiMC can now use `.gif` icons (not animated).
- GH-2101: Instance renaming is now done inline, in the actual instance list.
- GH-2452: When deleting a group, MultiMC asks for confirmation.
- GH-1552: PermGen is no longer shown when it's not appropriate (java 8 and up).
- GH-2144: When changing versions of a component like Forge, the current version is marked with `(installed)`.
- GH-2374: World list has been improved:
- Alternating line background colors have been added.
- The world game type is now shown in a column.
- GH-2384: When installing a mod, existing mod with the same file name will be replaced.
- The background cat sometimes wears a silly hat.
### Bugfixes
- GH-2252: Fixed odd drag and drop behaviour on Windows
Drag and drop of URLs from a browser locked up the browser. This needs further fixes on macOS.
- Several issues related to bad URLs returned by the Curse servers have been fixed.
The Curse platform does not use valid URLs according to [RFC 3986, section 2](https://tools.ietf.org/html/rfc3986#section-2) by including spaces and UTF-8 characters without percent encoding them.
This affected pretty much all modpack imports. You may want to reimport them if you were affected by this.
- GH-1780, GH-2102, GH-2103: Multiple issues with the build system and packaging on linux have been fixed.
- Installed libraries now no longer have `RPATH` set and have the correct file permissions when using the `lin-system` layout.
- Installation using the `lin-bundle` layout has been fixed on platforms that use position independent code.
-`CMAKE_INSTALL_PREFIX` and `DESTDIR` now behave as expected on linux platforms.
- MultiMC no longer logs the process environment and launch scripts to its log files.
- GH-2089: Mention of instance tracking has been removed from the deletion confirmation dialog.
- GH-2087: The obsolete 'revert to vanilla' logic that was previously applied to versions has been removed.
This should remove some confusing situations that could happen while changing and manipulation instance versions.
- The temporary `Minecraft.jar` is now removed from the instance after it stops running.
- GH-2119: The main instance view scrollbar now correctly updates when the window is resized without changing the number of icons that can fit into it horizontally.
- Contact with Mojang, Forge and LiteLoader servers is no longer handled by MultiMC, but a metadata server. Instead of generating and storing the files at the point of installation, they are updated hourly on the server and can be fixed when something goes wrong.
This goes along with some changes to the instance format and to the metadata format.
Instead of including the metadata JSON files directly in the instances, the instances now contain a new `mmc-pack.json` file that specifies versions to be used.
The metadata can be found at [v1.meta.multimc.org](https://v1.meta.multimc.org), the [meta.multimc.org](https://meta.multimc.org) endpoint that was used during development will be replaced by documentation.
This should be a much more reliable solution going forward, because it allows fixing issues without releasing new versions of MultiMC or reinstalling Forge/LiteLoader/others.
- Tracking of FTB launcher instances has been replaced with direct import of Curse modpacks.
You can import the modpack zip files from CurseForge and FTB:
- Get the zip, for example from [here](https://www.feed-the-beast.com/projects/ftb-retro-ssp/files/2219693).
- Drag & Drop it on top of the main window, or select it in the new instance dialog.
- Let the magic happen.
If you need help moving over your old instances or worlds from the FTB launcher, stop by in the MultiMC discord server.
The Curse import functionality is there thanks to the work [@Dries007](https://twitter.com/driesk007) and [@NikkiAI](https://twitter.com/NikkyAI) have done on [CurseMeta](https://cursemeta.dries007.net/).
- GH-1314: MultiMC now allows replacing the main jar in an instance without having to mod the Mojang jars.
This goes along with changing the wording of the jar mod button to make it clear that it adds files to the main Minecraft jar instead of installing mod files with the `.jar` extension.
- Because the current instance format can now handle replacing the main jar, Legacy format instances are no longer directly supported.
Instead of launching, you will be prompted to convert them to the current instance format.
If the automated process fails, stop by in the MultiMC discord server and ask for help.
- Main window UI has been changed for increased clarity.
Many people had issues finding the settings and instead ended up using the per-instance overrides. The main toolbar now has labels and the per-instance overrides have been deemphasized by removing the direct path to them from the main window. In general, it should be easier to find the right settings menu without getting things completely wrong on the first try.
- GH-1997: MultiMC now supports Java 9.
This does not mean that the current mod loaders and mods do, but you can run Vanilla Minecraft with Java 9 now.
However, Java 9 will come up last in the lists when multiple versions are installed and its use is strongly discouraged.
- GH-2026: You can launch Minecraft 1.13 snapshots - and hopefully also 1.13 once it is released.
The bare minimum of changes needed for 1.13 to launch has been done.
This does not mean support for modded 1.13!
It is not yet clear what it will even look like and what exactly will be needed for Forge to be able to install properly.
- Bundled Qt libraries have been updated to version 5.6.3 on macOS and Windows
This means less issues with SSL encryption on macOS and better support for HiDPI/retina displays, along with many bug fixes.
The workarounds for SSL problems on macOS have been removed thanks to this.
- Linux builds were moved to a newer version of Ubuntu (14.04)
This means better support on newer distribution releases, and dropping support for older distributions.
- Bundled OpenSSL library on Windows no longer requires Visual Studio runtime libraries.
This should avoid issues with missing runtime libraries.
- GH-1855: The instance window now has an offline launch button.
- GH-1886: UI now clarifies that MultiMC proxy settings do not apply to the game.
- It is now possible to package MultiMC on linux without hacks.
The build system has a concept of 'install layouts'. Example Arch linux package that uses this (multimc-git) is [available in the AUR](https://aur.archlinux.org/packages/multimc-git).
- Wrapper commands now support arguments.
Previously, they would be treated as a single command -- spaces and all.
- UI elements that set maximum JVM memory are now limited to the amount of system memory present.
Before, they were hardcoded.
This is to accommodate the needs of some new mods for ancient Minecraft versions that do not work well with the applet wrapper.
- On instance launch, the used GPU and graphics driver are reported - but only on linux.
Other platforms will hopefully get this in the future.
- There are some under the hood improvements for ancient Minecraft versions and versions not provided by Mojang.
- The `haspaid` parameter is set for the applet wrapper.
- MultiMC will prefer to use `.minecraft` instead of `minecraft` folder inside the instances now.
- There is some preliminary support for classic multiplayer - see [this workflowy list](https://workflowy.com/s/2EyDMcp7CU#/1cbfc198cf28) for details.
- A new `noapplet` trait has been added to allow running legacy Minecraft versions without the applet wrapper.
- Mods without changed metadata (Example Mod) are now listed under their filename instead.
- Tweaker list in metadata now overrides the order of already present tweakers.
MultiMC now uses its new API. If you used a custom API key before, you will need to generate a new one.
- GH-1873, GH-1873, GH-1875 : The main window can now be closed regardless of running instances and running instances directly will not create a main window.
- GH-1854: MultiMC should no longer crash when the instance is closed while the kill confirmation dialog is open.
- GH-1956: Launch will abort sooner when important files are missing.
- GH-1874: Instance launching and updating MultiMC are now mutually exclusive.
It was possible to do both at the same time, with undefined results.
- GH-1864: imgur album creation now works again.
- GH-1876: Various included libraries have been changed to satisfy their license terms.
Namely:
- pack200 (GPL with classpath exception, now a shared library)
- iconfix (LGPL, now a shared library)
- quazip (LGPL, now a shared library)
- ColumnResizer (replaced with a BSD-3 version).
- GH-1882: Update dialog will now save its location and size.
- GH-1885: MultiMC will now correctly download zero-byte files.
No content does not equal no file and a presence of a file can mean the difference between something working or not.
- When importing modpacks, file permissions from the pack archive will no longer be preserved.
The archives are sometimes broken and have invalid permissions, especially when coming from sources other than MultiMC.
- Instance export filter has been fixed.
The filtering logic was picking and ignoring incorrect files under some conditions. Also, hidden files were ignored.
- Download progress bars are now less jumpy.
Instead of tracking the total size of all downloads, each download gets a fixed share of the progress bar.
In many cases, the size of files is unknown before a download starts. The change means that the total progress bar size cannot increase as new downloads start and file sizes are discovered.
- GH-1927: fix crash bugs related to FML library downloads succeeding multiple times.
- Rare problems with error 201 during Mojang authentication have been fixed.
- GH-1971: MultiMC will now no longer check path prefixes when importing instances.
This has caused more issues than it solved. Now it will simply try to move the files instead of giving up early.
- Instance import and creation have been overhauled in general for increased reliability.
- Hardcoded link colors in various dialogs and dialog pages have been fixed and now should follow theme palettes.
- GH-1993: Minimum and maximum JVM memory settings will now get swapped if set the wrong way.
The values self-correct on both settings save and load now.
- GH-2050: Fixed behavior of cancel buttons when browsing for paths.
This affected various settings dialogs and pages, setting the paths to an invalid value when the dialogs were closed with the `Cancel` button.
- The checkboxes in the accounts settings page now have the correct appearance.
- MultiMC responds to account manipulation better.
- Setting and resetting default account will update the account list properly.
- Removing the active account will now also reset it (previously, it would 'stay around').
- The accounts model is no longer reset by every action.
- When closing and reopening the instance window, the log settings are preserved.
The resulting instance window can be closed or reopened at any point, it does not matter if the instance is running or not. The list of available pages in the instance window changes with instance state.
On launch, the main window is kept open and running instances are marked with a badge. Opening the instance window is no longer the default action. Second activation of a running instance opens the instance window.
MultiMC can be entirely closed, keeping Minecraft instances running. However, if you close MultiMC, play time tracking, logging and crash reporting will not work.
Accounts which are in use are marked as such. If you plan to run multiple instances with multiple accounts, it is advisable to not set a default account to make it ask which one to use on launch.
- It is no longer possible to run multiple copies of MultiMC from a single folder
This generally caused strange configuration and Mojang login issues because the running MultiMC copies did not know about each other.
With the ability to launch multiple instances with different accounts, it is no longer needed.
Trying to run a second copy will focus the existing window. If MultiMC was started without a main window, a new main window will be opened. If the second copy is launching an instance from the command line, it will launch in the first copy instead.
This feature is also used for better checking of correct update completion (GH-1726). It should no longer be possible for MultiMC to end up in a state when it is unable to start - the old version checks that the new one can start and respond to liveness checks by writing a file.
- GH-903: MultiMC now supports theming
By default, it comes with a Dark, Bright, System (the old default) and Custom theme.
The Custom theme can change all of the colors, change the Qt widget theme and style the whole UI with CSS rules.
Files you can customize are created in `themes/custom/`. The CSS theming is similar to what TeamSpeak uses.
Ultimately, this is a start, not a final solution. If you are interested in making custom themes and would like to shape the direction this takes in the future, ask on Discord. :)
Any libraries stored in `$instanceroot/libraries/` will override the libraries from MultiMC's global folders, as long as they are marked `local` in the JSON patch.
This includes checksum verification, when available.
- Minecraft logging has been overhauled
The log now persists after the instance/console window is closed.
- GH-575: Mod lists got a refactor
The original issue is about adding sub-folder listings to mod lists. However, this is simply a refactor that separates the old Jar mod list from the less complex Loader mods. It allowed all of the mod list improvements to happen.
- The network code has been heavily reworked
Most issues related to slow networks and failing downloads should be a thing of the past.
This also includes post-download validation of the download - like using SHA1 checksums.
- Minecraft launching has been reworked
It is now a lot of tiny reusable tasks that chain together.
MultiMC now also has a separate launch method that works more like the Mojang launcher (not using a launcher part, but running Java directly).
This has been caused by a change on Mojang servers - the data is now stored in a different location and the files describing the releases have a different format. The required changes on MultiMC side aren't complete yet, but it's enough to get snapshots working.
Some undocumented and unused features were removed from the format. Mostly version patches that removed libraries, advanced library application, and merging rules, and things of similar nature. If you used them, you used an undocumented feature that is impossible to reach from the UI.
Because this wasn't a problem on the previous version of Qt MultiMC used (5.4.2), I ended up reverting to that. This is a temporary solution until the Qt framework can be rebuilt and retested for every platform without this broken feature.
The upstream bug is [QTBUG-40332](https://bugreports.qt.io/browse/QTBUG-40332) and despite being closed, it is far from fixed.
Because of the reverted Qt version, OSX 10.7 *might* work again. If it does, please do tell, it would help with figuring out what went wrong there :)
- GH-1408: MultiMC 0.4.8 doesn't work on wireless connections.
This is especially the case on Windows. If you already updated to 0.4.8, you will need to do a manual update, or use a wired connection to do the update.
The issue was caused by a change in the underlying framework (Qt), and MultiMC not including the network bearer plugins. This made it think that the connection is always down and not try to contact any servers because of that.
The upstream bug is [QTBUG-49267](https://bugreports.qt.io/browse/QTBUG-49267).
- GH-1410: MultiMC crashes on launch on OS X 10.7.5
OSX 10.7.x is no longer supported by Apple and I do not have a system to test and fix this.
So, this is likely **NOT** going to be fixed - please update your OS if you are still running 10.7.
### Improvements
- GH-1362: When uploading or copying the Minecraft log, the action is logged, including a full timestamp.
The log window now has a configurable limit for the number of lines remembered. You can also specify whether it stops logging or forgets on the fly once the limit is breached.
- GH-1069, GH-1100: `LD_LIBRARY_PATH` and `LD_PRELOAD` environment variables supplied to MultiMC now don't affect MultiMC but affect the launched game.
- GH-1303: Translations and notification cache are stored in the normal data folder now, not alongside the binaries. This only affects third party Linux packaging.
There is an extra field in the MultiMC Java settings that allows running Java inside a wrapper program or script. This means you can run Minecraft with wrappers like `optirun` and get better performance with hybrid graphics on Linux without workarounds.
- GH-1011 and GH-1015: Fixed various issues when the patch versions aren't complete
This applies when Minecraft versions are missing or when patches are broken and the profile is manipulated by adding, moving, removing, customizing and reverting patches.
- GH-1016: MultiMC prints a list of mods, core mods (contents of the core mods folder) and jar mods to the log on instance start. This should help with troubleshooting.
- SSL certificates are fixed on OSX 10.10.3 and newer - see [explanation](http://www.infoworld.com/article/2911209/mac-os-x/yosemite-10103-breaks-some-applications-and-https-sites.html).