Minecraft modding

A Minecraft mod is a mod that changes aspects of the sandbox game Minecraft. Minecraft mods can add additional content to the game, make tweaks to specific features, and optimize performance. Thousands of mods for the game have been created, with some mods even generating an income for their authors. While Mojang Studios does not provide an API for modding, community tools exist to help developers create and distribute mods. The popularity of Minecraft mods has been credited for helping Minecraft become one of the best-selling video games of all time.

The first Minecraft mods worked by decompiling and modifying the Java source code of the game. The original version of the game, now called Minecraft: Java Edition, is still modded this way, but with more advanced tools. Minecraft: Bedrock Edition, a version of the game available for mobile, consoles, and Microsoft Windows, is written in C++, and as a result cannot be modded the same way. Instead, modders must use "add-ons" written in a scripting language to add content.

Background
Minecraft: Java Edition (available for Windows, macOS, and Linux) can be modded on the client (local installations of the game) on servers, or on both simultaneously. Client mods can change the appearance and some behavior of the game. Server only mods (commonly referred to as plugins) can change behavior, and often add minigames, anti-cheat, or login systems. For more complex features such as adding new blocks, items, mobs, or dimensions, or changing some existing features, an equivalent mod must be added to both the client and server, so that they can interoperate. In single-player mode, the client acts as both client and server, and can run both client and server mods.

Client mods can result in loss of performance (due to generally heavy resource demands) on older or weaker computers, especially if players run many mods together at once in what is known as a "modpack". Modifications to the game are possible because the community reverse-engineers Minecraft source code, which is written in Java, to make these modifications.

While not officially supported by Mojang, Minecraft mods are allowed to be created and shared online, and the game's development team has an informal relationship with many modders. Some developers have gone on to work at Mojang after publishing popular mods. Minecraft mods are generally provided free of charge as a hobby. Modders that do make money generate it through revenue sharing on ads on download sites and crowdfunding. This income has allowed some developers to work full time and even open small game studios dedicated to mods or modding platforms.

Modding for the mobile and console versions of Minecraft on the Bedrock codebase is different as those versions are written in C++ rather than Java. Players who wish to mod their game on Bedrock codebase versions have a simpler process due to the version's built-in official support for "add-ons", which can be installed faster and easier than Java Edition mods and do not require external mod loaders. However, addons in Bedrock Edition have less flexibility and features because they can only modify features that Mojang explicitly exposes.

In 2012, Mojang said they were starting work on a repository for Minecraft mods. Minecraft's creator Markus "Notch" Persson admitted in 2012 that he was initially skeptical of mods, fearing that the user-made content would threaten his vision for the game. Persson says he came around, as he claims to have realized that mods are "a huge reason of what Minecraft is". Minecraft 1.13 also provides a feature known as "data packs" which allows players or server operators to provide additional content into the game. What can be added is limited to building on existing features, such as adding recipes, changing what items blocks drop when broken, and executing console commands.

History
The first ever version of Minecraft was released in May 2009, but client-side modding of the game did not become popular in earnest until the game reached its alpha stage in June 2010. The only mods that were released during Minecraft Indev and Infdev development stages were a few client-side mods that had minor changes to the game.

Alpha
With the release of Minecraft Alpha, the first server-side mods began to appear. One of them was hMod, which added some simple but necessary tools to manage a server. Michael Stoyke, also known as Searge (who would later go on to work for Mojang), created Minecraft Coder Pack (MCP). This was later renamed to Mod Coder Pack, keeping the same acronym. MCP was a tool that decompiled and deobfuscated Minecraft code. MCP would recompile and obfuscate new and changed classes, which could be injected into the game. However, if multiple mods modified the same base code, it could cause conflicts resulting in an error. To solve this problem, Risugami's ModLoader was created to prevent any conflicts from occurring due to multiple mods modifying the same base classes or game resources.

Beta
Towards the end of 2010, Minecraft was preparing to move into its beta development phase, and popular mods such as IndustrialCraft, Railcraft and BuildCraft were first released. As opposed to their predecessors, these mods had the potential added substantial new content and mechanics instead of simply tweaking minor aspects of it.

