10 min read

How to Install a Modpack to Join a Modded Server

To join a modded server, install its exact modpack from a launcher like CurseForge, Modrinth, or Prism — match the pack build, loader, and Minecraft version.

How to Install a Modpack to Join a Modded Server

To join a modded server, install its exact modpack in one click from a launcher instead of adding mods by hand. The launcher reads the pack's manifest, installs the loader build the pack pins, and pulls every mod and config file at its locked version, so your client ends up identical to what the server runs. That match is the whole point. A modded server runs a specific pack build on a specific loader and Minecraft version, and it only lets in clients that match all of it.

Get the server's exact pack details first

Before you open a launcher, write down four things from the server: the modpack name, the pack build or version number, the Minecraft version, and the loader — Fabric, Forge, NeoForge, or Quilt. You'll find these on the server's website, its Discord, or its listing on a directory like the modded category. If the owner just hands you a .mrpack file or a .zip, that file is the pack and you can skip the search step later.

One thing to get straight now: in this Minecraft line, 26.3 speaks protocol 777, 26.2 speaks 776 and 26.1 speaks 775, and no two of them can talk to each other at all. Modded packs usually trail the newest drop, because every mod in a pack needs its own update for a new version before the pack can move, and mods tend to lag a version behind the game. So don't assume the server is on the newest drop — match whatever it actually runs.

Pick a launcher

Launcher Platforms What it browses
CurseForge App Windows, macOS CurseForge catalog
Modrinth App Windows, macOS, Linux Modrinth catalog
Prism Launcher Windows, macOS, Linux Both, plus FTB / Technic / ATLauncher

Grab the CurseForge App from curseforge.com/download if the pack lives on CurseForge, the Modrinth App from modrinth.com/app for a Modrinth or .mrpack pack, or Prism from prismlauncher.org if you want one launcher that handles either source. Prism is the flexible pick, and it's the only one of the three with a Linux build that reads CurseForge packs. None of this locks you in — the server checks your mods and your protocol, not which launcher produced them, so you and your friends don't all need the same one. If you're weighing the two catalogs against each other, CurseForge vs Modrinth goes deeper.

Install the pack

Search the pack by name in the launcher's browse section — Browse Modpacks in the CurseForge App, the Discover area in the Modrinth App, or Add Instance and then the CurseForge or Modrinth tab in Prism. When you find it, pick the exact build the server runs. Not the newest one. This is the single most common mistake: a pack that's one build ahead of the server fails the mod check exactly like one that's a build behind. Select the matching build and hit Install (or OK, or Create).

The launcher does the rest. It reads the pack's index file — manifest.json for a CurseForge pack, modrinth.index.json for a Modrinth one — then downloads the loader build, pulls every mod at its pinned version, and drops in the config files in a single pass. You do not install Fabric or Forge yourself here — that's the difference between this route and installing the Fabric loader by hand, where you set up the loader and add mods one at a time. Once it finishes, open the instance and confirm it shows the server's Minecraft version and the right loader before you go further.

One Prism-and-ATLauncher quirk is worth knowing. A CurseForge author can opt their project out of third-party download access, and when that happens Prism can't auto-fetch that one file, so it flags it as blocked. It looks like a launcher bug, but it isn't — download those specific .jar files from the CurseForge website yourself and drop them into the instance. Modrinth's API has no such opt-out, so packs from there never hit this.

Give the instance its own RAM

RAM is set per instance, and it controls the Java max heap — the -Xmx value. A mid-size pack wants 4-6 GB, and an RLCraft-class pack sits right around there too. A kitchen-sink pack — the All the Mods family, the big FTB packs — needs 8-12 GB or more. Set it on the specific instance, not just the launcher's global default, or your slider change quietly does nothing:

  • CurseForge App: Settings > Minecraft > Allocated Memory
  • Modrinth App: the instance's Options > Java and memory > Maximum memory
  • Prism: Edit Instance > Settings > Java, tick the memory override, then set Maximum memory allocation

More RAM does not give you more FPS, and past what the pack needs it actively hurts. A bigger heap means longer garbage-collection pauses, which show up as stutter, and handing the JVM most of your system memory starves the OS and drives it into swapping and crashes. Keep the max heap under about half your total RAM and leave headroom, since the game also uses memory beyond -Xmx. You also need 64-bit Java to go past roughly 1.5 GB at all — 32-bit caps out there no matter where the slider sits — and 26.x needs a current Java runtime, which all three launchers can download and manage for you, so you rarely install Java yourself. For the full picture on heap sizing, allocating RAM to the Java client covers it.

