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

Want to play Minecraft with friends without relying on someone else’s server? Setting up your own gives you full control over the rules, mods, and who can join. There are three main routes: LAN play for a quick same-network session, a dedicated server running on your own hardware, or a hosted server through a third-party provider. This guide covers all three, plus plugins, mods, RAM tuning, and security.

Method 1: LAN Play (Quickest Option)

LAN play is the fastest way to get friends together — no downloads, no port forwarding, no setup. Every device must be on the same Wi-Fi or wired network.

  1. Open Minecraft Java Edition and load a singleplayer world.
  2. Press Esc and click Open to LAN.
  3. Choose a game mode and whether to allow cheats, then click Start LAN World.
  4. Other players on the same network launch Minecraft, click Multiplayer, and your world appears automatically in the server list.

LAN sessions close when the host closes Minecraft. For persistent multiplayer, you need a dedicated server.

Method 2: Java Edition Dedicated Server

A dedicated server runs independently so anyone can join at any time — even when you’re not playing.

Requirements

  • Java 21 (current LTS) — download from Adoptium or use the bundled JRE from the Minecraft launcher. Run java -version in a terminal to confirm.
  • RAM: 4 GB minimum for a small server (8 GB+ recommended for 10+ players or mods).
  • A stable internet connection with upload speed of at least 5 Mbps per 5 players.

Step 1: Download server.jar

Go to minecraft.net/download/server and download the latest minecraft_server.X.X.X.jar. Create a dedicated folder (e.g., C:\MinecraftServer\) and place the JAR inside.

Step 2: Run the Server for the First Time

Open a terminal in your server folder and run:

java -Xmx4G -Xms1G -jar minecraft_server.X.X.X.jar nogui

The server will exit immediately after generating some files, including eula.txt. The -Xmx4G flag sets the maximum RAM to 4 GB — adjust this to match your hardware.

Step 3: Accept the EULA

Open eula.txt and change eula=false to eula=true. Save and close. This confirms you agree to Mojang’s End User Licence Agreement.

Step 4: Configure server.properties

Open server.properties in any text editor. Key settings to know:

PropertyDefaultWhat It Does
gamemodesurvivalSets default game mode (survival, creative, adventure)
difficultyeasyServer difficulty (peaceful, easy, normal, hard)
max-players20Maximum concurrent players
server-port25565The port clients connect to (Java Edition)
white-listfalseEnable to only allow listed players
pvptrueAllow player-vs-player combat
motdA Minecraft ServerMessage shown in the server list
level-seed(blank)World generation seed

Save the file, then run the server again with the same java -Xmx4G ... command. This time it will fully start and generate the world.

Step 5: Port Forwarding

For players outside your home network to connect, you need to forward TCP port 25565 through your router:

  1. Find your router’s admin panel IP (usually 192.168.0.1 or 192.168.1.1) and open it in a browser.
  2. Log in and navigate to Port Forwarding (sometimes under “Advanced” or “NAT”).
  3. Create a new rule: Protocol: TCP, External port: 25565, Internal port: 25565, Internal IP: the local IP of your server machine (e.g., 192.168.1.50).
  4. Save and apply.

Give friends your public IP address (find it at whatismyip.com). They add it as a server in Minecraft’s Multiplayer menu. For a friendlier address, set up a free Dynamic DNS (DDNS) service like No-IP.

Method 3: Bedrock Edition Dedicated Server

Bedrock Dedicated Server (BDS) lets players on Windows 10/11, Xbox, mobile, and Nintendo Switch all join the same world. The setup process is similar to Java, but there are key differences:

  • Download: Get BDS from minecraft.net/download/server/bedrock (Windows or Ubuntu). No Java required.
  • Default port: 19132 UDP (not 25565 TCP). Forward UDP port 19132 in your router instead.
  • server.properties: Similar keys to Java, but uses server-port=19132 and server-portv6=19133.
  • Allowlist: Uses allowlist.json instead of Java’s whitelist.json.
  • No plugins: BDS does not support Bukkit/Spigot plugins. Addons and behaviour packs are the Bedrock equivalent.

Bedrock is ideal when your group plays across different devices. Java is better for heavy modding and plugin use.

Plugins and Mods: When to Use What

The standard vanilla server.jar doesn’t support plugins. To add them, you need a different server platform:

  • Plugins (administration, economy, protection): Use Paper (a high-performance Spigot fork). Paper is the most widely recommended plugin server for 2025 — faster than Spigot and supports all Bukkit plugins.
  • Mods (gameplay overhauls, new content): Use Forge or Fabric. For a deep dive on choosing between Forge and Fabric, check our dedicated guide. All players must run the same mod loader and mods to connect.

