units.dat Format

Graphic

Offset
0x0000
Length
228 bytes (1 byte / Unit)
Description
Graphic of unit. Corresponds to an entry in the Images data file.
Values
Integer value from 0 to 65535

Subunit 1

Offset
0x00E4
Length
456 bytes (2 bytes / Unit)
Description
Subunit 1 for this unit. Corresponds to another entry in this file.
Values
Integer value from 0 to 65535

Subunit 2

Offset
0x02AC
Length
456 bytes (2 bytes / Unit)
Description
Subunit 2 for this unit. Corresponds to another entry in this file.
Values
Integer value from 0 to 65535

Subunit 3

Offset
0x0474
Length
192 bytes (2 bytes / Unit) (First 96 Units only)
Description
Subunit 3 for this unit. Corresponds to another entry in this file.
Values
Integer value from 0 to 65535

Construction Animation

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

Unknown

Offset
0x08C4
Length
228 bytes (1 byte / Unit)
Description
Unknown function.
Values
Integer value from 0 to 255

Shield Enable

Offset
0x09A8
Length
228 bytes (1 byte / Unit)
Description
Enables shields.
Bits
0
false
1
true

Shield Amount

Offset
0x0A8C
Length
456 bytes (2 bytes / Unit)
Description
Shield Amount.
Values
Integer value from 0 to 65535.

Hitpoints

Offset
0x0C54
Length
912 bytes (4 bytes / Unit)
Description
Hitpoint Amount. Lower 24 bits are the hitpoint value. The 4 high bits are unknown.
Values
Integer value between 0 and 4294967295

Animation Level

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

Movement Type

Offset
0x10C8
Length
228 bytes (1 byte / Unit)
Description
Movement type for this unit.
Bits
0
None
64
Creep
65
Walk
193
Hover
197
Fly

StarEdit: Order/SubLabel

Offset
0x11AC
Length
228 bytes (1 byte / Unit)
Description
The sub-label (rank, etc) displayed in StarCraft, and the Order this unit is displayed in its folder in StarEdit.
Values
Integer value between 0 and 255.

Action: Computer AI Idle

Offset
0x1290
Length
228 bytes (1 byte / Unit)
Description
Action/Order this unit performs when it's Idle. Used when under Computer AI control. Corresponds to entry in Orders data file.
Values
Integer value between 0 and 255.

Action: Human AI Idle

Offset
0x1374
Length
228 bytes (1 byte / Unit)
Description
Action/Order this unit performs when it's Idle. Used when under Human AI control. Corresponds to entry in Orders data file.
Values
Integer value between 0 and 255.

Action: Unknown

Offset
0x1458
Length
228 bytes (1 byte / Unit)
Description
Action/Order this unit performs at some unknown time. Corresponds to entry in Orders data file.
Values
Integer value between 0 and 255.

Action: Ground Attack

Offset
0x153C
Length
228 bytes (1 byte / Unit)
Description
Action/Order this unit performs when attacking Ground units. Corresponds to entry in Orders data file.
Values
Integer value between 0 and 255.

Action: Air Attack

Offset
0x1620
Length
228 bytes (1 byte / Unit)
Description
Action/Order this unit performs when attacking Air units. Corresponds to entry in Orders data file.
Values
Integer value between 0 and 255.

Weapon: Ground

Offset
0x1704
Length
228 bytes (1 byte / Unit)
Description
Weapon this unit uses to attack Ground units. Corresponds to entry in Weapons data file.
Values
Integer value between 0 and 255.

Max Hit: Ground

Offset
0x17E8
Length
228 bytes (1 byte / Unit)
Description
Max # 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.
Values
Integer value between 0 and 255.

Weapon: Air

Offset
0x18CC
Length
228 bytes (1 byte / Unit)
Description
Weapon this unit uses to attack Air units. Corresponds to entry in Weapons data file.
Values
Integer value between 0 and 255.

Max Hit: Air

Offset
0x19B0
Length
228 bytes (1 byte / Unit)
Description
Max # 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.
Values
Integer value between 0 and 255.

Unknown

Offset
0x1A94
Length
228 bytes (1 byte / Unit)
Description
Unknown function.
Values
Integer value between 0 and 255.

Special Ability Flags

Offset
0x1B78
Length
912 bytes (4 bytes / Unit)
Description
Special Ability Flags. Add any of these together.
Bits
0x00000001
Building
0x00000002
Add-on
0x00000004
Flyer
0x00000008
Worker
0x00000010
Sub-Unit (Turret)
0x00000020
Flying Building
0x00000040
Hero
0x00000080
Regenerates HP
0x00000100
Animated Idle
0x00000200
Cloakable
0x00000400
2 Units in 1 Egg
0x00000800
Neutral accessories
0x00001000
Resource Depot
0x00002000
Contains gas
0x00004000
Robotic Unit
0x00008000
Detector
0x00010000
Organic unit
0x00020000
Creep Building
0x00040000
Unused
0x00080000
Requires PSI
0x00100000
Burrowable
0x00200000
Mana bar
0x00400000
Permanent cloak
0x00800000
NPC / accessories
0x01000000
Morph from other unit
0x02000000
Large Unit ???
0x04000000
Huge Unit ???
0x08000000
Auto attack and move
0x10000000
Attack
0x20000000
Invincible
0x40000000
Mechanical
0x80000000
Produces Units

Subunit (Turret) Attack Range

Offset
0x1F08
Length
228 bytes (1 byte / Unit)
Description
Subunit Attack Range. Only valid for units with subunits.
Values
Integer values between 0 and 255.

