So funktionieren Mods
Eine Mod ist ein Ordner. Das Spiel sucht darin nach ein paar fest benannten Unterordnern, und was in diesen Unterordnern liegt, ist das, was die Mod verändert. Es gibt keinen Verpackungsschritt, kein Manifest, das du schreiben musst, und nichts zu kompilieren: Du bearbeitest Dateien, lädst ein Level und siehst das Ergebnis.
Diese Seite behandelt, was alle Mods gemeinsam haben: wo sie liegen, wie das Spiel sie findet, wie man sie ein- und ausschaltet und welche Mod gewinnt, wenn zwei dasselbe ändern. Was in die Unterordner gehört, steht auf den Themenseiten: CSV-Tabellen, Missionen, Quests, Scripting, Karten, Objekte und Flugzeug-Skins. Wie eine fertige Mod zu anderen Spielern kommt, steht unter Steam Workshop.
Eine Mod in einer Minute
- Finde deinen
Mods-Ordner: Hauptmenü (Main menu) → Mods → Open folder. Unter Windows ist das%USERPROFILE%\AppData\LocalLow\Blindflug Studios\Ground Of Aces\Mods\; die anderen Plattformen findest du weiter unten. - Leg darin einen Ordner an, zum Beispiel
my_mod, und leg eineconfig.jsonmit Name und Id der Mod hinein (siehe unten). - Leg im Mod-Ordner einen der Inhaltsordner an:
CSV/,Missions/,Quests/,Maps/,Objects/,Biomes/oderAirplanes/. Leg mindestens eine Datei hinein. Optional kommt einepreview.png(höchstens 1 MB) als Vorschaubild dazu. - Drück im Mods-Fenster auf Refresh, damit das Spiel den neuen Ordner bemerkt, und lade dann ein Level.
- Ab dann wird jede Änderung an einer Datei in der Mod beim nächsten Laden eines Levels übernommen. Nur Ersatzgrafik (
Objects/,Biomes/) braucht einen Neustart des Spiels.
Der Ordner darf beliebig heißen - MyMod funktioniert genauso wie my_mod. Nur die Id in der config.json muss kleingeschrieben sein (my_mod, nicht MyMod). Stell jeder Id, die du dir ausdenkst, den Namen deiner Mod voran, damit du nie versehentlich etwas ersetzt.
Tip
Wenn das deine erste Mod ist, führt der kürzeste Weg vom leeren Ordner zu einer sichtbaren Änderung über eine einzeilige Änderung an einer CSV-Tabelle. Die Anleitung zur ersten Mod führt dich Schritt für Schritt hindurch.
Wo Mods liegen
Das Spiel liest Mods aus zwei Orten: aus den Items, die du im Steam Workshop abonniert hast, und aus deinem eigenen Mods-Ordner. Alles, was du selbst baust, gehört in den zweiten.
| Plattform | Mods-Ordner |
|---|---|
| Windows | %USERPROFILE%\AppData\LocalLow\Blindflug Studios\Ground Of Aces\Mods\ |
| macOS | ~/Library/Application Support/Blindflug Studios/Ground Of Aces/Mods/ |
| Linux | ~/.config/unity3d/Blindflug Studios/Ground Of Aces/Mods/ |
Der Ordner wird beim ersten Spielstart angelegt. Am schnellsten erreichst du ihn über den Button Open folder im Mods-Fenster (siehe unten). Das Spiel legt in diesem Ordner außerdem eine kleine mod_state.json ab. Diese Datei ist die eigene Notiz des Spiels darüber, welche Mods du ein- oder ausgeschaltet hast; sie gehört zu keiner Mod, und du solltest sie nicht mitliefern.
Eine Mod ist ein Ordner
Der Ordner darf heißen, wie du willst - MyMod, my_mod oder My Campaign funktionieren alle. Die Kleinschreibungsregel weiter unten gilt nur für die Id in der config.json, nicht für den Ordner.
In deinem Mod-Ordner hat jede Art von Inhalt einen festen Unterordner. Es müssen nur die existieren, die du brauchst:
Mods/
my_mod/
config.json required - name, id, load order
preview.png optional - the picture shown in the Mods window and on the Workshop
CSV/ data tables
Missions/ mission .json files and Python .py scripts
Locations/ new mission locations, .json
Quests/ quest .json files
Maps/ .goamap map files
Objects/ replacement models, textures and icons
Biomes/ replacement ground textures, one PNG per biome slot
Airplanes/ new airplane skins
| Ordner | Was hineingehört | Mehr dazu |
|---|---|---|
CSV/ |
Änderungen an den Datentabellen des Spiels | CSV-Tabellen |
Missions/ |
Missionen (.json) und Python-Skripte (.py) |
Missionen, Scripting |
Missions/Locations/ |
neue Missionsorte (.json) |
Orte mit einer Mod hinzufügen |
Quests/ |
Quests (.json) |
Quests |
Maps/ |
Karten (.goamap) |
Karten |
Objects/ |
Ersatzmodelle, Texturen und Symbole - für Gebäude, Werkbänke und Trainer | Objekte und Modelle |
Biomes/ |
Ersatztexturen für den Boden, ein PNG pro Biom-Slot | Biome |
Airplanes/ |
neue Flugzeug-Skins: eine config.json und die PNGs der Skins |
Flugzeug-Skins |
Drei Regeln entscheiden, ob das Spiel den Ordner überhaupt bemerkt:
- Ein Unterordner zählt nur, wenn etwas darin liegt. Ein leerer
CSV/-Ordner ist dasselbe wie gar keinCSV/-Ordner. - Ein Mod-Ordner ohne einen der obigen Unterordner (oder nur mit leeren) wird ohne Meldung ignoriert.
- Symbolische Links und Junctions (Verknüpfungen, die auf einen anderen Ordner zeigen) werden nie verfolgt, weder als Mod-Ordner noch als einer seiner Unterordner. Das Spiel überspringt sie mit einer Warnung im Log.
Bei CSV, Missions, Quests und Maps werden nur Dateien gelesen, die direkt im Unterordner liegen; alles, was tiefer liegt, wird ignoriert, mit einer Ausnahme: Missions/Locations/ wird ebenfalls gelesen. Objects und Biomes enthalten Ersatzgrafik und folgen eigenen Regeln: In Objects/ ist der Dateiname eines Modells die Id des Objekts, das es ersetzt (Chair.fbx ersetzt den Stuhl), und die Namen von Unterordnern spielen keine Rolle. Biomes/ enthält ein PNG pro Biom-Slot, benannt nach der Nummer des Slots (8.png), direkt im Ordner. Airplanes/ enthält neue Flugzeug-Skins, beschrieben unter Flugzeug-Skins.
config.json
Pflicht. Jeder Mod-Ordner braucht eine config.json neben seinen Inhaltsordnern.
{
"Id": "my_mod",
"Name": "My Mod",
"Author": "Your Name",
"Version": "1.0.0",
"LoadOrder": 100
}
| Feld | Bedeutung |
|---|---|
Id |
Damit unterscheidet das Spiel Mods und löst Gleichstände in der Ladereihenfolge auf. 3–64 Zeichen aus Kleinbuchstaben, Ziffern, _, . oder -, beginnend mit einem Buchstaben oder einer Ziffer. |
Name |
Das, was Spieler im Mods-Fenster sehen. Beliebiger Text. Beim ersten Upload wird er auch zum Workshop-Titel. |
LoadOrder |
Eine ganze Zahl, die festlegt, in welcher Reihenfolge Mods angewendet werden (siehe Welche Mod gewinnt). Kleinere Zahlen werden zuerst angewendet. Standard 100. |
Author, Version |
Für dich und für die Workshop-Seite. Das Spiel liest sie nicht. |
Was passiert, wenn etwas nicht stimmt:
- Eine
Id, die gegen die Regel verstößt, wird ohne Meldung ignoriert, und stattdessen wird der Ordnername verwendet - kleingeschrieben, wobei jedes Zeichen außer Buchstaben, Ziffern,_,.und-durch_ersetzt wird. Log-Zeilen zu deiner Mod sind mit dieser Id gekennzeichnet, eine abgelehnte Id fällt also als unerwartete Kennzeichnung auf. Die Detailansicht der Mod im Mods-Fenster zeigt außerdem die Id, die das Spiel tatsächlich verwendet. - Eine
config.json, die das Spiel nicht lesen kann (ein fehlendes Komma, eine überzählige Klammer), wird im Log gemeldet und so behandelt, als gäbe es sie nicht.
preview.png
Optional. Ein PNG im Hauptverzeichnis des Mod-Ordners, höchstens 1 MB groß. Das Mods-Fenster zeigt es neben dem Namen der Mod an, und es wird zum Bild des Items, wenn du die Mod in den Workshop hochlädst. Ohne Vorschaubild zeigt das Mods-Fenster ein Platzhalterbild, und das Workshop-Item hat kein Bild, bis du auf seiner Steam-Seite eins hinzufügst.
Das Mods-Fenster
Hauptmenü → Mods listet jede Mod auf, die das Spiel gefunden hat - Workshop-Abos und deine eigenen Ordner - mit Vorschaubild, einer Markierung, ob sie aus dem Workshop oder aus deinem Mods-Ordner stammt, und einem Abzeichen pro Art von Inhalt, den sie mitbringt.
| Element | Was es tut |
|---|---|
| Schalter Enabled (pro Mod) | Schaltet die Mod ein oder aus. Eine ausgeschaltete Mod trägt nichts bei: Ihre Tabellen, Quests, Missionen, Skripte, Karten und Grafiken werden alle übersprungen. Karten wirken sofort; Tabellen, Quests, Missionen und Skripte beim nächsten Laden eines Levels; Ersatzgrafik (Objects/, Biomes/) erst nach einem Neustart, weil Grafik nur einmal beim Spielstart importiert wird. Neue Mods sind standardmäßig eingeschaltet. |
| Button Upload (pro Mod, nur deine eigenen Mods) | Veröffentlicht die Mod im Steam Workshop. Siehe Steam Workshop. |
| Refresh | Durchsucht die Workshop-Items und deinen Mods-Ordner erneut. Drück ihn, nachdem du einen neuen Mod-Ordner angelegt, einen umbenannt, eine config.json geändert oder während des Spiels etwas im Workshop abonniert hast. |
| Open folder | Öffnet deinen Mods-Ordner im Dateibrowser und legt ihn an, falls es ihn noch nicht gibt. |
| Workshop | Öffnet die Steam-Workshop-Seite des Spiels im Steam-Overlay (nur Steam-Version). |
Jede Mod hat außerdem eine Detailansicht mit ihrem Namen, der Id, die das Spiel verwendet, ihrer Ladereihenfolge und dem Ordner, aus dem sie gelesen wurde, samt einem Button, der diesen Ordner öffnet.
Jede Mod zeigt außerdem einen Schalter Scripting. Wenn du ihn einschaltest, musst du das bestätigen. Der Schalter ist für eine kommende Zustimmungsfunktion reserviert und hat derzeit keine Wirkung, er ist also kein Schutz: Die Skripte einer Mod laufen immer, wenn die Mod eingeschaltet ist, egal was der Schalter sagt. Die einzige Möglichkeit, die Skripte einer Mod zu stoppen, ist, die ganze Mod auszuschalten. Lies Python-Mods und Sicherheit, bevor du eine Mod mit Skripten von jemandem einschaltest, den du nicht kennst.
Welche Mod gewinnt
Zuerst werden die Workshop-Items angewendet, dann die Mods in deinem Mods-Ordner, und innerhalb jeder Gruppe in LoadOrder-Reihenfolge - kleinere Zahlen zuerst, bei Gleichstand entscheidet die Id. Wenn zwei Mods dasselbe liefern - eine Zeile in derselben Tabelle, eine Quest mit demselben Dateinamen, eine Mission mit derselben Id - gewinnt die, die zuletzt angewendet wird. Zwei Folgen daraus:
- Deine eigene Kopie einer Mod schlägt immer die Workshop-Kopie derselben Mod. Du kannst also an einer bereits veröffentlichten Mod weiterarbeiten und deine Änderungen testen, während die veröffentlichte Version weiter abonniert ist.
- Zwei Mods vom selben Ort (beide aus dem Workshop oder beide in deinem
Mods-Ordner) mit derselben Id werden nicht beide geladen. Die zweite gefundene wird mit einer Warnung im Log übersprungen.
Die praktische Regel daraus: Stell jeder Id, die du dir ausdenkst, den Namen deiner Mod voran, damit du nie versehentlich etwas ersetzt.
Deine eigenen Ordner Missions und Maps neben Mods - dort speichern der Missionseditor im Spiel und der Karteneditor - werden nach allen Mods gelesen und gewinnen gegen alle:
- Missionen: Eine Mission in deinem eigenen
Missions-Ordner schlägt eine Mission mit derselben Id in jeder Mod. Denk an diesen Ordner, wenn eine deiner Missionen die Kopie in deiner Mod zu ignorieren scheint. - Karten: Eine Karte in deinem eigenen
Maps-Ordner schlägt eine Mod-Karte mit demselben Dateinamen. Siehe Karten.
Deine Änderungen sehen
Fast alles, was eine Mod enthält, wird beim Laden eines Levels gelesen. Geh zurück ins Hauptmenü und lade einen Spielstand oder starte eine Karte, dann übernimmt das Spiel alles, was du inzwischen geändert hast - Tabellen, Quests, Missionen, Skripte und Karten gleichermaßen. Zwei Dinge werden nur einmal beim Spielstart gelesen: die Liste der Mods und die Ersatzgrafik in Objects/ und Biomes/. Das Öffnen des Mods-Fensters sucht nicht neu; drück dort auf Refresh, wenn du einen Mod-Ordner hinzufügst.
Der Alltagsablauf, während du an einer Mod arbeitest:
- Speichere dein Spiel.
- Einstellungen (Options) → Quit to main menu.
- Öffne Mods und drück auf Refresh, wenn du einen Mod-Ordner hinzugefügt oder umbenannt oder seine
config.jsongeändert hast. - Lade den Spielstand.
| Du hast geändert ... | So siehst du es |
|---|---|
| Eine Datei in einer Mod, die das Spiel schon kennt | Ein Level laden (einen Spielstand laden reicht) |
| Eine Karte in einer Mod | Auch sofort, wenn du den Schalter Enabled der Mod umschaltest |
Einen neuen Mod-Ordner, einen umbenannten Ordner, eine geänderte config.json, einen Unterordner, der beim Spielstart leer war |
Refresh im Mods-Fenster drücken und dann ein Level laden - oder das Spiel neu starten |
| Ein neues Workshop-Abo, während das Spiel läuft | Refresh im Mods-Fenster, sobald Steam den Download abgeschlossen hat |
Ein Flugzeug-Skin-PNG oder die Airplanes/config.json |
Ein Level laden - Skins werden bei jedem Laden eines Levels gelesen |
| Ein Modell, eine Textur, ein Vorschausymbol oder ein Biom-PNG | Das Spiel neu starten - Grafik wird einmal beim Spielstart importiert, und weder Refresh noch der Schalter Enabled importieren sie neu |
Note
Im Moment braucht jede Änderung an der 3D-Grafik in Objects/ und Biomes/ einen Neustart des Spiels. Ein künftiges Update bringt eine Option, Mods im Hauptmenü neu zu laden; dann ist der Neustart nicht mehr nötig.
Testen und neu laden erklärt mehr zu diesem Ablauf und zu den Werkzeugen, die beim Testen helfen.
Das Spiel schreibt in seine Log-Datei Player.log, was es angenommen und was es abgelehnt hat. Wo sie liegt und wie du sie öffnest: Das Player.log finden. Das veröffentlichte Spiel schreibt nur Fehler ins Log; die ausführlichen [Mod ...]-Zeilen, die auf den Themenseiten beschrieben sind, erscheinen nur in Entwicklungs-Builds. Prüf im Zweifel also die Wirkung direkt im Spiel. Mehr dazu in Testen und neu laden und Wenn nichts passiert.