Server Configuration¶
This guide explains how to configure network settings for your Chivalry 2 Unchained server using Unreal Engine 4's configuration system.
Important
Ensure your server has been shut down before making any ini modifications! Failure to do so will cause your changes to be overwritten!
Configuration File Locations¶
- Engine.ini:
%localappdata%/Chivalry 2/Saved_UnchainedServer/Config/WindowsNoEditor/Engine.ini
- Game.ini:
%localappdata%/Chivalry 2/Saved_UnchainedServer/Config/WindowsNoEditor/Game.ini
Engine.ini Settings¶
[/Script/OnlineSubsystemUtils.IpNetDriver]
¶
Parameter | Description | Recommended Values |
---|---|---|
NetServerMaxTickRate | Server updates per second | 30 (low), 60 (balanced), 120 (high) |
MaxClientRate | Max bytes/sec to LAN clients | 50000 (low), 100000 (balanced), 150000 (high) |
MaxInternetClientRate | Max bytes/sec to internet clients | 50000 (low), 100000 (balanced), 150000 (high) |
InitialConnectTimeout | Seconds to establish connection | 60.0 |
ConnectionTimeout | Seconds before disconnect | 60.0 |
LanServerMaxTickRate | Max tick rate for LAN | Same as NetServerMaxTickRate |
RelevantTimeout | Actor relevance timeout | 5.0 |
SpawnPrioritySeconds | Spawn priority window | 1.0 |
ServerTravelPause | Map change pause | 4.0 |
Example Configuration
[/Script/OnlineSubsystemUtils.IpNetDriver]
NetServerMaxTickRate=60
MaxClientRate=100000
MaxInternetClientRate=100000
InitialConnectTimeout=300.0
ConnectionTimeout=300.0
Note
Recommended values are still being worked on. Play with them and see what works best for you. Report your results to the community and we will update this doc!
For more UE4 network settings, see the Unreal Engine Networking Documentation.
Game.ini Settings¶
[/Script/Engine.GameSession]
¶
Parameter | Description | Example Value |
---|---|---|
MaxPlayers | Maximum number of players allowed on the server | 256 |
Example Configuration
[/Script/Engine.GameSession]
MaxPlayers=256
[/Script/TBL.TBLGameMode]
¶
Parameter | Description | Example Value |
---|---|---|
ServerName | The name displayed in the upper left corner when pressing Tab in-game | MyLocalServer |
ServerIdentifier | The server identifier displayed in the upper left corner when pressing Tab in-game | id |
BotBackfillEnabled | Enables or disables bot backfill feature | True |
BotBackfillLowPlayers | Player count threshold for maximum bot spawning | 10 |
BotBackfillLowBots | Number of bots to spawn when player count is at or below the low threshold | 12 |
BotBackfillHighPlayers | Player count threshold for minimum bot spawning | 30 |
BotBackfillHighBots | Number of bots to spawn when player count is at or above the high threshold | 0 |
MinTimeBeforeStartingMatch | Minimum warmup time in seconds before a match starts | 1.000000 |
IdleKickTimerSpectate | Time in seconds before an idle player is moved to spectator (0 to disable) | 0.000000 |
IdleKickTimerDisconnect | Time in seconds before an idle player is disconnected (0 to disable) | 0.000000 |
Maplist | A map to include in the rotation (add multiple lines for multiple maps) | FFA_Wardenglade |
MapListIndex | Index of the current map in rotation (-1 for random start) | -1 |
bHorseCompatibleServer | Enables or disables horses on the server | true |
TeamBalanceOptions | Team balance settings for player count ranges (MinNumPlayers, MaxNumPlayers, AllowedNumPlayersDifference) | (MinNumPlayers=0,MaxNumPlayers=32,AllowedNumPlayersDifference=2) |
AutoBalanceOptions | Auto-balance settings for player count ranges (MinNumPlayers, MaxNumPlayers, AllowedNumPlayersDifference) | (MinNumPlayers=0,MaxNumPlayers=24,AllowedNumPlayersDifference=1) |
StartOfMatchGracePeriodForAutoBalance | Grace period in seconds before auto-balance begins at match start | 30 |
StartOfMatchGracePeriodForTeamSwitching | Grace period in seconds for team switching at match start | 0 |
bUseStrictTeamBalanceEnforcement | Enables or disables strict team balance enforcement | False |
Example Configuration
[/Script/TBL.TBLGameMode]
# Server Name
ServerName=Example
ServerIdentifier=id
# Bot Backfill Settings
BotBackfillEnabled=True
BotBackfillLowPlayers=10
BotBackfillLowBots=12
BotBackfillHighPlayers=30
BotBackfillHighBots=0
# Match Timing
MinTimeBeforeStartingMatch=1.000000
# AFK Timers
IdleKickTimerSpectate=0.000000
IdleKickTimerDisconnect=0.000000
# Map List
Maplist=FFA_Wardenglade
Maplist=FFA_TournamentGrounds
Maplist=FFA_Courtyard
Maplist=FFA_Galencourt
# LTS Maps
Maplist=LTS_Falmire
Maplist=LTS_Courtyard
Maplist=LTS_Galencourt
Maplist=LTS_TournamentGrounds
Maplist=LTS_Wardenglade
MapListIndex=1
# Horse Settings
bHorseCompatibleServer=true
# Team Balance Settings
TeamBalanceOptions=(MinNumPlayers=0,MaxNumPlayers=32,AllowedNumPlayersDifference=2)
TeamBalanceOptions=(MinNumPlayers=32,MaxNumPlayers=48,AllowedNumPlayersDifference=3)
TeamBalanceOptions=(MinNumPlayers=48,MaxNumPlayers=999,AllowedNumPlayersDifference=3)
AutoBalanceOptions=(MinNumPlayers=0,MaxNumPlayers=24,AllowedNumPlayersDifference=1)
AutoBalanceOptions=(MinNumPlayers=24,MaxNumPlayers=999,AllowedNumPlayersDifference=2)
StartOfMatchGracePeriodForAutoBalance=30
StartOfMatchGracePeriodForTeamSwitching=0
bUseStrictTeamBalanceEnforcement=False
[/Script/TBL.TBLTitleScreen]
¶
Parameter | Description | Example Value |
---|---|---|
bSavedHasAgreedToTOS | Bypasses the Terms of Service agreement prompt | True |
Example Configuration
[/Script/TBL.TBLTitleScreen]
bSavedHasAgreedToTOS=True
Important
This setting is necessary for initial setup of headless servers to bypass the Terms of Service prompt. If your server isn't starting, this is likely the cause.
[/Script/TBL.LTSGameMode]
¶
Parameter | Description | Example Value |
---|---|---|
PreCountdownDelay | Time in seconds before the match countdown begins | 5 |
Rounds | Total number of rounds to play (should be N*2-1 where N is the number of rounds to win) | 39 |
Example Configuration
[/Script/TBL.LTSGameMode]
PreCountdownDelay=5
Rounds=39
Rounds Calculation
Set Rounds to N*2-1 where N is the number of rounds you want the game to go to. For example, if you want first to 20, use N=20 for Rounds=39.
[/Script/TBL.ArenaGameMode]
¶
Parameter | Description | Example Value |
---|---|---|
Rounds | Total number of rounds to play (should be N*2-1 where N is the number of rounds to win) | 39 |
RoundTimeLimit | Time limit in seconds for each round | 300 |
bClearWeaponsPostRound | Whether to clear weapons after each round | True |
bClearHorsesPostRound | Whether to clear horses after each round | True |
bResetTaggedActorsPostRound | Whether to reset tagged actors after each round | True |
bUsePreCountdownForCustomizationLoading | Whether to use pre-countdown for customization loading | True |
MinTimeBeforeStartingMatch | Minimum time in seconds before starting the match | 5 |
MaxTimeBeforeStartingMatch | Maximum time in seconds before starting the match | 10 |
TeamLives | Extra lives given to a team (per player) | 0 |
Example Configuration
[/Script/TBL.ArenaGameMode]
Rounds=39
RoundTimeLimit=300
bClearWeaponsPostRound=True
bClearHorsesPostRound=True
bResetTaggedActorsPostRound=True
bUsePreCountdownForCustomizationLoading=True
MinTimeBeforeStartingMatch=5
MaxTimeBeforeStartingMatch=10
TeamLives=0
TeamLives Explanation
TeamLives represents extra lives a team gets. For example, in a 6v6 match with TeamLives=1, the first player who dies on each team gets an extra life. With TeamLives=2, the first two players who die get an extra life, and so on.
GameUserSettings.ini Settings¶
[/Script/TBL.TBLGameUserSettings]
¶
Parameter | Description | Example Value |
---|---|---|
MaxFPS | Maximum frames per second for the server | 80 |
FrameRateLimit | Frame rate limit in floating point format | 80.000000 |
Example Configuration
[/Script/TBL.TBLGameUserSettings]
MaxFPS=80
FrameRateLimit=80.000000
FPS Synchronization
MaxFPS is important and should be advertised in your server name. Players will need to match this FPS to avoid desync issues.