📚 Quick Navigation

Overview Ports & Firewall Installation Startup Parameters Configuration Maintenance Troubleshooting Resources

Ricochet Dedicated Server Hosting Guide

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.

Quick Facts

🔌 Ports & Firewall Rules

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

Installation & SteamCMD Setup

Prerequisites

Linux Deployment

# 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

Windows Deployment

  1. Install SteamCMD from Valve's developer wiki and extract to C:\steamcmd.
  2. Create C:\servers\ricochet and run:
    steamcmd +login anonymous +force_install_dir C:\servers\ricochet +app_update 90 validate +quit
  3. Launch via batch file:
    cd /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
  4. Use Task Scheduler or NSSM to keep the process running after reboots.

Startup Parameters

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.

Core Configuration Files

server.cfg Template

// 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

mapcycle.txt

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.

Scheduled Maintenance Scripts

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.

Maintenance & Best Practices

Troubleshooting

Reference Links