Server Configuration

After installing or hosting a server you need to configurate the server before you can use nicely.

## Command Line

All of the following parameters can be added to your starting command line for additional configuration. Be careful to avoid typos when adding these!

**MULTIHOME** = The IP Address you want to bind the server to. **(Use only if you have multiple IPs on your server)** *(Optional)*

**Port = Game port**

**QueryPort** = Steam query port

**RANDOM** = Randomize map rotation (ALWAYS, FIRST, NONE) *(Optional)*

**FIXEDMAXPLAYERS** = Player count cannot go higher than this *(Optional)*

**FIXEDMAXTICKRATE** = MAX server tickrate *(Optional)*

**PREFERPREPROCESSOR** = CPU Affinity *(Optional)* UNTESTED

**-log** = Display a log window on the server *(Optional)*

**-fullcrashdump** = Save a full dump file on crash (can become quite large sometimes) *(Optional)*

The following line implements additional start parameters as an example.

```
start WireGameServer.exe MULTIHOME=1.2.3.4 Port=7887 QueryPort=27165 FIXEDMAXPLAYERS=100 FIXEDMAXTICKRATE=35 RANDOM=NONE -log

```

## Files

Configuration files are located in `C:\btwservers\btw_server7887\WireGame\ServerConfig\`
Configuration files located in this directory are

```
Admins.cfg
Bans.cfg
License.cfg
MapRotation.cfg
Motd.cfg (optional)
Rcon.cfg
RemoteAdminListHosts.cfg
RemoteBanListHosts.cfg
Server.cfg
ServerMessages.cfg

```

## Adding Admins in Admins.cfg

Admins are now created by groups and groups are assigned to admins. You can create as many groups as you want with any types of permissions. All the permissions will be in the config file commented out. These files will not be over writeable so when we add new permissions you will need to check here or the wiki for updates. The below are just examples.
Please note that it needs to be SteamId64. You can convert your ID at steamid.io/lookup/

```
Group=SuperAdmin:changemap,cheat,private,balance,chat,kick,ban,config,cameraman,debug,pause
Group=Admin:changemap,balance,chat,kick,ban,cameraman,pause
Group=Moderator:changemap,chat,kick,ban
Group=Whitelist:reserve

//Moderator
Admin=76561115695178:Moderator //Player 5
Admin=8915618948911:Moderator //Player 4

//Admins
Admin=7894591951519:Admin //Player 3
Admin=7895365435431:Admin //Player 8792

//SuperAdmins
Admin=7984591565611:SuperAdmin //Player 2
Admin=7917236241624:SuperAdmin //Player 1

//WhitelistSlots
Admin=7984591565611:Whitelist // Player 123
Admin=7984591565523:Whitelist // Player 156

```

```
A list of group permission are as follows:
 //// Valid access levels are as follows
 ////		startvote - not used
 ////		changemap
 ////		pause - Pause server gameplay
 ////		cheat - Use server cheat commands
 ////		private	- Password protect server
 ////		balance	- Group Ignores server team balance
 ////		chat - Admin chat and Server broadcast
 ////		kick
 ////		ban
 ////		config - Change server config
 ////		cameraman - Admin spectate mode
 ////		immunity - Cannot be kicked / banned
 ////		manageserver - Shutdown server
 ////		featuretest - Any features added for testing by dev team
 ////		reserve - Reserve slot
 ////		demos - Record Demos (not working)
 ////		debug - show admin stats command and other debugging info
 ////		teamchange - No timer limits on team change
 ////		forceteamchange - Can issue the ForceTeamChange command
 ////		canseeadminchat - This group can see the admin chat and teamkill/admin-join notifications

```

## Bans in Bans.cfg

This is where your bans will go. They need to be in the format of
`steamid:unix timestamp of unban //comment`
So an example file will look like this

```
76561198039509812:0 //Permanent ban for cheating
7862895148978485:1623366856 //team killing
```