You cannot easily mix plugins and mods. If you want both, look into Quilt or Mohist, though these are less stable.

Recommended Plugins for Quality-of-Life Multiplayer

Running a Paper server? These are the most useful plugins to install on day one:

  • EssentialsX — 100+ commands including /home, /warp, /tpa, /kit, and basic economy. The backbone of most servers.
  • LuckPerms — The gold-standard permissions plugin. Lets you assign player ranks and restrict/grant commands via a web editor.
  • WorldGuard + WorldEdit — Protect regions from griefing and make bulk terrain edits. For installing mods and plugins, the process shares similarities — see our installation guide for details.
  • CoreProtect — Logs all block changes. Lets you roll back grief by any player with a simple command.
  • Dynmap — Real-time web-based map of your world. Great for community servers.

Install plugins by dropping the .jar file into the plugins/ folder and restarting the server.

RAM and Performance Tips

  • Vanilla/small server (1–5 players): 2–4 GB RAM. Use -Xmx2G.
  • Medium server (10–20 players) or light plugins: 4–6 GB. Use -Xmx6G.
  • Modded server (Forge/Fabric with 50+ mods): 8–12 GB minimum. Use -Xmx10G.
  • Use Paper instead of vanilla or Spigot for better tick rates and async chunk loading.
  • Set view-distance=8 in server.properties (default 10) to reduce CPU load.
  • Use the Aikar JVM flags (widely documented) for garbage collection tuning on servers with 12+ GB RAM.

Security Basics

  • Enable the whitelist: Set white-list=true in server.properties and add players with /whitelist add <username> from the server console.
  • Be careful with OP: Operators have full admin power including the ability to destroy the world. Only OP people you trust completely. Use LuckPerms for granular permissions instead.
  • Close RCON: The Remote Console port (25575) lets anyone with the password run console commands. Leave enable-rcon=false unless you specifically need it.
  • Don’t expose your home IP permanently: Use a DDNS service and consider a simple VPN or reverse proxy if privacy is a concern.

Hosting Alternatives to Self-Hosting

Self-hosting requires your PC to stay on and your internet connection to stay stable. If that’s not practical, these alternatives are worth considering:

  • Aternos — Completely free. Servers wake on demand and sleep when empty. Queue-based during peak hours. Best for small friend groups on a budget.
  • Minehut — Free tier with limited players. No queue system. Good for quick casual play.
  • Apex Hosting — Paid ($4–$10/month). 99.9% uptime, one-click modpack installs, 24/7 live support. Best for serious servers.
  • FalixNodes — Free tier with 4 GB RAM (ad-supported). Premium plans from $2.50/GB. Good middle ground.

Paid hosts handle port forwarding, DDNS, and uptime for you — worth it if your group plays frequently.

Common Problems and Fixes

  • Friends can’t connect: Check port forwarding is set to TCP 25565 (Java) or UDP 19132 (Bedrock), and that your OS firewall allows the port. Try canyouseeme.org to test if the port is open externally.
  • Server crashes on startup: Check Java version with java -version. Minecraft 1.20+ requires Java 21. Mismatched versions cause immediate crashes.
  • High lag / low TPS: Reduce view-distance, switch to Paper, and increase allocated RAM. Use /tps in-game (Paper/Spigot) to see your current tick rate — 20 TPS is perfect.
  • EULA error: You must set eula=true in eula.txt before the server will start.
  • Can’t connect on same PC: Use localhost or 127.0.0.1 as the server address in Minecraft. Your public IP won’t work on the same machine due to NAT loopback issues.

Conclusion

Setting up a Minecraft server is genuinely accessible once you know the steps. LAN play takes two minutes. A Java Edition dedicated server takes about 20 minutes from download to your first connection. Bedrock adds cross-platform access at the cost of plugin support. Pick the method that suits your group, allocate enough RAM, lock down the whitelist, and you’re ready to play on your own terms. For players looking to go further with mods, see our guide to Forge vs Fabric to choose the right mod loader for your server.

Sources

References

  1. Minecraft Wiki. Tutorial: Setting up a Java Edition server. minecraft.wiki
  2. Microsoft Learn. Getting Started with Bedrock Dedicated Server. learn.microsoft.com
  3. Mojang. How to Setup a Minecraft: Java Edition Server. help.minecraft.net
  4. Wabbanode. 15 Essential Plugins for Any Minecraft Server (2025 Guide). wabbanode.com
Michael R.
Michael R.

I've been playing video games for over 20 years, spanning everything from early PC titles to modern open-world games. I started Switchblade Gaming to publish the kind of accurate, well-researched guides I always wanted to find — built on primary sources, tested in-game, and kept up to date after patches. I currently focus on Minecraft and Pokémon GO.