units.dat Format

Graphic

Offset0x0000
Length228 bytes (1 byte / Unit)
DescriptionGraphic of unit. Corresponds to an entry in the Images data file.
ValuesInteger value from 0 to 65535

Subunit 1

Offset0x00E4
Length456 bytes (2 bytes / Unit)
DescriptionSubunit 1 for this unit. Corresponds to another entry in this file.
ValuesInteger value from 0 to 65535

Subunit 2

Offset0x02AC
Length456 bytes (2 bytes / Unit)
DescriptionSubunit 2 for this unit. Corresponds to another entry in this file.
ValuesInteger value from 0 to 65535

Subunit 3

Offset0x0474
Length192 bytes (2 bytes / Unit) (First 96 Units only)
DescriptionSubunit 3 for this unit. Corresponds to another entry in this file.
ValuesInteger value from 0 to 65535

Construction Animation

Offset0x0534
Length912 bytes (4 bytes / Unit)
DescriptionConstruction Animation for this unit.
Bits
0None
2Zerg Scourge
15Zerg Defiler
19Zerg Drone
27Zerg Guardian
31Zerg Hydralisk
40Zerg Mutalisk
44Zerg Overlord
49Zerg Queen
52Zerg Ultralisk
56Zerg Zergling
101Infested Command Center
102Zerg Extractor
103Zerg Building Upgrade
104Zerg Large Construction
105Zerg Small Construction
200Protoss Stargate
325Terran Large Construction
327Terram Small Construction
329Terran Missile Tower
330Terran Addon Construction

Unknown

Offset0x08C4
Length228 bytes (1 byte / Unit)
DescriptionUnknown function.
ValuesInteger value from 0 to 255

Shield Enable

Offset0x09A8
Length228 bytes (1 byte / Unit)
DescriptionEnables shields.
Bits
0false
1true

Shield Amount

Offset0x0A8C
Length456 bytes (2 bytes / Unit)
DescriptionShield Amount.
ValuesInteger value from 0 to 65535.

Hitpoints

Offset0x0C54
Length912 bytes (4 bytes / Unit)
DescriptionHitpoint Amount. Lower 24 bits are the hitpoint value. The 4 high bits are unknown.
ValuesInteger value between 0 and 4294967295

Animation Level

Offset0x0FE4
Length228 bytes (1 byte / Unit)
DescriptionAnimation level this unit is drawn at. Basically Z-Order.
Bits
0Below Ground (Can walk under everything but Buildings)
1Below Ground (Can walk under everything but Buildings)
2Low Ground (Can walk under corners of buildings/units)
3Low Ground (Can walk under corners of buildings/units)
4Ground (Normal ground unit elevation level)
5Low Air
6Low Air
7Low Air
8Low Air
9Air
10Air
11Air
12Air
13High Air
14High Air
15High Air
16High Air
17Orbital
18Orbital

Movement Type

Offset0x10C8
Length228 bytes (1 byte / Unit)
DescriptionMovement type for this unit.
Bits
0None
64Creep
65Walk
193Hover
197Fly

StarEdit: Order/SubLabel

Offset0x11AC
Length228 bytes (1 byte / Unit)
DescriptionThe sub-label (rank, etc) displayed in StarCraft, and the Order this unit is displayed in its folder in StarEdit.
ValuesInteger value between 0 and 255.

Action: Computer AI Idle

Offset0x1290
Length228 bytes (1 byte / Unit)
DescriptionAction/Order this unit performs when it's Idle. Used when under Computer AI control. Corresponds to entry in Orders data file.
ValuesInteger value between 0 and 255.

Action: Human AI Idle

Offset0x1374
Length228 bytes (1 byte / Unit)
DescriptionAction/Order this unit performs when it's Idle. Used when under Human AI control. Corresponds to entry in Orders data file.
ValuesInteger value between 0 and 255.

Action: Unknown

Offset0x1458
Length228 bytes (1 byte / Unit)
DescriptionAction/Order this unit performs at some unknown time. Corresponds to entry in Orders data file.
ValuesInteger value between 0 and 255.

Action: Ground Attack

