从文件夹到玩家的游戏交互式流程图
地图包的构成
.oamap 压缩包、它的 oamap.yaml 清单、打包工具写入的地图索引,以及地图的尺寸和要素如何决定它是否适配某个游戏。
GitHub ·docs/maps/oamap-standard.md02模组的构成
.oamod 压缩包和 oamod.yaml 配置文件:身份、布局、上限、数据键、脚本扩展,以及它启用的标准规则。
GitHub ·docs/mods/oamod-standard.md03制作变异器
叠在基础游戏或任意模组上的小型 .oamut:文件夹、清单、mutate 返回的计划、选项、沙箱,以及多个变异器叠加时的生效顺序。
GitHub ·docs/mutators/oamut-standard.md04Lua 示例
来自真实包的六份可运行脚本:一条规则、带上限的缩放、按阵营、可以拒绝本局的单位钩子、地物钩子,以及分层文件夹的文件计划。
GitHub ·docs/mutators/oamut-standard.md#61-the-lua-forms05移植旧变异器
把 KroggyComm 1.1 从原档案做成包,以及一份 TA: Mutation 规则文件:用 sm 原样保留,或改写成 Lua。
GitHub ·docs/mutators/authoring.md#15-importing-a-ta-mutation-mutator06检查、打包与发布
oa-tool mutator check 与 pack、一次试运行、目录页显示什么、图标,以及如何把包提交给 Core Prime。
GitHub ·docs/mutators/authoring.md#1-a-first-mutator07制作大脑
打一个电脑席位的 .oabrain:文件夹、每一条清单键、标签、级别、全图视野、脚本在何处运行、额度,以及它停下时会怎样。
GitHub ·docs/brains/oabrain-standard.md08大脑的 Lua
Steady Commander 的清单和脚本、钩子、大脑可以知道和做到的事、数值、随机抽取、计时器和聊天。
GitHub ·docs/brains/oabrain-standard.md#7-what-a-brain-may-know09Classic,一个完整实例
用 Lua 写成的内置电脑玩家:它的文件、任务表、一个任务、quirk 注记、留在引擎里的部分,以及同样的命令如何被证明。
GitHub ·docs/brains/authoring.md#13-classic-a-walkthrough10学习得来的网络
大脑为何可能随包带上一个 .oann、整数运算、各层、运行一份、oa-tool brain net、各项限制,以及资料库显示什么。
GitHub ·docs/brains/oabrain-standard.md#9-neural-networks11检查、打包与发布大脑
oa-tool brain pack 与 check、一场无头对局和一条跟踪、资料库的检查与席位日志、目录的 oabrain 类型,以及如何把包提交给 Core Prime。
GitHub ·docs/brains/authoring.md#11-testing12标准规则
配置文件可以启用的已记录规则,每条都有键、取值及其来源行为。模拟规则必须在玩家之间一致。
GitHub ·docs/mods/standard-hacks13脚本扩展
配置文件可提供给模组单位脚本的值,例如单位的击杀数或其所有者的同盟关系,以及 COB 脚本如何读取每一项。
GitHub ·docs/mods/script-extensions14版本号与版本
你的版本号是自由文本,从不排序。packaging.revision 随每次重新打包递增;目录为版本编号。切勿用不同的字节重复使用同一版本号和修订号。
GitHub ·docs/mods/oamod-standard.md#47-catalogue-releases15发布到 Core Prime
检查包、提交给内容库、版本如何出现在目录和每位玩家的资料库中,以及如何运行自己的注册表。
GitHub ·docs/registries快速上手:地图包
# 一个文件夹,里面是你的地图,顶层放清单 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} # 校验并打包;索引会自动写入 $ oa-tool pack my-maps/ -o my-maps.oamap
快速上手:模组
# 一个提高单位上限并启用两条共享规则的模组 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 # 文件未写的一切都按 3.1c 运行 $ oa-tool pack small-mod/ -o small-mod.oamod
快速上手:变异器
# Commander Radar,作者 Drinken:一个文件夹,清单放在顶层 commander-radar/ oamut.yaml mutator.lua # mutator.lua:一条规则;选项 radar 决定范围 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 # 在文件夹外打包,再检查 .oamut $ oa-tool mutator pack commander-radar $ oa-tool mutator check commander-radar-1.oamut
快速上手:大脑
# Steady Commander:一个文件夹,清单放在顶层 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: - "*" # 打包这个文件夹,再对照一个游戏检查 .oabrain $ 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"