DGuard

How to make a Minecraft server: the complete guide

A Minecraft server needs Java, server software (for a plugin server, Paper) and a machine that stays on while people play: your own PC, a game host or a VPS. Then you accept the EULA, set up server.properties, open the port and add plugins. Here is the whole path, step by step, from picking hardware to the pre-launch checklist.

The DGuard team13 min read

The short version:

  1. 1Decide where the server runs: your own PC, a game host or a VPS.
  2. 2Install the right Java: 21 for Paper 1.20–1.21.11, 25 for 26.1 and newer.
  3. 3Download the server software — Paper or its fork Leaf.
  4. 4Start the server with a script that sets memory, and accept the EULA.
  5. 5Check server.properties and open port 25565.
  6. 6Add the basic plugins: permissions, block logging, an anticheat.
  7. 7Set up backups and rules — only then invite players.

What you need

A Minecraft Java Edition server is a Java program: a single .jar file you start from the command line. There is no separate “server edition” to buy — Paper is free, and so are most plugins. The only thing you pay for is hardware, if the server has to run around the clock.

Java

Each Paper version needs a specific Java version. Paper's documentation recommends:

Paper versionJava
1.17–1.1917
1.20–1.21.1121
26.1 and newer25
From the Getting started page of the Paper docs

Use an OpenJDK build: Paper's guide uses Amazon Corretto, and Adoptium or Azul Zulu work too. Avoid packages with a -headless suffix — they lack dependencies Paper needs. Check the install with java -version in a terminal.

Server software

The vanilla server from Mojang doesn't load plugins, which is why public servers almost always run Paper: it's optimized for performance out of the box, runs Bukkit and Spigot plugins, and is a drop-in replacement for Spigot. Leaf is a Paper fork focused on performance and fully compatible with Spigot and Paper plugins.

Mods (Forge, NeoForge, Fabric) need different server software — a separate path, see modded servers. How Paper, Leaf, Purpur and Folia differ and which one fits your game mode is covered in which server software to choose.

Where to run it: your PC, a game host or a VPS

A server is only online while the machine it runs on is. You have three options:

OptionGood forDownsides
Your own PCPlaying with friends, testing plugins and settingsThe PC has to stay on; you need port forwarding and a public IP; players see your home address
Game hostingA quick start: a web panel, Java and the port already set upResources are shared with neighbours; not everything is configurable
VPS or dedicated serverA long-term server, a network, full controlYou set up the OS, firewall and backups yourself

What matters most is a fast CPU core. Most of the server's work is the tick loop, which runs on a single thread. Paper's docs recommend a CPU with high single-threaded performance and at least 4 threads for the server. How to compare plans and where not to cut corners: hosting or VPS.

How much memory to give it

Two Java flags set the memory: -Xms is what the server gets at start, -Xmx is the maximum. Make them equal: Paper's guidance is that a server should be expected to use all of -Xmx eventually, and anything between the two values is memory sitting idle.

Paper's getting-started command uses 4 GB, while its Aikar's flags page recommends 6–10 GB no matter how few players you have. Never hand Java your plan's entire memory: Java needs a bit more than -Xmx, and the OS needs its own, so keep 1000–1500 MB spare. Sizing and measuring real usage: how much RAM a server needs.

First start and the EULA

  1. 1

    Create a server folder

    A dedicated one: the world, configs and the plugins folder will appear in it. On a VPS, run the server as a separate user, not as root.

  2. 2

    Download Paper

    On Paper's downloads page, pick your version and click the build number. Put the file in the server folder and rename it to paper.jar for convenience.

  3. 3

    Create a start script

    Start the server with a command, not by double-clicking the .jar. Put the command in start.bat (Windows) or start.sh (Linux, macOS) — examples below. Paper's start script generator builds one for you.

  4. 4

    Run it and accept the EULA

    The first run creates eula.txt and stops. Change eula=false to eula=true in it — this confirms you've read the Minecraft EULA. Without it the server shuts down right after starting.

  5. 5

    Start the server again

    Now it generates the world, server.properties, Paper's configs and the plugins folder. It's ready when the console prints Done. Shut it down with stop in the console — that saves the worlds and disables plugins cleanly.

