Intermediate
12 min readMinecraft

How to Host a Modded Minecraft Server

Everything you need to host a modded Minecraft server — from RAM requirements to modpack installation.

We earn commissions from hosting providers on this page. This doesn't affect our rankings, which are based on independent testing and research. Full disclosure

Hosting a modded Minecraft server is more involved than running vanilla. Modpacks demand more RAM, require specific Java versions, and introduce dozens of configuration files that all need to work together. This guide covers everything from choosing between Forge and Fabric to troubleshooting common crashes, so you can get a stable modded server running without the trial-and-error most people suffer through.

Forge vs Fabric: Making the Right Choice

Your mod loader choice is usually dictated by the modpack you want to run, but understanding the differences helps when you have flexibility.

Forge (and its successor NeoForge) has been the dominant mod loader since 2011. It has the largest mod library, the most modpack support, and the deepest ecosystem. The vast majority of kitchen-sink modpacks (ATM10, RLCraft, FTB packs, Vault Hunters) are built on Forge or NeoForge. Forge provides a comprehensive API that handles mod interactions, event systems, and data registration. The downside is that Forge is heavier -- it takes longer to start up, uses more memory, and runs slower than Fabric at baseline.

Fabric is a lightweight, modern alternative that has gained massive traction since 2019. It starts faster, uses less memory, and allows for deeper performance optimization mods (Lithium, Starlight, C2ME). Fabric is the better choice for performance-focused servers, vanilla-plus experiences, and technical Minecraft. Many popular mods now have Fabric versions, but the total mod count is still smaller than Forge.

NeoForge is the community-driven successor to Forge, starting from Minecraft 1.20.2+. Most new Forge modpacks for 1.21+ actually target NeoForge. The transition is largely transparent -- your hosting panel may still call it "Forge" even when running NeoForge under the hood.

The decision tree is simple: If your modpack specifies a loader, use that one. If you are building a custom mod list, use Fabric for performance-focused setups with fewer mods, and NeoForge for content-heavy setups with 100+ mods. Check that all your desired mods support your chosen loader before committing.

RAM Requirements by Modpack Size

Modded Minecraft is hungry for memory. Underprovisioning RAM is the number one cause of modded server problems -- crashes, lag spikes, and chunk loading failures. Here is a realistic guide to RAM allocation:

| Modpack Size | Example Packs | Server RAM | Notes | |---|---|---|---| | Light (10-30 mods) | Vanilla+, Fabric optimization packs | 4-5 GB | Performance mods + minor content additions | | Medium (30-80 mods) | Better MC, Create | 6-8 GB | Noticeable world gen overhead | | Heavy (80-150 mods) | ATM10, FTB Revelation | 8-12 GB | Mod interactions multiply memory use | | Extreme (150-300 mods) | ATM9: No Frills, Enigmatica | 10-14 GB | Startup alone uses 4-6 GB | | Kitchen sink (300+ mods) | All the Mods with extras | 12-16 GB | Expect 5-10 min startup times |

These numbers are for the server only. Players need additional RAM on their clients. Also note that these are allocated RAM figures -- always set -Xms equal to -Xmx in your JVM flags so Java does not waste time resizing the heap.

Do not over-allocate. Giving a 30-mod server 16GB wastes money and actually degrades performance because the garbage collector has to scan more memory. Match your allocation to your actual needs, monitor usage with /spark health, and adjust upward only if you see frequent GC pressure.

One-Click Modpack Installation

Most quality hosting providers offer one-click modpack installation through their control panel. This is by far the easiest way to set up a modded server.

The typical process works like this:

  1. Log into your hosting control panel (typically Pterodactyl, Multicraft, or a custom panel).
  2. Navigate to the modpack or version installer section.
  3. Search for your modpack by name. Popular packs from CurseForge, Modrinth, and FTB are usually available.
  4. Select the modpack and the specific version you want.
  5. Click install. The panel downloads the server files, sets the correct mod loader version, and configures startup parameters.
  6. Start the server. First startup takes longer than usual as mods initialize and generate configs.

One-click installation handles Java version selection, memory allocation, and mod loader setup automatically. It is the recommended approach for standard modpacks. Where it falls short is when you want to customize the mod list, add server-side-only mods, or run a pack that is not in the hosting panel's database.

Manual Modpack Upload via FTP

When one-click installation is not available or you need a custom setup, manual upload through FTP is the fallback.

Step 1: Prepare the server pack. Most modpacks distribute a separate server pack (sometimes called "server files"). Download this, not the client pack. The server pack excludes client-only mods (shaders, UI mods, texture packs) and includes the correct server JAR and startup scripts.

