Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Minecraft:Mod: Difference between revisions

From SAS Gaming Wiki
SyncBot (talk | contribs)
Remove broken links to missing pages
SyncBot (talk | contribs)
Fix template calls: add MC/ prefix
Line 1: Line 1:
{{About|unofficial game customization via direct modifications|the official modding API {{in|BE}}|Add-on|the similar mechanism {{in|JE}}|Data pack|the item {{in|ce}}|Mod (China Edition)}}
{{About|unofficial game customization via direct modifications|the official modding API {{MC/In|BE}}|Add-on|the similar mechanism {{MC/In|JE}}|Data pack|the item {{MC/In|ce}}|Mod (China Edition)}}
{{Disclaimer}}
{{MC/Disclaimer}}
[[File:The Aether dimension with custom entity.png|thumb|[https://www.curseforge.com/minecraft/mc-mods/aether The Aether], a popular mod released in 2011, adds a custom dimension consisting of new mobs, blocks, and various gameplay features and progression. It was originally created by kingbdogz, now working in Mojang Studios as a game designer.]]
[[File:The Aether dimension with custom entity.png|thumb|[https://www.curseforge.com/minecraft/mc-mods/aether The Aether], a popular mod released in 2011, adds a custom dimension consisting of new mobs, blocks, and various gameplay features and progression. It was 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.
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.
Line 14: Line 14:


== Overview ==
== Overview ==
Mods are {{w|user-created content}} used to alter the base game to create unique experiences that are not usually present from the vanilla experience. 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, [[Minecraft:item]]s, [[Minecraft:block]]s, [[Minecraft:world generation]], and [[Minecraft:dimension]]s, usually through the game's registries<ref>{{cite
Mods are {{MC/W|user-created content}} used to alter the base game to create unique experiences that are not usually present from the vanilla experience. 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, [[Minecraft:item]]s, [[Minecraft:block]]s, [[Minecraft:world generation]], and [[Minecraft:dimension]]s, usually through the game's registries<ref>{{cite
|url=https://docs.neoforged.net/docs/concepts/registries#data-generation-for-datapack-registries
|url=https://docs.neoforged.net/docs/concepts/registries#data-generation-for-datapack-registries
|title=Registries
|title=Registries
Line 71: Line 71:


=== Modding support ===
=== Modding support ===
{{JE}} is written in {{w|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,<ref>{{cite
{{MC/JE}} is written in {{MC/W|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,<ref>{{cite
|url=https://jameshamilton.eu/research/what-decompilation
|url=https://jameshamilton.eu/research/what-decompilation
|title=What is decompilation?
|title=What is decompilation?
Line 78: Line 78:
|date=July 7, 2010
|date=July 7, 2010
|access-date=December 25, 2025
|access-date=December 25, 2025
}}</ref> allowing modders to {{w|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.<ref>{{cite
}}</ref> allowing modders to {{MC/W|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.<ref>{{cite
|url=https://madelinemiller.dev/blog/minecraft-java-bedrock-edition/
|url=https://madelinemiller.dev/blog/minecraft-java-bedrock-edition/
|title=Should you run a Minecraft Java Edition or Bedrock Edition server?
|title=Should you run a Minecraft Java Edition or Bedrock Edition server?
Line 89: Line 89:
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.<ref>{{mcnet|removing-obfuscation-in-java-edition|Removing obfuscation in Java Edition}}</ref>
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.<ref>{{mcnet|removing-obfuscation-in-java-edition|Removing obfuscation in Java Edition}}</ref>


{{BE}} is written in {{w|C++}} and runs as {{w|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, which is supported by Mojang Studios, providing official means of adding content to the game.
{{MC/BE}} is written in {{MC/W|C++}} and runs as {{MC/W|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, which is supported by Mojang Studios, providing official means of adding content to the game.


[[Minecraft:Add-on]]s is the official modding API in ''Bedrock Edition'', they can add new content and modify existing features and customization 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.<ref name="pcgamer-je-vs-be">{{cite|url=https://www.pcgamer.com/minecraft-java-vs-bedrock-windows/|title=Minecraft: Java Edition vs Bedrock Edition|author=Wesley Copeland|website=PC Gamer|date=February 27, 2024}}</ref> 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 {{slink|Mentioned features|Workbench (Plugin API)}}).
[[Minecraft:Add-on]]s is the official modding API in ''Bedrock Edition'', they can add new content and modify existing features and customization 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.<ref name="pcgamer-je-vs-be">{{cite|url=https://www.pcgamer.com/minecraft-java-vs-bedrock-windows/|title=Minecraft: Java Edition vs Bedrock Edition|author=Wesley Copeland|website=PC Gamer|date=February 27, 2024}}</ref> 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 {{slink|Mentioned features|Workbench (Plugin API)}}).


In [[Minecraft:Bedrock Edition 1.21.20]], Mojang Studios removed debug information ({{cd|bedrock_server.pdb}} file) from [[Minecraft:Bedrock Dedicated Server]], making modding more difficult for ''Bedrock Edition''.<ref>{{cite|title=Did Mojang Just Remove Modding For Minecraft Bedrock?|section=Minecraft Bedrock 1.21.20 Update|author=Nathan Young|website=Apex Hosting|date=August 15, 2024|url=https://apexminecrafthosting.com/did-mojang-just-remove-modding-for-minecraft-bedrock/}}</ref>
In [[Minecraft:Bedrock Edition 1.21.20]], Mojang Studios removed debug information ({{MC/Cd|bedrock_server.pdb}} file) from [[Minecraft:Bedrock Dedicated Server]], making modding more difficult for ''Bedrock Edition''.<ref>{{cite|title=Did Mojang Just Remove Modding For Minecraft Bedrock?|section=Minecraft Bedrock 1.21.20 Update|author=Nathan Young|website=Apex Hosting|date=August 15, 2024|url=https://apexminecrafthosting.com/did-mojang-just-remove-modding-for-minecraft-bedrock/}}</ref>


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).
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 ===
=== Integration with data packs ===
{{Exclusive|Java|section=1}}
{{MC/Exclusive|Java|section=1}}


Historically, the modification of features such as advancements, enchantments, [[Minecraft:dimension]]s, or [[Minecraft: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.<ref name="fabric-custom-resources">{{Cite|title=Custom Data/Resource pack Resources|website=Fabric Wiki|url=https://wiki.fabricmc.net/tutorial:custom_resources}}</ref>
Historically, the modification of features such as advancements, enchantments, [[Minecraft:dimension]]s, or [[Minecraft: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.<ref name="fabric-custom-resources">{{Cite|title=Custom Data/Resource pack Resources|website=Fabric Wiki|url=https://wiki.fabricmc.net/tutorial:custom_resources}}</ref>


== Types of mods ==
== Types of mods ==
{{See also|w:Client-server model}}
{{MC/See also|w:Client-server model}}
{{redirect|Fabric|the in-game block|Wool}}
{{MC/Redirect|Fabric|the in-game block|Wool}}
{{Exclusive|Java|section=1}}
{{MC/Exclusive|Java|section=1}}
[[File:Custom world generation mod and shader pack.jpg|thumb|right|''Minecraft'' can be made to look very different with the addition of shader packs and [[world generation]] mods.]]
[[File:Custom world generation mod and shader pack.jpg|thumb|right|''Minecraft'' can be made to look very different with the addition of shader packs and [[world generation]] mods.]]


=== Client-based ===
=== Client-based ===
{{va|Client mods}} are direct modifications of the ''Minecraft'' game files. They control and add custom content for [[Minecraft:mob]]s, particles, [[Minecraft:item]]s, and [[Minecraft:block]]s, such as models, sounds, textures, and GUIs, but require the [[Minecraft:server]] to implement the game mechanics behind them (see {{slink||Server-based}}). They usually modify the client software, or {{cd|[[Minecraft:client.jar]]}} file.
{{MC/Va|Client mods}} are direct modifications of the ''Minecraft'' game files. They control and add custom content for [[Minecraft:mob]]s, particles, [[Minecraft:item]]s, and [[Minecraft:block]]s, such as models, sounds, textures, and GUIs, but require the [[Minecraft:server]] to implement the game mechanics behind them (see {{slink||Server-based}}). They usually modify the client software, or {{MC/Cd|[[Minecraft: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.
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-based ===
{{va|Server mods}} are modifications to the official ''Minecraft'' server software, or {{cd|[[Minecraft:server.jar]]}}. They control features that are handled exclusively in the [[Minecraft:server]], primarily the game mechanics, such as physics, mob AI, chat, [[Minecraft:commands]], player interactions (e.g. [[Minecraft:crafting]], smelting, opening [[Minecraft:chest]]s or [[Minecraft:inventory]], block placement and destruction), [[Minecraft: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.
{{MC/Va|Server mods}} are modifications to the official ''Minecraft'' server software, or {{MC/Cd|[[Minecraft:server.jar]]}}. They control features that are handled exclusively in the [[Minecraft:server]], primarily the game mechanics, such as physics, mob AI, chat, [[Minecraft:commands]], player interactions (e.g. [[Minecraft:crafting]], smelting, opening [[Minecraft:chest]]s or [[Minecraft:inventory]], block placement and destruction), [[Minecraft: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 [[Minecraft:Server#Management|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 [[Minecraft:Server#Minigame|multiplayer minigame]]s, such as spleef, capture the flag, sky wars and bed wars, are implemented using server mods.
Server mods are commonly used to enhance server [[Minecraft:Server#Management|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 [[Minecraft:Server#Minigame|multiplayer minigame]]s, such as spleef, capture the flag, sky wars and bed wars, are implemented using server mods.
Line 123: Line 123:
{{about|unofficial implementation of shader using game modifications|official shader implementation in resource packs|Shader|section=1}}
{{about|unofficial implementation of shader using game modifications|official shader implementation in resource packs|Shader|section=1}}


A shader pack is a client mod used to alter the visuals and looks of ''Minecraft''. They primarily enhance the game's graphics by adding shadows, lightnings, reflections, and other customization.<ref>https://www.gamesradar.com/best-minecraft-shaders/</ref><ref>https://www.rockpapershotgun.com/best-minecraft-shaders</ref> Shader packs are written in OpenGL Shading Language (GLSL), and require a mod designed to load them, such as [https://www.irisshaders.dev/ Iris Shaders] or OptiFine.<ref>https://shaders.properties/current/guides/your-first-shaderpack/0_intro/</ref><ref>https://shaderlabs.org/wiki/Getting_Started</ref> They can be complemented with resource packs, especially ones that include custom material data for use in {{w|physically based rendering}} (PBR). Shader packs and resource packs are often used to heavily customize the game's appearance, allowing players to transform into different styles and settings, like medieval, realistic, cinematic, and cartoonish.{{cn}}
A shader pack is a client mod used to alter the visuals and looks of ''Minecraft''. They primarily enhance the game's graphics by adding shadows, lightnings, reflections, and other customization.<ref>https://www.gamesradar.com/best-minecraft-shaders/</ref><ref>https://www.rockpapershotgun.com/best-minecraft-shaders</ref> Shader packs are written in OpenGL Shading Language (GLSL), and require a mod designed to load them, such as [https://www.irisshaders.dev/ Iris Shaders] or OptiFine.<ref>https://shaders.properties/current/guides/your-first-shaderpack/0_intro/</ref><ref>https://shaderlabs.org/wiki/Getting_Started</ref> They can be complemented with resource packs, especially ones that include custom material data for use in {{MC/W|physically based rendering}} (PBR). Shader packs and resource packs are often used to heavily customize the game's appearance, allowing players to transform into different styles and settings, like medieval, realistic, cinematic, and cartoonish.{{MC/Cn}}


Modern shader packs can implement {{w|path tracing}} and {{w|global illumination}} (GI) for ''Minecraft'', notable examples include [https://www.sonicether.com/seus/ SEUS PTGI] and [https://continuum.graphics/continuum-rt/ Continuum RT].
Modern shader packs can implement {{MC/W|path tracing}} and {{MC/W|global illumination}} (GI) for ''Minecraft'', notable examples include [https://www.sonicether.com/seus/ SEUS PTGI] and [https://continuum.graphics/continuum-rt/ Continuum RT].


=== Mod pack ===
=== Mod pack ===
Line 134: Line 134:


== <span class="anchor" id="Crash reports"></span>Modded flag ==
== <span class="anchor" id="Crash reports"></span>Modded flag ==
{{Exclusive|Java|section=1}}
{{MC/Exclusive|Java|section=1}}
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 {{w|Java class}} (where the game crashed from) is signed from a signature file, which is stored on the <code>META-INF</code> directory with <code>.SF</code> file extension in the JAR archive.<ref>The checks can be seen on {{jcp|net.minecraft.util.ModCheck}} class (Mojang mapping)</ref><ref>{{Citation|url=https://dev.java/learn/jvm/tool/security/jarsigner/#signed-jar-file|title=Jarsigner - Signing Your JARs|author=Oracle and/or its affiliates|website=Dev.java|date=September 14, 2021|section=The Signed JAR File}}</ref> These checks are done on both [[Minecraft:client.jar]] and [[Minecraft:server.jar]] files.
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 {{MC/W|Java class}} (where the game crashed from) is signed from a signature file, which is stored on the <code>META-INF</code> directory with <code>.SF</code> file extension in the JAR archive.<ref>The checks can be seen on {{MC/Jcp|net.minecraft.util.ModCheck}} class (Mojang mapping)</ref><ref>{{Citation|url=https://dev.java/learn/jvm/tool/security/jarsigner/#signed-jar-file|title=Jarsigner - Signing Your JARs|author=Oracle and/or its affiliates|website=Dev.java|date=September 14, 2021|section=The Signed JAR File}}</ref> These checks are done on both [[Minecraft:client.jar]] and [[Minecraft:server.jar]] files.


The signature file that comes from the vanilla build of the game is named <code>MOJANGCS.SF</code>, and stored on the <code>META-INF</code> directory like any other signature files. The creator of the signature file is listed as ''Microsoft''.<ref>The <code>Created-By</code> entry of <code>client.jar/META-INF/MOJANGCS.SF</code> file.</ref>
The signature file that comes from the vanilla build of the game is named <code>MOJANGCS.SF</code>, and stored on the <code>META-INF</code> directory like any other signature files. The creator of the signature file is listed as ''Microsoft''.<ref>The <code>Created-By</code> entry of <code>client.jar/META-INF/MOJANGCS.SF</code> file.</ref>
Line 141: Line 141:
The crash report text includes one of these lines near the bottom:<!-- Do not change the crash report text unless it is reflected from the source code. -->
The crash report text includes one of these lines near the bottom:<!-- Do not change the crash report text unless it is reflected from the source code. -->


*{{cd|Is Modded: Probably not. ''<environment>'' jar signature and brand is untouched}} &ndash; the ''environment'' (either client or server) brand is unaltered and the signature file is ''validated''.{{note|name=signature-validation|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.}}
*{{MC/Cd|Is Modded: Probably not. ''<environment>'' jar signature and brand is untouched}} &ndash; the ''environment'' (either client or server) brand is unaltered and the signature file is ''validated''.{{note|name=signature-validation|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.}}


*{{cd|Is Modded: Very likely; ''<environment>'' jar signature invalidated}} &ndash; the ''environment'' (either client or server) is unaltered but the signature file is ''invalidated''.{{note|name=signature-validation}}
*{{MC/Cd|Is Modded: Very likely; ''<environment>'' jar signature invalidated}} &ndash; the ''environment'' (either client or server) is unaltered but the signature file is ''invalidated''.{{note|name=signature-validation}}


*{{cd|Is Modded: Definitely; ''<environment>'' brand changed to ''<custom brand>''}} &ndash; the ''environment'' (either client or server) brand is changed to a ''custom brand'' specified by the mod loader, such as {{cd|'forge'}}, {{cd|'neoforge'}}, {{Cd|'quilt'}}, or {{cd|'fabric'}}, which are for Forge, NeoForge, Quilt, and Fabric respectively. However, the game does not check the signature file any further.
*{{MC/Cd|Is Modded: Definitely; ''<environment>'' brand changed to ''<custom brand>''}} &ndash; the ''environment'' (either client or server) brand is changed to a ''custom brand'' specified by the mod loader, such as {{MC/Cd|'forge'}}, {{MC/Cd|'neoforge'}}, {{MC/Cd|'quilt'}}, or {{MC/Cd|'fabric'}}, which are for Forge, NeoForge, Quilt, and Fabric respectively. However, the game does not check the signature file any further.
<!--
<!--
[Note for future editors]
[Note for future editors]
Line 153: Line 153:
Since the signature validation is done by checking if the signers from "Class.getSigners()" method exist (check the ModStatus class), then where did that method gets the signers from? Either using "Class.setSigners()" somewhere in the Minecraft codebase, or some JVM black magic I did not know.
Since the signature validation is done by checking if the signers from "Class.getSigners()" method exist (check the ModStatus class), then where did that method gets the signers from? Either using "Class.setSigners()" somewhere in the Minecraft codebase, or some JVM black magic I did not know.


Regardless, it is unnecessary to add {{Missing information}} template for this, since I think this section already has enough information.
Regardless, it is unnecessary to add {{MC/Missing information}} template for this, since I think this section already has enough information.


-Outrowed
-Outrowed
Line 160: Line 160:
A shortened example crash report is given below:
A shortened example crash report is given below:


{{cr|1=
{{MC/Cr|1=
---- Minecraft Crash Report ----
---- Minecraft Crash Report ----
// Uh... Did I do that?
// Uh... Did I do that?
Line 218: Line 218:


== See also ==
== See also ==
*[[Minecraft:Add-on]]s, a feature {{in|Bedrock}} that allows modders to more easily add content to the game.
*[[Minecraft:Add-on]]s, a feature {{MC/In|Bedrock}} that allows modders to more easily add content to the game.
*Data packs and resource packs, features {{in|Java}} which allow the addition of specific content to the game without the use of code modification.
*Data packs and resource packs, features {{MC/In|Java}} which allow the addition of specific content to the game without the use of code modification.
*Tutorial:Programs and editors/Modding showcases tools for installing and making mods.
*Tutorial:Programs and editors/Modding showcases tools for installing and making mods.
*Feed The Beast Wiki for looking up information about specific mods.
*Feed The Beast Wiki for looking up information about specific mods.
*{{Slink|MCW:Hey Wiki|Supported wikis}} for a list of wikis for specific mods.
*{{Slink|MCW:Hey Wiki|Supported wikis}} for a list of wikis for specific mods.
*{{w|Minecraft modding}} on Wikipedia, which includes extensive history of ''Minecraft'' modding, from alpha to release era.
*{{MC/W|Minecraft modding}} on Wikipedia, which includes extensive history of ''Minecraft'' modding, from alpha to release era.
**{{w|Video game modding}} on Wikipedia, which explains general video game modding.
**{{MC/W|Video game modding}} on Wikipedia, which explains general video game modding.
*ModJam, a form of community event where participants create fan-made content for ''Java Edition'' within a set period of time. Typically focuses on mod-related content, but maps, resource packs, and mod packs have all been included to various degrees.
*ModJam, a form of community event where participants create fan-made content for ''Java Edition'' within a set period of time. Typically focuses on mod-related content, but maps, resource packs, and mod packs have all been included to various degrees.


Line 231: Line 231:


== References ==
== References ==
{{reflist}}
{{MC/Reflist}}


== External links ==
== External links ==
*[https://www.curseforge.com/minecraft/mc-mods CurseForge] and [https://modrinth.com/mods Modrinth], which are popular repositories for hosting user-created content, mainly ''Java Edition'' mods, data packs, and other content.
*[https://www.curseforge.com/minecraft/mc-mods CurseForge] and [https://modrinth.com/mods Modrinth], which are popular repositories for hosting user-created content, mainly ''Java Edition'' mods, data packs, and other content.
*[https://neoforged.net/ Neoforged], [https://fabricmc.net/ Fabric], and [https://quiltmc.org/en/ QuiltMC], which are popular mod loaders for ''Java Edition''.
*[https://neoforged.net/ Neoforged], [https://fabricmc.net/ Fabric], and [https://quiltmc.org/en/ QuiltMC], which are popular mod loaders for ''Java Edition''.
*[https://mcpedl.com MCPEDL], which is a popular repository for hosting user-created content exclusively for ''Bedrock Edition'', such as add-ons, behavior packs, resource packs, and other content. It is managed by the same company that hosts {{w|CurseForge}}.
*[https://mcpedl.com MCPEDL], which is a popular repository for hosting user-created content exclusively for ''Bedrock Edition'', such as add-ons, behavior packs, resource packs, and other content. It is managed by the same company that hosts {{MC/W|CurseForge}}.
** There is also [https://modbay.org/ Modbay], a less popular alternative.
** There is also [https://modbay.org/ Modbay], a less popular alternative.
*[https://help.minecraft.net/hc/en-us/articles/4409139065613 Mods for ''Minecraft: Java Edition''], the official Minecraft Help Center article.
*[https://help.minecraft.net/hc/en-us/articles/4409139065613 Mods for ''Minecraft: Java Edition''], the official Minecraft Help Center article.


== Navigation ==
== Navigation ==
{{Navbox mods}}
{{MC/Navbox mods}}
{{Navbox Java Edition}}
{{MC/Navbox Java Edition}}
{{Navbox Bedrock Edition}}
{{MC/Navbox Bedrock Edition}}


[[Category:Mods]]
[[Category:Mods]]

Revision as of 20:38, 9 April 2026

Template:Message box

File:The Aether dimension with custom entity.png
The Aether, a popular mod released in 2011, adds a custom dimension consisting of new mobs, blocks, and various gameplay features and progression. It was 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.

Nomenclature

The term mod is short for modification. Within the Minecraft community, the term is conventionally used in a strict sense to refer to unofficial, community-made code alterations that require third-party mod loaders. Under this definition, "mods" are distinct from officially supported game customization features, such as data packs, resource packs, and Minecraft:add-ons.

In the broader video game industry, the term "mod" is often used as an umbrella term for any user-created content that alters a game's look or behavior. Because Minecraft is a unique case that supports both unofficial modification and official modification APIs simultaneously, the community generally maintains a practical distinction to avoid confusion between the two methods.

Despite this distinction, Mojang Studios occasionally uses the terms "mod" and "modding" more broadly in official marketing and documentation to include official features. For example, the official Minecraft.net's Creator homepage refers to the use of Minecraft:add-ons as a way to "mod Minecraft".<ref>https://www.minecraft.net/en-us/creator</ref> Similarly, an official promotional material has referred to a data pack and resource pack combination, Minecraft:Phantom Frames, as a "Java mod".<ref>https://www.minecraft.net/en-us/article/beyond-the-pale-garden</ref> This varying usage between the community, the broader gaming industry, and Mojang Studios themselves can occasionally lead to ambiguity regarding what officially constitutes a "mod" in the context of the game.

Additionally, in Java Edition, the term "modded" can be determined in the game's code as the game running with a custom client brand or an invalidated signature file (likely coming from a modified Java class), see Template:Slink.

Overview

Mods are

  1. REDIRECT Template:Wikipedia

Template:Redr used to alter the base game to create unique experiences that are not usually present from the vanilla experience. 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, Minecraft:items, Minecraft:blocks, Minecraft:world generation, and Minecraft:dimensions, usually through the game's registries<ref>Template:Cite</ref><ref>Template:Cite</ref>).

There are also utility mods serve to improve the game by adding or improving minor features while being close to vanilla (as not to change the game drastically). Optimization mods 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).<ref>Template:Cite</ref><ref>Template:Cite</ref> Other client side mods may improve stability, such as reducing crashes and micro-stutter, and fixing several bugs that are originally from the base game.<ref>Template:Cite</ref><ref>Template:Cite</ref>

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.<ref>Template:Cite</ref><ref>Template:Cite</ref><ref>Template:Cite</ref> 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.

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.<ref name="rps-update-breaks-mod">Template:Cite</ref>

Modding support

Java Edition is written in

  1. REDIRECT Template:Wikipedia

Template:Redr 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,<ref>Template:Cite</ref> allowing modders to

  1. REDIRECT Template:Wikipedia

Template:Redr 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.<ref>Template:Cite</ref>

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.<ref>Template:Mcnet</ref>

Bedrock Edition is written in

  1. REDIRECT Template:Wikipedia

Template:Redr and runs as

  1. REDIRECT Template:Wikipedia

Template:Redr, 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, which is supported by Mojang Studios, providing official means of adding content to the game.

Minecraft:Add-ons is the official modding API in Bedrock Edition, they can add new content and modify existing features and customization 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.<ref name="pcgamer-je-vs-be">Template:Cite</ref> 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 Template:Slink).

In Minecraft:Bedrock Edition 1.21.20, Mojang Studios removed debug information (

  1. REDIRECT Template:Code

Template:Redr file) from Minecraft:Bedrock Dedicated Server, making modding more difficult for Bedrock Edition.<ref>Template:Cite</ref>

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

Script error: No such module "Exclusive".

Historically, the modification of features such as advancements, enchantments, Minecraft:dimensions, or Minecraft: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.<ref name="fabric-custom-resources">Template:Cite</ref>

Types of mods

{{#vardefine:params|0 }}Template:Hatnote Template:Hatnote Script error: No such module "Exclusive".

File:Custom world generation mod and shader pack.jpg
Minecraft can be made to look very different with the addition of shader packs and world generation mods.

Client-based

  1. REDIRECT Template:Visible anchor

Template:Redr are direct modifications of the Minecraft game files. They control and add custom content for Minecraft:mobs, particles, Minecraft:items, and Minecraft:blocks, such as models, sounds, textures, and GUIs, but require the Minecraft:server to implement the game mechanics behind them (see Template:Slink). They usually modify the client software, or

  1. REDIRECT Template:Code

Template:Redr 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

  1. REDIRECT Template:Visible anchor

Template:Redr are modifications to the official Minecraft server software, or

  1. REDIRECT Template:Code

Template:Redr. They control features that are handled exclusively in the Minecraft:server, primarily the game mechanics, such as physics, mob AI, chat, Minecraft:commands, player interactions (e.g. Minecraft:crafting, smelting, opening Minecraft:chests or Minecraft:inventory, block placement and destruction), Minecraft: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


A shader pack is a client mod used to alter the visuals and looks of Minecraft. They primarily enhance the game's graphics by adding shadows, lightnings, reflections, and other customization.<ref>https://www.gamesradar.com/best-minecraft-shaders/</ref><ref>https://www.rockpapershotgun.com/best-minecraft-shaders</ref> Shader packs are written in OpenGL Shading Language (GLSL), and require a mod designed to load them, such as Iris Shaders or OptiFine.<ref>https://shaders.properties/current/guides/your-first-shaderpack/0_intro/</ref><ref>https://shaderlabs.org/wiki/Getting_Started</ref> They can be complemented with resource packs, especially ones that include custom material data for use in

  1. REDIRECT Template:Wikipedia

Template:Redr (PBR). Shader packs and resource packs are often used to heavily customize the game's appearance, allowing players to transform into different styles and settings, like medieval, realistic, cinematic, and cartoonish.

  1. REDIRECT Template:Citation needed

Template:Redr

Modern shader packs can implement

  1. REDIRECT Template:Wikipedia

Template:Redr and

  1. REDIRECT Template:Wikipedia

Template:Redr (GI) for Minecraft, notable examples include SEUS PTGI and Continuum RT.

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

Script error: No such module "Exclusive". 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

  1. REDIRECT Template:Wikipedia

Template:Redr (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.<ref>The checks can be seen on

  1. REDIRECT Template:Java classpath class (Mojang mapping)</ref><ref>Template:Citation</ref> These checks are done on both Minecraft:client.jar and Minecraft: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.<ref>The Created-By entry of client.jar/META-INF/MOJANGCS.SF file.</ref>

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

  1. REDIRECT Template:Code

Template:Redr – the environment (either client or server) brand is unaltered and the signature file is validated.Template:Note

  1. REDIRECT Template:Code

Template:Redr – the environment (either client or server) is unaltered but the signature file is invalidated.Template:Note

  1. REDIRECT Template:Code

Template:Redr – the environment (either client or server) brand is changed to a custom brand specified by the mod loader, such as

  1. REDIRECT Template:Code

Template:Redr,

  1. REDIRECT Template:Code

Template:Redr,

  1. REDIRECT Template:Code

Template:Redr, or

  1. REDIRECT Template:Code

Template:Redr, 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,<ref>Template:Citation</ref> was referenced in an April Fools 2023 update, where players would be able to build the other portal out of Minecraft:glowstone and Minecraft: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.<ref>Template:Citation</ref>{{#section:Other Portal|sky-dimension-trivia}}

Gallery

Historical screenshots

See also

  • Minecraft:Add-ons, a feature in Template:Editions that allows modders to more easily add content to the game.
  • Data packs and resource packs, features in Template:Editions which allow the addition of specific content to the game without the use of code modification.
  • Tutorial:Programs and editors/Modding showcases tools for installing and making mods.
  • Feed The Beast Wiki for looking up information about specific mods.
  • Template:Slink for a list of wikis for specific mods.
  1. REDIRECT Template:Wikipedia

Template:Redr on Wikipedia, which includes extensive history of Minecraft modding, from alpha to release era.

  1. REDIRECT Template:Wikipedia

Template:Redr on Wikipedia, which explains general video game modding.

  • ModJam, a form of community event where participants create fan-made content for Java Edition within a set period of time. Typically focuses on mod-related content, but maps, resource packs, and mod packs have all been included to various degrees.

Notes

Template:Notelist

References

<references group="">

 </references>

External links

  • CurseForge and Modrinth, which are popular repositories for hosting user-created content, mainly Java Edition mods, data packs, and other content.
  • Neoforged, Fabric, and QuiltMC, which are popular mod loaders for Java Edition.
  • MCPEDL, which is a popular repository for hosting user-created content exclusively for Bedrock Edition, such as add-ons, behavior packs, resource packs, and other content. It is managed by the same company that hosts
  1. REDIRECT Template:Wikipedia

Template:Redr.

Navigation

Official
By Minecraft Wiki
Add-ons (BE)
Official resources
Versions
Development
Version history
Technical

See here for more information

Game customization
Editions
Merged
Ports to consoles
Discontinued
Development
Version history
Technical
Creator
Add-ons
Multiplayer
Exclusive features
Blocks
Mobs
Effects
Unused
Removed

de:Modifikation es:Mod fr:Mods hu:Modok it:Mod ja:Mod ko:모드 nl:Mods pl:Modyfikacje pt:Mods ru:Модификации th:ม็อด uk:Модифікація zh:加载器Mod