Server CFG Files

## Location

The server's CFG files are in the postscriptum\_server/PostScriptum/ServerConfig directory by default and contain parameters relevant to permissions, RCON, and more. Some CFG elements may be modified via console commands or RCON commands. It is recommended to modify these files in a low-level text editor like Atom, Nano, Notepad, Notepad++, Pluma, or Vim. Changes to the CFG files may be made while a server is running, but any changes will require a reboot of the Post Scriptum Server service to be applied.

## Admins.cfg

##### Permissions Table

The Admin.cfg file defines groups along with permissions and members thereof to provide elevated Admin Command access. Below is a table of the permissions along with what they enable one to do:

##### Groups

Groups are created by providing them with a name and list of permissions. The format for doing so is below:

Group=<GroupName>:<List of Permissions>

As an example, a group named AllAccess where all permissions are granted would be set as such:

Group=AllAccess:changemap,pause,cheat,private,balance,chat,kick,ban,config,cameraman,immune,manageserver,reserve,debug,teamchange,forceteamchange,canseeadminchat

##### Admins

Admins are assigned to groups, inheriting the group's permissions. Admins are identified by their steamID64 (Dec) identifier. The format for doing so is below:

Admin=<SteamID>:<GroupName>

As an example, adding a member to the AllAccess group would be set as such:

Admin=00000000000000000:AllAccess

## Bans.cfg

The Bans.cfg file contains a list of banned players identified by their Steam ID in steamID64 (Dec) format. The format must follow these guidelines:

* Steam IDs must be in steamID64 (Dec) format
* Only one Steam ID per line, no trailing spaces, valid value is an integer

## MapRotation.cfg

The MapRotation.cfg file contains a list of which maps, game modes, and layers will be played on the server. The list cycles through chronologically and starts from the top after the last entry's match completes. Specifying a map without a game mode and layer will cause the server to start a match of that map's default game mode and layer. The use of modded maps and game modes will need to be specified matching their syntax as shown in the mod's Steam Workshop description or when scrolling through AdminChangeMap in the console. The format must follow these guidelines:

* Maps may be entered either with just the map name or by also including a game mode and layer
* Only one entry per line, no trailing spaces, no double-quotes

In the event the server is unable to parse an entry on startup it will default to Veghel.

## MapVoting.cfg

The MapVoting.cfg allows you to use voting instead of a rotation to determine the next match to be played. The default value for MapVoting in Server.cfg is false, meaning that the MapRotation.cfg will be used instead of voting. Once MapVoting is set to true, the server will reference this MapVoting.cfg file to provide players a list of what maps and modes can be voted on. The same map and game mode just played will not be present in the vote. The format for each line is as such:

<Map Name> <Game Mode>=<Map Name> <Game Mode> <Layer>

<Map Name> <Game Mode>=<Map Name> <Game Mode> <Layer1>,<Map Name> <Game Mode> <Layer2>, etc.

Below is a sample MapVoting.cfg file:

> `Veghel Offensive=Veghel Offensive 01,Veghel Offensive 02,Veghel Offensive 03`
>
>
> `Best Offensive=Best Offensive 01,Best Offensive 02`
>
>
> `Dinant Offensive=Dinant Offensive 01`
>
>
> `Veghel RAAS=Veghel RAAS US,Veghel RAAS UK`
>
>
>
> `Dinant Skirmish=Dinant Skirmish`
>
>

As seen above, layers can either be numeric, strings, or not included at all. The use of layer will depend on the game mode and which layers show for the map and game mode combination when scrolling through AdminChangeMap.

## Rcon.cfg

The Rcon.cfg file defines how RCON is configured for your server and consists of the following elements:

* IP - The IP address for your server's RCON socket
	+ Valid value is an un-double-quoted string
	+ Default value is 0.0.0.0 which allows your server to handle RCON over the same IP address as your Post Scriptum Server service's binding
* Port - The port for your server's RCON socket
	+ Valid value is an integer
	+ Default value is 21114
* Password - The password used for remote RCON client authentication
	+ Valid value is an un-double-quoted string
	+ Default value is null, meaning no password is in place
* MaxConnections - How many remote RCON clients may connect at one time
	+ Valid value is an integer
	+ Default value is 5, if logging is enabled for your Post Scriptum Server service a distinct log will be generated if too many remote RCON clients attempt to connect
* SecondsBeforeTimeoutCheck - How many seconds your server will wait before checking if a remote RCON client is still connected
	+ Valid value is an integer
	+ Default value is 120, or 2 minutes

## MOTD.cfg

The MOTD.cfg file contains the server's Message of the Day which is shown to all players upon joining the server. The MOTD may also be viewed in game by holding Tab and clicking Show MOTD. The top-middle of the MOTD as shown in-game will show the ServerLogo.png image in the same directory. The file supports the use of basic HTML elements like <Title>, <Heading>, and <Red> for custom markup.

## Server.cfg

The Server.cfg file defines persistent server configurations applied at startup and consists of the following elements:

* ServerName - This will be the name of your server as shown in the server browser
	+ Valid value is a double-quoted string, e.x. "Your Server Name Here"
* MaxPlayers - The total amount of players allowed to join at one time
	+ Valid value is an integer
* NumReservedSlots - The total amount of player slots reserved for players of a group assigned "reserve" permissions
	+ Valid value is an integer
* ShouldAdvertise - Defines whether your server should show in the server browser
	+ Valid value is an un-double-quoted boolean, ex. true or false
* NumPlayersDiffForTeamChanges - The total amount of allowed player difference between teams before team balance is enforced
	+ Valid value is an integer
* AllowTeamChanges - Defines whether players may change teams.
	+ Valid value is an un-double-quoted boolean, ex. true or false
* EnforceTeamBalance - Defines whether team balance enforcement is implicitly enabled, and if so, refers to NumPlayersDiffForTeamChanges for what the allowed player count difference is
	+ Valid value is an un-double-quoted boolean, ex. true or false
* RejoinSquadDelayAfterKick - The total amount of seconds a player must wait before being able to rejoin a squad they were kicked from
	+ Valid value is an integer
* MapVoting - If true, ensure that your MapVoting.cfg file is properly configured.
	+ Valid value is an un-double-quoted boolean, ex. true or false
	+ On some \*Nix platforms this value may need to be set as True un-double-quoted with a capital T
* ServerMessageInterval - This is how many seconds of delay there are between messages being displayed per ServerMessages.cfg
	+ Valid value is an integer
* ServerPassword - Sets a password players must enter to join a server
	+ Valid value is a double-quoted string
* TKAutoKickEnabled - Defines whether players will be automatically kicked for too many team kills within a match
	+ Valid value is an un-double-quoted boolean, ex. true or false
* AllowCommunityAdminAccess - If true, allows Developers access to admin commands for debugging purposes. Developers will never execute commands without permissions from the server owners.
	+ Valid value is an un-double-quoted boolean, ex. true or false
* AllowDevProfiling - If true, allows Developers to profile the server for debugging purposes. Developers will never execute commands without permissions from the server owners.
	+ Valid value is an un-double-quoted boolean, ex. true or false

## ServerLogo.png

The ServerLogo.png is which image will be associated with your server in the server browser and MOTD. The recommended image size is 64x64 pixels.

## ServerMessages.cfg

The ServerMessages.cfg file is a list of messages that will appear in-game, one at a time, on an interval as defined by the ServerMessageInterval value from Server.cfg. Messages do not need to be within double quotes but do need to be separated by two new lines. Double-quotes are not necessary when adding messages to the file.