How to Set Up a FiveM Server: Step-by-Step Guide
Complete FiveM server setup guide on REXE VDS: installation, txAdmin configuration, port settings, and performance optimization tips for GTA V roleplay servers.
SteamCMD installation on Linux, game server download and update, automatic update script, anonymous login and common issues.
SteamCMD (Steam Console Client) is a command-line Steam client developed by Valve. It is used to download, update, and manage game server files. Dedicated server setup for CS2, Garry's Mod, Rust, ARK, Palworld, and many more games is done through SteamCMD. This guide covers SteamCMD installation on Linux, usage, and automatic update configuration.
| Resource | Minimum |
|---|---|
| OS | Ubuntu 20.04+ / Debian 11+ |
| RAM | 512 MB |
| Disk | 500 MB (SteamCMD) + game server space |
| Architecture | 64-bit (32-bit libraries required) |
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd
With APT installation, SteamCMD is installed to /usr/games/steamcmd and you need to accept the license agreement.
Manual installation provides more control:
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 wget tar
sudo adduser steam --disabled-login --gecos ""
sudo su - steam
mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzf steamcmd_linux.tar.gz
rm steamcmd_linux.tar.gz
Verify installation:
./steamcmd.sh +quit
Manual installation allows you to create separate users for each game server and manage permissions better.
./steamcmd.sh +login <user> +force_install_dir <dir> +app_update <app_id> +quit
Most game servers can be downloaded with anonymous login:
./steamcmd.sh +login anonymous +quit
Some game servers require a Steam account:
./steamcmd.sh +login username +quit
If Steam Guard is enabled, you'll need to enter a verification code. The token is cached after the first login.
| Game | App ID | Anonymous Login |
|---|---|---|
| Counter-Strike 2 | 730 | Yes |
| Garry's Mod | 4020 | Yes |
| Rust | 258550 | Yes |
| ARK: Survival Evolved | 376030 | Yes |
| Palworld | 2394010 | Yes |
| Unturned | 1110390 | Yes |
| Terraria (tShock) | 105600 | Yes |
| Team Fortress 2 | 232250 | Yes |
| Valheim | 896660 | Yes |
| Project Zomboid | 380870 | Yes |
| 7 Days to Die | 294420 | Yes |
| Satisfactory | 1690800 | Yes |
| V Rising | 1829350 | Yes |
| Enshrouded | 2278520 | Yes |
./steamcmd.sh \
+force_install_dir ~/cs2-server \
+login anonymous \
+app_update 730 validate \
+quit
./steamcmd.sh \
+force_install_dir ~/rust-server \
+login anonymous \
+app_update 258550 validate \
+quit
./steamcmd.sh \
+force_install_dir ~/palworld-server \
+login anonymous \
+app_update 2394010 validate \
+quit
To automatically update multiple game servers:
nano ~/steamcmd/update_all.sh
#!/bin/bash
STEAMCMD="/home/steam/steamcmd/steamcmd.sh"
LOG_FILE="/home/steam/update.log"
echo "========================================" >> $LOG_FILE
echo "$(date): Update started" >> $LOG_FILE
$STEAMCMD +force_install_dir /home/steam/cs2-server \
+login anonymous +app_update 730 +quit >> $LOG_FILE 2>&1
$STEAMCMD +force_install_dir /home/steam/rust-server \
+login anonymous +app_update 258550 +quit >> $LOG_FILE 2>&1
echo "$(date): Update completed" >> $LOG_FILE
chmod +x ~/steamcmd/update_all.sh
crontab -e
0 4 * * * /home/steam/steamcmd/update_all.sh
You can write commands to a script file:
nano ~/steamcmd/cs2_update.txt
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
login anonymous
force_install_dir /home/steam/cs2-server
app_update 730 validate
quit
Run:
./steamcmd.sh +runscript ~/steamcmd/cs2_update.txt
To install a beta version of a game:
./steamcmd.sh \
+force_install_dir ~/game-server \
+login anonymous \
+app_update APP_ID -beta BETA_NAME \
+quit
To download Steam Workshop content:
./steamcmd.sh \
+login anonymous \
+workshop_download_item APP_ID WORKSHOP_ID \
+quit
Downloaded files are located at:
~/steamcmd/steamapps/workshop/content/APP_ID/WORKSHOP_ID/
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6
df -h
rm -rf ~/steamcmd/steamapps/downloading/*
rm -rf ~/steamcmd/steamapps/temp/*
./steamcmd.sh +force_install_dir ~/game-server \
+login anonymous \
+app_update APP_ID validate \
+quit
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
./steamcmd.sh +login anonymous +quit
sudo adduser cs2 --disabled-login --gecos ""
sudo adduser rust --disabled-login --gecos ""
sudo adduser ark --disabled-login --gecos ""
SteamCMD is the essential tool for game server management on Linux. With anonymous login, you can easily download most game servers, and with automatic update scripts, keep your servers up to date. REXE VDS powerful infrastructure lets you run SteamCMD-based game servers smoothly.
SteamCMD is a command-line Steam client developed by Valve. It is used to download and update game server files.
No, for security reasons you should never run SteamCMD as root. Create a separate Linux user for each game server.
CS2, Garry's Mod, Rust, ARK, Palworld, Unturned, Valheim and most popular game servers can be downloaded with anonymous login.
Add an update script to crontab to run automatic updates at specified intervals.
The validate parameter checks the integrity of downloaded files and re-downloads corrupted files. Recommended for initial installation.
Delete the steamapps/downloading and steamapps/temp folders to clear the cache.
Complete FiveM server setup guide on REXE VDS: installation, txAdmin configuration, port settings, and performance optimization tips for GTA V roleplay servers.
Complete Minecraft server setup guide on REXE VDS: Paper/Spigot installation, Java configuration, plugin management, and performance optimization for stable gameplay.
Complete CS2 dedicated server setup guide on REXE VDS: SteamCMD installation, GSLT token, server configuration, game modes, and DDoS protection with Path Panel.