
How to Host Your Own Custom Modrinth Modpack With Friends (2026)
Maksym Savrei
Founder, Piggo
You built a custom Modrinth pack that works perfectly on your PC. Now you want your friends to join it on a real server. The good news is that Modrinth's .mrpack format is much more server-aware than a normal ZIP full of mods. It can record the exact Minecraft and loader versions, mark files as client-only or server-compatible, and even include server-specific overrides.
The catch is that a custom export is still not something you should blindly drop into a vanilla server folder and expect to work. The server needs the correct loader, the correct side-compatible mods, the same pack-specific configs and scripts, and a clean way to keep everyone on the same version.
This guide shows the practical workflow for turning your own Modrinth profile into a dedicated Fabric, Forge, NeoForge or Quilt server for a private friend group.
Quick answer - Export the custom profile as an .mrpack, keep that exact release for your friends, and build the dedicated server from the same metadata. Match Minecraft, loader and Java versions, check server-compatible files, apply shared and server overrides, then fix the first real startup error instead of randomly adding RAM.Export your custom Modrinth pack
In the current Modrinth App, open the instance, go to the Mods tab, and use Export modpack. If the export option is unavailable because the instance is linked to an existing Modrinth project, Modrinth says you may need to unpair/unlink the instance first. Modrinth: Modpacks on Modrinth
The result is an .mrpack file. This is the file you should keep as the canonical version of the pack you are giving to your friends.
For a private group, you do not need to publish the pack publicly on Modrinth. Modrinth explicitly supports sharing the .mrpack directly through a file host such as Google Drive, OneDrive or Dropbox. The downside is that direct-file users need to import each new version manually; publishing the pack as a Modrinth project gives users easier version switching and updates. Modrinth: Sharing modpacks
Understand what is actually inside an .mrpack
An .mrpack is a ZIP-based Modrinth modpack format. Its root contains a modrinth.index.json file that describes what needs to be installed.
That manifest can include the exact Minecraft version and loader version under dependencies, including Forge, NeoForge, Fabric Loader or Quilt Loader. It also lists the pack files, their download locations and hashes. Modrinth .mrpack format
For each manifest file, the env object can describe the client and server separately as required, optional or unsupported. Optional means the file is not mandatory on that side, not that it belongs to a third environment. Check how your installer handles optional files and missing environment metadata. For example, a file with server: unsupported is explicitly marked as something that should not be installed on the dedicated server.
The format also supports three important folders. Files bundled inside these folders are not necessarily covered by the manifest's per-file environment flags. Inspect any local JARs in overrides/mods/ and server-overrides/mods/ for server compatibility rather than assuming the installer will filter them.
Use a trusted importer and inspect unfamiliar archives before extracting them. Pack paths should stay inside the server directory, not overwrite files elsewhere.
The folders are:
| Folder | Where it applies | Typical use |
|---|---|---|
overrides | Client and server base layer | Configs, scripts and pack files that should be copied into the instance |
server-overrides | Dedicated server after overrides | Server-specific configs/files that should replace the base version |
client-overrides | Client after overrides | Client-only configs or assets |
This is important: Modrinth's format is capable of eliminating the need for a completely separate server pack when the pack is authored correctly. The server-overrides layer exists specifically for that purpose.

