Section coverage
Decoded into typed fields and re-encoded when edited:
| Section | Holds |
|---|---|
TYPE, VER , IVE2 |
map type and revision |
DIM , ERA |
dimensions, tileset |
SPRP |
scenario name and description |
STR , STRx |
string table (16-bit / Remastered 32-bit offsets) |
OWNR, IOWN, SIDE, COLR, CRGB, FORC |
players, races, colours, forces. IOWN is StarEdit's own copy of the player types (scenario.editorPlayerTypes); the editor writes both from Player Settings and Check Map warns when a file's two disagree |
MTXM, TILE, ISOM |
terrain |
MASK |
fog of war |
UNIT, THG2, DD2 |
units, sprites, doodads |
MRGN |
locations |
TRIG, MBRF, SWNM |
triggers, briefings, switch names |
UNIS/UNIx, PUNI |
unit settings and availability |
UPGS/UPGx, UPGR/PUPx |
upgrade settings and restrictions |
TECS/TECx, PTEC/PTEx |
technology settings and restrictions |
WAV |
sound table |
Kept as raw bytes and written back unchanged:
| Section | Why |
|---|---|
VCOD |
StarEdit's fixed verification table, identical in every unprotected map |
UPRP, UPUS |
the 64 Create Unit with Properties slots (sections/cuwp.ts: valid-state bits, valid-field bits, owner, hit points / shields / energy as percentages, resources, hangar, state bits, 20 bytes each) and StarEdit's "slot in use" byte per slot; Triggers ▸ Unit Properties Slots… edits them, the action names one 1-based in its target field |
IVER |
obsolete StarEdit version stamp |
| anything else | unknown or undocumented sections a map happens to carry |
To model a new section: add a codec under sections/, decode it in parseScenario,
add a case to encodeSection, and add a round-trip test to tests/chk.test.ts.