# How to Host a Modded Minecraft Server

> Run a modded Minecraft server that starts first time: the right loader, matching mods, server packs, Java version, RAM and world generation, and the startup errors you'll see when one is wrong.

Source: https://www.beaconhosting.org/knowledgebase/how-to-host-a-modded-minecraft-server
Category: Minecraft
Last updated: 2026-10-22

A modded server works when four things match: the **mod loader**, the **Minecraft version**, the **mods** (and their versions), and the **Java version**. Most startup failures come from one of them being wrong.

## 1. Pick the loader

Mods are built for one loader. You can't mix them: a Forge mod won't load on Fabric.

| Loader | Use it for |
| --- | --- |
| **NeoForge** | Most new large modpacks and content mods on Minecraft 1.20.2 and later |
| **Forge** | Older modpacks, and most packs for 1.20.1 and earlier |
| **Fabric** | Lightweight and performance mods, and many smaller packs |
| **Quilt** | Fabric-compatible; only if a pack asks for it |

A modpack decides this for you: its page says which loader and version it uses. See [Forge vs Fabric vs Quilt](/knowledgebase/forge-vs-fabric-vs-quilt-understanding-the-differences).

## 2. Match the server's mods to the players'

Every player needs the **same mods, at the same versions**, as the server. The exception is mods that only run on one side:

- **Client-only mods** change what one player sees: Sodium, Iris and shaders, OptiFine, many HUD and zoom mods. They must **not** go on the server. A dedicated server can't load them, and often crashes with an error mentioning `net/minecraft/client` or `invalid dist DEDICATED_SERVER`.
- **Server-only mods** run on the server alone, such as performance mods (Lithium, FerriteCore), backup and chunk pre-generation tools. Players don't need them.
- **Everything else** (new blocks, items, mobs, dimensions, machines) is needed on both sides.

When you build your own pack, check each mod's page: Modrinth lists whether a mod is needed on the client, the server, or both.

## 3. Use the server pack

Most modpacks publish a **server pack**: the pack with client-only mods already removed, plus the right config files. Always use it rather than copying your client's `mods` folder.

- **CurseForge:** on the modpack's page, open **Files**, choose the version, and download the **server files** for it.
- **Modrinth:** a `.mrpack` marks each mod as client or server, so installers can leave out client-only mods.

On Beacon, **Package Manager** installs CurseForge and Modrinth modpacks with their server pack, loader and Java version in one step: see [How to Install and Update a Modpack on a Minecraft Server](/knowledgebase/how-to-install-and-update-a-modpack-on-a-minecraft-server). For your own pack, see [How to Install a Custom Modpack on a Minecraft Server](/knowledgebase/how-to-install-a-custom-modpack-on-a-minecraft-server).

## 4. Use the right Java version

| Minecraft version | Java version |
| --- | --- |
| 1.20.5 and newer | Java 21 or newer |
| 1.18 – 1.20.4 | Java 17 |
| 1.17 | Java 16 |
| 1.16.5 and older | Java 8 |

A server on the wrong Java fails before any mod loads, usually with `UnsupportedClassVersionError` or a message naming the Java version it needs. **Package Manager** sets the Java version when it installs a loader or modpack; if you installed the loader by hand, check it matches.

## 5. Give it enough memory

Modded servers need far more RAM than vanilla: about **4–6 GB** for a light pack, **6–8 GB** for a typical one, and **10–12 GB or more** for large packs. Check the modpack's page for its recommendation. See [How Much RAM Does a Modded Minecraft Server Need?](/knowledgebase/modded-minecraft-server-ram).

## 6. Plan the world generation

- **Worldgen mods only affect new chunks.** Adding a biome or structure mod to an existing world leaves the explored area unchanged, with visible seams where old meets new. Add them before you start, or [reset the world](/knowledgebase/how-to-reset-a-world-on-a-minecraft-server).
- **Removing a mod** deletes its blocks and items from the world, and can corrupt chunks that used them. Take a backup first.
- **Pre-generate the world.** Modded terrain is expensive to generate, and players exploring live is the biggest cause of modded lag. Run **Chunky** before players join: see [How to Pre-Generate a World on a Forge or NeoForge Server](/knowledgebase/how-to-pre-generate-a-world-on-a-minecraft-forge-server) or [on a Fabric server](/knowledgebase/how-to-pre-generate-a-world-on-a-minecraft-fabric-server).

## Common startup failures

The first start of a large pack can take several minutes. If it stops instead of reaching `Done`, read the last error in **Console**, or open `logs/latest.log` and the newest file in `crash-reports` in **Files**. See [How to Read Server Logs](/knowledgebase/how-to-read-server-logs-on-a-minecraft-server).

| Error says | What's wrong | Fix |
| --- | --- | --- |
| `UnsupportedClassVersionError`, or a required Java version | Wrong Java for this Minecraft version | Use the Java version in the table above |
| `Missing or unsupported mandatory dependencies`, `requires`, `depends on` | A mod needs another mod, or a different version of one | Install the dependency it names, at the version it asks for |
| `net/minecraft/client`, `invalid dist DEDICATED_SERVER` | A client-only mod is on the server | Remove the mod named in the error from `mods` |
| `Mixin apply failed`, `MixinApplyError` | Two mods clash, or a mod is for another version | Update or remove the mod named in the error |
| `Duplicate mods found` | Two versions of the same mod in `mods` | Keep the newest one |
| `OutOfMemoryError`, `Java heap space` | Not enough memory | See [How to Fix Out of Memory Errors](/knowledgebase/how-to-fix-out-of-memory-errors-on-a-minecraft-server) |
| `Exception in server tick loop` | A mod crashed during play | See [How to Fix "Exception in Server Tick Loop"](/knowledgebase/json-exception-in-server-tick-loop) |
| `Ticking entity`, `Ticking block entity` | One entity or block keeps crashing the server | See [How to Fix Ticking Entity Errors](/knowledgebase/how-to-fix-ticking-entity-issues-on-a-minecraft-forge-server) |
| `Failed to bind to port` | Another server is using the port | Stop it, or change `server-port` |

When players can join but get kicked with **mod mismatch** or **missing mods**, their client doesn't match the server: they need the same pack version.

## Can I use plugins on a modded server?

Not directly. Plugins are written for Paper and Spigot, which Forge, NeoForge and Fabric don't include. Hybrid servers that try to run both are often unstable with large packs. Look for a mod that does the same job (for example **FTB Chunks** for land claims, or **LuckPerms**, which has Forge, NeoForge and Fabric versions). On Fabric, **Cardboard** can run some plugins: see [How to Run Plugins on Fabric With Cardboard](/knowledgebase/how-to-install-cardboard-on-a-minecraft-java-server).

## Before every change

Take a backup before you add, remove or update mods, or update the pack. Mod changes are the most common way a world gets damaged, and a backup is the only way back. See [How to Back Up and Restore a Minecraft World](/knowledgebase/how-to-back-up-and-restore-a-minecraft-world).