Offset0x153C
Length228 bytes (1 byte / Unit)
DescriptionAction/Order this unit performs when attacking Ground units. Corresponds to entry in Orders data file.
ValuesInteger value between 0 and 255.

Action: Air Attack

Offset0x1620
Length228 bytes (1 byte / Unit)
DescriptionAction/Order this unit performs when attacking Air units. Corresponds to entry in Orders data file.
ValuesInteger value between 0 and 255.

Weapon: Ground

Offset0x1704
Length228 bytes (1 byte / Unit)
DescriptionWeapon this unit uses to attack Ground units. Corresponds to entry in Weapons data file.
ValuesInteger value between 0 and 255.

Max Hit: Ground

Offset0x17E8
Length228 bytes (1 byte / Unit)
DescriptionMax # of times unit hits its target per Ground attack. This value is for statistics purposes only. Changing it only effects the value displayed in StarEdit.
ValuesInteger value between 0 and 255.

Weapon: Air

Offset0x18CC
Length228 bytes (1 byte / Unit)
DescriptionWeapon this unit uses to attack Air units. Corresponds to entry in Weapons data file.
ValuesInteger value between 0 and 255.

Max Hit: Air

Offset0x19B0
Length228 bytes (1 byte / Unit)
DescriptionMax # of times unit hits its target per Air attack. This value is for statistics purposes only. Changing it only effects the value displayed in StarEdit.
ValuesInteger value between 0 and 255.

Unknown

Offset0x1A94
Length228 bytes (1 byte / Unit)
DescriptionUnknown function.
ValuesInteger value between 0 and 255.

Special Ability Flags

Offset0x1B78
Length912 bytes (4 bytes / Unit)
DescriptionSpecial Ability Flags. Add any of these together.
Bits
0x00000001Building
0x00000002Add-on
0x00000004Flyer
0x00000008Worker
0x00000010Sub-Unit (Turret)
0x00000020Flying Building
0x00000040Hero
0x00000080Regenerates HP
0x00000100Animated Idle
0x00000200Cloakable
0x000004002 Units in 1 Egg
0x00000800Neutral accessories
0x00001000Resource Depot
0x00002000Contains gas
0x00004000Robotic Unit
0x00008000Detector
0x00010000Organic unit
0x00020000Creep Building
0x00040000Unused
0x00080000Requires PSI
0x00100000Burrowable
0x00200000Mana bar
0x00400000Permanent cloak
0x00800000NPC / accessories
0x01000000Morph from other unit
0x02000000Large Unit ???
0x04000000Huge Unit ???
0x08000000Auto attack and move
0x10000000Attack
0x20000000Invincible
0x40000000Mechanical
0x80000000Produces Units

Subunit (Turret) Attack Range

Offset0x1F08
Length228 bytes (1 byte / Unit)
DescriptionSubunit Attack Range. Only valid for units with subunits.
ValuesInteger values between 0 and 255.

Sight Range

Offset0x1FEC
Length228 bytes (1 byte / Unit)
DescriptionSight range for this unit.
ValuesInteger values between 0 and 225 (anything above 11 crashes the game).

Armor Upgrade Group

Offset0x20D0
Length228 bytes (1 byte / Unit)
DescriptionUpgrade groups that change the Armor for this unit.
Bits
1Terran Infantry
2Terran Vehicle
3Terran Air
4Zerg Ground
5Zerg Air
6Protoss Ground
7Protoss Air
60None

Size

Offset0x21B4
Length228 bytes (1 byte / Unit)
DescriptionAffects damage unit is dealt when attacked.
Bits
0Undefined
1Small
2Medium
3Large

Armor

Offset0x2298
Length228 bytes (1 byte / Unit)
DescriptionAmount of Armor this unit has.
ValuesInteger value between 0 and 255.

Unknown

Offset0x237C
Length228 bytes (1 byte / Unit)
DescriptionUnknown function.
ValuesInteger value between 0 and 255.

Sounds

Offset0x2460
Length3268 bytes (? bytes / Unit)
DescriptionUnit sound section...
ValuesInteger value between 0 and 255.

Width