start.bat — Windows
java -Xms4G -Xmx4G -jar paper.jar --nogui
pause
start.sh — Linux and macOS
#!/usr/bin/env sh
java -Xms4G -Xmx4G -jar paper.jar --nogui

--nogui disables the vanilla server window so you don't get two interfaces in the terminal. pause at the end of start.bat keeps the window open on an error so you can read it. On Linux, make the script executable (chmod +x start.sh) and run ./start.sh.

The essentials of server.properties

server.properties sits in the server folder and holds the basic settings. Edit it while the server is stopped — changes apply after a restart. Check these keys first:

KeyDefaultWhat to set
server-port25565Keep it unless your host assigned another port
online-modetruetrue — only premium accounts can join. On false and its risks, see offline mode
white-listtrue since 26.3, false beforetrue for a private, invite-only server; false for a public one
max-players20What your hardware can actually handle
view-distance10How many chunks around a player the server sends to the client. Lower means less load
simulation-distance10How far from players the server updates mobs and other living entities
difficultyeasynormal or hard for survival
spawn-protection16Protects spawn from everyone but operators; 0 turns it off when a region plugin guards spawn
server-ipemptyLeave it empty: it's not your public address but the network interface the server binds to
enable-rconfalseDon't enable it without a strong password and a port closed to the outside
Defaults per the Minecraft Wiki

Joining the server and opening the port

In the game, open Multiplayer → Add Server and enter the address. You don't need to type port 25565 — the client adds it; any other port goes after a colon: play.example.com:25570.

  • Same computer — localhost.
  • Same home network — the local IP of the machine running the server (like 192.168.x.x).
  • Over the internet from your PC — forward TCP port 25565 on your router to that machine and give friends your public IP. If your ISP shares one public IP between many customers (CGNAT), forwarding won't work without a dedicated public IP.
  • Game host or VPS — the panel gives you the address and port. On a VPS, open the server port in the firewall.

Ports, forwarding and connection errors in detail: Minecraft server port.

Plugins: what to install first

Installing a plugin: download the .jar, drop it into plugins/ and restart. /plugins lists them — green is running, red failed to load, and the reason is in logs/latest.log. Step by step, with dependencies and errors: how to install a plugin.

A baseline for any game mode:

JobWhat to installWhy
PermissionsLuckPermsPlayer and staff groups instead of OP
Block loggingCoreProtectWho broke or placed what — and grief rollback
Other client versionsViaVersionPlayers join from clients newer than the server
AnticheatDGuardCatches cheats in combat, movement, building, inventory and packets; free up to 30 online
BackupsYour host's panel, a script or a pluginScheduled copies of worlds and configs

The full list, with picks for survival, anarchy and minigames: must-have plugins.

Permissions: LuckPerms instead of OP

An operator (OP) gets every command at once, including the ones that can break the server. Give OP to yourself only — op <name> from the console — and hand out permissions to staff and players in groups with LuckPerms. A moderator needs kick, mute and player checks, not stop or item spawning.

If the server lets in players without a premium account (online-mode=false), install an authentication plugin first — otherwise anyone can join under an admin's name, with all of the admin's permissions.

Protection from cheaters

A vanilla server barely checks players: at best it kicks someone for flying in survival. It doesn't see KillAura in fights, Scaffold on builds, Nuker in mines, or Speed and Fly across the map. Without an anticheat, the first cheater wrecks your economy, leaderboards and events — and honest players leave.

