← Back to Blog

Game Servers on a VPS: Minecraft, CS2, Rust, Valheim and Palworld Close to Your Players

Published · by RS Computers

Game servers Minecraft VPS

A game server you rent by the slot is someone else's machine with someone else's rules: fixed player counts, a plugin list you cannot extend, and a location chosen for the provider's convenience. A VPS turns that around. You get a Linux (or Windows) server with root access, a public IP of its own and unmetered traffic, you install exactly the server software you want, and you put it in the data centre closest to the people who play on it. This guide covers five popular games to run on your own server, Minecraft, Counter-Strike 2, Rust, Valheim and Palworld: what each one really needs, which ports to open, the mistakes that cost people an evening, and which RS Computers plan fits. Facts and version numbers were checked in October 2026.

Why ping is mostly about distance

Latency is the one thing no amount of hardware fixes. Light in fibre needs about 1 ms of round-trip time for every 100 km of cable, before a single router adds its share, so a server 2,000 km from your players starts with a 20 ms handicap that grows with every detour the route takes. Research on latency in games has long shown that first-person shooters are the first to suffer: in one widely cited study, accuracy with precision weapons fell by about a third once the delay reached 100 ms, while third-person, strategy and building games held up at several times that. Of the five games here, CS2 and gunfights in Rust are the most sensitive to ping; building and exploring in Minecraft, Valheim or Palworld are far more forgiving.

The practical rule: host where your players are. A group of friends in Kosovo, Albania, North Macedonia or elsewhere in the Balkans gets the shortest path from a server in Prishtina; a mixed European community is usually best served from Amsterdam, where most networks meet; Dublin suits players in Ireland and the UK. RS Computers offers the same plans in all three cities, and the plans page shows which locations currently have capacity. If you are unsure, ask a few players to ping the server's address in the first hour and move while the world is still empty.

Why run game servers at RS Computers

One honest note on performance: all five games run their simulation mostly on a single thread, so the speed of one core matters more than the number of cores. Our plans use shared vCPUs, as most cloud servers do, so choose a plan with some headroom rather than the bare minimum and watch the server's own tick metrics after launch.

Which plan for which game?

Memory figures come from each developer's own documentation where it exists, otherwise from the game's wiki or, where noted, from what hosting providers publish. Player counts are sensible starting points, not hard limits.

PlanComfortable for
VPS Micro (2 vCPU, 2 GB, 40 GB NVMe)A vanilla or Paper Minecraft server for a handful of friends with a heap of about 1 GB.
VPS Mini (4 vCPU, 4 GB, 80 GB NVMe)Minecraft (Paper) for around ten players, a Bedrock server, or a Valheim world for a small group. Not CS2: the install alone nearly fills the disk.
VDS Small (4 vCPU, 8 GB, 240 GB NVMe, 10 Gb/s)A 10-slot CS2 server with room for demos and plugins, Minecraft with a 6 GB heap and plugins, a long-lived Valheim world, or, as a tight fit, a Rust server on a 3000 map for a few friends.
VDS Medium (8 vCPU, 16 GB, 480 GB NVMe, 10 Gb/s)Rust on a normal-sized map, Palworld at the developer's stated 16 GB requirement, large Minecraft modpacks, or two light game servers side by side.
VDS Large (16 vCPU, 32 GB, 960 GB NVMe, 10 Gb/s)A full 32-player Palworld server, large Rust maps with many plugins, or a Pterodactyl node hosting servers for a whole community.

VPS Nano is too small for any of these games; it is the right size for a Discord bot or a status page that watches your game server from another location.

Ports at a glance

Most game traffic is UDP. A firewall that only allows SSH and web ports leaves the server running but invisible, and opening the TCP port when the game uses UDP (or the reverse) is the classic "it works for me on the server but nobody can join" mistake.

GameOpen to playersKeep closed or restricted
Minecraft Java25565/tcp25575/tcp (RCON)
Minecraft Bedrock19132/udp (IPv4), 19133/udp (IPv6)none by default
Counter-Strike 227015/udp, plus 27020/udp if you use CSTV27015/tcp (RCON)
Rust28015/udp (game), 28017/udp (query), 28082/tcp (Rust+ app)28016/tcp (WebRCON)
Valheim2456 to 2458/udpnone by default
Palworld8211/udp8212/tcp (REST API), 25575/tcp (RCON)

Every plan includes IPv6, but plan on players connecting over IPv4: most of these servers either do not listen on IPv6 or only partly support it.

Prepare the server once

Order a plan on the VPS & VDS plans page with Debian 13 or Ubuntu 24.04, then log in as root and set up the firewall and an unprivileged user. Game servers should never run as root, and Valve says the same about SteamCMD.

ssh root@YOUR_SERVER_IP
apt update && apt full-upgrade -y
apt install -y lib32gcc-s1 lib32stdc++6 lib32z1 curl ca-certificates tmux ufw
ufw allow OpenSSH
ufw --force enable
adduser --disabled-password --gecos "" steam

