|The contents of this page are not supported by Mojang AB, the Minecraft Wiki, the or the .|
|This article needs updating.
Description: ModLoader or directly modifying the base source are no longer recomended; forge (or liteloader or another loader) is prefered). Additionally probably a lot of information is just using outdated techniques; this article needs a run-through to make sure everything is up-to-date.
Minecraft modding is one of the most popular features introduced into the community. There are many different kinds of mods. This tutorial will present you information on how to make your very own Minecraft mod, whether it be with ModLoader, Minecraft Forge or hard coded in to the core source. Some knowledge of Java is necessary; it is assumed the reader is familiar with common programming terminology. You can create mods for Minecraft on all computer operating systems (Windows, OS X, Linux, Android, IOS, Raspberry Pi and Windows Phone). You can not make mods on a console. You can use some of the tools and knowledge gained here not only just to create mods for Minecraft, but also to program using Java and maybe a few other programming languages in general. Have fun!
- 1 Other Tutorials
- 2 Tools
- 3 Pocket Edition Tools
- 4 The Minecraft Forge API
- 5 Learning Java
- 6 Tutorials
- 7 Tips
- 8 Creating mods without MCP
- 9 Creating GLSL mods
Other Tutorials[edit | edit source]
For other tutorials not listed on this page (including some that are), the Minecraft Forums Modding Tutorials page will help to create your first mod. There are various tutorials for both ModLoader and Minecraft Forge.
Tools[edit | edit source]
There are many tools that can be used to mod Minecraft. The following is a list of any that people put on here or suggest in the discussion page. Java is the programing language Minecraft is written in, so you almost always will have to code in Java when coding mods for Minecraft. The latest stable version of Java can always be downloaded from here (JRE) or here (JDK). The Java 8 update snapshot downloads are here, and the Java 9 snapshot downloads are here. At the moment the Java 9 snapshots do not work with Minecraft, but the Java 8 snapshots do, if you want to run the latest Java 8 snapshots. The different editions of Java you can use are as follows:
- Java SE (Java Standard Edition), which is available in these packages: the normal runtime environment version of Java, which is the JRE (Java Runtime Environment) and the JDK (Java Development Kit). The JDK is designed for Java developers and coders and is required for coding Minecraft mods. The JDK can be downloaded along with NetBeans here.
- Java EE (Java Enterprise Edition), for businesses, companies and large projects, and comes with a lot more classes than the standard edition of Java.
- Java ME (Java Micro Edition) is a small and portable version of Java.
- JavaFX, now included in all the other Java packages)
- Java Embedded, for embedded devices (yes, you can run Minecraft on some embedded devices that have Windows, OS X or Linux operating systems)).
All general-purpose java coding tools on any device can be used to help create mods.
- Mod loading APIs (Application Programming Interface) standardize things, allowing for compatibility between mods. The official Minecraft API is not published yet. In the meantime, the Minecraft modding community has filled that void:
- Risugami's ModLoader is among the oldest and was previously one of the most popular mod APIs, although since it has lost most of its popularity to Minecraft Forge. It has been discontinued since the 1.6.2 version and the 1.6.2 bugfix by Acomputerdog. It loads mod class files in each minecraft version .jar file. Prior to 1.6 it and ModLoaderMP loaded mod class files in the old minecraft.jar file in the old "bin" folder. Forge and FML used to load mod class files prior to 1.5, but in 1.5 it started to load .jar and .zip mods in a new folder called "mods". ModLoader and ModloaderMP have to be installed manually by adding the classes to the version .jar files. Forge and FML were installed in the same way until 1.5 where they had installers which installed them in the libraries folder. Modloader has been around since one of the first alpha testing versions of minecraft. The creator of this modloader is called Risugami. ModLoader only works for clientside. ModLoader can be downloaded here. ModLoader is backwards compatible with Forge and ModLoaderMP. Mods for this modloader are java classes.
- ModLoaderMP has been around since the early versions of beta testing, but development was discontinued in 1.3.2. It is available as both clientside and serverside. The creator of this ModLoader is known as ScottyDoesKnow(SDK). ModLoaderMP is backwards compatible with Forge and ModLoader. Mods for this modloader are java classes.
- FML (Forge ModLoader) is basically just Forge, but without the Forge API and is just the modloader. FML is also backwards-compatible with ModLoader, ModLoaderMP, LiteLoader and M3L and does the same things. FML supports small mods, but Forge supports small mods and large mods. Lex Manos develops both FML and Forge. FML can be downloaded here. FML is open-source and the repository can be accessed from here. FML has been released separately to Forge since 1.1. Mods for this modloader used to be java classes, but now are .jar and .zip files. FML works for both clientside and serverside.
- Minecraft Forge is backwards-compatible with ModLoader, ModLoaderMP, LiteLoader and M3L and also adds hundreds of additional methods, classes, and utilities to assist mod authors. It adds a mods folder and comes with a installer. It is available as both client-side and server-side. It has replaced Risugami's ModLoader. Forge is FML along with with the Forge API. Forge has been around since beta 1.7.3. The creator of Forge and FML is known as Lex Manos. Forge can be downloaded here. Forge is open-source and the repository can be accessed from here. The Minecraft Support Package, Forge Documentation, ForgeGradle (also open-source and the repository can be accessed from here), Forge Installer, ModsList Outputter and DiscourseForge are all open-source. Forge is incompatible with the broken Java 8 Version 20, but the incompatibility problem for Java Version 20 has been fixed using LegacyJavaFixer Mod. Mods for this modloader used to be java classes, but now are .jar and .zip files. Forge is available for versions beta 1.7.3-official release 1.8. Old Forge downloads can be found here, here and here. LuaForge is in Python and Lua and is open-source and the repository can be accessed from here, however the project is no longer being maintained and is preserved for historical purposes only.
- LiteLoader is a lightweight modloader which is designed to load small, clientside mods. LiteLoader is backwards compatible with Forge and FML. LiteLoader comes with a installer. LiteLoader was made by Mumfrey. LiteLoader can be downloaded here and development builds can be downloaded here. LiteLoader is open-source here, here and here. The LiteLoader installer is open-source here and here. LiteLoader's API is called the LiteAPI. Mods for this modloader are .litemod files. LiteLoader is for 1.5-1.10, with snapshots through 1.12.1. LiteLoader is not serverside yet.
- BlazeLoader(BL) is the successor to Risugami's ModLoader and uses the LiteAPI(but works without LiteLoader because the LiteAPI comes with BlazeLoader too). This modloader is for 1.6-1.8, but only a 1.6.4 demo has been publicly released. It can load large mods, but only three mods have been made for BlazeLoader: TerrainEdit(also open-source here), RealisticStone(also open-source here) and The WikiBook Mod. The creator of BlazeLoader is known as Acomputerdog or warriordog. BlazeLoader is open-source here, here, here and here. The BlazeLoader Installer is open-source here and here. The BLVersionLib is open-source here and here. You can download the BlazeLoader 1.6.4 Demo 2 version here and here. Mods for this modloader are .litemod, .zip and .jar files. BlazeLoader is only available for clientside, but will probably be available for serverside in the future.
- Magic Mojo Mod Loader(M3L) is a ModLoader designed to load mods and reduce mod conflicts, among these aims for there to be no need for coremods that conflict with each other, support for very large mods, organizing your mods and reducing conflicts. It is based off of Forge, and you need to have the recommended version of the Forge API installed in order for you to be able to install M3L at the moment, but the creator of M3L, Cuchaz, will eventually implement M3L's own API. M3L was being developed in 1.7, but has been publicly released in beta testing development for 1.8. Currently only the Tall Worlds Mod works with M3L. M3L can be downloaded here. M3L is open-source here, here, here, here, here and here. Mods for this modloader are .zip and .jar files. M3L is currently just clientside, but serverside is planned to be available in the future.
- Meddle Mod Loader(Meddle Manager) is a TweakClass Mod Loader designed to easily modify simple tweaks to the 1.9 snapshots and it's mods are drag-and-drop and are loaded from the "meddle" folder in your instance folder. A Meddle mod called DynamicMappings is used to support the running of "dynamic" mods. This ModLoader is made by FyberOptic. You can find this tools website here. Meddle is open-source here. Some Meddle mods are open-source here and here.
Server Plug-in Software:
- Bukkit is a popular server-side-only server plugin API. Bukkit is supported by Dinnerbone, a member of Mojang. Bukkit is the API, CraftBukkit is what you install onto your server which implements Bukkit. BukkitGUI is a Graphical User Interface for Bukkit. DevBukkit is some debug tools for developers. ChatBukkit, ScrapBukkit and HomeBukkit are addons to Bukkit. ChatBukkit improves the chat. HomeBukkit improves your spawn/HUB. ScrapBukkit is for server commands. DevBukkit is a plug-in repository. You can download Bukkit here and here(the settings here). You can download CraftBukkit here, here, here, here, here, here, here, here, here and here. At the moment Bukkit is not downloadable from the official website and is open-source here, here and here. ChatBukkit is open-source here, HomeBukkit here, ScrapBukkit here and DevBukkit here. For more on Bukkit click here. SportBukkit is some bug-fixes which can be downloaded here, the beta testing versions can be downloaded here, and is open-source here. Some more open-source Bukkit files are here. A list of Bukkit java classes is here.
- ForgeBukkit is a similar thing.
- Spigot is like Bukkit and works with Bukkit. Download it here, here, here, here, here, here, here and here. Some add-ons for Spigot are: CheetahSpigot, PaperSpigot and EMC(Empire MineCraft). All the Spigot Stash projects are here. All the Stash repositories are here. All the Spigot java classes are here. You can download PaperSpigot here. Spigot's BungeeChord(connects two servers together is open-source here, and you can download it here. The Spigot API is open-source here and here, and the SpigotPatcher is open-source here. All Spigot Jenkins projects are here.
- Sponge is made by the organisation SpongePowered. Sponge is available in two flavours: SpongeForge (a Forge Mod) and SpongeVanilla (standalone, based on the Vanilla server). Sponge is a Plugin API like Bukkit, but it's build with version compatibility in mind, thus Sponge plugins will work on different Minecraft versions without changes. SpongeForge is made with Mod compatibility in mind too, it's possible to make a Sponge plugin with Forge additions. While inter-version compatibility makes it easier for plugin developers, it puts more pressure on the people updating Sponge. SpongeForge can be downloaded here and SpongeVanilla here. If you're interested in the Sources, have a look at the SpongePowered Github Repo here. The Sponge Documentation here and the Javadocs here are already available too. If you're interested in Sponge's Plugin Repo, have a look at Ore. There are example Plugins available too, have a look at the Sponge Cookbook. The Sponge plug-in, Pore, lets Sponge load Bukkit plug-ins. You can use SpongeForge on the clientside too!
- Magma is made by the organisation ObsidianBox, and is what Obsidian is based off of. It is open-source here.
- Other Bukkit alternatives are all listed here.
- Java tools that have been made by Oracle and Sun Microsystems like JDK will help. Also Lex Manos' Srg2Source will help rename symbols (classes, methods, fields, parameters, and variables) in Java source code using .srg mappings. Also md-5's SpecialSource Generator is a automatic generator and renamer of jar obfuscation mappings. SpecialSource Jenkins builds are here. SpecialSource is open source here, here, here and here. Cantido's Blacksmith is a Eclipse IDE plugin that helps you make Minecraft Forge Mods. The JBPatcher is a classloader which helps patch classes.
- Decompiling tools help you work with Minecraft's source code, which is not published by Mojang. These tools turn compiled, executable, java code into source code.
- The Minecraft Coder Pack utility (MCP) is the community-standard tool to both decompile and deobfuscate the Minecraft code, making it much easier to read and modify. Some useful tools for MCP are the MCP Mapping Viewer and MCP Class Map Helper. MCP is open-source here, here, here, here, here and here.
- FMC(Fyddle for MineCraft) is a alternative to MCP.
- General-purpose Java decompilers, such as JD, JAD and FernFlower, will help you when MCP is not released or unavailable (for example, when modding snapshots). The best one probably is CFR because it is probably the only Java Decomiler that supports the latest Java version and JavaDevelopmentKit(JDK), Java 8. A list of Java Decompilers is here. Also FernFlower is no longer being updated, but lives on in the AndroChef java decompiler which based most of it's code off FernFlower. FernFlower can be downloaded here. Also some open-source FernFlower patches found here and here. FernFlower is open-source here, here, here, here, here, here, here, here, here, here and here. Also I think that the second best decompiler is Procyon which is open source and also supports JDK 8. The main developer for Procyon and the main developer for CFR challenged each other to develop the best java decompiler.
- An IDE (Integrated Development Environment) is useful for any nontrivial programming. MCP automatically generates project files for use in Eclipse, a popular Java IDE. The most popular IDE at the moment is Eclipse, but the other two competitors are NetBeans(2nd) and IntelliJ(3rd). A list of Java IDEs is here. Overall Xcode is more popular than IntelliJ, but Xcode is only available on Apple Computers.
- JBoss Developer is a large and very good addon for Eclipse.
- Compiling tools turn source code into a high-level, 3rd-5th generation, programming language. You can use these for your own mod's source code and/or the source code of other mods on GitHub and BitBucket.
- ECJ is part of the Eclipse IDE and Power J is part of another IDE.
- Debugging tools search for issues in the mod's code and help fix them. There is a default java debugger called jdb(Java DeBugger) which comes with JDK.
- OpenMods has made some debug tools designed for minecraft.
- Deobfuscation tools help deobfuscate complex obfuscated code and make it easier to understand. They can help you understand more about how minecraft works and how other mods work. They can be useful when you want to continue an abandoned mod. They also let you make the code of your mod easier for other developers to understand so that the development of the mod is finished more quickly. Don't confuse these with decompiling tools.
- MCP deals with deobfuscation as well as compiling.
- Enigma is a deobfuscation tool made using Procycon.
- Immibis's BON(Bearded Octo Nemesis) is a tool that also can be used for deobfuscating Minecraft-related code. It is recommended that if you want to deobfuscate using BON and also decompile the code it is recommended that you use the JDGui decompiler if you want to and also it is recommended that you use MCP if you want to. BON is open-source here. You can download BON here and here.
- Java deobfuscators for general java coding like JMD(Java Multipurpose Deobfuscator) and JBO(Java DeObfuscator) are useful too. The best java deobfuscator is probably JBO because it has got into stable release, as JMD was in development, only available as open source and development on it has stopped long ago. You can still get it and use it if you turn the source code into programming code by compiling. JBO is written in the C# programming language and is used to decompile the java programming language. You can get JBO on SourceForge(I recommend you to download non-development versions from here(in the binary folder)) and on GitHub. You can get JMD on GitHub and JavaSED.
- Obfuscation tools help make your code harder for other programmers to read. This aids in stopping others from stealing your code and using it in their own mods.
- The class file assembler called Jasmin is used to create java class files to put in a .jar folder. This tool creates class files inside your mod's .jar file to put your mod's code in. It generates these class files from assembly code and changes them into java code class files.
- Class file disassemblers, such as the default JDK java class file disassembler, javap, or the opposite of Jasmin, Jaspar, are used to take apart java class files.
- Compiler-compilers (also known as compiler generators, parser generators or lexer generators) generate parsers, lexers, and/or compilers. (Parsers and lexers are parts of a compiler; parsers parse input into "words", which are then processed by a lexer, which strings them into statements. A compiler then takes that and transforms it into another language.) If you want to create your own custom compiler because none of of the compilers that exist for java suit you or maybe you want to create a compiler designed for minecraft modding and modding tools. Compiler-compilers take a set of rules that describe a language, and produce another compiler that compiles that language into machine code. A list of lexer generators is available here, and a list of parser generators is available here. Lexers organise assembly code and source code into high-level 3rd generation java programming language "words" and parsers organise these words into "statements" so that they can be understood as java. Currently you can't get any lexers that are separate from a compiler for java, but you can generate java lexers using java lexer generators.
- The JavaParser(JP) is a program or parser that gets a certain instruction or command or bit of code then it breaks up that item into bits that can be processed by other programming tools or other bits of a compiler. It also makes sure that all the code put in is necessary, and it excludes the code that is not needed. JavaParser is the only java parser that is not part of a compiler. JDK has it's own parser. JavaParser was first available on GoogleCode, but since GoogleCode has become less popular and you can no longer create new projects, it has now moved to GitHub. Another Java parser called Multi Core Parser(MCP) and is open-source here.
- Java code generators these tools help you generate java code and java source code. Codemodel, JAXB, DMSToolkit and JavaFrontEnd are examples of these.
- JVMs(Java Virtual Machines) are runtime environments which you you use so you can run programs, like Minecraft, that run on java from. Using different JVMs lets you test those JVMs to see which one is best at running Minecraft with your mod or/and other mods. A list is here and a comparison here.
- JVM languages are programming languages built on top of java and another programming language, so that you can code in that other programming language in java files that works when you run files and have the JVM language installed. The most well known is Jython, the Python programming language in java class files. So if you are better at coding in Python than in Java you can code in Jython, but that means that in order to use your mod people need to install Jython. A list is here. Also Python implementations might also be useful. Python scientific libraries might also be useful. MayaVi is a Python scientific library not included in the Python scientific library list. Java and Python AI networks might also be useful. AI on GitHub and SourceForge.
- Minecraft Mappings are a bunch of code modders create for their mods to support them for a certain Minecraft and MCP version. Various Minecraft Mappings can be found here, here, here, here, here, here, here, here, here, here and here.
- DynamicMappings is a Meddle mod which lets Meddle run "dynamic" mods. DynamicMappings is being developed by FyberOptic and mellamokb. DynamicMappings is open-source here and here.
- Checkmarx is a website that offers various tools from analysing source code to protecting your code by blocking risks to learning how to make your software more secure.
- Text editors can be used to create mods, but coding using a text editor is super hard. The code they show is normally very hard for someone to understand. You might be able to understand a few bits of the code, but most of it is illegible to people who are not skilled in reading the code shown. Notepad is the default text editor for windows, but Notepad++ is a better choice for a free editor, especially for coding. Another popular text editor is Sublime Text. A list of text editors is available here and a comparison here.
- File archivers, such as WinRAR, 7-Zip and WinZip, are useful for compressing, extracting, copying, deleting, editing, renaming and viewing class files within .jar files, .zip files, .rar files and .litemod files. They give you access to the class files within mods. A list of file archivers is available here.
- Revision control software help you create many separate coding projects, some being open-source, undo and redo various edits, assign issues to yourself and others, share your code with other mod developers and code with mod developers all over the world to help create your mod. This kind of software helps you develop code more quickly, share code easily and fix problems. One of the most well known out of revision control software is probably Git which was created by Linus Torvalds(the creator of the operating system Linux). Also the company called Atlassian(the creators of BitBucket) has created tons of revision control software, the main one being JIRA. A list of revision control software is here and a comparison of revision control software is here. A list of text editors is here and a comparison here.
- Continuous integration(CI) software help mod developers share code easily and integrate code into repositories and when you change code on a computer they can sync it with the repository on the internet. They also help test your mod and let other mod developers help you. CIs let you easily update your software several times a day. CIs also help you combine code together from other repositories. A well known CI is Jenkins which is a online software extension to JIRA and is based off of the Hudson CI tool. Bamboo by Atlassian is also another well known CI. A list of CIs is available here.
- File synchronization software help sync files between two different locations on a computer or between two computers. When you edit one file the file on the other computer get automatically edited so the files are identical. A list of file synchronization software can be found here. You can sync mods using this.
- Disk cloning software help clone files from one hard drive to another hard drive. A list of disk cloning software is available here and a comparison here.
- File sharing applications help share files with other people. You can share your mod with other people using these. A list is here. Pushbullet is a file sharing application not included in this list.
- File hosting services are an easy way to make your mod publicly available for download or editing on the internet. They can let you upload and edit files on the internet, share links with other people and sync files between the internet and other computers. Some of the most well known file hosting services are Google Drive, Dropbox, Mediafire and MEGA. A list of file hosting services is here. 4shared, Zoolz, Uploaded and File-Upload.net are not included in this list. There are two main file hosting websites for minecraft mods called CurseForge(made by Curse, the company that made this wiki,(also you can download(but not create) CurseForge projects from the Curse website) and Planet Minecraft.
- Crowdfunding websites are websites which you can use to put up your mod and it's ideas and if you raise enough money you can release your mod. Some of the most well-known crowdfunding sites are Kickstarter and Patreon. A list of crowdfunding sites can be found here and a comparison here.
- Photo software is a bunch of software to do with photos. A list is available here.
- Photo-sharing/Image hosting websites are websites where you can upload and share your photos. A well-known photo-sharing website is Imgur. A list is available here, here and here.
- Image viewers let you view images on your computer. Some of the most well-known are Windows Photo Gallery and Picasa. A list is here and here.
- Media players can be used to play downloaded videos and audio files. Some of the most well-known are Windows Media Player and VLC Media Player. A list is available here and here.
- Video editing software lets you edit video files. One of the most well-known of these is Windows Movie Maker. A list is here and a comparison can be found here.
- Video hosting services are tools you can use to upload videos online. YouTube is one of the most well-known. A list is available here and here, and a comparison here.
- Streaming Media Systems are websites where you can watch videos whilst they are being uploaded. A list is available here and a comparison here. Minecraft has a button which instantly does Twitch live streaming when pressed(one of the F[NUMBER 1-12] buttons by default).
- Video Streaming Aggregators combine search results from several streaming media systems and make it easier to find certain video streaming media. A list is here.
- Video converters change the file format of a video. A list is here.
- Many YouTube video to MP3/MP4/.ogg converters exist online. Many audio and video reversers exist too.
- Codecs for text, videos or audio provide encoding and decoding for a text, video or audio file. A list is here and a list of video codecs here.
- A file format is what is used to show which type of file a file is. You may want to distribute your mod as different file types so other people with different computers and operating systems can download your mod. A list is here and here. There are many online and downloadable websites ,software and programs that can convert one file format to a different file format.
- Blog hosting services let you host blogs about yourself, what you do and what kind of mods you make. One of the most used blog hosting services is Blogger. A list is available here and a comparison here.
- Backup software help backup, save and rescue files. They help make sure you don't lose or corrupt any important files. A list is here and a comparison here.
- Online backup services help backup files online. A list is available here.
- Source code hosting facilities, such as GitHub, BitBucket, Google Code and SourceForge, help create open source software and mods online and edit files and share files with programmers around the world. The can let you undo and redo edits, make downloadable source code and have compiled software downloads. A list is available here. JavaSED is for finding java source code. There are lots of browser extensions for GitHub and BitBucket as well.
- Web hosting providers are useful if you want to host a website for your mod. A list is here and a comparison here.
- Web builders help let you create a website. The Google URL Builder will also help. A list is here. You might need to do HTML, CSS and SVG coding to create your website and maybe also code in the programming languages shown here, here and here.
- Social networking sites and forums can be used to have various discussions on your mod. The Minecraft Forums are forums that are designed for discussions about Minecraft.
- URL shorteners create small, redirecting links, that are portable and easy to copy and remember and share on social networking sites and forums. The most well known is the Google URL Shortener, and the one that gives the shortest links(10 characters) is TinyArrows. Some URL shorteners with some advertising that comes with their shortened links are adf.ly and adfoc.us. Advertising URL shorteners can be found here. URL unshorteners(also known as URL expanders) turns shortened URL's into normal URLs. Some of the URL unshorteners are: http://www.linkexpander.com http://unshorten.it/, http://urlex.org/, http://www.urlunshortener.com/, http://www.toolsvoid.com/unshorten-url, http://dotnetcorner.ch/Tools/URL-Un-Shortener, https://chrome.google.com/webstore/detail/url-unshortener/hciiopljaekhmopgaghflgfnhhbbaclm, https://github.com/Swizec/node-unshortener, https://addons.mozilla.org/En-us/firefox/addon/unshortenit/ and http://www.checkshorturl. You can find all the URL shorteners, unshorteners and expanders here. A list of URL shorteners is here and here.
- Forum creation sites let you create your own forums where people can discuss your mod. These are some of these websites: https://www.proboards.com/create-free-forum, http://www.createaforum.com/, http://www.forumotion.com/, http://boardhost.com/, https://www.phpbb.com/support/docs/en/3.0/ug/quickstart/forums/, http://www.lefora.com/, http://www.yuku.com/, https://www.wix.com/support/html5/wix-app-market/adding-apps-to-your-site/kb/how-do-i-add-create-a-forum-1, https://groups.google.com/forum/#!creategroup, http://docs.zetaboards.com/acp/forums/create and https://disqus.com/. Here is a guide and here is a list.
- Paste tools such as pastebin, are useful for putting up messages and links.
- Free software project directories give you a place to develop software in repositories. A list is available here.
- Wikia is a website which lets you create wikis about your mod and what it adds into the game and how to use your mod and there are also forums that let people suggest their own ideas to make the mod better. A list of sites like Wikia is here.
- Simplified mod generators, such as MCreator and Mod Maker Basic, exist for mod authors who don't want to have to write and compile Java code. Some of them create poor quality code, and are very limited. A online mod generator called: McModGen(MineCraft Mod Generator) lets you generate mods without installing programs. Some other ModMakers are: ModMaker Pro, Alex's ModMaker and Linkseyi's ModMaker. MCreator is the most popular Mod Generator, has the most tools, features and options, and is the most up to date(makes mods for Minecraft 1.8). You can discuss MCreator related topics on the MCreator forums and the Minecraft Forums MCreator thread.
- ID fixers are normally forge mods that help make sure mod biome, dimension, item and block IDs don't conflict. ID fixers help make your mod's IDs compatible with the IDs of other mods. Idfix and Idfix Minus are some of the most well known ID fixers and are available for 1.6.4. Another ID fixer is ID Resolver for 1.5.1-1.6.2. ID Resolver is also open-source on GitHub and is available as a compiled version on GitHub for 1.6.2. ID Resolver needs the mod GuiAPI in order to work. ID Status Helper helps by telling you how many id slots have been used and how many there are left. ID Status Helper also needs GuiAPI in order to work. IDFixer is a ID fixer for 1.7.10. ExtendedMetadata for 1.8 adds more ID slots for you to use. Minecraft ID-Helper is a program which shows all the ids and id conflicts. IDScanner is a program that searches for conflicts, lets you see the empty ID slots and lets you solve the conflict. Item ID Searcher is a program that helps you search through all the item IDs. The Block ID tool also searches through IDs. Minecraft ID Finder lets you select a block or item and get the ID of that block or item. Python Minecraft ID Resolver is a program project on GitHub. The ID disabler mod called Disallowed is open source on GitHub and can be downloaded here. Minecraft ID Search Tool is a program that searches for block and item IDs. Block ID Conflict Resolver is a program that resolves block ID conflicts. Minecraft Searchable ID List is a program lists all the IDs and is open source. MineConf is a program that lets you easily change IDs. Minecraft ID List Application lists all the IDs. ID Checker is a non-forge and forge mod for 1.0.0 which lets you check for conflicting IDs. Minecraft Texture ID Viewer lets you view all the texture ids. Minecraft Block To ID Finder can be used to find block IDs. Minecraft Item ID Database is a program which shows all the item IDs. Minecraft Item-ID Caller helps find the ID of items.
- Crash report analysers are forge mods that help analyse crash reports and try to find solutions to the problems. These can help mod developers find out what problems their mod has and fix those problems. The most well known is OpenEye, a 1.7.10 mod, which gathers more information on crashes. OpenEye needs OpenModsLib in order to work. OpenEye was made by OpenMods. Minecraft Crash Report Analyser, a mod for 1.7.10, helps find the solution to crashes by checking if it knows the solution to that crash, and if it does know the solution it will tell you what the solution is. Jenkins builds made by OpenMods.
- World editing and world generation tools can help you generate or create large and complex structures and copy structures from world to world. You could input these structures into MCreator or use the structures to test how you want structures in your mod to be in your mod. If you want to create a dimension that is created in a certain way like The Lord of the Rings Mod these tools probably will help. The three world editing and world generation tools are: MCEdit, WorldPainter and WorldEdit. World generation plugins can be found here, and world editing plugins here. Some good world generation and world editing mods are Alternative Terrain Generation, Biome Tweaker, Climate Control, MultiWorld and Painted Biomes.
- MCEdit lets you copy, create, select, manipulate and delete structures in your world. It can also create and export MCEdit schematic files for each structure you create and you can import these to different worlds. It is also possible to create "schematic mods" by adding extra code to the schematic files, and combining the code of various items in minecraft to create new ones. A lot of "schematic mods" use armor stands and item frames for their code. These "schematic mods" are added to world saves. You just need to copy the "schematic mod" world save into your .minecraft saves folder or import the schematic file into one of your worlds using MCEdit, and the "schematic mod" is installed. These "schematic mods" can be used serverside and clientside and are technically vanilla since anyone with vanilla minecraft can use them. A few of the best schematic mods are this Remote Control Helicopter and this Camp Fire Command and Redstone "Schematic Mod". You can also use texture packs for you world saves to go with these "schematic mods".
- WorldPainter lets you paint part of a world and a part of a world is generated it that particular way. This can be useful for making biomes and dimensions
- WorldEdit is like MCEdit, but in-game. It also lets you create WorldEdit schematic files. WorldEdit is a Forge mod. There is a LiteLoader version called the WorldEdit Wrappper of this mod is being updated by the creator of LiteLoader, Mumfrey. WorldEdit is also available as a Bukkit plugin. WorldEditCUI is a clientside LiteLoader mod made by Mumfrey lets you adjust the selection of shapes and lets you create cubes, rectangles, triangles, spheres, pentagons and other shapes. WorldEdit, WorldEdit Wrapper and WorldEditCUI are open-source on GitHub. A older version of WorldEdit is available with MinecraftEdu. There is also a CanaryMod plugin. You can also get a hMod plugin.
- Height mods are useful when you want your mod to generate massive structures above the build limit. Add in a line of code that tests to see if a height mod is installed and your mod generates larger structures. There are many height mods, but the best ones are cubic chunks mods. Normal height mods generate massive vertical chunks the vanilla way which creates tons of lag, but cubic chunks mods split the vertical chunks with horizontal lines and load 16x16 cubic chunks. These cubic chunks reduce lag because they are smaller and the game needs to to load less. So far three cubic chunks mods have been made: Robinton's Cubic Chunks Mod for 1.0.1, Barteks2x's Cubic Chunks Mod for 1.6.2(but it still works on 1.6.4), and Cuchaz's Tall Worlds Cubic Chunks Mod for 1.8.3. Robinton's Cubic Chunks Mod is a Forge mod, Barteks2x's Cubic Chunks Mod is a vanilla class file installation mod and Cuchaz's Tall Worlds Mod is a M3L mod(only M3L mod at the moment)(made using the Procyon decompiler, Cuchaz's Minecraft Mappings and Cuchaz's Enigma(and a bit of MCP), and based off the previous height mods). A list of height mods(except Barteks2x's Cubic Chunks Mod and Cuchaz's Tall Worlds Cubic Chunks Mod) is available here(Dynamic Height is downloadable from here).
- Boardwalk is an app you can get on android device which lets you play the Desktop Edition of Minecraft on Android mobile devices. Currently it is in a heavy Work In Progress stage of its development.
- MCPatcher is a tool that helps "patch" and fix texture errors and issues.
- Graphics Software can be used to view and create 2D and 3D images and models. A list is available here.
- 3D modeling and texture tools, such as MCAnimator or Techne, help you create or modify a TileEntity or Entity. List of Modeling Tools. List of Texture Tools. GIMP is a example of a texture tool. There are also also wikipedia lists here and here.
- Resource pack tools will help you do certain things with textures, sounds and text. RPW(Resource Pack Workbench) helps you create textures, sounds and text files based off vanilla textures, sounds and code, and also is useful if you want to make a mod like Metallurgy 4, which changes vanilla textures, also you could create a resource pack for your mod if you wanted to. HD Font Generator lets you get any font installed and make it into a HD resource pack which can change the font of all the text(not text on images though) in Minecraft to that font and the text becomes HD. RPW is open-source here and here, and HD Font Generator here and here. Download the latest version of RPW here. Download HD Font Generator here.
- Some Minecraft Launchers like MultiMC and the Magic Launcher can be useful for installing mods easily and managing separate instances of modded Minecraft with ease.
- Modpack Launchers can be used to group mods together so people can install all of your mods at once if they want to. You can also use Modpacks to test whether your mods work with certain other mods. The Modpack Launchers are: Curse Voice Modpack Launcher, Technic, FTB(Feed The Beast), ATLauncher, Voidswrath VoidLauncher and the Asterion Robbit Modpack Launcher(you can also there is a Asterion forum here and you can download it here.
- Raster graphics editors and vector graphics editors help let you edit the image files in your mod. Raster graphics editors simply edit the textures, but vector graphics editors allow you to create textures that always remain as high definition as possible. Some of the most well known raster graphics editors are Paint and Paint.NET. A list of raster graphics editors is here and a list of vector graphics editors is here.
- Protocol analysis tools, many of which are documented on the #mcdevs wiki, can be useful for debugging multiplayer mods.
- Java Class Libraries are useful too. They are JCL, GNU Classpath and Apache Harmony. Java Class Libraries have lots of classes you can use to implement things like clocks that tell the real-life time. All the JCL classes can be found here.
- Java APIs are useful too. A list is here.
- There are many browser extensions that add additional features to GitHub and BitBucket. There is also some AdBlockers which let you make money for blocking adds, and some AdBlockers let you block the ads, but still let the advertisers earn money. You can use these to help raise money for you and others that develop mods.
Pocket Edition Tools[edit | edit source]
- Mod loading APIs are available for Android, IOS and Windows Phone.
- General-purpose Java IDE's, these can be used to create mods for the PC too, but can only be used on the mobile operating system you can download them from. There are only Java IDE apps for Android so far.
- IDEs designed for Pocket Edition Minecraft modding.
- ModPE IDE(ModPE Script Editor). Available for IOS, Android and Windows Phone.
- ModPEIDE. Available for IOS, Android and Windows Phone.
- ModPE IDE™. Available for Android.
- ModPE IDE™ Pro. Available for Android.
- ModPE Script Editor. Available for Android.
- ModCraft Lite. Available for Android.
- ModCraft. Available for Android.
- Text Editors can be downloaded from the App Store.
- Android Text Editors: You can find them all here.
- IOS Text Editors: You can find them all here.
- AmazonFire TV Text Editors: You can find them all here.
- Java Text Editors are text editors designed to assist with Java Coding. One of these is Java Editor.
- Mod Generators are available in the Android Appstore.
- WorldToPE converts Desktop Edition worlds to Pocket Edition worlds.
- Mercator is a texture pack tool for Pocket Edition which can be used to convert Desktop Edition texture packs to Pocket Edition texture packs and vice versa.
The Minecraft Forge API[edit | edit source]
The Minecraft Forge API is a very useful tool in creating new mods. Its most important use is preventing conflicts between mods. It also contains convenience methods for creating mods more easily than without it; for example, the addSmelting method adds smelting recipes in one line of code. Many other methods exist. Tutorials on using the Forge API can be found many places, including many YouTube videos. It can be downloaded at official forge downloads.
Learning Java[edit | edit source]
These tutorials use Java terms that may confuse new users. Below are some links about the structure of Java and what certain terms mean. It is recommended that those who are not knowledgeable in the Java programming language read the links.
For more links, see Helpful Links.
Tutorials[edit | edit source]
Warning: These are outdated Risugami's ModLoader tutorials. This page needs more tutorials for the modloaders specified in the talk page.
Setting up the MCP workspace[edit | edit source]
Setting up the MCP workspace allows you to access Minecraft and ModLoader's source code and begin modding. The tutorial provides step-by-step instructions for installing Sun Microsystem's and Oracle's Java SE Developer's Kit(JDK), the Minecraft Coder Pack(MCP), Eclipse IDE for Java Developers, and other programs/mods required to begin modding. The tutorial is written for Windows, Mac, and Linux operating systems.
Starting your first mod[edit | edit source]
This tutorial helps you set up and program the primary file for your mod. This file serves a very important purpose. In future tutorials, they will require that you have entered the code explained in this tutorial. This tutorial requires that you have completed the Setting up the MCP Workspace tutorial first.
Methods in Minecraft[edit | edit source]
This guide contains a table that lists how blocks, items, and entities are referenced in the code. These references are listed as methods. This is useful in many tutorials below.
Adding a block/item[edit | edit source]
This guide will teach you how to create your very own block.
This guide will teach you how to create your very own item.
Mob Creation[edit | edit source]
This tutorial shows you how to create a mob with Techne.
Adding recipes[edit | edit source]
This tutorial teaches you how to create unique and simple crafting recipes for items and/or blocks already in the game. It also guides you in creating shapeless recipes and smelting recipes in the Furnace. This tutorial requires that you have completed the Starting your First Mod tutorial.
Making a recipe is not as hard as it looks. All you have to do is figure out what blocks/items you want to be used in you item. Then you insert the items used and you're done!
Creating an armor set[edit | edit source]
Recompiling and reobfuscating[edit | edit source]
This tutorial is quite small, and allows you to finalize your mod by retrieving the .class files you have created and/or edited to be copied into the minecraft.jar. By sending these .class files to other players, they can play your mod as long as they have ModLoader installed.
Tips[edit | edit source]
- One of the simplest types of mod is adding new blocks or items. Copy a similar class, and rewrite it as necessary. If the new block or item will share most of its behavior with an existing one, it may be easier to subclass that one and override only the parts that will be different. Depending on the desired behavior and how it will interact with other objects, it may be necessary to modify other classes, which makes it more likely to conflict with other mods.
Creating mods without MCP[edit | edit source]
Sometimes it is useful to create mods without MCP. For example, MCP is usually not released for snapshots.
To create mods without MCP you must either decompile obfuscated code or modify java bytecode. Decompiling is easy, but you can decompile only simple classes. Here is a tutorial  on how to make block models.
Creating GLSL mods[edit | edit source]
Using the Optifine mod, it is possible to create shader packs to change the rendering of Minecraft and add different effects.
Minecraft shaders have the following uniforms that are used frequently:
- worldTime: an integer ranging from 0 to 24000
- fogMode: an integer representing wiich type of fog to use, or 0 for none
- heldItemId: id of currently held item
- heldBlockLightValue: integer from 0 to 15 of block light intensity
- sunPosition, moonPosition : vec3 indicating the position of the sun and moon.
- near,far: float for near and far clipping planes
- rainStrength: float representing rain strength
- cameraPosition: vec3 of world position
The matrices used to convert coordinates are gbufferProjection and gbufferProjectionInverse.
The gbufferProjection is the matrix used to generate the gbuffer and can be used to map coordinates in eye space to the 2D buffer. To get to 3 dimensions, the position is multiplied by the gbufferProjection then divided by the homogeneous coordinate (w). The second dimension is reached by dividing by the z coordinate then converting to color space.
To get the world position, the gbufferProjectionInverse matrix is multiplied by a vector created by the texture coordinates converted to normal space and the depth in normal space and a fourth coordinate of 1.0. This value is then divided by the homogeneous coordinate to normalize the position.
These conversions are useful for operations such as postprocessing effects on the environment.
The shader files are set up for multiple buffers to be used when rendering in the composites. These are accessed as sampler2D uniforms gaux1-4 and written to by specifying gl_FragData[i].
Another useful operation is to get the depth of the textures used. This can be done with the sampler2Ds depthtex0 and depthtex2. depthtex0 is used to find the depth of the objects in the environment while depthtex2 is used to check if an item is part of the sky or not. The final pass of all the shaders is final and is used to combine all the effects into the final rendering buffer.