FML and the new launcher in 1.6 - MinecraftForge/FML GitHub Wiki

About the new launcher and FML

This page briefly summarizes what the new 1.6 launcher API means for FML.

Single entry point

Minecraft now has a paper thin single point of entry. This class will be in the minecraft.jar file, but it is expected to be minimally small "dispatcher" to the main Minecraft code. FML will be able to replace this class with our own implementation with ease. The relauncher will (partially) die with this update, happily, since it is no longer necessary- I can simply run all the "old" relauncher code directly and then run minecraft through the new classloader. This will also allow runtime patching of minecraft code in toto, meaning we no longer need to ship any base classes ourselves, rather we will ship "patches" to the base classes that are applied "live" on startup.

Profiles

Profiles are how we will effect this change. They should contain definitions of things like the required libraries, as well as other jars that are added to the classpath. Of note, the new launcher will be able to accept new profiles: expect to see one for FML and MinecraftForge as soon as we have one available.

Co-existence

Only one jar can provide the "alternative" entry point- different loaders won't be able to simultaneously share the new launching scheme, unless we all agree on a common strategy. I have an idea I would like to propose: a very simple hook library that reads additional data from the profile regarding the different "entry point" mod launchers in existence and loads each one in turn, before handing off to the main minecraft in an "appropriately configured" class loader. Doing this would mean the most would get the greatest benefit from the new launcher scheme.

On some inanity seen elsewhere

As far as I am aware, the new launcher will not prevent base class editing from occurring (though it may warn the user that there is something wrong with their minecraft jar file if the base class edits have not been added to a new profile).

With the advent of the new launcher and other API stuff in the pipe, we expect the number of mods shipping base classes to drop significantly however, and Mojang has politely asked that FML and MinecraftForge, jointly the largest platform shipping base classes, to cease once the new launcher is established, a request with which I am happy to comply. (Note: we won't be able to retro-fit this new system onto pre-existing builds of MinecraftForge and FML, this change will only affect 1.6 onwards).