Zum Inhalt springen

So fügst du Mods zu deinem Soldat 2 Server hinzu

Soldat 2 hat keinen Workshop und kein Mod-Paketformat. Stattdessen liegt praktisch alles, was das Spiel ausmacht, als einzelne Datei im Serververzeichnis – Karten, Spielmodi, Modifier, Kartenrotationen und Skripte. Du lädst sie per SFTP hoch und bindest sie über die Konfiguration oder die Konsole ein.

Achtung

Ob eigene Karten, Modifier und Skripte automatisch an deine Mitspieler übertragen werden, ist nicht dokumentiert. Gib die Dateien, die du auf den Server lädst, deshalb sicherheitshalber auch direkt an deine Mitspieler weiter – so hat jeder denselben Stand.

Die Ordnerstruktur

Alle Ordner liegen im Hauptverzeichnis deines Servers:

OrdnerInhalt
Levels/Karten als JSON-Dateien, jeweils in einem eigenen Unterordner
Modifiers/Custom/Modifier – verändern Objekte, Waffenwerte und Spielparameter
Rules/Custom/Spielmodi und Rundenregeln
Scripts/Custom/Eigene C#-Skripte
Cycles/Custom/Kartenrotationen

Hinweis

Karten liegen bei Soldat 2 als .json-Datei vor – nicht als .pms wie beim ersten Soldat. Dateien aus dem Vorgänger funktionieren hier nicht.

Eigene Karten hinzufügen

  1. Karte herunterladen
    Lade die gewünschte Karte herunter. Eine große Sammlung findest du unter tms2.jrgp.org.

  2. Server stoppen
    Stoppe deinen Server über die Verwaltung.

  3. Karte hochladen
    Lade die Karte per SFTP in einen Unterordner von Levels/ hoch – so, wie die Karte ausgeliefert wird:

    Levels/<Ordner>/<Kartenname>.json
  4. Server starten
    Starte deinen Server.

  5. Karte laden
    Öffne im Spiel die Konsole und lade die Karte mit einem Spielmodus – der Spielmodus heißt genauso wie die zugehörige Datei in Rules/:

    rcon loadmap dm_epitaph Deathmatch

Achtung

Der Kartenname wird ohne Pfad und ohne die Endung .json angegeben. Die Schreibweise unterscheidet Groß- und Kleinschreibung – auf deinem Linux-Server ist das entscheidend. Welche Karten der Server kennt, zeigt dir rcon listmaps.

Modifier hinzufügen

Modifier sind der schnellste Weg, das Spielgeschehen zu verändern: Sie überschreiben Werte von Objekten, Waffen und Spielparametern.

  1. Server stoppen
    Stoppe deinen Server über die Verwaltung.

  2. Vorlage ansehen
    Öffne per SFTP die Datei Modifiers/_default.json. Sie enthält alle Standardwerte und dient als Nachschlagewerk – bearbeite sie nicht.

  3. Eigenen Modifier anlegen
    Lege eine neue Datei an:

    Modifiers/Custom/MeinModifier.json
  4. Werte eintragen
    Trage nur die Werte ein, die du ändern möchtest. Die Parameter stehen im Abschnitt "Objects". Alles, was du nicht angibst, bleibt auf dem Standardwert.

  5. Server starten
    Speichere die Datei und starte deinen Server.

  6. Modifier aktivieren
    Öffne die Konsole und aktiviere den Modifier über seinen Dateinamen ohne .json:

    rcon addmodifier MeinModifier
    rcon restart

Listen erweitern statt ersetzen

Bei Werten, die eine Liste enthalten, kannst du gezielt ergänzen oder entfernen, statt die ganze Liste neu zu schreiben: Ein vorangestelltes + fügt einen Eintrag hinzu, ein - entfernt ihn.

Achtung

rcon addmodifier wirkt erst nach einem rcon restart der Runde. Mit rcon removemodifier <Name> schaltest du einen Modifier wieder ab.

Eigene Spielmodi über Regeldateien

Spielmodi und Rundenregeln liegen als JSON-Datei unter Rules/Custom/. Darüber steuerst du zum Beispiel, wie lang eine Runde dauert und wie viele Punkte zum Sieg nötig sind:

