{{About|community-made game modification|the official modding API in [[Bedrock Edition]]|Add-on|similar mechanism in [[Java Edition]]|Data pack}}
{{Disclaimer}}
{{msgbox|title=Articles about mods are currently being transferred to the [[ftb:|Feed The Beast Wiki]].|text=This page is for general information about mods only, not descriptions of specific mods.<br>Visit the Feed The Beast Wiki for up-to-date, detailed modding information.|class=msgbox-magenta}}
[[File:Indev World Generator.png|thumb|right|An example of a world generator mod (custom [[Indev]] map generator)]]
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 and adjusting the base experience to completely revamping the way the game is played and implementing new features.

{{JE}} is written in Java and runs on the JVM, which for technical reasons makes creating mods relatively easy. Due to this, a prolific modding scene exists for that edition. {{BE}} is written in {{w|C++}} and runs as native 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-on]]s providing official means of adding content to the game.

[[Bedrock Edition 1.21.20]] removed debug information ({{cd|bedrock_server.pdb}} file) from [[Bedrock Dedicated Server]], making it more difficult than ever for the community to mod {{BE}}.<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 [[add-on]]s, [[resource pack]]s and [[data pack]]s, these are usually not considered mods.

== Purpose ==
Mods can add new content to the game that alter the [[gameplay]], change look and feel of the game, fix [[bug]]s, or give the player more options and customizations on how they interact with the world of ''Minecraft''. Some mods can be a massive expansion to the [[survival]] experience with new progression, [[mob]]s and [[monster]]s, and even custom [[dimension]]s, while others can add {{w|Program optimization|optimization}} and performance improvements on various aspects of the game, making it run faster and more accessible for everyone.

[[Server]] mods (also called plugins) commonly enhance server [[Tutorial:Server maintenance|administration]] with more functionality and ease of use, there also performance mods that specifically optimize parts of the game related to the server. Server mods are also applicable in [[singleplayer]], such as [[world generation]] mods that can add new [[biome]]s and [[structure]]s into the game.

Mods can also fix gameplay bugs, most notably, a significant amount of [[Tutorials/Block and item duplication|item duplication]] bugs that are not patched in {{edition|java}} (either never patched or in the case of [[TNT]] duplication, patched then reverted), there are mods that patch them and other bugs.

