How to Install Forge Mods on a Minecraft Server

Install Forge mods on a server: run the Forge server for your Minecraft version, put jars in mods, remove client only mods, and match versions with players.

Updated Oct 3, 2026 · 6 min read

On this page

To install Forge mods on a Minecraft server, run the Forge server for the exact Minecraft version your mods need (for example 1.20.1 with Forge 47.4.10), then put each mod's .jar in the server's mods/ folder and restart. Leave out client only mods such as minimaps, shaders and Optifine, because Forge does not skip them and they crash the server. Every player needs Forge and the same content mods, in the same versions, on their own game.

What you are working with

Piece What it is Where it goes
Forge installer Builds the server from files.minecraftforge.net with --installServer Run once, then delete
libraries/ plus unix_args.txt or a -shim.jar The installed Forge server (the start file depends on the version) Server root
run.sh, user_jvm_args.txt Start script and memory settings when you self host Server root
Mod .jar files The mods mods/
config/ Common mod settings Server root
world/serverconfig/ Per world server settings for many mods Inside the world folder
defaultconfigs/ Server configs copied into new worlds Server root, used by modpacks

Forge mods are not NeoForge mods (except on 1.20.1), not Fabric mods and not Paper plugins. A Fabric jar in a Forge mods folder stops the server with an error.

A modded Minecraft world running on a Forge server with the same mods on every player's client

Which Forge version do I need?

Pick the Minecraft version your most important mods support, then the Forge build for it:

Minecraft Forge (recommended or latest, October 2026) Java
1.20.1 47.4.10 recommended 17
1.21.1 52.1.0 recommended 21
26.1.2 64.1.0 recommended 25
26.3 66.0.9 latest 25

Most big Forge modpacks and mods still target 1.20.1. For 1.21.1 and newer, many mod authors moved to NeoForge, so check each mod page before choosing Forge.

Before you start

  • Collect the mod list first. Every jar must say Forge and your exact Minecraft version on its download page.
  • Back up. Content mods change the world, and removing one later can break chunks.
  • Separate server and client mods. Read on, this is the step that decides whether the server starts.

Step 1: Install the Forge server

Self hosting, download the installer for your version and run it in an empty folder:

java -jar forge-1.20.1-47.4.10-installer.jar --installServer

It creates libraries/, a run.sh or run.bat start script and user_jvm_args.txt. Accept eula.txt and start the server once with ./run.sh so it creates mods/, config/ and the world. An existing vanilla world of the same version loads fine on Forge.

Step 2: Sort your mods into server and client

Kind of mod Examples Server Players
Content: blocks, items, mobs, dimensions Create, Mekanism, Twilight Forest Yes Yes, same version
Libraries the mods depend on Architectury, Curios, GeckoLib Yes, when a mod needs them Yes
Server tools and performance ModernFix, FerriteCore, Chunky Yes Optional
Client visuals and UI Optifine, Oculus, Embeddium, Xaero's Minimap, Controlling, zoom mods No Their choice

The mod's page usually says "client side only". If it does not, look at what it does: anything that only changes rendering, menus, keybinds or the HUD stays off the server.

Step 3: Upload the mods

  1. Stop the server.
  2. Upload the jars, including every library they list as a dependency, into mods/.
  3. Start the server and watch the log. Forge lists missing dependencies by name, with the version range it wants.

Add mods in small batches on a new server. When something breaks, you know which batch did it.

The gotcha: client only mods crash a Forge server

Fabric quietly skips mods marked client only. Forge, in practice, does not: a client mod that touches rendering code is loaded on the server and crashes it during startup. The crash report says something like:

Attempted to load class net/minecraft/client/... for invalid dist DEDICATED_SERVER

That line names a class, and the stack trace below it names the mod. Remove that jar from the server's mods/ (players keep it) and start again. When you copy a whole client mods folder from a launcher like CurseForge, this happens almost every time, because client packs are full of minimaps, shader loaders and menu tweaks. Copy the pack's server files instead when the author provides them.

A second trap is memory on hosted servers. Self hosted Forge reads the heap size from -Xmx in user_jvm_args.txt. On GamezServers the server starts Forge with its own launch command and sizes memory from your plan, so editing user_jvm_args.txt changes nothing. If a pack runs out of memory, upgrade the plan instead.

Step 4: Give players the same setup

Players need, on their own PC:

  1. Forge for the same Minecraft version, from the Forge installer or a launcher like CurseForge, Prism or the Modrinth App.
  2. Every content mod and library from the server, same versions.
  3. Any client only mods they like on top.

The clean way is a modpack everyone installs. A player missing a mod is disconnected with a "mismatched mods" or registry message naming it.

Common problems

  • "invalid dist DEDICATED_SERVER": a client only mod is on the server. Remove it.
  • "Mod X requires Y" or "Missing or unsupported mandatory dependencies": add the library named, in the version range shown.
  • Crash right at start with a Java class version error: wrong Java. 1.20.1 wants Java 17, 1.21.1 wants 21, 26.x wants 25.
  • A config change does nothing: many mods read server settings from world/serverconfig/, not config/. Edit the file in the world folder with the server stopped.
  • Fabric or NeoForge jar refused: get the Forge build of that mod, or move the server to the loader the mod supports.
  • Lag after adding big mods: see how much RAM a Minecraft server needs and pregenerate the world.

Forge mods on GamezServers

On a Minecraft server from GamezServers, choose Forge in Settings, set the Minecraft version, pick a recommended or latest build (or type an exact one like 1.20.1-47.4.10), and press Update game. Forge is installed for you and your world stays. Upload mods to mods/ with the file manager or SFTP, and press Backup first. New servers run Java 25, so if a 1.20.1 pack needs Java 17, ask support to switch it. For a whole pack, see how to make a modded server from a CurseForge modpack.

FAQ

Do Forge mods go on the server or the client?

Content mods go on both, in the same versions. Client only mods like minimaps and shaders go on the client only.

Can I use Forge mods on a NeoForge server?

Only on Minecraft 1.20.1, where NeoForge still loads most Forge mods. From 1.20.2 on, they are separate.

Why does my Forge server crash with "invalid dist DEDICATED_SERVER"?

A client only mod is in the server's mods folder. Remove the mod named in the crash report.

How much RAM does a Forge server need?

Light mod lists run on 4 GB. Big packs like All the Mods want 8 GB or more.

Skip the setup. Your own Minecraft server.

$2.49USD first month

Then $4.99/mo. Just trying it? $1.25 for 3 days

Keep reading