Mod

From Minecraft Wiki
(Redirected from Modification)
Jump to navigation Jump to search
This article is about unofficial game customization via direct modifications. For the official modding API in Bedrock Edition, see Add-on. For the similar mechanism in Java Edition, see Data pack. For the item in China Edition, see Mod (China Edition).
The contents of this page are not supported by Mojang Studios or the Minecraft Wiki.
 
The Aether, a popular mod released in 2011, originally created by kingbdogz, now working in Mojang Studios as a game designer.

A mod (short for modification) is a piece of unofficial code that is injected into the game for the purpose of modifying its behavior. They can be used to enhance the game by means ranging from fixing bugs, adjusting core mechanics, to completely revamping the way the game is played with unique features.

Overview

Mods are primarily user-created content used to alter the base game to create unique experiences that are not usually present from vanilla. They allow players to customize the look and feel of the game, give more options and customization, or expand the game with new progression and mechanics. Mods have control over various aspects of the game, where developers can modify or add custom features, such as physics, graphics, user interface, and various gameplay features (such as entities, items, blocks, world generation, and dimensions, usually through the game's registries[1][2]).

While many mods add content, others act as utilities that are designed to improve the game while being close to vanilla. There are optimization mods that modify the game's rendering to improve frame rates and load times, making the game more accessible on lower-end hardware (see also Tutorial:Improving frame rate).[3][4] Other client side mods may also fix several bugs and improve stability of the base game,[5][6] such as reducing crashes and micro-stutter, and fixing several block and item duplication bugs.

Mods are usually designed for specific release versions of the game. When the game is updated, the mod must also be updated accordingly, otherwise it may no longer work for future versions.[7]

Modding support

Java Edition is written in Java and runs on JVM, which for technical reasons makes creating mods relatively easy. Modding strongly depend on decompilation to see the game's source code. Because Java compiles to bytecode rather than machine code, it is highly susceptible to decompilation,[8] allowing modders to reverse-engineer the game logic easily. Due to this, a prolific modding scene exists for that edition, which has matured over a decade, and has created several programs and tools for modding, notably mod loaders.[9]

For older versions, obfuscation maps provided by Mojang and the community which ease the process of reverse-engineering the game. The unobfuscated versions of the game also lets modders directly see the game's source code without obfuscation maps.[10]

Bedrock Edition is written in C++ and runs as machine code, which makes it technically challenging to mod. Mods for that edition exist, but are much less common and less complex, both due to technical challenges, and other reasons such as low interest from the community and add-ons providing official means of adding content to the game.

In Java Edition, a mod loader is used to inject modifications into the game. Mod loaders serve as an intermediary between the game's and the mod's code, they provide two main functions for modding: (1) providing system of API and tools to develop new mods and communicate with the game, and (2) managing loading mods simultaneously while keeping them compatible with each other.[11][12][13] There are many well-known mod loaders, such as Forge, Fabric, Quilt, and NeoForge. Each mod loader supports different system and API for developing mods. Because of this, mods designed for specific mod loader are not likely interoperable with another mod loader, and vice versa.

Add-ons serve as the official modding API in Bedrock Edition, they can add new content and modify existing features and customizations in the game. In comparison to Java Edition mods, add-ons may be limited in terms of features and customization, but are far more friendly and less complex for creators.[14] An official modding API was planned for Java Edition, called "Plugin API" (dubbed "Workbench"), but was subsequently abandoned, with no further mentions or developments of it after Java Edition 1.9 (see Mentioned features § Workbench (Plugin API)).

In Bedrock Edition 1.21.20, Mojang Studios removed debug information (bedrock_server.pdb file) from Bedrock Dedicated Server, making modding more difficult for Bedrock Edition.[15]

While there are other ways to change the experience of Minecraft, such as resource packs and data packs, the ability to load these is part of the vanilla game and usually not considered modding (see Game customization).

Integration with data packs

This feature is exclusive to Java Edition.
 

Historically, the modification of features such as advancements, enchantments, dimensions, or world generation have required the usage of mods. However, in later versions of the game, the additions and expansions of data packs and resource packs have allowed several of these features to be implemented into the game without any modification of or addition to the game's code. Most modern mod loaders allow data packs and resource packs to be included alongside a mod to provide additional data and resources, such as models or recipes.[16]

Types of mods

"Fabric" redirects here. For the in-game block, see Wool.
This feature is exclusive to Java Edition.
 
Minecraft can be made to look very different with the addition of shader packs and world generation mods.

Client-based

Client mods are direct modifications of the Minecraft game files. They control and add custom content for mobs, particles, items, and blocks, such as models, sounds, textures, and GUIs, but require the server to implement the game mechanics behind them (see § Server-based). They usually modify the client software, or client.jar file.

Functional client mods like Sodium and OptiFine modify and enhance client side features of the game, such as graphics fidelity and rendering, while not adding or changing any gameplay features, making them perfectly compatible with vanilla server without any modifications.

Server-based

Server mods are modifications to the official Minecraft server software. They control features that are handled exclusively in the server, primarily the game mechanics, such as physics, mob AI, chat, commands, player interactions (e.g. crafting, smelting, opening chests or inventory, block placement and destruction), world generation, and much more. They cannot control client side features, and are limited in terms of custom content. Most mods are installed together on the server and client side, allowing for more freedom and complete game customization.

Server mods are commonly used to enhance server administration with more functionality and ease of use. They can provide tools to protect against griefing and cheating, implement tiered privileges for commands, automate server backup, monitor server performance, optimize gameplay features, and more. Most server mods are compatible with vanilla client, without requiring the same modifications on their end (see semivanilla). Most multiplayer minigames, such as spleef, capture the flag, sky wars and bed wars, are implemented using server mods.

Server mods may be referred to as plugins, mainly on Spigot mod loader and its derivatives. Some are implemented as wrappers, which do not modify the server software directly, instead monitoring its output and sending commands to it, typically using the RCON protocol.

Shader pack

This section is about unofficial implementation of shader using game modifications. For official shader implementation in resource packs, see Shader.

A shader pack is a client mod used to alter the visuals and looks of Minecraft. They primarily change the game's graphics, and enhance it by adding shadows, lightnings, reflections, and other customization. Shader packs require a mod designed to load them, such as Iris Shaders or OptiFine. When combined with resource pack, shader packs can drastically transform the game's appearance, allowing players to customize into different styles and settings like medieval, realistic, cinematic, and cartoonish.

Additionally, resource pack can include custom material data loaded by shader packs for use in physically based rendering (PBR). Modern shader packs can implement path tracing and global illumination (GI) for Minecraft, most notably, SEUS PTGI and Continuum RT have done this.

Mod pack

A mod pack is a collections of mods that have been put together and configured so that they work together. Mod packs are often centered around a general theme like tech, quests, or magic. Mod packs often have either custom launchers or installers that make installing and running the mod pack easy. Some of the most popular mod packs include Feed The Beast, Tekkit, RLCraft, and Hexxit.

In addition to making it easy to install mod pack clients, certain launchers can also download server mod packs.

Modded flag

This feature is exclusive to Java Edition.
 

If Minecraft crashes, a modified game is flagged in the crash report. This is possible by first checking the client or server brand is vanilla branded, then verifying if the Java class (where the game crashed from) is signed from a signature file, which is stored on the META-INF directory with .SF file extension in the JAR archive.[17][18] These checks are done on both client.jar and server.jar files.

The signature file that comes from the vanilla build of the game is named MOJANGCS.SF, and stored on the META-INF directory like any other signature files. The creator of the signature file is listed as Microsoft.[19]

The crash report text includes one of these lines near the bottom:

  • Is Modded: Probably not. <environment> jar signature and brand is untouched – the environment (either client or server) brand is unaltered and the signature file is validated.[note 1]
  • Is Modded: Very likely; <environment> jar signature invalidated – the environment (either client or server) is unaltered but the signature file is invalidated.[note 1]
  • Is Modded: Definitely; <environment> brand changed to <custom brand> – the environment (either client or server) brand is changed to a custom brand specified by the mod loader, such as 'forge', 'neoforge', 'quilt', or 'fabric', which are for Forge, NeoForge, Quilt, and Fabric respectively. However, the game does not check the signature file any further.

A shortened example crash report is given below:

Trivia

  • The Aether, a popular mod released in 2011,[20] was referenced in an April Fools 2023 update, where players would be able to build the other portal out of glowstone and water, with striking similarity to the Aether portal. In the mod, players can transport to a Heaven-like dimension using the portal, serving as a counterpart to the Nether's hellish environment accessed through an obsidian and fire portal. In its heyday, the mod was easily one of the most popular and iconic Minecraft mods, leading some players to believe it was actually in vanilla Minecraft.[21]
    • A sky dimension similar to the Aether had been planned at some point in Minecraft development, but was ultimately abandoned in favor of The End dimension.[22][23][24] It was commonly referred to as "Skylands" dimension by the developers and community.[25][26]
    • While the developer of the Aether mod, Brandon Pearce (also known as kingbdogz), has actually been hired by Mojang Studios, there are currently no plans to add any new dimension to Minecraft, sky dimension or otherwise.[27]

Historical screenshots

See also

Notes

  1. a b The only validation the game does is checking if a signature file exists, regardless from Microsoft or third-party; that means technically, the signature file could be replaced or added by another one resulting in a false positive.

References

  1. "Registries" – NeoForged docs.
  2. "Intro to Registries" – Fabric Wiki.
  3. "Sodium" – Modrinth.
  4. "The best Minecraft performance mods" – Rock Paper Shotgun, April 12, 2021.
  5. "ModernFix" – Modrinth.
  6. "Bug fixes" – PaperMC Docs, April 19, 2025.
  7. "Minecraft's new faster update schedule will probably fill modders with both despair and nostalgia" by Edwin Evans-Thirlwell – Rock Paper Shotgun, September 11, 2024.
  8. "What is decompilation?" by James Hamilton – Dr James Hamilton, July 7, 2010.
  9. "Should you run a Minecraft Java Edition or Bedrock Edition server?" by Maddy Miller – madelinemiller.dev, January 28, 2021.
  10. "Removing obfuscation in Java Edition"Minecraft.net.
  11. "Fabric Loader" – Fabric Wiki.
  12. "History of Minecraft Mod Loaders: Why Are There So Many?" by Burn – Cybrancee, August 9, 2025.
  13. "Every mod loader for Minecraft" – Sportskeeda, November 18, 2023.
  14. "Minecraft: Java Edition vs Bedrock Edition" by Wesley Copeland – PC Gamer, February 27, 2024.
  15. "Did Mojang Just Remove Modding For Minecraft Bedrock?" (§ Minecraft Bedrock 1.21.20 Update) by Nathan Young – Apex Hosting, August 15, 2024.
  16. "Custom Data/Resource pack Resources" – Fabric Wiki.
  17. The checks can be seen on ModCheck class (Mojang mapping)
  18. "Jarsigner - Signing Your JARs" (§ The Signed JAR File) by Oracle and/or its affiliates – Dev.java, September 14, 2021.
  19. The Created-By entry of client.jar/META-INF/MOJANGCS.SF file.
  20. "Popular Minecraft Mod Gets Update for Modern Versions" by Bruna Telles – Game Rant.
  21. "Minecraft Redditor draws the Aether portal betrayal" by Akshat Kabra – Sportskeeda, 2022-06-03.
  22. "And because PC Gamer made such a big deal of the sky dimension, I guess I'll have to finish it. Consider it confirmed."@notch (Markus Persson) on X (formerly Twitter), May 19, 2011
  23. "It has been rebranded to be The End realm"@jeb_ (Jens Bergensten) on X (formerly Twitter), October 12, 2011
  24. "Probably, yes. :D I love the idea. The Ether mod does it great, try it."@notch (Markus Persson) on X (formerly Twitter), November 10, 2011
  25. "Notch Answers Minecraft 1.8 Questions - Community Questions for Markus (Notch) Persson" – OmniTechNews on YouTube, September 1, 2011
  26. "We have no plans to revisit the skylands"@Dinnerbone (Nathan Adams) on X (formerly Twitter), July 3, 2012
  27. "No we don't plan to return the Sky Dimension"@jeb_ (Jens Bergensten) on X (formerly Twitter), July 2, 2012