CS2, Rust, Valheim and Palworld are all downloaded with SteamCMD, Valve's command-line downloader. It is a 32-bit program, which is what the lib32 packages above are for. Install it once for the steam user:

su - steam
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

All four games download with an anonymous login; no Steam account and no copy of the game is needed on the server. In the four SteamCMD sections (CS2, Rust, Valheim and Palworld), each block says which lines are typed as root and which as the steam user: exit takes you from the steam user back to root and su - steam switches again. The Minecraft section and the systemd commands near the end do not use the steam user at all; run them as root.

Minecraft: Java 25, Paper and the whitelist surprise

Minecraft Java Edition does not use Steam; the server is a single jar file. Three things changed in 2026 that older tutorials get wrong. Since version 26.1 the server requires Java 25. Since 26.3 a freshly created server has the whitelist switched on, so nobody can join until you add them. And plugin platforms trail the vanilla release by a few weeks: in October 2026 the stable Paper build is still 26.2, where the whitelist is off by default, so check which version is marked stable before you tell players which version to use.

# as root (type exit first if you are still the steam user)
apt install -y openjdk-25-jre-headless
ufw allow 25565/tcp
useradd -r -m -d /opt/minecraft -s /bin/bash minecraft
cd /opt/minecraft
# download the current stable Paper jar from papermc.io and save it here as server.jar
# heap (-Xms/-Xmx): 1G on VPS Micro, 3G on VPS Mini, 6G on VDS Small; the lines below use the VPS Mini value
runuser -u minecraft -- java -Xms3G -Xmx3G -jar server.jar --nogui   # first run writes eula.txt and stops
sed -i 's/^eula=false/eula=true/' eula.txt                            # you accept the Minecraft EULA
runuser -u minecraft -- java -Xms3G -Xmx3G -jar server.jar --nogui   # stays in the foreground; type stop to shut it down

Debian 12 has no Java 25 package; use Debian 13 or Ubuntu 24.04, or add the Adoptium repository. In the server console, whitelist add PlayerName lets a player in and op PlayerName makes an admin. If your jar is older than 26.3, also run whitelist on once; without it the list is ignored and anyone with the address can join.

Counter-Strike 2: mind the disk

CS2 no longer has a separate server download: the dedicated server is part of the game itself, app 730, and at the time of writing it occupies about 73 GB on disk, well above the 60 GB most guides still quote. That makes VDS Small, with 240 GB of NVMe, the sensible starting point. Two more things are required: a Game Server Login Token, created for app ID 730 on Steam's game server account management page, and a small symlink without which the server cannot find Steam's library.

# as root
ufw allow 27015/udp

# as the steam user
~/steamcmd/steamcmd.sh +force_install_dir /home/steam/cs2 +login anonymous +app_update 730 validate +quit
mkdir -p ~/.steam/sdk64
ln -sf ~/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so

cd ~/cs2/game
./cs2.sh -dedicated -console -usercon -port 27015 -maxplayers 10 \
  +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 \
  +sv_setsteamaccount YOUR_TOKEN

Rust: memory first, then the wipe calendar

