Running a Server

Starting a KF2 Dedicated Server - Requirements, Config, WebAdmin

A beginner-oriented primer (by a community member who admits the formatting could be better) on installing and starting a Killing Floor 2 dedicated server. It does not cover SSL certificates and is deliberately basic. For other setups see Dedicated server via SteamCMD and Game Server Manager guide.

Choosing the host

Pick your favorite Linux distribution or Windows. The author suggests Linux unless you enjoy random shutdowns from Windows Update. A virtual machine works too: an Intel Core 2 Duo with 3 GB of DDR2 was enough, but you need lots of disk, around 30 GB at least. Maximum RAM use observed: 735 MB.

Minimum (one instance)Recommended
CPUIntel Core 2 Duo desktopCore i3 or any quad-core desktop/laptop
RAM2 GB (3 GB for Windows 8/10)4 GB
Disk20 GB+, HDD50 GB, SSD
Network2 Mbps upload, decent ADSL or 2.4 GHz Wi-FiFiber/VDSL/FTTH, gigabit LAN, 5 GHz Wi-Fi

Download the server files

Install SteamCMD (many guides exist), launch it, then:

login anonymous
app_update 232130

Anonymous login is required. The download is roughly 13 GB. On Linux the files are under something like /home/<user>/Steam/steamapps/common/killingfloor2.

What the folders do

  • KFGame: the interesting part.
    • Web: WebAdmin HTML files, do not touch.
    • Scripts: leave alone.
    • Logs: game logs, including optional chat logs and scoreboards.
    • Localization: language files, no need to edit.
    • Config: the main configuration directory. Do not modify the PCServer and LinuxServer folders or the Default-prefixed files, since they populate your config; edit PCServer-* (Windows) or LinuxServer-* (Linux) files.
  • BrewedPC: system files such as maps.
  • Engine: system files and default values.
  • Binaries/Win64: both the Windows and Linux binaries. The Linux one is KFGameSteamServer.bin.x86_64 (no extension); the Windows one is KFServer.exe.
  • KF2Server.bat: a Windows launcher. On Linux create an .sh with ./Binaries/Win64/KFGameSteamServer.bin.x86_64, chmod +x it and run it.

Start the server once so the config files are populated.

WebAdmin

WebAdmin is a web server started by the game server, so it works only while the server is running. Enable it in KFGame/Config/KFWeb.ini: set bEnabled=true under [IpDrv.WebServer] (default false) and restart. User name is Admin and the password is blank unless changed. Open:

  • 127.0.0.1:8080 on the server machine;
  • 192.x.x.x:8080 on your LAN;
  • x.x.x.x:8080 for a remote server (port forward if you are behind NAT).

WebAdmin edits the raw config files; restart the server to apply settings. Wave length, difficulty and game mode changes apply after a map change.

MultiAdmin

For several admins, add WebAdmin.MultiWebAdminAuth under WebAdmin settings, Advanced, Authentication class, or add .AuthenticationClass=WebAdmin.MultiWebAdminAuth under [WebAdmin.WebAdmin] in KFWebAdmin.ini. A new file with hashed passwords appears; do not hand-edit it, create users through the WebAdmin interface instead. Log in as Admin / Admin if your password was blank (a blank password is not allowed with MultiAdmin).

Text config basics

Edit the *-KFGame.ini file:

  • ServerName=: the name shown in the browser.
  • AdminPassword=: the in-game and default WebAdmin password.
  • Difficulty=: 0 to 3 (Normal to Hell on Earth).
  • GameLength=: 0 is 4 waves, 1 is 7, 2 is 10.

The map is changed through WebAdmin.

Starting and ports

Run the .bat/.sh or the executable. To stop it, kill the process or close the terminal. Port forward if you have no public address:

PortDefaultProtocolPurpose
Game7777UDPmain game connections
Query27015UDPSteam master server
Web Admin8080TCPWebAdmin page
Steam20560UDPSteam
NTP123UDPWeekly Outbreak time lookup

Useful notes

  • After an update, run app_update 232130 in SteamCMD; add validate to check for corrupted files.
  • Back up your config files. Updates may repopulate them: compare and copy lines into the new config instead of overwriting it.
  • Disable the "takeover" in WebAdmin (Settings, General settings) to stop outsiders entering the game and setting a password.
  • In-game admin login: open the console and type adminlogin <password>.

FAQ

What are the minimum requirements for a KF2 server?
A Core 2 Duo desktop, 2 GB RAM (3 GB on Windows 8/10), 20 GB+ HDD and 2 Mbps upload. The author saw a maximum of 735 MB of RAM in use.
How do I enable WebAdmin?
Set bEnabled=true under [IpDrv.WebServer] in KFWeb.ini, restart the server and open port 8080 in a browser. User is Admin; the password is blank by default.
How do I log in as admin in game?
Open the console and type adminlogin followed by the password set in the KFGame.ini file.