Sight Range

Offset
0x1FEC
Length
228 bytes (1 byte / Unit)
Description
Sight range for this unit.
Values
Integer values between 0 and 225 (anything above 11 crashes the game).

Armor Upgrade Group

Offset
0x20D0
Length
228 bytes (1 byte / Unit)
Description
Upgrade groups that change the Armor for this unit.
Bits
1
Terran Infantry
2
Terran Vehicle
3
Terran Air
4
Zerg Ground
5
Zerg Air
6
Protoss Ground
7
Protoss Air
60
None

Size

Offset
0x21B4
Length
228 bytes (1 byte / Unit)
Description
Affects damage unit is dealt when attacked.
Bits
0
Undefined
1
Small
2
Medium
3
Large

Armor

Offset
0x2298
Length
228 bytes (1 byte / Unit)
Description
Amount of Armor this unit has.
Values
Integer value between 0 and 255.

Unknown

Offset
0x237C
Length
228 bytes (1 byte / Unit)
Description
Unknown function.
Values
Integer value between 0 and 255.

Sounds

Offset
0x2460
Length
3268 bytes (? bytes / Unit)
Description
Unit sound section...
Values
Integer value between 0 and 255.

Width

Offset
0x3124
Length
456 bytes (2 bytes / Unit)
Description
Width of the unit. Used for movement purposes.
Values
Integer value from 0 to 65535

Height

Offset
0x32EC
Length
456 bytes (2 bytes / Unit)
Description
Height of the unit. Used for movement purposes.
Values
Integer value from 0 to 65535

Circle Width

Offset
0x34B4
Length
456 bytes (2 bytes / Unit)
Description
I thought it determined the width of the circle, but apparently it doesn't...
Values
Integer value from 0 to 65535

Circle Height

Offset
0x367C
Length
456 bytes (2 bytes / Unit)
Description
I thought it determined the height of the circle, but apparently it doesn't...
Values
Integer value from 0 to 65535

Portrait

Offset
0x3844
Length
456 bytes (2 bytes / Unit)
Description
Determines portrait displayed.
Values
Value corresponds to an entry in the Portraits data file.

Cost: Minerals

Offset
0x3A0C
Length
456 bytes (2 bytes / Unit)
Description
Determines minerals required to build.
Values
Integer values between 0 and 65535.

Cost: Vespene Gas

Offset
0x3BD4
Length
456 bytes (2 bytes / Unit)
Description
Determines vespene gas required to build.
Values
Integer values between 0 and 65535.

Cost: Build Time

Offset
0x3D9C
Length
456 bytes (2 bytes / Unit)
Description
Determines time to build. Value here is in seconds.
Values
Integer values between 0 and 65535.

Restrictions

Offset
0x3F64
Length
456 bytes (2 byte / Unit)
Description
Might determine the default Player Settings for this unit (whether it's enabled or not, etc).
Values
Integer values between 0 and 65535

StarEdit: Group Flags

Offset
0x412C
Length
228 bytes (1 byte / Unit)
Description
Combinations of the values below determine the StarEdit folder the unit appears in.
Bits
0x01
Zerg
0x02
Terran
0x04
Protoss
0x08
Unit
0x10
Building
0x20
Factory
0x40
Independent
0x80
Neutral

Unknown

Offset
0x4210
Length
228 bytes (1 byte / Unit)
Description
Unknown function.
Values
Integer values from 0 to 255.

Food Produced

Offset
0x42F4
Length
228 bytes (1 byte / Unit)
Description
Amount of food produced by this unit.
Values
Integer values from 0 to 255.

Cost: Food

Offset
0x43D8
Length
228 bytes (1 byte / Unit)
Description
Amount of food required to produce unit. Actual value is this value / 2, because the Zergling and Scourge are 2 for 1.
Values
Integer values from 0 to 255.

Transport/Bunker Space

Offset
0x44BC
Length
228 bytes (1 byte / Unit)
Description
Space this unit has for storing units (i.e. Bunkers and Transports).
Values
Integer values from 0 to 255.

Score: Build

Offset
0x45A0
Length
456 bytes (2 bytes / Unit)
Description
Point value awarded for constructing this unit.
Values
Integer values from 0 to 65535.

Score: Destroy

Offset
0x4768
Length
456 bytes (2 bytes / Unit)
Description
Point value awarded for destroying this unit.
Values
Integer values from 0 to 65535.

Unknown

Offset
0x4930
Length
228 bytes (1 byte / Unit)
Description
Unknown function.
Values
Integer values from 0 to 255.

Brood War Unit

Offset
0x4AF8
Length
228 bytes (1 byte / Unit)
Description
Flag to determine if the unit is a Brood War (Expansion) Unit or not.
Bits
0
false
1
true

StarEdit: Availability Flags

Offset
0x4BDC
Length
456 bytes (2 bytes / Unit)
Description
Determines the availability of the unit in StarEdit.
Bits
0x0001
Owned (Not Neutral)
0x0002
Placeable (With Map Editor or Trigger)
0x0004
Mission Briefing
0x0008
Removed from Player Settings
0x0010
Race Restricted
0x0020
Part of Terrain (Traps)
0x0040
Unknown
0x0080
Special Effect/Nuke
0x0100
Unknown
0x0200
Brood War
0x0400
Unknown
0x0800
Unknown
0x1000
Unknown
0x2000
Unknown
0x4000
Unknown
0x8000
Unknown