Rough guide to setting up a dedicated CentOS ARK: Survival Evolved server
This is a rough guide for setting up a CentOS 7.* based server for ARK: Survival Evolved. It assumes you are familiar with SSH and are using Virtualmin for managing the server, although it requires minimal changes to use with a different setup.
Create a user for the game server
As mentioned, I'm using Virtualmin to manage my server, so I'll go ahead and create a new Virtual site for the server so that it has a web-page that users can connect from, as well as setting up user and groups easily.
- Create a new Virtual Site at the domain/subdomain you want: eg: ark.mydomain.com
- Following commands assume username ark from now on
Update sysctl.conf to allow more files to be open:
By default CentOS won't allow the ARK server to open the number of files needed. We can change this by making some adjustments to the system.
Change the limit, and make it permanent:
sudo sysctl -w fs.file-max=100000
sudo vi /etc/sysctl.conf
This will open sysctl.conf in Vi. Append the following line to the end of the file:
fs.file-max = 100000
Save and close the file. In Vi this is done by pressing Esc and typing
:wq, followed by Enter. Users will need to re-log for changes take effect, or just type the following command:
sudo sysctl -p
Verify your settings have taken affect with this command:
Now we need to increase the hard and soft limits for the user we created:
sudo vi /etc/security/limits.conf
Add in the following entries, adjust your username as appropriate:
ark soft nofile 100000
ark hard nofile 100000
Give the account the right permissions
From a sudo/root account, give the ark user sudo priveledges:
sudo usermod -aG wheel ark
On CentOS, if adding the user to the group does not work immediately, you may have to edit the /etc/sudoers file to uncomment the group name:
Find and ensure the following is not commented out:
%wheel ALL=(ALL) ALL
Now we want to make a directory for the SteamCMD client and download it. From our ark home
mkdir ~/steam && cd ~/steam
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
chmod +x ./steamcmd.sh
Before we run Steam, we're going to open all the ports required for it, as well as the extra ports needed by the ARK server:
sudo firewall-cmd --zone=public --add-port=27015/tcp --permanent
sudo firewall-cmd --zone=public --add-port=27015/udp --permanent
sudo firewall-cmd --zone=public --add-port=27016/tcp --permanent
sudo firewall-cmd --zone=public --add-port=27016/udp --permanent
sudo firewall-cmd --zone=public --add-port=27020/tcp --permanent
sudo firewall-cmd --zone=public --add-port=7777/udp --permanent
sudo firewall-cmd --zone=public --add-port=7778/tcp --permanent
sudo firewall-cmd --zone=public --add-port=7778/udp --permanent
sudo firewall-cmd --zone=public --add-port=32330/tcp --permanent
sudo firewall-cmd --reload
Run steam once to set it up:
Once that's done we're going to install the ARK server itself. We're going to use LinuxGSM to do this.
LinuxGSM has some dependencies. One of thee is Postfix which you may already have installed if you're using Virtualmin. Go ahead and run the following command to make sure we have everything we need:
sudo yum install mailx postfix curl wget bzip2 gzip unzip python binutils bc jq tmux glibc.i686 libstdc++ libstdc++.i686
Once the dependencies are installed we can go ahead and wget the install script and make it executable
mkdir ~/ark_install && cd ~/ark_install
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh arkserver
Now that LinuxGSM is installed lets use it to setup the ARK server.
Wait patiently. This can take some time. Once it has installed, you need to configure it.
The main game configuration files are located at:
You will also need to copy the file located at
lgsm/config-lgsm/arkserver/_default.cfg to a new file in the same directory called
Do not edit the
_default.cfg file, as this will be over-written. Instead make sure you copy this file and make your changes there.
If you want LinuxGSM to manage your mods this will need a few things. Examples of these can be seen in the sample config files linked below.
-automanagedmodsto the end of the startup parameters in
- Add the following to the bottom of
[ModInstaller] ModIDS=633215081 ModIDS=731604991
Sample config files:
Here are the config files I use for running a Ragnarok server:
Notes on these config files:
- Player and Dino max level set to 1000
- Roughly 50x the normal rates. That includes XP rewards, Taming Speeds and resources.
- Halved the resource respawn delay
- Tamed dinos do triple damage, have triple resistance
- Reduced the
- The day/night cycle has been adjusted so that a full cycle takes 1 hour, with the night lasting for apprimately 10 minutes.
- Cave flying is enabled, as is Cave Building.
- Water and Food drains set to half the default amount.
- Difficulty is set to 0.5
- Autosaves every 15 minutes
- Swim speed stats doubled
Includes the following mods:
- Structures Plus S+ - More flexible structures as well as useful additional automation parts.
- Re-usable Grappling Hook - Exactly what it says on the tin. No more stacks fo grappling hooks when exploring.
- Ultra Stacks - With 50x the normal amount of resources being spawned your chest will overflow in no time at all. This increases the default stack sizes considerably, as well as adjusting their weights.
- Classic Flyers - Brings back speed levelling, amongst other things.
Notes on increasing resources:
There is a significant bug in ARK that can occur when increasing the Harvest Multiplier rates. It can result in harvesting with Dinos causing the entire server to lag out, making movement impossible for everyone until the server catches up. This can be heavily exploited in a PvP environment and needs some additional work to rectify.
Do not increase the
HarvestHealthMultiplier settings in
GameUserSettings.ini. This will cause the bug mentioned above. Instead use the
HarvestResourceItemAmountClassMultipliers setting in
Game.ini for each individual resource.
Admittedly this method results in a much larger
Game.ini file, although it does give you individual control of each resource's multiplier. An example
Game.ini can be found here where I have set all resources in the game to spawn at 50x their default rates. This method keeps the server nice and quick and stops the potential for exploitation.
Running your server
Once you've configured your server you can run it with:
Refer to the LinuxGSM documentation for more information on controlling your server. The steps covered so far in this guide should be enough to get you started with a modded server.