Da es nirgendwo im Netz eine gute Anleitung zum Einrichten eines ARK - Survival Evolved Dedicated Servers mittels ARK Server-Tool auf Ubuntu gibt, dachte ich mir ich schreib mal ein kleines Tut dafür.
Getestet habe ich es mit Ubuntu Server/Desktop 15.10 und 16.04, sollte aber auch auf selbe Weise auf 14.04 laufen.
First things first!
Dieses Tutorial ist für Anfänger wie auch für Fortgeschrittene. Ich werde jeden Schritt dokumentieren und wenn nötig erklären. Sollten dennoch Fragen aufkommen, bitte in den Kommentaren stellen.
Das Tutorial kann sowohl auf einem Ubuntu Server wie auch auf einem Ubuntu Desktop durchgeführt werden da ich alle Schritte ausschließlich über die Konsole ausführen werde.
ANFÄNGER TIPP:
Wer mit Ubuntu/Linux noch keine Erfahrungen hat, dem empfehle ich, sich in den diversen Foren oder dem Ubuntu Wiki in die Materie einzulesen. Nur so kann vermieden werden, dass Ubuntu/Linux spezifische Begriffe auch verstanden werden und keine unnötigen Fragen gestellt werden.
Apropos Fragen. Fragen zu Problemen die durch ignorieren des oben stehenden Tipps gestellt werden, werden ignoriert!
Was benötige ich für einen ARK - Survival Evolved Dedicated Server?
1. Einen Rechner, V-Server oder Root-Server mit Ubuntu Server/Desktop 14.04, 15.04, 15.10 oder 16.04. (INFO: Ubuntu unterstützt seine OS-Versionen nur geraume Zeit mit Updates! Derzeit noch unterstützte Versionen 12.04, 14.04, 15.10 und 16.04! Der Server benötigt ein 64bit Linux, ansonsten läuft gar nichts!)
2. Mindestens 50-70GB freien Speicherplatz (Für die Serverdateien, zukünftige Updates, Backups und Mods.)
3. Root-Zugang zum Server/Desktop.
4. Falls der Server im eigenen Haus steht, Zugang zum Router um die Ports freigeben zu können.
5. Optional: Steam Account
6. Etwas Verstand und Zeit.
Phase 1 - Vorarbeiten:
Wir bereiten als erstes unseren Server/Desktop soweit vor, dass unser Server später problemlos läuft. Hierfür müssen wir diverse Änderungen an Dateien vornehmen, einen neuen Nutzer und einige Ordner erstellen.
Installieren von lib32gcc1
Als erstes müssen wir eine Laufzeitbibliothek installieren ohne die der Server nicht laufen würde.
Dazu geben wir im Terminal folgenden Befehl ein:
sudo apt-get install lib32gcc1
Limit zum Öffnen von Dateien erhöhen
Damit es beim Start des Servers zu keinen Problemen wegen zu vielen zu öffnenden Dateien gibt, müssen wir das Limit hierfür etwas in die Höhe schrauben.
(INFO: Ich verwende den Editor nano um Dateien direkt in der Konsole zu bearbeiten. Jeder sollte jedoch den Editor verwenden, den er/sie gewohnt ist. Wer nano installieren möchte kann dies mit sudo apt-get install nano -y tun.)
sysctl.conf
Wir öffnen nun die Datei /etc/sysctl.conf und fügen am Ende der Datei folgende Zeile hinzu:
Datei öffnen:
sudo nano /etc/sysctl.conf
Folgende Zeile einfügen:
fs.file-max=100000
Datei speichern.
Nun müssen wir dem System sagen, dass hier eine Änderung vorliegt, welche es berücksichtigen soll.
sudo sysctl -p /etc/sysctl.conf
limits.conf
Wir öffnen nun die /etc/security/limits.conf und fügen vor # End of file folgende Zeilen hinzu:
Datei öffnen:
sudo nano /etc/security/limits.conf
Folgende Zeilen einfügen:
* soft nofile 100000
* hard nofile 100000
common-session
Wir öffnen nun die /etc/pam.d/common-session und fügen vor # end of pam-auth-update config folgende Zeile hinzu:
Datei öffnen:
sudo nano /etc/pam.d/common-session
Folgende Zeile einfügen:
session required pam_limits.so
Neuen Benutzer anlegen
Jetzt benötigen wir einen Benutzer, ohne Root Zugang, unter dem wir unseren Server laufen lassen werden. (INFO: Spielserver sollte man NIEMALS mit einem Benutzer mit Root-Rechten laufen lassen. Dies bewahrt euch vor gröberen Schäden im System, wenn Hacker über Schwachstellen eindringen.)
Ich verwende hier den Benutzer "ark". Ihr könnt natürlich auch andere Namen verwenden.
Benutzer anlegen und Passwort vergeben
sudo adduser ark
Natürlich benötigt unser Benutzer auch ein Passwort...
sudo passwd ark
Nun noch das Passwort eingeben und fertig.
Benötigte Ordner erstellen
Als erstes wechseln wir zu unserem neuen Benutzer.
su - ark
Nachdem wir das Passwort eingegeben haben, sind wir nun als Benutzer "ark" im System unterwegs.
Jetzt erstellen wir die Ordner ARK, ARK-Backups, ARK-Staging und SavedArks.
mkdir -p ~/ARK/ShooterGame/Saved/SavedArks && mkdir ~/ARK-Backups && mkdir ~/ARK-Staging
Phase 2 - Installation der benötigten Programme:
Steam-CMD
Informationen zu SteamCMD
SteamCMD ist, einfach gesagt, der Steam-Client ohne GUI. Diesen benötigen wir, damit wir die benötigten Server-Dateien herunterladen können.
Als erstes müssen wir einen Ordner erstellen, welcher SteamCMD beherbergen wird:
mkdir ~/steamcmd
Dann wechseln wir in das eben erstellte Verzeichnis:
cd ~/steamcmd
Jetzt müssen wir das Paket herunterladen:
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
Und entpacken:
tar -xvzf steamcmd_linux.tar.gz
ARK Server-Tools
Informationen zum ARK Server-Tool
Das ARK Server-Tool ist ein sehr einfaches und nützliches Programm, welches die Verwaltung eines ARK-Servers und dessen Mods spürbar angenehmer macht.
Die benötigten Befehle sind sehr einfach zu merken und machen es daher spielend einfach einen Server zu warten.
ARK Server-Tool installieren:
curl -sL http://git.io/vtf5N | sudo bash -s <Benutzername des neu angelegten Benutzers>
Phase 3 - Server Installation:
Jetzt wird es Zeit, den Server zu installieren.
Wir haben alle notwendigen Schritte erledigt und kommen nun zum langweiligsten Punkt des Prozesses.
Das Herunterladen der Serverdateien kann, je nach Verbindung, eine ganze Weile dauern. Ich empfehle während der Wartezeit einfach etwas ARK - Survival Evolved zu spielen.
Wir starten nun SteamCMD:
cd ~/steamcmd
./steamcmd.sh
Dass SteamCMD erfolgreich gestartet ist, sehen wir am "Steam>" am Anfang der Zeile.
Nun müssen wir uns einloggen.
Es gibt hier 2 Möglichkeiten um sich mit Steam zu verbinden und die Dateien herunter zu laden.
Die Erste wäre, sich anonym zu verbinden, was aber beim späteren Download den Nachteil hat, dass nicht alle Dateien heruntergeladen werden.
Die Zweite wäre, dass man sich mit seinen eigenen Anmeldedaten anmeldet. Hier gibt es jedoch zu bemerken, dass Passwörter mit Sonderzeichen oft Probleme machen und man sich nicht einloggen kann. Also erst das Passwort ändern falls man Sonderzeichen drin hat. Die Two-Step Authentifizierung ist kein Problem, die Eingabe des Codes wird unterstützt.
Anonym anmelden:
login anonymous
Mit Benutzername anmelden:
login <Dein Benutzername>
Anmerkung:
Die Two-Factor-Authentifizierung wird von SteamCMD unterstützt, jedoch vom Server-Tool nicht. Will man die Updates über das Tool machen und dabei den Steam-Account benutzen, muss man die Authentifizierung deaktivieren!
Nach dem Login geben wir folgende Befehle, um die Serverdateien herunter zu laden, ein:
force_install_dir /home/ark/ARK
app_update 376030 validate
Wie bereits angemerkt, kann der Download etwas Zeit in Anspruch nehmen.
Nachdem die Dateien nun heruntergeladen wurden, können wir SteamCMD verlassen.
exit
Phase 4 - Konfiguration:
Jetzt geht es ans Eingemachte. Die Konfiguration des ARK Server Tools und des Servers.
Eigentlich sehr simpel, haben hier jedoch die Meisten ihre Probleme damit. Zugegeben, die ARK Server-Tool Konfigurationen können etwas irritierend sein, aber hier gilt wie immer, "Wer lesen kann ist klar im Vorteil!".
Natürlich gilt das nur, wenn man der englischen Sprache mächtig ist und versteht, was da geschrieben steht.
Es gibt beim ARK Server-Tool die Möglichkeit, alle relevanten Konfigurationen über die arkmanager.cfg, oder über die <instancename>.cfg zu spezifizieren. Ich empfehle jedoch den Weg über die GameUserSettings.ini, da man so einen besseren Überblick über alle Konfigurationsmöglichkeiten hat. Den Weg über die <instancename>.cfg empfehle ich nur, wenn man mehrere ARK-Server gleichzeitig betreibt und Serverspezifische Einstellungen tätigen will. Auf den Betrieb von mehreren Instanzen gehe ich hier nicht näher ein, das wird vielleicht das Thema eines anderen Tuts.
arkmanager.cfg:
nano /etc/arkmanager/arkmanager.cfg
Hier die arkmanager.cfg inklusive farbig hervorgehobener, empfohlener, Änderungen:
arkstChannel="master" # change it to a different branch to get non-stable versions
install_bindir="/usr/local/bin"
install_libexecdir="/usr/local/libexec/arkmanager"
install_datadir="/usr/local/share/arkmanager"
# config SteamCMD
steamcmdroot="/home/ark/steamcmd" # path of your steamcmd instance
steamcmdexec="steamcmd.sh" # name of steamcmd executable
steamcmd_user="ark" # name of the system user who own steamcmd folder
steamcmd_appinfocache="/home/ark/Steam/appcache/appinfo.vdf" # cache of the appinfo command
steamlogin="anonymous" # Uncomment this to specify steam login instead of using anonymous login <-- Benutzer, den das ARK Server-Tool für Updates nutzen soll. Entweder anonym oder Euren eigenen Benutzernamen verwenden.
# config environment
arkserverexec="ShooterGame/Binaries/Linux/ShooterGameServer" # name of ARK server executable
arkbackupdir="/home/ark/ARK-Backups" # path to backup directory
arkwarnminutes="60" # number of minutes to warn players when using update --warn
#arkautorestartfile="ShooterGame/Saved/.autorestart" # path to autorestart file <-- Hierzu werde ich euch am Ende des Tutorials noch eine Möglichkeit zeigen, wie ihr euren Server überwachen und gegebenenfalls automatisch neu starten lassen könnt.
arkAutoUpdateOnStart="false" # set this to true if you want to always update before startup
arkBackupPreUpdate="false" # set this to true if you want to perform a backup before updating
#arkStagingDir="/home/ark/ARK-Staging" # Uncomment to enable updates to be fully downloaded before restarting the server (reduces downtime while updating)
# Options to automatically remove old backups to keep backup size in check
# Each compressed backup is generally about 1-2MB in size.
arkMaxBackupSizeMB="500" # Set to automatically remove old backups when size exceeds this limit
#arkMaxBackupSizeGB="2" # Uncomment this and comment the above to specify the limit in whole GB
# Update warning messages
# Modify as desired, putting the %d replacement operator where the number belongs
#Für die, die die Meldungen gerne auf deutsch hätten.
msgWarnUpdateMinutes="Der ARK-Server wird für ein Update in %d Minuten heruntergefahren! Bitte verlasse den Server, um Fortschrittsverluste zu vermeiden!"
msgWarnUpdateSeconds="Der ARK-Server wird für ein Update in %d Sekunden heruntergefahren! Bitte verlassen den Server JETZT, um Fortschrittsverluste zu vermeiden!"
msgWarnRestartMinutes="Der ARK-Server wird in %d Minuten neu gestartet! Bitte verlasse den Server, um Fortschrittsverluste zu vermeiden!"
msgWarnRestartSeconds="Der ARK-Server wird in %d Sekunden neu gestartet! Bitte verlassen den Server JETZT, um Fortschrittsverluste zu vermeiden!"
msgWarnShutdownMinutes="Der ARK-Server wird in %d Minuten geschlossen! Bitte verlasse den Server, um Fortschrittsverluste zu vermeiden!"
msgWarnShutdownSeconds="Der ARK-Server wird in %d Sekunden geschlossen! Bitte verlassen den Server JETZT, um Fortschrittsverluste zu vermeiden!"
#Deutsch ENDE
#msgWarnUpdateMinutes="This ARK server will shutdown for an update in %d minutes"
#msgWarnUpdateSeconds="This ARK server will shutdown for an update in %d seconds"
#msgWarnRestartMinutes="This ARK server will shutdown for a restart in %d minutes"
#msgWarnRestartSeconds="This ARK server will shutdown for a restart in %d seconds"
#msgWarnShutdownMinutes="This ARK server will shutdown in %d minutes"
#msgWarnShutdownSeconds="This ARK server will shutdown in %d seconds"
# ARK server common options - use ark_<optionname>=<value>
# comment out these values if you want to define them
# inside your GameUserSettings.ini file
#serverMap="TheIsland" # server map (default TheIsland) <-- Wird in der main.cfg geändert.
#serverMapModId="469987622" # Uncomment this to specify the Map Mod Id (<fileid> in http://steamcommunity.com/sharedfiles/filedetails/?id=<fileid>)
#ark_TotalConversionMod="496735411" # Uncomment this to specify a total-conversion mod
#ark_RCONEnabled="True" # Enable RCON Protocol <-- Wird in der main.cfg geändert.
#ark_ServerPassword="" # ARK server password, empty: no password required to login <--- Schreiben wir in die GameUserSettings.ini
#ark_ServerAdminPassword="keyboardcat" # ARK server admin password, KEEP IT SAFE! <--- Schreiben wir in die GameUserSettings.ini
#ark_MaxPlayers="70" <--- Schreiben wir in die GameUserSettings.ini
#ark_GameModIds="487516323,487516324,487516325" # Uncomment to specify additional mods by Mod Id separated by commas
#ark_AltSaveDirectoryName="SotF" # Uncomment to specify a different save directory name
# ARK server flags - use arkflag_<optionname>=true
#arkflag_OnlyAdminRejoinAsSpectator=true # Uncomment to only allow admins to rejoin as spectator
#arkflag_DisableDeathSpectator=true # Uncomment to disable players from becoming spectators when they die
# ARK server options - i.e. for -optname=val, use arkopt_optname=val
#arkopt_StructureDestructionTag=DestroySwampSnowStructures
# config Service
logdir="/var/log/arktools" # Logs path (default /var/log/arktools)
# steamdb specific
appid=376030 # Linux server App ID
mod_appid=346110 # App ID for mods
# Mod OS Selection
mod_branch=Windows
# Add mod-specific OS selection below:
#mod_branch_496735411=Windows
# alternate configs
# example for config name "ark1":
#configfile_ark1="/path/to/config/file"
defaultinstance="main"
main.cfg
sudo nano /etc/arkmanager/instances/main.cfg
Hier die main.cfg inklusive farbig hervorgehobener, empfohlener, Änderungen:
# config environment
arkserverroot="/home/steam/ARK" # path of your ARK server files (default ~/ARK)
# ARK server options - use ark_<optionname>=<value>
# comment out these values if you want to define them
# inside your GameUserSettings.ini file
#serverMap="TheIsland" # server map (default TheIsland) <-- TheIsland ist Standard, will man "TheCenter", einfach das # vorne weg und "TheIsland" mit "TheCenter" ersetzen.
#serverMapModId="469987622" # Uncomment this to specify the Map Mod Id (<fileid> in http://steamcommunity.com/sharedfiles/filedetails/?id=<fileid>)
#ark_TotalConversionMod="496735411" # Uncomment this to specify a total-conversion mod
ark_RCONEnabled="True" # Enable RCON Protocol
ark_RCONPort="32330" # RCON Port
#ark_SessionName="ARK Server Tools" # if your session name needs special characters please use the .ini instead <--- Schreiben wir in die GameUserSettings.ini
ark_Port="7778" # ARK server port (default 7778)
ark_QueryPort="27015" # ARK query port (default 27015)
#ark_ServerPassword="" # ARK server password, empty: no password required to login <--- Schreiben wir in die GameUserSettings.ini
#ark_ServerAdminPassword="keyboardcat" # ARK server admin password, KEEP IT SAFE! <--- Schreiben wir in die GameUserSettings.ini
#ark_MaxPlayers="70" <--- Schreiben wir in die GameUserSettings.ini
#ark_GameModIds="487516323,487516324,487516325" # Uncomment to specify additional mods by Mod Id separated by commas
#ark_AltSaveDirectoryName="SotF" # Uncomment to specify a different save directory name
# ARK server flags - use arkflag_<optionname>=true
#arkflag_OnlyAdminRejoinAsSpectator=true # Uncomment to only allow admins to rejoin as spectator
#arkflag_DisableDeathSpectator=true # Uncomment to disable players from becoming spectators when they die
arkflag_UseBattlEye=true <-- Eintragen, wenn Ihr BattlEye nutzen wollt.
# ARK server options - i.e. for -optname=val, use arkopt_optname=val
#arkopt_StructureDestructionTag=DestroySwampSnowStructures
GameUserSettings.ini
sudo nano ~/ARK/ShooterGame/Saved/Config/Linux/UserGameSettings.ini
Hier zeige ich euch eine Standard-UserGameSettings.ini ohne irgendwelche Änderungen. Ich hebe die zu beachtenden Zeilen farbig hervor und werde dazu einen Kommentar verfassen.
Um die UserGameSettings.ini auf eure Bedürfnisse zuzuschneiden empfehle ich euch den arkforum.de-ini-Generator.
[/Script/ShooterGame.ShooterGameUserSettings]
MasterAudioVolume=1.000000
MusicAudioVolume=1.000000
SFXAudioVolume=1.000000
VoiceAudioVolume=1.000000
CameraShakeScale=1.000000
bFirstPersonRiding=False
bThirdPersonPlayer=False
bShowStatusNotificationMessages=True
TrueSkyQuality=0.000000
FOVMultiplier=1.000000
GroundClutterDensity=0.000000
bFilmGrain=False
bMotionBlur=False
bUseDFAO=False
bUseSSAO=False
bShowChatBox=True
bCameraViewBob=True
bInvertLookY=False
bFloatingNames=True
bChatBubbles=True
bHideServerInfo=False
bJoinNotifications=False
bCraftablesShowAllItems=True
bLocalInventoryShowAllItems=False
bRemoteInventoryShowAllItems=False
LookLeftRightSensitivity=1.000000
LookUpDownSensitivity=1.000000
GraphicsQuality=1
ActiveLingeringWorldTiles=6
ClientNetQuality=3
LastServerSearchType=0
LastServerSearchHideFull=False
LastServerSearchProtected=False
HideItemTextOverlay=False
bDistanceFieldShadowing=False
LODScalar=0.780000
bToggleToTalk=False
HighQualityMaterials=True
HighQualitySurfaces=True
bTemperatureF=False
bDisableTorporEffect=False
bChatShowSteamName=False
bChatShowTribeName=True
EmoteKeyBind1=0
EmoteKeyBind2=0
bNoBloodEffects=False
bLowQualityVFX=False
bSpectatorManualFloatingNames=False
bSuppressAdminIcon=False
bUseSimpleDistanceMovement=False
bDisableMeleeCameraSwingAnims=False
bUseVSync=False
MacroCtrl0=
MacroCtrl1=
MacroCtrl2=
MacroCtrl3=
MacroCtrl4=
MacroCtrl5=
MacroCtrl6=
MacroCtrl7=
MacroCtrl8=
MacroCtrl9=
ResolutionSizeX=1280
ResolutionSizeY=720
LastUserConfirmedResolutionSizeX=1280
LastUserConfirmedResolutionSizeY=720
WindowPosX=-1
WindowPosY=-1
bUseDesktopResolutionForFullscreen=False
FullscreenMode=2
LastConfirmedFullscreenMode=2
Version=5
[ScalabilityGroups]
sg.ResolutionQuality=100
sg.ViewDistanceQuality=3
sg.AntiAliasingQuality=3
sg.ShadowQuality=3
sg.PostProcessQuality=3
sg.TextureQuality=3
sg.EffectsQuality=3
sg.TrueSkyQuality=3
sg.GroundClutterQuality=3
sg.IBLQuality=1
sg.HeightFieldShadowQuality=3
#BEGINN DER SERVER-EINSTELLUNGEN
[ServerSettings]
allowThirdPersonPlayer=0
AllowCaveBuildingPvE=0
alwaysNotifyPlayerJoined=0
alwaysNotifyPlayerLeft=0
bAllowFlyerCarryPvE=0
bDisableStructureDecayPvE=0
DayCycleSpeedScale=1.00000
DayTimeSpeedScale=1.00000
NightTimeSpeedScale=1.00000
DinoCharacterFoodDrainMultiplier=1.00000
DinoCharacterHealthRecoveryMultiplier=1.00000
DinoCharacterStaminaDrainMultiplier=1.00000
DinoCountMultiplier=1.00000
DinoDamageMultiplier=1.00000
DinoResistanceMultiplier=1.00000
globalVoiceChat=0
HarvestAmountMultiplier=1.00000
HarvestHealthMultiplier=1.00000
MaxStructuresInRange=6700
noTributeDownloads=0
PreventDownloadSurvivors=0
PreventDownloadItems=0
PreventDownloadDinos=0
PlayerCharacterFoodDrainMultiplier=1.00000
PlayerCharacterHealthRecoveryMultiplier=1.00000
PlayerCharacterStaminaDrainMultiplier=1.00000
PlayerCharacterWaterDrainMultiplier=1.00000
PlayerDamageMultiplier=1.00000
PlayerResistanceMultiplier=1.00000
proximityChat=0
ResourceNoReplenishRadiusPlayers=1.00000
ResourceNoReplenishRadiusStructures=1.00000
ResourcesRespawnPeriodMultiplier=1.00000
ServerAdminPassword=PussyCat <--- Hier kommt das Server Admin Passwort rein! ACHTUNG! Keine Sonder- oder Leerzeichen verwenden, nur Buchstaben und Zahlen sind erlaubt!
ServerCrosshair=0
serverForceNoHud=0
serverHardcore=0
ServerPassword=BabyDoll <--- Hier kommt das Server Passwort rein! ACHTUNG! Keine Sonder- oder Leerzeichen verwenden, nur Buchstaben und Zahlen sind erlaubt!
serverPVE=0
ShowMapPlayerLocation=0
StructureDamageMultiplier=1.00000
StructureResistanceMultiplier=1.00000
TamedDinoDamageMultiplier=1.00000
TamedDinoResistanceMultiplier=1.00000
TamingSpeedMultiplier=1.00000
XPMultiplier=1.00000
EnablePVPGamma=0
EnablePVEGamma=0
SpectatorPassword=SuperSpy <--- Hier kommt das Spectator (Beobachter) Passwort rein! ACHTUNG! Keine Sonder- oder Leerzeichen verwenden, nur Buchstaben und Zahlen sind erlaubt!
DifficultyOffset=0.50000
PvEStructureDecayPeriodMultiplier=1.00000
PvEStructureDecayDestructionPeriod=1.00000
Banlist="http://playark.com/banlist.txt"
PvPStructureDecay=0
DisableDinoDecayPvE=0
PvEDinoDecayPeriodMultiplier=1.00000
AdminLogging=0
MaxTamedDinos=8000
MaxNumbersofPlayersInTribe=2
BattleNumOfTribestoStartGame=2
TimeToCollapseROD=100
BattleAutoStartGameInterval=100
BattleSuddenDeathInterval=300
KickIdlePlayersPeriod=1800
PerPlatformMaxStructuresMultiplier=1.00000
StructureDamageRepairCooldown=180
bForceAllStructureLocking=1
AutoDestroyOldStructuresMultiplier=0.00000
bUseVSync=0
MaxPlatformSaddleStructureLimit=100
bPassiveDefensesDamageRiderlessDinos=1
#RCONEnabled=True <--- Wird bereits in der main.cfg verwendet.
#RCONPort=27020 <--- Wird bereits in der main.cfg verwendet.
AutoSavePeriodMinutes=20 <--- Hier die Zeit für automatisches Speichern einstelen. Je höher die Abstände, desto gewaltiger der Lagg den es verursacht! (Empfohlen 5 Minuten)
RCONServerGameLogBuffer=600
OverrideStructurePlatformPrevention=0
bPreventOfflinePvP=1
PreventOfflinePvPInterval=60.0
bPvPDinoDecay=1
bPvPStructureDecay=1
NewMaxStructuresInRange=6700
ActiveMods=691627539,520953653,685171762 <--- Hier werden die zu aktivierenden Mods rein geschrieben. Die ID's bekommt ihr über den Steam Workshop.
[/script/engine.gamesession]
MaxPlayers=70
[SessionSettings]
SessionName=[EU] ARK Server-Tool Test Server <--- Hier dürfen auch Sonderzeichen verwendet werden.
[MessageOfTheDay]
Duration=15 <--- Anzeigezeit in Sekunden. Für die meisten Nachrichten genügen 15, aber versucht es einfach selbst.
Message=Hier kommen ein paar nette Worte für die Begrüßung rein...
# ENDE DER SERVEREINSTELLUNGEN
Phase 5 - Arkmanager und Mod Installation:
Als aller erstes müssen wir nun den Arkmanager installieren um diesen auch verwenden zu können. Wenn ihr bis hierher alles korrekt befolgt habt, dann sollte dies ohne Fehlermeldungen von Statten gehen.
Für die Installation geben wir folgendes in die Konsole ein:
arkmanager install
Nach der erfolgreichen Installation ist der Arkmanager bereits voll einsatzfähig. Mit den Befehlen arkmanager start, arkmanager stop oder arkmanager restart kann man den Server steuern.
Weitere Befehle findet ihr auf der Github-Seite des Programmierers.
Um Mods zu installieren muss man folgenden Befehl in die Konsole eingeben:
arkmanager installmod <Mod-ID>
Natürlich lassen sich Mods auch updaten, reinstallieren und deinstallieren. Mehr Informationen zu den dafür benötigten Befehlen findet Ihr auf der Github-Seite des Programmierers.
ACHTUNG! Die installierten Mods müssen erst in der UserGameSettings.ini unter "ActiveMods" eingetragen werden, ansonsten werden sie nicht geladen!
Phase 6 - Portfreigabe- Weiterleitung
Damit der Server auch in der offiziellen Serverliste aufscheint, benötigen wir eine Freigabe der Ports in unserer Firewall und eine Weiterleitung in unserem Modem.
Wenn die Weiterleitung nicht erfolgt, ist der Server nur über LAN bzw. Hamachi und Co. erreichbar.
Bei der Freigabe der Ports muss darauf geachtet werden, welche Ports in der main.cfg angegeben sind, bzw. welche Ports ihr rein geschrieben habt!
Firewall-Freigabe
Um die Ports freizugeben, muss folgendes in die Konsole eingegeben werden:
iptables -I INPUT -p udp --dport 27015 -j ACCEPT
iptables -I INPUT -p tcp --dport 27015 -j ACCEPT
iptables -I INPUT -p udp --dport 7778 -j ACCEPT
iptables -I INPUT -p tcp --dport 7778 -j ACCEPT
iptables -I INPUT -p tcp --dport 32330 -j ACCEPT
Port-Weiterleitung
Um die Ports über euer Modem weiterzuleiten, seht in die Betriebsanleitung des Herstellers, dessen Seite oder auf portforward.com.
Phase 7 - Autostart/Autorestart (OPTIONAL)
Wenn man auf Nummer sicher gehen will, dass der Server auch immer online sit, dann kommt man um das Thema Autostart- und Restart nicht herum.
Ich werde euch hier je eine Möglichkeit pro Funktion zeigen, für mehr oder andere bemüht bitte die Suchmaschine eures Vertrauens.
Autostart-Ubuntu Desktop
Öffnet die Suche und gebt "Startprogramme" in ein und öffnet es.
Dort geht ihr dann auf "Hinzufügen" und schreibt folgendes hinein:
Name: ARK-Manager (oder was auch immer)
Befehl: arkmanager start
Kommentar: bla bla bla (oder was auch immer)
Speichern und fertig.
Der Server sollte nun immer beim Starten des Rechners ebenfalls hoch fahren.
Autostart-Ubuntu Server/Desktop
Um auf dem Ubuntu Server ein Script automatisch beim Start auszuführen muss man in die Datei /etc/rc.local eine kurze Zeile einfügen und schon startet das Programm von selbst.
Erst rufen wir den Editor auf:
sudo nano /etc/rc.local
Dann setzen wir folgende Zeile vor exit 0 ein:
/usr/local/bin/arkmanager start
Der Arkmanager wird nun bei jedem Systemstart automatisch gestartet und mit ihm auch der ARK-Server.
Autorestart bei Servercrash
Hierfür müssen wir ein paar Dateien erstellen.
Danach wird der Serverprozess überwacht und bei einem Crash des Servers selbiger automatisch wieder hoch gefahren.
Wir erstellen zunächst eine Datei mit dem Namen ark-watchdog im Ordner ~/ARK/ShooterGame/Binaries:
nano ~/ARK/ShooterGame/Binaries/ark-watchdog
In diese Datei schreiben wir folgendes hinein:
#!/bin/bash
while true
do
if [ ! `pgrep ShooterGameServer` ] ; then
/usr/bin/ark-restart.sh
fi
sleep 30
done
Nun benötigen wir eine Datei mit dem Namen ark-restart.sh im Ordner ~/ARK/ShooterGame/Binaries:
nano ~/ARK/ShooterGame/Binaries/ark-restart.sh
In diese Datei schreiben wir folgendes hinein:
cd /usr/local/bin
./arkmanager restart
Nun müssen wir noch eine Verknüpfung unserer ark-restart.sh in den Ordner /usr/bin legen:
sudo ln -s ~/ARK/ShooterGame/Binaries/ark-restart.sh /usr/bin/
Sollte der Server jetzt crashen, wird ARK-Manager automatisch neu gestartet und somit auch der Server.
Bei mehreren Server-Instanzen muss für jede Instanz ein angepasstes Script erstelt werden!
Phase 8 - Spaß haben!
Ich hoffe, ich konnte dem Einen oder Anderen unter euch mit diesem Tutorial weiterhelfen. Ich stehe natürlich für Fragen gerne zur Verfügung.
X00LA
Referenzen:
Official ARK-Survival Evolved Wiki - Dedicated Server Setup
Official SteamCMD Instructions
FezVrasta's - ark-server-tools Github-Page
Ubuntu Forums
Ubuntu Wiki