SchlüsselBedeutung
Match.MatchSecsRundendauer in Sekunden
Match.ScoreLimitPunktelimit, ab dem die Runde endet
GameScriptName des C#-Skripts, das für diesen Spielmodus geladen wird
  1. Server stoppen
    Stoppe deinen Server über die Verwaltung.

  2. Regeldatei anlegen
    Kopiere dir eine vorhandene Datei aus Rules/ als Vorlage und lege sie unter neuem Namen ab:

    Rules/Custom/MeinModus.json
  3. Werte anpassen
    Passe die gewünschten Werte an.

  4. Modus einbinden
    Damit dein Modus gespielt wird, trägst du seinen Dateinamen ohne .json in deiner Kartenrotation unter "Rules" ein – siehe Kartenrotation einrichten.

  5. Server starten
    Speichere die Datei und starte deinen Server.

Tipp

Einzelne Regelwerte kannst du auch im laufenden Betrieb testen, ohne den Server zu stoppen:

rcon set Match.MinimumPlayers 4

Solche Änderungen gelten nur für die laufende Sitzung.

Eigene Skripte einbinden

Für eigene Spiellogik bringt Soldat 2 ein C#-Skriptsystem mit.

  1. Server stoppen
    Stoppe deinen Server über die Verwaltung.

  2. Skript hochladen
    Lade deine .cs-Datei per SFTP hoch:

    Scripts/Custom/MeinSkript.cs
  3. Skript einbinden
    Trage das Skript über den Schlüssel GameScript in einer Regeldatei unter Rules/Custom/ ein. Alternativ bindest du es über einen Modifier ein.

  4. Server starten
    Starte deinen Server und prüfe in der Serverkonsole der Verwaltung, ob das Skript fehlerfrei kompiliert wurde.

Tipp

Änderst du ein Skript, musst du den Server nicht neu starten. Mit folgendem Befehl kompiliert der Server alle Skripte neu:

rcon reload

Wichtig

Skripte laufen mit den Rechten deines Servers. Installiere nur Skripte aus Quellen, denen du vertraust.

Kartenrotation einrichten

Eine Kartenrotation legst du als Cycle-Datei an. Der Server arbeitet die darin aufgeführten Runden nacheinander ab.

  1. Server stoppen
    Stoppe deinen Server über die Verwaltung.

  2. Cycle-Datei anlegen
    Kopiere dir eine vorhandene Datei aus Cycles/ als Vorlage und lege sie unter neuem Namen ab:

    Cycles/Custom/MeineRotation.json
  3. Runden eintragen
    Jede Runde besteht aus einem Spielmodus ("Rules") und einer Karte ("Level") – beide ohne Dateiendung:

    [{
      "Rules": "Deathmatch",
      "Level": "dm_epitaph"
    }]
  4. Rotation aktivieren
    Trage in der autoconfig.ini folgende Werte ein:

    GamesCycleFile=Cycles/Custom/MeineRotation.json
    UseLobby=False
    AllowVoting=False
  5. Server starten
    Speichere die Datei und starte deinen Server.

Achtung

Ohne UseLobby=False und AllowVoting=False übersteuern Lobby und Spielerabstimmung deine Rotation – der Server springt dann auf andere Karten, als in der Cycle-Datei stehen.

Tipp

Eine Rotation lässt sich auch im laufenden Betrieb laden:

rcon loadcycle Cycles/Custom/MeineRotation.json

Befehle im laufenden Betrieb

BefehlBeschreibung
rcon listmapsVerfügbare Karten anzeigen
rcon loadmap <mapname> <gamemode>Karte mit einem Spielmodus laden
rcon nextmapZur nächsten Karte wechseln
rcon addmodifier <Name>Modifier aktivieren
rcon removemodifier <Name>Modifier deaktivieren
rcon restartRunde neu starten – nötig, damit ein Modifier greift
rcon loadcycle <Datei>Kartenrotation laden
rcon reloadSkripte neu kompilieren

Änderungen an der autoconfig.ini

Wichtig

Die autoconfig.ini wird beim Stoppen des Servers komplett neu geschrieben. Änderungen, die du bei laufendem Server in die Datei schreibst, gehen dabei verloren. Bearbeite die Datei deshalb ausschließlich, wenn der Server gestoppt ist.

Achtung

Die Werte Name, Port, WebSocketsPort, WebSocketsRconPort, RconPassword, MaxPlayers, GreetMessage, AdminPlayfabId und ServerPassword werden bei jedem Serverstart aus der Verwaltung in die autoconfig.ini geschrieben. Diese Werte gehören deshalb in die Verwaltung und nicht in die Datei.

Tipp

Sichere deine Konfiguration und deine eigenen Inhalte, bevor du größere Änderungen vornimmst: Backup erstellen.