Valheim Dedicated Server auf Linux mit SteamCMD
Der Daniel zockt
Mich hat ja aktuell auch das Valheim Fieber gepackt. Und weil ich solche Spiele lieber "zusammen" als alleine Spiele, hab ich gleich einen Dedicated Server aufgesetzt, um mit Freunden zusammen Vikinger spielen zu können.
Mein Setup:
- 2 Cores
- 8GB Ram (die braucht Valheim auch)
- 1 GB freier Speicherplatz
- Debian
- VServer bei Bero-Host
Wie fangen wir an? Mit der SteamCMD. Dafür legen wir einen User an
useradd -m steam
Gehen in sein Homverzeichnis
cd /home/steam
Und installieren SteamCMD vom Repo
sudo apt install steamcmd
Dann noch die steamcmd verlinken
ln -s /usr/games/steamcmd steamcmd
Jetzt legen wir ein Verzeichnis für Valheim an:
cd /home/steam mkdir Valheim
Und installieren den Dedicated Server:
/home/steam/.steam/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/steam/Valheim +app_update 896660 validate +exit
Sobald das abgeschlossen ist gehen wir in das Valheim Verzeichnis
cd Valheim
Und machen eine Kopie von der Startdatei. Dies wird Explizit empfohlen, damit bei Updates die eigenen Einstellungen nicht überbügelt werden.
cp start_server.sh start_valheimserver.sh
Die genannten Einstellungen passen wir jetzt auch an:
nano start_valheimserver.sh
Und finden dort die Konfig vor, die wir sogleich anpassen:
#!/bin/bash
export templdpath=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH
export SteamAppId=892970# Tip: Make a local copy of this script to avoid it being overwritten by steam.
# NOTE: Minimum password length is 5 characters & Password cant be in the server name.
# NOTE: You need to make sure the ports 2456-2458 is being forwarded to your server through your local router & firewall.
/home/steam/.steam/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/daniel/.steam/steamapps/common/'Valheim dedicated server' +app_update 896660 +quit./valheim_server.x86_64 -name "DEIN SERVERNAME" -port 2456 -world "Dedicated" -password "DEIN PASSWORT" -public 1 > /dev/null &
export LD_LIBRARY_PATH=$templdpath
echo "Server started"
echo ""
#read -p "Press RETURN to stop server"
#echo 1 > server_exit.drp#echo "Server exit signal set"
#echo "You can now close this terminal"while :
do
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
echo "valheim.service: timestamp ${TIMESTAMP}"
sleep 60
done
Logischerweise "DEIN SERVERNAME" und "DEIN PASSWORT" selber ausdenken.
Falls du einen Publicserver erstellen willst, lass das Passwort weg. Falls du nicht willst, dass dein Server in der Serverübersicht gefunden werden kann, ändere -public auf 0.
Jetzt wollen wir noch, dass der Valheim Server als Service startet. Wenn zB mal rebootet wird.
nano valheim.service
Dort fügen wir ein:
[Unit]
Description=Valheim service
Wants=network.target
After=syslog.target network-online.target
[Service]
Type=simple
Restart=on-failure
RestartSec=10
User=username
WorkingDirectory=/home/steam/Valheim
ExecStart=/home/steam/Valheim/start_valheimserver.sh
[Install]
WantedBy=multi-user.target
Und speichern das Ganze. Im näcshten Schritt registrieren wir den Service:
sudo cp valheim.service /etc/systemd/system
sudo systemctl daemon-reload
sudo systemctl start valheim
Dann können wir als nächstes den Status überprüfen:
sudo systemctl status valheim
Wenn das geklappt hat, richten wir noch den Autostart ein:
sudo systemctl enable valheim.service
Und Bäm fertig.
Ab und an kommt es vor, das ich mich nicht mehr connecten kann. Ist ja auch early access. Dann stoppe ich den Valheim service mit
sudo systemctl stop valheim
Warte kurz und starte dann wieder.
sudo systemctl start valheim
Als nächstes, wollen wir selbst ja Admin sein, also im Spiel. Dazu brauchen wir unsere SteamID.
Steam: Account Details -> Unter dem Steam Account Namen
Und wandeln die in eine steamID64 Dec um, mit: https://steamidfinder.com/
Jetzt fügen wir diese ID in folgende die adminlist ein:
nano /.config/unity3d/IronGate/Valheim/adminlist.txt
Jetzt können wir im Spiel selbst folgende Kommandos ausführen:
Befehl | Beschreibung |
---|---|
help | Auflistung alles Commands |
kick [name/ip/userID] |
Kickt den Spieler |
ban [name/ip/userID] |
Bant den Spieler |
unban [ip/userID] |
Unbant den Spieler |
banned | Zeigt die Liste aller gebannten Spieler |
ping | Pingt den Server |
lodbias [number] |
Setzt den "lod bias", die Entfernung ab welcher hoch aufgelöst gerendert wird. Der default ist "1.5" (wir haben da aber keine riesen Utnerschiede bemerkt) |
info | Zeigt die system info |
save | Macht ein world save |
Apropos Save: Das Savegame befindet sich unter:
/home/steam/.config/unity3d/IronGate/Valheim/worlds/
Falls du Sicherheitskopien erzeugen willst, oder gegen deinen Lokalen Spielstand tauschen willst.
Also legt los und viel Spaß!
Falls dir diese Anleitung etwas gebracht hat und du danke sagen willst, kannst du gern für meinen Valheim Server spenden:
https://bero-host.de/spenden/qstleikmalhp
Vielen Dank!