Skip to content

How to set up a custom Minecraft modpack server

By

Updated

Minecraft checks: Pack release (Game & loader); Server files (Side & dependencies); Launch (Required Java); Join test (Mod gameplay).

A pack can work in single-player and fail after you upload it to a server. Compare the files you have with the pack’s server requirements before changing hosts or buying more RAM. The server needs the right Minecraft release and loader. A client export may contain a list of downloads rather than an installed server; placing its ZIP in the game directory leaves that work unfinished.

These instructions cover Minecraft Java Edition. Use separate world storage for the first test and preserve your live save before changing the pack.

Download the pack handoff record. Fill in the pack release, Minecraft version and exact loader version, then add the server instructions, Java requirement and client profile. Give an operator those details instead of the pack name alone.

Prefer the author’s server files for that release when available. If the pack has no server distribution, install its required loader for a dedicated server and assemble the files according to the author’s instructions. Include the configuration and scripts the pack needs. See NeoForge’s server instructions for its server-pack installation path.

Before ordering managed hosting, check whether the host supports the required loader and startup method. VYKIX Minecraft hosting lists Java server platforms and game-file access. Share the exact pack requirements for a compatibility check; access to files cannot establish that a host runs every installer or pack.

File or archive What it tells you Next action
CurseForge profile ZIP manifest.json references profile files; custom files can appear in overrides. Import it as a client profile for players and prepare the server using the pack’s instructions.
Modrinth .mrpack modrinth.index.json describes versions, dependencies and downloadable files, including their permitted environments. Use an installer that handles the format for a server. Extracting the archive does not fetch the referenced files.
Author-provided server pack The files or installer target a dedicated server. Match the pack release and follow the included launch instructions.
Scroll to see all columns →

CurseForge calls its current export action Share Profile. The export reference explains the manifest and overrides structure. Distribute the intended player profile using its import procedure so players can install the same release.

In a Modrinth index, read dependencies and each relevant env.server entry. A file marked unsupported does not belong on the dedicated server. An installer that handles server overrides applies overrides first, then server-overrides. Check the format specification when choosing an installation method. Changing the archive’s filename leaves its contents unchanged.

Check the runtime used by the server command, even when Minecraft opens through your launcher. The launcher can use its own Java installation. On Windows, PowerShell can show what the shell selects:

Terminal window
Get-Command java | Select-Object -ExpandProperty Source
java -version

A script with a fixed Java path uses that executable; run its version check as well. For a rented service, check the panel’s runtime selection or ask the host which Java launches the process.

Fabric’s 1.21.1 Windows guide specifies Java 21. The current guide says Minecraft 26.1 needs Java 25. Check the documentation for the pack’s Minecraft release and the constraints imposed by its loader and mods.

Compare java -version with the Java version required by your pack and its mods. A newer Fabric release can require Java 21 even when your shell selects Java 8.

Separate client mods from server requirements

Section titled “Separate client mods from server requirements”

Choose files for the Minecraft release and loader the pack uses, then include their required libraries. Fabric’s mod guide explains version and loader matching. If you test a changed mod, keep its required dependencies with it.

A Fabric JAR can declare its side in fabric.mod.json: client, server or *. Required dependencies appear under depends. Fabric Loader does not load a file declared client on a dedicated server. Client code declared for the wrong environment can still cause failures. Use this metadata to classify the files, then test the assembled pack. Fabric metadata reference.

Our read-only inspection covered two Fabric downloads listed for Minecraft 1.21.1. Both files matched the SHA-512 hashes supplied by Modrinth:

Inspected file Declared environment What this check establishes
Fabric API 0.116.17+1.21.1 * Declares both environments, with Fabric Loader >=0.15.11 and Java >=21 requirements.
Sodium 0.8.13+mc1.21.1 client Declares the client environment. Its Modrinth project marks server support as unsupported.
Scroll to see all columns →

Check the Fabric API and Sodium releases for your own version. Server-only mods need not appear on a client. Match the author requirements for shared mods rather than demanding identical folders on both sides.

  1. Give the test an empty folder or service and separate world storage. Install the loader version required by the pack. Fabric provides a server download page and Windows server instructions.
  2. Select the loader’s launcher or generated startup script. The wrong launch command can leave uploaded mods unused. If the first start produces an EULA notice, read the terms and accept them yourself if you agree.
  3. Place the pack’s server files in the expected folder structure, including configuration and scripts. Retain the managed provider’s assigned endpoint and use its startup controls.
  4. Check the startup log, then join with the client pack players will use. Try a feature supplied by a mod. A process that stays running has not yet passed a join test.
  5. Enter stop in the console, start the instance again and repeat the join check. Record the working versions and results before moving an existing world.

At 4:23 in the Breakdown tutorial, the creator selects a mod and its required libraries. That demonstration uses Fabric 1.21.11; it is not a file list for our 1.21.1 metadata examples. The description discloses affiliate links or ownership interests. We have excluded its hosting promotion from these instructions.

Preserve the server’s logs/latest.log and the client’s log from the same join attempt. Keep a crash report if one was generated. Fabric’s log instructions explain where the files are and what each contains. Check for private information before sharing them.

Symptom Check before the next restart
The uploaded export ZIP has not installed the pack Inspect whether it describes a client profile or contains an installed server distribution.
Startup fails after adding mods Find the first loader or dependency failure in the log; test the affected mod together with its required libraries.
Java or class-version error Compare the startup executable’s Java version with the pack’s requirement.
Startup passes but a player cannot join Check the client and server logs together, comparing the pack release, shared mod versions and relevant configuration.
A copied client pack causes a server crash Review side restrictions and references to client code. A mod’s display name may differ from its dependency ID.
Startup reports another loader or game release Select the intended launch configuration before editing the mods.
Scroll to see all columns →

Owners on Reddit described a single-player pack failing on a dedicated server and a running server crashing at join time. Those reports support checking startup and admission as separate stages. Their fixes apply to the reported packs and versions, not an instruction to remove the same mods from yours.

Stop the source server before copying its world, configuration and required mod data. Retain a recovery copy outside the live service. Move the files into the matching tested pack and join to inspect the data players need. Keep the original copy until the destination passes. Include any external storage used by mods in the backup plan.

VYKIX’s backup guide states that included copies share the physical server with the live game. Verify which paths your service backs up and retain an independent copy. Before a restore, preserve newer files; test that the recovered world works on a separate instance.

Take the completed pack record to the Minecraft hosting page. Use the exact release and its file requirements to check hosting fit before committing to the move.

Find hosting for your game.

Compare managed hosting for DayZ, Rust and other supported games.