Make sure if you manually add / remove a ban that the file ends with a new line character. Each ban goes on its own line.

If you want to check how long a user is still banned or create a time ban you can use converter tools like this:

- https://www.epochconverter.com

## Map Rotation in MapRotation.cfg

This is where you add map rotation for the server, the list below details all the current layers, you can adjust accordingly till you get a rotation that works for you.

```
Ansoncourt Assault
Frise Frontlines
Zonnebeke Frontlines
Ansoncourt Frontlines
Ansoncourt Assault
Frise Assault
Zonnebeke Assault
Ansoncourt Frontlines
Frise Assault v2
Frise Assault v2

```

## Remote Admin Lists in RemoteAdminListHosts.cfg

Each line should contain a URL to the admin file. The admin file will follow the exact same format as above. This should be used if you run multiple servers and would like to have a single admin file for all of them. If a player is listed in multiple files, their permissions will be combined.

## Remote Ban Lists in RemoteBanListHosts.cfg

Each line should contain a URL to the ban file. The ban file will follow the exact same format as above.

This should be used if you run multiple servers and would like to have a single ban file for all of them.

## Server Configuration Settings in Server.cfg

This is the general server config file. Each variable should be on its own line. New additions will be added to this wiki. Since we do not overwrite config files you will need to manually add them to your existing server config if you wish to alter the default value.

* **Special characters in ServerName**: If special characters in the server name show up as "????" in the Server browser, a possible solution is to use a word processor like Microsoft Word, open a new document and insert the character you want to use, then select and copy the character into the ServerName line in your Server.cfg file, e.g `ServerName="Test Server Λ"`.
* **AutoTkBanTime:** This option is disabled on release caused by a bug.

```
ServerName="BTW Dedicated Server"
ServerPassword=
MaxPlayers=100
NumReservedSlots=0
IsLANMatch=false
ShouldAdvertise=true
NumPlayersDiffForTeamChanges=3
AllowTeamChanges=true
PreventTeamChangeIfUnbalanced=true
EnforceTeamBalance=true
RejoinSquadDelayAfterKick=180
RecordDemos=false
ServerMessageInterval=300
VehicleClaimingDisabled=false
// Forced on for Licensed servers (Grants Redstone developers & QA admin access)
AllowCommunityAdminAccess=false
// Forced on for Licensed servers (Grants only Redstone developers performance profiling access)
AllowDevProfiling=false
// ForceNonSeamlessTravelIntervalSeconds=43200 // 1 day
PublicQueueLimit=10

```

## Server Messages in ServerMessages.cfg

This will rotate server messages every x seconds (based on Server.cfg setting).

Each message should have its own line. This should be used to display server rules and contact information.

## Rcon control in Rcon.cfg

If you do not want to use RCON, leave the **password=** empty.

NOTE: Leaving the RCONIP=0.0.0.0 will bind it to the public default IP.

If your server has multiple IP's please specify the address here.

```
// Edit this IP to bind the RCON socket to an alternate IP address.
// Alternatively, set this from the command line with the argument:
//   RCONIP=0.0.0.0
IP=0.0.0.0
// Edit this IP to bind the RCON socket to an alternate port.
// Alternatively, set this from the command line with the argument:
//   RCONPORT=21114
Port=21114
// Set this to enable the usage of RCON with the given password for login.
// Leaving this empty will keep RCON turned off.
// Alternatively, set this from the command line with the argument:
//   RCONPASSWORD=MyPassword
Password=
// Set this to set the maximum number of allowable concurrent RCON
// connections to the server.
// Alternatively, set this from the command line with the argument:
//   RCONMAXCONNECTIONS=5
MaxConnections=5
// Edit this to customize the number of seconds without contact from a connected
// console before the server checks with that computer to see if the session is
// still active, or if it got disconnected. Supports values between 30 and 3600.
// Alternatively, set this from the command line with the argument:
//   RCONSECONDSBEFORETIMEOUTCHECK=120
SecondsBeforeTimeoutCheck=120
```