Bukkit, a server-side mod intended to replace CraftBukkit, a server software that implemented the Bukkit API, was also released, it allowed server owners to install plugins to modify the server's way of taking input and giving output to the player without players having to install client-side mods.

CurseForge, a website that hosts user-generated content for games, added forums and a section for Minecraft mods in mid-2011. At first, CurseForge mainly linked to Bukkit plugins hosted on Bukkit's website.

Release


Around November 2011, the Forge Mod Loader and Minecraft Forge were released. Forge allowed players to be able to run several mods simultaneously, utilizing Mod Coder Pack mappings. A server version of Forge was also released, which allowed players to create modded servers. Forge ended the necessity to manipulate the base source code, allowing separate mods to run together without requiring them to touch the base source code. Forge also included many libraries and hooks which made mod development easier.

After Minecraft was fully released in November 2011, the game's modding community continued to grow. In February 2012, Mojang hired developers of Bukkit to work on an official modding API, allowing mod developers easier access to the Minecraft game files. Bukkit was then maintained by the community.

A fork of CraftBukkit, called Spigot which was backward compatible with plugins started to be developed. In 2012, Spigot released a server software, called BungeeCord, made to link many servers together via a proxy "linking" server. BungeeCord had a separate plugin API from Spigot where Spigot plugins could work side by side. Many popular Minecraft servers use BungeeCord to link up Minecraft servers together.

In early 2014, a server software named Sponge was released with a very powerful plugin API compared to Bukkit and support for Forge mods. Sponge also introduced mixins, an alternative to modifying byte code.

Microsoft's acquisition
Concern arose following Microsoft's acquisition of Mojang in mid 2014. Members of the modding community feared that Minecraft's new owners would put an end to Mojang's established practice of giving free rein to mod developers. Despite the concerns, Microsoft did not announce any changes to Mojang's policies, and modding was unaffected.

In April 2015, Microsoft announced that it was adding a Minecraft Mod Developer Pack to Microsoft Visual Studio, granting users of the application creation software an easier way to program Minecraft mods. Microsoft released the new pack open source and free of charge, amidst a drive to push towards more open source software.

On 4 July 2015 a "Windows 10" version of Minecraft was announced. This, unlike the previous versions, was to be programmed in C++. This announcement sparked concern amongst the game's fanbase that the Java-based versions would end up being phased out entirely, which would hamper the production of mods as C++ can not be reverse engineered like Java. However, Mojang developer Tommaso Chechi reassured fans on Reddit that modding was "too important" to Minecraft for the Java-based versions to be discontinued.

In April 2017, Mojang announced the upcoming creation of the Minecraft Marketplace, where players would be able to sell user-created content for the Windows 10 version of the game (Running on the Minecraft Bedrock codebase). This new digital store would specialize in adventure maps, skins, and texture packs. PC World noted that this addition would move the Windows 10 version "a bit closer to the moddable worlds familiar to classic players" of the original Java Edition.

In December 2018, a new modding toolchain and mod loader called Fabric was released.

In April 2022, a fork of Fabric, known as Quilt, was released. The Quilt loader is intended to be compatible with mods created for Fabric.

Mod content
The total number of Minecraft mods is difficult to calculate because of how numerous they are. One repository website, CurseForge, features over 100,000 mods.

Some mods enhance existing features of the game. The mod Journeymap adds a mini-map to the game's user interface. Just Enough Items adds a browser for the game's crafting recipes. Chisel adds many new variants of existing blocks for visual appeal. Other mods add biomes, crops, dimensions, food, armor, and other content.

Mods are sometimes grouped together in downloadable content called "modpacks". These can be easily downloaded and played by the user without requiring the player to have extensive knowledge on how to set up a modded environment. Interactions between these mods can be managed and enhanced by content creators, often aided by the use of configuration files and custom textures.