Install the anticheat before you open, not after the first report. DGuard watches every front at once — combat, movement, building and world, inventory, packets — and in our comparison it has a check for every one of the 47 kinds of cheats. It runs on Paper and Leaf 1.21–26.3, with 1.21.11 as the main version. Up to 30 players online DGuard is free: one server, no time limit, no card, and the same protection as on paid plans. Setup takes four steps:

  1. 1

    Get a key

    Sign up and add a server in the panel — it issues a dg_… key. It's shown once, so copy it right away.

  2. 2

    Install PacketEvents

    DGuard reads packets through the PacketEvents plugin and needs its latest release — not a dev or SNAPSHOT build. Put it in plugins/.

  3. 3

    Add DGuard.jar and paste the key

    DGuard.jar goes into plugins/ too, and the key into plugins/DGuard/config.yml, field license.key.

  4. 4

    Restart the server

    /dguard license shows the license state, and the server turns “Online” in the panel. New DGuard versions install themselves on restart from then on.

No plugin anticheat sees X-Ray: the cheat only changes what the client draws. Paper's built-in anti-xray, which hides ores, is the answer — see X-Ray protection. Choosing an anticheat for your mode: the best Minecraft anticheats. Full server protection, step by step: the guide.

Backups

A backup isn't for “if”, it's for “when”: a broken plugin, griefers, a bad update. Back up three things: the world folders, the server configs, and plugins with their configs. Keep several copies from different days, and not on the same disk as the server.

Back up on a schedule and always before updating the server software or plugins. Every so often, check that the server actually comes up from a copy. On a game host, look at the panel's built-in backups first. Schedules, tools and restoring: server backups.

Updates without surprises

Paper recommends updating at least once a week, but not automatically: update when you can watch the console. The order: backup → new plugin versions into plugins/update → stop the server → replace paper.jar → start and read the log. Plugins in plugins/update are swapped in on startup. Never replace a .jar on a running server.

Be careful with Minecraft version upgrades: a world opened on a newer version can't go back to an older one. Before upgrading, make sure your key plugins support the new version — DGuard's list is on the versions page.

Rules and moderation

Rules come before the first ban: players need to know what gets them punished, and moderators need something to point to. Spell out what counts as cheating, griefing and abuse, and which punishment goes with what. The rules generator builds a set for your game mode.

Recruit moderators early and give them tools, not OP: LuckPerms permissions, a punishment log with reasons, a clear process for reports. How to build the team: moderation team.

Pre-launch checklist

  • Right Java version, the server starts from a script, -Xms equals -Xmx, and the OS has memory to spare.
  • EULA accepted; online-mode, white-list, max-players and view-distance checked in server.properties.
  • Port open: a friend on another network joins without errors.
  • OP is yours alone; staff and player permissions are LuckPerms groups.
  • Block logging, ViaVersion (if needed) and an anticheat installed; everything green in /plugins.
  • Scheduled backups set up and restored at least once as a test.
  • Rules published; moderators know how to handle a report.
  • The server survived a test crowd: /spark health (spark ships with Paper since 1.21) shows a steady 20 TPS.

FAQ

Can I make a Minecraft server for free?

Yes: Java, Paper and most plugins are free, and you can run the server on your own computer. You only pay for a host or VPS once the server needs to run around the clock. The DGuard anticheat is free up to 30 players online.

Which Java version does a Minecraft server need?

Per Paper's docs: Java 21 for 1.20–1.21.11 and Java 25 for 26.1 and newer. The wrong Java is a common reason a server won't start.

Why does my server stop right after starting?

Usually the EULA isn't accepted: open eula.txt and set eula=true. Other causes are the wrong Java version or a wrong .jar name in the script; the exact error is in logs/latest.log.

How do my friends join my server?

On the same network, by your computer's local IP. Over the internet, forward TCP port 25565 on your router and give them your public IP — or run the server on a host or VPS, where the panel gives you the address.

Paper or the vanilla server?

For a plugin server, Paper: vanilla doesn't load plugins. Paper is a drop-in replacement for Spigot and CraftBukkit and converts a vanilla world automatically.

Does a small server need an anticheat?

Yes: cheaters join small servers too, and every honest player who leaves is felt more there. DGuard is free up to 30 players online, with the same protection as on paid plans.

Sources

All sections

Run the best anticheat for modern Minecraft

DGuard catches all 47 kinds of cheats in our comparison — the closest rival, Intave, has 27. Full protection on every plan, free up to 30 players online.