Minecraft Forge is a mod loader and programming API for Minecraft: Java Edition on desktop computers. It provides the framework that Forge mods use to load into the game and add their own content or behavior. Players use it to run compatible mods; developers use its interfaces to create them, from new blocks and items to changes in how the game responds to player actions.
How Minecraft Forge loads mods
Minecraft Forge reads packaged JAR mods and their metadata to determine how they should load. A mod can declare the loader versions it accepts, other mods it needs, and whether those dependencies belong on the client, server or both. Forge checks these declarations before loading the mods. A missing mandatory dependency can stop loading, so a collection of mod files must meet the requirements set by its authors.
That metadata also supplies the in-game Mods menu with names, descriptions, authors and optional logos. Compatibility depends on the Minecraft branch, Forge and the individual mods, so a newer Forge build does not automatically make older mods usable.
Registering new game content
For a mod to add an item, block or sound, Minecraft must recognize that object. Forge provides registries that associate objects with names. Blocks and items have separate registries, while each entry needs a unique name within its own registry.
Developers can queue those entries for registration during the appropriate loading event. Other content follows different paths: dynamic registry entries, including some world-generation content, use data files. Forge also has a loader for distributing data packs and resource packs as mods without a Java entry point.
Game events
Minecraft Forge exposes game events that mods can respond to through registered handlers. These connect a mod’s behavior to actions such as an item being picked up or an object being right-clicked. Instead of running continuously without a trigger, the handler receives the event when the relevant action occurs.
Authors can set handler priorities to control the order in which their code responds. Some events permit cancellation or a result that changes the normal action; others only provide a notification. A separate event bus handles mod initialization, including the points at which content is registered.
Client and server sides
Forge distinguishes the player-facing client from the server that manages game logic. That distinction also applies to single-player worlds, where the game runs a logical server alongside the client. Mod authors can restrict particular code to the appropriate side, keeping graphical behavior separate from the rules that update the world.
A mod confined to client behavior can have different compatibility needs from one that adds blocks or items shared with a server. Forge provides metadata controls for those distinctions. Whether a mod must be present on both ends depends on what it does and how its author configured it.
Building and testing with the Mod Developer Kit
The Mod Developer Kit supplies an example mod, source and resource folders, and Gradle project files. Developers work on the code and assets in an editor or IDE, then use the build process to produce a JAR that can be distributed as a mod.
Minecraft Forge’s development setup includes run configurations for testing a mod in a game client or dedicated server. This allows authors to examine both environments before distributing their work, including cases where client-specific code would otherwise fail on a server.





