Home › Modding Info › Anatomy of a map pack
Chapter 01

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 ignored

The 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.

KeyRule
stemThe map's file stem; one the folder does not hold is an error.
name, descriptionSet by the folder's list or taken from the map; the same rules as a packed entry.
playersThe player count the map is made for, 2 to 10.
size, preview, filesAlways 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/, by the manifest's id, never by the file's name. A newer revision of the same version replaces the folder; another version may install alongside. Everything is checked before anything is written.