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.
- Open Minecraft Java Edition and load a singleplayer world.
- Press Esc and click Open to LAN.
- Choose a game mode and whether to allow cheats, then click Start LAN World.
- 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 -versionin 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 noguiThe 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:
| Property | Default | What It Does |
|---|---|---|
gamemode | survival | Sets default game mode (survival, creative, adventure) |
difficulty | easy | Server difficulty (peaceful, easy, normal, hard) |
max-players | 20 | Maximum concurrent players |
server-port | 25565 | The port clients connect to (Java Edition) |
white-list | false | Enable to only allow listed players |
pvp | true | Allow player-vs-player combat |
motd | A Minecraft Server | Message 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:
- Find your router’s admin panel IP (usually
192.168.0.1or192.168.1.1) and open it in a browser. - Log in and navigate to Port Forwarding (sometimes under “Advanced” or “NAT”).
- 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). - 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=19132andserver-portv6=19133. - Allowlist: Uses
allowlist.jsoninstead of Java’swhitelist.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=8inserver.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=trueinserver.propertiesand 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=falseunless 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/tpsin-game (Paper/Spigot) to see your current tick rate — 20 TPS is perfect. - EULA error: You must set
eula=trueineula.txtbefore the server will start. - Can’t connect on same PC: Use
localhostor127.0.0.1as 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
- Minecraft Wiki. Tutorial: Setting up a Java Edition server.
- Microsoft Learn. Getting Started with Bedrock Dedicated Server.
- Mojang. How to Setup a Minecraft: Java Edition Server. help.minecraft.net
- Wabbanode. 15 Essential Plugins for Any Minecraft Server (2025 Guide).
References
- Minecraft Wiki. Tutorial: Setting up a Java Edition server. minecraft.wiki
- Microsoft Learn. Getting Started with Bedrock Dedicated Server. learn.microsoft.com
- Mojang. How to Setup a Minecraft: Java Edition Server. help.minecraft.net
- Wabbanode. 15 Essential Plugins for Any Minecraft Server (2025 Guide). wabbanode.com
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.
