Installing a modpack manually
For when you have a modpack zip and want it running on the server. This assumes your server is already on Forge, Fabric, or NeoForge as the egg — if it's Vanilla, see the egg-changing guide first because a modpack won't boot on Vanilla.
Step 1: Get the server files, not the client files
Modpack downloads come in two flavors and getting the wrong one is the #1 mistake:
Client pack — for players, distributed via CurseForge/Modrinth launchers. Contains the mods but also client configs, shader settings, and usually won't include the modloader itself.
Server pack — what you upload. On CurseForge look for the "Additional Files" section or a button labeled server files; on Modrinth server packs are a separate tab. If the pack has no server pack, check the comments — usually someone else has made one, or the author has instructions. Some packs just don't support servers.
The server pack zip, when extracted, contains one of:
server.jaror similar + amods/folder (already-installed setup)A Forge/Fabric/NeoForge installer jar +
.bat/.shscripts (newer way)Just a
mods/folder and astart.sh(minimal, assumes you know what you're doing)
Step 2: Match versions
The pack's page lists which Minecraft version it's for. Your server has to match. If your server egg is set to one version and the pack needs another, change the Minecraft version variable in the Startup tab and reinstall the egg (Settings → Reinstall Server, take a backup first), then re-run the forge/fabric installer step that the pack came with.
The Forge/Fabric/NeoForge version matters too and the pack will list it. Trying to run a pack on a slightly different Forge version usually works until it doesn't, mods crash at load with weird missing-method errors. Match it exactly if the pack pins a version.
Step 3: Upload and extract
Stop the server first. Then:
Zip the server pack folder if it isn't already.
Files tab → Upload (or SFTP if it's big).
Click the uploaded archive → Unarchive.
You'll end up with a mods/ folder, some jar(s), and maybe start scripts at the top level alongside your world folder.
Step 4: Make the startup point at the right jar
This depends on how the pack is structured:
Pack shipped a pre-built jar (
server.jar,paper.jar, etc.): Startup tab → Server Jar File variable → set to that filename.Pack is Forge/NeoForge with a plain launcher: Startup variable stays on the modloader's name (like
forge-1.20.1-xx.jaror similar, whatever's in the top folder). Don't rename the jar; the variable reads the filename, not a version number.Pack only has run scripts (
run.sh): you usually can't use those directly in the panel. Tell us on a ticket which pack it is and we'll either find the egg-specific startup or add a startup override.
The EULA file also matters: upload the pack's eula.txt if it came with one, otherwise set eula=true manually.
Step 5: First boot is slow, don't panic
Start the server and watch the console. Modpacks generate configs, scan mods, and do a ton of initialization on first boot. Three to five minutes before the Done line is normal. Some large packs take ten.
Watch for these in the console:
Mod loading has failed+ a list naming a mod: version mismatch. Either the modloader version is off or the mod is for a different MC version. The error usually says which.ClassNotFoundExceptionorNoSuchMethodErrornaming a package: same category, wrong Forge version or a mod with a hard dependency on another that's missing.OOM-killed at
[99%]: pack is too big for the RAM you have. Some packs list minimum RAM on their page — respect it.
Step 6: Clients need the client pack
Players can't join with just vanilla MC. Everyone joining needs the same pack installed on their end. On CurseForge/Modrinth the client pack is a separate download handled by the launcher; on custom packs you'd zip your mods folder up and distribute it. Either way, the versions on the client have to match what's on the server.
If something breaks
The console logs almost always tell you which mod is at fault. Paste the full latest.log to mclo.gs and attach the link to a ticket — don't screenshot fragments. We can usually tell you exactly which mod to pull or which Forge version to switch to from that one file.