Please note I no longer support or update this, and it was intended for 1.7.10, but not much has changed.
Hey everyone and welcome to the MCMOD.INFO guide and help post!
Today I'm going to show you all about the mcmod.info file - what it's about, why is it required, "what does that part mean?" and more.
So first of all, let's start with an example with an example file in the spoiler below.
If your MCMOD.INFO doesn’t look like this (depending on the version, this is 1.7.10) you can copy and paste it into your file, and replace the info with your mod info.
[{
"modid": "testmod",
"name": "Test Mod",
"description": "This mod is used just for testing and obviously no one would want to download a mod that adds nothing...",
"mcversion": "1.7.10",
"version": "1.0",
"url": "",
"updateUrl": "",
"authors": [ "mcpcfanc", "Test Author" ],
"credits": "By mcpcfanc, for making this example",
"logoFile": "/testmodlogo.png",
"screenshots": [],
"parent":"",
"dependencies": [ ]
}]
So, now, let's take a look at the properties and see what they mean.
modid - String - Required
This is basically just the name of your mod without capitals or spaces. I suggest you not to make it another mod's id such as "inventorytweaks", because then Forge will get confused with the first and second inventory tweaks mod.
"modid": "testmod", name - String - Required
Name of your mod.... Not that hard, right?
"name": "Test Mod", version - String - Required The version of your mod. Not to be confused with mcversion. An ideal version would be 1.0 if your mod is still WIP and not released yet.
"version": "1.0",
description – String – Required
Description of your mod. It can’t contain images, SWFs and etcetera, but you can use logoFile for the image and url for a link to the content. mcversion -String - Required The Minecraft version your mod is going to be working on. If you're using Forge 1.7.10, you would be using 1.7.10. If you're using Forge 1.8, you would use 1.8 and vice versa. You can just put in random numbers, but it would be useful if you used the method above.
"mcversion": "1.7.10", url - String Your mod's web site, forum thread, info/support page or anything on the web that's like that. The mod users can then click on the link in-game and it will take them to the link you specified.
"url": "your url here", updateUrl - String This one doesn't serve a purpose yet since it is not functional yet. It's planned to be functional in the future, and it will allow for the mod user to check for updates.
"updateUrl": "your update url here",
authors - Array - Required A list of the author(s) who created your mod. Separate the author(s) with commas.
"authors": [ "mcpcfanc", "Test Author" ], credits - String - Unknown Some text to acknowledge anything related to your mod. Keep it short as the text field isn't wrapped, though it will be wrapped eventually.
"credits": "By mcpcfanc, for making this example",
logoFile – String
The path to your logo file. Let’s say I have an image I want to use as a logo. Now put that file called “testlogo.png” into your main file directory. Then type a forward slash in as well as your image name and format (must be .png). However, you can ignore this directory (it is not required) and put it somewhere else such as /assets/ testmodlogo.png.
"logoFile": "/testmodlogo.png",
screenshots – Array
Much like updateUrl, it does not currently serve a purpose because it is not yet functional. Not much to see here.
"screenshots": [],
parent – String
Used to connect multiple submods together under a single top level entry. I quite like this feature.
"parent":"",
requiredMods – Array
The list of required mods, hard dependencies. If you list any mods here, those mods will prevent your mod from loading until they are installed. Include “Forge” if you use Forge methods. The mods here will start the mods in a random order, not the order specified by this property. If you’re looking forward to starting them in a specific order, use dependencies instead.
dependencies – Array
dependencies - Array
Soft dependencies – mods that should be loaded before your mod, the opposite to requiredMods. A mod that is listed in both requiredMods and is a required mod that will be loaded before your mod.
"dependencies": [ ]
depandants - Array
Soft mods that should be loaded after your mod has loaded. I prefer not to do this because some mods detect other mods when it is already in its starting process.
useDependencyInformation – Boolean – Required for the last 3 properties
Should be true. If not, or if the property is missing, then add it and set it to true unless you want to disable the last three properties.
requiredMods, useDependencyInformation, and requiredMods are not included in most MCMOD.INFO files, so they are not in the example above. They can be manually added and will still be functional.
Alright, so now we know all properties and what they mean (if you don’t in any way, please post or PM me and I will be happy to help you J)
Now, let’s take a look at what it looks like in-game.
As you can see above, the text and arrows present where your text will be displayed. Some are not displayed here such as mcversion, which is listed in the left corner.
---------------------------------------------
The Original MCMOD.INFO File
When you open up the McMod.INFO file for the first time, it’ll show an example similar to mine but without color formatting and them editing the text. However, it’s your mod. Releasing your mod without putting in the correct details of their mod can lead to a crash or public embarrassment.
FAQ
Why do we need a MCMOD.INFO file?
To specify details about your mod, duh…
Does the modid and name have to be the same specified in the main class?
Yes.
Why are the unimplemented ones there? Why don’t they add them when they’re functional?
Good question. I have no idea why. If you’re curious, ask the Minecraft Forge creators (one is Searge).
If you have anything you’d like to say please PM me or post a reply and I’ll be more than happy to reply. Also, if you happen to see any errors or would like to add something please let me know. This post will be updated regularly with more information and more properties (when Forge implements new properties). Thanks for reading and enjoy creating your awesome mod !
You can use that photo for other examples as long as it has the credits.
What am I doing wrong here? This mod requires my two other mods, witch are shared code between my mods, Atomic (regular mod, NOT CORE) and Optomic (regular mod, NOT CORE)
What do you mean you have two mods? Do you mean you're just working on two different mods? Or do you mean you have two mods that work together?
Anyway, properly you need to create separate Eclipse project for each mod and each would have its own mcmod.info file.
If you really need two mods in the same project for some reason, you can get similar effect to mcmod.info file by hard-coding the values. To do this, you can use the @Mod annotation parameters plus some other stuff in the pre-init loading stage to set the same things. Here is example from one of my mods:
@Mod(modid =
MagicBeans.MODID,
name = MagicBeans.MODNAME,
version = MagicBeans.MODVERSION,
guiFactory = "com.blogspot.jabelarminecraft."+MagicBeans.MODID+".gui.GuiFactory")
public class MagicBeans
{
public static final String MODID = "magicbeans";
public static final String MODNAME = "Magic Beans";
public static final String MODVERSION = "1.0.0";
public static final String MODDESCRIPTION = "Start the adventure by feeding a golden carrot to a grown-up cow.";
public static final String MODAUTHOR = "jabelar";
public static final String MODCREDITS = "Taliaailat, Jnaejnae";
public static final String MODURL = "www.jabelarminecraft.blogspot.com";
public static final String MODLOGO = "jackandbeanstalk.png";
// instantiate the mod
@Instance(MODID)
public static MagicBeans instance;
// Says where the client and server 'proxy' code is loaded.
@SidedProxy(clientSide="com.blogspot.jabelarminecraft.magicbeans.proxy.ClientProxy", serverSide="com.blogspot.jabelarminecraft.magicbeans.proxy.CommonProxy")
public static CommonProxy proxy;
// preInit "Run before anything else. Read your config, create blocks, items, etc, and register them with the GameRegistry."
public void fmlLifeCycleEvent(FMLPreInitializationEvent event)
{
// hard-code mod information so don't need mcmod.info file
event.getModMetadata().autogenerated = false ; // stops it from complaining about missing mcmod.info
event.getModMetadata().credits = MODCREDITS;
event.getModMetadata().authorList.add(MODAUTHOR);
event.getModMetadata().description = MODDESCRIPTION;
event.getModMetadata().url = MODURL;
event.getModMetadata().logoFile = MODLOGO;
proxy.fmlLifeCycleEvent(event);
}
You can see that i define some string constants with same sort of information as the mcmod.info file would have. In the @Mod annotation I assign the mod ID and version. Then in the pre-init handler you can see that the event parameter has a getModMetadata() method which you can use to further edit the data.
Hello, I have two mods, how can I include the information about both the mods into the mcmid.info file? should I have two files?
Thanks in advance
The top level element of mcmod.info is an array containing an object for each mod. Just add an object to the array for the new mod, like BuildCraft does.
Rollback Post to RevisionRollBack
Chisel Facades: For all your decorative pipe-hiding needs.
Please don't PM me to ask for help or to join your mod development team. Asking your question in a public thread preserves it for people who are having the same problem in the future. I'm not interested in developing mods with people.
Thank you for your response I actually have two mods but they are not related, so what I did was, put a colon between the two in the mcmid.info file. Like this:
[
{
"modid": "examplemod",
"name": "Example Mod",
"description": "Example placeholder mod.",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["ExampleDude"],
"credits": "The Forge and FML guys, for making this example",
"logoFile": "",
"screenshots": [],
"dependencies": []
},
{
"modid": "sara_mymod",
"name": "My Mod",
"description": "This is my first Mod ever!.",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["Sara"],
"credits": "The Let's Mod Reboot video, thanks man!",
"logoFile": "",
"screenshots": [],
"dependencies": []
}
]
And it worked! so basically, the problem was the colon.
Thank you for your response I actually have two mods but they are not related, so what I did was, put a colon between the two in the mcmid.info file. Like this:
[
{
"modid": "examplemod",
"name": "Example Mod",
"description": "Example placeholder mod.",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["ExampleDude"],
"credits": "The Forge and FML guys, for making this example",
"logoFile": "",
"screenshots": [],
"dependencies": []
},
{
"modid": "sara_mymod",
"name": "My Mod",
"description": "This is my first Mod ever!.",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["Sara"],
"credits": "The Let's Mod Reboot video, thanks man!",
"logoFile": "",
"screenshots": [],
"dependencies": []
}
]
And it worked! so basically, the problem was the colon.
The Meaning of Life, the Universe, and Everything.
Location:
Hume
Join Date:
5/9/2012
Posts:
1,250
Location:
None
Minecraft:
The cave game
Xbox:
360
Member Details
So, I'm trying to get a new version of my mod up and running, and although I haven't had any problems in the past, now the game refuses to detect the mcmod.info file. Even when I remove mine and substitute somebody elses. In addition, it insists on calling my mod 'TestEnvironmentMod,' despite that I don't think I called it that anywhere, and I am no longer using the test environment. Anybody know why this might be?
If it is not in your workspace, try running 'gradlew setupDecompWorkspace' again. The mcmod.info file should appear in src > main > resources next to the assets folder
Rollback Post to RevisionRollBack
Click this banner for a list of illegal mod distributors -- only download from legal sites!
Arlo, not sure if you've solved this yet. Just stumbled on this thread today.
It's possible that it's getting an old name from your build.gradle file. I think the content of the mcmod.info file only affects what's displayed when you select your mod from the modlist within MC.
Arlo, not sure if you've solved this yet. Just stumbled on this thread today.
It's possible that it's getting an old name from your build.gradle file. I think the content of the mcmod.info file only affects what's displayed when you select your mod from the modlist within MC.
Thanks mate
That's too bad, I lost the whole set of dev files, so I was hoping there would be a way to fix it without them. Guess I'll just have to reprogram the mod from scratch then :\
(This is the author's alternative account, I am unable to access that account) THIS TUTORIAL IS NO LONGER IN USE. IT IS FOR OLDER VERSION ONLY. PLEASE DO NOT USE THIS FOR DEVELOPMENT.
Is there a version of this that still works today?
The only recent change to the format was the removal of the updateUrl field. Apart from that, the format is still the same in 1.10.2 as it was in 1.7.10.
Rollback Post to RevisionRollBack
Chisel Facades: For all your decorative pipe-hiding needs.
Please don't PM me to ask for help or to join your mod development team. Asking your question in a public thread preserves it for people who are having the same problem in the future. I'm not interested in developing mods with people.
Please note I no longer support or update this, and it was intended for 1.7.10, but not much has changed.
Hey everyone and welcome to the MCMOD.INFO guide and help post!
Today I'm going to show you all about the mcmod.info file - what it's about, why is it required, "what does that part mean?" and more.
So first of all, let's start with an example with an example file in the spoiler below.
If your MCMOD.INFO doesn’t look like this (depending on the version, this is 1.7.10) you can copy and paste it into your file, and replace the info with your mod info.
[{
"modid": "testmod",
"name": "Test Mod",
"description": "This mod is used just for testing and obviously no one would want to download a mod that adds nothing...",
"mcversion": "1.7.10",
"version": "1.0",
"url": "",
"updateUrl": "",
"authors": [ "mcpcfanc", "Test Author" ],
"credits": "By mcpcfanc, for making this example",
"logoFile": "/testmodlogo.png",
"screenshots": [],
"parent":"",
"dependencies": [ ]
}]
So, now, let's take a look at the properties and see what they mean.
modid - String - Required
This is basically just the name of your mod without capitals or spaces. I suggest you not to make it another mod's id such as "inventorytweaks", because then Forge will get confused with the first and second inventory tweaks mod.
"modid": "testmod",
name - String - Required
Name of your mod.... Not that hard, right?
"name": "Test Mod",
version - String - Required
The version of your mod. Not to be confused with mcversion. An ideal version would be 1.0 if your mod is still WIP and not released yet.
"version": "1.0",
description – String – Required
Description of your mod. It can’t contain images, SWFs and etcetera, but you can use logoFile for the image and url for a link to the content.
mcversion - String - Required
The Minecraft version your mod is going to be working on. If you're using Forge 1.7.10, you would be using 1.7.10. If you're using Forge 1.8, you would use 1.8 and vice versa. You can just put in random numbers, but it would be useful if you used the method above.
"mcversion": "1.7.10",
url - String
Your mod's web site, forum thread, info/support page or anything on the web that's like that. The mod users can then click on the link in-game and it will take them to the link you specified.
"url": "your url here",
updateUrl - String
This one doesn't serve a purpose yet since it is not functional yet. It's planned to be functional in the future, and it will allow for the mod user to check for updates.
"updateUrl": "your update url here",
authors - Array - Required
A list of the author(s) who created your mod. Separate the author(s) with commas.
"authors": [ "mcpcfanc", "Test Author" ],
credits - String - Unknown
Some text to acknowledge anything related to your mod. Keep it short as the text field isn't wrapped, though it will be wrapped eventually.
"credits": "By mcpcfanc, for making this example",
logoFile – String
The path to your logo file. Let’s say I have an image I want to use as a logo. Now put that file called “testlogo.png” into your main file directory. Then type a forward slash in as well as your image name and format (must be .png). However, you can ignore this directory (it is not required) and put it somewhere else such as /assets/ testmodlogo.png.
"logoFile": "/testmodlogo.png",
screenshots – Array
Much like updateUrl, it does not currently serve a purpose because it is not yet functional. Not much to see here.
"screenshots": [],
parent – String
Used to connect multiple submods together under a single top level entry. I quite like this feature.
"parent":"",
requiredMods – Array
The list of required mods, hard dependencies. If you list any mods here, those mods will prevent your mod from loading until they are installed. Include “Forge” if you use Forge methods. The mods here will start the mods in a random order, not the order specified by this property. If you’re looking forward to starting them in a specific order, use dependencies instead.
dependencies – Array
dependencies - Array
Soft dependencies – mods that should be loaded before your mod, the opposite to requiredMods. A mod that is listed in both requiredMods and is a required mod that will be loaded before your mod.
"dependencies": [ ]
depandants - Array
Soft mods that should be loaded after your mod has loaded. I prefer not to do this because some mods detect other mods when it is already in its starting process.
useDependencyInformation – Boolean – Required for the last 3 properties
Should be true. If not, or if the property is missing, then add it and set it to true unless you want to disable the last three properties.
requiredMods, useDependencyInformation, and requiredMods are not included in most MCMOD.INFO files, so they are not in the example above. They can be manually added and will still be functional.
----------------------------------------------------------------------------
Alright, so now we know all properties and what they mean (if you don’t in any way, please post or PM me and I will be happy to help you J)
Now, let’s take a look at what it looks like in-game.
As you can see above, the text and arrows present where your text will be displayed. Some are not displayed here such as mcversion, which is listed in the left corner.
---------------------------------------------
The Original MCMOD.INFO File
When you open up the McMod.INFO file for the first time, it’ll show an example similar to mine but without color formatting and them editing the text. However, it’s your mod. Releasing your mod without putting in the correct details of their mod can lead to a crash or public embarrassment.
FAQ
Why do we need a MCMOD.INFO file?
To specify details about your mod, duh…
Does the modid and name have to be the same specified in the main class?
Yes.
Why are the unimplemented ones there? Why don’t they add them when they’re functional?
Good question. I have no idea why. If you’re curious, ask the Minecraft Forge creators (one is Searge).
Where will my logo be displayed?
At the top, above most text in-game.
--------------------------------------------------------
If you have anything you’d like to say please PM me or post a reply and I’ll be more than happy to reply. Also, if you happen to see any errors or would like to add something please let me know. This post will be updated regularly with more information and more properties (when Forge implements new properties). Thanks for reading and enjoy creating your awesome mod !
You can use that photo for other examples as long as it has the credits.
Want to get rid of trees? Want to troll your friends? Check out my mod!
Want your own custom map or server setup done? PM me!
Want some love? *hug*
'authors' should be 'authorList' - they changed it in 1.7 and 'authors' no longer works, unless they changed it back.
Also, shouldn't this be in the Mapping and Modding Tutorials section? Tutorials do not belong in the Modification Development section.
What am I doing wrong here? This mod requires my two other mods, witch are shared code between my mods, Atomic (regular mod, NOT CORE) and Optomic (regular mod, NOT CORE)
Help please. Much appreciated!
Ooh, wow. Thank you for pointing out authorList. My Mod wouldn't warn my users of a capability need, for my common-code mods, Atomic and Optomic.
Dependencies need to be separated by commas:
Hello, I have two mods, how can I include the information about both the mods into the mcmid.info file? should I have two files?
Thanks in advance
What do you mean you have two mods? Do you mean you're just working on two different mods? Or do you mean you have two mods that work together?
Anyway, properly you need to create separate Eclipse project for each mod and each would have its own mcmod.info file.
If you really need two mods in the same project for some reason, you can get similar effect to mcmod.info file by hard-coding the values. To do this, you can use the @Mod annotation parameters plus some other stuff in the pre-init loading stage to set the same things. Here is example from one of my mods:
MagicBeans.MODID,
name = MagicBeans.MODNAME,
version = MagicBeans.MODVERSION,
guiFactory = "com.blogspot.jabelarminecraft."+MagicBeans.MODID+".gui.GuiFactory")
public class MagicBeans
{
public static final String MODID = "magicbeans";
public static final String MODNAME = "Magic Beans";
public static final String MODVERSION = "1.0.0";
public static final String MODDESCRIPTION = "Start the adventure by feeding a golden carrot to a grown-up cow.";
public static final String MODAUTHOR = "jabelar";
public static final String MODCREDITS = "Taliaailat, Jnaejnae";
public static final String MODURL = "www.jabelarminecraft.blogspot.com";
public static final String MODLOGO = "jackandbeanstalk.png";
// instantiate the mod
@Instance(MODID)
public static MagicBeans instance;
// Says where the client and server 'proxy' code is loaded.
@SidedProxy(clientSide="com.blogspot.jabelarminecraft.magicbeans.proxy.ClientProxy", serverSide="com.blogspot.jabelarminecraft.magicbeans.proxy.CommonProxy")
public static CommonProxy proxy;
// preInit "Run before anything else. Read your config, create blocks, items, etc, and register them with the GameRegistry."
public void fmlLifeCycleEvent(FMLPreInitializationEvent event)
{
// hard-code mod information so don't need mcmod.info file
event.getModMetadata().autogenerated = false ; // stops it from complaining about missing mcmod.info
event.getModMetadata().credits = MODCREDITS;
event.getModMetadata().authorList.add(MODAUTHOR);
event.getModMetadata().description = MODDESCRIPTION;
event.getModMetadata().url = MODURL;
event.getModMetadata().logoFile = MODLOGO;
proxy.fmlLifeCycleEvent(event);
}
You can see that i define some string constants with same sort of information as the mcmod.info file would have. In the @Mod annotation I assign the mod ID and version. Then in the pre-init handler you can see that the event parameter has a getModMetadata() method which you can use to further edit the data.
The top level element of mcmod.info is an array containing an object for each mod. Just add an object to the array for the new mod, like BuildCraft does.
Chisel Facades: For all your decorative pipe-hiding needs.
Please don't PM me to ask for help or to join your mod development team. Asking your question in a public thread preserves it for people who are having the same problem in the future. I'm not interested in developing mods with people.
Thank you for your response I actually have two mods but they are not related, so what I did was, put a colon between the two in the mcmid.info file. Like this:
[
{
"modid": "examplemod",
"name": "Example Mod",
"description": "Example placeholder mod.",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["ExampleDude"],
"credits": "The Forge and FML guys, for making this example",
"logoFile": "",
"screenshots": [],
"dependencies": []
},
{
"modid": "sara_mymod",
"name": "My Mod",
"description": "This is my first Mod ever!.",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["Sara"],
"credits": "The Let's Mod Reboot video, thanks man!",
"logoFile": "",
"screenshots": [],
"dependencies": []
}
]
And it worked! so basically, the problem was the colon.
Thank you for your response I actually have two mods but they are not related, so what I did was, put a colon between the two in the mcmid.info file. Like this:
[
{
"modid": "examplemod",
"name": "Example Mod",
"description": "Example placeholder mod.",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["ExampleDude"],
"credits": "The Forge and FML guys, for making this example",
"logoFile": "",
"screenshots": [],
"dependencies": []
},
{
"modid": "sara_mymod",
"name": "My Mod",
"description": "This is my first Mod ever!.",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["Sara"],
"credits": "The Let's Mod Reboot video, thanks man!",
"logoFile": "",
"screenshots": [],
"dependencies": []
}
]
And it worked! so basically, the problem was the colon.
So, I'm trying to get a new version of my mod up and running, and although I haven't had any problems in the past, now the game refuses to detect the mcmod.info file. Even when I remove mine and substitute somebody elses. In addition, it insists on calling my mod 'TestEnvironmentMod,' despite that I don't think I called it that anywhere, and I am no longer using the test environment. Anybody know why this might be?
My Mods:
Fool's gold & other dumb things
Placebo Effect
Two others that I am pretending don't exist.
Also, Modding Theory.
It should already be present in your modding workspace.
If it is not in your workspace, try running 'gradlew setupDecompWorkspace' again. The mcmod.info file should appear in src > main > resources next to the assets folder
Anybody have any idea what I might be doing wrong?
My Mods:
Fool's gold & other dumb things
Placebo Effect
Two others that I am pretending don't exist.
Also, Modding Theory.
Arlo, not sure if you've solved this yet. Just stumbled on this thread today.
It's possible that it's getting an old name from your build.gradle file. I think the content of the mcmod.info file only affects what's displayed when you select your mod from the modlist within MC.
Thanks mate
That's too bad, I lost the whole set of dev files, so I was hoping there would be a way to fix it without them. Guess I'll just have to reprogram the mod from scratch then :\
My Mods:
Fool's gold & other dumb things
Placebo Effect
Two others that I am pretending don't exist.
Also, Modding Theory.
(This is the author's alternative account, I am unable to access that account) THIS TUTORIAL IS NO LONGER IN USE. IT IS FOR OLDER VERSION ONLY. PLEASE DO NOT USE THIS FOR DEVELOPMENT.
The only recent change to the format was the removal of the updateUrl field. Apart from that, the format is still the same in 1.10.2 as it was in 1.7.10.
Chisel Facades: For all your decorative pipe-hiding needs.
Please don't PM me to ask for help or to join your mod development team. Asking your question in a public thread preserves it for people who are having the same problem in the future. I'm not interested in developing mods with people.