Modding-Infos
Ein Kartenpaket ist eine .oamap-Datei, ein Mod eine .oamod-Datei, ein Mutator eine .oamut-Datei und ein Gehirn eine .oabrain-Datei: ein Zip mit einem Manifest obenauf. Das Spiel prüft das Manifest, installiert das Paket unter seiner Kennung und spielt es nach den erklärten Regeln. Diese Anleitung führt vom Ordner bis zum Katalog-Release, und jedes Kapitel verlinkt den Standard, den es in der Engine-Dokumentation zusammenfasst.
Vom Ordner ins Spielinteraktive Flusskarte
Aufbau eines Kartenpakets
Das .oamap-Zip, sein Manifest oamap.yaml, der Kartenindex, den der Packer schreibt, und wie Größe und Elemente einer Karte entscheiden, ob sie zu einem Spiel passt.
GitHub ·docs/maps/oamap-standard.md02Aufbau eines Mods
Das .oamod-Zip und das Profil oamod.yaml: Identität, Layout, Limits, Datenschlüssel, Skripterweiterungen und die Standardregeln, die es einschaltet.
GitHub ·docs/mods/oamod-standard.md03Einen Mutator machen
Ein kleines .oamut über dem Grundspiel oder jedem Mod: der Ordner, das Manifest, der Plan, den mutate zurückgibt, Optionen, die Sandbox und die Reihenfolge eines Stapels.
GitHub ·docs/mutators/oamut-standard.md04Lua-Beispiele
Sechs lauffähige Skripte aus echten Paketen: eine Regel, Skalieren mit Grenzen, eine Seite, ein Einheiten-Hook, der das Spiel ablehnen kann, ein features-Hook und ein Dateiplan mit geschichteten Ordnern.
GitHub ·docs/mutators/oamut-standard.md#61-the-lua-forms05Einen alten Mutator übertragen
KroggyComm 1.1 von seinen Archiven zum Paket, und eine Regeldatei von TA: Mutation, die mit sm bleibt oder als Lua neu geschrieben wird.
GitHub ·docs/mutators/authoring.md#15-importing-a-ta-mutation-mutator06Prüfen, packen und veröffentlichen
oa-tool mutator check und pack, ein Probelauf, was die Katalogseite zeigt, das Icon und wie du das Paket Core Prime anbietest.
GitHub ·docs/mutators/authoring.md#1-a-first-mutator07Ein Gehirn machen
Eine .oabrain, die einen Computersitz spielt: der Ordner, jeder Schlüssel des Manifests, die Tags, die Stufen, die volle Sicht, wo das Skript läuft, die Budgets und was geschieht, wenn es anhält.
GitHub ·docs/brains/oabrain-standard.md08Das Lua des Gehirns
Manifest und Skript von Steady Commander, die Hooks, was ein Gehirn wissen und tun darf, Zahlen, Zufallsziehungen, Timer und Chat.
GitHub ·docs/brains/oabrain-standard.md#7-what-a-brain-may-know09Classic, ein ausgearbeitetes Beispiel
Der eingebaute Computerspieler, in Lua geschrieben: seine Dateien, die Aufgabentabelle, eine Aufgabe, die Notizen zu den Eigenheiten, was in der Engine bleibt, und wie dieselben Befehle nachgewiesen werden.
GitHub ·docs/brains/authoring.md#13-classic-a-walkthrough10Gelernte Netze
Warum ein Gehirn ein .oann mitliefern kann, Ganzzahlarithmetik, die Schichten, eines ausführen, oa-tool brain net, die Grenzen und was die Bibliothek zeigt.
GitHub ·docs/brains/oabrain-standard.md#9-neural-networks11Ein Gehirn prüfen, packen und veröffentlichen
oa-tool brain pack und check, ein Match ohne Oberfläche und ein Trace, die Prüfung der Bibliothek und das Sitzprotokoll, die oabrain-Art des Katalogs und wie man das Paket Core Prime anbietet.
GitHub ·docs/brains/authoring.md#11-testing12Standardregeln
Die dokumentierten Regeln, die ein Profil einschalten kann, jede mit Schlüssel, Werten und dem Verhalten, aus dem sie stammt. Simulationsregeln müssen zwischen Spielern übereinstimmen.
GitHub ·docs/mods/standard-hacks13Skripterweiterungen
Die Werte, die ein Profil den Einheitenskripten eines Mods geben kann, etwa die Abschüsse einer Einheit oder die Bündnisse ihres Besitzers, und wie ein COB-Skript jeden liest.
GitHub ·docs/mods/script-extensions14Versionen und Releases
Deine Version ist freier Text und wird nie sortiert. packaging.revision steigt mit jedem Neupacken; der Katalog nummeriert Releases. Verwende nie Version und Revision mit anderen Bytes wieder.
GitHub ·docs/mods/oamod-standard.md#47-catalogue-releases15Auf Core Prime veröffentlichen
Ein Paket prüfen, es der Inhaltsbibliothek anbieten, wie ein Release im Katalog und in der Bibliothek jedes Spielers erscheint, und wie man ein eigenes Register betreibt.
GitHub ·docs/registriesSchnellstart: ein Kartenpaket
# ein Ordner, deine Karten darin, ein Manifest obenauf my-maps/ oamap.yaml Ridge.tnt Ridge.ota Long Lakes.tnt Long Lakes.ota # oamap.yaml oamap: 1 id: my-maps name: My Maps version: "1.0" author: {name: A. Mapper} packaging: {revision: 1, date: 2026-10-18, packager: A. Mapper} # prüfen und packen; der Index wird für dich geschrieben $ oa-tool pack my-maps/ -o my-maps.oamap
Schnellstart: ein Mod
# ein Mod, der das Einheitenlimit anhebt und zwei gemeinsame Regeln einschaltet oamod: 1 id: small-mod name: Small Mod version: "1.0" author: {name: A. Modder} packaging: {revision: 1, date: 2026-10-04, packager: A. Modder} limits: units-per-player: {default: 500, max: 1000} hacks: units.id-reuse-delay: true economy.deterministic-wind: true # alles, was die Datei weglässt, spielt sich wie 3.1c $ oa-tool pack small-mod/ -o small-mod.oamod
Schnellstart: ein Mutator
# Commander Radar, von Drinken: ein Ordner, das Manifest obenauf commander-radar/ oamut.yaml mutator.lua # mutator.lua: eine Regel; die Option radar wählt die Reichweite function mutate(ctx) local distance = ctx.options.radar == "none" and 0 or 2880 return { rules = { where { commander = 1, bmcode = 1 }:change { radardistance = set(distance), }, }, } end # von außerhalb des Ordners packen, dann die .oamut prüfen $ oa-tool mutator pack commander-radar $ oa-tool mutator check commander-radar-1.oamut
Schnellstart: ein Gehirn
# Steady Commander: ein Ordner, das Manifest obenauf steady-commander/ oabrain.yaml brain.lua # oabrain.yaml oabrain: 1 id: steady-commander name: Steady Commander version: "1.0" author: name: Ridge Workshop description: "Builds a little economy, then a factory, and sends a squad when it is ready." tags: - economy - teaching works-with: - "*" # den Ordner packen, dann die .oabrain gegen ein Spiel prüfen $ build/oa-tool brain pack brains/examples/steady-commander --out /tmp/brain-scratch/steady-commander.oabrain $ build/oa-tool brain check /tmp/brain-scratch/steady-commander.oabrain --game-dir "$OA_GAME_DIR"