Danke an @flashback830 für das tolle Tutorial, welches bisher aus Platzgründen nur im WIKI Platz fand. An dieser Stelle aber nochmal hier bei uns im Forum:
Da hier so unglaublich viele Fragen zu ARK Servern sind habe ich mir mal gedacht ein kleines Tutorial zu machen.
Ich mach es mit einem Frisch Installierten Win Server 2012 die vorgehensweißebei Win 7,8 ist aber die gleiche.
Mindestestens Powershell "3" muss vorhanden sein, wer diese nicht hat: technet.microsoft.com/de-de/li…lingOnWindowsServer2008LH
Wichtige Downloads:
SteamCMD: https://steamcdn-a.akamaihd.ne…nt/installer/steamcmd.zip
DirectX: https://www.microsoft.com/de-de/download/details.aspx?id=35
Notepad++: https://notepad-plus-plus.org/download/
MCRCON: http://sourceforge.net/projects/mcrcon
Als erstes Installieren wir dann DirectX, Notepad++ und legen die Ordner an. Inmeinem Fall ist das:
C:\server\steamcmd (hier die SteamCMD entpacken)
C:\server\ark
C:\server\mcrcon (hier mcrcon entpacken)
C:\Scripts\ark
und Aktiveren Dateiendungen. Dazu gehen wir in einen beliebigen Ordner undKlicken oben auf "Ansicht" dann rechts auf "Optionen" dann auf den Reiter "Ansicht"und Deaktivieren den Hacken "Erweiterungen bei bekannten Dateitypen ausblenden"dann noch auf "OK" und fertig.
So nun Installieren wir erst einmal ARK. Am schnellsten geht das mit "Ausführen"(WIN + R) und folgendem Parameter:
C:\SERVER\steamcmd\steamcmd.exe +login anonymous +force_install_dir C:\SERVER\ARK +"app_update 376030" validate +quit
Das kann je nach Internet Geschwindigkeit etwas dauern.
Nun starten wir erst einmal kurz den Server, so dass die Config Files angelegtwerden.
Dazu machen wir noch einmal "Ausführen" auf und geben folgendes ein:
C:\SERVER\ARK\ShooterGame\Binaries\Win64\ShooterGameServer.exe TheIsland?listen-nosteamclient -game -server -log
Sobald da "Primal Game Data Took" steht kann das Fenster wieder geschlossenwerden.
Nachdem nun alles Heruntergeladen wurde passen wir dieServer Konfiguration an.
Diese heißt "GameUserSettings.ini" und befindet sich unter C:\SERVER\ARK\ShooterGame\Saved\Config\WindowsServer
Wichtig ist hier erstmal nur folgendes ganz unten einzufügen:
Alle anderen Settings kann man sich z.B. hier ansehen: http://www.survival-sandbox.de/ark-server-befehle-tips/
Als nächstes geben wir die entsprechenden Ports in der Windows Firewall frei.
Systemsteuerung -> Windows-Firewall -> Erweiterte Einstellungen ->(links oben) Eingehende Regeln -> (rechts oben) Neue Regel… -> Port ->UDP -> Bestimmte lokale Ports: 27015,7777 -> Weiter -> Verbindung zulassen -> Weiter -> Weiter ->(Name) Ark Server -> Fertig stellen
Nun Basteln wir uns eine Batch Datei zum Starten des Servers. Hierzu legen wireine neue Textdatei an:
@echo off
SET STEAMLOGIN=anonymous anonymous
SET BRANCH=376030
SET ARKSRVPATH=C:\SERVER\ARK
SET STEAMPATH=C:\SERVER\steamcmd
SET IP=IP ADRESSE
SET QUERYPORT=27015
SET PLAYERS=64
SET RCON=true
SET RCONPORT=32330
SET PORT=7777
:: _________________________________________________________
@SCHTASKS /END /TN "ARK Server" >NUL 2>&1
taskkill /F /IM ShooterGameServer.exe >NUL 2>&1
%STEAMPATH%\steamcmd.exe +login %STEAMLOGIN% +force_install_dir %ARKSRVPATH% +"app_update %BRANCH%" update +quit
%STEAMPATH%\steamcmd.exe +login %STEAMLOGIN% +force_install_dir %ARKSRVPATH% +"app_update %BRANCH%" validate +quit
start %ARKSRVPATH%\ShooterGame\Binaries\Win64\ShooterGameServer.exe TheIsland?QueryPort=%QUERYPORT%?MultiHome=%IP%?RCONEnabled=%RCON%?RCONPort=%RCONPORT%?MaxPlayers=%PLAYERS%?Port=%PORT%?listen -nosteamclient -game -server –log
Alles anzeigen
Diese wird als "Start.bat" gespeichert.
Danach die Start.bat noch starten und das war’s dann im Großen und Ganzenschon. Da allerdings am laufenden Band Updates kommen Basteln wir noch einScript, dass der Server sich bei Updates automatisch Aktualisiert.
Ab hier sollte man schon etwas mehr Ahnung haben
Wir gehen in den Ordner C:\Scripts\ark und legen die folgenden 3 Dateien an:
@echo off
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ". 'C:\scripts\ark\ark_server_updater.ps1'"
Exit
$steamcmdFolder="C:\SERVER\steamcmd"
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
nSubscribedAutoDownloadMaxSimultaneous 32
@cMaxContentServersToRequest 16
@cMaxInitialDownloadSources 1
@fMinDataRateToAttemptTwoConnectionsMbps 0.01
@fDownloadRateImprovementToAddAnotherConnection 0.01
login anonymous
force_install_dir C:\SERVER\ARK
app_update 376030 validate
quit
Alles anzeigen
# PowerShell Kill Process
Clear-Host
$ShooterGameprocess = Get-Process ShooterGameServer
#CHANGE ME - Folder where SteamCMD is:
$steamcmdFolder="C:\SERVER\steamcmd"
#CHANGE ME - Folder for Ark Survival eveloved
$arksurvivalFolder="C:\SERVER\ARK"
#not used anymore as the update is done in this script
$arksurvivalSteamScript="update_ark.txt"
#CHANGE ME - Startup arguments for the server
$arkSurvivalStartArguments="TheIsland?QueryPort=27015?MultiHome=S E R V E R I P ?RCONEnabled=true?RCONPort=32330?MaxPlayers=64?Port=7777?listen -nosteamclient -game -server -log"
#CHANGE ME - path to mrcon.exe
$mcrconExec="C:\server\mcrcon\mcrcon.exe"
#CHANGE ME -RCON IP (same as the server ip)
$rconIP="S E R V E R I P"
#CHANGE ME - RCON Port
$rconPort=32330
#CHANGE ME - RCON Password
$rconPassword="R C O N P W"
#The ID of the App Your Updating
$steamAppID="376030"
# Without clearing cache app_info_update may return old informations!
$clearCache=1
$scriptPath = Split-Path -parent $MyInvocation.MyCommand.Definition
$dataPath = $scriptPath+"\data"
$steamcmdExec = $steamcmdFolder+"\steamcmd.exe"
$steamcmdCache = $steamcmdFolder+"\appcache"
$latestAppInfo = $dataPath+"\latestappinfo.json"
$updateinprogress = $arksurvivalFolder+"\updateinprogress.dat"
$latestAvailableUpdate = $dataPath+"\latestavailableupdate.txt"
$latestInstalledUpdate = $dataPath+"\latestinstalledupdate.txt"
If (Test-Path $updateinprogress) {
Write-Host Update is already in progress
} else {
Get-Date | Out-File $updateinprogress
Write-Host Creating data Directory
New-Item -Force -ItemType directory -Path $dataPath
If ($clearCache) {
Write-Host Removing Cache Folder
Remove-Item $steamcmdCache -Force -Recurse
}
Write-Host Checking for an update
& $steamcmdExec +login anonymous +app_info_update 1 +app_info_print $steamAppID +quit | Out-File $latestAppInfo
Get-Content $latestAppInfo -RAW | Select-String -pattern '(?m)"public"\s*\{\s*"buildid"\s*"\d{6,}"' -AllMatches | %{$_.matches[0].value} | Select-String -pattern '\d{6,}' -AllMatches | %{$_.matches} | %{$_.value} | Out-File $latestAvailableUpdate
If (Test-Path $latestInstalledUpdate) {
$installedVersion = Get-Content $latestInstalledUpdate
} Else {
$installedVersion = 0
}
$availableVersion = Get-Content $latestAvailableUpdate
if ($installedVersion -ne $availableVersion) {
Write-Host Current version: $installedVersion - Latest version: $availableVersion
Write-Host Update Available
#Server Message 1 hr warning
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "broadcast Ein Neues Update ist verfuegbar, Server startet in 60 Minuten neu..."
Write-Host 1 hr warning given
Start-Sleep -s 900
#Server Message 45 minute warning
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "broadcast Neues Update verfuegbar, Server startet in 45 Minuten neu..."
Write-Host 45 min warning given
Start-Sleep -s 900
#Server Message 30 minute warning
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "broadcast Neues Update verfuegbar, Server startet in 30 Minuten neu... Es wird Zeit nach Hause zu gehn ;)"
Write-Host 30 min warning given
Start-Sleep -s 900
#Server Message 15 minute warning
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "broadcast Neues Update verfuegbar, Server startet in 15 Minuten neu... Ihr solltet wirklich darueber nachdenken, an einen sicheren Ort zu gehen!"
Write-Host 15 min warning given
Start-Sleep -s 300
#Server Message 10 minute warning
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "broadcast Neues Update verfuegbar, Server startet in 10 Minuten neu... Wenn der Server heruntergefahren ist, dauert es etwa 5-10 Minuten bis er wieder Online ist."
Start-Sleep -s 300
#Server Message 5 minute warning given
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "broadcast Neues Update verfuegbar, Server startet in 5 Minuten neu... Schnell nach Hause!"
Start-Sleep -s 240
#Server Message 1 minute Warning
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "broadcast Neues Update verfuegbar, Server startet in 1 Minuten neu... Nicht vergessen ihr muesst euren Client auch Updaten - Bis gleich ;)"
Write-Host 1 min warning given
Start-Sleep -s 10
#Save World admin command
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "saveworld"
Start-Sleep -s 10
Write-Host world saving
#Server Message Shutting Down
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "broadcast World Saved"
Start-Sleep -s 15
#Server Admin Command Quit
Write-Host Quit Server
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "quit"
#Kill The Server by Ending the process
kill -processname ShooterGameServer
Start-Sleep -s 10
#update server
Write-Host Update Script Initialising
#CHANGE ME - you need to enter
& $steamcmdExec +login anonymous +force_install_dir $arksurvivalFolder +app_update 376030 +exit
#restart server
Write-Host Restarting Server!
& $arksurvivalFolder"\ShooterGame\Binaries\Win64\ShooterGameServer.exe" $arkSurvivalStartArguments
#update current version
$availableVersion | Out-File $latestInstalledUpdate
#remove currently being updated block
Write-Host Update Done!
Remove-Item $updateinprogress -Force
} ELSE {
#remove currently being updated block
Remove-Item $updateinprogress -Force
Write-Host Running Latest Version $installedVersion
#CHANGE ME These are the messages that are shown over an hr when no update is required
# Server Message MOTD
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "broadcast Der Server intalliert neue Updates automatisch, ihr werdet eine Stunde davor gewarnt."
Write-Host MOTD auto update message Displayed
Start-Sleep -s 900
# Server Message MOTD
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "broadcast Bitte baut nicht vor oder an den Hoehlen."
Write-Host MOTD message Displayed
Start-Sleep -s 600
# Server Message MOTD
& $mcrconExec -c -H $rconIP -P $rconPort -p $rconPassword "broadcast Wenn es dir bei uns gefaellt, schau doch mal auf unserem TS vorbei."
Write-Host MOTD teamspeak message Displayed
}
}
Alles anzeigen
Nun öffnenwir eine neue CMD / Eingabeaufforderung mit "Rechtsklick" -> "Als Administrator ausführen" dort dann "Powershell" eingeben und danach folgenden Command: "set-executionpolicy unrestricted"
Wenn nun die Update.batausgeführt wird Checkt er die aktuelle Version (beim ersten mal wird da 0stehen) und die Verfügbare Version. Wenn ein Update verfügbar ist werden dieSpieler eine Stunde lang gewarnt und der Server dann automatischheruntergefahren, Updatet und Startet wieder neu.
Um das Script Stündlich zu starten, Öffnen wir die "Aufgabenplanung" undklicken auf "Einfache Aufgabe erstellen…" -> ARK Server Updater ->Täglich -> Programm starten -> C:\Scripts\ark\update.bat -> (den Hakenunten setzen) Beim Klicken auf "Fertig stellen" , die Eigen….. -> Trigger-> Bearbeiten -> (den Haken unten setzen) Wiederholen jede: 1 Stunde –für die Dauer von: 1 Stunde -> OK -> OK
Das war‘s dann auch schon Viel Spaß mit euren Servern