WorldEdit
WorldEdit is an editing tool developed by software group EngineHub that assists the player in building structures and with creating customized terrain. It offers a variety of tools such as brushes and block replacers; and actions such as copying and pasting and filling and selecting geometric shapes. These tools can speed up building time compared to building without the mod as it offers functionality which the game does not have out of the box. The mod has been featured on the Minecraft website as one of the most popular building tools, been used in United States patents,  and cited in scientific papers. It was initially released worldwide on 28 September 2010 as a plugin for the hMod modification, and has since been ported as a Bukkit plugin and as a mod for the Fabric and Forge mod loaders.

Malware
Minecraft mods have been an attack vector of malware by downloading and running malicious mods.

In March 2017, Slovakian cyber company ESET revealed that 87 examples of trojan horse malware were distributed through the Google Play Store under the guise of Minecraft mods. Their purpose was to either display adverts or con players into downloading other apps. Combined, these fake mods gathered over 1,000,000 downloads in the first three months of early 2017.

In June 2023, attackers gained access to popular mods and modpacks including "Better Minecraft" and created new releases which contained malware, dubbed "Fractureiser" after the Curseforge account that uploaded it.

In July 2023, an arbitrary code execution vulnerability was found in several Forge-based Minecraft mods such as BdLib and EnderCore. The malware was named "BleedingPipe" by a Minecraft security community. It takes advantage of mods incorrectly using deserialization in the "ObjectInputStream" class. Although the vulnerability existed since 2017, a blog post by MMPA brought it mainstream, spreading its use before fixes could be made.

Reception
PC World's Nate Ralph calls installing mods for Minecraft "a somewhat convoluted process", but does admit it could serve the player who desires "a little more out of the experience" of playing the game.

Max Eddy of PC Magazine also raises a point concerning the process of setting up a game augmented with mods, claiming "it seems rather complicated" and that at first he was "too afraid to mod Minecraft at all", but learned to appreciate it when he realized that modding Minecraft is "pretty forgiving". Eddy does nevertheless mention that he feels Mojang's fast development pace regarding the main game has slowed down the progress of the most popular mods.

Minecraft mod Galacticraft was mod of the week in PC Gamer in July 2013.

At San Jose Mercury News, George Avalos claims that mods are definitely suited for "mainstream enthusiasts", but does warn that precaution must be taken in order to avoid downloading "dangerous and spammy software" when looking for Minecraft mods. Avalos also remarks that installing mods will probably require adult attention, even though Minecraft typically appeals to children.

Education
Minecraft mods are credited for being a gateway for children to pick up coding and programming. Several educational projects have been created to further encourage students to learn coding through Minecraft, including LearnToMod, ComputerCraftEdu, and Minecraft: Pi Edition, all of which are offered free to teachers. Programming classes utilizing Minecraft were also started by the University of California, which aims to teach children aged 8–18 how to program applications.

In 2011, "MinecraftEDU" was created as a paid mod sold to schools that enabled the teaching of a wider variety of subjects including language, history and art. In January 2016, Microsoft bought it and turned it into a separate edition of Minecraft called "Minecraft: Education Edition".

In The Parent's Guidebook to Minecraft, author Cori Dusmann denotes that homeschooling and Minecraft make for an interesting match, as creating simple mods can be an "illustration of scientific principles", to which homeschooling providers are receptive.

The idea of introducing Minecraft into school curriculums was resisted by Tom Bennett, who serves as an adviser to the British government. According to Bennett, Minecraft was a gimmick, and schools would do well to "drain the swamp of gimmicks" and resort to just books for teaching. Bennett's condemnation was rebutted by a number of journalists for The Guardian, who thought that Minecraft in schools was a worthwhile innovation.

Influence on Minecraft itself
Mod developer Dr. Zhark added horses to the game through the Mo' Creatures mod. Later on, he helped Mojang adapt horses for use in standard-issue Minecraft. Pistons were also originally a part of a mod made by another developer, Hippoplatimus, but they impressed Minecraft's creators so much that they added the feature to the main game.

Mojang also admitted that they admired all of the work done on server-side modding API Bukkit. In 2012, the Swedish company ended up hiring the lead developers of the project.