# How to Configure Your Killing Floor 2 Server (/docs/killing-floor-2/configure-your-server)



import { Step, Steps } from 'fumadocs-ui/components/steps';

Killing Floor 2 server configuration is handled through two main config files and optional startup parameters. You can also use the built-in WebAdmin panel for real-time management. This guide covers all three approaches.

Configuration Files Overview [#configuration-files-overview]

Killing Floor 2 uses two primary config files located in the `KFGame/Config/` directory:

| File                    | Purpose                                                               |
| ----------------------- | --------------------------------------------------------------------- |
| **PCServer-KFGame.ini** | Main server configuration — game settings, map rotation, admin access |
| **KFGame.ini**          | Game engine settings — gameplay tweaks, difficulty modifiers          |

> 📝 **Note:** Always stop your server before editing config files. Changes made while the server is running may be overwritten when the server shuts down, because the server writes its current state back to the config files on exit.

Editing Config Files [#editing-config-files]

<div className="fd-steps">
  <div className="fd-step">
    Open the XGamingServer panel [#1-open-the-xgamingserver-panel]

    Log in to the [XGamingServer panel](https://panel.xgamingserver.com) and stop your Killing Floor 2 server.
  </div>

  <div className="fd-step">
    Navigate to Files [#2-navigate-to-files]

    In the sidebar, click `Files`.
  </div>

  <div className="fd-step">
    Open the config directory [#3-open-the-config-directory]

    Navigate to `KFGame` > `Config`.
  </div>

  <div className="fd-step">
    Edit PCServer-KFGame.ini [#4-edit-pcserver-kfgameini]

    Click on `PCServer-KFGame.ini` to open it in the editor.
  </div>

  <div className="fd-step">
    Make your changes [#5-make-your-changes]

    Edit the settings you want to change (see the reference tables below).
  </div>

  <div className="fd-step">
    Save and restart [#6-save-and-restart]

    Click **Save** and start your server.
  </div>
</div>

Key Server Settings (PCServer-KFGame.ini) [#key-server-settings-pcserver-kfgameini]

The `[Engine.GameReplicationInfo]` section contains your core server identity settings:

| Setting      | Description                      | Example                    |
| ------------ | -------------------------------- | -------------------------- |
| `ServerName` | Name shown in the server browser | `ServerName=My KF2 Server` |
| `ShortName`  | Shortened name for display       | `ShortName=MyKF2`          |

The `[Engine.AccessControl]` section handles access and admin settings:

| Setting         | Description                          | Example                  |
| --------------- | ------------------------------------ | ------------------------ |
| `GamePassword`  | Password required to join the server | `GamePassword=secret123` |
| `AdminPassword` | Password for admin/WebAdmin login    | `AdminPassword=admin123` |

The `[KFGame.KFGameInfo]` section controls core gameplay:

| Setting            | Description                                                      | Default |
| ------------------ | ---------------------------------------------------------------- | ------- |
| `GameDifficulty`   | Difficulty level (0=Normal, 1=Hard, 2=Suicidal, 3=Hell on Earth) | `0`     |
| `GameLength`       | Wave count (0=Short/4 waves, 1=Medium/7 waves, 2=Long/10 waves)  | `1`     |
| `bDisableMapVote`  | Disable map voting between rounds                                | `false` |
| `bDisableKickVote` | Disable player kick voting                                       | `false` |
| `bDisablePublish`  | Hide server from the server browser                              | `false` |
| `MaxPlayers`       | Maximum number of players (1-6 for Survival, 1-12 for VS)        | `6`     |

Map Rotation [#map-rotation]

The map cycle is defined in the `[KFGame.KFGameInfo]` section of `PCServer-KFGame.ini`. Each map is listed as a `GameMapCycles` entry:

```ini
[KFGame.KFGameInfo]
GameMapCycles=(Maps=("KF-BurningParis","KF-Outpost","KF-BioticsLab","KF-VolterManor","KF-Catacombs"))
```

See our full [Change Map guide](/docs/killing-floor-2/change-map) for the complete map list and rotation setup.

Startup Parameters [#startup-parameters]

Startup parameters are set in the `Startup` tab on the XGamingServer panel. Common parameters include:

| Parameter        | Description                   | Example                                       |
| ---------------- | ----------------------------- | --------------------------------------------- |
| `?GameMode=`     | Set the game mode class       | `?GameMode=KFGameContent.KFGameInfo_Survival` |
| `?MaxPlayers=`   | Maximum player count          | `?MaxPlayers=6`                               |
| `?Difficulty=`   | Difficulty level (0-3)        | `?Difficulty=2`                               |
| `?GameLength=`   | Wave count preset             | `?GameLength=1`                               |
| `-Port=`         | Override the game port        | `-Port=7777`                                  |
| `-WebAdminPort=` | Override the WebAdmin port    | `-WebAdminPort=8080`                          |
| `-QueryPort=`    | Override the Steam query port | `-QueryPort=27015`                            |

> 💡 **Tip:** Startup parameters that begin with `?` are game parameters and go after the map name. Parameters that begin with `-` are engine parameters and go separately. For example: `KF-BurningParis?GameMode=KFGameContent.KFGameInfo_Survival?MaxPlayers=6 -Port=7777`

Game Mode Classes [#game-mode-classes]

When setting the game mode via startup parameters, use these class names:

| Game Mode           | Class                                     |
| ------------------- | ----------------------------------------- |
| **Survival**        | `KFGameContent.KFGameInfo_Survival`       |
| **Versus Survival** | `KFGameContent.KFGameInfo_VersusSurvival` |
| **Endless**         | `KFGameContent.KFGameInfo_Endless`        |
| **Weekly**          | `KFGameContent.KFGameInfo_WeeklySurvival` |
| **Objective**       | `KFGameContent.KFGameInfo_Objective`      |

Using WebAdmin [#using-webadmin]

Killing Floor 2 includes a built-in WebAdmin panel that lets you manage your server from a web browser in real-time:

<div className="fd-steps">
  <div className="fd-step">
    Enable WebAdmin [#1-enable-webadmin]

    Make sure WebAdmin is enabled in `PCServer-KFGame.ini`:

    ```ini
    [IpDrv.WebServer]
    bEnabled=true
    ListenPort=8080
    ```
  </div>

  <div className="fd-step">
    Set admin credentials [#2-set-admin-credentials]

    Set an admin password in the `[Engine.AccessControl]` section. See our [Adding Admins guide](/docs/killing-floor-2/adding-admins) for details.
  </div>

  <div className="fd-step">
    Access WebAdmin [#3-access-webadmin]

    Open your browser and navigate to `http://YOUR_SERVER_IP:8080`. Log in with the admin username and password.

    From WebAdmin, you can:

    * View connected players and kick/ban them
    * Change the map and game mode in real-time
    * Adjust server settings without editing config files
    * Monitor server performance

    > 📝 **Note:** The WebAdmin port (8080) must be accessible. Check the `Network` tab on the XGamingServer panel to confirm your allocated ports.
  </div>
</div>

Advanced Settings (KFGame.ini) [#advanced-settings-kfgameini]

The `KFGame.ini` file contains additional gameplay tweaks in the `[KFGame.KFGameInfo]` section:

| Setting                | Description                                           | Default |
| ---------------------- | ----------------------------------------------------- | ------- |
| `bEnableMapObjectives` | Enable map-specific objectives                        | `true`  |
| `MaxIdleTime`          | Seconds before idle players are kicked (0 = disabled) | `300`   |
| `ReadyUpDelay`         | Seconds to wait in the lobby before auto-starting     | `90`    |
| `GameStartDelay`       | Seconds after ready-up before the game starts         | `15`    |
| `bAllowSwitchTeam`     | Allow players to switch teams in VS modes             | `true`  |

> 💡 **Tip:** If you're running a public server, consider setting `MaxIdleTime` to `180` (3 minutes) to automatically kick AFK players and free up slots for active players.

If you get stuck at any time, you can join our [Discord](https://discord.xgamingserver.com/).
