Direct answer
A modded Minecraft server runs a mod loader such as Fabric, Forge, NeoForge, or Quilt instead of a normal plugin-only server stack. The loader starts Minecraft, discovers compatible mod JARs, checks their dependencies, and lets those mods add or change game behavior. Some mods are server-side only, while many content mods must also be installed on every player’s client.
A mod must match the Minecraft version and the mod loader it was built for. Client and server requirements are mod-specific, so always read the mod page before copying a JAR into mods/.
What happens when a modded server starts?
- The server starts through the selected mod loader.
- The loader scans the
mods/folder and reads each mod's metadata. - Required dependencies and version rules are checked.
- Mods register their content, events, networking, commands, configuration, or other changes.
- Minecraft then loads the world using that modified environment.
If a required dependency is missing, a mod targets the wrong loader or Minecraft version, or code fails during initialization, the server can stop before the world finishes loading. The server log and crash report normally contain the useful cause.
Server-side, client-side, and mods that need both
| Mod type | Where it runs | Do players usually need it? |
|---|---|---|
| Server-side only | Dedicated server | No, if the mod is explicitly designed to work without a client copy. |
| Client-side only | Player client | Yes for the player who wants the feature; it normally should not be required by the server. |
| Client + server | Both sides | Usually yes. Content, registry, or networking changes often require compatible copies on both sides. |
Do not decide this from the filename. The project page or documentation should state whether a mod is client-side, server-side, or required on both sides. Forge documentation also distinguishes the physical client from a dedicated physical server, and one-sided mods have to be written so they behave correctly on the side where they are not needed.
Why the mod loader matters
Fabric, Forge, NeoForge, and Quilt are different mod-loader ecosystems. A Fabric mod is not automatically a Forge or NeoForge mod, even when the Minecraft version number is the same. Some projects publish separate builds for several loaders, so download the build that matches the server you actually run.
Dependencies matter too. For example, many Fabric mods require Fabric API, while other mods may depend on a library mod or another project. Missing or incompatible dependencies are a common reason a modded server fails during startup.
Why can a player be rejected even when the server starts?
A server can start successfully and still reject a player when the client and server do not agree on required mods, versions, registries, or networking. This is why a modpack normally keeps the same Minecraft version, loader version, mod versions, and required dependencies across the server and players.
Server-side-only mods are the main exception: when a project explicitly supports server-only use, players can normally join without installing that mod.
How does a modpack server fit into this?
A modpack is a tested collection of a Minecraft version, mod loader, mods, dependencies, configuration, and often datapacks or scripts. If the modpack provides a server pack, use it instead of copying the entire client instance blindly. A server pack normally removes client-only files and includes the files the dedicated server actually needs.
NeoForge specifically recommends using a modpack server pack when one is available. If there is no server pack, server owners may need to remove client-only mods manually, which is one reason packaged server files are safer and easier to reproduce.
Basic workflow for adding mods to a server
- Back up the server before changing an existing modded world.
- Confirm the server's Minecraft version and mod loader.
- Download the mod from a trustworthy source such as the project's official page, Modrinth, or CurseForge.
- Confirm whether the mod is server-side only or must also be installed by players.
- Install every required dependency.
- Put the correct server-compatible JARs in
mods/. - Fully restart the server and read the startup log for dependency, version, registry, or initialization errors.
Why backups matter more on modded worlds
Mods can add blocks, items, entities, dimensions, biomes, saved data, or world-generation features. Removing or replacing those mods can leave existing world data referring to content that no longer exists. Before updating a loader, changing a large mod list, or removing a content/world-generation mod, make a restorable backup of the whole server.
Common mistakes
- Installing a Fabric JAR on Forge or NeoForge, or the reverse.
- Using a mod built for a different Minecraft version.
- Forgetting a required library or API dependency.
- Putting a client-only visual/UI mod on a dedicated server when the mod does not support it.
- Giving players a different modpack revision from the server.
- Updating one mod in a pack without checking its dependencies and compatibility.
- Removing a content or world-generation mod before making a backup.
How is this different from a plugin server?
Plugins usually extend a compatible server such as Paper through a server plugin API and normally do not require players to install the same JAR. Mods are loaded by a mod loader and can change a wider range of Minecraft behavior, including content and client/server networking.
For the other side of the topic, read How Minecraft Server Plugins Work and Minecraft Server Plugins vs Mods: What Is the Difference?.
Official references
- Fabric: Installing Mods
- Fabric: Developer Guides and modding toolchain overview
- NeoForge: Installing a Server, Adding Mods, and Modpacks
- MinecraftForge: Client and Server Sides
Help us improve this article
Tell us what is missing, unclear, outdated, or incorrect. You can also suggest something we should add.