Fistful of Frags Server Guide

📋 Quick Info

Server Specifications

🔌 Ports & Firewall Configuration

Fistful of Frags servers require specific ports for proper operation:

Port Protocol Purpose Required
27015 (configurable) UDP Game port Yes
27015 (same as game port) UDP Query/RCON port Yes
27005 UDP Client port (if hosting from client) No
26900 UDP Steam master server updater port No
27020 UDP SourceTV port (if enabled) No

Firewall Examples

UFW (Ubuntu/Debian):

sudo ufw allow 27015/udp comment 'FoF Game/Query Port' sudo ufw allow 27020/udp comment 'FoF SourceTV' sudo ufw allow 26900/udp comment 'Steam Master Server'

FirewallD (CentOS/RHEL):

sudo firewall-cmd --permanent --add-port=27015/udp sudo firewall-cmd --permanent --add-port=27020/udp sudo firewall-cmd --permanent --add-port=26900/udp sudo firewall-cmd --reload

iptables:

iptables -A INPUT -p udp --dport 27015 -j ACCEPT iptables -A INPUT -p udp --dport 27020 -j ACCEPT iptables -A INPUT -p udp --dport 26900 -j ACCEPT

⚙️ Installation & Setup

System Requirements

Installation via SteamCMD (Linux)

  1. Install SteamCMD:
    sudo apt update sudo apt install lib32gcc1 steamcmd # Debian/Ubuntu # OR for manual install: mkdir ~/steamcmd && cd ~/steamcmd wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar -xvzf steamcmd_linux.tar.gz
  2. Download Fistful of Frags Server:
    ./steamcmd.sh login anonymous force_install_dir ./fof-server app_update 295240 validate quit
  3. Navigate to server directory:
    cd fof-server

Installation via SteamCMD (Windows)

  1. Download SteamCMD from Valve's website
  2. Extract to C:\steamcmd\
  3. Run steamcmd.exe and execute:
    login anonymous force_install_dir C:\fof-server app_update 295240 validate quit

📝 Configuration

server.cfg Example

Create or edit fof/cfg/server.cfg:

// Server Identity hostname "Wild West Showdown - FoF Server" sv_password "" // Leave blank for public server // Server Rates sv_minrate 10000 sv_maxrate 30000 sv_minupdaterate 20 sv_maxupdaterate 66 sv_mincmdrate 20 sv_maxcmdrate 66 // Server Region (see Region Codes below) sv_region 1 // 1 = East Coast USA // Server Visibility sv_lan 0 // 1 for LAN only, 0 for internet sv_logbans 1 sv_logecho 1 sv_logfile 1 sv_log_onefile 0 // RCON (Remote Console) rcon_password "your_secure_password" sv_rcon_banpenalty 0 sv_rcon_maxfailures 5 // Contact & Tags sv_contact "admin@example.com" sv_tags "teamplay,nocrits,norespawntime" // Gameplay Settings fof_sv_maxteams 2 // Number of teams fof_sv_adminslots 0 // Reserved admin slots fof_sv_playerrespawn 1 // Respawn players (0 = round-based) fof_sv_currentmode 0 // Game mode (0=Teamplay, 1=BreakBad, etc) // Round Settings mp_roundtime 10 // Round time in minutes mp_timelimit 30 // Map time limit mp_fraglimit 0 // Frag limit (0 = disabled) // Team Balance mp_autoteambalance 1 mp_limitteams 1 // Voice Chat sv_alltalk 0 // 0 = team only, 1 = everyone sv_voiceenable 1 // Download Settings sv_allowdownload 1 sv_allowupload 1 sv_downloadurl "" // FastDL URL (optional) // Performance sv_maxcmdrate 66 sv_maxupdaterate 66 fps_max 300 // Server Protection sv_pure 0 // File consistency checking (0=off, 1=on) sv_consistency 0 // Exec ban files and additional configs exec banned_user.cfg exec banned_ip.cfg

mapcycle.txt Example

Create fof/cfg/mapcycle.txt with your map rotation:

fof_depot fof_desperados fof_fistful fof_mesa fof_depot2 fof_arena fof_falls fof_duelfv2

Region Codes

🚀 Startup Parameters

Parameter Description Example
-game Game directory name -game fof
-console Enable console output -console
-port Server port -port 27015
-maxplayers Maximum players -maxplayers 16
+map Starting map +map fof_fistful
+exec Execute config file +exec server.cfg
-tickrate Server tickrate (default 66) -tickrate 100
-ip Bind to specific IP -ip 192.168.1.100
+tv_enable Enable SourceTV +tv_enable 1
+sv_lan LAN server mode +sv_lan 0

Example Startup Command (Linux)

./srcds_run -game fof -console -port 27015 -maxplayers 16 +map fof_fistful +exec server.cfg -tickrate 66

Example Startup Command (Windows)

srcds.exe -game fof -console -port 27015 -maxplayers 16 +map fof_fistful +exec server.cfg -tickrate 66

Example Startup Script (Linux with Screen)

#!/bin/bash cd /home/fof/fof-server screen -dmS fof-server ./srcds_run \ -game fof \ -console \ -port 27015 \ -maxplayers 16 \ +map fof_fistful \ +exec server.cfg \ -tickrate 66

🔧 Troubleshooting

Server Not Appearing in Browser

Issue: Server not visible in game server browser.

Solutions:

Connection Failed/Timeout

Issue: Players cannot connect to server.

Solutions:

High Ping/Lag Issues

Issue: Players experiencing latency or rubber-banding.

Solutions:

Map Change Failures

Issue: Server crashes or hangs on map change.

Solutions:

SourceMod/MetaMod Issues

Issue: Plugins not loading or causing crashes.

Solutions:

Custom Content Download Problems

Issue: Players can't download custom maps/content.

Solutions:

🎮 Game Modes

Teamplay

Classic team deathmatch with Wild West weapons. Two teams compete to eliminate opponents.

Shootout (Team Elimination)

Round-based elimination where dead players spectate until round ends.

Break Bad

Free-for-all deathmatch mode. Every player for themselves.

Elimination

One life per round, team-based tactical gameplay.

King of the Hill

Control designated area to score points for your team.

🗺️ Official Maps

Default Maps

Community Maps

Install custom maps to fof/maps/ directory and add to mapcycle.txt.

🔌 Mods & Plugins

Fistful of Frags uses Source engine modding:

SourceMod

Required for most server plugins and administration tools.

MetaMod:Source

Required by SourceMod - install first.

Related Game Documentation

👤 Admin Commands

Basic Console Commands

status # Show players and server info kick [name/userid] # Kick player kickid [userid] # Kick by UserID banid [minutes] [userid]# Ban player addip [minutes] [ip] # Ban IP address writeid # Save bans to banned_user.cfg writeip # Save IP bans to banned_ip.cfg changelevel [map] # Change map immediately map [map] # Load specific map mp_restartgame [delay] # Restart game after delay

RCON Commands (Remote)

Connect via RCON tool using password set in rcon_password:

rcon_password [password] # Authenticate rcon [command] # Execute command remotely

📚 Resources

Important Notes