Anatomy of a map pack
The .oamap zip, its oamap.yaml manifest, the map index the packer writes, and how a map's size and features decide whether it fits a game.
The package
A .oamap is a zip of the pack's folder, with oamap.yaml at the top or in the one folder the top holds (the Finder's Compress makes such a file). The archive rules are the mod package's: stored or deflated entries; no links, device names, absolute paths or ..; no two names that differ only in case; at most 4 GiB unpacked.
my-maps.oamapthe file a player downloads or opens├─ oamap.yamlrequired the manifest: id, name, version, author, packaging, and the map index├─ Ridge.tnt · Ridge.otaone map: its terrain (.tnt) and its settings (.ota)├─ Long Lakes.tnt · Long Lakes.otaanother; a pack holds 1 to 256 maps└─ READMEanything else is carried along and ignoredThe manifest
Strict YAML: one document, one top-level mapping, no anchors and no block scalars. The id is lower-case kebab-case, 1 to 32 bytes, and is the folder the pack installs into. A key the standard does not list is refused.
oamap: 1 id: my-maps # kebab-case, 1 to 32 bytes; the install folder's name name: My Maps version: "1.0" # free text, never ordered description: Two maps for four and ten players author: {name: A. Mapper} packaging: {revision: 1, date: 2026-10-18, packager: A. Mapper} requires: {engine: ">= 0.8.0"} # quote the engine range: an unquoted > starts a block scalar, which is refused # maps: is written for you by oa-tool pack (the index below)
The index
oa-tool pack writes a maps entry for every map in the folder that has a Network schema, in byte order of its path. A folder may list entries itself to set a map's name, description or player count; the rest is always computed.
| Key | Rule |
|---|---|
stem | The map's file stem; one the folder does not hold is an error. |
name, description | Set by the folder's list or taken from the map; the same rules as a packed entry. |
players | The player count the map is made for, 2 to 10. |
size, preview, files | Always computed by the packer, even when the folder sets them. |
How a map fits
A map fits a game when the game has the tileset, the features and the units the map names. The content library checks every pack against the base game and every mod and records the verdicts; that is where a mod page's "plays on" count and a map's list of mods come from.
A pack that needs an expansion says so in requiredExpansions; a map that does not fit the base game alone is still listed, and the game says why it will not load.
Where it installs
Into Documents/Open Annihilation/Maps/