Skip to main content

How to Host a Minecraft Server

Whether you want a private world for friends or a public community server with mods, this guide covers everything from choosing your server type to optimizing performance.

Java Edition vs Bedrock Edition

The first decision: which edition are you hosting for?

Java EditionBedrock Edition
PlatformPC (Windows, macOS, Linux)PC, Xbox, PlayStation, Switch, Mobile
ModdingExtensive (Forge, Fabric, Paper)Limited (Bedrock Add-Ons)
PerformanceMore resource-hungryLighter, better on low-end hardware
CrossplayJava players only (unless using Geyser)All Bedrock platforms natively
Server softwareVanilla, Paper, Forge, Fabric, SpigotVanilla Bedrock Dedicated Server
Default port25565 (TCP)19132 (UDP)

Most popular choice: Java Edition — it has the largest modding community, plugin ecosystem, and server software options.

Crossplay with Geyser

Want both Java and Bedrock players on the same server? Use GeyserMC — a proxy that lets Bedrock clients connect to Java servers. Works with Paper and Fabric.

Server Software: Which One to Pick

This is the most important decision for your server. Each type has different strengths:

Vanilla

The official Mojang server software. No mods, no plugins, just Minecraft.

  • Best for: Small friend groups who want the pure experience
  • Performance: Decent for small groups, struggles with 10+ players
  • Plugins: None
  • Mods: None

Paper

A high-performance fork of Spigot. The most popular choice for serious servers.

  • Best for: Any server that needs plugins, performance, or 10+ players
  • Performance: Significantly faster than Vanilla — async chunk loading, entity optimizations
  • Plugins: Full Bukkit/Spigot plugin compatibility (thousands available)
  • Mods: No Forge/Fabric mods (plugins only)
  • Use if: You want plugins (economy, permissions, minigames, anti-cheat)

Fabric

A lightweight, modern modding framework. Fast and minimal.

  • Best for: Modded servers focused on performance and modern mods
  • Performance: Very fast — minimal overhead compared to Forge
  • Plugins: Via Fabric API mods (not Bukkit plugins)
  • Mods: Fabric mods (Sodium, Lithium, Iris, Create Fabric)
  • Use if: You want client-side performance mods or modern mod packs

Forge

The original modding framework. Massive mod library, but heavier.

  • Best for: Large modpacks (RLCraft, All The Mods, FTB)
  • Performance: Heavier than Fabric — needs more RAM
  • Plugins: Limited (SpongeForge for Bukkit-like plugins)
  • Mods: Forge mods (the largest mod library)
  • Use if: You want specific Forge-only modpacks

NeoForge

A community-driven fork of Forge, gaining traction since 2024.

  • Best for: Modern Forge-style modding with better community governance
  • Performance: Similar to Forge with ongoing improvements
  • Mods: Growing library, many Forge mods are porting over

Quick Decision Guide

Do you want mods?
├── No → Do you want plugins?
│ ├── No → Vanilla
│ └── Yes → Paper ✓
└── Yes → Which mod loader?
├── Fabric mods → Fabric
├── Forge modpacks → Forge
└── Not sure → Paper (most flexible) ✓

How Much RAM Do You Need?

RAM is the most important resource for Minecraft servers. Here's what we recommend:

Use CasePlayersRAMCPU
Vanilla / Small1-52-4 GB2 vCPU
Paper + plugins5-154-6 GB2-4 vCPU
Paper + many plugins15-306-8 GB4 vCPU
Fabric + performance mods5-204-6 GB2-4 vCPU
Forge light modpack5-106-8 GB4 vCPU
Forge heavy modpack5-208-16 GB4-8 vCPU
Large community server30-50+12-16 GB6-8 vCPU

What Eats RAM

  • Loaded chunks: Each player loads chunks around them. More players = more chunks = more RAM
  • Entities: Mobs, dropped items, minecarts. A mob farm with 1000 entities is a RAM killer
  • Mods: Each mod adds overhead. A 200-mod Forge pack needs 8 GB minimum just for the mods
  • Plugins: Most plugins are lightweight, but some (Dynmap, world generation) use significant RAM
  • Pre-generation: Pre-generating the world uses temporary RAM but reduces lag during gameplay
Reactor Tier Recommendations
  • Bronze (4 GB): Vanilla or Paper with a few plugins, up to 10 players
  • Silver (8 GB): Paper with plugins or light modpacks, up to 20 players
  • Gold (16 GB): Heavy Forge modpacks or large community servers

View Minecraft pricing →

Essential Server Configuration

server.properties

The main configuration file. Key settings to change:

# Server identity
server-name=My Awesome Server
motd=Welcome to our server!
server-port=25565

# Gameplay
difficulty=hard
gamemode=survival
pvp=true
max-players=20
view-distance=10 # Lower = better performance (default 10)
simulation-distance=8 # Lower = better performance (default 10)

# World
level-seed= # Leave empty for random, or set a seed
level-type=default # Options: default, flat, largeBiomes, amplified
allow-nether=true
spawn-protection=16 # Radius around spawn that non-ops can't modify

# Performance
max-tick-time=60000 # Crash if a tick takes >60s (set to -1 to disable)
network-compression-threshold=256

