[Other] Setting up an Ark Survival Evolved Cluster on Pterodactyl Control Panel

Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
This prefix applies to all threads that are designed for this platform.

Zhandroid

Active member
Joined
Sep 30, 2022
Messages
1
Note: This guide is for ARK Survival Evolved. If your looking for directions on setting up ARK Survival Ascended cluster in Pterodactyl, please click here

Pterodactyl ASE Cluster Creation​

The Pterodactyl control panel runs all of it's game servers inside of a docker container. These containers are isolated from each other by default. Our goal for this guide is to share some hard drive space between isolated Ark Survival Evolved game servers.

For this guide, we have chosen the wings host folder /etc/pterodactyl/ase_cluster. For most users, this directory should work just fine but this folder can reside anywhere on the wings host machine.

To begin, you will need to open an SSH session to your server hosting the wings instance as root, or have sudo capabilities.


Create Path and Set Permissions for Cluster Storage​


Bash:
sudo mkdir /etc/pterodactyl/ase_cluster

Bash:
sudo chown pterodactyl:pterodactyl /etc/pterodactyl/ase_cluster

Edit Wings Configuration File​

Allow Pterodactyl to mount the host cluster directory​


Bash:
sudo nano /etc/pterodactyl/config.yml

Towards the bottom of this file, find:

YAML:
allowed_mounts: []

Change this to

YAML:
allowed_mounts:
- /etc/pterodactyl/ase_cluster


Restart wings​

Restarting your wings service will not interfere with any game servers still running on the host. This is only the communication daemon between wings and your panel.

Bash:
sudo systemctl restart wings


Creating the Pterodactyl Mount in Administration​

Mounts > Create New​

Give the mount your preferred name and description as shown below, and choose Create.
Screenshot 2024-06-28 170131.png




Add the ARK Survival Evolved Egg and your Node to the Mount​

Screenshot 2024-06-28 181604.png



Attach the Mount to Each Server in the Cluster​

Stop your Ark Survival Ascended servers. For each of your ARK servers, go to Servers > ASE Servers > Mounts and click the + button to add the newly created Pterodactyl mount

Screenshot 2024-06-28 181632.png



Modify Startup Parameters for Each Server in the Cluster​

In the Additional Arguments field on each of the servers you want to cluster, you will need to add 3 parameters to this field. Be sure to choose a unique clusterid, but use the same one for the servers you want to connect.


Code:
-NoTransferFromFiltering -clusterid=myuniqeclustername -ClusterDirOverride="/cluster"
Screenshot 2024-06-28 181736.png



Ensure GameUserSettings.ini on all servers are configured correctly​

Below are 2 examples on how to setup your GameUserSettings.ini. Servers do not need to match exactly. The 2nd example shows how you would add a new server and only allow characters to transfer on and off of it. This is similar to what official servers do on new map release.

Full transfers to and from the cluster​


INI:
NoTributeDownloads=False
PreventUploadSurvivors=False
PreventUploadItems=False
PreventUploadDinos=False
PreventDownloadSurvivors=False
PreventDownloadItems=False
PreventDownloadDinos=False


Character only to and from the cluster​


INI:
NoTributeDownloads=False
PreventUploadSurvivors=False
PreventUploadItems=True
PreventUploadDinos=True
PreventDownloadSurvivors=False
PreventDownloadItems=True
PreventDownloadDinos=True


Start ARK Survival Ascended Servers and Enjoy!​

Thanks for following my guide. If you have questions or comments, feel free to leave them here and I will do my best to answer them!
 
Note: This guide is for ARK Survival Evolved. If your looking for directions on setting up ARK Survival Ascended cluster in Pterodactyl, please click here

Pterodactyl ASE Cluster Creation​

The Pterodactyl control panel runs all of it's game servers inside of a docker container. These containers are isolated from each other by default. Our goal for this guide is to share some hard drive space between isolated Ark Survival Evolved game servers.

For this guide, we have chosen the wings host folder /etc/pterodactyl/ase_cluster. For most users, this directory should work just fine but this folder can reside anywhere on the wings host machine.

To begin, you will need to open an SSH session to your server hosting the wings instance as root, or have sudo capabilities.


Create Path and Set Permissions for Cluster Storage​


Bash:
sudo mkdir /etc/pterodactyl/ase_cluster

Bash:
sudo chown pterodactyl:pterodactyl /etc/pterodactyl/ase_cluster

Edit Wings Configuration File​

Allow Pterodactyl to mount the host cluster directory​


Bash:
sudo nano /etc/pterodactyl/config.yml

Towards the bottom of this file, find:

YAML:
allowed_mounts: []

Change this to

YAML:
allowed_mounts:
- /etc/pterodactyl/ase_cluster


Restart wings​

Restarting your wings service will not interfere with any game servers still running on the host. This is only the communication daemon between wings and your panel.

Bash:
sudo systemctl restart wings


Creating the Pterodactyl Mount in Administration​

Mounts > Create New​

