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.

Minecraft mod loaders for servers
LoaderWhat it isServer setup
FabricA lightweight loader with many performance and small quality-of-life mods. Most Fabric mods also need Fabric API.One launcher .jar from fabricmc.net
NeoForgeA 2023 fork of Forge, used by many large content mods and modpacks on recent versions.Installer, then run.bat or run.sh
ForgeThe 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

  1. 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.

  2. 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 creating eula.txt.

  3. Accept the EULA and start again

    Set eula=true in eula.txt and run the same command. The world generates. If there is no mods folder yet, create one.

  4. Add Fabric API and your mods

    Stop the server, put Fabric API and each mod's .jar into mods, 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

  1. Download the installer

    Get the installer for your Minecraft version from neoforged.net or files.minecraftforge.net. On Forge's site, choose Installer.

  2. Install the server

    In an empty folder, run java -jar followed 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.

  3. Set the memory

    Open user_jvm_args.txt and add a line such as -Xmx6G. Memory and other Java options go in this file, not in run.bat or run.sh.

  4. Start it and accept the EULA

    Run run.bat on Windows or ./run.sh on macOS and Linux. It stops on the first run: set eula=true in eula.txt, then run it again.

  5. Add your mods

    A mods folder appears after the first start. Stop the server, copy the mod .jar files 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.

  1. 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.

  2. Unzip it into an empty folder

    A server pack holds the pack's mods and config folders, and often a start script. Follow any readme inside, accept the EULA, and start it.

  3. No server pack? Build one

    Install the pack's loader as a server (above), install the pack in your launcher, and copy its mods, config and 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.

  4. 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.