Halloween sale 15% off for life code HALLOWEEN15

How to Install Forge Mods on Your Minecraft Server

Your Senior · · 11 min read

Installing Forge mods on a server is not hard, but it is unforgiving. One mod built for the wrong Minecraft version, one missing library, or one mod that only belongs in the game client, and the server refuses to start. The good news is that every one of those failures leaves a clear message, and once you know the handful of rules behind them you can add mods with confidence.

This is the long version. If you just want the six-step summary, it is on our modded Minecraft hosting page. Here we go through why each step matters, what goes wrong, and how to fix it.

How Forge mods work on a server

Forge is a mod loader: a modified version of Minecraft that loads extra code from the mods folder when the game starts. A server runs its own copy of Forge, and every player runs Forge too, in their launcher.

Mods fall into three groups, and telling them apart is most of the job:

  • Both sides. Anything that adds blocks, items, mobs, machines or dimensions (Create, Mekanism, Applied Energistics 2, Twilight Forest). These go on the server and on every player's game, at the same version.
  • Server only. A few mods only change server behaviour, such as backup, chunk pre-generation or permission mods. Players don't need them.
  • Client only. Minimaps, shader loaders, zoom mods, HUD tweaks, sound and rendering mods. These run in the player's game and have no place on a server. Many of them crash a dedicated server outright, because they try to load code that only exists in the game client.

Before you start: version, Java and memory

Pick one Minecraft version and stick to it

Mods are built for a specific Minecraft version and a specific loader. A Forge mod for 1.20.1 will not load on 1.21.1, and a Fabric mod will not load on Forge at all. Before anything else, decide on the version, and choose the one where the mods you care about most are available. Each mod's download page lists the versions and loaders it supports.

For a lot of popular content mods, 1.20.1 is still the version with the widest choice on Forge. Newer versions have more mods on NeoForge, which split from Forge after 1.20.1. If you're not sure which loader you want, our Fabric vs Forge comparison walks through the differences.

Java follows the Minecraft version

Minecraft versionJava version
1.16.5 and older (including 1.12.2 and 1.7.10)Java 8
1.17.xJava 16
1.18 to 1.20.4Java 17
1.20.5 to 1.21.xJava 21
26.1 and newerJava 25

Those are the versions Mojang ships with each release. Older Forge versions are fussy about running on a newer Java, while many modern packs run happily on one newer than the minimum. On a CloudNord server you don't need to set this yourself: the server's Java is chosen from its Minecraft version whenever you order, switch version or install a modpack. If a server ever starts on a Java that is too old for its Minecraft version, the console prints a warning saying which Java it needs.

Memory grows with the mod list

Vanilla Minecraft is happy on a few gigabytes. Mods change that, because every mod adds code, textures and data that stay in memory. As a rough guide, a handful of small mods fits on 4 to 6 GB, a light or mid-size modpack wants around 8 GB, and big packs with hundreds of mods want 10 GB or more. If a modpack author lists a recommended server RAM, start there. The modded hosting page has a sizing table with examples.

Running short on memory looks like long freezes, players timing out, or the server stopping right after it finishes loading. If that happens, more memory is the fix, not more mods removed at random.

Step 1: Get Forge running on the server

On a new CloudNord server, choose Forge under Server software when you order, along with the Minecraft version. The server comes up with Forge already installed and an empty mods folder.

On an existing server, open the Change Runtime page, pick Forge and the version you want. Take a backup first from the User Backups page, because a world built with one set of mods doesn't always open cleanly with another. You also can't switch a world to an older Minecraft version than it was last played on, as that damages worlds.

If you are setting Forge up somewhere else, the process is to download the installer for your Minecraft version from the official Forge site, run it with java -jar forge-installer.jar --installServer in an empty folder, and start the server with the run.sh or run.bat it creates. On Minecraft 1.17 and newer, memory settings go in user_jvm_args.txt rather than on the command line. Run it once, accept the EULA in eula.txt, and it generates the mods and config folders.

Step 2: Collect the right mod files

Download mods from CurseForge or Modrinth, which are the two sites nearly every mod author publishes on. For each mod, open its files list and pick the file marked for your Minecraft version and for Forge. Many mods publish separate Forge, NeoForge and Fabric files with almost identical names, so read the loader label, not just the version number.

Then check dependencies. Lots of mods need a library mod to run: Architectury, Cloth Config, GeckoLib, Curios, Balm and many more. CurseForge lists these under "Relations" as required dependencies, and Modrinth lists them under "Dependencies". Download each required one for the same version and loader.

The Mods tab on your CloudNord server does this checking for you. It searches Modrinth for mods that match your server's loader and Minecraft version, and when you click Install it adds the required dependencies in the same go. It also shows which mods are already installed and when an update is available.

Step 3: Leave client-only mods out

This is the step that catches most people, especially anyone copying their own mods folder from their PC to the server. Typical client-only mods include:

  • Shader and rendering mods such as Oculus, Embeddium, Rubidium and OptiFine
  • Minimaps and world maps such as Xaero's Minimap (JourneyMap has a server part, but most of it runs in the client)
  • Zoom, HUD, inventory-sorting and tooltip mods, Mouse Tweaks, and sound or music mods
  • Menu and screen mods, such as custom main menus or loading screens