Give the mount your preferred name and description as shown below, and choose Create.
View attachment 2214




Add the ARK Survival Evolved Egg and your Node to the Mount​

View attachment 2215



Attach the Mount to Each Server in the Cluster​

Stop your Ark Survival Ascended servers. For each of your ARK servers, go to Servers > ASE Servers > Mounts and click the + button to add the newly created Pterodactyl mount

View attachment 2216



Modify Startup Parameters for Each Server in the Cluster​

In the Additional Arguments field on each of the servers you want to cluster, you will need to add 3 parameters to this field. Be sure to choose a unique clusterid, but use the same one for the servers you want to connect.


Code:
-NoTransferFromFiltering -clusterid=myuniqeclustername -ClusterDirOverride="/cluster"
View attachment 2217



Ensure GameUserSettings.ini on all servers are configured correctly​

Below are 2 examples on how to setup your GameUserSettings.ini. Servers do not need to match exactly. The 2nd example shows how you would add a new server and only allow characters to transfer on and off of it. This is similar to what official servers do on new map release.

Full transfers to and from the cluster​


INI:
NoTributeDownloads=False
PreventUploadSurvivors=False
PreventUploadItems=False
PreventUploadDinos=False
PreventDownloadSurvivors=False
PreventDownloadItems=False
PreventDownloadDinos=False


Character only to and from the cluster​


INI:
NoTributeDownloads=False
PreventUploadSurvivors=False
PreventUploadItems=True
PreventUploadDinos=True
PreventDownloadSurvivors=False
PreventDownloadItems=True
PreventDownloadDinos=True


Start ARK Survival Ascended Servers and Enjoy!​

Thanks for following my guide. If you have questions or comments, feel free to leave them here and I will do my best to answer them!
Yo brother beans!
the link for survival ascended doesnt work any more should i just do pretty much the same thing for it yeh?
 
The problem nobody is telling you is that Pterodactyl needs Linux to run. Linux is not compatible with Ark: SE API for all the different plugins that you'd want on your server. Therefore this is a terrible option. Wasted a few hundred dollars learning this.
 
The problem nobody is telling you is that Pterodactyl needs Linux to run. Linux is not compatible with Ark: SE API for all the different plugins that you'd want on your server. Therefore this is a terrible option. Wasted a few hundred dollars learning this.
what do you mean by this?
 
