ServerMultiServerSetup - festivaldev/Paradise GitHub Wiki

Setting up Multi-Server

Paradise supports creating a multi-server setup, with each server connecting to the same master server. You can either connect your server to the official Paradise master server or host your servers in multiple regions and connect them to your own master server. This multi-server setup is a fancy way to say that your Game server (the one that runs all the gameplay logic) uses the same player data as every other sever connected to the same master server.

Please note that only multiple Game servers are supported at the same time. The master server can only provide one Comm server at a time, but multiple Game servers.

Connecting to Paradise

To connect to the official Paradise master server, you first need to request access in the Paradise Discord server in the #server-requests channel. If your request is approved, you will be provided a server GUID and passphrase that will allow your server to connect. These credentials need to be added to your Paradise.Realtime.xml:

<GameApplicationSettings>
    <ApplicationIdentifier>00000000-0000-0000-0000-000000000000</ApplicationIdentifier>
    <EncryptionPassPhrase>0123456789abcdef</EncryptionPassPhrase>
</GameApplicationSettings>

Next, it is recommended to disable the Comm server, as it will not be used in this setup. To do this, open the PhotonServer.config file in the photon directory. In there, wrap the UDPListener node with the attribute OverrideApplication="Paradise.Realtime.Comm" inside an XML comment (<!-- ... -->). Do the same with the Application node for Paradise.Realtime.Comm below.

Now, head back to Paradise.Realtime.xml. Set the following values:

Key Value
MasterServerUrl https://paradise.festival.tf
WebServicePort 5053
FileServerPort 5054
TCPCommPort 5055

Restart the Realtime application and observe the logs. If everything went well, you should see the text CONNECTED TO SOCKET appear in the logs.

Connecting to your own master server

The procedure to connect to your own master server is basically the same as connecting to the Paradise master server. However, you need to generate your own credentials to connect.

To generate server credentials, run the command server generate in the Web Services console. The resulting GUID and passphrase then need to be added to Paradise.Settings.WebServices.xml like this:

<ServerPassPhrases>
    <ServerPassPhrase Id="00000000-0000-0000-0000-000000000000">0123456789abcdef</ServerPassPhrase>
</ServerPassPhrases>

The Web Services should automatically detect the changes and reload the file. If it doesn't, you can simply restart the Web Services application yourself.

After that, just follow the instructions for connecting to the Paradise master server, sans requesting credentials in the Discord server, of course. The values to set in Paradise.Realtime.xml also need to be adapted to your specific infrastructure.

⚠️ **GitHub.com Fallback** ⚠️