AxonITech AxonITech
Ex Swiss IT Gruppe
About Us Services Why Choose Us Contact Review FAQ Blog info@axonitech.com
Game Servers Apr 3, 2026 9 min read

Minecraft Server Hosting: From Vanilla to Modded - The Complete Setup Guide

Everything you need to know about hosting a Minecraft server. Vanilla vs Spigot vs Paper vs Forge, RAM calculations, plugin management, and anti-grief protection.

By AxonITech Team

Three AM on a Saturday. Our monitoring alerts go off - a Minecraft server we host for a community of 200 players has just eaten 14 GB of RAM and the TPS has dropped to 6. The culprit? Someone loaded a chunk with 3,400 item frames. That was 2019, and it's the kind of war story you only get from running game servers for years. If you're thinking about hosting a Minecraft server - whether for 5 friends or 500 strangers - this guide covers everything we've learned keeping servers alive and lag-free since the beta days.

Choosing Your Server Software

This is the first and most important decision. Not all Minecraft server software is created equal, and picking the wrong one will cost you performance, compatibility, or both.

Vanilla

The official Mojang server JAR. Zero modifications, zero plugins. It's what you get when you download from minecraft.net. We only recommend this if you literally want the pure, unmodified experience and have fewer than 10 players. It's single-threaded, unoptimized, and has no plugin support. Think of it as the "stock engine" - functional, but you'll want upgrades.

Spigot

The original modded server platform. Spigot added the Bukkit plugin API and some performance patches on top of vanilla. It was revolutionary in 2012. Today, it's been largely superseded by Paper, but some legacy plugins still target Spigot specifically. Use it only if a critical plugin hasn't been updated for Paper.

Paper

Our default recommendation for 90% of servers. Paper is a fork of Spigot with aggressive performance optimizations - async chunk loading, improved entity ticking, better memory management. In our benchmarks, a Paper server handles 40-60% more players than vanilla with the same hardware. It's fully compatible with Bukkit and Spigot plugins. If you're running a survival, SMP, or minigame server, this is your pick.

Purpur

A fork of Paper that adds even more configuration options and some fun gameplay tweaks (rideable mobs, custom mob behaviours). Same performance as Paper with extra flexibility. Good for servers that want to stand out without writing custom plugins.

Forge / NeoForge

If you want mods - actual client-side modifications like new blocks, dimensions, magic systems - you need Forge or its successor NeoForge. Forge is heavier than Paper, requires more RAM, and players must install the same mods locally. But it unlocks modpacks like All The Mods, Create, and RLCraft. If your goal is a modded experience, there's no alternative.

Fabric

The lightweight mod loader. Fabric mods tend to be more performance-oriented (Sodium, Lithium, Starlight). It's our choice for servers that want performance mods and light content additions. Smaller mod ecosystem than Forge, but growing fast.

RAM: How Much Do You Actually Need?

This is where most guides give you vague answers. Here are concrete numbers based on servers we actually run.

Paper/Spigot Servers (No Mods)

Players Minimum RAM Recommended RAM Notes
1-5 2 GB 3 GB A small friend group server
5-15 3 GB 4-5 GB Small community, moderate builds
15-40 4 GB 6-8 GB Active community, multiple worlds
40-80 6 GB 10-12 GB Needs Paper + optimization plugins
80-150 10 GB 16 GB Consider a proxy setup (Velocity)
150+ 16 GB+ Network setup Split into multiple servers behind Velocity

Forge/Modded Servers

Mods change everything. A modpack with 200+ mods (typical for All The Mods 9) needs 8 GB minimum just to start, with 10-12 GB recommended for 10 players. Heavy tech modpacks with automation (Create, Mekanism, Applied Energistics) are RAM monsters - we've seen servers need 14 GB for 20 players running those packs.

Rule of thumb for modded: take your base modpack requirement (usually listed on the modpack page), add 1 GB per 5 players, and add 2 GB headroom for chunk loading and world generation.

Java Flags That Actually Matter

Default Java flags are terrible for Minecraft. Here's the JVM configuration we use on every server we deploy. This is for Java 17+ (which you should be running for 1.18+):

java -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1
-jar server.jar --nogui

The key points: set -Xms and -Xmx to the same value (prevents heap resizing), use G1GC (not ZGC - it's worse for Minecraft's allocation pattern), and keep MaxGCPauseMillis at 200ms. These flags alone reduced our GC pauses by 35% compared to defaults on a 60-player server.

One crucial note: never allocate more than 10-12 GB to a single Minecraft instance. The G1GC collector becomes less efficient with very large heaps. If you need more capacity, run multiple servers behind a Velocity proxy instead.

Essential Plugins for Every Server

After managing hundreds of servers, this is our "install these first" list for Paper servers.

Performance & Stability

  • Chunky - Pre-generates your world so players don't cause lag spikes by exploring new terrain. Run it overnight before opening the server. Generating a 5,000-block radius takes about 2-3 hours on decent hardware.
  • Spark - Profiling tool. When TPS drops, Spark tells you exactly which plugin or system is eating your performance. Non-negotiable for any server over 20 players.
  • ViewDistanceTweaks - Dynamically adjusts view distance per player based on server load. Keeps TPS stable without manually lowering view distance for everyone.