Launch once, then add the server

Launch the instance and let it run all the way to the Minecraft title screen before you try to connect. The first launch finishes building the instance and generates the config files, and trying to add or join the server before that first full load is a classic way to get kicked even though you "installed the pack." Make sure you're launching the pack's own instance, too, not the default .minecraft — that one has none of the mods and will bounce you the same way.

At the title screen, go to Multiplayer > Add Server, give it any name you like, and put the server's hostname or IP in the Server Address box. Only add :port if the server runs on something other than the default — Java servers use 25565, and most are on it, so usually you leave the port off. (Bedrock is a different story on 19132/UDP, but Java modpacks are a Java-client thing.) Save, select the server, and connect.

Extra 'side' mods the server lists

Some servers ask you to add a couple of client-side mods on top of the pack — a custom HUD, a minimap, a mod that talks to their systems, or a specific performance mod. Put each .jar into the instance's own mods folder using the launcher's Open Folder action, and make sure each one is built for the same Minecraft version and loader as the pack. Relaunch so the game rescans the folder. Client-only mods register no network channels, so they never trip the server's mod check — which is exactly why the server hands them to you separately instead of baking them into the pack.

Add only the mods the server names. On Forge and NeoForge the join is a handshake that compares both mod lists, and an extra mod fails it just as surely as a missing one. This is the usual reason someone drops OptiFine into a modded instance for shaders and immediately crashes or gets rejected — it conflicts with modded rendering and shows up as an unexpected mod. Use Sodium with Iris on Fabric, or Embeddium with Oculus on Forge, and keep them client-side.

If the server kicks you, read the actual message

Two different problems get lumped together as "it won't let me in," and they have different fixes. Read the exact string on the kick screen:

What you see What's wrong The fix
Outdated client! / Outdated server! / Incompatible version! Minecraft version / protocol gap Rebuild the instance on the server's exact version
Missing Mods / Connection closed - mismatched mod channel list Your mod list doesn't match Reinstall the server's exact pack build

A version message means the protocol numbers don't line up — a 26.1 (775) client simply cannot reach a 26.2 (776) server, and reinstalling the pack won't help; you need the instance on the right Minecraft version. A Missing Mods or mismatched-channel message means the versions match but a mod is off. The reliable fix is to reinstall the whole pack at the server's build, not to hunt down and swap a single .jar — that hand-editing is how you drift one mod out of sync and land right back on the kick screen. Fabric doesn't run the same blanket parity check Forge and NeoForge do, so there a mismatch tends to surface as one mod's networking silently failing or a launch crash rather than a tidy Missing Mods screen. Either way, matching the published pack is the move. If you're already stuck at that screen, fixing a mod mismatch after the fact walks through it.

FAQ

The launcher can't find the pack when I search for it. Now what?

Not every pack is listed publicly, and some servers run a custom one that never gets published. If the owner handed you a .mrpack or a .zip, import that file instead of searching — the Modrinth App and Prism both take one through Add Instance or Import, and Prism reads a CurseForge .zip too. If all you have is a CurseForge page link, open it in the CurseForge App or paste it into Prism's import box. Custom server packs usually live as a download in the server's Discord rather than in either catalog.

The server just updated. Do I update the pack build or rebuild the whole instance?

It depends on what changed, and the server's announcement will tell you. A new pack build on the same Minecraft version is the easy case — the launcher offers the newer version and keeps your instance's RAM setting and any side mods. A jump to a new Minecraft version is heavier, because the protocol moves with it and a 26.1 instance can't reach a 26.2 server at all; there you rebuild the instance on the new version and re-add your side mods afterward. Until the server posts an update, stay on the build it currently runs.

Does updating my regular Minecraft break the modded instance?

No. Each launcher keeps its packs in separate instance folders, walled off from the vanilla .minecraft the official launcher uses, so updating or even deleting vanilla Minecraft doesn't touch the pack's mods, loader, or configs. The thing that actually catches people is the reverse: make sure you launch the pack's instance and not plain vanilla, or you'll connect with none of the mods and get bounced right off.

Is any of this different on Bedrock?

Yes, completely. Bedrock doesn't use Java modpacks or the Fabric/Forge loaders at all — it uses add-ons and behavior packs, and its servers listen on 19132/UDP rather than 25565/TCP. Everything here is for the Java client. If your server is a Java modded server, you need the Java edition and a Java launcher; a Bedrock client can't join it.