Info modding · per creatori di mappe, autori di mod, di mutatori e di cervelli

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

Una cartella qualsiasi: le mappe o gli archivi e le cartelle dati della mod, con il manifesto in cima.La tua cartellamappe, unità, script…oamap.yaml per un pacchetto di mappe, oamod.yaml per una mod: YAML rigoroso, un documento, una mappa di primo livello.Manifestooamap.yaml / oamod.yamloa-tool pack controlla manifesto e file come farebbe un caricamento, e scrive l'indice delle mappe di un pacchetto.oa-tool packconvalida, scrive l'indiceUn archivio zip su un solo disco; niente link, nomi di dispositivo, percorsi assoluti o .., al massimo 4 GiB decompressi..oamap / .oamoduno zip, un manifestoProponi il file alla libreria dei contenuti di Core Prime, o gestisci un registro tuo.PubblicaCore Prime o il tuo registroIl catalogo numera ogni release di una chiave di pacchetto; un numero più alto è un aggiornamento. Le versioni non vengono mai ordinate.Release del catalogor1, r2 … mai riordinateIl gioco legge il catalogo firmato e installa una release con GET.Libreria nel giocoOA › Mappe / Mod › GETUn .oamap o .oamod aperto sul desktop si installa da solo; valgono gli stessi controlli.Apri il fileun doppio clic lo installaInstallato con l'identificativo del manifesto, mai con il nome del file; una versione precedente resta in .backup.Documents/Open AnnihilationMaps/<id> · Mods/<id>installadecomprime per identificativoPassa su un passaggio per la regola che segue; cliccalo per aprire il capitolo. Tratteggiato: il percorso senza registro.
01

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.md
02

Anatomia 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.md
03

Creare 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.md
04

Esempi 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-forms
05

Portare 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-mutator
06

Controllare, 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-mutator
07

Creare 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.md
08

Il 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-know
09

Classic, 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-walkthrough
10

Reti 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-networks
11

Controllare, 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-testing
12

Regole 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-hacks
13

Estensioni 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-extensions
14

Versioni 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-releases
15

Pubblicare 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/registries

Avvio 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"