ARK: Survival Evolved Linux Server Tools
This tool allows you to manage any ARK: Survival Evolved linux server without having to remember long commands. It provides a lot of features, to get the full list check the Usage section.
Known issue with updating
If updating from 1.6.53 or earlier, you will likely get the following message:
Unable to get latest release
If updating from 1.6.53 or earlier, and arkstUnstable
is set, then it is likely to say that a hotfix is available, but fail to install it.
Please either:
-
edit
arkmanager
wherever it is installed, and replacearkstGithubRepo="FezVrasta/ark-server-tools"
with
arkstGithubRepo="arkmanager/ark-server-tools"
or
-
re-install using the netinstall script below.
Installation
Prerequisites
ARK Server Tools requires certain packages be installed in order to function correctly.
If running under CentOS or RHEL, you will need the following packages installed:
perl-Compress-Zlib
curl
lsof
glibc.i686
libstdc++.i686
bzip2
If running under Debian or Ubuntu, you will need the following packages installed:
perl-modules
curl
lsof
libc6-i386
lib32gcc1
bzip2
Common prerequisites which should normally already be installed are:
>=bash-4.0
>=coreutils-7.6
findutils
perl
rsync
sed
tar
If using CentOS 6 or earlier, or Debian 7 or earlier, you will need to compile a newer version of glibc. See https://github.com/arkmanager/ark-server-tools/wiki/Install-of-required-versions-of-glibc-and-gcc-on-RHEL-CentOS
To use ARK Server Tools, you will need to install SteamCMD following this guide:
We assume you have created the steam
user to store steamcmd and your ARK server.
Requirements
To allow your ARK server to communicate with the outside you have to open some ports in your firewall:
iptables -I INPUT -p udp --dport 27016 -j ACCEPT
iptables -I INPUT -p tcp --dport 27016 -j ACCEPT
iptables -I INPUT -p udp --dport 7777 -j ACCEPT
iptables -I INPUT -p tcp --dport 7777 -j ACCEPT
iptables -I INPUT -p udp --dport 7778 -j ACCEPT
iptables -I INPUT -p tcp --dport 7778 -j ACCEPT
iptables -I INPUT -p tcp --dport 32330 -j ACCEPT
NB: Change the ports according to the ones set in your arkmanager.cfg
file.
Install ARK Server Tools
To install ARK Server Tools run this command:
curl -sL https://raw.githubusercontent.com/arkmanager/ark-server-tools/master/netinstall.sh | sudo bash -s steam
NB: You may want to change the bash -s
parameter to fit your steam user if different from steam
.
If you want to install the arkmanager
service, append the --install-service
option to the install command.
This will copy the arkmanager
script and its daemon to the proper directories and will create an empty log directory in /var/log
for ARK Server Tools.
To instead perform a user-install of ARK Server Tools as an unprivileged user, run this command:
curl -sL https://raw.githubusercontent.com/arkmanager/ark-server-tools/master/netinstall.sh | bash -s -- --me
Configuration
Stored in /etc/arkmanager/arkmanager.cfg
and /etc/arkmanager/instances/<instancename>.cfg
you can find the variables needed to start the server, like the port numbers, the system environment variables and so on.
You will need to modify these files with any options you wish to give to the server, and any paths that are non-standard in your environment (e.g. one common one is the path to the appinfo cache).
See Configuration files for options.
Also, in these files, you can specify any parameter you want to add to the startup command of ARK server.
These parameters must be prefixed by the ark_
string, some example could be:
ark_SessionName="My ARK server"
ark_MaxPlayers=50
ark_ServerPVE=False
ark_DifficultyOffset=1
Your session name may not contain special characters (eg. !![EU]!! Aw&some ARK
) as it could break the startup command.
In this case you may want to comment out the ark_SessionName
variable and define it inside your GameUserSettings.ini file instead.
To specify an option without an argument (e.g. bRawSockets
), specify an empty argument (e.g. ark_bRawSockets=""
).
To specify a dash-option without an argument (e.g. -log
), add the option="" prefixed with arkflag_
(e.g. arkflag_log=""
).
To specify a dash-option with an argument (e.g. -StructureDestructionTag=DestroySwampSnowStructures
), add the option=value prefixed with arkopt_
(e.g. arkopt_StructureDestructionTag=DestroySwampSnowStructures
).
You can override or add variables for a specific system user creating a file called .arkmanager.cfg
in the home directory of the system user.
Each server instance must have its own set of ports.
These ports are specified using the ark_Port
, ark_QueryPort
and ark_RCONPort
settings in the instance configuration.
If the QueryPort or Port settings are shared between multiple instances, then the server will often either crash or hang
without being able to be queried.
If the RCONPort setting is shared between multiple instances, the server will hang at 0/0 players.
See Configuration files for more options.
Install ARK Server
To install ARK Server just run this command as normal user:
arkmanager install
Usage
arkmanager [Global Options] <command> [Command Options] [Command Args] [Instances]
Global Options
--help
|
Prints some help on using the command |
--version
|
Prints the arkmanager version |
Common Options
--verbose
|
Exposes the output of SteamCMD |
--dots
|
Prints dots for progress |
--spinner
|
Uses a spinner for progress |
--arkopt,{option}
|
Adds the specified option to the server command line; used with Options can be of the form:
|
Instanceless commands
upgrade-tools
|
Upgrades the ARK server tools to the latest version |
uninstall-tools
|
Uninstalls the ARK server tools |
list-instances
|
Lists the available instances
|
useconfig
|
Legacy command for specifying an instance for the following command(s) |
remove-mods
|
Remove the specified mods from the |
Commands acting on instances
All of the following commands take @instancename
arguments to specify
one or more instances, with the special @all
instance selecting all
instances.
run
|
Runs the server without putting it into the background |
start
|
Runs the server and puts it into the background
|
stop
|
Stops the server if it is running
|
restart
|
Runs the
|
install
|
Downloads and installs (or validates an existing install) of the ARK server |
update
|
Updates an install of the ARK server (or installs it if itβs not already installed)
|
cancelshutdown
|
Cancels a pending update / shutdown / restart that was run with
the |
checkupdate
|
Checks if an ARK server update is available
|
checkmodupdate
|
Checks if any mods need updating on the server
|
installmods
|
Installs all mods specified in the instance config into the
|
uninstallmods
|
Deletes all mods from the |
installmod <modnum>[,<modnum>[,β¦β]]
|
Installs the specified mods into the |
uninstallmod <modnum>[,<modnum>[,β¦β]]
|
Deletes the specified mods from the |
removemod <modnum>[,<modnum>[,β¦β]]
|
Deletes the specified mods from the SteamCMD workshop directory |
reinstallmod <modnum>[,<modnum>[,β¦β]]
|
Runs the |
list-mods
|
Lists the mods in the config and/or installed in the server directory |
enablemod <modnum>
enablemod <modnum>=<modtype>
|
Enables the Mod types:
|
disablemod <modnum>
|
Disables the |
backup
|
Backs up the saved world and game config files to a compressed tar file in the backups directory specified in the config |
restore "<filepath>"
|
Restore a Backup If no file is specified, the latest backup is used (helpful for a new server) |
broadcast "message"
|
Broadcasts a message to players connected to the server using
the RCON |
saveworld
|
Saves the world using the RCON |
rconcmd "command"
|
Sends the specified RCON command to the server and prints its response |
notify "message"
|
Sends the specified message using the configured Discord webhook |
status
|
Prints the status of the ARK server |
printconfig
|
Prints the config option names and which file they were found in |
getpid
|
Prints the server PID |
install-cronjob <command>
|
Installs a cron job that executes the specified command.
This accepts any of the options the specified command accepts,
as well as the following options. In order to specify an
argument to the command (e.g. to the
|
remove-cronjob <command>
|
Removes a cron job previously installed by |
wait
|
Waits until any or all instances are stopped or online Defaults to any stopped
|
Configuration files
Global configuration
Global configuration is stored in /etc/arkmanager/arkmanager.cfg
and/or ~/.arkmanager.cfg
.
The following options cannot be overridden in the instance config files:
arkstChannel
|
Specifies the release channel (git branch) to use when upgrading the ARK server tools |
install_bindir
install_libexecdir
install_datadir
|
Set by the installer to specify where to install the executable and data files |
configfile_<name>
|
Paths to the specified instance config files |
defaultinstance
|
The default instance to use if no instance is specified |
steamcmd_user
|
The user under which the tools should be run. Set to |
The following options can be overridden on a per-instance basis:
steamcmdroot
|
The directory in which |
steamcmdexec
|
The |
steamcmd_appinfocache
|
The path to the Steam appinfo cache file. Most systems will have this in |
steamcmd_workshoplog
|
The path to the Steam workshop log file. Most systems will have this in |
steamdataroot
|
Β Β The path to the SteamCMD data. Defaults to Some SteamCMD installations (especially with the |
steamworkshopdir
|
The path to the SteamCMD workshop directory. Defaults to Some SteamCMD installations (especially with the |
arkserverexec
|
The relative path within an ARK server install where the ARK server executable can be found. For the standard ARK server, this should be |
arkbackupdir
|
The directory in which to store backups. Can be overridden in the instance config. |
arkbackupcompress
|
Enable/Disable backup compression. Default true. Helps to remove the load on the CPU, but increases the size of backups, see arkMaxBackupSizeMB |
arkBackupPostCommand
|
Command to be run using e.g. |
arkwarnminutes
|
The number of minutes over which the shutdown and update warnings should be run |
arkautorestartfile
|
The relative path within an ARK server install to place the autorestart lock file |
arkAlwaysRestartOnCrash
|
Set to Be aware that this may cause the server to enter an endless crash-restart loop if the cause of the crash is not resolved. |
arkAutoUpdateOnStart
|
Set to |
arkBackupPreUpdate
|
Set to |
arkPreStart
|
Set to the path to a script to execute on startup if it exists default: |
arkGameUserSettingsIniFile
|
Set to the path to an ini file that, if it exists, will overwrite default: |
arkGameIniFile
|
Set to the path to an ini file that, if it exists, will overwrite default: |
arkStagingDir
|
Sets the staging directory in order to download updates before shutting down the server |
arkMaxBackupSizeMB
|
Limits the size of the stored backups |
arkPriorityBoost
|
Attempts to boost the priority of the ARK server.
Negative values give a higher priority, and positive values give a lower priority.
Requires |
arkCpuAffinity
|
Attempts to set the CPU affinity of the ARK server.
Setting is a comma-delimited list of processor indices on which the server should run.
Requires |
msgWarnUpdateMinutes
msgWarnUpdateSeconds
msgWarnRestartMinutes
msgWarnRestartSeconds
msgWarnShutdownMinutes
msgWarnShutdownSeconds
|
Templated messages for warnings, where |
msgWarnReason
msgTimeMinutes
msgTimeSeconds
msgReasonUpdateApp
msgReasonUpdateMod
msgReasonUpdateAppMod
msgReasonRestart
msgReasonShutdown
|
Alternative templated messages for warnings with the following replacement parameters:
|
broadcastcmd
|
Used to override which rcon command to use for server broadcasts - e.g. serverchat default: |
discordWebhookURL
|
Discord Webhook URL - server status messages and update warning messages will be sent through this if specified |
notifyTemplate
|
Template to use for sending messages through Discord webhook, with the following replacement parameters:
|
notifyMsgShuttingDown
|
Message to be sent when shutting down. Use |
notifyMsgStarting
|
Message to be sent when starting. Use |
notifyMsgServerUp
|
Message to be sent when server starts listening. Use |
notifyMsgStoppedListening
|
Message to be sent when server has stopped listening for more than 1 minute. Use |
notifyMsgServerTerminated
|
Message to be sent when server has crashed and is being restarted. Use |
notifyvar_<varname>
|
Extra variables to be used to replace e.g. |
noNotifyWarn
|
Disable notification at start of shutdown warning period |
notifyCommand
|
Notify command to run. Notify message will be in e.g. |
logdir
|
Specifies where to store log files |
appid
|
The Steam AppID of the ARK server |
mod_appid
|
The Steam AppID of the ARK client (used for downloading mods) |
mod_branch
|
The Mod branch ( |
ARK server options:
serverMap
|
The map the server should use |
serverMapModId
|
Uses the |
ark_<optname>="<optval>"
|
Specifies the options to use in the |
ark_<optname>=""
|
Specifies an option without a value - |
arkflag_<optname>=<anything>
|
Specifies a dash-option without a value (i.e. flag) - e.g.
|
arkopt_<optname>="<optval>"
|
Specifies a dash-option with a value - e.g.
|
arkNoPortDecrement="<bool>"
|
True if the |
Instance config files
Instance config files are stored under
/etc/arkmanager/instances/<instancename>.cfg
,
~/.config/arkmanager/instances/<instancename>.cfg
or as specified in the configfile_<instancename>
options in
the global config.
arkserverroot
|
The directory under which the ARK server is installed |
serverMap
|
The map the server should use |
serverMapModId
|
Uses the |
arkModCollections="<collection1>,<collection2>,β¦β"
|
Specifies collections to include in mod list |
ark_<optname>="<optval>"
|
Specifies the options to use in the |
ark_<optname>=""
|
Specifies an option without a value - |
arkflag_<optname>=<anything>
|
Specifies a dash-option without a value (i.e. flag) - e.g.
|
arkopt_<optname>="<optval>"
|
Specifies a dash-option with a value - e.g.
|
arkmod_<modnum>=<modtype>
|
Specifies a mod that can be enabled or disabled using
|
Common ARK options
ark_TotalConversionId=<modid>
|
Specifies the Total Conversion to use |
ark_GameModIds=<modid>,<modid>,β¦β
|
Specifies the Mod IDs to use |
ark_SessionName="<sessionname>"
|
The name under which the server should announce itself |
ark_RCONEnabled="True"
|
Enabled RCON |
ark_RCONPort=<portnum>
|
The TCP port on which the server listens for RCON commands. Must be unique on the host. |
ark_Port=<portnum>
|
The UDP port on which the server listens for client connections. Must be unique on the host. |
ark_QueryPort=<portnum>
|
The UDP port on which the server listens for queries. Must be unique on the host. |
ark_ServerPassword="<password>"
|
Specifies the password needed to connect to the server |
ark_ServerAdminPassword="<password>"
|
Specifies the server admin password, which is also the RCON password. Use of this option is discouraged - please store the password in the GameUserSettings.ini file instead. |
ark_MaxPlayers=<numplayers>
|
The maximum number of players allowed to connect to the server |
ark_AltSaveDirectoryName="<dirname>"
|
Alternative directory under |
arkflag_NoBattlEye=true
|
Disables BattlEye |