Want to make a Killing Floor 2 dedicated server? It is straightforward once you know its two quirks: you have to boot it once before you edit any config, and it has no RCON, so you manage it from a web panel. Get those two right and the rest is a five-minute setup. Here is the whole thing.
Rather skip the setup? Deploy a Killing Floor 2 server on 2hours.gg: ready in a few minutes with Web Admin set up, billed by the hour.
Install the server
The KF2 dedicated server is app 232130 and installs anonymously (no Steam login, you do not need to own the game on the server account):
./steamcmd.sh +login anonymous \
+app_update 232130 validate \
+quitImportant: use validate on the FIRST install only. Running app_update 232130 validate again later wipes your KFGame/Config INI files. To update afterwards, drop the validate keyword.
The catch: boot once before you edit anything
KF2 regenerates its config files on first boot and overwrites anything you put there beforehand. So the order is: install, boot once, stop, THEN edit. Boot it once with stock args:
./Binaries/Win64/KFGameSteamServer.bin.x86_64 KF-BioticsLabLet it reach "steam initialised", then stop it with Ctrl+C. It has now written the files you are about to edit, in:
<install>/KFGame/Config/Server settings: LinuxServer-KFGame.ini
Open KFGame/Config/LinuxServer-KFGame.ini and set these keys. They live in different sections, so search for each section header:
[Engine.GameInfo]
GameDifficulty=1.000000 ; 0=Normal 1=Hard 2=Suicidal 3=Hell on Earth
MaxPlayers=6 ; see "six players" below
[Engine.AccessControl]
AdminPassword=pick-a-secret ; login for the web panel
GamePassword=friends-only ; leave blank for open, set to lock the server
[Engine.GameReplicationInfo]
ServerName=My Private KF2 Server
[KFGame.KFGameInfo]
GameLength=1 ; 0=short (4 waves) 1=medium (7) 2=long (10)Enable the Web Admin panel (KF2 has no RCON)
KF2 has no RCON at all. Everything you would normally do over a console, kicking players, changing maps, reading logs, happens in a browser-based Web Admin panel that ships DISABLED. Turn it on in KFGame/Config/LinuxServer-KFWeb.ini:
[IpDrv.WebServer]
bEnabled=true
ListenPort=8080After the server is running, open http://your.server.ip:8080 in a browser and log in with the user Admin and the AdminPassword you set above. Open port 8080/TCP in your firewall.
The launch line
KF2 takes one URL-style argument that combines the map, game mode, and per-boot overrides, then a few flags for ports:
./Binaries/Win64/KFGameSteamServer.bin.x86_64 \
KF-BioticsLab?Game=KFGameContent.KFGameInfo_Survival?Difficulty=1?GameLength=1 \
-Port=7777 -QueryPort=27015 -WebAdminPort=8080- KF-BioticsLab is the starting map. Swap for any KF- map (KF-Outpost, KF-Nuked, KF-VolterManor…).
- Game= picks the mode: KFGameInfo_Survival (co-op), KFGameInfo_WeeklySurvival, KFGameInfo_VersusSurvival, or KFGameInfo_Endless.
- Difficulty and GameLength on the URL override the INI for that boot, handy for quick changes without editing files.
- Open 7777/UDP (game), 27015/UDP (Steam query) and 8080/TCP (web admin) in your firewall.
The one catch: six players
Vanilla KF2 caps the co-op modes (Survival, Endless, Weekly) at six players. Setting MaxPlayers higher in the INI or on the launch URL does nothing: the engine clamps it back to 6. That is the intended co-op size and needs zero mods. To go past six on the current build, use the Server Extension mutator (Workshop item 2085786712) and set ForcedMaxPlayers in its KFServerExtMut.ini. Keep the SettingsInit line in that file, or the mod resets the cap to 6 on first boot. Any mutator makes the server unranked, and Server Extension also swaps in its own perk progression.
