Dedicated server setup/sandbox (2024)

For advanced configuration and server settings, see: Server configuration

For scripts that automate or make it easier to run your own dedicated server, see: Dedicated server scripts

This page discusses the installation and fundamental setup of a dedicated ARK server.

Contents

  • 1 Prerequisites
    • 1.1 Storage
    • 1.2 CPU
    • 1.3 RAM
    • 1.4 Network
    • 1.5 Operating system
      • 1.5.1 Windows
        • 1.5.1.1 Windows Server editions
      • 1.5.2 Linux
    • 1.6 SteamCMD
  • 2 Server Installation
  • 3 Port Forwarding and Firewall
    • 3.1 Windows (Firewall and Allow Rules)
    • 3.2 Linux
      • 3.2.1 UFW
      • 3.2.2 FirewallD
      • 3.2.3 iptables
    • 3.3 Router Port Forwarding
    • 3.4 Finding Your Server in Lists
  • 4 Automatic Startup
    • 4.1 Windows (via Scheduled Task)
    • 4.2 Linux (via systemd)
      • 4.2.1 Setup systemd
      • 4.2.2 Systemd Commands
  • 5 Updating
  • 6 Server Admin Console
  • 7 Backing Up Server Data
  • 8 Troubleshooting
    • 8.1 Server loses characters or world data upon restart
  • 9 Tool - ARK Server Manager
  • 10 Notes
  • 11 References
  • 12 External links

Prerequisites

The ARK dedicated server (ShooterGameServer) is a 64-bit executable application and as such requires a 64-bit operating system to run.

Storage

Each server installation takes around `18 GiB` of drive space.

Additional drive space is required to store game saves, tribe and player profiles, logs, updates download and installation, and mods.

CPU

CPU requirements are not strict, but it is recommended to have 2 logical cores per instance (more grant diminishing advantage, and the workload will never scale beyond 4 cores) are sufficient, with single-threaded performance favoured.

RAM

Excluding the operating system, memory requirements vary by the map and increase with the number of connected players, game age (structures, creatures, storage) and depending on the server configuration and mods installed.

Each player connected the memory requirements may rise by an average of 50-150MiB.

System administrators must remember that as players advance more game objects will be created as a result, and memory usage will rise.

Finally, memory usage may also be unstable or increased during the creatures (re)spawn phase, which takes several minutes.

The following table shows the memory usage for each map on a new world save with default server settings and no players connected (the intervals are due to the creatures (re)spawn phase).

MapLevel nameMemory usage on an empty map
The IslandTheIsland3.5-4.5 GiB
The CenterTheCenter3-4 GiB
Scorched EarthScorchedEarth_P3-4 GiB
RagnarokRagnarok4-5 GiB
AberrationAberration_P3-4 GiB
ExtinctionExtinction3-4 GiB
ValgueroValguero_P3-4 GiB
Genesis: Part 1Genesis5-6 GiB
Crystal IslesCrystalIsles5.5-6.5 GiB
Genesis: Part 2Gen210-12.5 GiB
Lost IslandLostIsland5.5-7 GiB
FjordurFjordur4-5 GiB

Network

The bandwidth needed increases linearly with players connected. Generally, for home connection class a 100Mb or better is highly recommended to support properly a good number of players. Specifically for VPS, each connected player may require up to 60KiB/s of bandwidth, shared across upstream and downstream, however, all is directly tied by server tick-rate and the complexity of the world save reached.

The server listens for incoming connections on the local ports listed below. Ensure your network configuration (operating system firewall and router port forwarding) allows incoming connections to these ports and directs them to the host that will be running your dedicated server.

