Setting up an Unchained Server¶
Important
Excessive modification of ini files or other mods before starting this may cause issues. If you have problems, try completely deleting %localappdata%/Chivalry 2
and reinstalling Chivalry 2 before doing this tutorial again. Frequently back-up known-good INI configurations as you make changes to avoid having to start over.
Definitions¶
Term | Definition |
---|---|
Host machine | The computer hosting the Chivalry 2 server |
Host instance | The instance of Chivalry 2 acting as the "server." A single machine may run Chivalry 2 twice, with one instance running as a client and the other as a server |
Client instance | See above, but it's a client instead |
Backend | An instance of our C2ServerBrowserBackend. We run one at servers.polehammer.net , so you don't have to. This imitates portions of the PlayFab API to send custom MOTD and server list results to clients that target it |
Requirements¶
Before starting, ensure you have:
- A public IP address that you can forward ports to (if you want to host a public server on the internet)
- A bare-metal NIC (Network Interface Card) on the host machine
- Chivalry 2 installed on the host machine
Initial Setup¶
- Install Unchained on the host as you normally would. Make sure Unchained is replacing the normal Chivalry 2 launcher. (You will be prompted to do this on install)
- Go to the 'Server' tab of the Unchained Launcher and enter your server's name and other configuration
If Chivalry 2 has not run on this machine before, or you deleted %localappdata%/Chivalry 2/Saved_UnchainedServer
:
- Click "Launch Headless" in the bottom right
- Let this run for ~20 seconds to ensure that ini files are generated
- Close all windows that opened
- You may be prompted to download several files: Click "Yes"
Important for NFO Hosts
If you are using NFO hosting, there is a port conflict with UDP/7777. Change your game port to 7778 in the server tab. No other action is needed. If you do not do this then you will experience extreme gameplay degradation.
Necessary ini Tweaks¶
There are two ini settings that must be set in order to successfully host:
- Navigate to
%localappdata%/Chivalry 2/Saved_UnchainedServer/Config/WindowsNoEditor
in your file browser - Open
Game.ini
- Add the following lines to the top of the file:
[/Script/TBL.TBLGameInstance]
FirstLoadCompleted=True
[/Script/TBL.TBLTitleScreen]
bSavedHasAgreedToTOS=True
Note
If the TBLGameInstance or TBLTitleScreen sections are already present somewhere in the file, add the lines to those sections instead of making a duplicate.
Recommended Configuration Settings¶
While the above settings are the minimum required to get your server running, you'll likely want to customize your server further. Here are some important configuration values to consider:
Server Identity and Player Limits¶
In Game.ini
, under the [/Script/TBL.TBLGameMode]
section:
Server Identity Configuration
# Server Name (displayed in-game)
ServerName=My Awesome Server
ServerIdentifier=MyServer
# Player Limits
[/Script/Engine.GameSession]
MaxPlayers=64
Performance and Synchronization¶
In GameUserSettings.ini
, under the [/Script/TBL.TBLGameUserSettings]
section:
Performance Configuration
# FPS settings (important for netcode synchronization)
MaxFPS=80
FrameRateLimit=80.000000
FPS Synchronization
The FPS setting is critical for proper gameplay. Players should match their FPS to your server's setting to avoid desync issues. Advertise your FPS cap in your server name.
Bot Backfill¶
In Game.ini
, under the [/Script/TBL.TBLGameMode]
section:
Bot Configuration
# Bot settings
BotBackfillEnabled=True
BotBackfillLowPlayers=10
BotBackfillLowBots=12
BotBackfillHighPlayers=30
BotBackfillHighBots=0
Team Balance¶
In Game.ini
, under the [/Script/TBL.TBLGameMode]
section:
Team Balance Configuration
# 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
For a complete list of configuration options and detailed explanations, see our Server Configuration Guide.
Launching¶
Go back to the server tab in the Unchained Launcher and click "Launch Headless". You may be prompted to download several files: Click "Yes".
Two windows will open:
- The Unchained debug window - which you will see during normal Unchained launches
- Your server's RCON control panel - which registers your server with the Unchained backend (so that it appears in the Unchained in-game server list) and allows you to execute server commands
These commands are from the same list as the in-game console.
For advanced server configuration options, including network settings, see our Server Configuration Guide.
For information on how to moderate your server, including kicking and banning players, see our Server Moderation Guide.
Port Forwarding¶
NFO Hosts
NFO servers have automatic port forwarding—you don't have to do anything here.
Before anyone other than you can join your server, you need to forward your ports (expose them to the open internet).
Required Ports¶
Port | Protocol | Purpose |
---|---|---|
7777 | UDP | Game Port (default) |
3075 | UDP | Ping Port (default) |
Additional Ports (Do Not Forward to Internet)¶
Port | Protocol | Purpose | Notes |
---|---|---|---|
9001 | TCP | RCON port | DO NOT expose to internet! |
7071 | UDP | A2S port | Internal use only |
Security Warning
The RCON port (TCP/9001) should not be exposed to the open internet! Doing this would give anyone full freedom to execute admin commands on your server! They (likely) can't hack your machine through this, but they can ban people, kick people, and change the map to whatever they want!
If you want your admins accessing this, use SSH tunneling or set up your firewall rules to allow only specific IPs.
The ports you need to forward are visible (and can be changed to whatever you want before launching) in the server tab of the Unchained Launcher. Doing this follows the same procedure as forwarding ports for any other game, and thus will not be described here. Tutorials for port forwarding can be found online.
Troubleshooting¶
A2S Timed Out¶
On the initial start of your server, these messages are normal. The console attempts to connect to the Chivalry server before it has actually had time to start up and listen. If these messages do not stop appearing after ~30 seconds, then there is something wrong.
Troubleshooting Steps:¶
-
Try sending a console command
If you get an error in the server console:
- This means that the Chivalry process is not listening on RCON
- This indicates a plugin loading issue
- Close the server windows and re-start it
- If the issue persists, contact the Unchained Team for helpIf you see the same console command appear in the debug output window:
- This indicates that the plugins are loaded, but the server has not yet loaded into the map to listen on the A2S port- Check if there is a "Substituted console command" line in the debug output
- If there is one, contact the Unchained Team—this indicates there is an issue in the Unchained-Mods and map loading machinery
- If there is no "Substituted console command" line, this suggests an ini misconfiguration
- Go to the Necessary ini Tweaks section and ensure the required ini lines are present
- If you keep having trouble, contact the Unchained Team
- Check if there is a "Substituted console command" line in the debug output
Severe Network Lag¶
NFO hosts
Make sure your game port is NOT 7777. Change it to 7778.
Other hosts
Make sure you don't have any applications using UDP/7777 on your computer.
Known Issues¶
- Animation Bugs
- For the host instance, animations are bugged
-
There is no workaround for this other than launching another instance, joining as a client, and playing on that instead
-
FPS Sensitivity
- Netcode is very sensitive to host and client FPS
- It is strongly recommended that you cap the fps of the host instance, and advertise that fps in your server description
- Clients should lock their fps to match
- If the host is running at, for example, 120fps:
- Clients running at lower (<120) fps will get delayed hits, swing-throughs, and other netcode issues
- Clients running at higher (>120) fps will get accelerated/early hits
Quick Configuration Checklist¶
Before launching your server, ensure you've configured these essential settings:
Basic Setup¶
- Set
FirstLoadCompleted=True
andbSavedHasAgreedToTOS=True
in Game.ini - Configure your server name and identifier
- Set appropriate max player count
- Configure FPS cap (recommended: 60-80)
- Set up map rotation
Network & Security¶
- Forward required ports (Game Port and Ping Port)
- Secure RCON port from public access
- For NFO hosts: Change game port from 7777 to 7778
Gameplay Settings¶
- Configure team balance settings if hosting team-based modes
- Set up bot backfill if desired
- Familiarize yourself with server moderation commands
For LTS/Arena Servers¶
- Set appropriate round count and time limits
- Configure team lives if desired