X
X
X
X
All systems operational · 200 Tbps+ DDoS protection active
Sign Up Sign In 08505574494

How to Set Up a Minecraft Server: Step-by-Step Guide

HomepageArticlesMinecraft ServerHow to Set Up a Minecraft Server: S...
How to Set Up a Minecraft Server: Step-by-Step Guide

Setting up a Minecraft server is technically a ten-minute job; the hard part is having it still run smoothly in week two. Pick the wrong Java version and the server never starts. Pick the wrong server software and it stutters at 30 players. Allocate memory badly and you get regular freezes. This guide covers the installation from scratch — and explains why each step is done the way it is, because most later problems trace back to decisions made during setup.

First Decision: Which Server Software?

"Minecraft server" sounds like one program, but there are several options and the choice directly determines your performance ceiling.

  • Vanilla: Mojang's official server. Original game mechanics work exactly as intended, but there is no plugin support and optimization is weak. Fine if you are playing with a handful of friends.
  • Paper: what the large majority of servers run today. Hundreds of optimizations, async chunk loading and built-in anti-xray. At the same player count it uses noticeably less memory than Spigot and holds higher TPS. For most servers this is the right answer.
  • Purpur: built on Paper; keeps its performance while adding extensive in-game customization. Things you would otherwise need a plugin for can be handled from a config file.
  • Spigot: closer to vanilla mechanics and still used where technical players care about that. But it is slower than Paper and installing it means compiling with BuildTools.
  • Fabric / Forge: needed if you want to run mods rather than plugins. Modded servers are a different world, and hardware requirements rise sharply.

Short version: for a survival, minigame or general community server, start with Paper. Moving to Purpur later is easy; moving from Paper to Fabric is not.

Java Version: The Most Common Mistake

A Minecraft server runs on Java, and each game version expects a specific Java release. On the wrong version the server either refuses to start or throws an error that explains nothing.

  • 1.12 and earlier: Java 8
  • 1.18 – 1.20.4: Java 17
  • 1.20.5 and later: Java 21
  • Newest releases: may require Java 25

Check the requirement for the build you download before installing. Verify your version with java -version. If several Java versions are installed, specifying the full path in your start script avoids confusion.

On the server side JRE is enough — no need for the full JDK. Any OpenJDK distribution (Temurin, Zulu, Corretto) will do.

Hardware: What Do You Need per Player Count?

Performance in Minecraft is driven less by player count than by loaded chunk count, plugin load and redstone/mob density. Still, as a starting point:

Small server — 5-10 players

  • RAM: 2-4 GB
  • CPU: 2 cores, high clock speed
  • Disk: 10-15 GB NVMe SSD

Mid-size — 20-40 players

  • RAM: 6-10 GB
  • CPU: 4 cores, 3.5 GHz+
  • Disk: 25-40 GB NVMe SSD

Large / plugin-heavy — 50+ players

  • RAM: 12-16 GB and above
  • CPU: 6-8 cores, 4.0 GHz+
  • Disk: 50 GB+ NVMe SSD

Key point: the server's main world loop runs largely on a single core. A 16-core CPU at 2.4 GHz will fall behind a 6-core at 4.2 GHz. That is why high clock speed processors are preferred in game hosting. We covered the same logic in our guide on how much RAM an MTA server needs.

Step-by-Step Installation (Windows)

1. Install Java

Install the JRE matching your game version and confirm it with java -version on the command line.

2. Download the server file

For Paper, get server.jar from the official PaperMC site; for vanilla, from Minecraft's official server download page. Put it in an empty folder — the first run will generate dozens of files there.

3. First run

Open a command prompt in that folder and run:

java -jar server.jar --nogui

The server will start and immediately shut down. That is expected: you have not accepted the EULA yet.

4. Accept the EULA

Open the generated eula.txt, change eula=false to eula=true and save.

5. Run it again

Run the same command. This time the server generates the world and finishes with "Done". You can connect locally via localhost to test.

6. Create a start file

To avoid typing the command each time, create start.bat in the folder:

java -Xms2G -Xmx4G -jar server.jar --nogui
pause

Installation on Linux (Ubuntu / Debian)

For a permanent server, Linux uses fewer resources and is more stable.

Install Java:

sudo apt update && sudo apt install -y openjdk-21-jre-headless

Create a folder and download:

mkdir -p ~/minecraft && cd ~/minecraft
wget -O server.jar <server-jar-url>

First run and EULA:

java -jar server.jar --nogui
sed -i 's/eula=false/eula=true/' eula.txt

Start script (start.sh):

#!/bin/sh
cd "$(dirname "$0")"
exec java -Xms2G -Xmx4G -jar server.jar --nogui

Then make it executable with chmod +x start.sh.

