All format pages ↓
Tutorials & reference

Glossary

From coreprime/kbot @ 0ab97bf · Edit on GitHub

A cross-format reference of the recurring vocabulary in Total Annihilation modding. Terms link back to the page where they're most deeply discussed.


Anchor object

A 3DO piece with one vertex and zero primitives. Invisible at runtime; its purpose is to serve as a named coordinate for COB script commands (emit-sfx from <anchor>;).

Archive

A HPI / UFO / CCX / GP3 file. All four extensions are the same on-disk format and only differ in load order.

ARGB4444 / ARGB1555

The two 16-bit pixel encodings used by a truecolor TAF. ARGB4444 packs 4 bits each of alpha, red, green and blue (16 levels of soft alpha); ARGB1555 packs a 1-bit alpha plus 5 bits each of RGB (a hard cutout). A frame's Format byte (4 or 5) selects which.

Attribute cell

A 16×16 pixel cell in a TNT (or SCT) map. Each tile is 32×32 px and so contains 4 attribute cells. Heights, feature placements, and pathing/build legality are stored per attribute cell.

Axis

For COB/3DO purposes, a numeric ID identifying one of the three rotation axes: 0 = X, 1 = Y, 2 = Z. The COB opcodes for MOVE/TURN/SPIN take the axis as an inline operand. Y is up in 3DO files.

BOS

"Basic Object Script" — the C-like source language for unit animation and behaviour scripts. Compiles to COB. Hand-written by modders; recovered from COB by kbot cob decompile.

COB

"Cobble" — the stack-based bytecode the engine actually executes. See COB / BOS.

Compression chunk

A 64 KiB-decompressed-or-less block inside an HPI file. Each chunk has its own SQSH header, compression method (LZ77 / ZLib / none), size pair, and optional second-pass XOR scrambling.

Embedded palette

A PAL appended to a PCX file, immediately after the RLE pixel data, prefixed by a 0x0C marker byte. 769 bytes total.

Feature

A static, non-unit object placed on a TNT map: tree, rock, metal patch, geothermal vent, hydration field, etc. Defined in a features/**/*.tdf file (see TDF) and referenced by name from the TNT.

Fixed-point

The 3DO model coordinate system. Each int32 coordinate represents value / 65536.0 world-space units. So 0x00010000 = exactly 1 world unit; 0x00018000 = 1.5 world units.

Footprint

A unit or feature's grid bounding box, expressed in 16-pixel attribute cells (FootprintX × FootprintZ). The engine uses this for build placement and pathing.

Game tick

The fundamental time unit. 30 ticks per second. Most timing fields in COB and GAF use ticks.

HPI

"HAPI" archive. See HPI / UFO / CCX / GP3.

Layering

The way the engine combines multiple HPI archives at boot. Files in a later-loaded archive shadow files of the same path in earlier archives. Load order is (lowest to highest priority): .hpi → .ufo → .ccx → .gp3.

Lookup table

A .alp, .lht, or .shd file: rows of 256 palette indices (not RGB), one column per source colour. A .alp is 65,536 bytes (256 rows, one per blend partner); a .shd or .lht is 8,192 bytes (32 rows, one per shade or light level). The engine looks up the current colour in the row it needs, and the result is another palette index that can be drawn through the regular 8bpp pipeline. The game uses a table only when its size is exact; a missing table, or one of any other size, is rebuilt from the palette. See PAL.

LZ77

The sliding-window compression used in HPI chunks when CompMethod == 1. 4 KiB window, 2-17 byte matches, LSB-first tag bits.

Magic pink

