Sofia runs OrbitHost game stacks — FiveM FXServer, Minecraft Paper/Purpur, and Pterodactyl Panel + Wings. She tunes tick rates, egg configs, and DDoS-aware ports so EU RP and survival communities stay online.
Pick the right VPS shape
Minecraft cares about single-thread performance, RAM, and disk latency. Ryzen NVMe KVM VPS in Frankfurt or Amsterdam is a strong default for EU players.
OrbitHost `/vps-for-minecraft` and Pterodactyl eggs cover panelized hosting; this article is the SSH path for full control of jars and flags.
Install Java 21
Use a headless JRE on the server. Confirm `java -version` before downloading Paper. Mixing major Java versions across scripts is a classic “works on my PC” failure.
sudo apt update
sudo apt install -y openjdk-21-jre-headless curl screen
java -version
sudo useradd -m -s /bin/bash mc
sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp
sudo ufw enableDownload Paper and accept the EULA
Fetch the Paper build for your Minecraft version from papermc.io (or use their API). Place it in `/home/mc/server` and create `eula.txt` with `eula=true` only after you agree to Mojang’s EULA.
sudo -u mc -i
mkdir -p ~/server && cd ~/server
# Example: pin a version — replace with current Paper API URL
curl -Lo paper.jar "https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/BUILD/downloads/paper-1.21.4-BUILD.jar"
echo "eula=true" > eula.txtStart script with sensible memory flags
Set `-Xms` and `-Xmx` to the same value for steadier performance, leaving RAM for the OS. Aikar’s flags (or current Paper recommendations) reduce GC stutter on busy servers.
Never allocate more heap than the VPS has free — the OOM killer will surprise you mid-raid.
cat > ~/server/start.sh << 'EOF'
#!/usr/bin/env bash
cd "$(dirname "$0")"
java -Xms4G -Xmx4G \
-XX:+UseG1GC -XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-jar paper.jar --nogui
EOF
chmod +x ~/server/start.sh
screen -S mc ./start.shserver.properties essentials
After the first boot, edit `server.properties`: motd, max-players, view-distance, simulation-distance, and online-mode. Lower view/simulation distance if TPS dips before you buy more CPU.
For offline cracked networks you accept the security tradeoffs yourself; most public EU servers keep online-mode true.
motd=EU Survival \| OrbitHost NVMe
max-players=40
view-distance=8
simulation-distance=6
online-mode=true
network-compression-threshold=256
spawn-protection=16Plugins, backups, and updates
Drop plugins into `plugins/` and restart. Prefer well-maintained Paper plugins that match your MC version. Schedule tar/rsync backups of the world folders and `plugins` config — worlds are irreplaceable, jars are not.
Update Paper on a staging copy first when you jump minor versions. Chunk format and plugin APIs both move.
- Back up world/, world_nether/, world_the_end/
- Version-pin plugin jars in a changelog
- Watch timings / spark for tick hogs
- Use Pterodactyl if you want panel installs
Optional systemd service
When you outgrow `screen`, wrap the start script in systemd with `Restart=on-failure`. Combine with automated backups and you have a maintainable small-community host.
Larger networks often move to Pterodactyl Wings so staff can restart servers without SSH. See our Pterodactyl install guide when you are ready.
[Unit]
Description=Minecraft Paper
After=network.target
[Service]
User=mc
WorkingDirectory=/home/mc/server
ExecStart=/home/mc/server/start.sh
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetRelated products
FAQ
Paper or Purpur?
Both are high-performance forks. Purpur builds on Paper with extra gameplay toggles. For most survival servers, either is fine — pick one and keep versions consistent with your plugins.
How much RAM?
A small vanilla-like Paper world can live in 2–4 GB. Modpacks and heavy plugin stacks want 6–12 GB+. Leave headroom for the OS and backups.
Java version?
Match the Minecraft version requirements. Modern Paper builds typically want Java 21. Install Temurin or the Ubuntu `openjdk-21-jre-headless` package.
Bedrock support?
This guide is Java Edition. For Bedrock/Geyser setups, add Geyser/Floodgate plugins and open the additional UDP ports those bridges need.
