Wispdock’s control panel isn’t built yet. Where a step says “in your control panel”, use whatever your host gives you for files, the console and start/stop. The Minecraft side works the same everywhere.
Find the server pack
A server pack is the modpack with the client-only parts taken out and a way to start it on a server. If the author publishes one, use it. It saves you most of this guide.
CurseForge
Open the pack on curseforge.com, go to the Files tab and open the exact version you want. A server pack is uploaded as a separate file attached to that version, usually under Additional Files. Download the one that matches the version your players will install. A server pack for 2.3 won’t accept clients on 2.4.
What’s inside varies from pack to pack. Expect a mods folder, a config folder, sometimes defaultconfigs or kubejs, and a start script with a name like startserver.sh or run.sh. Some packs ship with the loader already installed, some include the loader’s installer jar, and some start scripts download the loader on their first run. If there’s a README in the zip, read it before you upload anything.
Modrinth
Modrinth packs are .mrpack files. An .mrpack is a zip with a modrinth.index.json inside. That file lists every mod with its download link and whether it’s needed on the client, the server or both. Config files and other extras sit in an overrides folder, with optional client-overrides and server-overrides next to it.
Some authors also upload a ready-made server pack, so check the pack’s versions page first. If there isn’t one, let a tool read the index for you. mrpack-install, an open-source tool on GitHub, downloads the loader and the server-side mods into a folder you choose. Doing it by hand means reading the index and downloading each file yourself, which is fine for 20 mods and miserable for 200.
No server pack at all
You can build one from the client files. Install the pack in a launcher, then copy the instance’s mods and config folders to the server, plus kubejs, defaultconfigs or scripts if the pack has them. Install the same loader version on the server (see the Fabric server guide or the Forge and NeoForge guide), then remove the client-only mods as described below. It works. Expect a few rounds of crash, read the log, remove a mod.
Write down the versions
Before you upload anything, note these four things from the pack page or the pack’s manifest:
- The pack version, for example 2.4.1, and not just the pack name.
- The Minecraft version.
- The loader and its version: Forge, NeoForge, Fabric or Quilt.
- The Java version the server needs.
CurseForge shows the Minecraft version and loader on each file. For the exact loader build, look inside the pack: a CurseForge export has a manifest.json with a modLoaders entry, and a Modrinth modrinth.index.json has a dependencies block with keys such as minecraft, forge, neoforge or fabric-loader. Run that loader version on the server. A newer loader build often works, an older one often doesn’t.
The Java version follows the Minecraft version:
| Minecraft | Java |
|---|---|
| 1.20.5 and newer | 21 |
| 1.18 to 1.20.4 | 17 |
| 1.17.x | 16 or 17 |
| 1.16.5 and older | 8, for most packs |
Newer releases can raise the minimum, so check the loader’s download page if the server refuses to start. A wrong Java version usually shows up as UnsupportedClassVersionError in the first lines of the log.
Size the memory
Modpacks use far more memory than vanilla, and the amount depends on the pack more than on how many people play. Check the pack page first: many authors state a recommended amount for the server. As a rough starting point, small and mid-sized packs usually run in 6 to 8 GB, and large packs with a few hundred mods often want 10 GB or more.
Set the maximum heap with -Xmx, for example -Xmx8G. Where it goes depends on how the pack starts: in user_jvm_args.txt for modern Forge and NeoForge, on the java line for a jar-based start, or in whichever file the pack’s README names. Leave some memory free on top of that, because Java uses more than the heap. How much RAM a Minecraft server needs goes through sizing and startup flags in more detail.
Upload and install
If the server already has a world you want to keep, take a backup. Then stop the server.
Upload the server pack and unpack it into the server folder, so that
mods,configand the start files sit at the top level and not inside another folder. In your control panel’s file manager, themodsfolder should be visible right next toserver.propertiesonce the server has run once.If the pack came with a Forge or NeoForge installer and no loader, run the installer in server mode. It downloads the libraries and writes
run.sh,run.batanduser_jvm_args.txt:java -jar neoforge-<version>-installer.jar --installServerIn your control panel, set the Java version and memory, and point the startup at the pack’s start script or loader jar.
Accept the Minecraft EULA by setting
eula=trueineula.txt. Until you do, the server stops right after its first start.Start the server and watch the console. A large pack can take several minutes the first time. Wait for the
Doneline, then join yourself before you tell everyone.
Remove client-only mods
Mods that only change what you see or hear can crash a dedicated server, because they reach for game code that doesn’t exist there. The usual suspects:
- Rendering mods: Sodium, Embeddium, Rubidium, OptiFine.
- Shader loaders: Iris, Oculus.
- Many minimap, HUD, menu and sound mods. Mod Menu on Fabric is client-only too.
On Forge and NeoForge, the tell is a line like Attempted to load class net/minecraft/client/… for invalid dist DEDICATED_SERVER. On Fabric it’s usually a NoClassDefFoundError or ClassNotFoundException during startup. The crash report in crash-reports and the end of logs/latest.log usually name the mod; reading logs and crash reports explains how to find the line that matters.
Remove the named mod from the server’s mods folder, start again, and repeat until it boots. Remove one mod at a time, and only the one the log names: a library mod that looks unfamiliar is often something ten other mods depend on. Keep a list of what you removed, because you’ll do it again after every pack update.
Only remove these from the server. Players keep them in their own game.
Get players on the same pack
The server can’t send mods to players. Everyone installs the same pack version in the CurseForge app, Modrinth App, Prism Launcher or ATLauncher, and plays from that profile. Post the pack name and the exact version number in your group chat, and ask people to pick that version instead of “latest”.
A player whose mods differ from the server’s gets disconnected, often with a list of missing or mismatched mods. That list is the fix: it says which mod or version to change.
Players can add client-side extras on their own, such as shaders, a minimap or a different zoom key. Anything that adds blocks, items or mobs has to be on the server too, and on every other player’s game. Then share the address the usual way; connecting to your server covers that part.
Update the pack
- Back up the whole server first, world included. The backups guide covers how to take one and restore it.
- Read the changelog. If a mod was dropped from the pack, its blocks disappear from the world, along with anything stored in them.
- Delete the old
modsfolder and upload the new one rather than copying over it, or old jars stay behind and crash the server. Updateconfigthe same way, then redo any changes you made to it. Keep the world folder. - Remove the client-only mods again from your list.
- Tell players to update to the same version before they join.
If the update also moves the pack to a new Minecraft version, read the changelog twice. Some authors say an old world won’t carry over. Worlds only go forward, so take a backup before you update.
Frequently asked questions
Can I run a modpack on a Paper server?
No. Paper loads plugins, and modpacks need a mod loader: Forge, NeoForge, Fabric or Quilt. Hybrid servers that load both exist, but many packs break on them, so run the loader the pack was made for.
Why does my server crash with “invalid dist DEDICATED_SERVER”?
A mod that only works in the game client is in the server’s mods folder. The crash report names the class or mod involved. Remove that mod from the server and start again. Players keep it in their own game.
Do players have to install the modpack themselves?
Yes. A Minecraft server can’t send mods to players. Everyone installs the same pack version in the CurseForge app, Modrinth App, Prism Launcher or ATLauncher and joins from that profile.
How much RAM does a modpack server need?
It depends on the pack more than on the player count. Small and mid-sized packs usually run in 6 to 8 GB, and large packs often want 10 GB or more. Check the pack page first, since many authors state a recommended amount.
Can I add my own mods to a modpack server?
Yes. Mods that add blocks, items or mobs have to be added to every player’s game as well. Server-only mods, such as admin or performance mods, only go on the server. Keep a list, because a pack update replaces the mods folder.
Wispdock’s draft plans have 8 GB and 12 GB sizes for Java modpacks, with the pack install done by us. They’re on the pricing page; prices are drafts and ordering isn’t open yet.
Still stuck? Send us the details and your latest.log.