An .mrpack can be server-aware - but do not trust it blindly
The cleanest case is a pack where every mod has accurate environment metadata and the pack author has put server-specific files in server-overrides. A server-aware installer can then skip files marked unsupported on the server and build the correct environment automatically.
Modrinth itself lists Modrinth Servers, mrpack-install, and the itzg/minecraft-server Docker image as server-side ways to use Modrinth modpacks. Modrinth: server-side modpack options
But custom packs can contain local mods, old files, or projects whose client/server metadata is incomplete or wrong. A 2025 Modrinth App feature request specifically described this problem and asked for manual per-mod environment overrides because incorrect metadata can cause client-only mods to be installed on servers. Modrinth issue #4812
So the practical rule is: let the .mrpack metadata do the filtering first, but if the dedicated server crashes on a client-only class or obviously visual mod, verify the mod's environment instead of assuming the manifest is perfect.
Use the exact Minecraft and loader versions from the pack
Do not create a server by choosing 'latest Fabric' or 'latest NeoForge' and hoping it matches.
The dependencies object inside modrinth.index.json exists so installers know which Minecraft and loader versions to install. If the pack says Minecraft 1.21.1 with a specific NeoForge build, use that environment on the server.
This matters because a mod can be compatible with one loader build or Minecraft release and fail on another. The same applies to Java.
For modern NeoForge, the official user guide requires Java 17 for Minecraft 1.20.2-1.20.4 and Java 21 for Minecraft 1.20.5 and newer. If your pack is on a different loader or an older Minecraft version, follow that loader's requirements rather than guessing. NeoForge Java requirements
Build the dedicated server
There are two sensible routes. The first is easier; the second gives you full manual control.
Option A: use a server-capable .mrpack installer
This is the cleanest approach when your .mrpack metadata is accurate. Modrinth's own help center recommends server-side tools including mrpack-install.
Tools such as mrpack-install can prepare a server from a Modrinth pack. Check the chosen tool's supported inputs, loaders and local-file handling before using it for your release. That means you do not have to manually download every mod listed in the manifest. mrpack-install
A managed host may perform the same job for you behind the scenes: read the pack, install the matching loader, resolve the server-compatible files, apply configs and start the first boot.
Option B: build it manually
- Open the
.mrpackas an archive and readmodrinth.index.json. - Note the exact Minecraft version and loader dependency/version.
- Install a clean dedicated server for that exact loader and version.
- Install files whose server environment is required or optional as appropriate; do not install files explicitly marked
server: unsupported. - Apply the contents of
overrides/to the server instance. - Apply
server-overrides/afterward so its server-specific files replace the base overrides where intended. - Do not copy
client-overrides/into the dedicated server. - Start the server once, accept the Minecraft EULA, then work through the first real startup error if one appears.
For NeoForge specifically, the official server guide installs the selected NeoForge version with the installer JAR, then starts the server using the generated run script after accepting the EULA. NeoForge dedicated server guide
Client-only mods are a common server-side trap
A custom pack can work perfectly in singleplayer and still crash on a dedicated server.
That is because your Minecraft client contains rendering, screens, keybinds and other client-side classes that do not exist in the dedicated server environment. A mod that touches those classes incorrectly can fail as soon as the server tries to load it.
Fabric's mod metadata has an environment field that can explicitly mark a mod as client-only, server-only or valid on both sides. Forge also supports declaring a mod file as client-side-only so it is skipped on a dedicated server. Fabric environment metadata · Forge clientSideOnly metadata
The Modrinth format mirrors this idea at the pack level using the per-file env object. If the server crashes with a missing net.minecraft.client class, rendering class, or an error that explicitly mentions a dedicated-server side mismatch, investigate the mod before changing RAM.
Do not forget configs, scripts and pack-specific files
A working custom modpack is often more than its mods directory.
The .mrpack overrides system exists because a pack may need configuration files, KubeJS scripts, datapacks, resource data or other files to behave the way the creator intended.
If you recreate the server by copying only the mods, it may boot while still being the wrong pack: recipes can differ, progression can break, server configs can be missing, or custom scripts may never load.
This is one of the advantages of using the .mrpack itself as the source of truth instead of rebuilding the server from memory.
Get every friend onto the same pack version
Once the server boots, the next failure is often not the server at all - it is one friend joining with a different pack.
For a private direct-share pack, send everyone the exact same .mrpack file and make the version obvious. Modrinth notes that direct-file sharing does not provide automatic version switching, so when you update the pack your friends need to import the new file manually. Modrinth: direct file sharing trade-offs
If you publish the pack as a Modrinth project instead, users can switch between the project's versions more easily in the launcher.
What has to match between client and server?
- Minecraft version.
- Mod loader and compatible loader version.
- Mods that are required on both client and server.
- Versions of those required mods and their dependencies.
- Pack-specific configs/scripts when they affect networked gameplay or synchronized content.
Client-only quality-of-life or rendering mods do not necessarily belong on the server, and server-only administration/performance mods do not necessarily belong on every client. The goal is not 'identical folders at all costs'; it is a compatible client/server mod set.
Connect your friends to the server
Once the console shows that startup has completed, send your friends the server address and assigned port from your hosting panel. In Minecraft Java Edition, open Multiplayer, choose Add Server and enter that address. Include the port as address:port when your host provides a non-default port.
Everyone should import the same .mrpack release and launch that instance before joining. Keep online-mode=true for normal account authentication. For a private group, enable the whitelist with whitelist on in the server console, then run whitelist add PlayerName for each friend. Console commands do not need a leading slash.
If you host at home, the server also needs to be reachable outside your network. For a direct connection, allow the configured server TCP port through the computer's firewall and forward that port on your router to the server computer. Do not expose the whole computer or disable your firewall. Friends use your public address, not a private LAN address. Carrier-grade NAT can prevent normal port forwarding; ask your internet provider about a reachable address or use a suitable tunnel or managed host.
Test with a friend outside your home network. If they time out, check the address, port, firewall and network setup. If they see a mod mismatch, compare their pack release with the server instead.
Start the server and read the first real error
If the server fails, do not immediately add RAM and do not start deleting random mods.
- Wrong Minecraft or loader version: verify
modrinth.index.jsondependencies. - Wrong Java version: match Java to the Minecraft/loader generation.
- Client-only mod on the server: look for dedicated-server side or client-class errors.
- Missing dependency: the log usually names the mod and dependency it expects.
- Wrong mod version: confirm the server and friends are using the same pack release.
- Missing configs/scripts: compare the installed instance against the pack's overrides/server-overrides.
Fix the first root problem, restart, and read the next result. One incompatible mod can produce a long chain of secondary errors underneath it.
How much RAM does a custom Modrinth pack need?
There is no useful 'Modrinth pack = X GB' rule. The server does not care which launcher exported the pack. It cares what the mods do.
A small Fabric pack with performance and quality-of-life mods can be light. A custom 350-mod kitchen sink with multiple dimensions, heavy world generation and large automation systems can be a serious server.
Player count matters, but so do exploration, chunk generation, automation, entities, loaded chunks and the age of the world.
If your custom pack is in the 300+ mod range, use Minecraft Server Hosting for 300+ Mods: What Do You Actually Need? as the sizing guide. If the server is already running but lagging, use Why Is My Modded Minecraft Server Lagging? before assuming you need more RAM.
How to update a private Modrinth pack without breaking everyone
Treat the .mrpack version as a release, not as a random file you overwrite every night.
- Back up the server world and server files before changing mods.
- Duplicate the Modrinth instance or otherwise keep a copy of the working client version.
- Add/remove/update the mods and configs you actually want.
- Export a new
.mrpackwith a new version identifier. - Update the server from that same release.
- Test the server before telling everyone to replace their client pack.
- Send friends the new
.mrpackand make it clear which old version it replaces.
If the pack is published as a Modrinth project, version management is easier for players. If it is shared privately as a file, you are responsible for keeping the group on the same release.
The easiest route: send the pack to the host
If your actual goal is 'I built this pack and want four friends online tonight', you do not necessarily need to turn yourself into the server administrator.
With Piggo's custom modpack hosting, you can send us the Modrinth .mrpack or the pack files. We can prepare the dedicated-server side, check the Minecraft/loader versions, deal with client-only files or missing dependencies, and get the first boot running. Custom modpack hosting
You still keep normal control of the server and files. The difference is that the initial conversion and the ugly first-crash loop do not have to become your evening.
The short version
A Modrinth .mrpack is more than a ZIP of mods. It can describe the exact loader, Minecraft version, file downloads, client/server environments and server-specific overrides.
That makes it a good source of truth for a dedicated server - but not a reason to skip validation completely. Custom packs can still contain inaccurate environment metadata, local files, missing dependencies or client-only mods that break on a dedicated server.
Export one version. Build the server from that same version. Give the exact same pack release to your friends. Then fix the first real error instead of guessing.
Using CurseForge instead?
Read How to Turn a Custom CurseForge Modpack Into a Minecraft Server (2026) for the other launcher's export and server-preparation workflow.
Sources
Frequently asked questions
CUSTOM MODPACK SETUP
Want to skip all of this?
Send us your .mrpack. We'll build the server side, match the loader, deal with client-only mods and dependencies, and get it ready for your friends.
- You send the pack
- We prepare the server
- You invite your friends
Related articles

Minecraft Server Hosting for 300+ Mods: What Do You Actually Need? (2026)
Hosting a 300+ mod Minecraft server? Learn how much RAM, CPU and storage you actually need for 2-10 players - and why mod count alone is a bad sizing method.

Why Is My Modded Minecraft Server Lagging? RAM vs CPU vs Chunk Generation (2026)
Modded Minecraft server lag is not always a RAM problem. Learn how to tell whether RAM, CPU/tick time, chunk generation, entities, automation, or networking is actually causing the slowdown.

How to Turn a Custom CurseForge Modpack Into a Minecraft Server (2026)
Built a custom CurseForge modpack that works on your PC? Here is how to turn it into a dedicated Minecraft server without client-only mods, missing dependencies, broken configs, or loader mistakes.