Error please help:
GRA1 Daemon Checking server disk space usage, this could take a few seconds...
GRA1 Daemon Updating process configuration files...
GRA1 Daemon Ensuring file permissions are set correctly, this could take a few seconds...
container@gra1 Server marked as starting...
GRA1 Daemon Pulling Docker container image, this could take a few minutes to complete...
Pulling from pterodactyl/games
Status: Image is up to date for ghcr.io/pterodactyl/games:source
Digest: sha256:52ff05ae54a1b6658fe0ffd43abde834d9dfe5fbc8a8dcdcf6095563d6cd4583
GRA1 Daemon Finished pulling Docker container image
/entrypoint.sh: eval: line 42: syntax error near unexpected token `('
/entrypoint.sh: eval: line 42: `echo rmv() { echo "stopping server"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} saveworld &&rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo "Server Closed"; exit; }; trap rmv 15 2; cd ShooterGame/Binaries/Linux && ./ShooterGameServer ${SERVER_MAP}?listen?SessionName="${SESSION_NAME}"?ServerPassword=${ARK_PASSWORD}?ServerAdminPassword=${ARK_ADMIN_PASSWORD}?Port=${SERVER_PORT}?RCONPort=${RCON_PORT}?QueryPort=${QUERY_PORT}?RCONEnabled=True?MaxPlayers=${MAX_PLAYERS}?GameModIds=${MOD_ID}$( [ "$BATTLE_EYE" == "1" ] || printf %s ' -NoBattlEye' ) -server -automanagedmods ${ARGS} -log & ARK_PID=$! ; until echo "waiting for rcon connection..."; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done'
steam user is not set.
Using anonymous user.
Not updating game server as auto update was set to 0. Starting Server
container@gra1
HOSTNAME=1a607869-1ab6-4d68-b05d-170cd38a73ac
SRCDS_APPID=376030
RCON_PORT=27020
STARTUP=rmv() { echo "stopping server"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} saveworld &&rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo "Server Closed"; exit; }; trap rmv 15 2; cd ShooterGame/Binaries/Linux && ./ShooterGameServer {{SERVER_MAP}}?listen?SessionName="{{SESSION_NAME}}"?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled=True?MaxPlayers={{MAX_PLAYERS}}?GameModIds={{MOD_ID}}$( [ "$BATTLE_EYE" == "1" ] || printf %s ' -NoBattlEye' ) -server -automanagedmods {{ARGS}} -log & ARK_PID=$! ; until echo "waiting for rcon connection..."; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done
AUTO_UPDATE=0
PWD=/home/container
QUERY_PORT=27015
INTERNAL_IP=172.18.0.2
TZ=Etc/UTC
P_SERVER_LOCATION=eu-west-gra
HOME=/home/container
ARGS=-NoTransferFromFiltering -clusterid=myuniqeclustername -ClusterDirOverride="/cluster"
P_SERVER_ALLOCATION_LIMIT=0.000000
SERVER_IP=37.187.137.157
ARK_ADMIN_PASSWORD=PleaseChangeMe
P_SERVER_UUID=1a607869-1ab6-4d68-b05d-170cd38a73ac
MOD_ID=
TERM=xterm
USER=container
MAX_PLAYERS=12
SHLVL=0
SERVER_PORT=25575
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SESSION_NAME=A Pterodactyl Hosted ARK Server
BATTLE_EYE=1
ARK_PASSWORD=
DEBIAN_FRONTEND=noninteractive
SERVER_MAP=Ragnarok
SERVER_MEMORY=9000
OLDPWD=/home/container
container@gra1 Server marked as offline...
GRA1 Daemon ---------- Detected server process in a crashed state! ----------
GRA1 Daemon Exit code: 0
GRA1 Daemon Out of memory: false
GRA1 Daemon Checking server disk space usage, this could take a few seconds...
GRA1 Daemon Updating process configuration files...
GRA1 Daemon Ensuring file permissions are set correctly, this could take a few seconds...
container@gra1 Server marked as starting...
GRA1 Daemon Pulling Docker container image, this could take a few minutes to complete...
Pulling from pterodactyl/games
Digest: sha256:52ff05ae54a1b6658fe0ffd43abde834d9dfe5fbc8a8dcdcf6095563d6cd4583
Status: Image is up to date for ghcr.io/pterodactyl/games:source
GRA1 Daemon Finished pulling Docker container image
/entrypoint.sh: eval: line 42: syntax error near unexpected token `('
/entrypoint.sh: eval: line 42: `echo rmv() { echo "stopping server"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} saveworld &&rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo "Server Closed"; exit; }; trap rmv 15 2; cd ShooterGame/Binaries/Linux && ./ShooterGameServer ${SERVER_MAP}?listen?SessionName="${SESSION_NAME}"?ServerPassword=${ARK_PASSWORD}?ServerAdminPassword=${ARK_ADMIN_PASSWORD}?Port=${SERVER_PORT}?RCONPort=${RCON_PORT}?QueryPort=${QUERY_PORT}?RCONEnabled=True?MaxPlayers=${MAX_PLAYERS}?GameModIds=${MOD_ID}$( [ "$BATTLE_EYE" == "1" ] || printf %s ' -NoBattlEye' ) -server -automanagedmods ${ARGS} -log & ARK_PID=$! ; until echo "waiting for rcon connection..."; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done'
steam user is not set.
Using anonymous user.
Not updating game server as auto update was set to 0. Starting Server
container@gra1
HOSTNAME=1a607869-1ab6-4d68-b05d-170cd38a73ac
SRCDS_APPID=376030
RCON_PORT=27020
STARTUP=rmv() { echo "stopping server"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} saveworld &&rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo "Server Closed"; exit; }; trap rmv 15 2; cd ShooterGame/Binaries/Linux && ./ShooterGameServer {{SERVER_MAP}}?listen?SessionName="{{SESSION_NAME}}"?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled=True?MaxPlayers={{MAX_PLAYERS}}?GameModIds={{MOD_ID}}$( [ "$BATTLE_EYE" == "1" ] || printf %s ' -NoBattlEye' ) -server -automanagedmods {{ARGS}} -log & ARK_PID=$! ; until echo "waiting for rcon connection..."; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done
AUTO_UPDATE=0
PWD=/home/container
QUERY_PORT=27015
INTERNAL_IP=172.18.0.2
TZ=Etc/UTC
P_SERVER_LOCATION=eu-west-gra
HOME=/home/container
ARGS=-NoTransferFromFiltering -clusterid=myuniqeclustername -ClusterDirOverride="/cluster"
P_SERVER_ALLOCATION_LIMIT=0.000000
SERVER_IP=37.187.137.157
ARK_ADMIN_PASSWORD=PleaseChangeMe
P_SERVER_UUID=1a607869-1ab6-4d68-b05d-170cd38a73ac
MOD_ID=
TERM=xterm
USER=container
MAX_PLAYERS=12
SHLVL=0
SERVER_PORT=25575
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SESSION_NAME=A Pterodactyl Hosted ARK Server
BATTLE_EYE=1
ARK_PASSWORD=
DEBIAN_FRONTEND=noninteractive
SERVER_MAP=Ragnarok
SERVER_MEMORY=9000
OLDPWD=/home/container
container@gra1 Server marked as offline...
GRA1 Daemon ---------- Detected server process in a crashed state! ----------
GRA1 Daemon Exit code: 0
GRA1 Daemon Out of memory: false
GRA1 Daemon Aborting automatic restart, last crash occurred less than 60 seconds ago.
 
Back
Top