Generated lookup tables extracted directly from the game's data
files — useful when you need to know "what's the UnitName for the
Krogoth?" without grepping through units/*.fbi, or "which units use
the GAUSS weapon?" without scanning every FBI by hand.
These tables are regenerated from the actual install, not hand-curated. Bug reports about wrong data should be filed against the extractor (see How these are generated) rather than the game.
This repo is the data-only sibling of coreprime/kbot (the toolkit that does the actual parsing). The pages here exist so you can browse the catalogue without cloning kbot or owning a TA install.
Important
Copyright & attribution. The unit stats, weapon definitions, build trees, and portrait JPGs/PNGs in this repo are derivatives of data files shipped with Total Annihilation — copyright Cavedog Entertainment / GT Interactive (1997) and presently distributed by Atari. This repo claims no rights over that content; it is reproduced for reference/research purposes only.
Only the organisation of this repo (file layout, markdown phrasing in this README) reflects the maintainer's effort. The extractor source code lives in coreprime/kbot and is separately MIT-licensed there.
No LICENSE file is shipped here intentionally — if you redistribute
these tables, you take on whatever responsibility comes with reproducing
Cavedog's data. If you are Atari or a rights-holder and want this
material removed or relabelled, open an issue and it will be.
| Page | Rows | Source |
|---|---|---|
| TA unit IDs | 278 units (137 ARM + 141 CORE), grouped by side and role | units/*.fbi |
| TA weapons | 198 weapon definitions + cross-reference to the units that fire them | weapons/*.tdf, gamedata/weapons.tdf |
| TA build tree | 45 builders × 575 (builder, unit) pairs; per-builder buildable grids with portraits; reverse "who builds X" index |
gamedata/sidedata.tdf [CANBUILD] + every download/*.tdf [MENUENTRY] |
The TA: Kingdoms catalogue lives in a separate sibling repo —
coreprime/reference-tak
— since the two games' data shapes diverge enough (TA:K inlines
weapons in FBIs, has 5 sides, uses linear canbuild/*/ directories
instead of a 2×3 menu grid) that mixing them in one repo would just
clutter both.
Generated by kbot document in the
coreprime/kbot toolkit. The command walks a flattened TA install,
parses every FBI/TDF with the in-process Go parser, and writes the
markdown files and unit portraits straight into this repo.
# 1. Flatten the install once (kbot)
kbot mount /path/to/total-annihilation flatten --target ./ta-flat
# 2. Point kbot document at the flat install + this repo
kbot document --source ./ta-flat --target ./Or, from a kbot checkout with a .env.local configured:
cd /path/to/kbot
task document # writes into ../reference by defaultThe pipeline lives in internal/documentor (Go source) with
embedded text/template files under
internal/documentor/templates/; portrait conversion uses the
in-process formats/pcx decoder.
kbot document re-converts the 282 portraits as part of its run, but
defaults to skipping any PNG that already exists at the destination —
so reruns are near-instant. To force a fresh batch (e.g. after a
mod-pack ships new portraits):
kbot document --target ./ --force-portraitsPortraits are keyed by the unit's Objectname field, lowercased — so
Objectname=ARMCOM resolves to img/ta-units/armcom.png. Units whose
FBI has no matching PNG render with an em-dash in the image column
(ARMSCORP, CORBUILD, CORSS, CORTRUCK are the four base-game units
that Cavedog never gave portraits — none appear on a normal build
menu).
The TA: Kingdoms equivalent of these tables lives in coreprime/reference-tak.
Note
Pre-Go versions of this repo used a Python pipeline
(extract_units.py, render_tables.py, …). Those scripts were
retired once kbot document reached parity; the Go path is the only
supported regen route now.
Three concrete uses, each one a question the kbot maintainer was asked enough times to write a table for:
- "What's the
UnitNamefor X?" — modders adding a unit to a build menu need to spell the constructor'sUnitNameexactly right indownload/<NAME>.tdf(UNITMENU=ARMVPetc.). - "Which units share a weapon?" — useful when tuning a weapon TDF; helps spot collateral nerfs/buffs.
- "Is
<FOOBAR>a stock unit or a mod?" — answers "did Cavedog ship this, or am I looking at a third-party add-on?".
For the format of these files (vs. the data they contain), see the kbot docs — FBI / TDF / OTA, including the FBI field dictionary.