To keep the server alive after your SSH session ends, use screen or tmux. For a permanent install, defining a systemd service is the sound approach — the server then comes back automatically after a reboot.

Memory Settings: How Much and How

Memory is set with -Xms (initial) and -Xmx (maximum). Three rules:

  • Do not give the server all available memory. Leave headroom for the OS and other processes. On an 8 GB machine, -Xmx6G is a sensible ceiling.
  • Too much RAM can hurt performance. A very large heap makes garbage collection pauses longer, which players feel as sudden stutters.
  • Setting Xms equal to Xmx is common practice; it stops the heap from constantly growing and shrinking.

For a typical 16-player Paper server, -Xms4G -Xmx4G is a good starting point.

server.properties: The Lines You Must Know

  • server-port=25565 — the default port for Minecraft Java (TCP). Change it and players must append the port to the IP.
  • max-players=20 — maximum players. Do not exceed what your hardware can carry.
  • view-distance=10 — render distance. This is the single most impactful performance setting; going from 16 to 8 cuts server load substantially.
  • simulation-distance=10 — mob and redstone simulation range. Heavier than view distance.
  • online-mode=true — verifies players against Mojang accounts. Do not turn this off; disabling it exposes the server to account spoofing.
  • white-list=true — only listed players may join. Recommended for the first days of a new server.
  • difficulty=normal and gamemode=survival — game mode and difficulty.

Going Public: Ports and IP

If the server runs on your own computer, outside connections require forwarding port 25565 on your router and having a static IP. Home internet is not ideal for this: your IP changes often, upload bandwidth is limited, and the server drops when your machine shuts down.

For a lasting community server, a VDS or rented game server makes far more sense. If you run a firewall, remember to open 25565/TCP. The Bedrock (mobile/console) edition uses a different port: 19132/UDP.

Permissions and Security

  • Granting admin: type op playername in the server console. Op rights mean full control — hand them out carefully.
  • Whitelist: add players with whitelist add playername, then enable it with whitelist on.
  • Backups: back up the world folder regularly. There is no other way back from a corrupted world.
  • DDoS protection: game servers are a frequent target. We explained what protection capacity figures actually mean in this guide.
  • Server hardening: if you just provisioned a VDS, work through the first 10 steps to secure your server.

Common Errors and Fixes

  • "You need to agree to the EULA": you did not set the value in eula.txt to true.
  • "Unsupported class file major version" / server will not start: Java version does not match the game version. Install the correct JRE.
  • "Failed to bind to port": port 25565 is taken by another process, or another server instance is still running.
  • Friends cannot connect: port forwarding is missing or a firewall is blocking. Test the external IP and port from outside your network.
  • Constant stutter (low TPS): lower view-distance and simulation-distance first. If it persists, use a profiler like Spark to find which plugin is costing time.
  • "Out of memory": -Xmx is too low, or the machine ran out of physical RAM.
  • The world disappeared: the server may have been started from a different folder. Check the level-name setting and your working directory.

Minecraft Servers with Nubitro

How smooth a Minecraft server feels comes down to single-core CPU speed and disk latency. Nubitro's Minecraft server packages come with instant setup, DDoS protection and 24/7 support. If you want full control over your own configuration, look at our AMD Ryzen 9 based VDS options in Turkey. Planning a different game server? See our FiveM server setup guide as well.

Frequently Asked Questions

Does running a Minecraft server cost money?

The server software is free. The only thing you pay for is the hardware hosting it. Players need a licensed copy of the game.

Can I host on my own computer?

For playing with a few friends, yes. For a lasting community it is unsuitable: your IP changes, upload bandwidth falls short, and the server drops when your machine shuts down.

How much RAM per player count?

Roughly: 4 GB for 10 players, 8 GB for 30, 12-16 GB for 50+. But the real drivers are plugin count and render distance; a heavy plugin set can double these figures.

Should I install Paper or Vanilla?

Paper if you plan to use plugins or expect more than about ten players. Vanilla only makes sense for a small group who want untouched game mechanics.

How do I give friends my server IP?

On a rented server you share the IP and port shown in the panel. On your own machine you give your external IP and the forwarded port. You can also point a domain at it for a memorable address like play.yoursite.com.

How do I update the server version?

Back up the world folder and plugins first. Replace the old server.jar with the new one and start the server. Do not make large version jumps without checking that your plugins support the new release.

Summary

  • For most servers the right starting point is Paper; vanilla only suits small groups.
  • The Java version must match the game version — this is the single most common mistake.
  • The first run exits because of the EULA; set the value in eula.txt to true.
  • Performance is driven by single-core speed and NVMe storage, not core count.
  • Do not overallocate RAM; an oversized heap causes GC pauses and stutter.
  • view-distance and simulation-distance are the two settings with the largest TPS impact.
  • Leave online-mode enabled and take regular backups.
Powered by WISECP
💬
Top