Set up a modded server: Forge, Fabric and modpacks
25 August 2026 · updated on 14 October 2026 · 4 min read
A modded server isn't set up like a plugin server. The difference fits in one sentence: with plugins, the player connects with their usual client; with mods, they have to install exactly the same ones as you. Everything else follows from that.
Modded or plugins: what it really changes
A plugin server reaches everyone. A modded server reaches people willing to install a launcher, download two gigabytes and wait. You lose nine visitors out of ten the moment you announce that a modpack is needed.
In exchange, those who stay stay a long time. A player who has installed your pack won't try three other servers that same evening. That's the trade-off: less traffic, much more loyalty. If your goal is to fill a server quickly, go with Paper. If your goal is a community of thirty people playing the same world for six months, go modded.
Choose the mod loader
Four names come up, and the choice is almost always made for you, because the pack decides.
- Forge: the oldest, with the most big content mods. It runs most "kitchen sink" packs and large adventures.
- NeoForge: a continuation of Forge by some of its developers, born in 1.20.1 and incompatible with Forge from 1.20.2 onwards. On recent versions, it's often the one you need, and Forge mods don't install on it as they are.
- Fabric: light, quick to follow new game versions. Performance and technical packs are found there first.
- Quilt: a Fabric derivative, compatible with most of its mods. Marginal on the server side.
Above all, remember they don't mix. A Fabric mod will never run on Forge, and a mod made for 1.20.1 won't run on 1.21. Half the modded servers that refuse to start run into one of these two rules.
Start from an existing modpack
Assembling eighty mods yourself is an excellent way to spend three weeks chasing incompatibilities instead of playing. Modpacks published on CurseForge and Modrinth are already tested, already balanced, and their authors have done the work of matching versions.
Look at three things before choosing one:
- The update date. A pack abandoned for a year will leave you alone with the first bug.
- The recommended memory. It's almost always stated, and almost always optimistic.
- Whether a server pack exists. Some packs are only distributed client-side; you then have to remove by hand the mods that don't belong on a server, which is exactly the kind of work you wanted to avoid.
Install the pack on the server
A server pack comes as an archive containing the mods folder, the configurations and a startup script. The procedure is always the same:
- Unzip the archive into an empty folder.
- Check the expected Java version: Java 8 for 1.12 and 1.16 packs, Java 17 from 1.18 to 1.20.4, Java 21 from 1.20.5. Running one with the other produces an error that doesn't say what it is; this guide teaches you to recognise it.
- Run the provided script, accept the agreement in
eula.txt, run it again. - Let it generate the world without connecting. The first generation of a big pack can take several minutes.
Don't add any mod of your own before the pack starts on its own. Otherwise you'll never know whether the error comes from it or from you.
Memory, and the trap of giving it too much
The starting rule: 6 GB for a light pack, 8 to 10 GB for a big content pack, more only if measurements call for it.
The trap is allocating all the machine's memory. The operating system needs some, and above all Java's garbage collector takes longer to do its job the bigger the heap: beyond 12 GB, you gain micro-freezes rather than smoothness. Always leave 1 to 2 GB to the machine.
Set -Xms and -Xmx to the same value. Letting Java grow its heap along the way only causes stutters at the worst moment.
Distribute the pack to your players
Give a link, a version, and nothing else. "The ATM10 pack, version 1.4.2, on CurseForge" is an instruction people follow; "install ATM10" isn't, because the player will take the latest version and yours is two weeks behind.
The launchers that do this job properly: CurseForge, Modrinth, Prism Launcher, GDLauncher. Recommend one, just one, with screenshots. Every extra launcher you mention multiplies the questions you'll have to handle.
And above all: pin the pack version, on the server side as on the players' side. One automatic update on the player's side and not on yours, and nobody can connect any more.
The errors that come back every week
- "Incompatible FML modded server": the player doesn't have the pack, or not the right version.
- The server starts then stops without a clear message: open
logs/latest.logand look for the firstCaused byline. That's always where the real reason is, not in the hundred lines after it. - The world no longer loads after removing a mod: removing a mod that placed blocks leaves holes. Never remove a content mod mid-world without a backup.
- Regular micro-freezes: it's almost always an entity farm somewhere, not the machine.
Before each pack update
Back up the whole world, not just the world folder. Also copy mods and config: when an update goes wrong, going back means finding exactly the previous state, mods included.
Test on a copy before touching the players' server. An hour of testing beats a weekend of restoring.
Once the server is running, list it here: players looking for a modded server search by modpack, and a listing that clearly states the pack and its version does half the work.