ServerConfiguration - festivaldev/Paradise GitHub Wiki
Each main server component has their own configuration file. This page lists all available configuration options and their default values.
If you're looking for individual service configuration files, see Service Configuration.
ℹ️ The Web Services configuration file is located at
<path to Paradise.WebServices>\Paradise.Settings.WebServices.xml
.
Key | Type | Default | Description |
---|---|---|---|
EnableSSL | bool |
false |
Controls the usage of SSL. See HTTPS/SSL for instructions on how to set up SSL for your server. |
SSLCertificateName | string |
Sets the friendly name of the SSL certificate to use. The friendly name must be unique or else the server will fail to start. | |
Hostname | string |
localhost |
Sets the hostname that Web Services are listening on. Can also be an IP address or FQDN. |
WebServicePort | int |
8080 |
Sets the port that Web Services are listening on. Allowed values are 1024 -65535 . |
WebServicePrefix | string |
UberStrike.DataCenter.WebService.CWS. |
The prefix used for web service names. |
WebServiceSuffix | string |
Contract.svc |
The suffix used for web service names. |
FileServerPort | int |
8081 |
Sets the port that File Server listening on. Allowed values are 1024 -65535 . |
FileServerRoot | string |
wwwroot |
Sets the path of the File Server root directory, relative to Paradise.WebServices.exe
|
TCPCommPort | int |
8082 |
Sets the port of the TCP socket listener used for multi-server communication (see Setting up Multi-Server). Allowed values are 1024 -65535 . |
EncryptionInitVector | string |
Sets the Init Vector for the Rijndael encryption. | |
EncryptionPassPhrase | string |
Sets the passphrase for the Rijndael encryption. | |
ServerPassPhrases | string[] |
[] |
List of passphrases per server ID. Each entry has an Id attribute uniquely identifying each Realtime server that is allowed to connect to this master server. |
To enable encrypted Web Service traffic (apart from SSL), you need to fill out EncryptionInitVector
and EncryptionPassPhrase
. Please note that EncryptionInitVector
must be exactly 16 characters long.
To generate server IDs and passphrases for the ServerPassPhrases
key, use the server generate
command in the console. See Commands for more details.
⚠️ If you have allowed incoming connections to the Paradise server through the Firewall and decide to change server ports in your configuration, please remember to update these Firewall rules accordingly.
<ParadiseServerSettings>
<EnableSSL>false</EnableSSL>
<SSLCertificateName></SSLCertificateName>
<Hostname></Hostname>
<WebServicePort>8080</WebServicePort>
<WebServicePrefix>UberStrike.DataCenter.WebService.CWS.</WebServicePrefix>
<WebServiceSuffix>Contract.svc</WebServiceSuffix>
<FileServerPort>8081</FileServerPort>
<FileServerRoot>wwwroot</FileServerRoot>
<TCPCommPort>8082</TCPCommPort>
<EncryptionInitVector>01234567889abcdef</EncryptionInitVector>
<EncryptionPassPhrase>mysupersecretwebservicepassphrase</EncryptionPassPhrase>
<ServerPassPhrases>
<ServerPassPhrase Id="12345678-1234-abcd-1ab2-1234abcd5678">mysupersecretcommserverpassphrase</ServerPassPhrase>
<ServerPassPhrase Id="87654321-4321-dcba-2ba1-8765dcba4321">mysupersecretgameserverpassphrase</ServerPassPhrase>
</ServerPassPhrases>
</ParadiseServerSettings>
If you decide to include Discord Bot Integration plugin in your Web Services instance, a configuration file needs to be placed at <path to Paradise.WebServices>\Paradise.Settings.Discord.xml
. To create your own Discord bot, please follow the Discord Developer instructions: https://discord.com/developers/docs/intro. For more info about the Discord Bot Integration plugin, see Discord Bot Integration.
The following table lists all possible configuration options for the Discord Bot integration:
Key | Type | Default | Description |
---|---|---|---|
EnableDiscordIntegration | bool |
false |
A global toggle to enable to disable Discord Bot integration. |
Token | string |
The secret used to authenticate your application on Discord. | |
WebHookUrl | string |
The URL of a webhook on your Discord server, used for lobby chat integration. | |
ChatIntegration | bool |
true |
Enables or disables lobby chat integration. |
CommandIntegration | bool |
true |
Enables or disables sending commands to the Web Services (only for authorized members). |
PlayerAnnouncements | bool |
false |
Enables or disables player join or leave announcements. |
GameAnnouncements | bool |
false |
Enables or disables game room creation messages. |
ErrorLog | bool |
false |
Enables or disables posting runtime errors as messages. |
GuildId | long |
The Discord server (aka. "Guild") on which this bot instance runs on. | |
ChatChannelId | long |
Sets the channel to use for the lobby chat integration. | |
CommandChannelId | long |
Sets the channel to use for sending commands to the Web Services. | |
PlayerAnnouncementChannelId | long |
Sets the channel to use for player join or leave announcements. | |
GameAnnouncementChannelId | long |
Sets the channel to use for game room creation messages. |
Guild and Channel IDs can be copied in Discord by enabling Developer Mode in User Settings → Advanced → Developer Mode and right-clicking your server's icon or a channel respectively.
To run commands through Discord, you need to link your Discord profile with your UberStrike profile. For more details, see Discord Bot Integration.
<ParadiseDiscordSettings>
<EnableDiscordIntegration>true</EnableDiscordIntegration>
<Token><!-- Your Discord Bot Token here --></Token>
<WebHookUrl><!-- Your Discord Webhook URL here --></WebHookUrl>
<ChatIntegration>true</ChatIntegration>
<CommandIntegration>true</CommandIntegration>
<PlayerAnnouncements>false</PlayerAnnouncements>
<GameAnnouncements>false</GameAnnouncements>
<ErrorLog>false</ErrorLog>
<GuildId>0000000000000000000</GuildId>
<ChatChannelId>0000000000000000000</ChatChannelId>
<CommandChannelId>0000000000000000000</CommandChannelId>
<PlayerAnnouncementChannelId>0000000000000000000</PlayerAnnouncementChannelId>
<GameAnnouncementChannelId>0000000000000000000</GameAnnouncementChannelId>
</ParadiseDiscordSettings>
ℹ️ The Realtime Server configuration file is located at
<path to Paradise.Realtime>\bin\Paradise.Realtime.xml
.
Key | Type | Default | Description |
---|---|---|---|
MasterServerUrl | string |
https://localhost |
Used by the Realtime server to connect to the Web Services and TCP socket. If both the Web Services and the Realtime server are running on the same machine and no explicit Hostname is given in the Web Services config, this can be left at default. Otherwise, you need to replace localhost with the IP address or FQDN of the server the Web Services are running on. |
WebServicePort | int |
8080 |
The port used to connect to the Web Services. |
WebServiceEndpoint1 | string |
2.0 |
Specifies the API level to use in depending the client version |
WebServicePrefix | string |
UberStrike.DataCenter.WebService.CWS. |
The prefix used for web service names. |
WebServiceSuffix | string |
Contract.svc |
The suffix used for web service names. |
FileServerPort | int |
8081 |
The port used to connect to the File Server. |
TCPCommPort | int |
8082 |
The port used to connect to the TCP socket for multi-server support. |
CommApplicationSettings GameApplicationSettings |
Dictionary<string, string> |
Sets the ApplicationIdentifier and EncryptionPassPhrase for the Comm and Game applications, respectively. |
|
HeartbeatInterval | int |
5 |
The interval in which to send heartbeat checks to clients. |
HeartbeatTimeout | int |
5 |
The timeout after which a client is disconnected after sending a heartbeat request. |
EnableHashVerification | bool |
true |
Enables verification of hashes sent by uberdaemon and uberheartbeat. |
DiscordChatIntegration | bool |
true |
Toggles chat events sent to Discord. |
DiscordPlayerAnnouncements | bool |
true |
Toggles player join/leave events sent to Discord. |
DiscordGameAnnouncements | bool |
true |
Toggles game creation events sent to Discord. |
DiscordErrorLog | bool |
true |
Toggles error logs sent to Discord. |
⚠️ If you have allowed incoming connections to the Paradise server through the Firewall and decide to change server ports in your configuration, please remember to update these Firewall rules accordingly.
[1]
Allowed values for WebServiceEndpoint
-
1.0.1
(for 4.3.8/4.3.9) -
1.0.2
(for 4.3.10.1) -
2.0
(for 4.7.1)
<?xml version="1.0" encoding="utf-8" ?>
<ApplicationConfiguration>
<MasterServerUrl>http://localhost</MasterServerUrl>
<WebServicePort>8080</WebServicePort>
<WebServiceEndpoint>2.0</WebServiceEndpoint>
<WebServicePrefix>UberStrike.DataCenter.WebService.CWS.</WebServicePrefix>
<WebServiceSuffix>Contract.svc</WebServiceSuffix>
<FileServerPort>8081</FileServerPort>
<TCPCommPort>8082</TCPCommPort>
<CommApplicationSettings>
<ApplicationIdentifier>12345678-1234-abcd-1ab2-1234abcd5678</ApplicationIdentifier>
<EncryptionPassPhrase>mysupersecretcommserverpassphrase</EncryptionPassPhrase>
</CommApplicationSettings>
<GameApplicationSettings>
<ApplicationIdentifier>87654321-4321-dcba-2ba1-8765dcba4321</ApplicationIdentifier>
<EncryptionPassPhrase>mysupersecretgameserverpassphrase</EncryptionPassPhrase>
</GameApplicationSettings>
<HeartbeatInterval>5</HeartbeatInterval>
<HeartbeatTimeout>5</HeartbeatTimeout>
</ApplicationConfiguration>
Unlike previous versions of Paradise, Composite and Junk hashes, used by uberdaemon and uberheartbeat respectively, are stored in simple text files alongside the Realtime server binaries. These files are constantly being watched for changes, so that hash verification can always use up to date hash values. Just put each Composite (allowed) and Junk (disallowed) hash on a separate line.