Ricochet is a Half-Life 1 era arena shooter that still uses the classic HLDS (GoldSrc) dedicated server stack. The notes below describe how to deploy and operate a Ricochet server on any Linux or Windows VPS without relying on a control panel.
ricochet)rc_deathmatch; other stock maps include rc_arena and rc_trinityricochet/server.cfg, ricochet/mapcycle.txt, ricochet/motd.txthlds_run (Linux) or hlds.exe (Windows)ricochet/logs/Lxxxxx.log| Port | Protocol | Purpose | Required? |
|---|---|---|---|
27015 |
UDP | Game traffic & master server heartbeats | Required |
27015 |
TCP | RCON & remote console | Optional |
27016 |
UDP | Spectator / HLTV relay (if used) | Optional |
27005 |
UDP (outbound) | Client auth replies; allow outbound so players can connect | Required outbound |
Valve master servers also require outbound UDP 27010-27012; keep them open so your instance appears on public listings.
# UFW (Ubuntu/Debian)
sudo ufw allow 27015/udp comment 'Ricochet game'
sudo ufw allow 27015/tcp comment 'Ricochet RCON'
sudo ufw allow 27016/udp comment 'Ricochet HLTV (optional)'
# FirewallD (RHEL/CentOS)
sudo firewall-cmd --permanent --add-port=27015/udp
sudo firewall-cmd --permanent --add-port=27015/tcp
sudo firewall-cmd --permanent --add-port=27016/udp
sudo firewall-cmd --reload
# Windows Defender Firewall
netsh advfirewall firewall add rule name="Ricochet Game" dir=in action=allow protocol=UDP localport=27015
netsh advfirewall firewall add rule name="Ricochet RCON" dir=in action=allow protocol=TCP localport=27015
# Create user sudo useradd -m -s /bin/bash ricochet
sudo passwd ricochet
sudo -u ricochet bash
# Install dependencies and SteamCMD
sudo apt update && sudo apt install steamcmd lib32gcc-s1 lib32stdc++6 -y
mkdir -p ~/ricochet-server && cd ~/ricochet-server
steamcmd +login anonymous +force_install_dir $PWD +app_update 90 validate +quit
# Launch once (tmux/screen recommended)
./hlds_run -game ricochet -console -port 27015 +ip 0.0.0.0 \
+map rc_deathmatch +maxplayers 16 +sv_lan 0 +exec server.cfg
C:\steamcmd.C:\servers\ricochet and run:steamcmd +login anonymous +force_install_dir C:\servers\ricochet +app_update 90 validate +quitcd /d C:\servers\ricochet
hlds.exe -console -game ricochet -port 27015 -ip 0.0.0.0 ^
+map rc_deathmatch +maxplayers 16 +sv_lan 0 +exec server.cfg| Parameter | Description | Example |
|---|---|---|
-game ricochet |
Loads the Ricochet mod data folder | Always required |
-console |
Forces console-only mode (no GUI) | Recommended on servers |
-port / -sport |
Sets game and spectator ports | -port 27015 -sport 27016 |
-ip |
Binds to a specific interface | -ip 192.0.2.10 |
-autoupdate |
Linux only; pulls updates via SteamCMD when server restarts | -autoupdate -steam_dir ~/steamcmd -steamcmd_script ~/ricochet/update.txt |
+map |
Starting map when the process boots | +map rc_deathmatch |
+maxplayers |
Hard slot limit (1–32) | +maxplayers 16 |
+sv_lan |
0 exposes to internet, 1 keeps LAN-only | +sv_lan 0 |
+exec server.cfg |
Ensures your config runs on boot | +exec server.cfg |
Append +log on and +sv_password "pass" directly on the command line to guarantee they are processed even if configs fail.
// Identity & access
hostname "My Ricochet Arena"
sv_password "" // Set for private servers
rcon_password "ChangeMe!2025"
sv_lan 0
sv_region 0 // 0 = worldwide listing
// Gameplay
mp_timelimit 20
mp_fraglimit 20
mp_weaponstay 1
mp_falldamage 1
mp_friendlyfire 0
mp_flashlight 0
mp_chattime 10
mp_footsteps 1
sv_cheats 0
// Physics
sv_gravity 800
sv_airaccelerate 10
sv_accelerate 10
sv_friction 4
sv_maxspeed 320
// Networking
sv_minrate 1500
sv_maxrate 20000
sv_minupdaterate 20
sv_maxupdaterate 60
sys_ticrate 300
// Logging & security
log on
sv_logbans 1
sv_logecho 1
sv_log_onefile 0
writeid
writeip
rc_deathmatch
rc_arena
rc_trinity
rc_bounce
Reorder or duplicate entries to weight the rotation. Use mp_timelimit and mp_fraglimit to control the length of each round.
Create restart.sh (Linux) to keep the process alive:
#!/bin/bash
cd /home/ricochet/ricochet-server
while true; do
./hlds_run -game ricochet -console -port 27015 \
+map rc_deathmatch +maxplayers 16 +sv_lan 0 +exec server.cfg
echo "Server crashed/restarted at $(date)" >> restart.log
sleep 5
done
Run it inside tmux or screen, or convert to a systemd service for automatic boot.
steamcmd +login anonymous +app_update 90 validate +quit after Valve pushes patches.ricochet/ directory (configs, logs, demos) before experimenting with mods.sys_ticrate around 300–500; higher values increase CPU usage without visible benefit.log on and parse logs for Banid, kick, or crash traces.sv_lan 0, firewall allows outbound UDP 27010-27012, and public IP is bound via -ip. Restart after making changes.validate. Old binaries are the primary cause.sv_maxrate and sv_maxupdaterate, and ensure the host is not power-saving the CPU. Monitor with net_graph 3 in-game.lib32gcc-s1, lib32stdc++6, and lib32z1 (Debian/Ubuntu) or glibc.i686 packages (RHEL).-port + +rcon_password and limit access with firewall source rules.