Offset0x3124
Length456 bytes (2 bytes / Unit)
DescriptionWidth of the unit. Used for movement purposes.
ValuesInteger value from 0 to 65535

Height

Offset0x32EC
Length456 bytes (2 bytes / Unit)
DescriptionHeight of the unit. Used for movement purposes.
ValuesInteger value from 0 to 65535

Circle Width

Offset0x34B4
Length456 bytes (2 bytes / Unit)
DescriptionI thought it determined the width of the circle, but apparently it doesn't...
ValuesInteger value from 0 to 65535

Circle Height

Offset0x367C
Length456 bytes (2 bytes / Unit)
DescriptionI thought it determined the height of the circle, but apparently it doesn't...
ValuesInteger value from 0 to 65535

Portrait

Offset0x3844
Length456 bytes (2 bytes / Unit)
DescriptionDetermines portrait displayed.
ValuesValue corresponds to an entry in the Portraits data file.

Cost: Minerals

Offset0x3A0C
Length456 bytes (2 bytes / Unit)
DescriptionDetermines minerals required to build.
ValuesInteger values between 0 and 65535.

Cost: Vespene Gas

Offset0x3BD4
Length456 bytes (2 bytes / Unit)
DescriptionDetermines vespene gas required to build.
ValuesInteger values between 0 and 65535.

Cost: Build Time

Offset0x3D9C
Length456 bytes (2 bytes / Unit)
DescriptionDetermines time to build. Value here is in seconds.
ValuesInteger values between 0 and 65535.

Restrictions

Offset0x3F64
Length456 bytes (2 byte / Unit)
DescriptionMight determine the default Player Settings for this unit (whether it's enabled or not, etc).
ValuesInteger values between 0 and 65535

StarEdit: Group Flags

Offset0x412C
Length228 bytes (1 byte / Unit)
DescriptionCombinations of the values below determine the StarEdit folder the unit appears in.
Bits
0x01Zerg
0x02Terran
0x04Protoss
0x08Unit
0x10Building
0x20Factory
0x40Independent
0x80Neutral

Unknown

Offset0x4210
Length228 bytes (1 byte / Unit)
DescriptionUnknown function.
ValuesInteger values from 0 to 255.

Food Produced

Offset0x42F4
Length228 bytes (1 byte / Unit)
DescriptionAmount of food produced by this unit.
ValuesInteger values from 0 to 255.

Cost: Food

Offset0x43D8
Length228 bytes (1 byte / Unit)
DescriptionAmount of food required to produce unit. Actual value is this value / 2, because the Zergling and Scourge are 2 for 1.
ValuesInteger values from 0 to 255.

Transport/Bunker Space

Offset0x44BC
Length228 bytes (1 byte / Unit)
DescriptionSpace this unit has for storing units (i.e. Bunkers and Transports).
ValuesInteger values from 0 to 255.

Score: Build

Offset0x45A0
Length456 bytes (2 bytes / Unit)
DescriptionPoint value awarded for constructing this unit.
ValuesInteger values from 0 to 65535.

Score: Destroy

Offset0x4768
Length456 bytes (2 bytes / Unit)
DescriptionPoint value awarded for destroying this unit.
ValuesInteger values from 0 to 65535.

Unknown

Offset0x4930
Length228 bytes (1 byte / Unit)
DescriptionUnknown function.
ValuesInteger values from 0 to 255.

Brood War Unit

Offset0x4AF8
Length228 bytes (1 byte / Unit)
DescriptionFlag to determine if the unit is a Brood War (Expansion) Unit or not.
Bits
0false
1true

StarEdit: Availability Flags

Offset0x4BDC
Length456 bytes (2 bytes / Unit)
DescriptionDetermines the availability of the unit in StarEdit.
Bits
0x0001Owned (Not Neutral)
0x0002Placeable (With Map Editor or Trigger)
0x0004Mission Briefing
0x0008Removed from Player Settings
0x0010Race Restricted
0x0020Part of Terrain (Traps)
0x0040Unknown
0x0080Special Effect/Nuke
0x0100Unknown
0x0200Brood War
0x0400Unknown
0x0800Unknown
0x1000Unknown
0x2000Unknown
0x4000Unknown
0x8000Unknown