How to Install ARK: Survival Evolved Dedicated Server on Ubuntu 24.04
ARK: Survival Evolved remains one of the most demanding — and most rewarding — games to self-host. A well-tuned dedicated server lets you pick your map, your rates, your mod list, and your rules without paying per-slot fees to a managed host. This tutorial walks you from a bare Ubuntu 24.04 VPS to a public, restart-safe ARK server running under systemd, with mods, backups, and a clean configuration layout you can maintain long-term.
Recommended hardware: A single populated Island or Ragnarok map will happily consume 12-14 GB of RAM and several CPU cores. Start with the CloudCore Business plan (EUR 29.99/month, 16 GB RAM minimum) for one map. Plan on 32 GB+ for a cluster.
Table of Contents
Why Self-Host ARK Instead of Paying a Managed Host?
Managed ARK hosting is a crowded market, but the pricing model is unfavorable once your tribe grows past a few friends. Typical hosted pricing sits between EUR 1 and EUR 2.50 per player slot per month, capped at 10-20 slots, with RAM limits that cause visible lag during saves and tame-heavy sessions. You also pay extra for mod slots, for cluster transfers, and often for a second map.
Self-hosting on a VPS flips the economics. For a flat EUR 29.99/month on the CloudCore Business plan, you get:
- Full root access — install any mod, any tool, any map.
- Unlimited player slots — cap is whatever your CPU and RAM can sustain, not what a billing dashboard allows.
- Multiple maps on one box — run The Island and Ragnarok side by side if you have the RAM.
- Your own backup and migration strategy — no reliance on a host's web panel.
- No forced update windows — apply ARK patches when it suits your tribe, not during a vendor maintenance window.
Prerequisites
Before you start you will need:
- A VPS running Ubuntu 24.04 LTS with root or sudo access
- At least 16 GB of RAM for a single-map public server (32 GB for a cluster)
- At least 40 GB of free disk space — the ARK server installation is roughly 20 GB and saves grow steadily
- SSH access (terminal on macOS/Linux, PuTTY or Windows Terminal on Windows)
- A 64-bit OS (ARK's dedicated server is 64-bit only)
Recommended Plan: CloudCore Business>
- 8 vCPU cores
- 16 GB RAM
- 200 GB NVMe SSD
- Unmetered bandwidth
- From EUR 29.99/month>
Provision a CloudCore Business VPS — provisioned in under two minutes.
Connect to your server:
ssh root@your-server-ipStep 1: Prepare Ubuntu
Update the package index and upgrade installed packages. ARK's dedicated server binary depends on several 32-bit compatibility libraries, so we will enable the i386 architecture as well.
sudo apt update && sudo apt upgrade -y
sudo dpkg --add-architecture i386
sudo apt updateInstall the dependencies SteamCMD and ARK need at runtime:
sudo apt install -y lib32gcc-s1 lib32stdc++6 libcurl4-gnutls-dev:i386 \
curl wget tar screen unzip ca-certificatesCreate a dedicated user
Running game servers as root is a bad habit. Create a dedicated steam user that will own the installation and the running process:
sudo adduser --disabled-password --gecos "" steam
sudo su - steamAll remaining SteamCMD and ARK commands run as this steam user unless explicitly prefixed with sudo. The home directory will be /home/steam.
Step 2: Install SteamCMD
SteamCMD is Valve's command-line Steam client. It handles authenticated and anonymous downloads of any Steam application, including dedicated server builds.
Create a directory for SteamCMD and fetch the latest archive:
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -Run the SteamCMD bootstrapper once so it self-updates:
./steamcmd.sh +quitExpected output (abbreviated):
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
Loading Steam API...OKSteamCMD is now installed at /home/steam/steamcmd/steamcmd.sh.
Step 3: Download the ARK Server
The dedicated server for ARK: Survival Evolved is Steam app ID 376030. No Steam account is required — we log in anonymously.
Create a target directory for the ARK files:
mkdir -p /home/steam/ark-serverDownload and validate the server files:
~/steamcmd/steamcmd.sh \
+force_install_dir /home/steam/ark-server \
+login anonymous \
+app_update 376030 validate \
+quitThe download is roughly 20 GB and will take 5-20 minutes depending on bandwidth. SteamCMD streams a progress bar and writes the complete server tree into /home/steam/ark-server.
Expected directory layout once the download completes:
/home/steam/ark-server
├── Engine/
├── ShooterGame/
│ ├── Binaries/
│ │ └── Linux/
│ │ └── ShooterGameServer
│ ├── Content/
│ └── Saved/
│ ├── Config/
│ │ └── LinuxServer/
│ │ ├── GameUserSettings.ini
│ │ └── Game.ini
│ └── SavedArks/
└── steamapps/The binary you will launch every time is ShooterGame/Binaries/Linux/ShooterGameServer. Saved worlds live in ShooterGame/Saved/SavedArks. Configuration files live in ShooterGame/Saved/Config/LinuxServer/.
Step 4: Open Firewall Ports
ARK needs three UDP/TCP ports reachable from the public internet:
| Port | Protocol | Purpose |
|---|---|---|
| 7777 | UDP | Game traffic (the port players actually connect to) |
| 27015 | UDP | Steam server query — required for the server browser and Valve listing |
| 32330 | TCP | RCON remote administration (optional but recommended) |
steam shell first with exit, or use sudo explicitly):sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 7777/udp comment 'ARK game port'
sudo ufw allow 27015/udp comment 'ARK Steam query'
sudo ufw allow 32330/tcp comment 'ARK RCON'
sudo ufw --force enable
sudo ufw status numberedIf your VPS provider has a separate cloud firewall (most do, including the CloudCore edge firewall), mirror the same three rules there. UFW alone cannot override an upstream drop.
Port 7778 UDP is used by some ARK builds as a "raw UDP socket" fallback. Modern Linux servers do not require it, but opening it costs nothing and fixes occasional connection issues on older clients.
Step 5: Configure GameUserSettings and Game.ini
The two files that control every meaningful runtime setting are GameUserSettings.ini (rates, passwords, RCON, PvE/PvP toggle) and Game.ini (mod configuration, per-engram overrides, harvest multipliers that are not exposed in the startup command line).
Return to the steam user if you left the shell:
sudo su - steam
cd /home/steam/ark-server/ShooterGame/Saved/Config/LinuxServerGameUserSettings.ini
Replace the default file with a production-ready template. Change every password before saving.
cat > GameUserSettings.ini <<'EOF' [ServerSettings] ServerPassword=ChangeThisJoinPassword ServerAdminPassword=ChangeThisAdminPassword SpectatorPassword=ChangeThisSpectatorPassword; Session MaxPlayers=30 ServerPVE=False ServerCrosshair=True ServerForceNoHUD=False AllowThirdPersonPlayer=True ShowMapPlayerLocation=True EnablePVPGamma=False DisableStructureDecayPvE=False
; Rates (1.0 = vanilla, higher = faster) XPMultiplier=2.0 TamingSpeedMultiplier=5.0 HarvestAmountMultiplier=3.0 HarvestHealthMultiplier=1.0 ResourcesRespawnPeriodMultiplier=0.5 DinoDamageMultiplier=1.0 PlayerDamageMultiplier=1.0 StructureDamageMultiplier=1.0 DinoCountMultiplier=1.5
; Egg/mating MatingIntervalMultiplier=0.5 EggHatchSpeedMultiplier=10.0 BabyMatureSpeedMultiplier=10.0 BabyCuddleIntervalMultiplier=0.3 BabyImprintAmountMultiplier=2.0
; Quality of life PreventDownloadSurvivors=False PreventDownloadItems=False PreventDownloadDinos=False AutoSavePeriodMinutes=15.0 TribeNameChangeCooldown=15
; RCON RCONEnabled=True RCONPort=32330 RCONServerGameLogBuffer=600
; Mods (comma-separated Steam Workshop IDs; leave empty until Step 7) ActiveMods=
[SessionSettings] SessionName=My CloudCore ARK Server Port=7777 QueryPort=27015
[MultiHome] MultiHome=0.0.0.0
[/Script/Engine.GameSession] MaxPlayers=30 EOF
Key fields to customize:
ServerPassword— the join password. Leave blank for a fully public server, set it for private tribes.ServerAdminPassword— required. This is what you type into the in-game console afterEnableCheatsto run admin commands and RCON.SessionName— how the server appears in the in-game browser.MaxPlayers— set realistically for your VPS. 30 fits comfortably on 16 GB RAM, 50+ wants 32 GB.
Game.ini
Game.ini is where you override engrams, structure limits, and — most importantly — configure mods that read their own settings from this file. Start with a minimal baseline:
cat > Game.ini <<'EOF' [/script/shootergame.shootergamemode] bAutoPvETimer=False bDisableFriendlyFire=False bPvEAllowTribeWar=True bPvEAllowTribeWarCancel=False bIncreasePvPRespawnInterval=True bAutoUnlockAllEngrams=False MaxNumberOfPlayersInTribe=10 GlobalSpoilingTimeMultiplier=0.5 GlobalItemDecompositionTimeMultiplier=0.5 GlobalCorpseDecompositionTimeMultiplier=0.5 PvPZoneStructureDamageMultiplier=6.0 StructureDamageRepairCooldown=180 bUseSingleplayerSettings=False bUseCorpseLocator=True bShowCreativeMode=False PerPlatformMaxStructuresMultiplier=1.5
; Example: boost Metal harvest specifically ConfigOverrideItemMaxQuantity=(ItemClassString="PrimalItemResource_Metal_C",Quantity=(MaxItemQuantity=300,bIgnoreMultiplier=true)) EOF
Most mod authors publish a snippet you paste into Game.ini — structures-plus, stack mods, and breeding mods all rely on it. Keep a backup of the file before pasting third-party config.
Step 6: Create the Startup Script and systemd Service
Running ShooterGameServer directly from SSH works, but it will die the moment your session closes. We will wrap it in a launcher script and a systemd unit so the server starts on boot, restarts on crash, and integrates with journalctl.
The launcher script
Still as the steam user, create the launcher:
cat > /home/steam/ark-server/start-ark.sh <<'EOF' #!/usr/bin/env bash set -euo pipefailARK_DIR="/home/steam/ark-server" BIN="$ARK_DIR/ShooterGame/Binaries/Linux/ShooterGameServer"
MAP="TheIsland" SESSION="My CloudCore ARK Server" PORT=7777 QUERY_PORT=27015 RCON_PORT=32330 MAX_PLAYERS=30
cd "$ARK_DIR"
exec "$BIN" \ "${MAP}?listen?SessionName=${SESSION}?Port=${PORT}?QueryPort=${QUERY_PORT}?RCONEnabled=True?RCONPort=${RCON_PORT}?MaxPlayers=${MAX_PLAYERS}" \ -server \ -log \ -automanagedmods \ -NoBattlEye \ -useallavailablecores \ -usecache \ -nosteamclient \ -game EOF chmod +x /home/steam/ark-server/start-ark.sh
Notes on the flags:
TheIsland?listen?...— the map plus the "URL parameters" that ARK reads on launch. SwapTheIslandforRagnarok,TheCenter,ScorchedEarth,Aberration_P,Extinction,Valguero_P,CrystalIsles,Genesis, orGen2depending on which DLC map you want.-automanagedmods— forces SteamCMD to download and update mods on startup. Required for theActiveModsline to work.-NoBattlEye— ARK's BattlEye integration is Windows-only. Linux servers must disable it.-useallavailablecores— lets the engine schedule across every vCPU, not just 4.-server -log -game— standard Unreal dedicated server flags that keep verbose output flowing to stdout.
The systemd unit
Exit back to a sudo user (exit out of the steam shell), then create the unit:
sudo tee /etc/systemd/system/ark-server.service > /dev/null <<'EOF' [Unit] Description=ARK: Survival Evolved Dedicated Server After=network-online.target Wants=network-online.target[Service] Type=simple User=steam Group=steam WorkingDirectory=/home/steam/ark-server ExecStart=/home/steam/ark-server/start-ark.sh Restart=on-failure RestartSec=15 LimitNOFILE=100000 KillSignal=SIGINT TimeoutStopSec=120
[Install] WantedBy=multi-user.target EOF
Enable and start:
sudo systemctl daemon-reload
sudo systemctl enable --now ark-server
sudo systemctl status ark-serverStream live logs to watch the server initialize (first startup takes 3-5 minutes while it builds shader caches):
sudo journalctl -u ark-server -fOnce you see Full Startup: and Setting breakpad minidump AppID = lines followed by the tick loop, the server is up. Search for its SessionName in the in-game unofficial server browser to connect.
Step 7: Install Mods from the Steam Workshop
Mods are Steam Workshop items published against ARK's client app (346110) but delivered to dedicated servers through SteamCMD's workshop_download_item command. With -automanagedmods set in the launcher, ARK itself triggers the download — you just need to list the Workshop IDs.
https://steamcommunity.com/sharedfiles/filedetails/?id=731604991 is Structures Plus (S+).GameUserSettings.ini and set ActiveMods:ActiveMods=731604991,793605978,895711211sudo systemctl restart ark-server
sudo journalctl -u ark-server -fOn the next boot, ARK will call SteamCMD to pull each Workshop item into ShooterGame/Content/Mods/<id>/ and extract it automatically. The first mod-enabled startup is slow (5-15 minutes) because each mod is unpacked; subsequent starts only re-download when a mod version changes.
Popular, actively maintained mods worth starting with:
- Structures Plus (S+) — the quality-of-life building overhaul the community treats as a baseline.
- Awesome Teleporters! — ends long travel times on large maps.
- Automated Ark — vacuum farms, auto-crafters, auto-forges.
- Dino Storage v2 — stores tamed dinos as cryopod soul balls, saves massive CPU on popular servers.
- Super Structures — modern successor to S+ with active maintenance.
Game.ini, not GameUserSettings.ini.Step 8: Back Up SavedArks and Automate Updates
A public ARK server without backups will eventually lose a week of tribe progress to a corrupted save or a botched mod update. The entire world state is just a folder — back it up aggressively.
Nightly tarball backup
As the steam user, create a backup script:
cat > /home/steam/ark-backup.sh <<'EOF'
#!/usr/bin/env bash
set -euo pipefailBACKUP_DIR="/home/steam/backups"
SRC="/home/steam/ark-server/ShooterGame/Saved"
STAMP="$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/ark-${STAMP}.tar.gz" -C "$SRC" SavedArks Config
Keep the 14 most recent snapshots
ls -1t "$BACKUP_DIR"/ark-*.tar.gz | tail -n +15 | xargs -r rm --
EOF
chmod +x /home/steam/ark-backup.shSchedule it with cron (crontab -e as the steam user):
0 5 * /home/steam/ark-backup.sh >> /home/steam/ark-backup.log 2>&1For extra safety, push the /home/steam/backups directory to off-server storage (S3, Backblaze B2, or another VPS) with rclone or rsync on the same schedule. A backup that lives only on the same disk as the server is one rm -rf away from being useless.
Automated updates
Studio Wildcard ships dedicated server patches regularly, and mismatched client/server versions prevent connections. Update the server with a small script:
cat > /home/steam/ark-update.sh <<'EOF' #!/usr/bin/env bash set -euo pipefail
sudo systemctl stop ark-server /home/steam/steamcmd/steamcmd.sh \ +force_install_dir /home/steam/ark-server \ +login anonymous \ +app_update 376030 validate \ +quit sudo systemctl start ark-server EOF chmod +x /home/steam/ark-update.sh
Allow the steam user to manage the service without a password by adding a sudoers snippet:
echo 'steam ALL=(ALL) NOPASSWD: /bin/systemctl stop ark-server, /bin/systemctl start ark-server, /bin/systemctl restart ark-server' | sudo tee /etc/sudoers.d/steam-arkThen schedule the update weekly, on a low-traffic day:
0 6 3 /home/steam/ark-update.sh >> /home/steam/ark-update.log 2>&1Broadcast a warning to players before the restart using RCON (mcrcon is the usual tool) so nobody loses a tame in mid-knock.
For the full list of launch parameters, engram overrides, and INI keys, Studio Wildcard's community wiki is the canonical reference: ark.wiki.gg/wiki/Dedicated_server_setup.
Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
| Server does not appear in the Steam or in-game server browser | UDP 27015 blocked, or session name contains forbidden characters | Verify sudo ufw status, check the upstream cloud firewall, and ensure SessionName has no leading spaces or quotes. |
ShooterGameServer: error while loading shared libraries | Missing 32-bit libs or i386 arch disabled | Re-run sudo dpkg --add-architecture i386 && sudo apt install lib32gcc-s1 lib32stdc++6. |
| Server silently dies after ~10 minutes | OOM kill — under-provisioned RAM | Check dmesg \</td><td>grep -i oom. Upgrade to 16 GB minimum, or add an 8 GB swapfile as an emergency cushion. |
| Mods fail to download, server loops on startup | -automanagedmods missing, or invalid Workshop ID | Confirm the flag is present in start-ark.sh and that each ID in ActiveMods is numeric and resolvable. |
| Clients disconnect with "version mismatch" | Server is out of date relative to the client | Run ark-update.sh to pull the latest 376030 build. |
| RCON refuses to connect | RCONEnabled=False, port 32330 firewalled, or wrong admin password | Verify GameUserSettings.ini, re-check UFW and cloud firewall, and confirm you are using ServerAdminPassword, not ServerPassword. |
| "No space left on device" during updates | Full disk — SavedArks grows steadily | Prune old backups, or upgrade to a larger plan. ARK saves can reach 5-10 GB on established worlds. |
sudo journalctl -u ark-server -fFAQ
How much RAM does an ARK dedicated server need?
A single-map ARK server needs at least 16 GB of RAM once the world is populated and players start building. The Island and Ragnarok both push past 10 GB idle and spike during saves. Running a cluster of several maps on the same VPS requires 32 GB or more. The CloudCore Business plan at EUR 29.99/month is the minimum recommended specification for a single-map public server.
Which UDP ports does an ARK server use?
ARK uses UDP 7777 for the game itself, UDP 27015 for the Steam server query so the server appears in the in-game browser, and TCP 32330 if you enable RCON for remote administration. Both 7777 and 27015 must be reachable from the public internet for players to connect.
What Steam app ID is the ARK dedicated server?
The dedicated server build for ARK: Survival Evolved is Steam app ID 376030. This is different from the client app ID (346110) and requires no Steam login — you can install it anonymously through SteamCMD.
How do I install mods on a Linux ARK server?
Set ActiveMods in GameUserSettings.ini to a comma-separated list of Steam Workshop IDs and add -automanagedmods to the ShooterGameServer startup parameters. SteamCMD will then download and extract the mods automatically on the next server start.
Why self-host ARK instead of paying for a hosted server?
Dedicated ARK hosting providers typically charge EUR 20-45 per month for a single 10-slot Island server with limited RAM. A CloudCore Business VPS at EUR 29.99/month gives you full root access, 16 GB of RAM, unlimited player slots, your choice of mods, cluster support, and the ability to run multiple maps or other game servers on the same box.
How do I back up an ARK server save?
The entire world state lives in the SavedArks directory under ShooterGame/Saved. Stop the server or run a SaveWorld RCON command first, then tar or rsync the SavedArks folder to off-server storage. A nightly cron job plus hourly snapshots is the standard pattern for public servers.
Does ARK: Survival Evolved still get dedicated server updates?
Yes. Studio Wildcard continues to ship security fixes and compatibility updates to the legacy ARK: Survival Evolved dedicated server build (app 376030), and the community mod scene is still active. ARK: Survival Ascended uses a separate app ID and a different configuration layout — this guide is for the original ARK: Survival Evolved.
Next Steps
Now that your ARK server is live, restart-safe, and backing itself up, here are sensible follow-ups:
- Run a different game alongside ARK — a 16 GB VPS can host a lightweight second game server during off-peak. Try our guides for Rust, 7 Days to Die, Valheim, or Satisfactory.
- Set up RCON tooling — install
mcrconand write restart/broadcast scripts so you can warn players and save the world before updates. - Cluster multiple maps — add a second map (Ragnarok, Aberration) on the same VPS with its own systemd unit and cluster ID. Players can transfer survivors, items, and dinos between maps.
- Harden SSH — disable password auth, enforce keys, and lock SSH to your admin IP range. An ARK server with weak SSH is one compromised key away from a wipe.
- Monitor performance — install
htop,iotop, and a lightweight Prometheus node-exporter so you catch CPU saturation before players complain about rubber-banding.
Need more horsepower? Scale up to a larger CloudCore VPS for clusters, modded megapacks, or high player counts. Upgrades are online and take under a minute with no data migration required.