How to make a Minecraft server
Your own Minecraft server gives you full control over the game, from the player list to the plugins you install. This guide takes you through the whole process: downloading the .jar file, configuring the server and opening it up to your friends.
Hardware requirements
Before you start, make sure your computer (or VPS) meets the minimum requirements. For 2-5 players you need:
- CPU: at least 2 cores, 4+ cores recommended. Minecraft is single-threaded for its key operations, so clock speed is what counts
- RAM: at least 4 GB of free memory (2 GB for the server itself plus the system). For 10+ players, allocate 4-6 GB to the server
- Storage: an SSD is practically a must; an HDD causes lag when chunks load
- Network: a stable connection with at least 5 Mbps upload. The more players, the higher the requirements
- Java: Java 21 (Adoptium/Temurin), required since Minecraft 1.20.5
If you're planning a server for more than 20 people or with heavy mods, consider paid Minecraft hosting right away. You'll save time and avoid problems with ports and the bandwidth of your home connection.
Choosing server software
There's no single "Minecraft server": there are several implementations, each with its own strengths.
Vanilla (the official server.jar)
You download it from minecraft.net/download/server. No plugins, no modifications: pure Minecraft, exactly as Mojang designed it. It's good for learning and for playing with a small group, but it lacks admin tools and optimizations.
Paper
The most popular server software in 2026. Paper is a fork of Spigot with hundreds of performance fixes: the server runs more smoothly, chunks load faster and TPS holds at 20 even under heavy load. It supports all Bukkit/Spigot plugins. Download it from papermc.io.
Spigot
Paper's older sibling, still popular but with fewer optimizations. Its only advantage over Paper is 100% compatibility with some older plugins that rely on NMS internals. You build it with the BuildTools tool.
Fabric
If you want mods rather than plugins, Fabric is your pick. It's a lightweight mod loader that gets quick updates for new Minecraft versions. Keep in mind that Fabric uses mods, not plugins: it's a completely different ecosystem from Paper/Spigot.
Our recommendation: For most players, Paper is the best choice. It combines performance with a huge plugin library. We only recommend Vanilla if you deliberately don't want any changes.
Step-by-step installation
The instructions below are for Paper, but the process is almost identical for Vanilla and Spigot: you just swap the .jar file.
1. Install Java 21
Download Adoptium Temurin 21 LTS from adoptium.net. On Windows, run the installer and tick the option to add Java to PATH. On Linux:
sudo apt update && sudo apt install temurin-21-jdk 2. Download the server file
Create a new folder (e.g. minecraft-server), download the paper-1.21.4.jar file from papermc.io and put it in that folder.
3. First launch
Open a terminal in the server folder and run:
java -Xmx4G -Xms4G -jar paper-1.21.4.jar --nogui The -Xmx4G parameter allocates 4 GB of RAM. Adjust it to your needs, but don't give the server more than 75% of your available RAM.
The server generates its config files and stops with a message about the EULA.
4. Accept the EULA
Open the eula.txt file in a text editor and change eula=false to eula=true. This means you agree to Mojang's terms of use.
5. Start it again
Run the same command again. The server generates the world and is ready to play. In the console you'll see a "Done!" message with the startup time.
Configuring server.properties
The server.properties file is the heart of your server's configuration. The most important options:
- server-port=25565 - the default port. Only change it if you run several servers on one machine
- max-players=20 - the player limit. Set it realistically for your server's resources
- difficulty=normal - the difficulty: peaceful, easy, normal, hard
- gamemode=survival - the default game mode. Options: survival, creative, adventure, spectator
- motd=My Minecraft server - the message shown in the server list in the game
- online-mode=true - verifies players' accounts. Never turn it off unless you use an authentication plugin (e.g. AuthMe) on a server with Geyser
- view-distance=10 - the chunk render distance. Lower it to 6-8 if the server lags
- spawn-protection=16 - the spawn protection radius in blocks. Set it to 0 if you use a protection plugin
- white-list=false - change it to true if you only want to let in selected players
- enable-command-block=false - turn on command blocks if you need them
After changing options, stop the server with the stop command in the console and then start it again.
Port forwarding: access from the internet
If you run the server on your home computer and want friends to connect from outside your local network, you have to forward a port on your router.
How to do it
- Check the local IP of the computer running the server (
ipconfigon Windows,ip addron Linux) - Log in to your router's admin panel (usually
192.168.0.1or192.168.1.1) - Find the "Port Forwarding" or "Virtual Servers" section
- Add a rule: external port 25565, internal port 25565, protocol TCP, and your computer's IP address
- Save, and restart the router if needed
Give your friends your public IP address (check it on whatismyip.com). Keep in mind that a dynamic IP from your internet provider can change, so consider a free domain from a service like No-IP.
Note: Sharing your home IP comes with risks. If the server is going to be public, you're much better off buying Minecraft hosting, which gives you a static IP, DDoS protection and easier management.
Server security
Even a small server for friends can be attacked. Basic protection measures:
- Don't turn off online-mode - it's the only layer that verifies players' identities. Turning it off lets anyone join under any name
- Use a whitelist - on a private server, set
white-list=trueand add players by hand with/whitelist add nick - Install a protection plugin - CoreProtect logs every action (who broke what), WorldGuard protects areas and EssentialsX gives you basic moderation commands
- Back up regularly - copy the
world/folder (andworld_nether/,world_the_end/) at least once a day. On Linux, set up a cron job withtar - Keep your software updated - Paper and plugins regularly patch security holes. Don't ignore updates
- Don't give OP to everyone - operator status gives full power. Use a permissions plugin (LuckPerms) to grant specific commands
Hosting vs. your own computer
Running a server on your home PC is free, but it has serious limitations: the computer has to be on 24/7, a home connection has limited upload, there's no DDoS protection, and a power cut means the server goes offline.
Professional Minecraft hosting solves these problems: you get a fixed address, a control panel, automatic backups and technical support. Prices start at about 15 PLN (Polish zloty) a month.
If you don't want to pay, check out free Minecraft hosting. It has limitations (RAM, player and uptime limits), but it's enough for testing and small groups.
| Criterion | Your own PC | Paid hosting |
|---|---|---|
| Cost | 0 PLN (electricity bill) | 15-100 PLN/month |
| 24/7 availability | Only while the PC is on | Yes |
| DDoS protection | None | Yes |
| Port forwarding | Needs setting up | Not needed |
| Performance | Depends on your hardware | Scalable |
| Backups | Manual | Automatic |
Invite players to your server
First, ask a friend to test the connection from outside your network. Give them the server address, the port, the game edition and the supported versions. On a private server, add their name to the whitelist before you send the invite.
When you open the server to everyone, submit it to our Minecraft server list and to minecraft-lista.pl, our partner server list. In the description, list the game modes, the rules and how to contact the staff. That way players will know what to expect when they join.