# Security
online-mode=true # KEEP TRUE — verifies accounts with Mojang
white-list=false # Enable if you want invite-only
enforce-secure-profile=false # Set false if players have issues connecting

# RCON (remote administration)
enable-rcon=true
rcon.port=25575
rcon.password=YourSecurePassword

JVM Flags (Performance)

For Paper servers, use Aikar's optimized JVM flags:

java -Xms4G -Xmx4G \
-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 paper.jar --nogui

Key rule: Set -Xms and -Xmx to the same value. Don't give Minecraft more than 12-16 GB — the garbage collector becomes inefficient beyond that.

Must-Have Plugins (Paper)

Permissions & Security

PluginPurpose
LuckPermsPermission management — groups, ranks, per-world permissions
EssentialsXCore commands — /home, /tpa, /spawn, /warp, kits
CoreProtectBlock logging — see who placed/broke what, rollback grief

Economy & Gameplay

PluginPurpose
VaultEconomy API — required by most economy plugins
EssentialsX EconomyBasic economy — /pay, /balance, signs
ChestShopPlayer-to-player trading via chest shops

Performance

PluginPurpose
SparkProfiler — find what's causing lag
ChunkyPre-generate world chunks to reduce exploration lag
ClearLagAuto-remove dropped items and limit entities

World Management

PluginPurpose
Multiverse-CoreMultiple worlds (creative, survival, minigames)
WorldEditIn-game world editing — selections, copy/paste, fill
WorldGuardRegion protection — define areas players can't modify
DynmapLive web map of your world (increases RAM usage)

Player Management

Whitelist (Invite-Only Server)

# In-game or via RCON
whitelist on
whitelist add PlayerName
whitelist remove PlayerName
whitelist list

Or edit whitelist.json directly:

[
{
"uuid": "player-uuid-here",
"name": "PlayerName"
}
]

Operator Levels

Minecraft has 4 operator levels:

LevelPermissions
1Bypass spawn protection
2Use /clear, /difficulty, /gamemode, /gamerule, etc.
3Use /ban, /kick, /op
4Use /stop, /save-all (full admin)

Set in ops.json or via /op PlayerName.

Banning Players

ban PlayerName Reason           # Ban by name
ban-ip 192.168.1.1 # Ban by IP
pardon PlayerName # Unban
banlist # View bans

Performance Tuning

If your server is lagging, check these in order:

1. Check TPS (Ticks Per Second)

A healthy server runs at 20 TPS. Below 18 is noticeable lag.

# Paper command
/tps
# Output: §aTPS from last 1m, 5m, 15m: 20.0, 20.0, 19.98

2. Use Spark Profiler

/spark profiler start
# Wait 2-3 minutes during normal gameplay
/spark profiler stop
# Opens a web report showing what's using CPU

3. Common Lag Causes

CauseFix
Too many entitiesUse ClearLag, reduce mob farm sizes
Large view distanceLower view-distance to 8, simulation-distance to 6
Chunk generationPre-generate with Chunky
Redstone machinesLimit redstone clock speed
Too many pluginsRemove unused plugins, check Spark for slow ones
Not enough RAMIncrease allocation (see RAM table above)
Wrong JVM flagsUse Aikar's flags (see above)

4. Paper-Specific Optimizations

Edit config/paper-world-defaults.yml:

chunks:
max-auto-save-chunks-per-tick: 8 # Lower = less IO during saves

entities:
armor-stands:
tick: false # Don't tick armor stands

spawn-limits:
monsters: 50 # Default 70, lower for performance
animals: 8 # Default 10
water-animals: 3 # Default 5

Backup Strategy

Your Minecraft world is in the world/ directory (and world_nether/, world_the_end/ for dimensions).

What to back up:

  • world/ — Overworld (the big one)
  • world_nether/ — Nether
  • world_the_end/ — End
  • plugins/ — Plugin configs and data
  • server.properties — Server config
  • whitelist.json, ops.json, banned-players.json

When to back up:

  • Before any update (server software, plugins, mods)
  • Before major events (community builds, map resets)
  • Automatically every day (Reactor does this for you)
Reactor Automatic Backups

All Reactor Minecraft servers include automatic daily backups with 7-day retention. Manual backups can be triggered from your dashboard anytime. Learn more →

Connecting to Your Server

Direct Connect

Players connect via the server's IP and port:

your-server-ip:25565

If using the default port (25565), the port can be omitted:

your-server-ip

SRV Records (Custom Domain)

Want players to connect via play.yourserver.com instead of an IP? Add an SRV record to your DNS:

_minecraft._tcp.play.yourserver.com  SRV  0 5 25565 your-server-ip.

This lets players type play.yourserver.com in the Minecraft client without specifying a port.

Updating Your Server

Paper / Spigot

  1. Download the new .jar from papermc.io
  2. Stop the server
  3. Replace the old .jar with the new one
  4. Start the server
  5. Check plugin compatibility — some plugins may need updates

Forge / Fabric

  1. Download the new installer from files.minecraftforge.net or fabricmc.net
  2. Stop the server
  3. Run the installer to update server files
  4. Check mod compatibility — major Minecraft versions often break mods
  5. Start the server
Back Up Before Updating

Always back up your world before updating. Version changes can occasionally corrupt world data, and downgrading is not always possible.


Ready to host? Get your Minecraft server running in under a minute →