# Anleitung: Dont Starve Together-Server auf unserem NUC-GameServer einrichten
Diese Anleitung führt dich Schritt für Schritt durch den Prozess der Einrichtung eines Dont Starve Together-Servers auf dem NUC-GameServer.
Bei fragen gerne immer Alex oder jemand anderen Admin-fähiges fragen.
---
## Schritt 1: Entscheiden, welche Art Server man aufbauen will (Vanilla oder Modded)
Bevor du loslegst, musst du entscheiden, ob du einen **Vanilla-Server** (unmodifizierte Version) oder einen **modded Server** (mit Modifikationen) einrichten möchtest.
> **Tipp:** Vanilla-Server eignen sich für einfache Multiplayer-Erlebnisse ohne zusätzliche Modifikationen, während modded Server eine Vielzahl von neuen Funktionen und Inhalten bieten.
---
## Schritt 2: Basis Dedicated Server Daten beschaffen/kopieren
Spielbare Welten in DST werden "Shards" genannt. Üblicherweise besteht eine "komplette" Welt aus einem Overworld- und einem Cave-Shard. Aber das ist nicht festgelegt. Theoretisch können Overworlds und Caves beliebig miteinander verwoben werden (Multi-Overworld oder Multi-Caves Welt). Je Shard wird immer ein Server-Prozess gestartet.
In Steam kann man einfach den "Dont Starve Together Dedicated Server" Installieren und einmal starten. Dadurch wird im Installationsverzeichnis des Dedicated Servers zwei Template Shard-Ordner erstellt.
Der einfachheit halber, ist unserem Dont Starve Together Server-Root Ordner (C:\Users\4lexK\Desktop\GameServers\Dont Starve\Template Folders for new Servers) genau diese Template Ordner bereits enthalten.
Nachdem du die Server-Ordner extrahiert/aus den Templates kopiert hat, müssen diese in einen neuen Ordner im Dont Starve Together Root Ordner auf deinem NUC-GameServer entpackt werden.
Wir haben einen Telegram-Bot, welcher das Ansteuern und Verwalten der GameServer übernimmt.
Der Bot ist unter folgendem Username zu erreichen.
@sander_nuc_morroc_bot
Bei erstem Kontakt (oder dem /start Befehl) wird man nach einem Passwort gefragt.
Dieses lautet:
29102021
Um die Funktionen und den Menu-Eintrag beim Bot korrekt einzufügen muss man eine Anpassung an unserem Osiris_listener Git-Repo (https://sandergit.iamsander.de/Alex/osiris_listener).
Hier gibt es das Skript osiris_listener_telegram.py
In diesem Skript müssen folgende Anpassungen gemacht werden:
- profile_id -> Wird genutzt in diversen Mechaniken
- server_name -> Wird genutzt in Status-Nachrichten
- directory -> Zeigt immer auf den Root-Ordner des Servers
- command -> Liste aus Command und Parametern (siehe etwaige Launch-Skripte oder auf der Seite des Server-File Providers welche Params empfohlen werden)
- wait_time -> Rudimentäre Schätzung wie lange das Skript warten soll wenn ein Server seinen SIGINT (CTRL-C) erhalten hat und sich vollständig heruntergefahren hat
> Beispiel:
Falls beim Server-Zip ein Launchskript (.bat oder .sh File) enthalten ist, kann das direkt benutzt werden um start-Parameter für diese Zeilen zu extrahieren.
2. Hinzufügen von einem Untermenü für den Telegram Bot
Hierzu kann an den restlichen nested Menüs nach Beispielen für Optionen gesucht werden.
Jedes Menü (z.b. tools_menu) enthält Listen von Buttons mit Daten. Diese Daten enthalten immer "text" -> Der Text im Button und "callback_data" -> eine ID zur Verarbeitung der Logik.
3. In der Funktion handle_callback werden die callback_data IDs verarbeitet:
Zu beachten ist, dass jede Message awaited werden muss.
## Step 6 Testen
Hierbei werden die neuen Infos getestet (via Code und via Bot) um sicher zu stellen, dass alles mit Rechten Dingen zugeht.
> **Notiz**:
Nie eine Funktion/Button einbauen der Pauschal alle GameServer / große Mengen der Server Started. Der Rechner wird mit ziemlicher Sicherheit in die Knie gehen.