Eigene Szenarien erstellen/bearbeiten (Tutorial)


Abonniere unseren Kanal auf WhatsApp (klicke hier zum abonnieren).
  • Hallo Zusammen,


    vor einigen Tagen habe ich mir SimRail zugelegt und bin begeistert, nachdem mich die Demo noch nicht wirklich abholen konnte. Der Realismus und die Funktionen die hier zu finden sind haben in meinen Augen viel Potential. Der Singleplayer bietet aber leider noch recht wenig Szenarien, während es im Multiplayer für alle Lokomotiven entsprechende Aufgaben gibt. Da es noch keinen (Szenario) Editor gibt dachte ich mir, dass ich mir mal die Struktur der Dateien der Szenarien anschaue, um so vielleicht eigene Szenarien erstellen zu können. Vorab sei gesagt, dass ich keine herausragenden Programmierkenntnisse oder ähnliches besitze. Dennoch gelang es mir:


    - Züge auszutauschen

    - Vorhandene Szenarien mit anderen Zügen neu zu erstellen

    - Fahrpläne zu erstellen

    - Erstellen eines neuen Szenarios mit bestimmter Lokomotive an einem gewünschten Startpunkt und funktionierendem Fahrplan.


    Was mir bis jetzt noch nicht gelungen ist, ist den Weg eines Zuges zu erstellen, also das man nach dem Funkkontakt mit der Fahrdienstleitung ein grünes Signal bekommt, eine Route erstellt ist und diese abfahren kann. Da blicke ich leider im entsprechenden Dateiaufbau nicht wirklich durch. Dennoch möchte ich gerne mein gesammeltes Wissen mitteilen und damit ein kleines Tutorial erstellen. Sollte jemand wissen wie man ein Szenario vollständig erstellen kann, sodass man dies auch abfahren kann, würden mich entsprechende Hinweise sehr freuen. Sollten Dinge einfacher möglich sein, als ich dies tue, so würde ich mich auch über Kritik und Vorschläge freuen.


    Vielleicht bekommen wir auch bald irgendwann einen Editor, aber ich dachte mir dass es vielleicht jetzt schon möglich ist mit etwas Aufwand Szenarien zu erstellen, um damit mehr Abwechslung in den Singlayermodus zu bekommen. Auch wenn man mit meinem Wissen "nur" vorhandene Szenarien zu anderen Uhrzeiten mit anderen Lokomotiven fahren kann ist das für einige vielleicht schon was Wert. Mir zumindest kommen einige Züge ein wenig zu kurz im Einzelspieler.


    Aber fangen wir einfach mal nach der Reihe an:


    Backup erstellen!!!


    Das wichtigste ist zunächst eine Kopie des Ordners in dem sich die Szenarien befinden zu erstellen, da man hier Änderungen vornehmen muss und mit dem Backup bei Fehlern immer der Ursprungszustand des Spiels wieder hergestellt werden kann. Der entsprechende Ordner nennt sich "Sceneries" und befindet sich an folgendem Pfadende: C:\Program Files (x86)\Steam\steamapps\common\SimRail\SimRail_Data\StreamingAssets ("C" kann je nach Laufwerksname abweichen). Diesen Ordner Kopieren und abspeichern, er dient als Backup.

    Bei Fehlern nach dem Bearbeiten einfach den Originalordner unter oben genanntem Pfad löschen und den gesicherten Originalordner wieder einfügen.


    Tausch eines Zuges in einem vorhandenen Szenario


    Um einen Zug in einem Szenario auszutauschen muss nun der Ordner geöffnet werden, in diesem befinden sich die Ordner der beiden mitgelieferten Strecken, ein Ordner mit den Vorschaubildern aller Lokomotiven und eine .json Datei, in der die beiden Strecken hinterlegt sind. Nun klickt man auf die Strecke, wo sich das Szenario befindet in dem der Zug ausgetauscht werden soll. Hier klickt man auf den Ordner "Scenarios" und dann das entsprechende Szenario (Ich nutze als Beispiel das Szenario "6_ROJ40614" der Strecke Warschau - Kattowitz, wo ich statt des Nahverkehrstriebwagen die ältere E-Lok mit Personenwagen nutzen möchte).

    An dem Punkt muss ich leider sagen, dass ich noch nicht weiß wie man einen Zug in einem Szenario hinterlegt, daher nutze ich bis jetzt die Methode, dass ich den Zug den ich fahren möchte einfach aus einem anderem Szenario kopiere und einfüge.

    Da ich den Zug den ich fahren möchte also kopieren muss, suche ich diesen aus einem anderen Szenario heraus. Für mein Beispiel kommt hier Szenario fünf infrage, da die E-Lok dort bewegt wird. Daher öffnet man nun den Ordner des entsprechenden Szenarios. Anhand meines Beispiels sollten sich folgende Dateien hier befinden:

    Wichtig zum kopieren des Zuges ist lediglich die .json Datei (in meinem Beispiel die M8.json), diese lässt sich mit dem Texteditor öffnen. Hier sind sämtliche Szenariodaten hinterlegt, der vom Spieler gefahrene Zug ist recht weit unten zu finden. Wo genau seht ihr im Sreenshot (unter dem Spielerzug befinden sich noch viele weitere Züge, diese sind wohl der später noch folgende KI Verkehr, kopiert den Zug, den ihr in eurem Szenario nutzen wollt):


    Das blau markierte ist die Lokomotive inklusive der Personenwagen. Diese Zeile speichert man in der Zwischenablage. Nun öffnet ihr das Szenario wo ihr den Zug nutzen wollte (in meinem Beispiel das Szenario "6_ROJ40614" und öffnet auch dort die .json Datei. Hier sucht ihr den Spielerzug (ganz wichtig ist, dass ihr diesen Ersetzt und keinen Dekozug) und ersetzt die entsprechende Zeile durch die Zeile (den Zug) in der Zwischenablage:


    Nun ist der Zug ausgetauscht. Um das ganze zu perfektionieren kann man nun auch noch das Vorschaubild ändern. Dazu geht man auf die Datei "ScenarioManifest" (auch diese kann mit dem Texteditor geöffnet werden):

    Dort muss der .png Pfad angepasst werden (hier blau markiert):


    Um das richtige Bild zu finden geht ihr in folgenden Ordner: C:\Program Files (x86)\Steam\steamapps\common\SimRail\SimRail_Data\StreamingAssets\Sceneries\VehicleThumbnails

    Hier sind alle Thumbnails zu finden. Kopiert den Dateinamen des entsprechenden Bildes und ersetzt ihn in die ScenarioManifest.json Datei an entsprechender Stelle:


    Damit könnt ihr das Spiel nun starten und das Szenario sollte sich nun mit dem gewünschten Zug fahren lassen.



    Damit ist der Zug ausgetauscht und das Szenario lässt sich ansonsten wie gewohnt fahren. Die Zugzielanzeiger müssen nicht bearbeitet werden, da sich das Spiel diese aus den Fahrplänen der Mission heraussucht.




    Vorhandenes Szenario mit anderem Zug neu erstellen


    Da sicher nicht jeder ein vorhandenes Szenario überschreiben möchte, gibt es auch die Möglichkeit ein gänzlich neues Szenario zu erstellen. Da ich dies aber nicht von Grund auf kann, mache ich dies auf der Basis eines vorhandenen Szenarios. In meinem Beispiel möchte ich das Güterszenario von der Strecke Sediszow - Kattowiz mit der E186 statt der ET25 fahren. Das ganze außerdem bei Nacht statt um 14 Uhr. Dazu kopiere ich mir zunächst den Ordner des Szenarios (in meinem Fall "6_ROJ245001") und füge diesen auf dem Desktop wieder ein. Ich benenne diesen nun wie folgt um: "7_ROJ245001", dann fügt man ihn zu den anderen Szenarios der Strecke Sediszow - Kattowiz hinzu:

    Nun ändere ich, wie im letzten Tutorial beschrieben den Zug, diesen finde ich in meinem Fall im Tutorial der BR186. Außerdem wird , wie ebenfalls oben beschrieben, das Vorschaubild geändert.

    Jetzt muss ich lediglich noch die Uhrzeit anpassen und das Szenario in die .json Datei einfügen.


    Um die Uhrzeit zu ändern gehen wir in die "ScenarioManifest.xml" im neu erstellten Szenario, wo wir auch schon das Vorschaubild geändert haben. Hier lassen sich die Uhrzeit und das Datum an folgender Stelle anpassen (In meinem Fall stelle ich die nun auf 01:30 Uhr):

    Jetzt muss das Szenario nur noch in der "ScenariosManifestList.json" hinterlegt werden, dafür wird folgendes in die Textdatei, die sich unter den Ordnern der Szenarios befindet, eingefügt:


    Es wird also der Szenarioname mit dem Verweis auf die ScenarioManifest eingefügt. Nun kann das neue Szenario im Simulator gefahren werden:




    (Leider lässt sich der Zug nicht wirklich erkennen, aber das Prinzip wird klar denke ich)



    In der "ScenarioManifest.xml" lassen sich auch der Name und die Beschreibung des Szenarios anpassen, da gehe ich aber später noch genauer drauf ein.

    6 Mal editiert, zuletzt von Thorsten1499 () aus folgendem Grund: Ein Beitrag von Thorsten1499 mit diesem Beitrag zusammengefügt.

  • Thorsten1499

    Hat den Titel des Themas von „Eigene Fahrpläne erstellen/bearbeiten“ zu „Eigene Szenarien erstellen/bearbeiten“ geändert.
  • Fahrplan- und Szenarienerstellung


    Da die Fahrplanerstellung nur für ein neues Szenario benötigt wird, fasse ich diese mit meinen Kenntnissen zur Szenarienerstellung zusammen.


    Um ein von Grund auf neues Szenario zu erstellen fehlt mir leider noch einiges an Wissen, hier bin ich auf Hilfe angewiesen. Das was ich bis jetzt aber geschafft, möchte ich natürlich dennoch weitergeben.

    Da das Szenario möglichst authentisch sein soll, greife ich dafür auf folgende "Datenbank" zurück: EDR 2.1 (simrail.app)

    Hier befinden sich die Daten der Züge auf den Severn, mit deren Hilfe man ein möglichst realistisches Szenario erstellen könnte.


    Folgenden Zug habe ich mir für das Szenario herausgesucht:


    Sämtliche Daten die man benötigt findet man hier.


    Zunächst gilt es ein neues Szenario anzulegen, dafür befolgt ihr am besten den Schritten des letzten Tutorials. Das Szenario welches ihr als Vorlage nutzt, sollte bestenfalls einige Übereinstimmungen mit dem neuen Szenario haben (Streckenverlauf, Startpunkt), für mein Beispiel bietet sich hier das Szenario "5_MPE14103" auf der Strecke Warschau - Kattowitz am besten an. Also habe ich den Ordner kopiert, umbenannt (habe den Zugname genommen) und wieder eingefügt:

    Ich habe übrigens alle Dateien im Szenarioordner zunächst nach diesem benannt.




    Nun gilt es wieder das richtige Fahrzeug in der .json Datei einzufügen (sollte es sich in keinem anderen Szenario befinden, wie in meinem Fall, kann man auch einfach den Namen des Zuges von oben verlinkter Seite nutzen, er ist auf der linken Seite unter den Train Details bei "Zugmodell" zu finden):


    Außerdem könnt ihr den Timetable Pfad direkt anpassen, damit das Spiel auf den richtigen Fahrplan zugreifen kann:

    Damit sind wir mit der .json Datei fertig. (Der Startpunkt musste in meinem Fall nicht angepasst werden, dies würde in folgender Zeile geschehen):


    Ich weiß jedoch leider nicht wie die einzelnen Punkte auf der Strecke sortiert sind, daher würde ich den entsprechenden Punkt stets aus einem anderen Szenario kopieren.



    Nun kommen wir zur "ScenarioManifest.xml", hier wird es ein wenig komplizierter, nun tragen wir alle Zugdaten ein:

    Eingetragen werden muss:

    - Szenario Name

    - Name der Lok

    - Datum und Uhrzeit (den Daten der externen Seite entnehmen)

    - Länge des Szenarios in Minuten (den Daten der externen Seite entnehmen)

    - Überschrift im Simulator

    - Vorschaubild im Simulator

    - Beschreibung im Simulator

    - Und aufgrund der Anpassung des Namens der Faplandatei und der Missionsdatei muss der Name auch in dieser Datei angepasst werden (wie ihr seht ist mir hier ein kleiner Fehler unterlaufen, die 3 hat bei der Missionsdatei nichts zu suchen, weshalb der Simulator das Szenario zunächst nicht laden konnte, hier gilt es wirklich aufzupassen, damit alles funktioniert)


    Damit wären alle Aufgaben in dieser Datei ebenfalls abgeschlossen.


    Nun kommen wir zum schwierigsten Teil, wir passen nun den Fahrplan (die "Szenarioname".xml Datei an):


    Zunächst kümmern wir uns um den Zugname, die Zugnummer und den Start- und den Zielpunkt (bitte aus den Daten der verlinkten externen Seite entnehmen), also die blau markierten Daten.

    Darunter befinden sich nun in Abschnitten die Haltepunkte des Zuges, mit Ankunfts- und Abfahrtszeit. Ein solcher Abschnitt sieht wie folgt aus:


    Am einfachsten ist es diese Blöcke aus anderen Szenarien mit gleichem Zugweg zu übernehmen und einzufügen.

    In den Blöcken steht zunächst der Stationsname. Darunter steht, ob es ein regulärer Halt ist, oder ob durchgefahren wird, ich habe in meinem Fall nur die Haltepunkte eingefügt. Zuletzt steht die Ankunftszeit und Abfahrtszeit in Sekunden (in meinem Fall bei Warschau Wschodnia nach 420 Sekunden Ankunft und nach 600 Sekunden Abfahrt). Diese Zeiten gilt es zu errechnen. Die Fahrplandaten entnimmt man am besten der oben verlinkten externen Seite. In meinem Fall müssen wir also von meinem Startpunkt aus nach 420 Sekunden an dem ersten Halt sein und nach 600 Sekunden wieder abfahren (dazwischen stehen wir im Bahnhof). Die Sekunden die eingetragen werden müssen beziehen sich immer auf den Startpunkt. Es wird also nicht bei jeder Station neu von Null gerechnet, sondern immer mit dem vorherigen Wert weitergearbeitet. Wie gesagt ist dies reine Rechenarbeit, die Daten dazu sind zu finden und müssen dann nur in den Abschnitten angepasst werden. Es muss also für jeden Halt ein Abschnitt eingetragen werden, auch für Halte die der Simulator nicht abbildet, damit die Zugzielanzeiger alle Halte anzeigen. Am einfachsten ist es wie gesagt sich solch einen Block aus einem anderen Szenario zu kopieren und lediglich Stationsname und Uhrzeiten anzupassen. Sollte die Vorlage mit der man arbeitet und in die man die neuen Abschnitte einfügt mehr Abschnitte enthalten als der Fahrplan den man erstellt, so löscht man diese einfach aus der Datei. Wichtig ist aber, dass man das Dateiende nach den Abschnitten original lässt. In meinem Fall sieht das Dateiende so aus (Endhaltestelle und Ende der Datei):


    Damit wäre soweit alles erledigt. Startet man nun den Simulator wird das neue Szenario mit Namen, Beschreibung und Bild angezeigt. Dieses kann man starten und der Zug steht an der gesetzten Stelle, der Fahrplan wird korrekt angezeigt, die Zugzielanzeiger ebenso.



    Angepasst werden müsste jetzt noch der Funk, außerdem wird das Signal leider nicht grün. Wahrscheinlich weil kein Weg für den Zug erstellt worden ist. Dies habe ich leider noch nicht herausgefunden und müsste wohl in der .json Datei angepasst werden. Hier hoffe ich auf Hilfe um auch das Problem noch zu lösen. Ich hoffe aber das ich damit zumindest helfen konnte Züge zu tauschen und seperate Szenarien zu erstellen.

    Außerdem sollte der Grundstein für gänzlich neue Szenarien gelegt worden sein.

  • Thorsten1499

    Hat den Titel des Themas von „Eigene Szenarien erstellen/bearbeiten“ zu „Eigene Szenarien erstellen/bearbeiten (Tutorial)“ geändert.
  • Danke für dein Feedback. Hatte geschaut ob es ein ähnliches Thema schon gibt und bin auch auf das Wiki gestoßen. Ich war mir nur nicht sicher ob ich es schaffe das alles gut genug erklärt zu bekommen, daher habe ich es erstmal ins Forum gepostet.

  • Hallo Thorsten,


    ich weiss nicht, ob das Thema jetzt noch relevant ist, aber wenn du ein vorhandenes Scenario bearbeitet hast müsste der Zugweg noch vorhanden sein. Dass die Signale rot bleiben hatte ich beim ersten Versuch auch (bevor ich deinen Post kannte). Ich hab dann herausgefunden, daß die Ausfahrtsignale an den Stationen, an denen ich halten musste, genau wie die Fahrplanzeiten auch angepasst werden müssen.

    Wenn ich also z.B. an Station Warzawa Centralna eine Abfahrtszeit auf 500 geändert habe, muss die Zeit des Ausfahrtssignals ebenfalls auf 500 oder weniger geändert werden. Dies geschieht aber nicht in der XML Datei, sondern in der JSON Datei, z.B.:


    "$id": "102",

    "trigger": {

    "$id": "103",

    "$type": "SimrailEvent.TrainArrivedTrigger",

    "stationName": "Warszawa Centralna",

    "train": null

    },

    "conditions": [],

    "mode": 0,

    "children": [],

    "actions": [

    {

    "$id": "104",

    "$type": "SimrailEvent.CoroutineDelayAction",

    "delay": 470.0,

    "until": true


    In diesem Fall würde das Signal 30 sek. vor der Abfahrtszeit auf grün springen.


    Allerdings ist es nicht immer unbedingt nötig, die Fahrplanzeiten zu ändern. Lediglich wenn man im Scenario unterschiedlich schnelle Züge tauscht, ansonsten genügt es ja, die die Startzeit zu verändern.