Info modding
Un pacchetto di mappe è un file .oamap, una mod un file .oamod, un mutatore un file .oamut e un cervello un file .oabrain: uno zip con un manifesto in cima. Il gioco convalida il manifesto, installa il pacchetto con il suo identificativo e lo gioca secondo le regole dichiarate. Questa guida ti porta da una cartella a una release del catalogo, e ogni capitolo rimanda allo standard che riassume nella documentazione del motore.
Da una cartella al gioco di un giocatoremappa di flusso interattiva
Anatomia di un pacchetto di mappe
Lo zip .oamap, il suo manifesto oamap.yaml, l'indice delle mappe scritto dal pacchettizzatore, e come dimensione ed elementi di una mappa decidono se si adatta a un gioco.
GitHub ·docs/maps/oamap-standard.md02Anatomia di una mod
Lo zip .oamod e il profilo oamod.yaml: identità, layout, limiti, chiavi dati, estensioni di script e le regole standard che attiva.
GitHub ·docs/mods/oamod-standard.md03Creare un mutatore
Un piccolo .oamut sopra il gioco base o qualsiasi mod: la cartella, il manifesto, il piano che mutate restituisce, le opzioni, la sandbox e l'ordine di una pila.
GitHub ·docs/mutators/oamut-standard.md04Esempi Lua
Sei script funzionanti, da pacchetti veri: una regola, una scala con limiti, una fazione, un hook delle unità che può rifiutare la partita, un hook degli elementi e un piano di file con cartelle a strati.
GitHub ·docs/mutators/oamut-standard.md#61-the-lua-forms05Portare un mutatore storico
KroggyComm 1.1, dai suoi archivi a un pacchetto, e un file di regole di TA: Mutation tenuto con sm o riscritto in Lua.
GitHub ·docs/mutators/authoring.md#15-importing-a-ta-mutation-mutator06Controllare, impacchettare e pubblicare
oa-tool mutator check e pack, una prova a secco, cosa mostra la pagina del catalogo, l'icona e come offrire il pacchetto a Core Prime.
GitHub ·docs/mutators/authoring.md#1-a-first-mutator07Creare un cervello
Un .oabrain che gioca un posto computer: la cartella, ogni chiave del manifesto, i tag, i livelli, la vista completa, dove gira lo script, i budget e che cosa succede quando si ferma.
GitHub ·docs/brains/oabrain-standard.md08Il Lua del cervello
Il manifesto e lo script di Steady Commander, gli hook, che cosa un cervello può sapere e fare, i numeri, le estrazioni casuali, i timer e la chat.
GitHub ·docs/brains/oabrain-standard.md#7-what-a-brain-may-know09Classic, un esempio svolto
Il giocatore computer integrato scritto in Lua: i suoi file, la tabella dei compiti, un compito, le note sulle particolarità, che cosa resta nel motore e come si dimostrano gli stessi ordini.
GitHub ·docs/brains/authoring.md#13-classic-a-walkthrough10Reti apprese
Perché un cervello può includere un .oann, l'aritmetica intera, gli strati, eseguirne una, oa-tool brain net, i limiti e che cosa mostra la Libreria.
GitHub ·docs/brains/oabrain-standard.md#9-neural-networks11Controllare, impacchettare e pubblicare un cervello
oa-tool brain pack e check, una partita headless e una traccia, il controllo della Libreria e il log del posto, il tipo oabrain del catalogo e come offrire il pacchetto a Core Prime.
GitHub ·docs/brains/authoring.md#11-testing12Regole standard
Le regole documentate che un profilo può attivare, ciascuna con chiave, valori e il comportamento da cui proviene. Le regole di simulazione devono coincidere tra i giocatori.
GitHub ·docs/mods/standard-hacks13Estensioni di script
I valori che un profilo può dare agli script delle unità di una mod, come le uccisioni di un'unità o le alleanze del suo proprietario, e come uno script COB legge ciascuno.
GitHub ·docs/mods/script-extensions14Versioni e release
La tua versione è testo libero e non viene mai ordinata. packaging.revision sale a ogni ripacchettizzazione; il catalogo numera le release. Non riusare mai versione e revisione con byte diversi.
GitHub ·docs/mods/oamod-standard.md#47-catalogue-releases15Pubblicare su Core Prime
Controllare un pacchetto, proporlo alla libreria dei contenuti, come una release appare nel catalogo e nella Libreria di ogni giocatore, e come gestire un registro proprio.
GitHub ·docs/registriesAvvio rapido: un pacchetto di mappe
# una cartella, le tue mappe dentro, un manifesto in cima 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} # convalida e pacchettizza; l'indice viene scritto per te $ oa-tool pack my-maps/ -o my-maps.oamap
Avvio rapido: una mod
# una mod che alza il limite di unità e attiva due regole condivise 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 # tutto ciò che il file omette si gioca come in 3.1c $ oa-tool pack small-mod/ -o small-mod.oamod
Avvio rapido: un mutatore
# Commander Radar, di Drinken: una cartella, il manifesto in cima commander-radar/ oamut.yaml mutator.lua # mutator.lua: una regola; l'opzione radar sceglie la portata 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 # impacchetta da fuori della cartella, poi controlla il .oamut $ oa-tool mutator pack commander-radar $ oa-tool mutator check commander-radar-1.oamut
Avvio rapido: un cervello
# Steady Commander: una cartella, il manifesto in cima 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: - "*" # impacchetta la cartella, poi controlla il .oabrain contro un gioco $ 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"