Grundsätzlich ist ThemaScript sehr einfach, man muss es nur einmal verstanden haben. Um das Verständnis zu fördern gibt es auf dieser Seite einige Beispiele.
winter:start(5,verspätung);
Der Klassiker. Im Winter hat der Zug direkt am ersten Bahnhof 5 Minuten Verspätung.
herbst:start(4,tempo);
Im Herbst fährt der Zug mit Tempo 4. Dieser Befehl wird auch sehr häufig verwendet.
winter:start(5,verspätung,6,tempo); herbst:start(3,verspätung,5,tempo);
Im Winter hat dieser Zug 5 Minuten Verspätung und Tempo 6. Im Herbst dagegen nur 3 Minuten Verspätung und ein Tempo von 5.
winter:start(8,verspätung,3,tempo) herbst:start(4,verspätung,8,länge);
Im Winter hat dieser Zug 8 Minuten Verspätung und Tempo 3. Im Herbst dagegen 4 Minuten Verspätung und eine Zuglänge von 8.
winter:start(23,sub,10,verspätung) herbst:*(23,sub);
Im Winter hat der Zug 10 Minuten Verspätung. Ausserdem wird ThemaScript 23 eingebunden. Im Herbst gilt dagegen nur die Regel vom Script 23.
winter:start(3,10,rnd,verspätung);
Im Winter gibt es hier eine zufällige Verspätung zwischen 3 und 10 Minuten.
winter:bahnhof($tempo,0,3,rnd,-,tempo);
Im Winter wird sobald der Zug das nächste Stellwerk erreicht das aktuelle Standardtempo des Zuges genommen, davon ein Zufallswert zwischen 0 und 3 abgezogen, und dieser Wert als neues Standardtempo im Thema Winter gesetzt.
winter:start(5,7,10,3,oneof,länge);
Hier wird einer der 3 Werte 5, 7 oder 10 zufällig ausgewählt und als neue Länge gesetzt.
winter:start(2,sub,$verspätung,2,*,verspätung);
Hier wird zuerst das winterscript von ThemaScript 2 übernommen und danach die entstandene Verspätung verdoppelt.
winter:start(N,aktiv);
Dieser Zug fährt im Winter nicht.
winter:start(sommer,2,tsub);
Mit diesem Befehl nimmt man die Sommerwerte von Script 2 anstelle des Themas Winter.
winter:start(sommer,2,tsub,$verspätung,2,*,verspätung);
Zusätzlich zum vorhergehenden Beispiel verdoppelt man hier noch die Verspätung
herbst:start($verspaetung,0,$abstunde,4,/,rnd,+,verspaetung,$tempo,0,2,rnd,-,tempo);
Im Herbst wird zuerst die Verspätung des Zuges ausgelesen und danach durch einen zufälligen Wert zwischen 0 und einem Viertel der Abfahrtsstunde des letzten Bahnhofs im Zuglauf erhöht. Hiermit haben spät fahrende Züge mehr Verspätung als frühe. Zusätzlich wird dann noch das Tempo ausgelesen und um einen zufälligen Wert zwischen 0 und 2 reduziert.
herbst:start(starthook,hook,8,tempo,winter,endhook,thook);
Im Herbst wird nach einem Script mit dem Namen „ZH-<REGION>-starthook“ gesucht, <REGION> wird dabei durch das Regionskürzel der Zugregion ersetzt. Sollte ein Script gefunden werden, wird dessen Inhalt ausgeführt. Ist kein passendes Script vorhanden passiert nichts. Anschliessend wird das Tempo auf 8 gesetzt. Zum Schluss wird nach einem Script mit dem Namen „ZH-<REGION>-endhook“ gesucht und - sofern vorhanden - dessen Winter-Teil ausgeführt.