This guide covers installing and running a dedicated Warfork server on Linux.

Dependencies

Install these before proceeding:

wget tar rsync unzip tmux jq bc

SteamCMD Installation

AppIDAuth
Game client671610Steam login required
Dedicated server1136510Anonymous login

Use App ID 1136510 for Linux dedicated servers: no Steam account needed.

steamcmd +login anonymous +app_update 1136510 validate +quit

The server binary is wf_server. It installs to your SteamCMD steamapps/common/ directory.

Ports

Open these on your firewall and forward them if behind NAT:

PortProtocolPurpose
44400UDPGame traffic (sv_port)
44444TCPHTTP downloads (sv_http_port)

Starting the Server

Basic launch with command-line overrides:

./wf_server +set sv_hostname "My Server" +set g_gametype ca +set g_maplist "wfca1 wfca2"

For a persistent session using tmux:

tmux new-session -d -s warfork "./wf_server +set sv_hostname 'My Server' +set g_gametype ca +set g_maplist 'wfca1 wfca2'"

Reattach with tmux attach -t warfork.

Config Files

Server configs are auto-generated on first run at:

configs/server/gametypes/<gametype>.cfg

Edit these files directly after the first run. Settings in the config are loaded at startup; command-line +set overrides take precedence.

Core Server CVars

CvarDefaultDescription
sv_hostname:Name shown in server browser
sv_port44400UDP port
sv_public:Report to master server (1 = yes)
sv_pure0Enforce pure client (0 = off)
sv_maxclients:Max player slots
g_gametype:Gametype: dm, ca, ctf, duel, tdm, race, etc.
g_timelimit10Match time limit in minutes
g_scorelimit0Frag/score limit (0 = disabled)
g_maplist:Space-separated map rotation
g_maprotation:0 = same map, 1 = ordered, 2 = random
g_numbots0Number of bots
g_warmup_timelimit5Warmup duration in minutes
g_instagib0Instagib modifier (0/1)
g_allow_falldamage:Enable fall damage
g_allow_selfdamage:Enable self damage
g_allow_teamdamage:Enable team damage
g_allow_stun:Enable stun mechanic

CA-Specific CVars

These are defined in ca.as and written to configs/server/gametypes/ca.cfg on first run.

CvarDefaultDescription
g_scorelimit11First team to 11 rounds wins
g_ca_timelimit1v160Time limit (seconds) for 1v1 situations in a round
g_noclass_inventorygb mg rg gl rl pg lg eb cells shells grens rockets plasma lasers bolts bulletsWeapons players spawn with
g_class_strong_ammo1 75 20 20 40 125 180 15Ammo counts at spawn: GB MG RG GL RL PG LG EB
g_allow_selfdamage0Disabled in CA by default
g_allow_teamdamage0Disabled in CA by default

RCON

Set rcon_password in your server config or on the command line. From a connected client or remote console:

rcon login <password>
rcon status
rcon kick <playername>
rcon map <mapname>
rcon addip <ipaddress>

rcon addip bans by IP. Persistent bans are stored in configs/server/banned.cfg.

See Also