HOME

Seven days to die: Serversetup


NIEMALS die (Haupt) Steam-Account Zugangsdaten verwenden!
Lieber einen neuen Steam-Account nur für den Server erstellen!

Wird steamcmd gestartet loggt man sich in der Regel ein mit seinem Usernamen und Passwort.

login anonymous
force_install_dir /home/7d2d-srv/7d2d/ app_update 294420 -beta latest_experimental validate quit

Firewallregeln für root(setufw.sh):

#!/bin/bash
echo "Easy setup for ufw(universal firewall)"
echo
echo "Disableling firewall"
ufw disable
echo "Forcing reset of firewall"
ufw --force reset
ufw default deny incoming
ufw default allow outgoing
echo "Allow OpenSSH"
ufw allow OpenSSH
echo "Allow Steam dedicated server ports.."
#web access to 7d2d http-console
ufw allow 8080/tcp
# Dedicated server visible to steam network(26900 UDP):
ufw allow 26900/udp
ufw allow 26900/tcp
ufw allow 26902/udp
# Dedicated server
ufw allow 27015/udp
ufw allow 27020/udp
ufw allow 7777/udp
ufw allow 7778/udp
ufw allow 8888/udp
ufw --force enable
echo
ufw status verbose


Telnet Zugang zum Server

Via SSH(putty) Zugriff auf den(laufenden) Server nehmen um dort die "Konsolenbefehle" eingeben zu können(verlassen mit exit):
# telnet localhost 8081

Nach einer Neuinstallation hat der eigene Charakter natürlich keine Admin-Rechte.. doch wie bekommt man die als Serverbesitzer?
Zuerst gibt man dem eigenen Charakter eine höhere "Wertung"(0=ADMIN, je höher der Wert umso NIEDRIEGER sind die Rechte..):
admin add <Playername> <permissionlevel> <Optional Name>
admin add DHLF 1

Das reicht aber noch nicht denn ein cp list zeigt KEINE Admin-Befehle an..
Man muss also die gewünschten Adminbefehle auf das eigene Level ändern:
cp add cp 1 (sieht bescheuert aus.. aber fügt(ändert!!) den cp-Befehl auf Stufe 1 hinzu).
Ab jetzt kann der Spieler auch INGAME weitere Befehle freigeben.

Ganz wichtig sind:
cp add dm 1 (debug-Mode=Fliegen, Clipping und vor allem TELEPORTATION :)
cp add cm 1 (creative-Mode=Unmengen an Teilen zum freien Bauen :)
admin add Suiko 500 Babe (wobei Babe nur in der Admin list auftaucht)
admin add DHLF 0 (ALLE Befehle verfügbar aber dafür auch ein STERN im Namen..)
admin list (Zeigt alle Admins an)
cp list(command permission: zeigt Befehle und deren (geänderte) Permissions an)
lp (ListPlayer: Auflistung alle Spieler die gerade auf dem Server sind)
shutdown

Item Ids

Munition Bücher Kleidung Fallen
Behälter Nahrung Medizin Landwirtschaft
Waffen Werkzeug Nahkampf

via serverconsole:
giveself drinkJarGrandpasForgettingElixir

Wichtig für Einstellungen


Bei manueller Prüfung auf Updates wird der Zusatz "validate" alle Serverdateien mit den originalen überschreiben.
Auch die /7d2d/serverconfig.xml wird mit den default-Werten überschrieben(bei einem VERSIONSSPRUNG!), erkennbar am verändertem Datumsstempel.
Hierbei ist es sinnvoll die Einträge beider Dateien(einer Kopie und dem Original zu vergleichen und anzupassen!)
?Beim nächsten Serverstart ist dann natürlich auch die ursprüngliche Welt weg?

Daher: VOR dem ersten Serverstart die serverconfig.xml kopieren und die Kopie dann meineconfig.xml oder sonstwie benennen.
Beim startscript/whatever dann den Namen anpassen!

Spieler vom Server löschen

