Ark: Survival Evolved
GamesAs a man or woman stranded, naked, freezing, and starving on the unforgiving shores of a mysterious island called ARK, use your skill and cunning to kill or tame and ride the plethora of leviathan dinosaurs and other primeval creatures roaming the land. Hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements and store valuables, all while teaming up with (or preying upon) hundreds of other players to survive, dominate... and escape! — Gamepedia: ARK
README
Ark: Survival Evolved
Steam Description : As a man or woman stranded naked, freezing and starving on the shores of a mysterious island called ARK, you must hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements. Use your cunning and resources to kill or tame & breed the leviathan dinosaurs and other primeval creatures roaming the land, and team up with or prey on hundreds of other players to survive, dominate... and escape!
Recommended server settings
Minimum RAM
This server requires about 4096M to run with no players on a default map. Although it is recommended to run 6144M by the ARK creators, specific DLC maps will increase this requirement, such as Genesis 2 requiring over 13,440M to start.
See the following - https://ark.gamepedia.com/Dedicated_Server_Setup#Hardware
RCON
The server requires a local RCON connection to function. You will see RCON connection refused messages until the server has successfully started and connects to the RCON, which can take anywhere from 10 to 20 minutes. The RCON Port is only required for external RCON connections.
Server Ports
| Port | Default |
|---|---|
| Game | 7777 |
| Raw UDP | 7778 |
| Query | 27015 |
| RCON (optional) | 27020 |
Docker Images (1)
| Name | Image |
|---|---|
ghcr.io/ptero-eggs/games:source | ghcr.io/ptero-eggs/games:source |
Startup Command
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 Variables (13)
Server Password
If specified, players must provide this password to join the server.
- Environment:
ARK_PASSWORD- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|alpha_dash|between:1,100
Admin Password
If specified, players must provide this password (via the in-game console) to gain access to administrator commands on the server.
- Environment:
ARK_ADMIN_PASSWORD- Default:
PleaseChangeMe- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|alpha_dash|between:1,100
Server Map
Available Maps: TheIsland, TheCenter, Ragnarok, ScorchedEarth_P, Aberration_P, Extinction, Valguero_P, Genesis, CrystalIsles, Gen2, Fjordur
- Environment:
SERVER_MAP- Default:
TheIsland- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:20
Server Name
ARK server name
- Environment:
SESSION_NAME- Default:
A Pterodactyl Hosted ARK Server- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:128
Rcon Port
ARK rcon port used by rcon tools.
- Environment:
RCON_PORT- Default:
27020- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|numeric
Query Port
ARK query port used by steam server browser and ark client server browser.
- Environment:
QUERY_PORT- Default:
27015- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|numeric
Auto-update server
Enable auto-updating from steam
- Environment:
AUTO_UPDATE- Default:
1- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|boolean|in:0,1
Battle Eye
Enable BattleEye
- Environment:
BATTLE_EYE- Default:
1- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|boolean|in:0,1
App ID
ARK steam app id for auto updates. Leave blank to avoid auto update.
- Environment:
SRCDS_APPID- Default:
376030- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|numeric
Additional Arguments
Specify additional launch parameters such as -crossplay. You must include a dash - and separate each parameter with space: -crossplay -exclusivejoin
- Environment:
ARGS- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|string
Mods
Specifies the order and which mods are loaded. ModIDs need to be comma-separated such as: ModID1,ModID2
- Environment:
MOD_ID- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|regex:/^[0-9,]+$/
Max Players
Specifies the maximum amount of players able to join the server.
- Environment:
MAX_PLAYERS- Default:
12- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
numeric
Beta Branch
Installs beta branch if specified.
- Environment:
SRCDS_BETAID- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|string|max:50
Installation Script
ghcr.io/ptero-eggs/installers:debianbash#!/bin/bash
if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then
echo -e "steam user is not set.\n"
echo -e "Using anonymous user.\n"
STEAM_USER=anonymous
STEAM_PASS=""
STEAM_AUTH=""
else
echo -e "user set to ${STEAM_USER}"
fi
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
mkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing
cd /mnt/server/steamcmd
chown -R root:root /mnt
export HOME=/mnt/serve
## install game using steamcmd
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6
## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so
## set up 64 bit libraries
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so
# Install SteamCMD into server folder
mkdir -p /mnt/server/Engine/Binaries/ThirdParty/SteamCMD/Linux
tar -xzvf /tmp/steamcmd.tar.gz -C /mnt/server/Engine/Binaries/ThirdParty/SteamCMD/Linux
## create a symbolic link for loading mods
cd /mnt/server/Engine/Binaries/ThirdParty/SteamCMD/Linux
ln -sf ../../../../../Steam/steamapps steamapps