Hosting on Aternos or a free server means 20-second queue times and random shutdowns. A $20/month RamNode VPS gives you a server that is always online, always yours, and scales from 5 to 50 players. This guide assumes you have Pelican Panel running from Part 1 - if not, you can follow along with a standalone setup.
Prerequisites
This guide assumes Pelican Panel + Wings are running from Part 1. If you are not using Pelican, you can install the Minecraft server directly - each section notes the standalone equivalent.
- Pelican Panel with Wings daemon (Part 1)
- Java 21 installed on the node (required for modern Minecraft)
- At least 2 GB of RAM allocated to the game server
RAM Sizing Table
How much RAM does your Minecraft server actually need?
| Server Type | Players | RAM | VPS Plan |
|---|---|---|---|
| Vanilla | 1-5 | 1 GB | SSD 2G |
| Vanilla | 10-20 | 2-3 GB | SSD 4G |
| Paper/Purpur | 20+ | 3-4 GB | SSD 4G |
| Modpack (Forge/Fabric) | 5-20 | 4-8 GB | SSD 6G-8G |
Note: OS + Wings overhead is roughly 512 MB. Always recommend the next tier up for headroom.
Java Edition via Pelican Panel
Import the Paper MC egg from the Pelican Eggs GitHub repository, create a new server in the Panel, and configure startup flags.
- Go to Admin > Nests > Import Egg
- Import the Paper egg JSON from the Pelican Eggs repository
- Create a new server: set RAM limit (-Xms and -Xmx), disk, and port allocation
- Accept the EULA on first boot via the Panel console
Why Paper?
- Vanilla - the default Mojang server, no optimizations
- Spigot - basic performance improvements, plugin API
- Paper - significant performance gains, async chunk loading (recommended)
- Purpur - Paper fork with additional gameplay tweaks
Java Performance Tuning (Aikar's Flags)
These are Aikar's recommended JVM flags for Minecraft servers. Copy and paste this entire block into your server's startup command.
java -Xms4G -Xmx4G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-jar paper.jar noguiSet -Xms and -Xmx to the same value - this prevents the JVM from wasting time resizing the heap.
Key server.properties settings:
view-distance=10
simulation-distance=8
network-compression-threshold=256
max-tick-time=60000Reducing view-distance from the default 16 to 10 dramatically reduces RAM and CPU usage with minimal visual impact.
Bedrock Edition via Pelican
Deploy a standalone Bedrock Dedicated Server (BDS) for Xbox, mobile, and Windows 10/11 players.
- Import the Bedrock egg from the Pelican Eggs repository
- The egg downloads BDS automatically on first start
- Open port 19132/UDP in your firewall
ufw allow 25565/tcp # Java Edition
ufw allow 19132/udp # Bedrock Edition
ufw reloadTest the connection from an Xbox, mobile, or Windows Bedrock client using your VPS IP and port 19132.
Geyser + Floodgate (Bedrock Crossplay)
Geyser allows Bedrock players (Xbox, mobile, Windows) to join your Java Edition server. Floodgate removes the requirement for Bedrock players to have a Java account. This is a genuine differentiator - very few VPS hosting guides cover this setup.
Setup steps:
- Download the Geyser-Spigot plugin and drop it in your Java server's
plugins/folder - Restart the server to generate Geyser's config.yml
- Edit
plugins/Geyser-Spigot/config.yml:
bedrock:
address: 0.0.0.0
port: 19132
motd1: "My Crossplay Server"
remote:
address: 127.0.0.1
port: 25565
auth-type: floodgate- Download and install the Floodgate plugin to the same plugins folder
- Restart the server - Bedrock players can now join via port 19132
How it works: Geyser translates Bedrock protocol to Java protocol in real time. Floodgate authenticates Xbox/mobile players without requiring a Java Edition account. Both players see the same world.
Automatic Backups
Use Pelican Panel's built-in backup system, or configure rclone for offsite backups.
- Pelican Panel - Configure backup schedule and retention in server settings (local or S3 target)
- rclone to Backblaze B2 - Budget-friendly offsite backup at $0.006/GB
Always test your backup restore process before you actually need it.
Player Management
Key administrative commands via the Pelican Panel console or RCON:
# Give operator status (full permissions)
op PlayerName
# Enable whitelist mode
whitelist on
whitelist add PlayerName
# RCON remote commands
# Available through the Panel console tabOP Permission Levels:
- Level 1 - Bypass spawn protection
- Level 2 - Use /clear, /gamemode, /tp, etc.
- Level 3 - Use /ban, /kick, /op
- Level 4 - Use /stop, /save-all (full server control)
Common Issues
Cannot connect to server
Check UFW rules (ufw status), verify port 25565 is open with nmap -p 25565 your-vps-ip, and ensure the server has finished starting.
Server crashes on startup
Most common causes: wrong Java version (need Java 21 for modern MC), EULA not accepted (eula.txt must say eula=true), or insufficient RAM.
Lag spikes during gameplay
Reduce view-distance to 8-10, check entity count with /debug start, and ensure Aikar's JVM flags are applied.
What's Next
Your Minecraft server is live with Java + Bedrock crossplay support. Part 3 covers Valheim and Palworld dedicated servers - both use SteamCMD and share a similar deployment pattern.
Running a growing community? Upgrade to SSD 6G for modpack headroom - no reinstall required, just resize your VPS.
This guide is part of the Game Server Hosting series:
