Match the loader and version, keep client-only mods off the server, install mods and server packs, and read crash reports when a modded server won't start.
Mods can turn Minecraft into a completely different game, with new machines, new dimensions and new mobs. Running them on a server lets your friends share that world with you.
Modded servers are also less forgiving than plugin servers. In this guide, we will cover how to match the loader and Minecraft version, which mods belong on the server, how to install mods and modpacks, how much RAM you need, and how to read a crash report when something breaks.
By the end of this guide, you will know how to get a modded server running and how to fix it when it won't start.
Match the Loader and the Minecraft Version
Every mod is built for one mod loader and specific Minecraft versions. Your server has to run that exact loader and version, and so do your players.
| Loader | Runs | Good to know |
|---|---|---|
| Fabric mods | Most Fabric mods also need Fabric API in the mods folder. | |
| Quilt mods and most Fabric mods | Quilt mods do not work on Fabric. | |
| Forge mods | The original big mod loader, still updated. | |
| NeoForge mods | Split from Forge in 2023. On newer versions, Forge and NeoForge mods are not interchangeable. |
All four loaders have builds for the current Minecraft release, 26.3. Minecraft 26.1 and newer need Java 25, so check your Java version too. Our Java version guide lists what each version needs.
The loader version matters as well. A mod page may say it needs, for example, a newer Fabric Loader than the one you have, and the server will refuse to start until you update.
Not sure which loader to pick? Read Vanilla, Paper, Fabric or Forge and Forge vs NeoForge.
Server-Side vs Client-Side Mods
Not every mod belongs on the server. There are three kinds:
| Type | Examples | Install on |
|---|---|---|
| Both sides | Mods that add blocks, items, mobs or dimensions | Server and every player |
| Server-side | Chunky, Lithium, FerriteCore, spark | The server. Players don't need them. |
| Client-only | Sodium, Iris, Mod Menu | Players only, never the server |
A client-only mod on a server often crashes it at startup. On Forge and NeoForge, the typical error looks like this:
Attempted to load class net/minecraft/client/... for invalid dist DEDICATED_SERVER
It means a mod tried to use code that only exists in the game client. Find the mod named in the lines below that error and remove it from the server.
Modrinth pages show whether a mod is needed on the client, the server or both. That info comes from the mod author, so it is sometimes wrong.
How to Install Mods Step by Step
- Install the loader. On EternalZero, pick the loader and version in the Versions Changer. Running it yourself? For Fabric, use the server launcher from fabricmc.net. For NeoForge, run
java -jar neoforge-installer.jar --installServer, set your RAM inuser_jvm_args.txtand start withrun.batorrun.sh(source: NeoForge docs). - Start the server once. This creates the
modsandconfigfolders. Accept the EULA ineula.txtif you run it yourself. - Add your mods. Upload the
.jarfiles into themodsfolder. On Fabric, add Fabric API too. - Start the server and read the log. If it reaches "Done", the mods loaded.
- Give your players the same mods. Same mods, same versions, same loader.
The Mods and Plugins page in the EternalZero panel can search Modrinth and CurseForge and install a mod in one click, which saves the download and upload steps.
Mod settings live in the config folder. Forge and NeoForge also keep some settings per world, in a serverconfig folder inside the world folder.
Installing a Modpack
Use the server pack
Most popular packs publish a server version with client-only mods already removed. It is the easiest and safest way to run a pack.
- CurseForge: open the pack's Files tab, pick the version your players use and look for the server pack download. It is often listed under Additional Files.
- Modrinth: packs come as
.mrpackfiles. Modrinth's own help article points to tools like mrpack-install to set one up as a server (source: Modrinth support).
Upload the server pack's contents to your server, set the right Java version and RAM, and start it. Always use the exact same pack version as your players.
No server pack?
You can build one yourself:
- Install the same loader and Minecraft version the pack uses.
- Copy the
modsandconfigfolders from your client install. Copydefaultconfigsorkubejstoo if the pack has them. - Remove client-only mods like shaders, minimaps and menu tweaks.
- Start the server. If it crashes on a client class, remove that mod and try again.
NeoForge's docs admit it is often unclear which mods are client-side, so some trial and error is normal here.
How Much RAM a Modded Server Needs
Mods load a lot into memory before anyone even joins. As a rough starting point:
- Fabric with a few mods: 4 GB
- Forge or NeoForge modpack: 6 GB or more
- Large modpacks: whatever the pack page recommends, which is often a lot more
Our RAM guide explains how to check real usage with spark before you add more.
Players Need the Same Mods
Every mod that adds content must be on both the server and every player's game, in the same version. If a player is missing one, they usually get disconnected with an error about missing or mismatched mods.
The easiest fix is to share the modpack itself. Players install it through the CurseForge app, the Modrinth app or another launcher, and everyone gets the same files. For a custom mod list, send them a zip of your client mods folder.
Common Crash Causes and How to Read a Crash Report
When the server crashes, check two places:
crash-reports/: one file per crash, with a "Description" line near the top and the error below it.logs/latest.log: everything the server printed. Forge and NeoForge also write a more detailedlogs/debug.log.
Read the first error lines and look for a mod name or mod ID. That is usually your answer.
| Error | What it means | Fix |
|---|---|---|
invalid dist DEDICATED_SERVER | A client-only mod is on the server | Remove that mod |
| Missing or unsupported mandatory dependencies | Forge or NeoForge: a required mod is missing or the wrong version | Install the mod and version it names |
| Incompatible mods found / "requires ... which is missing" | Fabric: missing Fabric API, library or loader version | Install or update what it lists |
UnsupportedClassVersionError | Wrong Java version | Switch Java in your startup settings |
OutOfMemoryError | Not enough RAM | Add RAM or remove heavy mods |
| Mixin errors naming a mod | Two mods conflict, or a mod is for another version | Update or remove the mods it names |
If you can't find the cause, remove half of your mods and start again. Keep halving until the crash goes away, and the last group you removed holds the problem mod.
Tip: Take a backup before adding or updating mods. Some mods change the world when they load, and removing them later can leave missing blocks behind.
Conclusion
Modded servers come down to one rule: everything has to match. Same loader, same Minecraft version, same mod versions, with client-only mods left off the server.
Start with a ready-made server pack or a small mod list, get it running, and add more mods a few at a time so you always know what broke.