Step 2: Connect via FTP. Use an FTP client like FileZilla or WinSCP. Your hosting provider gives you FTP credentials (host, port, username, password) in the control panel. Connect and navigate to your server's root directory.

Step 3: Upload server files. Delete or archive the existing server files (keep your world/ folder if you want to preserve an existing world). Upload the entire contents of the server pack to the root directory. This includes the mods/ folder, the server JAR, forge-installer.jar or equivalent, and any config directories.

Step 4: Run the installer. Some modpacks require you to run a Forge or NeoForge installer first. Your hosting panel may let you set a custom JAR file -- point it at the installer JAR, run it once, then switch back to the actual server JAR.

Step 5: Configure startup. Set your server's startup JAR to the correct file (often something like forge-1.21-server.jar), allocate appropriate RAM, and set JVM flags. Start the server and watch the console for errors.

Step 6: Accept the EULA. On first run, Minecraft generates eula.txt. Edit it to set eula=true and restart.

Large modpacks can have 500MB+ of files. FTP uploads can be slow. If your host supports SFTP (SSH File Transfer Protocol), use that instead -- it is more reliable for large transfers. Some hosts also allow uploading a ZIP file through the panel and extracting it server-side, which is much faster than uploading thousands of individual files.

Java Version Requirements

Modded Minecraft is particular about Java versions. Using the wrong version causes immediate crashes or subtle instability.

Minecraft 1.17 and older: Requires Java 8 (also called Java 1.8). Some very old modpacks (1.7.10 era) specifically need Java 8 and will not work with any newer version. Many Forge versions from this era also require Java 8.

Minecraft 1.17-1.17.1: Requires Java 16 minimum. This was a transitional period.

Minecraft 1.18-1.20.4: Requires Java 17 minimum. This is the Java version most current modpacks target. Both Forge and Fabric for these versions expect Java 17.

Minecraft 1.20.5 and newer: Requires Java 21 minimum. NeoForge and modern Fabric for 1.21+ need Java 21. This is the current standard.

Most hosting providers let you select the Java version in the control panel. If yours does not, contact support. Running a modpack on the wrong Java version is a guaranteed path to crashes and wasted time.

Use the version the modpack specifies. If a modpack's documentation says Java 17, use Java 17 -- not Java 21, even though it is newer. Mods are compiled against specific Java versions and may use internal APIs that change between releases.

Server-Side vs Client-Side Mods

Not every mod in a modpack belongs on the server. Understanding the distinction prevents crashes and reduces server resource usage.

Server-side mods run on the server and affect gameplay for all players. Examples: world generation mods, new items and blocks, economy systems, permissions, chunk loaders. These must be installed on the server.

Client-side mods run only on each player's computer. Examples: shader loaders (Iris, OptiFine), minimap mods (JourneyMap, Xaero's), UI improvements (AppleSkin, Jade/WAILA), texture packs. These should NOT be installed on the server. Including client-only mods in the server's mods/ folder can cause crashes or errors.

Both-side mods have components for both server and client. Examples: most content mods (Create, Mekanism, Botania) need matching versions on server and client. The server handles the game logic; the client handles rendering.

When setting up a server from a client modpack, remove client-only mods from the mods/ folder. The modpack's documentation usually lists which mods are client-only. If not, check each mod's page on CurseForge or Modrinth -- they typically specify "Client," "Server," or "Both" under environment.

Config Files and Customization

Modded servers generate extensive configuration files. Learning to navigate them lets you customize the experience without adding or removing mods.

World generation configs control terrain, biomes, structures, and ore distribution. Mods like Terralith or Biomes O' Plenty generate config files where you can enable or disable specific biomes, adjust structure frequency, and control ore generation rates.

Mod-specific configs are found in the config/ directory. Each mod creates one or more config files (usually TOML, JSON, or YAML format). Common settings to adjust include recipe difficulty, mob spawn rates, machine processing speeds, and feature toggles.

Server configs vs common configs vs client configs. Many mods split their configuration into three categories. Server configs (in world/serverconfig/) are world-specific and affect gameplay. Common configs (in config/) apply globally. Client configs are irrelevant for the server.

Datapacks can override recipes, loot tables, advancements, and world generation. They live in world/datapacks/ and are a powerful way to customize modpack behavior without editing mod configs directly.

Always make changes while the server is stopped. Some config changes require a restart to take effect. Back up your configs before editing -- a single syntax error in a TOML file can prevent a mod from loading.

Performance Optimization for Modded Servers

Modded servers need more aggressive optimization than vanilla. Beyond the basics covered in server optimization guides, here are modded-specific techniques:

