Adding Custom Maps to Your KF2 Server
Install custom .kfm maps on your Killing Floor 2 dedicated server. Covers manual file placement, the correct directory path, updating the map cycle in LinuxServer-KFGame.ini, and Steam Workshop integration.
Custom Maps on Your KF2 Server
KF2 maps use the .kfm file format. You can install custom maps manually or via Steam Workshop.
Method 1 — Manual Installation
Step 1 — Get the map file
Download the .kfm file from a source like the KF2 Steam Workshop (download using a SteamCMD workshop downloader or transfer from a client install).
Step 2 — Upload the file
Place the .kfm file in:
KFGame/Published/BrewedPC/Maps/
Create the directory if it doesn't exist:
mkdir -p /home/steam/kf2server/KFGame/Published/BrewedPC/Maps/
Then upload (e.g. via SFTP or scp):
scp KF-MyCustomMap.kfm user@YOUR_SERVER_IP:/home/steam/kf2server/KFGame/Published/BrewedPC/Maps/
Step 3 — Add to map cycle
In KFGame/Config/LinuxServer-KFGame.ini, add the map to GameMapCycles:
[KFGame.KFGameInfo]
GameMapCycles=(Maps=("KF-BioticsLab","KF-BurningParis","KF-MyCustomMap"))
Map names are case-sensitive and must match the filename exactly (without
.kfm).
Step 4 — Restart the server
The map will now appear in the WebAdmin map list and in the rotation.
Method 2 — Steam Workshop
KF2 servers can subscribe to Workshop items and download maps automatically.
Enable Workshop in LinuxServer-KFGame.ini:
[OnlineSubsystemSteamworks.KFWorkshopSteamworks]
ServerSubscribedWorkshopItems=WorkshopItemID1
ServerSubscribedWorkshopItems=WorkshopItemID2
Replace WorkshopItemID1 with the numeric ID from the Steam Workshop URL (e.g. https://steamcommunity.com/sharedfiles/filedetails/?id=12345678 → 12345678).
The server downloads workshop items on startup. After they download, add the map names to GameMapCycles as above.
Official Map List (for Reference)
All official KF2 maps use the KF- prefix:
KF-AshwoodAsylum KF-BioticsLab KF-BurningParis
KF-Catacombs KF-ContainmentStation KF-EvacuationPoint
KF-Farmhouse KF-HostileGrounds KF-InfernalRealm
KF-KrampusLair KF-Lockdown KF-MonsterBall
KF-Nightmare KF-Nuked KF-Outpost
KF-PowerCore KF-Prison KF-Sanitarium
KF-Schwarzwald KF-ShoppingSpree KF-Spillway
KF-SteamFortress KF-ThePit KF-TragicKingdom
KF-VolterManor KF-ZedLanding
Troubleshooting
Map not loading: Check that the filename matches exactly what's in GameMapCycles — KF2 map names are case-sensitive on Linux.
Custom map not appearing in WebAdmin: Restart the server fully (not just map change) so it rescans the Published/BrewedPC/Maps/ directory.
Players getting "map not found" errors: Players must also have the map installed. For public servers, use Workshop-based maps so Steam can push the map to clients automatically.