Mods usually work for specific [[Version types#Release versions|release version]]s of the game. When the game is updated, the mod must also be updated accordingly, otherwise, it may no longer work for future versions.

[[Add-on]]s serve as the official modding API in {{edition|bedrock}}, they can add features and modify existing contents and customizations in the game. In comparison to ''Java Edition'' mods, add-ons may not be able to change specific native aspects of the game, commonly used for optimizations and bug fixes.

== Types of mods ==
{{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.]]
=== Client-based ===

Client mods are direct modifications of the ''Minecraft'' game files. They usually modify the client software, or {{mono|[[client.jar]]}} file. These require mod loaders such as [[Mods/Forge|Forge]], [https://fabricmc.net/ Fabric], [https://quiltmc.org Quilt], or [https://neoforged.net/ NeoForge].

Because the ''Minecraft'' server software ignores custom content from the client side, most of the client mods which add new content to the game do not work in [[multiplayer]] unless the same mods have also been installed on the server. Functional client mods like [[ftb:Sodium (mod)|Sodium]] and [[ftb:OptiFine|OptiFine]] only modify client related features of the game, such as [[graphics]] fidelity and rendering, while not adding or changing any [[gameplay]] features to the game, making them perfectly compatible with [[vanilla]] server without any mods.

=== Server-based ===

[[Server]] mods are modifications to the official ''Minecraft'' [[server.jar|server software]]. They are commonly designed to make the [[Tutorial:Server maintenance|administration]] of servers easier by implementing tiered privileges for [[command]]s, such as kicking and banning, restricting certain commands to specific [[permission]]s, punishing [[player]]s, etc. Likewise, server mods require a mod loader like client mods. Some server mods may also be called ''plugins'', mainly on [[ftb:Spigot|Spigot]] mod loader and its derivatives. Some are implemented as {{w|Adapter pattern|wrapper}}s which do not modify the {{mono|[[server.jar]]}} file, instead monitoring its output and sending commands to it.

=== Shader packs ===
{{about|community implementation of shader loaded using specific mods|official shader implementation in [[resource pack]]|Shader|section=1}}

Shader packs are client mods that are used to alter the visuals and looks of ''Minecraft''. They can enhance the game's [[graphics]] and customizations by adding shadows, lightnings, reflections, and more. Shader packs require mods that are designed to load them, such as [https://www.irisshaders.dev/ Iris Shaders] or [[ftb:OptiFine|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 {{w|physically based rendering}} (PBR). Modern shader packs can implement {{w|path tracing}} and {{w|global illumination}} (GI) for ''Minecraft'', most notably, [https://www.sonicether.com/seus/ SEUS PTGI] and [https://continuum.graphics/continuum-rt/ Continuum RT] have done this.

=== Mod packs ===

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

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

== Crash reports ==
{{Exclusive|Java|section=1}}
If ''Minecraft'' crashes, a modified game is flagged in the [[crash]] report.

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

 Is Modded: Probably not. Jar signature remains and the client brand is untouched
 Is Modded: Very likely; Jar signature invalidated
 Is Modded: Definitely: client brand changed to (present loader, such as "fml,forge", "modloader", or "fabric")
 Is Modded: Unknown (can't tell)

A shortened example crash report is given below:

{{cr|1=
---- Minecraft Crash Report ----
// Uh... Did I do that?

Time: 1/1/17 12:00 AM
Description: Manually triggered debug crash


A detailed walkthrough of the error, its code path, and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
	Minecraft Version: 1.12
	Operating System: Windows 10 (amd64) version 10.0
	Java Version: 1.8.0_131, Oracle Corporation
	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 524288000 bytes (500 MB) / 536870912 bytes (512 MB) up to 1073741824 bytes (1024 MB)
	JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -XX:+DisableExplicitGC
	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
	Launched Version: 1.12
	LWJGL: 2.9.4
	OpenGL: AMD Radeon (TM) R9 999 GL version 9.9.99999 Compatibility Profile Context 99.99.999.999, ATI Technologies Inc.
	GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.

	Using VBOs: No
	'''Is Modded: Probably not. Jar signature remains and client brand is untouched.'''
	Type: Client (map_client.txt)
	Resource Packs: 
	Current Language: English (US)
	Profiler Position: N/A (disabled)
	CPU: 9x Intel(R) Core(TM) i9-9999Z CPU @ 9.99GHz
}}

The code that checks for mods is fairly simple, and it's not always correct; it may say 'probably not' even with mods installed. However, it's very difficult to get the 'very likely' message if the player hasn't modified their ''Minecraft'' .jar file somehow, so that's essentially a 'yes'. There's also a 'definitely' message, seen when a Bukkit server crashes and under other similar circumstances, like when the Minecraft Forge API is installed.

'Probably not' appears when the client/server brand appears to the in-game check to be unaltered (often termed 'vanilla') and the <code>META-INF</code> folder is still there. 'Very likely' appears when the <code>META-INF</code> folder is not present but the client/server brand seems to be vanilla. 'Definitely' plus the client name appears when the client is not vanilla:

 Is Modded: Definitely: Client brand changed to 'fml,forge'

== See also ==

*[[Add-on]]s, a feature {{in|Bedrock}} that allows modders to more easily add content to the game.
*[[Programs and editors/Modding]] showcases tools for installing and making mods.

== External links ==
*[https://www.curseforge.com/minecraft/mc-mods Mods repository on CurseForge]
*[https://modrinth.com/mods Mods repository on Modrinth]
*[https://mcpedl.com MCPEDL.com], a repository of ''Bedrock Edition'' mods and add-ons.
*[https://modbay.org modbay.org], a slightly less popular but mostly ad-free repository of Bedrock Edition mods and add-ons.
*[https://help.minecraft.net/hc/en-us/articles/4409139065613 Mods for ''Minecraft: Java Edition''] – [[Minecraft Help Center]]

==Gallery==
<gallery>
File:The Aether.jpg|The Aether, a popular mod released in 2011 created by [[kingbdogz]].
File:The Aether's sky island.jpg|The Aether is similar to the unimplemented [[sky dimension]].
File:Twilight Forest.jpg|The Twilight Forest, another popular dimension mod.
File:Tamedkargooalexmobs.png|A [[tamed]] kangaroo with [[netherite]] [[armor]] from the mod Alex's Mobs.
File:Macaw bridges.png|The Macaw's Bridges mod adds bridges to the game.
File:Piglin Pillagers.png|This is a mod that adds piglin pillagers into Minecraft
</gallery>

== References ==
{{reflist}}

== Navigation ==
{{Navbox mods}}
{{Navbox Java Edition}}

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

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