Pre-launch Ordering isn’t open yet. Email us and we’ll tell you when it is

Getting started

How to make a Minecraft server

Download the server software, run it once, set eula=true in eula.txt, then start it with a fixed amount of RAM. Most of the real decisions come before that: which edition, which software, and where it runs.

Updated 2 November 2026

Purple voxel harbour at dusk with glowing server blocks stacked on a wooden dock and a small wisp mascot floating above the water.

Wispdock’s control panel isn’t built yet. Where a step says “in your control panel”, use whatever your host gives you for files, the console and start/stop. The Minecraft side works the same everywhere.

Decide the edition before choosing a host: compare Minecraft Java hosting with Bedrock hosting for the devices your friends use.

1. Pick Java or Bedrock

Start with what your friends play on, because the two editions can’t join each other’s servers on their own.

  • Java Edition runs on Windows, macOS and Linux. It’s the edition with plugins, mods and modpacks, and most server guides (this one included) are written for it.
  • Bedrock Edition runs on Windows, phones, tablets, Xbox, PlayStation and Switch. Its server software has no plugin or mod loader in the Java sense.

For a mixed group, the usual answer is a Java server with the Geyser plugin, which lets Bedrock players join on port 19132. That setup has its own guide: Java, Bedrock and crossplay with Geyser.

If everyone plays Bedrock

Mojang publishes Bedrock Dedicated Server for Windows and Ubuntu on minecraft.net. It doesn’t need Java. Unzip it, edit its server.properties, and run bedrock_server.exe on Windows, or this on Linux:

LD_LIBRARY_PATH=. ./bedrock_server

Bedrock uses UDP port 19132 and calls its whitelist an allow list (allow-list=true and allowlist.json). The rest of this guide follows the Java path.

2. Choose the server software

A Java server is a single .jar file. Which one you download decides whether you can add plugins, mods or neither.

SoftwareGood forWhere to get it
VanillaThe game exactly as Mojang ships it. No plugins, no mods.minecraft.net/download/server
PaperPlugins (Bukkit, Spigot and Paper ones) and better performance than vanilla. Clients stay unmodded.papermc.io
FabricMods, including lightweight performance mods. Players install the same mods.fabricmc.net
NeoForge / ForgeMost large modpacks.neoforged.net / files.minecraftforge.net

If you don’t plan on mods, we’d start with Paper. Your friends join with the normal game, and you can add a whitelist, land claims or backups later without starting over. The trade-offs are covered in choosing your server software, and if you’re stuck between Paper and its relatives, in Paper vs Spigot vs Purpur. For a modpack, skip ahead to installing a modpack: packs come with their own server files.

3. Decide where it runs

The server only exists while its process runs. That one fact decides most of this step.

On your own PC

Free, and fine for a weekend with friends. The catches: the world is offline whenever the PC is, the game you play on the same machine competes for CPU and memory, and friends outside your house need a way in. Normally that’s port forwarding TCP 25565 on your router to your PC. Some internet providers put you behind carrier-grade NAT, where port forwarding can’t work at all. Playing without port forwarding covers tunnels, virtual LANs and the other ways round it.

Minecraft’s main game loop runs mostly on one CPU thread, so a fast recent CPU matters more than a lot of cores. For memory, see how much RAM a server needs. A few friends on vanilla or Paper fit in 2 to 4 GB.

On a host

A host runs the server on a machine in a data centre. It stays online when you’re asleep, the address doesn’t change, and nobody has to touch a router. You pay monthly. You still get the files and a console, usually in a control panel, and the steps below are the same except that the host often writes the start command for you.

4. Install Java 21

Skip this on a host. On your own machine, Minecraft Java 1.20.5 and newer need at least Java 21. Newer Minecraft releases can raise that again, so check the version notes when you update. Install a JDK such as Eclipse Temurin from adoptium.net, then open a terminal and check:

java -version

It should print 21 or higher. If the server later stops with UnsupportedClassVersionError, the Java it found is older than the server needs. On Windows that often means an old Java is still first on the PATH.

5. Download the server and accept the EULA

  1. Make an empty folder for the server, for example minecraft-server. It will fill up with the world, logs and config files.

  2. Download the jar for your version and put it in the folder. Rename it to server.jar so the commands below work as written. Paper jars come with the version and build in the name; check the download page for the current build.

  3. Open a terminal in that folder and run the server once:

    java -Xms2G -Xmx2G -jar server.jar nogui

    It stops almost at once with a message saying you need to agree to the EULA. That’s expected. It has created eula.txt and server.properties.

  4. Open eula.txt. The file links to the Minecraft EULA, which is worth reading once: it also sets the rules for what you can charge players for. If you agree, change the last line to:

    eula=true

