Why your modded Minecraft server crashes on startup
You export your modpack from your launcher, upload it to a server, press start, and it dies within seconds. Nine times out of ten the pack is fine. The problem is that it contains mods that only belong on the client: the game you play, not the server you join.
What it looks like
Here's a real one from a NeoForge 26.2 server running an Alex's Caves pack. The server got about a second into starting and stopped with:
Running graphics bootstrap plugin sodium
java.lang.NoClassDefFoundError: org/lwjgl/Version
at ...sodium.client.compatibility.checks.PreLaunchChecks...LWJGL is the library Minecraft uses to draw the game window. A dedicated server has no window, so it doesn't ship that library. Sodium, a rendering mod, went looking for it and crashed the whole server. When a log mentions graphics, rendering, shaders, the window or LWJGL, think client-only mod first.
The usual suspects
These are client-side mods that turn up in exported packs all the time. That same pack had eleven of them:
- Performance and rendering: Sodium, Iris (shaders), ImmediatelyFast, Entity Culling
- Visuals: Entity Model Features, Entity Texture Features, LambDynamicLights
- Controls and quality of life: Zoomify, Mouse Tweaks, Highlighter, CutThrough
Depending on the loader and version, some of these just do nothing on a server instead of crashing it, but none of them belong there.
How to check any mod
- Look the mod up on Modrinth. Each project lists whether it's needed on the client, the server, or both. "Server side: unsupported" means take it off the server.
- Don't trust the pack's own labels. A
.mrpackcan mark each file as client-only, but packs exported from a launcher often mark every mod as needed everywhere. - Read the first error in the log, not the last. It usually names the mod jar that caused it.
The fix
Stop the server and move the client-only jars out of the server's mods folder into a folder of their own. Don't delete them: your players still need them in their own game. Start the server again.
My server panel now does this automatically. After a modpack installs, it checks every mod against Modrinth and sets aside anything marked client-only before the first start.
If it still won't start
- Wrong Java version. Minecraft 1.20.5 to 1.21.x needs Java 21. The 26.x versions need Java 25.
- A mod for a different version or loader. A Fabric mod in a NeoForge pack, or a 1.21 mod on 26.2. The file name usually gives it away.
- A missing dependency. The log names the mod it wants and the version range. Install that and try again.
- Not enough memory. Big packs want 6 to 8 GB. "OutOfMemoryError" in the log means give it more.
I set up and look after modded Minecraft servers. If yours won't start, send me the log and I'll tell you what's wrong.