How to Set Up a Modded Minecraft Server

Darius
4.9

481+ Satisfied Customers

Running a modded Minecraft server has a few more moving parts than vanilla - and most of the frustration people run into comes from skipping the setup fundamentals. The most common one we see in support tickets: someone gets everything running, invites their friends, and nobody can connect because the mods on the server don’t match the mods on the client. This guide covers the decisions you need to make upfront so you’re not untangling that mess later.

Modpacks vs. Building Your Own Mod List

Before anything else, figure out which path you’re on.

If you want a curated experience - something like RLCraft, Better Minecraft, All the Mods, or Vault Hunters - you’re installing a published modpack. This is the easier route: the modloader, Minecraft version, and mod list are all predetermined, and your players install the same pack through their launcher. Most of the heavy lifting is done for you.

If you’re assembling your own mod list from scratch, you’re doing things manually. You’ll install a modloader, source individual mod files, and manage the client/server sync yourself. It’s more work, but it gives you full control over what’s in the pack.

The rest of this guide covers both paths, but if you’re new to hosting modded, the published modpack route is where to start.

Choosing a Modloader

Mods don’t run on vanilla Minecraft. You need a modloader installed on your server, and it has to match the one your players are using on their client.

There are two main options:

Forge and NeoForge have the largest mod ecosystem and the longest history. The majority of popular modpacks - RLCraft, All the Mods, FTB packs, Vault Hunters - are Forge or NeoForge. If you’re installing a published modpack, there’s a good chance it uses one of these. NeoForge is effectively a continuation of the Forge project that emerged around 1.20.1; for the purposes of choosing a loader, treat them as the same family.

Fabric is lighter and updates to new Minecraft versions faster than Forge typically does. It’s popular for performance mods (Sodium, Lithium) and has grown significantly as a content mod platform on newer versions. If the mod you want is Fabric-only, that decision is made for you.

The critical rule either way: your modloader, its version, and your Minecraft version must all match between the server and every client connecting to it. A server running Forge 1.20.1 and a client running Fabric 1.20.1 won’t connect. A server on Forge 1.20.1 and a client on Forge 1.19.2 won’t connect. The whole stack has to line up.

Picking a Minecraft Version

This trips people up. You don’t just pick “the latest version” - you pick the version where the mods you want actually exist.

Mods cluster heavily around certain releases. At this point, 1.20.1 has an enormous Forge/NeoForge ecosystem and is where most major modpacks live. Newer versions like 1.21.x are growing fast, especially on Fabric. Legacy versions like 1.12.2 still have active packs (RLCraft is the most prominent example) that haven’t been updated and likely never will be.

If you’re installing a published modpack, the version is already chosen - don’t change it. Updating a modpack to a newer Minecraft version isn’t something you can do manually without potentially breaking half the mods in it.

If you’re building a custom list, check that the mods you want actually have releases for your target version before committing to it. We’ve seen plenty of tickets from people who started on the latest version and then couldn’t find half the mods they wanted.

The Client/Server Mod Split

This is the part most guides skip, and it’s where most of the confusion comes from.

Mods fall into three categories:

  • Client-only - these run on the player’s side and the server doesn’t need them. Shaders, minimaps, HUD mods, and most visual/audio tweaks fall here. Uploading these to the server is harmless in some cases, but in others it’ll crash the server on startup.
  • Server-only - the server runs them and clients don’t need them installed. Performance mods like Lithium work this way.
  • Both - these need to be installed on the server and on every client connecting to it. Content mods that add new items, blocks, dimensions, or entities almost always fall here.

When you upload a client-only mod to your server, you’ll sometimes get a crash that looks like this:

Attempted to load class [mod class path] for invalid dist DEDICATED_SERVER

That error is the server telling you it found code that only exists on the client side. The fix is straightforward: remove that mod from the server’s mods/ folder.

The other common error is Incomplete set of tags. This shows up when a mod is installed on the server but missing from a connecting client, or vice versa - or when the versions don’t match. The important distinction here is that “mod version” and “Minecraft version” are two separate things. A mod can have multiple releases for the same Minecraft version, and mismatching those will trigger this error even if both sides are on the same Minecraft version.

Client-only mods will crash your server