PortPurpose
UDP 7777Game port
UDP 7778Peer port (always Game port +1)
UDP 27015Query port (for Steam's server browser only)
TCP 27020RCON for remote console server access (optional)

Please note manual port forwarding may be needed since ShooterGameServer does not support UPnP or other automatic port forwarding protocols.

Multiple dedicated servers on the same host are supported. A common setup consists of assigning and forwarding ports incrementally.

Server instanceGame port (UDP)Peer port (UDP)Query port (UDP)RCON port (TCP)
Server instance 1777777782701527020
Server instance 2777977802701627021
Server instance 3778177822701727022
Server instance 4
(completely different ports)
9999100003701532330
Note: Completely different ports are supported as well, with the only limitation the Steam server browser not be able to find game servers without providing also the query port if this goes above 27020.
Note: Peer port is used by Steam P2P protocol for in-game browser advertising (Epic instead uses 80 and 443 standard ports with TLSv1.2), in the past (between patch 213.0 and 311.78) it was used for direct UDP socket connections (now disabled) and so it is sometimes wrongly referred as raw UDP port.

Operating system

Windows

The server requires Microsoft Visual C++ 2013 Redistributable X64 version and the last revision of the DirectX End-User Runtimes (June 2010) to be installed.It is highly recommended to use a supported operating system by both Microsoft and Steam: this means Windows 10 Version 22H2 and beyond or Windows Server 2016 (or Windows Server 2012 with Extended Security Update support) and beyond.

Windows Server editions

Windows Server editions require additional setup to support crossplay with EPIC/EGS clients. Windows Server editions handle certificates and certificate revocation lists in a different way.

Since 18 November 2023, server owners need to manually install the certificate revocation list that can be obtained from https://dev.epicgames.com/ (or just directly from http://crl.r2m02.amazontrust.com/r2m02.crl). The downloaded r2m02.crl file must be installed (right-click on the file) by selecting Place all certificates in the following store and selecting Trusted Root Certification Authorities. A system restart may be needed.

If before 18 November 2023 server owners installed the r2m02.cer certificate file and the server isn't showing up, that certificate must be removed from the system to properly allow the servers to be visible again. To remove the revoked certificate run (Windows + R) certmgr.msc and search for Amazon RSA 2048 M02 in Trusted Root Certification Authorities. The same must be done running certlm.msc. Finally, a system restart may be needed

Linux

The game server requires glibc 2.17. Any modern supported distribution will support glibc 2.17.

SteamCMD

SteamCMD is used to download the server files. Detailed instructions on its installation and usage are available on the Valve Wiki.

Server Installation

  1. Install SteamCMD on your host system.
  2. Create a folder/directory to store the server files. For example on Windows C:\arkserver and on Linux /home/steam/servers/ark
  3. Launch SteamCMD on your host and use it to download the server files. Replace <install_dir> with the full path to the folder created in Step 2. Use the app id 376030 for Survival Evolved, or use 445400 for Survival of The Fittest.
    Steam> force_install_dir <install_dir>Steam> login anonymousSteam> app_update 376030 validateSteam> exit
    Alternatively, run from command line:
    steamcmd +force_install_dir <install_dir> +login anonymous +app_update 376030 +quit
  4. Create a script to launch the server with your desired options and settings. For simplicity, place it in the same folder where the server files were downloaded. On Windows, this is a batch file; on Linux, this is a shell script. Examples are provided below. For both platforms, the server options are specified with the same basic syntax. For a more deep comprehension and a guide about server settings, have a look at the server configuration page.
    • On Windows, create a text file named start_server.bat and place it in YOUR_ARK_SERVER_FOLDER/ShooterGame/Binaries/Win64/ (remove the '<' '>' symbols!)
      ShooterGameServer.exe TheIsland?SessionName=<server_name>?ServerPassword=<join_password>?Port=<port>?QueryPort=<query_port>?MaxPlayers=<max_players>?ServerAdminPassword=<admin_password>
    • On Linux, create a text file named server_start.sh and place it in YOUR_ARK_SERVER_FOLDER/ShooterGame/Binaries/Linux/ (remove the '<' '>' symbols!)
      #! /bin/bash./ShooterGameServer TheIsland?SessionName=<server_name>?ServerPassword=<join_password>?Port=<port>?QueryPort=<query_port>?MaxPlayers=<max_players>?ServerAdminPassword=<admin_password>

      After creating the script, make it executable:

      $ chmod +x server_start.sh

    Apart from Windows or Linux, replace <server_name> with the desired name for your server, <join_password> with whatever password players must provide to join your server and <admin_password> with the password that must be provided to gain administrator access to the serves. If no player join password is desired, remove the entire option from the list (including the ?ServerPassword= parameter itself). Set the number of player slots with <max_players>. Specify the game port (<port>) and the query port (<query_port>). These will need to be port-forwarded as well (see section below).

  5. Finally, to launch the server, run the script created in the previous step.

Port Forwarding and Firewall

For your server to become visible in both the Ark server lists and the Steam lists, do the following:

Windows (Firewall and Allow Rules)

  1. On Windows, click on Start and search for "wf.msc" without the quotes. Right click on it and choose the "Run as administrator" option.
  2. Click "Inbound Rules" on the left panel, then click "New Rule..." on the right panel.
  3. When the New Inbound Rule Wizard opens up, select Port, then Next.
  4. The wizard will present options for choosing the protocol and specifying ports. Select "UDP" and "Specific local ports". List the Query and Peer ports interval, as well the Steam query port, then select Next to continue. Example:
    For a default (one server only) setup list them as 7777-7778, 27015
    For a multiple instance setup like the one listened above, list them as 7777-7782, 9999-10000, 27015-27019, 37015
  5. Select "Allow the connection" and continue with the wizard.
  6. Finally enter a name (required) and a description (optional). It is recommended to append the protocol (UDP or TCP) to the rule name.
  7. If you are using also RCON repeat the above procedure but selecting "TCP" as protocol and the RCON port(s) chosen. Example:
    For a default (one server only) setup list them as 27020
    For a multiple instance setup like the one listened above, list them as 27020-27022, 32330
  8. When finished, you should have a rule for UDP ports in the Inbound Rules section and eventually a TCP one.
  9. If needed it is always possible to change these rules to add or remove ports on your setup needing.
Note: with default Windows settings there is no need to create outbound rules in the "Outbound Rules" section.

Linux

For most Linux distros, if there is a firewall at all it will be iptables based. Most modern distributions will use a different interface, it's a good idea to use that instead of direct iptables commands.

All firewall changes must be made either as root or with sudo. These open ports 7777 7778 and 27015 for UDP and optionally 27020 for TCP. You may want to adjust the list of ports you need by editing the "for port in..." line.

UFW

This script will open the ports in a way that will persist across reboots. UFW is the firewall on Ubuntu

 #!/bin/sh if [[ $EUID -ne 0 ]]; then echo "This must be run as root" exit 1 fi for port in 7777 7778 27015; do ufw allow $port/udp done #Uncomment the next if you want to open the default rcon port #ufw allow 27020/tcp

FirewallD

This script will open the ports in a way that will persist across reboots. FirewallD is the firewall on RHEL7, CentOS7.x and Fedora.

 #!/bin/sh if [[ $EUID -ne 0 ]]; then echo "This must be run as root" exit 1 fi for port in 7777 7778 27015; do firewall-cmd --permanent --add-port $port/udp done #Uncomment the next if you want to open the default rcon port #firewall-cmd --permanent --add-port 27020/tcp firewall-cmd --reload

iptables

Keep in mind that this is only a temporary solution and should only be used if neither of the other scripts apply for your system. To make it safe for reboots see the documentation of your distribution, how to add firewall ports to the existing configuration files - or how to add scripts to the boot process.

 #!/bin/sh if [[ $EUID -ne 0 ]]; then echo "This must be run as root" exit 1 fi for port in 7777 7778 27015; do iptables -t filter -I INPUT -p udp --dport $port -j ACCEPT done #Uncomment the next if you want to open the default rcon port #iptables -t filter -I INPUT -p tcp --dport 27020 -j ACCEPT

Router Port Forwarding

The same ports of the server setup must be also forwarded on the router. There are many websites with tutorials on port forwarding. It is highly suggested you visit portforward.com, which offers tutorials for the majority of routers.For Virtual Private Servers, please refer to your host knowledge base and support site.

You must forward both UDP and TCP local ports for your server to show up on any lists. You can make sure your ports are open by using the tool from portforward.com, that is, after you enter the ports that you have forwarded in the start_server.bat file you should have created earlier.

For example, start ShooterGameServer.exe TheIsland?SessionName=<server_name>?ServerPassword=<join_password>?Port=7777?QueryPort=27015?MaxPlayers=<max_players>?ServerAdminPassword=<admin_password>

Finding Your Server in Lists

Once your server has started it will show up on the in-game ARK unofficial server list or the Steam game server browser.

Use the search functionality in-game or the Steam game server browser to find your server. Once found you can add the server to favourites.

Using the Steam game server browser it is also possible to add the server IP:QUERYPORT details directly into your favourites. Note: If Steam Query port is above 27019 specify the query port instead IP:QUERYPORT.

Note: The in-game list has a limit on the servers it can search at per minute and especially for Steam players this can take a good amount of time to find it.

If you are having issues finding your server you can confirm if it is listed on the steam master server by entering the following into your browser.

https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=<IP>

If successfully listed you will see the following:

{ "response": { "success": true, "servers": [ { "addr": "1.2.3.4:7777", "gmsindex": -1, "steamid": "xxxxxxxxxxxxxx", "appid": 346110, "gamedir": "ark_survival_evolved", "region": -1, "secure": false, "lan": false, "gameport": 7777, "specport": 0 } ] }}

Automatic Startup

Windows (via Scheduled Task)

You can configure a scheduled task to automatically run a batch file and start the dedicated server when the system boots.

  1. Open 'Task Scheduler'.
  2. Create Basic Task.
  3. The 'Create Basic Task Wizard' will appear, name the task whatever as desired.
  4. Set the Trigger to 'When the computer starts'.
  5. Set the Action to 'Start a program'.
  6. Browse to the program/script you wish to start (which is the .BAT batch file that starts the server).
  7. Depending on how the batch file works, it may need to set the "Start in (optional)" path, so the working directory of the batch file is correct. If the batch file simply contains the "start ShooterGame ..." command, then it should be set the "Start in (optional)" path of the scheduled task to the directory containing the batch file.
  8. Before creating the scheduled task, mark the checkbox "open properties window" after it's created.
  9. In the General Tab under the Security Options frame, it can be chosen "Run whether user is logged on or not" depending on the needs.

Linux (via systemd)

Most popular Linux distributions such as Ubuntu, Debian and Enterprise Linux support systemd. systemd can be configured to automatically start the dedicated server when the system boots. When using this method to manage the server, using GameUserSettings.ini to specify its settings is highly recommended. Refer to Admin Game Commands for more information.

Setup systemd

Create a file named /etc/systemd/system/ark-dedicated.service with the following contents:

[Unit]Description=ARK: Survival Evolved dedicated serverWants=network-online.targetAfter=syslog.target network.target nss-lookup.target network-online.target[Service]ExecStartPre=/home/steam/steamcmd +login anonymous +force_install_dir /home/steam/servers/ark +app_update 376030 +quitExecStart=/home/steam/servers/ark/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?SessionName=<session_name>WorkingDirectory=/home/steam/servers/ark/ShooterGame/Binaries/LinuxLimitNOFILE=100000ExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s INT $MAINPIDUser=steamGroup=steam[Install]WantedBy=multi-user.target

The ExecStart line specifies the command to run in order to start the service. It uses the same syntax as the startup examples shown above (in #Server Installation), with all the same arguments, but here it's important to adjust it to reflect the location of your ARK dedicated server on the host. Use the full path to the server executable, as shown above.

Be sure to replace <SESSION_NAME> with the desired session name for your server as well.

Finally, adjust the User and Group settings for your host. Without these two options in ark-dedicated.service, the dedicated server will be run as the root user. This is unsafe, as any vulnerability in the dedicated server could result in an attacker gaining remote superuser access on the host.

It's recommended to run the dedicated server in an unprivileged account used solely for this purpose. In the example above, the user account "steam" is used. It's a member of the "steam" group, which is generally created along with the account.

WorkingDirectory option is required to fix some issues. (For example, not having WorkingDirectory set will fail to download mods (if using with -automanagedmods))

Systemd Commands

Enable the new service to run on boot by running:

sudo systemctl enable ark-dedicated

The server can be started by running:

sudo systemctl start ark-dedicated

The server can be stopped by running:

sudo systemctl stop ark-dedicated

To check if the service status i.e started or stopped run:

sudo systemctl status ark-dedicated
Note: If you need to update the ark-dedicated.service file (to change the dedicated server's startup options or to adjust its path), run the following command to ensure your changes are applied:
sudo systemctl daemon-reload

Updating

To update the server when a new version is released, repeat the same SteamCMD commands shown in the previous section. Be sure to use the correct set of commands for your platform. Refer to SteamCMD's documentation for details on automating this process.

If you use the systemd startup file you can easily integrate the update-mechanism to be run before every start of the game.

Server Admin Console

It is possible to access the server admin console from in-game.

  1. Start the game client and connect to the game server.
  2. Open the in-game console.
enablecheats <admin_password>

Replace <admin_password> with the server administrator password.

Refer to Server Management Commands for a list of available commands.

Backing Up Server Data

To make a backup of the server data, simply copy the folder named ShooterGame/Saved (and its content) to the desired backup location.[1] This folder contains all tribe, player and world data, as well configuration files, logs and cluster data for the server. Performing a backup is recommended before updating a server to a new release.

Troubleshooting

Server loses characters or world data upon restart

If your server isn't retaining characters or world data when it's restarted, it may not have full access to the folder where it's installed.

The first time the server is run, it should create a folder named ShooterGame/Saved containing various configuration and save files. If the server has run at least once but hasn't created this folder, it may not have been able to create new folders and files there. Verify that the folder where the server is installed is readable and writeable by the user account that actually runs the server. (For Windows servers, check the status of User Account Control)

The server software, by default, is set-up to automatically save world data every 15 minutes. If your server crashes before the first 15 minutes are up, you will not have any data saved.

Tool - ARK Server Manager

You can also use this tool to manage your Ark: Survival Evolved servers: https://steamcommunity.com/sharedfiles/filedetails/?id=468312476

The Ark Server Manager is designed to help you set up and maintain your own Ark: Survival Evolved dedicated servers. It provides a simple user interface allowing you to create and edit server profiles containing all of the settings you need to customize the playing experience for you and your friends.

What it does:

  • Manages the SteamCMD tool and Server installations/updates.
  • Organizes settings and writes INI files and command-line arguments automatically.
  • Tracks server status and allows direct control of server state.
  • Save and load server profiles - even import directly from an existing server deployment.
  • Scheduled updates server files and mods.
  • Scheduled save backups with in-game lag warning for players.
  • Auto-manage Windows firewall rules
  • Works with Survival of the fittest.

Note: Ark: Survival Ascended is not supported.

Notes

If you're planning to have players join from the Epic Games version of ARK, you must have the -crossplay and -PublicIPForEpic=<IPAddress> command line options set (read more at Server_configuration).

References

External links

  • v
  • e
  • h

Technical & Customization

Technical

ArkMLBeacon IDsColor IDsControlsCreature IDsDevKitEngram class namesGFI CodesItem IDsLevel WeightOptionsSave file format (ASE)Server BrowserSpawn entriesWeb APIWeb Notifications

Private Servers

Console CommandsDedicated server scriptsDedicated server setupDifficultyServer configurationUnofficial server hosting guide2023 official server save files

Mods

Custom MapsModding

External Resources

Apps and Webpages

Dedicated server setup/sandbox (2024)
Top Articles
Latest Posts
Article information

Author: Annamae Dooley

Last Updated:

Views: 5340

Rating: 4.4 / 5 (65 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Annamae Dooley

Birthday: 2001-07-26

Address: 9687 Tambra Meadow, Bradleyhaven, TN 53219

Phone: +9316045904039

Job: Future Coordinator

Hobby: Archery, Couponing, Poi, Kite flying, Knitting, Rappelling, Baseball

Introduction: My name is Annamae Dooley, I am a witty, quaint, lovely, clever, rich, sparkling, powerful person who loves writing and wants to share my knowledge and understanding with you.