Skip to content

Simple install script for installing Windows version of Ark Survival Ascended on a Debian server. Registers with systemd for integration and creates convenience links in /home/steam/ArkSurvivalAscended.

License

Notifications You must be signed in to change notification settings

cdp1337/ARKSurvivalAscended-Linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

aa18489 · Mar 10, 2025

History

37 Commits
Oct 29, 2023
Feb 17, 2025
Mar 10, 2025
Mar 10, 2025
Mar 10, 2025
Mar 10, 2025
Feb 17, 2025
Feb 17, 2025
Oct 29, 2023
Mar 10, 2025
Mar 10, 2025

Repository files navigation

Tools for installing ARK Survival Ascended Dedicated Server on Linux

Wanna chat?

Discord

Help fund the project

ko-fi

What does it do?

This script will:

  • Download Proton from Glorious Eggroll's build
  • Install Steam and SteamCMD
  • Create a steam user for running the game server
  • Install ARK Survival Ascended Dedicated Server using standard Steam procedures
  • Setup a systemd service for running the game server
  • Add firewall service for game server (with firewalld or UFW)
  • Setup NFS shares for multi-server environments
  • Adds a management script for controlling your server

Installation on Debian 12 or Ubuntu 24.04

To install ARK Survival Ascended Dedicated Server on Debian 12 or Ubuntu 24.04, download and run server-install-debian12.sh as root or sudo.

  • Debian 12 tested on Digital Ocean, OVHCloud, and Proxmox.
  • Ubuntu 24.04 tested on Proxmox.

Quick run (if you trust me, which you of course should not):

sudo su -c "bash <(wget -qO- https://raw.githubusercontent.com/cdp1337/ARKSurvivalAscended-Linux/main/dist/server-install-debian12.sh)" root

Advanced Usage

Download the script and retain for later management use.

wget https://raw.githubusercontent.com/cdp1337/ARKSurvivalAscended-Linux/main/dist/server-install-debian12.sh
chmod +x server-install-debian12.sh

# Reset and rebuild proton directories (if the prefix gets corrupted somehow)
sudo ./server-install-debian12.sh --reset-proton

# Force reinstall game binaries, (useful after a major update when Wildcard breaks the build)
# This will NOT remove your save data!
sudo ./server-install-debian12.sh --force-reinstall

Re-running the installation script on an existing server is safe and will not overwrite or delete your existing game data. To install new features as they come out, simply re-download the script installer via the steps above and re-run the installer application.

Finding Your Game

Once installed and running, you should be able to search for your server in the "Unofficial" server list after ticking "Show Player Servers".

Show Player Servers button