Install performance mods. On Fabric: Lithium, Starlight, FerriteCore, and ModernFix. On Forge/NeoForge: Embeddium (a Forge port of Sodium's server optimizations), FerriteCore, ModernFix, and Clumps (merges XP orbs). These mods are compatible with virtually all modpacks and should be added to any modpack that does not already include them.

Reduce world generation complexity. If you are running multiple world generation mods, their features stack and compound. Disable overlapping features -- you do not need three different mods all adding new cave types. Simplify generation in config files to reduce the CPU cost of chunk creation.

Limit chunk loading. Mods like FTB Chunks or ChickenChunks let players force-load chunks. Unlimited chunk loading destroys server performance. Set strict limits on how many chunks each player can load (4-9 is reasonable) and monitor total loaded chunk counts.

Stagger machine processing. Tech mods with machines that process items every tick (smelters, pulverizers, assemblers) create CPU load proportional to the number of active machines. Encourage players to use higher-tier machines that process faster rather than banks of low-tier machines.

Pre-generate the world. This is even more critical for modded servers because modded world generation is far more CPU-intensive than vanilla. Use Chunky to generate a 5,000-10,000 block radius around spawn before players join.

Common Crash Troubleshooting

Modded servers crash. It happens. The key is knowing how to diagnose and fix crashes quickly.

OutOfMemoryError: The server ran out of allocated RAM. Solutions: increase RAM allocation, remove unnecessary mods, install FerriteCore, or reduce view distance. Check for memory leaks by monitoring heap usage over time with spark -- if memory climbs steadily without stabilizing, a mod is leaking.

Mod version mismatch: A mod requires a dependency at a specific version, but a different version is installed. The crash log states exactly which mod and which version it needs. Read the error message carefully -- it usually tells you exactly what to do.

Incompatible mod combinations: Two mods modify the same system in conflicting ways. This produces errors during initialization. Common conflicts include world generation mods, mixin-heavy performance mods, and mods that replace core systems. Check both mods' issue trackers on GitHub -- someone has probably reported the conflict.

Missing dependency: A mod requires a library mod that is not installed. The crash log names the missing dependency. Download it from the same source (CurseForge or Modrinth) and add it to the mods/ folder.

Java version error: Symptoms include UnsupportedClassVersionError or LinkageError in the crash log. Switch to the Java version specified by the modpack.

Corrupted world data: If the server crashes during chunk saving, world data can become corrupted. Symptoms include crashes when loading specific chunks. Use NBTExplorer or MCA Selector to identify and delete corrupted chunks. The server will regenerate them. This is why regular backups are essential.

How to read a crash log: Open crash-reports/crash-xxx.txt or logs/latest.log. Scroll to the first Caused by: line. This is usually the root cause. Look for mod names in the stack trace to identify which mod is crashing. Search the error message on Google or the mod's issue tracker for solutions.

Setting Up Your Modded Server

With all this information, here is the recommended workflow for getting a modded server running smoothly:

  1. Choose your modpack and note its requirements (mod loader, Minecraft version, Java version, minimum RAM).
  2. Select a hosting plan with at least the recommended RAM plus 2GB of headroom.
  3. Set the correct Java version in your hosting panel.
  4. Use one-click installation if available. Otherwise, download the server pack and upload via FTP.
  5. Start the server and let it fully initialize. First boot takes 3-10 minutes for large packs.
  6. Install additional performance mods if they are not already included.
  7. Configure world border and pre-generate chunks with Chunky.
  8. Adjust mod configs to match your server's playstyle.
  9. Set up automated backups (at minimum daily, preferably every 4-6 hours).
  10. Share the correct client modpack version with your players so their mod versions match the server.

The initial setup takes effort, but a well-configured modded server provides an experience that no other game can match. Hundreds of hours of content, deep progression systems, and the satisfaction of building a shared world with your community.

Advertisement

Recommended Hosting for Minecraft

Our top picks based on performance testing and user reviews.

#1

BisectHosting

Best for modded Minecraft with 2,000+ one-click modpack installations.

Best for Mods
8.0From $2.99/mo
5 locations
Mod Support
DDoS Protection
Auto Backups
Custom JAR
FTP Access
MySQL
Free Subdomain
Instant Setup
Crossplay
#2

Sparked Host

High-performance hosting with Ryzen 9 hardware and great support.

Best Performance
8.8From $1.50/mo
3 locations
Mod Support
DDoS Protection
Auto Backups
Custom JAR
FTP Access
MySQL
Free Subdomain
Instant Setup
Crossplay
#3

Apex Hosting

Premium Minecraft hosting with excellent support and modpack installer.

Best Support
8.2From $3.99/mo
7 locations
Mod Support
DDoS Protection
Auto Backups
Custom JAR
FTP Access
MySQL
Free Subdomain
Instant Setup
Crossplay
Advertisement

Frequently Asked Questions