How to Make a Minecraft Server: Complete Setup Guide
Quick answer
To make a Minecraft server, pick your server software first: Paper for plugins, Fabric or NeoForge for modpacks, or Bedrock Dedicated Server for a Bedrock-only group. Run it on your own PC or a hosted server with the right Java version, accept the EULA by setting eula=true, configure server.properties, op yourself, set up permissions with LuckPerms, schedule backups and share your IP and port so friends can join from the Multiplayer menu.
Which Minecraft server software should you choose?
For most Java Edition servers the right choice is Paper: it runs Bukkit and Spigot plugins, handles chunks and entities far more efficiently than the official server, and ships with the spark profiler built in. The real decision is a fork in the road. Plugins run only on the server, so players join with an unmodified game. Mods change the game itself and usually have to be installed on every player's client too. You pick a plugin platform or a mod loader, not both.
Vanilla is Mojang's own server jar with no plugin support, which suits technical players who need exact vanilla mechanics. Purpur is built on Paper and adds a large set of extra gameplay options in purpur.yml, such as rideable mobs, while running the same plugins. Spigot is the older project Paper grew out of; you compile it yourself with BuildTools, and few new servers pick it today because Paper runs the same plugins faster. Folia splits the world into regions that tick in parallel, but only plugins explicitly marked as Folia-supported will load, and its developers ideally want at least 16 physical cores.
For mods, Fabric is the lightweight loader known for performance mods and quick updates to new versions, while NeoForge, which forked from Forge, and Forge itself host most large content modpacks. Every modpack states which loader and version it needs, and the server must match it exactly. Hybrid servers that promise mods and plugins together do exist, but compatibility is hit or miss, so treat them as a last resort.
| Software | Runs | Best for | Keep in mind |
|---|---|---|---|
| Vanilla | No plugins or mods | Technical players who want exact vanilla behavior | Few tuning options; permissions are op levels only |
| Paper | Bukkit, Spigot and Paper plugins | Most SMP, minigame and community servers | Patches some technical exploits such as TNT duping by default; toggles exist in the config |
| Purpur | Paper plugins | Servers that want extra gameplay options | Updates arrive after Paper's |
| Spigot | Bukkit and Spigot plugins | Plugin developers and older setups | Compiled with BuildTools; slower than Paper |
| Folia | Folia-supported plugins only | Very large, spread-out servers on many-core machines | Most plugins won't load; ideally 16+ physical cores |
| Fabric | Fabric mods | Light modpacks and performance mods | Content mods must be installed on clients too |
| NeoForge / Forge | NeoForge or Forge mods | Large content modpacks | Higher RAM needs; mod versions must match exactly |
| Bedrock Dedicated Server | Add-ons (behavior and resource packs) | Groups that only play Bedrock | Java players can't join; no Bukkit plugins |
Can Bedrock and Java players play on the same server?
Yes: install Geyser and Floodgate on a Java server and Bedrock players on phones, tablets, consoles and Windows can join the same world. Geyser translates the Bedrock protocol into Java's on the fly, and Floodgate lets Bedrock players in without a Java account. Both run as plugins on Paper or Purpur and can also sit on a Velocity proxy. Bedrock uses UDP and Geyser listens on port 19132 by default, so that port, or the extra port your host assigns, must be reachable alongside the Java TCP port. TheCrewHost's Purpur-Geyser-Floodgate server type ships with all three ready to go.
Expect a few rough edges. Bedrock players get a short name prefix by default so their names can't collide with Java accounts, and you whitelist them with Floodgate's fwhitelist command. Some Java mechanics and plugin menus don't translate perfectly, and content from client-side mods won't work at all. Xbox, PlayStation and Switch have no built-in button for adding custom servers, so console players need a workaround. If your whole group plays Bedrock anyway, skip Java and run Mojang's Bedrock Dedicated Server, which supports add-ons but not Bukkit plugins.
Should you host at home or rent a server?
You can run a server on any reasonably modern computer, but hosting at home means the PC stays on around the clock, every player's traffic goes through your upload bandwidth, and you have to forward TCP port 25565 on your router. Many internet providers put customers behind carrier-grade NAT, in which case port forwarding simply won't work, and handing your home IP address to strangers invites DDoS attacks. Home hosting is great for testing with two or three friends; a public community is better off on a proper host.
Whatever machine you use, match the Java version to the Minecraft version: 1.20.5 through the 1.21 releases need Java 21, and the year-numbered releases from 26.1 onward need Java 25. Minecraft runs most of its world simulation on a single main thread, so strong single-core speed matters more than a high core count, and a fast NVMe drive keeps chunk loading and autosaves smooth. For memory, 4 GB is a sensible start for a small Paper server.
Renting takes the networking chores off your plate. At TheCrewHost, Minecraft plans run on AMD Ryzen 9 9950X CPUs with DDR5 memory and NVMe SSDs in an İstanbul data center, install automatically after payment, include free DDoS protection, and come with a web control panel that has a console, a file manager and SFTP access. Plans range from 4 GB to 32 GB of RAM, and you can move up a tier whenever your community grows.
What is the Minecraft EULA and why does the server stop on first launch?
The server stops on its first launch because you haven't accepted Mojang's End User License Agreement yet. That first run creates an eula.txt file containing eula=false; open it, change the value to eula=true, save it and start the server again. The first run already writes a default server.properties you can edit; the second start generates the world folders and the ops, whitelist and ban list files. Accepting is mandatory, and the server refuses to run until you do. On a hosted server, the control panel usually handles this during installation or asks you to confirm it.
The EULA and Mojang's usage guidelines also decide how a server may earn money. Cosmetic items and similar perks can be sold, but selling anything that gives players a gameplay advantage is against the rules, so read the current guidelines before you open a store or a donation page.
Which server.properties settings should you change first?
server.properties is the main settings file, and only a handful of its lines matter on day one. The server reads it at startup, so restart after every edit. Set the values below before inviting anyone and leave the rest at their defaults until you have a reason to change them. Since 1.21.9, PvP, command blocks, Nether access and monster spawning are no longer set in this file; they are game rules now.
- motd: the description shown under your server's name in the multiplayer list
- max-players: the slot cap (default 20); raising it reserves no extra RAM
- view-distance: how many chunks are sent to each player (default 10); 7 to 8 suits busy servers
- simulation-distance: how far mobs, crops and redstone keep ticking; 4 to 6 saves a lot of CPU
- online-mode: keep it true so accounts are verified; set it false only behind a proxy with forwarding
- white-list and enforce-whitelist: admit only listed players and kick anyone removed from the list
- difficulty and gamemode: the world's difficulty and the mode new players start in
- spawn-protection: the radius around spawn where only ops can build; set 0 if a protection plugin handles it
How do you give yourself admin rights and set up permissions?
Type op followed by your username in the server console to become an operator; ops can run every command in game at the default permission level of 4. Op is all or nothing, though, so give it to yourself and perhaps one trusted co-owner, never to moderators. On Bukkit-based servers, ops also pass most plugin permission checks automatically, which is exactly why handing op out casually is dangerous.
For everyone else, install LuckPerms, the standard permissions plugin. You create groups, give each group permission nodes and put players into groups, and because groups can inherit from each other, a moderator automatically gets everything a regular member has. The quickest way to work is the web editor opened with lp editor. From the console, lp creategroup moderator creates a group, lp group moderator permission set essentials.kick true grants a node, and lp user PlayerName parent add moderator adds a player to the group.
Which plugins should a new server install first?
Start small: a handful of well-maintained plugins covers almost everything a new survival server needs. Download them from Hangar, Modrinth or SpigotMC, confirm each one supports your exact Minecraft version, drop the jar into the plugins folder and restart. Avoid the reload command on a live server, since many plugins leak memory or break after it. Current Paper versions already bundle the spark profiler, so you don't need to add it separately.
- LuckPerms for groups and permissions
- EssentialsX for homes, warps, kits, teleport requests and basic moderation
- WorldEdit and WorldGuard for building tools and protected regions
- CoreProtect for block logging and rolling back griefing
- Chunky to pre-generate the world before players arrive
- ViaVersion so players on newer game versions can still join
- Geyser and Floodgate if Bedrock players should join
How do you back up a Minecraft server properly?
A proper backup covers the world folders, the plugins folder, server.properties and the ops, whitelist and ban files, and it is taken either while the server is stopped or after running save-off and save-all flush, followed by save-on once the copy finishes. Copying files while the server is writing chunks can capture a half-saved world. Always take a manual backup right before updating Minecraft, the server jar or a major plugin, because a world opened in a newer version cannot be safely moved back to an older one.
Keep several generations rather than a single copy, since griefing or file corruption is often noticed days later. TheCrewHost takes automatic backups and lets you manage backups yourself from the game panel, and it's still smart to download a copy over SFTP now and then so one version lives entirely off the server. Test a restore at least once before you actually need it.
How do your friends connect to the server?
Java players open Multiplayer, choose Add Server and enter your address. If the server uses the default port 25565, the IP alone is enough; any other port has to be written as IP:port. For a cleaner address, point a domain at the server: an A record works on the default port, while a SRV record named _minecraft._tcp lets players type a short subdomain without any port even when the server uses a different one.
Bedrock players open the Servers tab, tap Add Server and enter the address with the Bedrock port, 19132 by default. If a friend can't get in, the error text usually names the cause: a version mismatch means updating their game or adding ViaVersion, a whitelist message means running whitelist add with their name, and a timeout usually means the server is offline, the port is wrong or, at home, the router isn't forwarding it.
Set up a Minecraft Java server in 8 steps
- 1
Choose edition and software
Decide between Java and Bedrock, then pick Paper for plugins, Fabric or NeoForge for a modpack, or Bedrock Dedicated Server if everyone plays Bedrock.
- 2
Prepare the machine and Java
Rent a hosted server or use a PC that can stay on. Install Java 21 for 1.20.5 to 1.21.x, or Java 25 for 26.1 and newer.
- 3
Download the server jar
Get the jar from the software's official download page and put it in an empty folder, because the server creates all of its files next to it.
- 4
Start once and accept the EULA
Launch it with a command such as java -Xms4G -Xmx4G -jar paper.jar --nogui, let it stop, set eula=true in eula.txt and start it again.
- 5
Edit server.properties
Set motd, max-players, view-distance, simulation-distance and the whitelist, keep online-mode on, then restart so the server picks up the new values.
- 6
Make yourself an operator
Run op with your username from the console, install LuckPerms and create groups for members and moderators instead of giving op to anyone else.
- 7
Add plugins and pre-generate
Put plugin jars into the plugins folder, restart, check the console for errors, then run Chunky to generate the area around spawn before players arrive.
- 8
Back up and invite players
Take a first backup, schedule automatic ones, add friends with whitelist add and send them the address and port.
Frequently Asked Questions
Is it free to make a Minecraft server?
The server software itself is free: Mojang's vanilla server, Paper, Purpur, Fabric and NeoForge cost nothing to download. What you pay for is the hardware it runs on. Hosting on your own PC costs electricity and means keeping the machine on with a forwarded port, while a hosted server trades a monthly fee for reserved resources, a public IP address and DDoS protection. Every Java player still needs their own copy of the game.
How many players can a Minecraft server handle?
max-players is only a cap; the real limit is RAM, CPU speed and how heavy your plugins, farms and view distance are. As a rough guide, a well-tuned Paper server with 4 GB comfortably handles a group of around ten friends, while 8 GB suits a few dozen players with plugins. Modpacks need considerably more memory for the same number of players.
Can I move my singleplayer world to a server?
Yes. Copy the world folder from your game's saves directory to the server, stop the server, and set level-name in server.properties to that folder's name before starting it again. Use the same or a newer Minecraft version than the world was last played in, and keep a copy of the original. Paper can load a vanilla world directly.
Can I use mods and plugins on the same server?
Not with standard software. Paper, Purpur and Spigot run plugins only, while Fabric, NeoForge and Forge run mods only. Hybrid servers such as Arclight or Mohist try to combine mods with Bukkit plugins, but many plugins and mods misbehave on them. For a stable server, pick one approach; on Fabric, server-side mods cover most of what plugins would do.
How do I update my server to a new Minecraft version?
Wait until your server software and every important plugin have released builds for the new version, which can take days or even weeks after a major release. Then stop the server, take a full backup, replace the jar, update your plugins and start it again. Don't test a new version on your only copy: once a world has been opened in a newer version, the only way back is restoring the backup.
Do my friends need a paid Minecraft account?
Java players need a legitimate Java Edition account as long as online-mode is true, which it should be. Turning online-mode off lets anyone join under any name, including an operator's, so it's only safe behind a properly configured proxy. Bedrock players who join through Geyser and Floodgate use their own Bedrock copy and Microsoft account instead of a Java account.