(This was an added step Wildcard implemented to make it harder for players to find servers that are hosted outside Nitrado's network...)

Features

Because it's managed with systemd, standardized commands are used for managing the server. This includes an auto-restart for the game server if it crashes.

By default, enabled game maps will automatically start at boot!

A start and stop script is included in /home/steam/ArkSurvivalAscended for starting and stopping all maps, (not to mention updating before they start).

Sets up multiple maps on a single install, and all of them can run at the same time (providing your server has the horsepower to do so).

If your single server cannot run all maps, this script supports multiple servers sharing the same cluster directory via NFS to allow players to jump between maps, even if they are on different physical servers.

Directory Structure

/home/steam/ArkSurvivalAscended
├── AppFiles/                  # Game Server Files (directly managed from Steam)
├── prefixes/                  # Proton prefix directory (emulates windows filesystem)
│   ├── ark-aberration/
│   ├── ark-club/
│   ├── ark-island/
│   ├── ark-scorched/
│   ├── ark-thecenter/
│   ├── ark-extinction/
│   └── ark-astraeos/
├── services/                  # Service file overrides (for setting startup options)
│   ├── ark-aberration.conf
│   ├── ark-club.conf
│   ├── ark-island.conf
│   ├── ark-scorched.conf
│   ├── ark-thecenter.conf
│   ├── ark-extinction.conf
│   └── ark-astraeos.conf
├── GameUserSettings.ini       # Game Server Configuration
├── Game.ini                   # Game Server Configuration
├── ShooterGame.log            # Game log file
├── PlayersJoinNoCheckList.txt # Player whitelist
├── admins.txt                 # Admin whitelist (needs manually setup)
├── start_all.sh               # Start all maps
├── stop_all.sh                # Stop all maps
├── update.sh                  # Update game files (only when all maps stopped)
└── manage.py                  # Management console for game server, maps, and settings

Managing your Server (Easy Method)

Once installed, run sudo /home/steam/ArkSurvivalAscended/manage.py to access the management console:

== Welcome to the ARK Survival Ascended Linux Server Manager ==

| # | Map              | Session                    | Port | RCON  | Auto-Start | Service | Players |
| 1 | ScorchedEarth_WP | VN Test Boxes (Scorched)   | 7704 | 27004 | Enabled    | Stopped | N/A     |
| 2 | TheIsland_WP     | VN Test Boxes (Island)     | 7701 | 27001 | Disabled   | Stopped | N/A     |
| 3 | TheCenter_WP     | VN Test Boxes (TheCenter)  | 7705 | 27005 | Disabled   | Stopped | N/A     |
| 4 | Astraeos_WP      | VN Test Boxes (Astraeos)   | 7707 | 27007 | Disabled   | Stopped | N/A     |
| 5 | Aberration_WP    | VN Test Boxes (Aberration) | 7702 | 27002 | Disabled   | Stopped | N/A     |
| 6 | Extinction_WP    | VN Test Boxes (Extinction) | 7706 | 27006 | Disabled   | Stopped | N/A     |
| 7 | BobsMissions_WP  | VN Test Boxes (Club)       | 7703 | 27003 | Disabled   | Stopped | N/A     |

1-7 to manage individual map settings
Configure: [M]ods | [C]luster | [A]dmin password/RCON | re[N]ame | [D]iscord integration
Control: [S]tart all | s[T]op all | [R]estart all | [U]pdate
or [Q]uit to exit

The main screen of the management UI shows all maps and some basic info, including how many players are currently connected.

Mods management

Pressing m will open the mods overview screen:

== Mods Configuration ==

| Session                    | Mods    |
| VN Test Boxes (Scorched)   |         |
| VN Test Boxes (Island)     |         |
| VN Test Boxes (TheCenter)  |         |
| VN Test Boxes (Astraeos)   |         |
| VN Test Boxes (Aberration) |         |
| VN Test Boxes (Extinction) |         |
| VN Test Boxes (Club)       | 1005639 |

[E]nable mod on all maps | [D]isable mod on all maps | [B]ack:

Here, e will allow you to enable a mod on all maps and d will disable a mod on all maps.

b will go back to the main menu overview.

Cluster management

Pressing c will open the cluster overview screen:

== Cluster Configuration ==

| Session                    | Cluster ID     |
| VN Test Boxes (Scorched)   | some-test-name |
| VN Test Boxes (Island)     | some-test-name |
| VN Test Boxes (TheCenter)  | some-test-name |
| VN Test Boxes (Astraeos)   | some-test-name |
| VN Test Boxes (Aberration) | some-test-name |
| VN Test Boxes (Extinction) | some-test-name |
| VN Test Boxes (Club)       | some-test-name |

[C]hange cluster id on all maps | [B]ack:

Pressing c on the cluster page will allow you to set the cluster ID for all maps.

b will go back to the main menu overview.

Admin password and RCON management

Pressing a will open the admin password and RCON management screen:

== Admin and RCON Configuration ==

| Session                    | Admin Password | RCON  |
| VN Test Boxes (Scorched)   | foobarblaz     | 27004 |
| VN Test Boxes (Island)     | foobarblaz     | 27001 |
| VN Test Boxes (TheCenter)  | foobarblaz     | 27005 |
| VN Test Boxes (Astraeos)   | foobarblaz     | 27007 |
| VN Test Boxes (Aberration) | foobarblaz     | 27002 |
| VN Test Boxes (Extinction) | foobarblaz     | 27006 |
| VN Test Boxes (Club)       | foobarblaz     | 27003 |

[C]hange admin password on all | [E]nable RCON on all | [D]isable RCON on all | [B]ack:

This allows you to change the admin/rcon password across all maps, as well as enable or disable RCON.

Note, you should leave RCON enabled, as it allows the script to warn users upon restarts and gracefully save prior to shutting down the server.

Discord Integration (New feature as of 2025.03.10)

== Discord Integration ==

Discord integration is currently available and enabled!

Discord Webhook URL:  https://canary.discord.com/api/webhooks/1348175098775081070/xjCt************
Discord Channel ID:   919624281904783472
Discord Guild ID:     909843670214258729
Discord Webhook Name: Testy McTesterFace

[D]isable | [C]hange Discord webhook URL | configure [M]essages | [B]ack

Provides an option to automatically send messages to Discord on start, restart, and stop events for maps. Default messages provided, and can be customized to match your preferences.

To setup Discord integration, grab a webhook URL from Discord by browsing to Server Settings -> Integrations

Discord step 1

Then Webhooks

Discord step 2

And create a new webhook and configure as desired.

Discord step 3

Copy the webhook URL and paste into the management console when prompted.

Renaming maps

From the main menu overview, pressing n will allow you to rename all maps. By default, all maps are suffixed with the map name, allowing you to have the same name for every map in the cluster.

Stopping / Starting / Restarting

From the main menu overview, the options s, t, and r respectively will start, stop, and restart all maps that are currently enabled.

When RCON is enabled and available, (default), the stop logic will first check if there are any players currently on the map. If there are, it will send a 5-minute warning to all players and then wait for a minute before another warning is sent if they are still logged in.

Preview of output in game

3 minutes, 2 minutes, 1 minute, and 30 second warnings are also sent.

If all players have left the map prior to the countdown completing, the server will skip the remaining countdown and will proceed with the shutdown.

A world save is automatically requested on the map prior to shutdown.

New as of 2025.03.10 release, Discord messages are sent prior to shutdown and after startup.

Updating

If all maps are stopped, the u option will update the game server files from Steam.

Managing individual maps

Pressing 1 through (however many maps there are), will open the individual map page.

Map:           ScorchedEarth_WP
Session:       VN Test Boxes (Scorched)
Port:          7704
RCON:          27004
Auto-Start:    Yes
Status:        Stopped
Players:       None
Mods:          
Cluster ID:    some-test-name
Other Options: AllowFlyerCarryPvE=True?DinoDamageMultiplier=25
Other Flags:   -servergamelog     

[E]nable | [D]isable | [M]ods | [C]luster | re[N]ame | [F]lags | [O]ptions | [S]tart | s[T]op | [R]estart | [B]ack:

This page allows you to configure a specific map, notably enabling, disabling, and configuring flags and options.

Options are any variable as defined in the Server Configuration and flags are command line arguments (ie: those that start with a -.)

Managing with systemd (manual method)

A list of all maps and their relative systemd service name:

  • Island - ark-island
  • Aberration - ark-aberration
  • Club ARK - ark-club
  • Scorched - ark-scorched
  • The Center - ark-thecenter
  • Extinction - ark-extinction
  • Astraeos - ark-astraeos

Start, Stop, Restart

Start a single map:

sudo systemctl start MAP_SERVICE_NAME

Restarting a single map:

sudo systemctl restart MAP_SERVICE_NAME

Warning: issuing a restart manually will immediately stop the map, kicking any user without warning and sometimes losing a few minutes of progress.


Stopping a single map:

sudo systemctl stop MAP_SERVICE_NAME

Warning: issuing a stop manually will immediately stop the map, kicking any user without warning and sometimes losing a few minutes of progress.


Enable and disable maps

sudo systemctl enable MAP_SERVICE_NAME

Enabling a map will set it to start at boot, but it will not start the map immediately. use sudo systemctl start ... to start the requested map manually.


sudo systemctl disable MAP_SERVICE_NAM

Disabling a map will prevent it from starting at boot, but it will not stop the map. use sudo systemctl stop ... to stop the requested map manually.


Configuring the game ini

Configuration of your server via the configuration ini is available in /home/steam/ArkSurvivalAscended/GameUserSettings.ini

sudo -u steam nano /home/steam/ArkSurvivalAscended/GameUserSettings.ini

Sssshhh, I use vim too, but nano is easier for most newcomers.

Adding command line arguments

Some arguments for the game server need to be passed in as CLI arguments.

# Configure start parameters for the Island
sudo nano /home/steam/ArkSurvivalAscended/services/ark-island.conf

# Configure start parameters for Aberration
sudo nano /home/steam/ArkSurvivalAscended/services/ark-aberration.conf

# Configure start parameters for Club ARK
sudo nano /home/steam/ArkSurvivalAscended/services/ark-club.conf

# Configure start parameters for Scorched
sudo nano /home/steam/ArkSurvivalAscended/services/ark-scorched.conf

# Configure start parameters for The Center
sudo nano /home/steam/ArkSurvivalAscended/services/ark-thecenter.conf

# Configure start parameters for Extinction
sudo nano /home/steam/ArkSurvivalAscended/services/ark-extinction.conf

When done editing command line arguments for the game server, reload the system config:

(This DOES NOT restart the game server)

sudo systemctl daemon-reload

Automatic restarts

Want to restart your server automatically at 5a each morning?

Edit crontab sudo nano /etc/crontab and add:

0 5 * * * root /home/steam/ArkSurvivalAscended/stop_all.sh && /home/steam/ArkSurvivalAscended/start_all.sh

(0 is minute, 5 is hour in 24-hour notation, followed by '* * *' for every day, every month, every weekday)

Cluster sharing across multiple servers

Multi-server clustering is handled by sharing /home/steam/ArkSurvivalAscended/Saved/clusters with NFS.

Primary server generates rules in /etc/exports and child servers mount via /etc/fstab.

Firewall rules are automatically generated for child servers when their IPs are provided during setup on the master server.

Utilized libraries

About

Simple install script for installing Windows version of Ark Survival Ascended on a Debian server. Registers with systemd for integration and creates convenience links in /home/steam/ArkSurvivalAscended.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published