Rust is one of the two memory-hungry games here, alongside Palworld. Facepunch asks for 12 GB of free memory for a server, more for the largest maps, and usage climbs through the month as players build. The biggest lever is map size: the default server.worldsize is 4500, and a 3000 to 3500 map needs far less. On VDS Small (8 GB, below Facepunch's own figure) stay at a 3000 map or smaller with a handful of friends, for example +server.worldsize 3000 +server.maxplayers 10. That sizing comes from what Rust hosting providers publish, not from Facepunch, and it leaves little headroom, so watch memory as the month goes on. The command below (a 3500 map, 50 slots) is sized for VDS Medium, the comfortable choice.

# as root
ufw allow 28015/udp
ufw allow 28017/udp
ufw allow 28082/tcp
ufw allow from YOUR_HOME_IP to any port 28016 proto tcp

# as the steam user
~/steamcmd/steamcmd.sh +force_install_dir /home/steam/rust +login anonymous +app_update 258550 validate +quit

cd ~/rust
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$(pwd):$(pwd)/RustDedicated_Data/Plugins/x86_64"
./RustDedicated -batchmode \
  +server.identity "main" \
  +server.port 28015 +server.queryport 28017 \
  +rcon.port 28016 +rcon.web 1 +rcon.password "LONG_RANDOM_PASSWORD" \
  +app.port 28082 \
  +server.level "Procedural Map" +server.worldsize 3500 +server.seed 12345 \
  +server.maxplayers 50 +server.hostname "My Rust Server" \
  -logfile /home/steam/rust/server.log

Valheim: small, friendly and recently changed

Valheim is the lightest SteamCMD game here: 4 GB of memory is a comfortable start for the ten players a server allows, and the install is about 2 GB. Memory grows with the age and size of the world rather than with the player count. Version 1.0, released in September 2026, changed the save format: a world is now a folder of files instead of a single pair, so back up the whole save directory, and take a copy of any older world before you first start it on a 1.0 server.

# as root
apt install -y libatomic1 libpulse0 libpulse-dev
ufw allow 2456:2458/udp

# as the steam user
~/steamcmd/steamcmd.sh +force_install_dir /home/steam/valheim +login anonymous +app_update 896660 validate +quit
cd ~/valheim
cp start_server.sh start_custom.sh      # updates overwrite the original script
# in start_custom.sh, replace the line that starts with ./valheim_server.x86_64
# (near the end; leave the final "export LD_LIBRARY_PATH=..." line below it as it is) with:
# ./valheim_server.x86_64 -name "My server" -port 2456 -world "Midgard" -password "atLeast5chars" -public 1
./start_custom.sh                       # stop with Ctrl+C so the world is saved

Palworld: generous memory, careful configuration

Pocketpair's own requirements for a dedicated server are 16 GB of memory, with more than 32 GB recommended; 8 GB starts but the documentation warns it may crash when memory runs out. That puts Palworld on VDS Medium or VDS Large. The install is under 5 GB and needs only one UDP port.

# as root
ufw allow 8211/udp

# as the steam user
~/steamcmd/steamcmd.sh +force_install_dir /home/steam/palworld +login anonymous +app_update 2394010 validate +quit
mkdir -p ~/.steam/sdk64
ln -sf ~/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so

cd ~/palworld
./PalServer.sh -port=8211 -players=16      # first start creates the config folders; stop it with Ctrl+C
cp DefaultPalWorldSettings.ini Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
# edit that copy with the server stopped: ServerName, ServerPassword, AdminPassword, ServerPlayerMaxNum
./PalServer.sh -port=8211 -players=16

Running several servers: LinuxGSM, Docker or a panel

The commands above are the transparent way, good for understanding what happens. For day-to-day operation most admins pick one of three helpers:

Keep it running: services, backups, updates

A server started in an SSH session dies with the session. Run it in tmux while testing, then hand it to systemd so it starts at boot and restarts after a crash. A unit for the Minecraft server above, saved as /etc/systemd/system/minecraft.service (use the same -Xms and -Xmx values you started the server with):

[Unit]
Description=Minecraft server (Paper)
After=network-online.target
Wants=network-online.target

[Service]
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms3G -Xmx3G -jar server.jar --nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 143

[Install]
WantedBy=multi-user.target
# as root
systemctl daemon-reload
systemctl enable --now minecraft
journalctl -u minecraft -f

Under systemd the server has no console to type into; journalctl only shows its output. Add yourself with whitelist add and op while the server still runs in tmux. After that, any admin can type /whitelist add PlayerName in the in-game chat.

The same pattern works for the other games with their own user, folder and start command; for Valheim add KillSignal=SIGINT and a generous TimeoutStopSec so the save finishes.

Security checklist

Frequently asked questions

Which location gives my players the lowest ping?

The one closest to most of them. Prishtina for Kosovo and the surrounding region, Amsterdam for a mixed European group, Dublin for Ireland and the UK. The plans page shows which locations currently have capacity.

Can I run more than one game on the same server?

Yes, as long as the memory adds up and each server has its own ports. Give each game its own Linux user, or use LinuxGSM, Docker or Pterodactyl to keep them apart. A Minecraft server with a 3 GB heap and a Valheim world for a small group fit together on VDS Small. Rust on a small map next to one light server calls for VDS Medium, and Palworld next to anything else calls for VDS Large, because Palworld alone is specified at 16 GB.

Do these game servers need Windows?

No. All five have native Linux servers, and Linux leaves more memory for the game. Windows Server is available on VPS Mini and all VDS plans if a mod or tool you depend on is Windows-only.

Can players connect over IPv6?

Every plan has both IPv4 and IPv6, but treat game servers as IPv4 services: Bedrock and Valheim listen on IPv6, while CS2, Rust and Palworld are IPv4 in practice. Give players the IPv4 address or a DNS name with an A record.

What happens when my community outgrows the plan?

Upgrade from the client area. vCPU, memory and disk are added to the same server with a short reboot, so save and stop the game server first and do it when nobody is playing. The world, configuration and IP address stay the same.

Can I install mods and plugins?

Yes, you have root access. Paper plugins and Forge, NeoForge or Fabric mods for Minecraft, Metamod and CounterStrikeSharp for CS2, Oxide or Carbon for Rust, BepInEx for Valheim. Expect them to need updates after every game patch.

Can RS Computers set the server up for me?

Yes. Message us on Telegram or email info@rscomputers-ks.com with the game, the number of players and where they are, and we will suggest a plan and quote the setup.

Conclusion

A good game server is three decisions: a location near the players, enough memory for the game you actually run, and a setup you can update and restore without drama. Minecraft and Valheim are happy on a small plan, CS2 needs disk more than anything, and Rust and Palworld want memory. Pick the nearest city on the plans page, start with the commands above, and invite your friends once the firewall shows the right ports. If you would rather have it handed over ready to play, tell us what you need.

← All articles

Chat on Telegram