A mod's page usually says "client only", "client side" or "not required on server". When it doesn't, the crash in step 5 tells you. The Mods tab marks client-only mods with a Client only label, so you can skip them. When you install a modpack, the installer also sets aside mods that declare themselves client-only in older packs, moving them into a mods-clientonly-disabled folder instead of deleting them.

Step 4: Put the mods on the server

  1. Stop the server. Changing mods while it runs does nothing until a restart, and it is easy to lose track of what is loaded.
  2. Open the Files tab and go into the mods folder.
  3. Drag your .jar files onto the page to upload them. Leave the files as .jar: don't unzip them.
  4. For dozens of mods at once, connect over SFTP instead. The SFTP page shows your host, port and user name.

Step 5: Start the server and read the console

Start the server and keep the Console open. A Forge server takes longer to start than a vanilla one, often a minute or two with a big mod list, and it prints a lot. When it finishes you'll see the familiar Done line.

If it stops instead, scroll up to the first error. These are the ones you'll meet most often:

  • "Missing or unsupported mandatory dependencies": a mod needs a library you didn't add, or needs a newer version of it. The message names both mods and the versions it expects.
  • "Attempted to load class ... for invalid dist DEDICATED_SERVER": a client-only mod is on the server. The mod named in the stack trace goes back into your client folder.
  • A mod "requires Minecraft 1.x" or "Forge 47.x or above": the file is for a different version, or your Forge build is too old for it.
  • "Found duplicate mods": two versions of the same mod are in the folder. Delete the older one.

A full crash report is also saved in the crash-reports folder, and the complete log is in logs/latest.log, both in the Files tab. The section near the top that lists loaded mods is the quickest way to confirm what the server actually picked up.

When there are many mods and the cause isn't obvious, take out half of them, start again, and keep halving until you find the one that breaks it. Slow, but it always works.

Step 6: Configure your mods

Most Forge mods create their settings files on the first start. They live in a few places:

  • config/: settings that apply to the whole server.
  • world/serverconfig/: per-world settings on newer Forge versions. These are created when a world is generated.
  • defaultconfigs/: anything you put here is copied into a new world's serverconfig folder when that world is first created. Handy if you plan to reset the world.

Edit these from the Files tab and restart the server for changes to take effect.

Step 7: Get your players on the same mods

Every player needs the same Minecraft version, the same Forge version (or a close one), and the same "both sides" mods at the same versions. If anything differs, they are turned away at the join screen with a list of mismatched mods.

The cleanest way is a shared modpack. In the CurseForge app or a launcher such as Prism Launcher, make a profile with the server's mods (plus any client-only mods you like), then export it and send the file to your players. They import it once and they are set up. Telling players to copy your mods folder works too, but someone always ends up with an old file.

The shortcut: install a whole modpack

If what you want is a known pack such as All the Mods, Create-based packs or a quest pack, you don't need to collect mods at all. The Modpacks tab searches CurseForge, Modrinth, FTB and other modpack platforms, and installs the server side of a pack, including the right Forge version, in one go. Players install the same pack at the same version from their launcher, and everything matches.

Updating mods without breaking your world

  • Take a backup from User Backups before every update. Automatic system backups exist too, but your own backup is the one you can roll back to in a minute.
  • Update a few mods at a time, not all forty, so a problem has an obvious cause.
  • Read the changelog of big content mods. Removing a mod, or an update that removes blocks, deletes those blocks from the world.
  • Give your players the updated files at the same time, or they won't be able to join.

Frequently asked questions

Can I use Forge mods on a Fabric or Paper server?

No. Forge mods need a Forge server. Fabric mods need Fabric, and Paper runs plugins, not mods. Hybrid server software such as Arclight or Mohist can run Forge mods and Bukkit plugins together, at the cost of some compatibility.

Do Forge mods work on NeoForge?

For Minecraft 1.20.1, most Forge mods also run on NeoForge. From 1.20.2 onwards the two are separate, so you need the NeoForge file of a mod for a NeoForge server.

Do players need the same mods as the server?

For any mod that adds content, yes, at the same version. Server-only mods and the player's own client-only mods are the exceptions.

Why does my server crash as soon as I add a mod?

Nearly always one of three things: a client-only mod, a missing dependency, or a file for the wrong Minecraft version or loader. The first error in the console names the mod.

Ready to build your modded server?

Forge rewards a careful setup: one version, the right files, no client-only mods, and the same list for everyone. If you want a server that handles the Java version, modpack installs and mod dependencies for you, have a look at our modded Minecraft server hosting, or see every plan on the Minecraft hosting page. Once your server is up, our guide to configuring LuckPerms covers ranks and permissions, which work on Forge too.

Tagged minecraft forge mods modded
Ready to play?

Spin up a server in under a minute, on hardware built for it.

See plans and pricing