Palette index 9 in the canonical TA palette (#5454FC). Used by editor tools as a fill colour for transparent regions in source PCX/GAF files, and the stored key of many GAF frames, which makes it transparent in those frames. Elsewhere it is an ordinary colour. See Transparency key.

Object name

The lowercased base name shared by a unit's 3DO, COB, and PCX files. Declared in the FBI as the Objectname field. Distinct from UnitName, which is the external identifier used by other configs.

OTA

"Online Total Annihilation" — the metadata sidecar for a TNT map. Plain text in TDF format (TDF). Carries mission name, description, AI brief, start positions, environmental hints.

Paletted image

A bitmap whose pixel values are 8-bit indices into a separate 256-entry PAL, rather than direct RGB triples. Every visible asset shipped with TA is paletted: PCX, GAF, SCT, TNT tile pixels, and the embedded minimaps. The notable exception is TA: Kingdoms' truecolor TAF animations.

Piece

A named sub-object in a 3DO. COB scripts manipulate pieces by name (turn turret1 to y-axis [90] speed [60];).

Schema

A named alternative game-setup inside a TNT's sister OTA file. Different schemas typically host different start-position layouts for different player counts.

Sea level

The SeaLevel field in a TNT header. Any attribute cell whose Height byte is less than sea level is treated as underwater. A SeaLevel == 0 map has nothing underwater; SeaLevel == 255 has everything underwater.

Section

An SCT file. The reusable tile chunks Cavedog's TAE editor stitched together to build the final TNT maps.

Signal mask

A bitmask declared in a COB script (set-signal-mask <n>) that determines which signal messages will preempt the current script instance. Used to cleanly cancel Walk/Aim/Idle animations when state changes.

Side

ARM or CORE in TA; Aramon, Taros, Veruna, or Zhon in TA: Kingdoms. Declared per-unit in the FBI Side field; also relevant for which sided palette a GAF animation will render against in TA: Kingdoms.

SQSH

The marker (0x48535153 LE) at the head of each compressed chunk in an HPI. Whimsical reference to the chunks being "squashed" data.

Sub-frame

A nested GAF frame. A single visible animation frame can be a composite of multiple sub-frames blitted in order, each with its own origin offset and pixel data.

TAF

A TA: Kingdoms truecolor animation. Reuses the GAF container layout but stores 16-bit ARGB4444 / ARGB1555 pixels instead of palette indices, so it carries its own colour and alpha. The .taf extension is shared with paletted GAF-style files — the per-frame format byte tells them apart.

Tick

See game tick.

Tile

A 32×32-pixel chunk of map graphics. The fundamental display unit for TNT and SCT. The tile grid is indexed in uint16, allowing up to 65,536 unique tiles per map in theory.

Transparency key

The palette index a GAF frame stores as transparent. The game leaves a raw frame's pixels of that value undrawn; a compressed frame's transparent pixels are its skip runs, and its other pixels are drawn even when they equal the key. There is no palette-wide transparent index: terrain, minimaps, PCX backdrops and model textures draw every index, palette index 0 (black) included. Truecolor TAF frames have no key — transparency comes from the per-pixel alpha channel instead.

Truecolor

A bitmap that stores a colour (and alpha) per pixel rather than an index into a palette. The exception to TA's otherwise universally paletted art: TA: Kingdoms' TAF animations use 16-bit ARGB4444 / ARGB1555 pixels.

TSF

"TAF Source Format" — the human-readable, brace-delimited text form of a TAF. The TA: Kingdoms GUI loader reads .tsf directly for menu backgrounds; kbot taf decompile emits it and kbot taf compile reads it back. See TAF / TSF.

Virtual filesystem (VFS)

The merged tree of files the engine (and kbot mount / kbot mcp) see after layering every HPI-family archive in an install root. Lets you reference a file like units/ARMCOM.fbi without caring whether it lives in totala1.hpi, ccdata.ccx, or a flattened directory.

Void cell

A TNT attribute cell with Feature == 0xFFFC. Marks impassable terrain (canyon walls, deep water boundaries) that is not itself a feature but should be treated as if one were there.

Yardmap

A multi-line ASCII grid in a FBI describing per-cell restrictions for a building's footprint. Common letters: o = open land, c = closed (built-on), w = water-only.