Skip to content

Characters, Armies & Creatures

Every mobile or fightable thing in War in Middle Earth — named heroes, troop armies, monsters — is one record in a single 196-entry entity table, embedded in the executable’s DATA hunk (offset 0x1DE8, 38 bytes per record). There is no separate “character class”; a lone hero and a 2,000-strong orc horde are the same record shape, just with different field values. Full byte-level layout: docs/wime/amiga/exe-gameplay-data.md § “Entity Table” in the main repo (not part of this site).

  • 42 heroes — named characters (Gandalf, Aragorn, Frodo, Théoden…)
  • 126 armies — troop units with strength counts (2,000 orcs, 120 cavalry, and so on)
  • 28 creatures — monsters and encounters (balrogs, spiders, wolves)

The important confirmed fields, after two rounds of corrected field-naming (see the doc’s correction notes for the full disproof of earlier guesses):

Field What it is
strength / maxStrength Current and starting troop count. Casualties subtract from strength; maxStrength is read-only and never changes.
hitPoints / hitPointsMax Current and maximum health for single figures. Confirmed by the game’s own status text (see below) — not a max/current pair split across two bytes as earlier notes assumed.
combat Individual combat power (0–244). The main driver of fight outcomes.
combatFlags A 2-bit flag, not a magic-level number: bit 0 = this unit’s attacks count as magical, bit 1 = this unit can only be harmed by magical power (“warded”). Earlier docs guessed the warding gate was armor == 255 — it isn’t; the two rosters barely overlap (13 vs. 41 entities).
staminaMax / stamina A movement-fatigue counter, unrelated to combat. 255 means “never tires” — the tireless roster is exactly the Nazgûl, Glorfindel, Gandalf the White, ents, and huorns.
obedience The percent chance a force accepts a player move order — see below.
race Selects which battle-sprite set (FRML) the entity uses; see Characters & Mobs for how that art is recolored per race.
spriteClass Selects the strategic-map icon; see the Icon Gallery for the full 30-icon atlas and its confirmed cell-selection formula.

The status screen and the Palantir both compute morale on the fly rather than storing it: an army’s morale word (poor/fair/good/excellent) comes from strength * 4 / maxStrength indexing a 4-band lookup table; a lone figure’s condition word (near death / gravely wounded / wounded / slightly wounded / hale and hardy) comes from hitPoints * 4 / hitPointsMax. That second table is itself confirmation that hitPoints/hitPointsMax really is health — the game only ever describes health in those terms.

obedience was originally guessed to be a faction/loyalty enum, with value 70 glossed as “conflicted, might betray.” That’s wrong: it’s a straight percentage chance the currently-selected force accepts a move order, computed once at the mouse-command handler as P(obey) = (obedience - 2) / 96, rand-tested every time you give an order.

Value P(obey) Who
0 0% Every evil force — Nazgûl, orcs, trolls, Sauron, Saruman, balrogs
1 0% Generic good armies and unrecruited leaders (Dáin, Théoden, Denethor, etc. before you recruit them)
3 1% Elrond, Círdan, Tom Bombadil, Bilbo, Galadriel, Treebeard, Radagast
4 2% Glorfindel
40 40% Gollum
70 71% Boromir
99 100% The Fellowship and every recruited leader

Boromir is the one member of the Fellowship who isn’t fully reliable — about three orders in ten are refused, permanently, for the entire game. This value is hard-coded and immutable: nothing in the executable ever writes 70 to his record, and the game’s normal recruitment promotion (which snaps any 1 up to 99) explicitly skips anyone whose value is already 4 or higher, so his 70 survives untouched no matter what else happens to his record. It isn’t a script event or a hidden betrayal mechanic — it’s simply how reliably Boromir, specifically, follows orders, for the whole game.

A sample across the roster, showing how the confirmed fields play out for familiar names:

Entity Combat Warded? Hit points Tireless? Obedience
Sauron 244 Yes 9 / 9 No (55) 0%
The Nazgûl Lord 30 Yes 5 / 5 Yes 0%
Gandalf the White 50 Yes 9 / 9 Yes 100%
Gandalf (Grey) 20 Yes 6 / 6 No (56) 100%
Elrond 99 Yes 9 / 9 No (40) 1%
Aragorn 9 No 6 / 6 No (44) 100%
Boromir 7 No 5 / 5 No (44) 71%
Frodo 4 No 7 / 7 No (40) 100%
Sam 3 No 5 / 5 No (32) 100%
Tom Bombadil 99 Yes 9 / 9 Never moves 1%

For how these stats resolve into an actual battle, see Combat & Events.