VPS Tutorials
Set Up an ARK: Survival Ascended Server on a VPS (2026): SteamCMD, Ports, Configuration, Backups and Updates
Deploy a dedicated ARK: Survival Ascended server on a Windows Server 2022 VPS, covering SteamCMD, App ID 2430930, ports, firewall, PvE configuration, startup on boot, backups, updates and troubleshooting.

If you want to play ARK: Survival Ascended with friends long-term, using the in-game non-dedicated host quickly runs into distance limits, the host having to stay online, and saves and updates all being tied to one computer. Once you move the dedicated server onto a VPS, the world can keep running, and admins can schedule updates, backups, mods and maintenance windows independently.
Let's get the most common pitfall out of the way first: the official ARK community Wiki currently states clearly that Survival Ascended dedicated servers require Windows or a Windows-compatible environment, and there is no native Linux server. This article therefore uses a Windows Server 2022 VPS, SteamCMD and Windows Task Scheduler. Although some people run Linux + Wine/Proton, compatibility, performance and troubleshooting costs are all higher after game updates, so it is not suitable as the main path for beginners.
ARK: Survival Ascended and the older ARK: Survival Evolved are two different server sets. Do not mix their App IDs, executables or configuration directories.
| Item | Survival Ascended (this article) | Survival Evolved (older version) |
|---|---|---|
| SteamCMD App ID | 2430930 | 376030 |
| Server program | ArkAscendedServer.exe | ShooterGameServer.exe |
| The Island map name | TheIsland_WP | TheIsland |
| Native Linux server | Not supported | Supported |
The official ARK community Wiki's dedicated server notes also mention a commercial restriction: without the appropriate dedicated server license, self-hosted ASA servers should only be used for personal, non-commercial purposes. Before you plan to sell membership benefits, paid items, whitelist access or other services for consideration, you should check the latest EULA and licensing requirements yourself; you cannot treat a private friends-server tutorial as a compliant commercial-server solution.
SteamCMD's 2430930, map names and launch parameters may change in later updates. Before each major version update, check the official documentation and patch notes, then upgrade after making a backup.
ASA uses Unreal Engine 5, and the server is more sensitive to memory, single-core performance and disk than many older game servers. Below are more reliable starting points for actual purchases, not official player-count guarantees:
| Scenario | Recommended configuration | System disk | Suitable for |
|---|---|---|---|
| 2–4 players, clean PvE | 4 high-performance vCPUs, 16GB RAM | 100GB NVMe | Single map, few structures |
| 5–10 players, long-term server | 6 high-performance vCPUs, 24GB RAM | 150GB NVMe | With mods, saves gradually growing |
| 10+ players or large bases | 8 high-performance vCPUs, 32GB+ RAM | 200GB+ NVMe | Needs continuous monitoring before scaling up |
Don't just look at the "8 cores" label. When shared CPU is heavily oversold, startup, world saves and areas near large bases can all stutter. The data center should be close to the main players, and you should confirm in advance that the provider allows game servers, supports UDP, has enough monthly traffic, and has clear rules for DDoS scrubbing, bans and IP changes. Before buying, you can read Game Server VPS Configuration and Network Line Selection.
Windows Server itself also uses some memory, so an 8GB plan is not recommended for running ASA long-term. Besides the installation package, the disk also needs space for maps, mods, logs, saves and local backups.
Log in to the VPS via Remote Desktop and complete the following preparation first:
- Install Windows Update and restart until there are no pending updates.
- Confirm the system is 64-bit and that the time and time zone are correct.
- Keep a working remote console in the cloud provider's console to avoid locking yourself out of RDP with a wrong firewall rule.
- Open an administrator PowerShell; all subsequent commands are run there.
Create the installation, backup and script directories:
New-Item -ItemType Directory -Force C:\steamcmd | Out-Null
New-Item -ItemType Directory -Force C:\ark-asa | Out-Null
New-Item -ItemType Directory -Force C:\ark-backups | Out-Null
Get-Volume -DriveLetter C | Select-Object DriveLetter, SizeRemaining, Size
If the system disk is short on space, expand it before installing. Do not keep backups only on the same C drive long-term; a local archive only restores quickly, and truly protecting against accidental VPS deletion still requires an off-site copy.
Download the Windows version of SteamCMD from Valve's Steam CDN:
Invoke-WebRequest `
-Uri 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip' `
-OutFile 'C:\steamcmd\steamcmd.zip'
Expand-Archive `
-Path 'C:\steamcmd\steamcmd.zip' `
-DestinationPath 'C:\steamcmd' `
-Force
& 'C:\steamcmd\steamcmd.exe' +quit
The first run updates SteamCMD itself. After it completes, check the files:
Get-Item C:\steamcmd\steamcmd.exe
If Invoke-WebRequest reports a TLS or connection error, first complete Windows Update, confirm the system date is correct, then check whether outbound HTTPS is blocked by security software or the cloud firewall. Do not download packaged SteamCMD or server files from unknown cloud drives.
Run an anonymous login install:
& 'C:\steamcmd\steamcmd.exe' `
+force_install_dir 'C:\ark-asa' `
+login anonymous `
+app_update 2430930 validate `
+quit
The download is large, and completion time depends on VPS bandwidth and the Steam CDN. After installation, check the key files:
$serverExe = 'C:\ark-asa\ShooterGame\Binaries\Win64\ArkAscendedServer.exe'
Test-Path $serverExe
Get-Item $serverExe | Select-Object FullName, Length, LastWriteTime
Get-ChildItem C:\ark-asa -Recurse -File |
Measure-Object -Property Length -Sum
Test-Path should return True. If you mistakenly used the client App ID 2399830 or the old server App ID 376030, the directory structure and program names will both be wrong; deleting the wrong directory and reinstalling is more reliable than trying to fix it in place.
Create a new C:\ark-asa\start-asa.bat:
@echo off
cd /d C:\ark-asa\ShooterGame\Binaries\Win64
ArkAscendedServer.exe TheIsland_WP?listen -port=7777 -WinLiveMaxPlayers=10 -servergamelog
exit /b %errorlevel%
There are three easy-to-get-wrong points here:
- ASA's The Island map name is
TheIsland_WP, not the olderTheIsland. - ASA uses
-port=7777; do not copy old tutorials and write?Port=7777. - The player limit uses
-WinLiveMaxPlayers=10; changing onlyMaxPlayersin the INI may be reset to the default value.
First run it in the foreground in PowerShell:
& 'C:\ark-asa\start-asa.bat'
The first startup needs to generate directories, initialize the world and connect to online services, which may take several minutes. Wait until you see the world finish loading before closing the window. Confirm that the configuration and save directories were generated:
Get-ChildItem 'C:\ark-asa\ShooterGame\Saved' -Force
Get-ChildItem 'C:\ark-asa\ShooterGame\Saved\Logs' -Filter '*.log' |
Sort-Object LastWriteTime -Descending |
Select-Object -First 5 Name, Length, LastWriteTime
The configuration files are located at:
C:\ark-asa\ShooterGame\Saved\Config\WindowsServer\GameUserSettings.ini
First generate two sets of unique random passwords, then write a basic PvE configuration. PowerShell will display the passwords once on screen; save them to a password manager immediately:
$alphabet = 'abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789!@#$%'.ToCharArray()
$playerPassword = -join (1..24 | ForEach-Object { $alphabet | Get-Random })
$adminPassword = -join (1..32 | ForEach-Object { $alphabet | Get-Random })
$configDir = 'C:\ark-asa\ShooterGame\Saved\Config\WindowsServer'
New-Item -ItemType Directory -Force $configDir | Out-Null
@"
[ServerSettings]
ServerPassword=$playerPassword
ServerAdminPassword=$adminPassword
serverPVE=True
AllowThirdPersonPlayer=True
ShowMapPlayerLocation=True
DifficultyOffset=1.0
OverrideOfficialDifficulty=5.0
AutoSavePeriodMinutes=15.0
RCONEnabled=False
RCONPort=27020
[SessionSettings]
SessionName=My ASA Private Server
Port=7777
QueryPort=27015
"@ | Set-Content `
-Path "$configDir\GameUserSettings.ini" `
-Encoding ascii
Write-Host "玩家密码:$playerPassword"
Write-Host "管理员密码:$adminPassword"
The player password and admin password should not be the same, and should not reuse the Windows administrator or RDP password. RCONEnabled=False means this article does not open the remote management port by default; if you really need RCON later, only allow fixed admin IPs, and never expose 27020/TCP directly to the entire internet.
Restart once to confirm the configuration is read:
& 'C:\ark-asa\start-asa.bat'
If the server name or rates do not take effect, stop the server normally first, then check whether you edited the wrong WindowsServer directory. Editing the INI while the server is running may be overwritten by the old configuration on exit.
Official maps must use their corresponding internal names. For example:
| Map | ASA launch name |
|---|---|
| The Island | TheIsland_WP |
| The Center | TheCenter_WP |
| Scorched Earth | ScorchedEarth_WP |
| Ragnarok | Ragnarok_WP |
| Aberration | Aberration_WP |
When changing maps, modify the first parameter on line 3 of the startup script. Do not use old ARK map names, and do not switch a long-term save directly without a backup.
ASA allows cross-platform connections by default. If you need to explicitly restrict or declare platforms, you can use -ServerPlatform; the values currently listed by the official community Wiki include PC, PS5, XSX, WINGDK and ALL. When unsure, keep the default first; a wrong platform restriction will make some friends unable to find the server.
This article uses:
| Port | Protocol | Purpose | Open to public internet |
|---|---|---|---|
| 7777 | UDP | Game port | Yes |
| 27015 | UDP | Query port | Yes |
| 27020 | TCP | RCON | No, disabled in this article |
Create Windows firewall rules in administrator PowerShell:
New-NetFirewallRule `
-DisplayName 'ARK ASA Game UDP 7777' `
-Direction Inbound `
-Protocol UDP `
-LocalPort 7777 `
-Action Allow
New-NetFirewallRule `
-DisplayName 'ARK ASA Query UDP 27015' `
-Direction Inbound `
-Protocol UDP `
-LocalPort 27015 `
-Action Allow
Get-NetFirewallRule -DisplayName 'ARK ASA*' |
Get-NetFirewallPortFilter |
Format-Table Protocol, LocalPort
Then go to the cloud provider console security group and add the same inbound rules for 7777/UDP and 27015/UDP. Windows firewall and the cloud security group are two layers; missing either one can cause "the program is running but the outside world cannot get in". You can check layer by layer with the Ports, Firewall and Security Group Troubleshooting Checklist.
Do not open all ports just to save effort, and do not mistakenly write UDP as TCP. RDP's 3389/TCP should be limited to your own fixed IP as much as possible; at the very least, do not expose it to the whole internet alongside the game ports.
After confirming the foreground startup has no errors, register a boot task. First close the running foreground service, then run:
$action = New-ScheduledTaskAction `
-Execute 'cmd.exe' `
-Argument '/c "C:\ark-asa\start-asa.bat"' `
-WorkingDirectory 'C:\ark-asa'
$trigger = New-ScheduledTaskTrigger -AtStartup
$principal = New-ScheduledTaskPrincipal `
-UserId 'SYSTEM' `
-LogonType ServiceAccount `
-RunLevel Highest
$settings = New-ScheduledTaskSettingsSet `
-StartWhenAvailable `
-RestartCount 5 `
-RestartInterval (New-TimeSpan -Minutes 2) `
-ExecutionTimeLimit (New-TimeSpan -Seconds 0)
Register-ScheduledTask `
-TaskName 'ARK ASA Server' `
-Action $action `
-Trigger $trigger `
-Principal $principal `
-Settings $settings
Start-ScheduledTask -TaskName 'ARK ASA Server'
Check the task and process:
Get-ScheduledTask -TaskName 'ARK ASA Server' |
Get-ScheduledTaskInfo
Get-Process ArkAscendedServer -ErrorAction SilentlyContinue |
Select-Object Id, CPU, WorkingSet64, StartTime
A task showing as started does not mean the world is joinable. Also check the latest log and wait for the map to finish loading:
$latestLog = Get-ChildItem 'C:\ark-asa\ShooterGame\Saved\Logs' -Filter '*.log' |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
Get-Content $latestLog.FullName -Tail 200 -Wait
After the server finishes loading, search for SessionName in the game's unofficial server list. List synchronization may be delayed; wait a few minutes first, then confirm that the search criteria, platform filter and password-server filter are not hiding it.
After the admin enters the game, open the console and authenticate first:
enablecheats 管理员密码
Manually save the world:
cheat SaveWorld
Before maintenance, notify players first, save the world, then exit the server normally:
cheat DoExit
Do not treat Windows "End task" as your daily way to stop the server. Force-killing the process may leave the last world save incomplete, and you should especially exit normally before updates and backups.
The official documentation recommends backing up the entire ShooterGame\Saved, which contains the world, characters, tribes, configuration, logs and cluster data. First run cheat SaveWorld and cheat DoExit in-game, and confirm the process has exited:
Get-Process ArkAscendedServer -ErrorAction SilentlyContinue
Once there is no output, compress:
$stamp = Get-Date -Format 'yyyyMMdd-HHmmss'
$source = 'C:\ark-asa\ShooterGame\Saved\*'
$target = "C:\ark-backups\ark-asa-$stamp.zip"
Compress-Archive `
-Path $source `
-DestinationPath $target `
-CompressionLevel Optimal
Get-Item $target | Select-Object FullName, Length, LastWriteTime
After the backup completes, start the task:
Start-ScheduledTask -TaskName 'ARK ASA Server'
At minimum, regularly sync the archive to object storage or another machine, and actually perform a recovery drill. For more complete retention periods, off-site copies and recovery verification methods, see VPS Automated Backup Solutions.
When restoring, stop the server first, rename and keep the current Saved, then extract the chosen backup; do not directly overwrite old files onto a running server.
When client and server versions do not match, players usually cannot join. The update process should be fixed as: notify players, save the world, exit normally, back up, update with SteamCMD, start, check logs, actually connect.
After confirming the process has exited and the backup succeeded, run:
& 'C:\steamcmd\steamcmd.exe' `
+force_install_dir 'C:\ark-asa' `
+login anonymous `
+app_update 2430930 validate `
+quit
Start-ScheduledTask -TaskName 'ARK ASA Server'
Do not set validate to run automatically every few minutes. It creates disk and network load, and updating while the server is running may cause file locks or mixed versions. After a large patch, check the logs, map, configuration and mods first, then let all players return.
ASA mods no longer follow the old Steam Workshop process. The official community Wiki currently recommends using the -mods launch parameter, with multiple mod IDs separated by English commas. The example structure is as follows:
-mods=模组ID1,模组ID2,模组ID3
Do not directly copy a long mod list from an unfamiliar server. The correct order is:
- Stop the server and back up the entire
Saved. - Add only one mod or a small group at a time.
- After starting, check downloads, load order and dependency errors.
- Actually enter the map and confirm items, structures and creatures are normal.
- Record the mod ID, version and date added.
Removing mods that contain custom items or creatures may cause permanent loss. Verify in a restored test copy first; do not experiment on your only save.
First confirm the command uses App ID 2430930, the install directory is C:\ark-asa, then run app_update 2430930 validate again. Do not install the client, the old ASE server and the ASA server into the same directory.
Check the latest log in C:\ark-asa\ShooterGame\Saved\Logs and verify:
- Whether memory is exhausted and whether the page file is disabled;
- Whether the map name was written as
TheIsland_WP; - Whether the launch parameter quotes and question marks are correct;
- Whether the configuration file is saved as ASCII or normal text without BOM;
- Whether security software quarantined server files;
- Whether mods are still compatible after a major update.
Get it running with clean launch parameters first, then restore mods and advanced configuration item by item; this makes it easier to locate problems than changing ten parameters at once.
Check in order:
- Whether the log has finished loading the world, rather than still initializing.
- Whether the Windows firewall allows
7777/UDPand27015/UDP. - Whether the cloud security group allows the same UDP ports.
- Whether the game list has "Unofficial Servers" selected, and whether the platform and password filters are correct.
- Whether
SessionNameis too common, and whether it can be precisely distinguished when searching. - Whether Windows Server's TLS 1.2 and certificate revocation lists are normal.
The official dedicated server notes specifically mention that abnormal TLS and certificate revocation lists in Windows Server environments affect the ASA server's connection to online services. If ordinary Windows firewall troubleshooting is ineffective, check the certificate requirements according to the official current notes; do not blindly disable system certificate verification.
Confirm you edited:
C:\ark-asa\ShooterGame\Saved\Config\WindowsServer\GameUserSettings.ini
Modify after stopping the server. When the launch command and the INI set the same option at the same time, the command line may override the INI. Remove duplicates, keep only one source, then start and verify.
Record CPU, memory, remaining disk space, log size and peak online players. Large bases, creature counts, mods and save growth can all increase load. Do not just rely on daily restarts to hide the problem; you can combine the VPS Monitoring and Alerting Setup Guide to continuously observe resource trends, then decide whether to upgrade CPU, memory or split maps.
You can try Wine, Proton or third-party container images, but this is not the official native Linux path. Compatibility layers, graphics dependencies, update regressions and third-party image supply chains all add maintenance risk. It is only worth trying if you already have Linux operations experience, can accept downtime for troubleshooting and have off-site backups in place; beginners and long-term friends servers should prefer a Windows VPS.
If the goal is 5–10 players long-term PvE, you can start with this combination:
- Windows Server 2022, 6 high-performance vCPUs, 24GB RAM, 150GB NVMe;
2430930dedicated server, The Island usingTheIsland_WP;7777/UDPgame port,27015/UDPquery port;- RCON disabled by default, RDP only allowing trusted admin IPs;
- Task Scheduler handles startup on boot and retry on failure;
- Before each update, run
SaveWorld, stop the server normally and back up the entireShooterGame\Saved; - Keep short-term backups locally, keep another copy off-site, and do regular recovery drills;
- Run a clean server first, and add mods in small amounts after confirming stability.
The point of this setup is not to get the startup script running once, but to make updates, saves, ports, security and recovery all form a fixed process. Before formally inviting friends to join, complete at least one external connection, one normal restart and one backup recovery test.