-
-
Notifications
You must be signed in to change notification settings - Fork 201
FML mod information file
Every jar containing an FML mod should also contain, at the root, a text file named mcmod.info
. This is to simplify the info loading, and for good compatibility between launchers and FML. With a valid mcmod.info
file, users can easily access info about your mod by clicking the Mods button on the main screen in Minecraft.
This file uses JSON to define a list of mods and various properties for each. Multiple mods can be listed in the same mcmod.info
file.
As a general note, FML mods should always be packaged as jars so the user can simply place the archive in the mods
folder. Note that bytecode modifications to Minecraft classes are not supported via this installation method. If you need something modified in a Minecraft base class you should request that Forge or FML add the feature you need, or look into creating an FML coremod.
{
"modListVersion": 2,
"modList": [{
"modid": "mod_IronChest",
"name": "Iron Chest",
"description": "A simple mod adding some new chests with larger sizes, upgradeable in place. The feature chest is the crystal chest, which is see-through - this inventory contents can be viewed without opening the chest.",
"version": "3.1.1.21",
"mcversion": "1.4.5",
"url": "http://www.minecraftforum.net/topic/981855-",
"updateUrl": "",
"authorList": [ "cpw", "Lishid" ],
"credits": "Authored by cpw, based on an original idea by Lishid",
"logoFile": "/mod_IronChest.logo.png",
"screenshots": [ "shot1.png", "shot2.png" ],
"parent": "mod_BuildCraftCore",
"requiredMods": [ "Forge", "mod_BuildCraftCore" ],
"dependencies": [ "mod_BuildCraftCore" ],
"dependants": [ "MySpecialSubMod" ],
"useDependencyInformation": true
}]
}
Please be sure to define all properties in your file to avoid warning messages being logged when parsing the file. Use an empty string ""
or an empty array []
as appropriate.
The top-level properties are modListVersion, which should always be "2"
, and modList, which is an array of objects. Each object is a mod definition, with the following properties:
Property | Type | Description |
---|---|---|
modid | string | Ties the individual data sections together with their respective mods. Non-existent mods mentioned in the file are ignored. |
name | string | The mod's human-readable name. |
description | string | A brief paragraph or two describing what your mod does. |
version | string | The mod's version. |
mcversion | string | Minecraft's version. |
url | string | The mod's web site, forum thread, GitHub project, or whatever. Will eventually allow the user to open the link directly from the info screen in-game. |
updateUrl | string | Currently unimplemented, will eventually be used to automatically check for mod updates. |
authorList | array | The mod's authors in list format. |
credits | string | Free form text field where you can acknowledge whatever. Keep it short as this field isn't text wrapped (though it will be eventually). |
logoFile | string | The resource path of the image to display at the top of the info screen. Read from the classpath, so make sure it's uniquely named, or better yet located in a package directory unique to your mod. You are responsible for making it look good at various client screen sizes. |
screenshots | array | Currently unimplemented, will eventually be displayed in the info screen. |
parent | string | Used to connect multiple submods together under a single top level entry. Avoids cluttering up the info screen with mods that don't do anything on their own but are rather modules of another mod. |
requiredMods | array | List of required mods ("hard" dependencies). Any mods listed here but not installed will prevent your mod from loading. Minecraft will shut down with an error screen explaining the problem to the user. This is much more user-friendly than simply crashing. It's a good idea to include "Forge" if your mod uses Forge methods (as opposed to just FML methods).This property does not specify the order that mods are loaded. In other words, your mod might very load before a mod that it requires. Ordering only occurs when coupled with an entry in the dependencies property, below. |
dependencies | array | List of optional mods ("soft" dependencies) that should load before this mod. A mod that is listed in both requiredMods and dependencies is a required mod that will always be loaded before your mod. |
dependants | array | List of optional mods ("soft" dependencies) that should load after this mod. |
useDependencyInformation | boolean | Should normally be true . If not, or if the property is missing, the previous 3 properties will be ignored entirely.Dependency info can also be overridden by using a @Mod(useMetadata=false, dependencies=<String>) Java annotation for FML mods.For ModLoader mods (i.e., extending BaseMod rather than using FML's @Mod annotation), these 3 properties are always ignored. Instead, FML inspects the BaseMod.getPriorities method. |