Mods Creating mods


Info

The contents of this page are not supported by Mojang AB Mojang AB Type Subsidiary Founder(s) Markus Persson, Jakob Porsér, and Carl Manneh Founded 2009 Headquarters Stockholm, Sweden Key people Jens Bergensten Products Minecraft, Scrolls, Cobalt, and Crown and Council Parent @@@#@@@Microsoft(microsoft.com)###@### Studios Links Site Mojang minecraft , the Minecraft Wiki Community portal Admin noticeboard Wiki rules Recent changes Create an account Help contents How to help New pages Style guide Copyrights General disclaimer Missing pages Welcome to the Minecraft Wiki, a publicly accessible and editable minecraft , the Minecraft IRC channel or the Minecraft Forums.

Minecraft Minecraft Author(s) Mojang AB (Credits) Markus "Notch" Persson (Creator) Jens "Jeb" Bergensten (Lead Developer) Jon "jonkagstrom" Kågström (AI Programmer) Nathan "Dinnerbone" Adams Erik "Grum" Broes Michael "Searge" Stoyke Thomas "ProfMobius" Guimbretière Agnes "LadyAgnes" Larsson Maria minecraft modding is one of the most popular featuresSpecial attraction 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 Windowsis a separate viewing area on a computer display screen in a system that allows multiple viewing areas as part of a graphical user interface 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!

Other Tutorials

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.

Videos

Tools

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:

ModLoaders:

  • Risugami`s ModLoader This article is a stub. Please help us by expanding it. The contents of this page are not supported by Mojang AB, the Minecraft Wiki, the Minecraft IRC channel or the Minecraft Forums. ModLoader was 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 releaseAnnounce 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.8. 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.
  • MeddleAPI is the Meddle Mod Loader with support for higher-level mods that are designed to add in content to the game. To install this mod-loading API you have to have Meddle and DynamicMappings installed and you have to drag the API into the "meddle" folder. MeddleAPI is open-source here.
  • Minecraft External Modloader(ME) is a modloader which loads mods in class files externally without replacing any class files. It is a .jar program. It can work with any version of Minecraft. The creator is MaPePeR. You can download External Modloader here. External Modloader is open-source 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 Custom servers Author Bukkit Team Developers Mojang AB Platform JRE Written in Java Latest version Bukkit #1807 CraftBukkit #3095 Released 2 Jan. 2011 (Announced) Size Bukkit - MBMegaByte 4.7 (Build 1807) CraftBukkit - 19.5 MB minecraft . 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.
  • Another version of CraftBukkit(actually Bukkit alternatives using and be being based off of Bukkit`s source-code) can be found here and here. It is called: Wolf-in-a-bukkit.
  • BukkitForge is a merge of Bukkit and MinecraftForge for 1.5. It is open-source here. Download BukkitForge 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.
  • Obsidian is made by the organisation ObsidianBox. ObsidianBox`s website is down at the moment, but an archived version is available here. Obsidian is open-source here.
  • MCPC+ is another Bukkit alternative. Download MCPC+ here. MCPC+ is open-source here.
  • Cauldron is the successor to MCPC+. Download Cauldron here, here, here, here, here and here.
  • KCauldron is the successor to Cauldron. Download KCauldron here and here. Download the older KCauldron Backport versions here. KCauldron is open-source here.
  • hMod is another Bukkit alternative. Download the old versions here. The old versions are open-source on GitHub here, and BitBucket here. Get the newer hMod, version 2.0, here. The hMod 2.0 website is here. Here are some hMod 2.0 plug-ins.
  • 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.
  • 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 instance, 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(apple.com)###@### Computers.
  • JBoss Developer is a large and very good addon for Eclipse.
  • There are a few IDE`s made for Minecraft which are open-source here, here and here.
  • 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.
  • Javac is the most popular compiler at the moment. But the Power J compiler(2nd) is very close and used to be more popular. These are followed by: Jikes(3rd), ECJ(Eclipse Compiler for Java)(4th) and GCJ(GNU Compiler for Java)(5th). A list of Java compilers can be found here and here.
  • 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.
  • A list of debuggers can be found here and here. A comparison of debuggers can be found here.
  • 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.
  • BON2 is being developed here. You can download BON2 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.
  • General purpose java obfuscators will help make it easier to obfuscate your code so that people can`t steal your code. The most popular java obfuscator seems to be ProGuard. There are two lists of java obfuscators found here and here.
  • 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(google.com)###@### 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 i