On a host you do the same edit in the file manager in your control panel. Some hosts ask you to accept the EULA on the first start instead.

6. Write a start script

Typing the Java command every time gets old. Save it in a script next to server.jar.

On Windows, start.bat:

@echo off
java -Xms4G -Xmx4G -jar server.jar nogui
pause

On Linux or macOS, start.sh:

#!/bin/sh
java -Xms4G -Xmx4G -jar server.jar nogui

Make it executable once with chmod +x start.sh, then run ./start.sh.

  • -Xmx4G is the most memory the server may use, and -Xms4G is what it starts with. Setting both to the same value is normal for a server.
  • Leave memory for the operating system and, on a home PC, for your own game. Giving Java every last gigabyte makes things worse. The RAM guide has the tuned JVM flags most Paper servers use.
  • nogui stops vanilla from opening its own status window. The terminal does the same job.

The first real start generates the world, which takes a minute or so. It’s ready when the console prints a line like:

[Server thread/INFO]: Done (8.214s)! For help, type "help"

To shut down, type stop in the console. That saves the world first. Closing the window or killing the process can lose the last few minutes of play.

Fabric’s server launcher jar starts with the same command. Modern Forge and NeoForge are different: their installer creates run.bat and run.sh, and memory goes in user_jvm_args.txt. The Forge and NeoForge guide walks through it.

7. Change the first settings

Stop the server and open server.properties. It’s read only at startup, so edits made while the server runs are ignored until the next restart. A few lines worth setting on day one:

motd=Friday night survival
difficulty=normal
white-list=true
simulation-distance=8

motd is the text under the server name in the list. white-list=true keeps out anyone you haven’t added, which matters as soon as the address is public. A simulation-distance of 8 instead of the default 10 saves CPU without most players noticing. Every other line is covered in server.properties explained.

Start the server again and add people from the console. In the console you can leave off the slash:

whitelist add YourName
whitelist add FriendName
op YourName

op gives full control of the server by default, including /stop and /op itself. Give it only to people you’d hand the files to. Whitelist and ops covers permission levels, and LuckPerms for finer control on Paper.

Before anyone builds something they care about, decide how you’ll back up. With the server stopped, a copy of the world folder is a complete backup. Backups and restore has a routine that doesn’t depend on remembering.

8. Invite your friends

Each friend needs two things from you: the address and the exact Minecraft version.

  • On a host, the address is in your control panel: a hostname or an IP, sometimes with a port after a colon.
  • On a home PC, friends outside your house use your public IP, which sites like ifconfig.me show, plus the port if you changed it from 25565. People on your own Wi-Fi use your PC’s local address instead, from ipconfig on Windows or ip addr on Linux. It usually starts with 192.168. or 10..

They add it under Multiplayer, Add Server, with the matching version selected in the launcher. The click-by-click steps for Java and Bedrock are in connecting to your server. If the server doesn’t show up, fixing “Can’t connect to server” goes through the causes in the order they usually turn up.

Frequently asked questions

Is it free to make a Minecraft server?

The server software is free: Mojang’s server.jar, Paper, Fabric and the rest cost nothing. What costs money is the machine it runs on. On your own PC that’s electricity and your internet connection; with a host it’s a monthly fee.

Can the server stay online when my PC is off?

Not if it runs on that PC. The world only exists while the server process is running. For a world your friends can join at any hour, rent a host or use Realms.

Do my friends need the same Minecraft version as the server?

Yes. Java players need the exact version the server runs, picked in the launcher under Installations. The ViaVersion plugin on Paper can let newer clients join an older server, but matching versions is simpler.

What does nogui do in the start command?

It stops the vanilla server from opening its own small window with a player list and log. The console in your terminal or host panel does the same job, and the window costs memory you would rather give the world.

How many players can my server hold?

The max-players setting defaults to 20, but the real limit is RAM and CPU. A few friends on Paper fit in 4 GB. A large modpack with ten players wants 8 GB or more.

If you’d rather not run it at home, Wispdock’s draft plans are on the pricing page. Prices are drafts and ordering isn’t open yet.

Still stuck? Send us the details and your latest.log.