[Guide] Cluster Setup (2024)

NOTE:This guide applies to people running their own servers, and is not intended for people that have their servers hosted by a third party.

The Scorched Earth FAQ does a good job of getting you started on running a server cluster, but I find that it leaves some unanswered questions. So, I did a lot of experimenting and was able to figure out some answers.

In case you have not read it, here is the FAQ I am referring to:

What is a Cluster?

A cluster is simply a server-side location to store Ark data that is uploaded from an obelisk (characters, items, dinos). If the server is not using clusters, this data issaved locally on the machine of the person performing the upload and canthen be downloaded to any server that does notblock downloads. When using a cluster, the data is insteadkept on the server in a special location:

ShooterGame/Saved/clusters/[cluster_id]

Any servers with access to that folder, and which share the same cluster ID, will be able to share uploaded data with each other. (You do not need to create this folder yourself, the server will create it when someone uploads something.)

Enabling the use of a cluster implicitly blocks downloads from from other sources. Players will not be able to download saved data from their machine to your server, nor transfer data from other servers outside the cluster to your server. Also, data uploaded from your server will not be available for use on other servers outside the cluster.

How do I Setup a Cluster?

This part was covered pretty well on the FAQ, but I will break it down a bit here to explain in more detail.

First of all, there are two important command line options you need to use to make use of clusters.(Your command line might be within a batch or shell script file that you use to run the server or it might be specified in a server launcher interface somewhere, depending on your setup.)

-NoTransferFromFiltering
After much testing, I have been unable to determine what effect this setting has. The FAQ uses it in the examplecommand lines. So, I recommend doing the same, although when running without it, nothing seems to change.

-clusterid=yourclusterid
This tells the server the name of the cluster to use, and becomes part of the cluster save path on disk. Use the same cluster id on all servers that you want to share the same upload data. It does not matter if this ID is globally unique. It also shouldn't need to be secret, but better to keep it secret in case people find a way to exploit it. If someone uploads to (or attempts to download from) some other server using the same ID, it will not be the same cluster as your servers, becausethe clusterfiles are stored locally onyour server machine and not shared anywhere else. (Update: If you are running on adedicated host, make sure your cluster id is unique and secret, because there is a possibility the host is using a shared cluster save location.)

There are two different ways to setup your cluster, each covered below. However, both require that you have set a clusterid as described above.

Important Note:If you havenoTributeDownloads=true on your command line or in your settings INI, people will not be able to transfer anything. You need to set that to false in conjunction with the use of -NoTransferFromFiltering.

Method 1: Shared Settings

This is an officially supported method. You runtwo servers, with the same server settings INI files, but with different save data and the ability to transfer between them using a cluster. For this to work, you need to specify separate save directories for each server on the command line.

?AltSaveDirectoryName
This command line options tells the server where to save its data. You need to make sure that all servers in the cluster use a different directory, or risk bad things happening to your saves.

Here are example command lines for starting two servers sharing the same cluster ID.

ShooterGameServer "TheIsland?SessionName=MyServerName1?AltSaveDirectoryName=Save1?Port=7777?QueryPort=27015" -NoTransferFromFiltering -clusterid=cluster1ShooterGameServer "ScorchedEarth_P?SessionName=MyServerName2?AltSaveDirectoryName=Save2?Port=7779?QueryPort=27017" -NoTransferFromFiltering -clusterid=cluster1

Note that the save directories are different, the ports are different (cannot run multiple servers on the same ports), but the cluster ID is the same.

Method 2: Independent Settings

This is an officially supported method. You install and run separate servers from separate locations on the same machine, and tell them to use a shared cluster directory. I recommend making a directly external to the server installations that they both have access to. Here is a suggested setup (using Windows paths, adjust accordingly for Linux):

C:\ArkServers\Server1C:\ArkServers\Server2C:\ArkServers\clusters

For each server, you will want to add the following command line (change the path to be appropriate for your setup):

-ClusterDirOverride=C:\ArkServers\clusters

Here are example command lines for starting two servers using the same cluster ID and a shared cluster save directory.

ShooterGameServer "TheIsland?SessionName=MyServerName1?AltSaveDirectoryName=Save1?Port=7777?QueryPort=27015" -NoTransferFromFiltering -ClusterDirOverride=C:\ArkServers\clusters -clusterid=cluster1ShooterGameServer "ScorchedEarth_P?SessionName=MyServerName2?AltSaveDirectoryName=Save2?Port=7779?QueryPort=27017" -NoTransferFromFiltering -ClusterDirOverride=C:\ArkServers\clusters -clusterid=cluster1

