FAQ - MinecraftForge/FML GitHub Wiki
Specific FAQs
Some frequently asked questions about FML
-
Are you serious? FML?
Yes, FML is a deliberate acronym. I know what it means. It also means Forge Mod Loader. The original longer name was FMLMP. I shortened it slightly because FMLMP does mean what you think. -
Is this compatible with ML (Risugami's ModLoader)? Not anymore. Risugami retired from updating ModLoader with the 1.6.2 minecraft release, in 2013. FML removed most of the vestiges of modloader support in transitioning to 1.7.
-
Is this compatible with MLMP? No. MLMP is an unpublished standard, meaning I cannot not usefully create a "clean" reimplementation. It contains many elements that are unknowable without decompiling and basically copying the code. MLMP was never officially updated past minecraft 1.3, in 2012.
-
Why do you have so much more code than ModLoader?
This project is architected to merge the client and server code, thereby creating a single programming experience for both environments simultaneously. Additionally, it supports the ability to load heterogeneous mod types- I am planning to support scala based modding shortly, amongst other things. Also, the architecture of FML makes updates easy. Most of the code does not change- only the bits that tell FML what to do. -
Why do you merge client and server? Minecraft, as built by Mojang, is a single code base. There's not a "server project" and "client project" at Mojang. Up until 1.3 was released, the Mojang build system basically ran two passes of the obfuscator, one for the client entry point, one for the server. This meant that classes for the server were different from the client. In 1.3, with the internal merge of client and server, came a change to the obfuscation as well- the server has the same obfuscation data as the client, meaning that classes in the client jar are compatible with the server. MCP rebuilt their mappings so they were also unified. Taken as a whole it meant it is possible for FML to re-merge the client and server code, to generate a single code base. This makes a lot of things a lot easier - it is possible to develop mods for both client and server as a single universal jar, for example. Basically, FML is attempting to recreate that single code base that exists inside Mojang.
-
WTF is a coremod? Coremods are a special type of mod that has special access to some of the advanced capabilities of FML. FML is performing runtime bytecode class manipulation. This can be useful for modders who know their way around [ASM] (http://asm.ow2.org/) and wish to inject "clever" code without actually editing any base code at all. It's a bit like what MCPatcher does, except it's at runtime. This is one of the reasons we're generally incompatible with MCPatcher (there are others, but this is one of the main ones). For most people, just copy some "magic" code into coremods and you'll be good to go.
-
Do you have any how-to guides for using this at all?
There is at least one on the minecraft forums written by AtomicStryker and others here. I will try and keep the list up to date. -
What's all the FMLModContainer and @Mod stuff about?
This is a new way to specify a Mod to FML. It doesn't suffer the drawbacks that BaseMod has, and was designed from the ground up for the capability to work in all three primary environments. -
Where can I find you and give you money?
I am often found on the #minecraftforge, #mcportcentral or #Direwolf20 channels on esper.net along with most other minecraft mod developers.If you wish to give me money, I recommend you give it to LexManos instead, he does a lot more for minecraft modding than I ever will. If you really want to give me money, I ask that you donate something to childsplay. I seriously am not accepting any donations.