Bevor man einen Spieler vom Server "putzt" unbedingt die Geländeblöcke/Betten entfernen. Beim nächsten Besuch des Servers(mit einer neuen Spielfigur aber der selben Steam-ID) werden sonst immer noch deren Positionen angezeigt.
Vielleicht ein paar gute Orte aufschreiben? Händler, andere Spieler, gute Lootgegenden..
Hat man zufälligerweise vom Admin die Rechte für Teleportation erhalten muss man die NOSW-Koordinaten etwas umrechnen(Koordinatensystem Nord+Ost positiv, West und Süd negativ)
Koordinaten nach Karte: 300 Ost/1360 Süd das müsste man also so eingeben: teleport 300 -1360

Sicherstellen, das KEIN User mehr auf dem Server ist(ausser dem zu löschenden User) und dann bei der eigenen Base irgendwas verändern. Einen Stein setzen oder zerstören.

Der Ordner "East Soira County" wurde vom Spiel benannt und "Dullville" von mir in der serverconfig.xml vorgegeben. Die Ordner werden also auf jedem Server ANDERS heißen!
Auf dem Server unter ~/.local/share/7DaysToDie/Saves/East Soira County/Dullville/Region die zuletzt geänderten Dateien beobachten.
Gibt es deren mehrere den Server verlassen, neu betreten und erneut einen Stein setzen/zerstören. Bei mir war r.0.-3.7rg passend(zu den Koordinaten).

Wenn man eine Region löscht.. wird deren Ursprungszustand wiederhergestellt: Vormals geplünderte/zerstörte Gebäude stehen wieder mit Loot bereit.
Auch die Basis des Users ist dann komplett verschwunden :)

Server herunterfahren(den Gameserver, nicht den *ganzen* Server!)

Unter ~/.local/share/7DaysToDie/Saves/East Soira County/Dullville/Player die Dateien mit der PASSENDEN SteamUserId löschen.
Hilfreich ist ein Blick in die *.ttp Datei um sich vom richtigen Steam-Usernamen zu überzeugen.
Es gibt MEHRERE Dateien, einmal die aufgedeckte Karte(*.map) und zweimal die Userdatei (*.ttp und *.ttp.bak) diese löschen und den Game-Server wieder starten.

Damit ist aller Fortschritt des Users WEG.

Bevor man aber nun wirklich *neu* starten kann.. müssen noch lokale Dateien gelöscht werden.
Denn.. auch wenn das Inventar leer und der Fortschritt weg ist.. die Karte hat IMMER noch alle besuchten Gegenden aufgedeckt. Seltsam..
Sinnigerweise ist der LOKALE Pfad ähnlich wie der auf dem Server:
~/.local/share/7DaysToDie/SavesLocal/wirreBuchstaben/
Anhand der Datei hosts.txt kann man prüfen ob man den richtigen Server erwischt hat.
Man kann den ganzen Ordner löschen. Solange man in der serverconfig.xml PersistentPlayerProfiles auf "true" setzt.. wird immer die Figur gewählt mit der man den Server das erste Mal betreten hat.

Beim Versuch wieder den Server zu betreten wird zuerst die komplette Welt heruntergeladen.. dtm_processed.raw?

Herumpfuschen an den Serverfiles

Keine Auswirkungen wenn man außer der serverconfig.xml andere Dateien verändert.(Ausnahme: Weltdaten, NICHT ändern!!)
Das kommt daher weil die Dateien unter /.local/share/7DaysToDie/Saves/IRGENDEINCOUNTY/WELTNAME/ConfigsDump/ bei jedem Serverstart NEU geschrieben werden!
Verbindet sich ein Client mit dem Server werden die Einstellungen(und auch durch Mods veränderte Werte) an den Client übertragen.
In lokalen (Single) Spielen mag die Änderung der einzelnen *.xml Auswirkungen haben, bei serverbasierenden Multiplayer.. wohl eher nicht.

Siehe Sever und Mods@gamepedia.de

