Schon an der Dateiendung .lua ist zu erkennen, daß es sich hierbei um ein Lua-Script handelt. Wird ein Text erwartet, so muss dieser durch Anführungszeichen begrenzte werden "Text". Innerhalb der Anführungszeichen dürfen natürlich keine Anführungszeichen vorkommen. Sollte dies dennoch erforderlich sein, müssen sie durch ein vorangestelltes \ markiert werden. Zeilenumbrüche werden mittels \n innerhalb des Textes erstellt.
Kein Eintrag darf eine fehlende Zuweisung aufweisen name =
Die Minimalversion einer info.lua sollte folgendes enthalten:
function data()
return {
minorVersion = 0,
severityAdd = "NONE",
severityRemove = "NONE",
name = _("Titel des Mods"),
description = _("Beschreibung"),
}
end
Innerhalb von return {} stehen die eigentlichen Rückgabewerte, die wir uns jetzt noch im Detail ansehen werden. Jeder Variable muss dabei ein Wert zugewiesen werden. Zudem werden die Einträge durch Kommas voneinander getrennt.
1 Versionsinformation
Da ein Mod immer wieder aktualisiert wird ist eine Versionsnummer unverzichtbar, um die einzelnen Versionen auseinanderzuhalten. Durch die Vorgaben von Urban Games ist die Versionsnummer auf folgendes Schema begrenzt: M.N M ist hierbei die Hauptversionsnummer (majorversion) und N die Unterversionsnummer (minorversion).
Die majorversion wird über den Ordnernamen des Mods festgelegt. Sie steht am Ende des Ordnernamens und wird durch einen Unterstrich vom restlichen Namen getrennt. Sie darf nur aus einer Zahl bestehen und keine Buchstaben oder Sonderzeichen (Punkte etc.) enthalten. Beispiel: mediziner_tatrakt4d_1
Die minorversion wird über minorVersion definiert. Hier sind nur Zahlen gültig. Zum Beispiel: minorVersion = 0
2 Warnhinweise
Beim Hinzufügen und Entfernen von Mods zu vorhandenen Spielständen können im internen Modmanager Hinweise ausgegeben werden. Grundsätzlich gilt, wenn man sich nicht sicher ist, welcher Wert zu benutzen ist, dann lieber den höheren Eintrag benutzen. Die Werte werden als Text erwartet.
severityAdd legt den Warnhinweis beim Hinzufügen fest. Z.B.: severityAdd = "NONE"
severityRemove legt den Warnhinweis beim Entfernen fest. Z.B.: severityRemove = "WARNING"
Beide Einträge können folgende Werte annehmen:
NONE | Kein Warnhinweis | Der Mod hat keine Auswirkungen auf das Spiel beim Hinzufügen/Entfernen. |
WARNING | Warnung: das Hinzufügen/Entfernen dieses Mods kann unerwartete Ereignisse haben | Beim Hinzufügen/Entfernen kann es zu unerwarteten Ereignissen kommen. Sinnvoll bei Entfernen von Fahrzeugmods. |
CRITICAL | Warnung: das Hinzufügen/Entfernen dieses Mods wird das Spiel wahrscheinlich zum Absturz bringen | Dieser Mod führt garantiert zu einem Absturz, wenn er währen des Spiels hinzugefügt/entfernt wird. |
3 Modname und Beschreibung
Die Werte für beide Einträge werden als Text erwartet.
Über name wird der Titel des Mods definiert. Sinnvoll sind hier kurze Aussagekräftige Titel. Namen und Versionsnummern etc. sollten hier nicht stehen.
Beispiele:
name = "Tatra KT4D Stettin"
Name = "DB BR 420"
Mittels description kann man eine Beschreibung für den Mod festlegen. Beispiel: description = _("Hier steht eine Beschreibung")
Soll erst später ein Eintrag erfolgen, so kann man natürlich auch eine leere Beschreibung anlegen: description = _(" ")
Soll es eine mehrsprachige Beschreibung geben, so kann man mit Hilfe einer strings.lua im gleichen Verzeichnis auch eine Übersetzung von Strings anbieten. Da in der strings.lua der komplette Originaltext angegeben werden muss empfiehlt es sich auch nur einen Platzhalter zu verwenden und in der strings.lua dann die eigentliche Beschreibung zu hinterlegen: description = _("Beschreibung")
4 Autorenblock
Für die Autoren wird unabhängig von der Anzahl zunächst ein eigener Block mit authors = { }, erstellt. Innerhalb dieses Blocks können dann ein oder mehrere Autoren eingetragen werden. Jeder Autor wird dabei wiederum mit Klammern {} eingefasst.
4.1 Name
Mit name wird der Name des Beteiligten Autors angegeben (als Text erwartet) Der Name sollte auch dem Namen im Forum entsprechen, damit eine automatische Modaktualisierung über die Modmanager später ohne Probleme möglich ist.
4.2 Funktion
role gibt die Funktion des genannten Autors an. Jedem Autor kann eine Funktion individuell zugewiesen werden. Der Eintrag wird als Text erwartet. Folgende Einträge sind vordefiniert. role = "CREATOR"
CREATOR | Der Ersteller des Mods |
CO_CREATOR | Helfer des Erstellers, ist dem Ersteller untergeordnet |
TESTER | Tester |
BASED_ON | Der Mod basiert auf einem Mod dieses Autoren |
OTHER | Keine der Kategorien oben trifft zu |
Der interne Modmanager wertet diese Einträge bisher nicht aus. Theoretisch kann der Eintrag auch jeden anderen Wert annehmen. Es ist jedoch sinnvoll diese Kategorien zu verwenden, damit eine automatisch Übersetzung in den Modmanagern erfolgen kann.
4.3 tf|net Nutzer-ID
Die tfnetId ist hier die Nummer des Autors in der Datenbank von train-fever.net. Im Modmanager wird sie z.B. dazu benutzt, um den Autor mit dem Forum zu verlinken. Zudem ist die ID später wichtig, um automatische Updates mittels Modmanager zu ermöglichen. Erwartet wird eine Zahl. Der Eintrag ist nicht zwingend erforderlich.
Beispiel: tfnetId = 18018
Wie ihr an eure ID kommt: Wenn ihr auf train-fever.net eingeloggt seid, klickt auf euren Namen rechts ganz oben in der Leiste und dann auf "Mein Profil". Danach öffnet sich eine Seite in eurem Browser. Interessant ist jetzt die Adresszeile des Browsers: Sie sollte in etwa so aussehen: http://www.train-fever.net/index.php/User/18018-mediziner/. Nur der hintere Teil ist hier interessant. Die Zahl vor eurem Nutzernamen ist die tfnet-Nutzer-ID.
4.4 weitere Einträge
Mit text kann ein individueller Text verfasst werden zum jeweiligen Autor. Beispiel: text = "Ich habe das gaaanz alleine geschafft"
Mit steamProfile könnt ihr eure persönliche 17-stellige Steamnummer preisgeben. Wenn Ihr das nicht möchtet, lasst den Eintrag einfach weg. Er wird nicht benötigt. Erwartet wird ein Text. (Also die Anführungszeichen nicht vergessen!)
Beispiel:steamProfile = "12345678901234567"
5 tf|net Mod-ID
Über die tfnetId außerhalb des Autorenblocks wird die Download-ID eines Mods auf train-fever.net zugewiesen. Mit dieser soll später eine eindeutige Zuordnug des Mods möglich sein und so automatische Updates über die externen Modmanager ermöglichen. Erwartet wird eine Zahl.
Beispiel: tfnetId = 266
Wie ihr an eure Mod-ID kommt: Zunächst muss ein Download-Eintrag auf train-fever.net erstellt worden sein. Aus der Adresszeile des Browsers könnt ihr die Nummer eures Eintrags ablesen: http://www.train-fever.net/filebase/index.php/Entry/266-Tatra-KT4D/
6 Minimale Spielversion
Die minGameVersion gibt an, welche Spielversion mindestens benötigt wird. Erwartet wird eine Zahl. Beispiel: minGameVersion = 5671
7 Abhängigkeiten
Zu den Abhängigkeiten gibt es bisher keine Konventionen. Weder der TFMM, TFGM noch der interne Modmanager nutzen diesen Eintrag. So kann leider mit dem neuen Modsystem Abstürze durch fehlende (abhängige) Mods nicht wirklich ausgeschlossen werden.
Vorgesehen ist ein Grundgerüst über dependencies in einer durch Klammern gebildeten Gruppierung sollen dort die Abhängigkeiten als Ordnernamen (durch Komma getrennt)aufgelistet werden.
Beispiel: dependencies = {"mediziner_tatrat4d_1", "mediziner_tatrakt4d_1"},
Versionsnummern werden bei diesem System bisher nicht unterstützt.
8 Tags
Mit tags werden Schlüsselwörter aufgelistet mit Hilfe derer in den Modmanagern Mods sortiert und gefiltert werden können. Erwartet wird eine Liste von durch Kommas getrennten Text-Einträgen. Folgende Tags werden automatische erkannt und in die jeweiligen Sprachen übersetzt:
Beispiel: tags = {"vehicle", "tram", }
building | Gebäude |
bus | Bus |
costs | Kosten |
deco | Dekoration |
depot | Depot |
diesel | Diesellokomotive |
electric | Elektrolokomotive |
goods | Güterwaggons |
pack | Mod-Paket |
passenger | Passagierwaggon |
railcar | Triebwagen |
sandbox | Sandkasten |
signal | Signal |
station | Bahnhof |
steam | Dampflokomotive |
streets | Straßennamen |
tool | Tool |
town | Stadtgebäude |
towns | Städtenamen |
train | Zug |
tram | Straßenbahn |
vehicle | Fahrzeug/PKW |
wagon | Waggon |
waypoint | Wegpunkt |
other | andere |
9 URL
Mit url kann auf eine beliebige Webseite verlinkt werden. Erwartet wird ein Text.
Beispiel: url = "http://www.train-fever.net"
10 Beispiele
function data()
return {
minorVersion = 1,
severityAdd = "NONE",
severityRemove = "WARNING",
name = _("Tatra KT4D"),
description = _("Beschreibung"),
authors = {
{
name = "mediziner",
role = "CREATOR",
tfnetId = 18018,
},
},
tags = {"vehicle", "tram", },
tfnetId = 266,
minGameVersion = 0,
dependencies = {},
}
end
Display More
strings.lua:
function data()
return {
de = {
["Beschreibung"] = "Enthält Doppel- und Einfachtraktionen in der typischen ČKD Standardlackierung sowie die alte Berliner Variante und die modernisierte Berliner Variante KT4Dm.",
},
en = {
["Beschreibung"] = "Contains single and douple traction using the typical ČKD standard painting and also the old colour variant of Berlin and the modernised Version KT4Dm of Berlin.",
},
}
end
function data() return {
authors = {
{
name = 'Gwinda',
role = 'Creator',
steamProfile = '76561198041807425'
}
},
description = _('Enable all vehicles, roads, stations etc.'),
minGameVersion = 5798,
minorVersion = 0,
name = _('Timeless mod'),
tags = { 'age', 'script', 'time', "sandbox" },
} end
Display More