Note that the ports are different (cannot run multiple servers on the same ports), but the cluster directory and cluster ID arethe same.

Restricting Transfers

By default, people will be able to transfer characters, tamed dinos and items between your clustered servers. If you want to restrict what can be transferred, you have access to these command line options that you can specify when launching your servers.

?PreventDownloadSurvivors=True
Disable downloading characters from the cluster tothis server.

?PreventDownloadItems=True
Disable downloading items from the cluster tothis server.

?PreventDownloadDinos=True
Disable downloading tamed dinos from the cluster tothis server.

?PreventUploadSurvivors=True
Disable uploading characters tothe cluster fromthis server.

?PreventUploadItems=True
Disable uploading items tothe cluster fromthis server.

?PreventUploadDinos=True
Disable uploading tamed dinos tothe cluster fromthis server.

Note: Any of the above settings can also be set in the[ServerSettings] section within GameUserSettings.ini. Just drop the question mark off the front. (If you set both, the command line version will overwrite the INI file version.)

You can ignore the rest of this post after this point. Your cluster should be good to go!

The rest of this post is outdated information and is only being kept around for historical reasons.

Alternate Cluster Setup Method: Independent Settings Via Symlink

Note: This method should no longer be necessary as of version 247.85. There is now a supported way to have independent servers use a shared cluster directory. See method 2 above.

This is a method I came up with on my own that allows you to run clustered servers each with their own settings INI files. Hopefully, a supported way to do this will arrive eventually, but for now this seems to be working.As of version 247.85, there is now a supported method, covered above.

First, setup two independent copies of the server app in separate directories, one for each server you plan to cluster. Also, create a directory for your cluster upload data. Here is an example of how mine are setup:

ArkServers/Server1ArkServers/Server2ArkServers/clusters

Next, go into each of your server's directories and create symbolic links to your clusters directory at the appropriate location –where the server would normally look for clusters. For example:

ArkServers/Server1/ShooterGame/Saved/clusters -> ArkServers/clustersArkServers/Server2/ShooterGame/Saved/clusters -> ArkServers/clusters

NOTE: If you don't know what symbolic links are, I cover that below.

Now, both servers can run independently with their own settings INI files, but still share the same cluster data. Here are example command lines for starting these two servers:

ShooterGameServer "TheIsland?SessionName=MyServerName1?Port=7777?QueryPort=27015" -NoTransferFromFiltering -clusterid=cluster1ShooterGameServer "ScorchedEarth_P?SessionName=MyServerName2?Port=7779?QueryPort=27017" -NoTransferFromFiltering -clusterid=cluster1

Note that the ports are different (cannot run multiple servers on the same ports), but the cluster ID is the same.

About Symbolic Links

Symbolic links (a.k.a. symlinks) are an operating system feature that allows you to create a file system entry (a directory in our case)that redirects to another file system entry. An application will typicallysee the entry as if it is really there, but when it asks for the content, the OS gives it the content from the target location instead. Setting up a symbolic link is different on different operating systems.

Windows

On Windows, we will make what iscalled an NTFS directory junction(aspecialized type of symbolic link). This can most easily be done from the command line using the mklink utility.

Let's assume you have the following directory layout:

C:\ArkServers\Server1C:\ArkServers\Server2C:\ArkServers\clusters

Now, you want to have both servers use your shared clusters directory. To do that. you will run the following commands on a command line:

mklink /J C:\ArkServers\Server1\ShooterGame\Saved\clusters C:\ArkServers\clustersmklink /J C:\ArkServers\Server2\ShooterGame\Saved\clusters C:\ArkServers\clusters

Note: This will fail if there are already cluster directories in the source locations. You will need to delete them first (and optionally move their content to the shared location).

Linux

I do not have access to a Linux server, so I am unable to determine exactly what to do. Ithinkyou can use this command to create the links:

ln –s target_dir source_dir

If someone replies with specific instructions for setting this up on Linux, I will edit the post and add it here.

[Guide] Cluster Setup (2024)
Top Articles
Latest Posts
Article information

Author: Fr. Dewey Fisher

Last Updated:

Views: 5986

Rating: 4.1 / 5 (42 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Fr. Dewey Fisher

Birthday: 1993-03-26

Address: 917 Hyun Views, Rogahnmouth, KY 91013-8827

Phone: +5938540192553

Job: Administration Developer

Hobby: Embroidery, Horseback riding, Juggling, Urban exploration, Skiing, Cycling, Handball

Introduction: My name is Fr. Dewey Fisher, I am a powerful, open, faithful, combative, spotless, faithful, fair person who loves writing and wants to share my knowledge and understanding with you.