Minecraft:Mod: Difference between revisions
More actions
imported>Outrowed subst anchor |
Remove broken links to missing pages |
||
| Line 1: | Line 1: | ||
{{About|unofficial | {{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)}} | ||
{{Disclaimer}} | {{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 | [[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 | 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 == | == 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 | 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-on]]s. | ||
In the broader video game industry, the term " | 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, | 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-on]]s 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 {{slink||Modded flag}}. | 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 {{slink||Modded flag}}. | ||
== 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 | 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 | ||
|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 24: | Line 24: | ||
}}</ref>). | }}</ref>). | ||
There are also utility mods serve to improve the game by adding or improving minor features while being close to | 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>{{cite | ||
|url=https://modrinth.com/mod/sodium | |url=https://modrinth.com/mod/sodium | ||
|title=Sodium | |title=Sodium | ||
| Line 48: | Line 48: | ||
}}</ref> | }}</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 | 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>{{cite | ||
|url=https://wiki.fabricmc.net/documentation:fabric_loader | |url=https://wiki.fabricmc.net/documentation:fabric_loader | ||
|title=Fabric Loader | |title=Fabric Loader | ||
| Line 66: | Line 66: | ||
|date=November 18, 2023 | |date=November 18, 2023 | ||
|access-date=December 25, 2025 | |access-date=December 25, 2025 | ||
}}</ref> There are many well-known mod loaders, such as | }}</ref> There are many well-known mod loaders, such as Forge, [https://fabricmc.net/ Fabric], [https://quiltmc.org/ Quilt], and [https://neoforged.net/ 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 | 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">{{cite|url=https://www.rockpapershotgun.com/minecrafts-new-faster-update-schedule-will-probably-fill-modders-with-both-despair-and-nostalgia|title=Minecraft's new faster update schedule will probably fill modders with both despair and nostalgia|author=Edwin Evans-Thirlwell|website=Rock Paper Shotgun|date=September 11, 2024}}</ref> | ||
=== 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 | {{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 | ||
|url=https://jameshamilton.eu/research/what-decompilation | |url=https://jameshamilton.eu/research/what-decompilation | ||
|title=What is decompilation? | |title=What is decompilation? | ||
| Line 87: | Line 87: | ||
}}</ref> | }}</ref> | ||
For older versions, | 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. | {{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. | ||
[[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 | [[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 ({{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 | 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}} | {{Exclusive|Java|section=1}} | ||
Historically, the modification of features such as | 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 == | ||
| Line 109: | Line 109: | ||
=== 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, | {{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. | ||
Functional client mods like | 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 | {{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. | ||
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 | 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 may be referred to as ''plugins'', mainly on [https://www.spigotmc.org/ Spigot] mod loader and its derivatives. Some are implemented as | Server mods may be referred to as ''plugins'', mainly on [https://www.spigotmc.org/ 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 === | === Shader pack === | ||
{{about|unofficial implementation of shader using game modifications|official shader implementation in | {{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 | 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}} | ||
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 {{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]. | ||
| Line 129: | Line 129: | ||
=== Mod pack === | === 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 | 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. | In addition to making it easy to install mod pack clients, certain launchers can also download server mod packs. | ||
| Line 135: | Line 135: | ||
== <span class="anchor" id="Crash reports"></span>Modded flag == | == <span class="anchor" id="Crash reports"></span>Modded flag == | ||
{{Exclusive|Java|section=1}} | {{Exclusive|Java|section=1}} | ||
If ''Minecraft'' crashes, a modified game is flagged in the | 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. | ||
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 145: | Line 145: | ||
*{{cd|Is Modded: Very likely; ''<environment>'' jar signature invalidated}} – the ''environment'' (either client or server) is unaltered but the signature file is ''invalidated''.{{note|name=signature-validation}} | *{{cd|Is Modded: Very likely; ''<environment>'' jar signature invalidated}} – 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>''}} – 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 | *{{cd|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 {{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. | ||
<!-- | <!-- | ||
[Note for future editors] | [Note for future editors] | ||
| Line 199: | Line 199: | ||
== Trivia == | == Trivia == | ||
* [https://aether.wiki.gg/wiki/The_Aether The Aether], a popular mod released in 2011,<ref>{{Citation|url=https://gamerant.com/minecraft-mod-aether-update-modern-versions/|title=Popular Minecraft Mod Gets Update for Modern Versions|author=Bruna Telles|website=Game Rant}}</ref> was referenced in an | * [https://aether.wiki.gg/wiki/The_Aether The Aether], a popular mod released in 2011,<ref>{{Citation|url=https://gamerant.com/minecraft-mod-aether-update-modern-versions/|title=Popular Minecraft Mod Gets Update for Modern Versions|author=Bruna Telles|website=Game Rant}}</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>{{Citation|url=https://www.sportskeeda.com/minecraft/minecraft-redditor-draws-aether-portal-betrayal|title=Minecraft Redditor draws the Aether portal betrayal|author=Akshat Kabra|website=Sportskeeda|date=2022-06-03}}</ref>{{#section:Other Portal|sky-dimension-trivia}}<!-- See Other Portal --> | ||
== Gallery == | == Gallery == | ||
| Line 207: | Line 207: | ||
File:The Aether's sky island.jpg|The Aether dimension is similar to the [[Minecraft:sky dimension]], which was scrapped in ''Minecraft'' development. | File:The Aether's sky island.jpg|The Aether dimension is similar to the [[Minecraft:sky dimension]], which was scrapped in ''Minecraft'' development. | ||
File:Twilight Forest.jpg|The Twilight Forest mod adds a custom dimension with fantasy-medieval setting. | File:Twilight Forest.jpg|The Twilight Forest mod adds a custom dimension with fantasy-medieval setting. | ||
File:Tamedkargooalexmobs.png|A | File:Tamedkargooalexmobs.png|A tamed kangaroo with netherite [[Minecraft:armor]] from Alex's Mobs. | ||
File:Macaw bridges.png|The Macaw's Bridges mod adds bridges to the game. | File:Macaw bridges.png|The Macaw's Bridges mod adds bridges to the game. | ||
File:Immersive Portals.png|The Immersive Portals mod adds custom portals that players can transition seamlessly in the game. | File:Immersive Portals.png|The Immersive Portals mod adds custom portals that players can transition seamlessly in the game. | ||
| Line 214: | Line 214: | ||
=== Historical screenshots === | === Historical screenshots === | ||
<gallery> | <gallery> | ||
File:Custom Indev world generator.png|An example of a world generator mod (custom | File:Custom Indev world generator.png|An example of a world generator mod (custom Indev map generator) | ||
</gallery> | </gallery> | ||
== 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 {{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. | ||
* | *Tutorial:Programs and editors/Modding showcases tools for installing and making 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 | *{{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. | **{{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. | ||
== Notes == | == Notes == | ||
| Line 236: | Line 236: | ||
*[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 | *[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}}. | ||
** 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 | *[https://help.minecraft.net/hc/en-us/articles/4409139065613 Mods for ''Minecraft: Java Edition''], the official Minecraft Help Center article. | ||
== Navigation == | == Navigation == | ||
| Line 249: | Line 249: | ||
[[Category:Community]] | [[Category:Community]] | ||
de:Modifikation | |||
es:Mod | |||
fr:Mods | |||
hu:Modok | |||
it:Mod | |||
ja:Mod | |||
ko:모드 | |||
nl:Mods | |||
pl:Modyfikacje | |||
pt:Mods | |||
ru:Модификации | |||
th:ม็อด | |||
uk:Модифікація | |||
zh:加载器Mod | |||
Revision as of 15:56, 9 April 2026
|
For the {{{Description}}} of the same name, see [[{{{Destination}}}]]. |
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 Template:W 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
Template:JE is written in Template:W 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 Template:W 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>
Template:BE is written in Template:W and runs as Template:W, 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 (Template:Cd 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
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
Template:See also Template:Redirect Template:Exclusive
Client-based
Template:Va 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 Template:Cd 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
Template:Va are modifications to the official Minecraft server software, or Template:Cd. 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
|
For the {{{Description}}} of the same name, see [[{{{Destination}}}]]. |
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 Template:W (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.Template:Cn
Modern shader packs can implement Template:W and Template:W (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
Template: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 Template:W (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 Template:Jcp 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:
- Template:Cd – the environment (either client or server) brand is unaltered and the signature file is validated.Template:Note
- Template:Cd – the environment (either client or server) is unaltered but the signature file is invalidated.Template:Note
- Template:Cd – the environment (either client or server) brand is changed to a custom brand specified by the mod loader, such as Template:Cd, Template:Cd, Template:Cd, or Template:Cd, 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
-
The title screen of a modded Minecraft:Java Edition with Forge.
-
The Aether mod adds a custom Minecraft:dimension called "Aether".
-
The Aether dimension is similar to the Minecraft:sky dimension, which was scrapped in Minecraft development.
-
The Twilight Forest mod adds a custom dimension with fantasy-medieval setting.
-
A tamed kangaroo with netherite Minecraft:armor from Alex's Mobs.
-
The Macaw's Bridges mod adds bridges to the game.
-
The Immersive Portals mod adds custom portals that players can transition seamlessly in the game.
Historical screenshots
-
An example of a world generator mod (custom Indev map generator)
See also
- Minecraft:Add-ons, a feature Template:In that allows modders to more easily add content to the game.
- Data packs and resource packs, features Template:In 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.
- Template:W on Wikipedia, which includes extensive history of Minecraft modding, from alpha to release era.
- Template:W 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
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 Template:W.
- There is also Modbay, a less popular alternative.
- Mods for Minecraft: Java Edition, the official Minecraft Help Center article.
Template:Navbox mods Template:Navbox Java Edition Template:Navbox Bedrock Edition
de:Modifikation es:Mod fr:Mods hu:Modok it:Mod ja:Mod ko:모드 nl:Mods pl:Modyfikacje pt:Mods ru:Модификации th:ม็อด uk:Модифікація zh:加载器Mod