Administration

  • LuckPerms - Permission management. Full GUI editor, supports groups, tracks, temporary permissions. The industry standard since 2017.
  • EssentialsX - Warps, homes, kits, economy, nicknames. The Swiss army knife of server management. Don't install everything - use only the modules you need.
  • CoreProtect - Block logging and rollback. When someone griefs a build, CoreProtect lets you see exactly who did it and restore it with one command. We consider this absolutely essential. Last year it saved a community server from a grief attack that destroyed a collaborative build that took three months to construct.

Anti-Grief & Security

  • CoreProtect (yes, it's in both categories - it's that important)
  • GriefPrevention - Claim-based land protection. Players create claims with a golden shovel, and nobody else can build or break in their territory. Simple, effective, and players understand it immediately.
  • AntiCheatReloaded or Vulcan - Detects fly hacks, speed hacks, kill aura, and X-ray. Vulcan is premium but catches more cheats. For public servers, this is mandatory.

Quality of Life

  • Dynmap or BlueMap - Live web map of your world. Players love seeing their builds from above. BlueMap is lighter and produces gorgeous 3D renders.
  • TAB - Customizable player list and scoreboard. Makes your server look polished and professional.

Performance Tuning Beyond Plugins

Plugins help, but server configuration matters more. Here are the changes we make to every Paper server.

In paper-global.yml:

  • Set max-auto-save-chunks-per-tick to 8 (default 24). Reduces save lag significantly.

In paper-world-defaults.yml:

  • entity-per-chunk-save-limit - Cap entities saved per chunk. Prevents that 3,400 item frame scenario we mentioned earlier.
  • despawn-ranges.soft and .hard - Reduce mob despawn ranges to keep entity counts manageable.
  • tick-rates.mob-spawner to 2 (default 1). Halves spawner processing without noticeably affecting gameplay.

In spigot.yml:

  • mob-spawn-range to 6 (default 8). Reduces the area the server checks for mob spawning.
  • entity-activation-range - Lower animal and monster ranges. Animals at 16 (default 32), monsters at 24 (default 32). Entities outside these ranges tick less frequently.

In server.properties:

  • view-distance to 8 (default 10). Combined with ViewDistanceTweaks, this is plenty.
  • simulation-distance to 6. This is separate from view distance in 1.18+ and has a bigger performance impact.

These changes combined typically improve TPS by 30-50% on a loaded server. We've taken servers from an unplayable 8 TPS to a stable 19.5 TPS just through configuration.

Hosting Options: Where to Run Your Server

Shared Minecraft Hosting

Providers like Shockbyte, Apex, or BisectHosting give you a panel (usually Pterodactyl), pre-configured Java flags, and one-click modpack installs. Prices range from 3-15 EUR/month for small servers. Good for beginners and communities under 30 players. The downside: shared resources mean your performance depends on your neighbours.

VPS / Dedicated Server

For serious servers (40+ players or heavy modpacks), get a VPS or dedicated machine. You'll need Linux knowledge or a panel like Pterodactyl. Budget 15-40 EUR/month for a VPS with 8-16 GB RAM and a modern CPU. We've found that CPU single-thread performance matters more than core count for Minecraft - look for high clock speeds (4.5 GHz+) over many cores.

Self-Hosting

Running a server on your home PC works for a small group, but comes with caveats: your IP is exposed (use a VPN or Cloudflare tunnel), your upload speed limits player count, and your electric bill goes up. A Raspberry Pi 4 can technically run a vanilla server for 3-4 players, but we wouldn't recommend it for anything serious.

Backups: The Thing Everyone Forgets

Set up automated backups before you open the server to players. Not after. We use a simple cron job that copies the world folder every 6 hours and keeps 7 days of rolling backups. Total cost for off-site backup storage: about 2 EUR/month on Backblaze B2.

The command that has saved more servers than any plugin:

tar -czf /backups/world-$(date +%Y%m%d-%H%M).tar.gz /minecraft/world

Test your restores periodically. A backup you've never tested isn't a backup - it's a hope.

Launch Day Checklist

Before you share the IP with anyone:

  1. Pre-generate the world with Chunky (at least 3,000 block radius)
  2. Test with 2-3 people for at least an hour - check for plugin conflicts
  3. Verify CoreProtect is logging correctly (run /co inspect and break a block)
  4. Confirm backups are running and test a restore
  5. Set up a monitoring script that alerts you when TPS drops below 15
  6. Write basic rules and display them with a welcome plugin or a physical spawn building
  7. Whitelist the server initially if it's a community server - open it up once you're confident in your anti-cheat setup

Running a Minecraft server is one of the most rewarding hosting experiences you can have. There's something special about building infrastructure that directly enables creativity and community. Get the technical foundation right, and you'll spend less time fighting lag and more time playing alongside your players. That's the whole point.

Tags: Minecraft game server hosting modded plugins
Share:
WhatsApp Email Start a Project