A modded server runs a mod loader on top of Minecraft. Every mod that adds blocks, items or mobs has to be on both the server and each player's game, at the same version. Get that right and the rest works like any other server.
Everything from a plain server still applies: Java, the EULA, server.properties and letting friends in. If you have not run a server before, start with how to make a Minecraft server, then come back for the mods.
Mods or plugins: which do you need?
- Plugins run on Paper or Spigot and only change the server. Players join with an ordinary, unmodded game. Use them for land claims, ranks, economies and minigames.
- Mods change the game itself and need a mod loader: Fabric, NeoForge or Forge. Mods that add blocks, items, mobs or dimensions must be installed by every player too.
If plugins cover what you want, you do not need a mod loader: switch to Paper instead. Paper cannot load Fabric, NeoForge or Forge mods, and those loaders do not load Paper plugins.
Choose a mod loader: Fabric, NeoForge or Forge
Each mod is built for one loader and one Minecraft version, so the mods you want decide the loader. A modpack tells you which one it uses.
| Loader | What it is | Server setup |
|---|---|---|
| Fabric | A lightweight loader with many performance and small quality-of-life mods. Most Fabric mods also need Fabric API. | One launcher .jar from fabricmc.net |
| NeoForge | A 2023 fork of Forge, used by many large content mods and modpacks on recent versions. | Installer, then run.bat or run.sh |
| Forge | The original mod loader, behind most older modpacks. | Installer, then run.bat or run.sh on 1.17 and newer |
Server-side and client-side mods
Mod pages say where a mod has to be installed. Modrinth lists it as the mod's environment:
- Client and server: mods that add blocks, items, mobs or dimensions. They go on the server and on every player's game.
- Server-side: performance and admin mods. Only the server needs them, so players can join without them.
- Client-side: shaders, minimaps, HUD tweaks and rendering mods such as Sodium. Leave them off the server; some crash it on startup.
How to make a Fabric server
Download the server launcher
On fabricmc.net/use/server, choose your Minecraft version and download Executable Server (.jar). It is a small launcher that downloads the Minecraft server and Fabric Loader on its first run, so there is no installer to run.
Run it once
Put it in an empty folder and start it with the command shown on that page, for example
java -Xmx4G -jar fabric-server-mc.26.3-loader.0.19.5-launcher.1.1.2.jar nogui. Like the official server, it stops after creatingeula.txt.Accept the EULA and start again
Set
eula=trueineula.txtand run the same command. The world generates. If there is nomodsfolder yet, create one.Add Fabric API and your mods
Stop the server, put Fabric API and each mod's
.jarintomods, and start it again. Every file must be made for Fabric and for your exact Minecraft version.
How to make a NeoForge or Forge server
Download the installer
Get the installer for your Minecraft version from neoforged.net or files.minecraftforge.net. On Forge's site, choose Installer.
Install the server
In an empty folder, run
java -jarfollowed by the installer's file name and--installServer. Forge's installer also opens a window when double-clicked: choose Install server and pick the folder.Set the memory
Open
user_jvm_args.txtand add a line such as-Xmx6G. Memory and other Java options go in this file, not inrun.batorrun.sh.Start it and accept the EULA
Run
run.baton Windows or./run.shon macOS and Linux. It stops on the first run: seteula=trueineula.txt, then run it again.Add your mods
A
modsfolder appears after the first start. Stop the server, copy the mod.jarfiles into it, and start it again.
Run a modpack with its server pack
Players install a modpack with the CurseForge app, the Modrinth App or another launcher. The server needs the matching server files, which many packs publish as a separate server pack.
Find the server pack
On CurseForge, open the modpack's Files tab, pick the version your players use, and look in its additional files for a server pack. On Modrinth, check the pack's description and versions for a server download.
Unzip it into an empty folder
A server pack holds the pack's
modsandconfigfolders, and often a start script. Follow any readme inside, accept the EULA, and start it.No server pack? Build one
Install the pack's loader as a server (above), install the pack in your launcher, and copy its
mods,configand other pack folders to the server. Then remove client-side mods such as shaders, minimaps and HUD mods. Finding them can take some trial and error.Keep the versions in step
Players must use the same pack version as the server. When you update one, update the other.
Many paid hosts can install a modpack from their control panel, which saves most of these steps.
How much RAM a modded server needs
Mods load everything they add when the server starts, before anyone joins, so modded servers need far more memory than vanilla. A light pack with under 50 mods usually runs in 4 to 6 GB; large packs with 200 or more mods often need 8 to 12 GB. Check the pack's own recommendation, then use the server RAM calculator for your player count and view distance.
On Fabric, set memory with -Xmx in the start command; on NeoForge and Forge, in user_jvm_args.txt. If the server lags with memory to spare, the spark profiler mod shows the cause: run /spark profiler, play for a few minutes, then run /spark profiler --stop and open the link it gives you.
Modded server errors and fixes
Attempted to load class net/minecraft/client/… for invalid dist DEDICATED_SERVER
NeoForge or Forge found a client-side mod on the server. The lines under the error in the log or crash report name the mod responsible. Remove it, along with any shader, minimap or HUD mods, from the server's mods folder.
Cannot load class … in environment type SERVER
The Fabric version of the same problem: a mod tried to use client-only code on the server. Remove client-side mods, or update the mod named in the crash report.
Incompatible mods found!
Fabric Loader lists what is missing or conflicting. Usually a mod needs Fabric API or another library, or a file was built for a different Minecraft version or loader. Install what it names, or swap in the right versions.
Could not find or load main class @user_jvm_args.txt
run.bat or run.sh was started with an old Java, or an older Java comes first on your PATH. Install the Java version your Minecraft version needs (Java 25 for 26.1 and newer) and check with java -version.
This server has mods that require Forge to be installed on the client
The player joined with a vanilla game or without the server's loader. They need the same loader and the same mods, which is easiest with the same modpack.
Players are disconnected with a list of mods
Their mods do not match the server's: one is missing, extra or a different version. Compare the list with the server's mods folder, or have everyone reinstall the same modpack version.
java.lang.OutOfMemoryError: Java heap space
The server used all the memory you gave it. Raise -Xmx in the start command or user_jvm_args.txt, if the computer has memory to spare, or lower view-distance.
When nothing points at a culprit, find it by halves: remove half the mods, restart, and keep halving whichever group still breaks. Back up the world before adding, removing or updating mods, because removing a content mod can delete its blocks and items from the world.
Once it runs well, see how other modded servers describe their packs, and add yours to the list so players can find it.
Modded server questions
How do I make a modded Minecraft server?
Pick the loader your mods use, install its server (a launcher jar for Fabric, the installer's server option for NeoForge and Forge), accept the EULA, and put the mods in the server's mods folder. Players install the same loader and mods.
How do I add mods to a Minecraft server?
Stop the server, put each mod's .jar file in the mods folder, and start it again. The server must run a mod loader such as Fabric or NeoForge, and every mod must match its Minecraft version and loader.
Do players need the same mods as the server?
For mods that add content, yes: the same mods at the same versions, on the same loader. Server-side mods such as performance and admin mods are the exception, and players can join without them.
Is Fabric or Forge better for a server?
Neither is better in general. Use the loader your mods or modpack are built for. Fabric is lighter; NeoForge and Forge carry many of the large content mods and packs.
Can I add mods to a Paper server?
No. Paper loads plugins, not Fabric, NeoForge or Forge mods. Use Paper when plugins are enough and players should join with an unmodded game, and a mod loader when you need mods.
Can Bedrock players join a modded Java server?
Only with Geyser, and only if every mod is server-side. Geyser runs on Fabric and NeoForge servers, but mods that players have to install cannot work for Bedrock players.