KF2 Server with Custom Maps and Mods - Setup Guide
This guide walks through a Windows Killing Floor 2 dedicated server from zero to a public server with Workshop maps and mods. It is based on a 2023 community refresher of an older Steam discussion guide. Read it through once before you start: the last part uses KF2ServerTool, which does most of the config editing for you.
Part 1: Install the server
Step 1 - Get SteamCMD
Download SteamCMD from Valve: http://media.steampowered.com/installer/steamcmd.zip. Unpack it into the folder where you want it to live. On first launch it downloads its own files into that same folder, so do not run it from the desktop.
Step 2 - Start SteamCMD
Run steamcmd.exe and wait for the first-time self-update to finish.
Step 3 - Choose the install folder (optional)
If you do not want the server inside the SteamCMD folder, set a target first:
force_install_dir C:\KF2Server\
Step 4 - Log in
The KF2 server files do not need an account:
login anonymous
Step 5 - Download or update the server files
The KF2 dedicated server app ID is 232130.
| Task | Command |
|---|---|
| First download | app_update 232130 |
| Update and check files | app_update 232130 validate |
| Switch to a beta branch | app_update 232130 -beta preview |
Plan for around 30 GB of disk space. See Killing Floor 2 server size for more detail.
Step 6 - Start the server
Open the server folder and run KF2Server.bat. A healthy start ends with lines like these:
KF2 Version XXXXX
Initializing game engine completed.
STEAM GAME SERVER UID XXXXXXXXX
The STEAM GAME SERVER UID line means the server is running and talking to Steam.
Part 2: Port forwarding
Every router names these menus differently, so look up the steps for your own model. Forwarding lets devices outside your home network reach the server. You can play on it yourself from the same network without forwarding anything.
| Port | Protocol | Purpose |
|---|---|---|
| 7777 | UDP | Game traffic |
| 27015 | UDP | Server query (server browser) |
| 20560 | UDP | Steam |
| 8080 | TCP | WebAdmin (optional) |
| 123 | UDP | NTP, needed only for Weekly Outbreak |
All of these ports can be changed in the config files. For general NAT and firewall background, see server ports and NAT.
Part 3: Configuration
The startup file
KF2Server.bat launches the server. By default it contains:
start .\Binaries\win64\kfserver kf-bioticslab?adminpassword=123
.\Binaries\win64\kfserver- the server executable; leave it alone.kf-bioticslab- the map loaded on startup; replace it with any map name.?- separates URL options. Each?key=valuepasses one setting, for example?difficulty=3starts on Hell on Earth.adminpassword=123- the WebAdmin password. Change it. A password set here overrides the one in the config file.
WebAdmin
WebAdmin is off by default.
- Open
KFGame\Config\KFWeb.iniand changebEnabled=falsetobEnabled=true. - Find the server PC's local address: open Command Prompt, run
ipconfigand note the IPv4 line (for example192.168.178.33). - In a browser, open
<your IPv4>:8080. - Log in with the user name
Adminand the password from the startup file.
If the browser refuses to log in with the error "Invalid form data", open KFGame\Config\KFWebAdmin.ini, change bHttpAuth=false to bHttpAuth=true and try again.
Part 4: Custom maps and mods with KF2ServerTool
Editing map entries, map cycles and Workshop subscriptions by hand is error-prone. KF2ServerTool automates it. More about the tool: KF2ServerTool overview.
- Download the latest zip from the project's GitHub releases page.
- Install by extracting the zip contents into the main server folder (where
KF2Server.batis). - Start
KF2ServerTool.exefrom inside the server folder. - Options tab - enable "Workshop Download Manager" and "Custom redirect", and set the redirect URL to
http://kf2.tripwirecdn.com/. This is what made custom maps work in the author's setup. - Maps / Mods tabs - add items by Workshop ID or URL, by subscribing through the built-in Workshop browser, or by picking files from the redirect.
- Check the map install - every added map needs green check marks in the "Map Entry" and "Cycle Entry" columns. The author was not sure whether "Map Cache" also has to be checked.
- Start the server from the Server tab. Some mods only work when you add their options to "Additional parameters"; the mod's Workshop page usually says what to add.
When this is done, the server runs locally, shows up in the in-game server browser, has your custom maps and mods, and anyone can join.
Quick checklist
- SteamCMD installed in its own folder
- Server downloaded with
app_update 232130 validate -
STEAM GAME SERVER UIDappears on startup - 7777, 27015, 20560 UDP forwarded (8080 TCP if you want remote WebAdmin)
- Admin password changed in
KF2Server.bat - WebAdmin enabled in
KFWeb.ini - Maps show green Map Entry and Cycle Entry in KF2ServerTool
FAQ
- Which ports does a Killing Floor 2 server need?
- 7777 UDP for the game, 27015 UDP for queries, 20560 UDP for Steam, 8080 TCP for WebAdmin (optional) and 123 UDP for NTP, which is only needed for Weekly Outbreak.
- Why does WebAdmin say Invalid form data?
- Some browsers refuse the default login form. Open KFGame\Config\KFWebAdmin.ini, set bHttpAuth=true, restart the server and log in again.
- Which redirect URL makes custom maps download for players?
- The guide author got custom maps working by enabling the Workshop Download Manager and a custom redirect set to http://kf2.tripwirecdn.com/ in KF2ServerTool's Options tab.
- Do I need port forwarding to play on my own server?
- No. Players on the same local network can join without it. Port forwarding is only needed for friends or public players outside your network.