Before uploading your client mod folder to the server, go through it and remove anything marked as client-only on its CurseForge or Modrinth page. When in doubt, the mod page will usually list supported environments. If it only lists “Client,” leave it off the server.

The safest mental model: assume every mod needs to be on both sides unless the mod page says otherwise.

The Easy Path: Installing a Published Modpack

If you’re running a published modpack, the Modpack Manager in the WinterNode control panel is the fastest way to get going. It pulls directly from CurseForge, so you can search and install thousands of packs in a few clicks - RLCraft, Better Minecraft, All the Mods 9, Vault Hunters, FTB packs, and most anything else you’d want to run.

Once you’ve found your pack, click Install and choose Format Server for a fresh start.

Format Server deletes all server data

Take a backup before using Format Server. It wipes everything - worlds, configs, existing mods. If you’re switching packs on an existing server, back up anything you want to keep first.

Your players install the same modpack on their end through whatever launcher they use - CurseForge, Prism Launcher, or the FTB App depending on the pack. The version and modloader matching is handled automatically as long as everyone is on the same modpack version.

For packs that need a few extra steps (some FTB packs, packs that don’t bundle their own Forge install), our Modpack Installation guide walks through the specifics.

Going Custom: Manual Mod Setup

If you’re building your own mod list or working from a client pack that doesn’t have a published server version, you’ll do things manually.

Start by installing the right modloader through the Edition Installer in the control panel (ConfigurationAdvancedInstall Different Edition). Make sure the modloader version matches what your players will be running on their end.

Once the modloader is installed, mods go in the mods/ folder. You can upload individual JAR files through the File Manager, or use SFTP if you’re uploading a lot of files at once - SFTP is faster and more reliable for bulk transfers. See our Manual Mod Upload guide for the step-by-step.

If you’re starting from a CurseForge client pack that doesn’t have a server pack, you’ll need to extract the client files, identify and remove any client-only mods, and match the modloader version from the pack’s manifest.json file. The modLoaders entry in that file gives you the exact loader and version string you need. Our Create a Server Pack guide covers this process in full.

How Much RAM Does a Modded Server Need?

More than vanilla, and the range is wide. Here’s a rough guide based on what we see running on our servers:

SetupApproximate RAMWhat this looks like
Vanilla / lightly modded (under 20 mods)2-4 GBA few quality-of-life mods, no new dimensions
Light modpack (20-80 mods)4-6 GBBetterMC and similar packs
Medium modpack (80-200 mods)6-10 GBAll the Mods, RLCraft, Valhelsia
Heavy / kitchen sink (200+ mods)10-16 GBAll the Mods 9, FTB Revelation, large custom packs

The thing that catches people off guard is that RAM usage climbs over time as the world generates. A pack that runs fine on 6GB at day one can start throwing out-of-memory errors after a week of exploration and world loading. If you’re planning for 5+ players on a medium-to-large pack, build in a bit of headroom.

Start with the modpack's recommended specs

Most published modpacks list a recommended server RAM on their CurseForge page. That number is a reasonable floor - it’s what the pack developer tested with. Going under it is a red flag.


If you want to try it out before committing, we offer a 48-hour free trial on Minecraft servers - no credit card required. All our game servers are priced at $1.99/GB of RAM, and we don’t charge extra for CPU usage, storage, or threads. A solid 8GB modded server runs $15.92/month.

Got questions about a specific modpack or running into an issue? Our support team responds to tickets with actual humans, and we’re active on Discord if you’d rather get a quick answer there.

Start your free Minecraft trial →

Frequently Asked Questions

Yes, for mods that run on both sides. Some mods are client-only (shaders, minimap) and shouldn't be uploaded to the server. Others need to be on both. When in doubt, check the mod's CurseForge or Modrinth page.

Forge or NeoForge for large modpacks and the biggest mod selection. Fabric for lightweight setups, performance mods, or newer Minecraft versions where the mod you want is Fabric-only.

It depends on the modpack. Light packs (under 50 mods) run fine on 4-6GB. Medium packs like All the Mods typically need 6-10GB. Large kitchen-sink packs can need 12-16GB or more.

Most popular packs are available through the Modpack Manager on WinterNode, which pulls directly from CurseForge. Some packs require a few extra steps if they don't include a server pack.