Änderungen an den Serverdateien MÜSSEN in einem speziellen Format unter "Mods" eingefügt werden.
Hierzu in dem SERVER-Verzeichnis ~/7d2d/(also /home/irgendeinusername/7d2d/) den Ordner "Mods" erstellen(falls noch nicht vorhanden)
Dort einen weiteren Unterordner erstellen.. wie z.B. DHLF's-megamod:
/7d2d/
/7d2d/Mods

Mods

Ein Mod besteht aus einem Order mit einem einigermaßen passendem Namen, einer beschreibenden Datei ModInfo.xml, einem weiteren Unterordner namens Config und dort die Modifikationen in einer oder mehreren Dateien:
/7d2d/Mods/DHLF's-megamod/
/7d2d/Mods/DHLF's-megamod/ModInfo.xml
/7d2d/Mods/DHLF's-megamod/Config/
/7d2d/Mods/DHLF's-megamod/Config/whatever.xml

Um die grobe Vorgehensweise beim Modden zu verstehen: Das Spiel sucht beim Start nach Ordnern im Verzeichnis "Mods".
Findet es welche werden die Unterordner durchwühlt und erkannte Änderungen angewendet, dann die *neuen* Konfigurationen(*.xml) sowohl serverseitig NEU geschrieben, als auch bei jeder Verbindung an die Spieler verteilt.

Die Unterordner im Mod-Verzeichnis können frei benannt werden. Dennoch sollte eine gewisse Struktur erhalten bleiben:
Die einzige Datei im "obersten" Ordner vom "megamod" ist die ModInfo.xml, die genau definiert beschreibt, worum dieser Mod eigentlich handelt und wer ihn verbrochen hat:
Beispielinhalt für /7d2d/Mods/DHLF's-megamod/ModInfo.xml:

<?xml version="1.0" encoding="UTF-8" ?> <xml> <ModInfo> <Name value="DHLFS Test Mod" /> <Description value="Just a test how stuff works." /> <Author value="DHLF" /> <Version value="1.0.0" /> </ModInfo> </xml>

Die einzelnen Angaben sind wohl selbsterklärend

Nun die Datei /7d2d/Mods/DHLF's-megamod/Config/items.xml
Den Namen habe ich mir nicht ausgedacht, der muss so sein!
Warum und wo bekommt man denn all die *richtigen* Dateinamen her?
Vom Server im Verzeichnis ~/7d2d/Data/Config
Hier muss man allen Ernstes!! sich die richtige *.xml Datei durchsuchen!!

Beispiel:
Es soll die Stack-Größe von Eisenschrott verändert werden(von 6000 auf 6001) um zu sehen, ob das überhaupt funktioniert.
Dazu die Datei ~/7d2d/Data/Config/items.xml durchsuchen(am Besten nach dem ursprünglichen Wert 6000 suchen, Iron kommt zu oft vor)
Momentan lautet der richtige "Name" dafür: resourceScrapIron, wie man vielleicht noch sehen kann hieß das Zeug früher IronFragment.

Da wir auf dem Server die richtige Datei gefunden haben, muss unsere Ziel-Datei in unserem Mod den selben Namen tragen: items.xml
Aus dem Dateinamen(items.xml), dem "item name"(resourceScrapIron) basteln wir uns den Befehl:
Alles zusammen ergibt dann für die unsere items.xml(im Mod-Unterordner Config):

<configs> <set xpath="/items/item[@name='resourceScrapIron']/property[@name='Stacknumber']/@value">6001</set> <!-- Default 6000 --> </configs>


Die Hochkommas bei beiden @name= sind wichtig. Fehlen sie wird diese Modifikation schlicht ignoriert!
Selbes gilt für abweichende Schreibweise(groß/klein)!

Modforum@7daystodie.com

Für Mods beachten:

Backpack Mod

Khaines Backpack-Mod@github(a19 download) Zip-Datei heruntergeladen und im Ordner ~/7d2d/Mods entpackt (ordner über Congig/Modinfo ), neugestartet..
Schick gemachte Erweiterung, die 60 Inventarplätze im Rucksack bietet :)


Diese Seite wurde zuletzt am 17.06.2023 um 11:14 geändert.

(c) 2024 DHLF ☮🇺🇦