5.5 KiB
ARK: Survival Evolved Server
Self-hosted ARK: Survival Evolved dedicated server. Map: TheIsland.
Access
- Game:
192.168.2.114:7777(LAN / Tailscale) - Steam Query:
192.168.2.114:27015 - RCON:
192.168.2.114:27020(TCP)
No Tailscale sidecar — ports exposed directly on the host (same pattern as Minecraft).
Containers
| Container | Image | Role |
|---|---|---|
ark_server |
hermsi/ark-server:latest |
Game server |
Compose File
Path: /ARK_Server/docker-compose.yaml
services:
ark:
image: hermsi/ark-server:latest
container_name: ark_server
mem_limit: 10g
ports:
- "7777:7777/udp"
- "7778:7778/udp" # Must be game port +1
- "27015:27015/udp" # Steam query / server browser
- "27020:27020/tcp" # RCON
volumes:
- /ARK_Server/data:/app
- /ARK_Server/backups:/home/steam/ARK-Backups
environment:
SESSION_NAME: "Inanis ARK"
SERVER_MAP: TheIsland
SERVER_PASSWORD: <redacted>
ADMIN_PASSWORD: <redacted>
MAX_PLAYERS: 20
UPDATE_ON_START: "true"
BACKUP_ON_STOP: "true"
PRE_UPDATE_BACKUP: "true"
WARN_ON_STOP: "true"
ENABLE_CROSSPLAY: "false"
DISABLE_BATTLEYE: "false"
# GAME_MOD_IDS: "" # See mods.md — add IDs here when ready
restart: unless-stopped
Host Directory Setup
Run these once before first boot:
sudo mkdir -p /ARK_Server/data /ARK_Server/backups
sudo chown -R 1000:1000 /ARK_Server
The container runs as the steam user (UID 1000). The chown ensures it can write to the bind-mount volumes.
Data Layout
| Path | Contents |
|---|---|
/ARK_Server/data |
Server binaries, world saves, config files |
/ARK_Server/backups |
Automatic backups (triggered by BACKUP_ON_STOP) |
First boot warning: The server downloads ~30 GB of files from Steam on first startup. This takes a long time. Do not restart the container — just wait.
Server Configuration (Multipliers)
After first boot, edit these two config files directly on the host. They are created by the server on first run.
GameUserSettings.ini
Path: /ARK_Server/data/server/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini
Add/update these values under the [ServerSettings] section:
[ServerSettings]
; Rates — faster and more forgiving, but not trivial
TamingSpeedMultiplier=5.0
HarvestAmountMultiplier=3.0
XPMultiplier=3.0
ResourcesRespawnPeriodMultiplier=0.5
; Survival annoyances — reduced
PlayerCharacterFoodDrainMultiplier=0.5
PlayerCharacterWaterDrainMultiplier=0.5
DinoCharacterFoodDrainMultiplier=0.5
; Inventory QoL
ItemStackSizeMultiplier=2.0
; Loot
SupplyCrateLootQualityMultiplier=1.5
Rationale:
- 5x taming — vanilla taming is hours-long; 5x is still meaningful but won't eat a whole session
- 3x harvest/XP — fast enough to feel rewarding, slow enough to preserve the grind loop
- 0.5x food/water drain — cuts survival micromanagement in half without eliminating it
- 0.5x resource respawn — resources come back faster so you're not farming across the whole map
Game.ini
Path: /ARK_Server/data/server/ShooterGame/Saved/Config/LinuxServer/Game.ini
Add these values under the [/script/shootergame.shootergamemode] section:
[/script/shootergame.shootergamemode]
; Breeding — fast enough to do in a session
MatingIntervalMultiplier=0.1
EggHatchSpeedMultiplier=10.0
BabyMatureSpeedMultiplier=20.0
; Imprinting — scaled proportionally to maturation speed
; Rule: BabyCuddleIntervalMultiplier ≈ 1 / BabyMatureSpeedMultiplier
; At 20x mature speed, cuddles happen ~every 24 minutes instead of 8 hours
BabyCuddleIntervalMultiplier=0.05
BabyImprintAmountMultiplier=2.0
Rationale:
- 20x maturation — a large dino that normally takes 5 real-world days now takes ~6 hours
- 0.05x cuddle interval — keeps the number of cuddles per maturation roughly constant, so full imprinting is still achievable
- 2x imprint amount — each cuddle gives double imprint credit, reducing the number of cuddles needed for 100%
- 0.1x mating interval — vanilla mating cooldown is 18 hours; this reduces it to ~2 hours
Restart the server after editing INI files.
RCON Usage
Connect with any RCON client (e.g. RCON Console, mcrcon) to 192.168.2.114:27020 using the admin password.
Useful commands:
SaveWorld — Force save
DoExit — Clean shutdown
admincheat AllowPlayerToJoinNoCheck <SteamID> — Whitelist a player
listplayers — Show connected players
Manual save before stopping the container:
docker exec ark_server arkmanager rconcmd "SaveWorld"
Mods
See mods.md for the full mod reference and recommended load order.
To enable mods, set GAME_MOD_IDS in the compose file:
GAME_MOD_IDS: "839162288,1999447172,1609138312,..."
Mods are downloaded automatically on container start.
Notes
- Uses
hermsi/ark-serverwhich wrapsarkmanagerinternally — usedocker exec ark_server arkmanager <cmd>for manual operations UPDATE_ON_START: true— pulls the latest server patch on every container startBACKUP_ON_STOP: true+PRE_UPDATE_BACKUP: true— automatic backup before updates and on shutdown- Port
7778is always game port + 1; if you change7777, update both - RAM: 10 GB hard limit. ARK base footprint is ~6-8 GB; mods and a populated server will push toward the cap
- Storage: allocate 50+ GB for
/ARK_Server/data— binaries alone are ~30 GB, save data grows over time