How to run a Forge or NeoForge modpack on your server

Running a modpack is the biggest step up in difficulty from a plain Minecraft server. Hundreds of mods have to load together, the first start can take several minutes, and a single wrong file stops everything. The good news is that modpack authors do most of the hard work for you, if you use the right files. This guide shows the safe order.

Get the server files, not the client pack

Almost every modpack offers two downloads: the one you install in a launcher to play, and a server pack. They are different. The client pack contains mods that only make sense on a player's computer, such as shaders and minimaps, and starting a server from it commonly crashes with errors about missing client classes.

  1. Open the modpack's page on CurseForge or Modrinth.
  2. Look for a server files or server pack download, usually under the file's extra options.
  3. Download the one for the same pack version your players will use.

If the author does not publish a server pack, ask in their community before attempting to build one yourself. It is slow work and easy to get wrong.

Check the requirements

The pack's page names three things you need to match:

  • The Minecraft version, which fixes which Java you need. Minecraft 1.20.5 and newer needs Java 21, and 1.18 to 1.20.4 needs Java 17, while older versions generally use Java 8 or 16.
  • The mod loader, either Forge or NeoForge. They are not interchangeable.
  • Recommended memory. Packs vary hugely. Small ones run on around 4 GB, and large ones ask for 8 GB or more. Follow the author's number, then adjust by watching real use. What the CPU, memory and disk numbers on your server mean helps with that.

Upload and extract

  1. Stop the server and take a backup if it already has a world.
  2. Upload the server pack zip to the server's main folder. Large files upload faster over SFTP.
  3. Extract it with the file manager's unarchive option, so the files sit in the main folder and not in a nested folder. If you see the server jar inside a subfolder, move everything up a level.
  4. Make sure you set the correct Java version in the server's startup settings.

The first start

Start the server and be patient. The first launch generates the world and builds caches, and a big pack can need five minutes or more. That is normal as long as the console keeps printing progress.

Newer Forge and NeoForge versions start through a script and read their memory settings from a file called user_jvm_args.txt, not from a long command line. If your host's panel manages memory for you, leave this alone. If you set it yourself, keep the heap a little below the total memory your plan gives you so Java has room for its own overhead.

On your first launch you may be asked to agree to Mojang's terms. The server creates eula.txt, and you need to set eula=true before it will run.

Let players join

Players need the same pack at the same version, installed through the launcher the author recommends. If you update the server, tell players to update too. A version mismatch gives a "mod rejections" or "incompatible mod list" message on the join screen.

Common problems

SymptomLikely causeWhat to do
Crash naming a client classA client-only mod got onto the serverUse the server pack, or remove that mod
Runs out of memory during startupPlan too small for the packCompare with the author's recommendation
"Mod rejections" when joiningPlayer and server versions differMatch the pack version exactly
Server never finishes loadingWrong Java versionUse the version the pack requires
Crashes after adding a modIncompatibility with the packRemove the added mod and retest

Avoid adding extra mods to a pack unless you are ready to troubleshoot. Packs are tested as a set, and every addition is something the author never checked.

For crash reading, start with My server crashes or won't start, and if memory is the cause, Minecraft server out of memory explains how to tell.


Still stuck? Open a ticket on Discord - run /ticket in any channel, pick a department, and include your Server ID or Invoice ID so we can jump straight in.