| 
 | 
	
 
Unitnode Structure 
By DoA  
CUNIT STRUCT 
+0x0 - CUNIT* Previous 
+0x4 - CUNIT* Next 
+0x8 - DWORD dwHP 
+0xC - CSPRITE* Sprite 
+0x10 - WORD wMoveToXPos 
+0x12 - WORD wMoveToYPos 
+0x14 - CUNIT* Target_1 
+0x18 - WORD wCurrentXPos_? 
+0x1A - WORD wCurrentYPos_? 
+0x1C - WORD wX_? 
+0x1E - WORD wY_? 
+0x20 - BYTE bMovementFlags_? 
2 - Making Building? 
4 - Moving? 
 
+0x22 - BYTE bFlingyTurnRadius 
+0x23 - BYTE bCurrentDirection_? 
+0x24 - WORD wFlingyID 
 
+0x27 - BYTE bFlingyMovementType 
+0x28 - WORD wCurrentXPos 
+0x2A - WORD wCurrentYPos 
+0x2C - DWORD dwX_Halt 
+0x30 - DWORD dwY_Halt 
+0x34 - DWORD dwFlingySpeed 
+0x38 - DWORD dwUnknown_38_Speed 
+0x3C - DWORD dwUnknown_3C_Speed 
 
+0x48 - WORD wFlingyAcceleration 
 
+0x4C - BYTE bPlayerID 
+0x4D - BYTE bMainOrderID 
+0x4E - BYTE bMainOrderState 
+0x4F - BYTE bOrderSignal 
 
+0x54 - BYTE bMainOrderTimer 
+0x55 - BYTE bGroundWeaponCooldown 
+0x56 - BYTE bAirWeaponCooldown 
+0x57 - BYTE bSpellCooldown 
+0x58 - WORD wOrderTargetX 
+0x5A - WORD wOrderTargetY 
+0x5C - CUNIT* Target_Order 
+0x60 - DWORD dwShield 
+0x64 - WORD wUnitID 
+0x68 - CUNIT* PlayerPrevious 
+0x6C - CUNIT* PlayerNext 
+0x70 - CUNIT* Subunit 
+0x74 - CORDER* OrderQueueHead 
+0x78 - CORDER* OrderQueueTail 
 
+0x80 - CUNIT* ConnectedUnit 
 
+0x84 - BYTE bNumOfQueuedOrders 
+0x85 - BYTE bUnknown_85_Order_Timer_Seperate 
 
+0x88 - WORD wDisplayedUnitID? 
 
+0x8E - BYTE bRankIncrease 
+0x8F - BYTE bKillCount 
 
+0x93 - BYTE bUnknownState? 
+0x94 - BYTE bCurrentButtonSet 
+0x98 - WORD wQueue1 
+0x9A - WORD wQueue2 
+0x9C - WORD wQueue3 
+0x9E - WORD wQueue4 
+0xA0 - WORD wQueue5 
+0xA2 - WORD wEnergy 
+0xA4 - BYTE bQueueSlot 
 
+0xA6 - BYTE bSecondaryOrderID 
-Cloak, Build, expand creep 
+0xA8 - WORD bHPGainDuringBuild/Repair? 
 
+0xAC - WORD wRemainingBuildTime 
 
UNION 
WORD 
+0xC0 - BYTE bSpidermineCount 
+0xC1 - BYTE bUnusedC1 
+0xC2 - BYTE bUnusedC2 
+0xC3 - BYTE bUnusedC3 
CUNIT 
+0xC0 - CUNIT* Unit_Unknown_1 
IF Carrier/Reaver - First Hangar Unit 
IF Scarab/Interceptor - Parent 
IF Building - Addon 
IF Worker - Powerup Carried 
UNION 
WORD 
+0xC4 - WORD wAddonBuildID 
+0xC6 - WORD wUpgradeResearchTime 
CUNIT* 
+0xC4 - CUNIT* Unit_Unknown_2 
IF Scarab/Interceptor - Next Unit in Parent Hangar 
UNION 
BYTE 
+0xC8 - BYTE bScarabCount/bTechID 
+0xC9 - BYTE bInterceptorCount/bUpgradeID 
+0xCA - BYTE bLarvaSpawnTimer 
+0xCB - BYTE bIsLanding 
CUNIT 
+0xC8 - CUNIT* Unit_Unknown_2 
IF Scarab/Interceptor - Previous in Parent's Hangar 
+0xCC - BYTE b_Unknown 
-IF Interceptor/Scarab - InHanger? 
-IF CreepUnit - timer between creep expansions 
-IF Repairing - decrease mineral timer 
+0xCD - BYTE bUpgradeLevel 
+0xCE - BYTE bIsCarryingSomething?/Going to carry something?/Targeting Resources? 
+0xCF - BYTE bResourceAmount 
UNION 
WORD/BYTE 
+0xD0 - WORD wResourceContained/wPowerupDropTargetX 
+0xD2 - WORD wPowerupDropTargetY 
+0xD2 - BYTE bResourceIscript 
+0xD3 - BYTE bResourceCount? 
DWORD 
+0xD0 - CUNIT ResourceTarget/NydusConnected 
+0xD0 - CSPRITE NukeDot 
 
 
+0xDC - DWORD dwStatus 
00000001(0x1) - Is Completed 
00000010(0x2) - Is on ground? or is it is unit... 
00000100(0x4) - Is in air 
00001000(0x8) - Checked for disabled, if it is 00001000, then the unit is disabled(/unpowered?) 
00010000(0x10) - Checked for burrowing purposes, if it is 00010000, then the unit is burrowed 
00100000(0x20) - Unit is entering a building 
01000000(0x40) - unit is entering a transport 
10000000(0x80) -  
 
00000001(0x100) - Checked for invisible purposes, if it is 00000001, then the unit requires a detector? 
00000010(0x200) - checked for cloak? 
00000100(0x400) - deals with doodad states? if set, is disabled 
00001000(0x800) - Unit cloaking doesn't need energy decrease 
00010000(0x1000) - Unit is in unbreakable code section? Cannot receive orders 
00100000(0x2000) - Set by nobrkcodestart 
01000000(0x4000) -  
10000000(0x8000) - cannot attack if set 
 
00000001(0x10000) 
00000010(0x20000) - Is a Building? 
 
00000100(0x4000000) - Invincible 
 
00010000(0x10000000) - Speed upgrade 
00100000(0x20000000) - cooldown upgrade 
 
 
+0xE0 - BYTE bResouceType 
+0xE1 - BYTE bWireframeRandomizer 
+0xE2 - BYTE bSecondaryOrderState 
+0xE3 - BYTE bUnknown_E3_Counter_Down 
 
+0xEC - CUNIT* CurrentBuildUnit 
 
UNION 
WORD/CUNIT 
+0xF8 - WORD wRallyX 
+0xFA - WORD wRallyY 
+0xFC - CUNIT* RallyUnit 
CUNIT 
+0xF8 - CUNIT* PreviousPsiProvider 
+0xFC - CUNIT* NextPsiProvider 
+0x100 - DWORD dwPath_Unknown 
 
+0x106 - BYTE bUnused_106 
+0x107 - BYTE bIsBeingHealed 
+0x108 - WORD wX_Contours_1_Unknown 
+0x10A - WORD wY_Contours_1_Unknown 
+0x10C - WORD wX_Contours_2_Unknown 
+0x10E - WORD wY_Contours_2_Unknown 
+0x110 - WORD wRemoveTimer 
Hallucination, DSwarm, DWeb, Broodling 
+0x112 - WORD wDMatrixDamage 
+0x114 - BYTE bDMatrixTimer 
+0x115 - BYTE bStimTimer 
+0x116 - BYTE bEnsnareTimer 
+0x117 - BTYE bLockdownTimer 
+0x118 - BYTE bIrradiateTimer 
+0x119 - BYTE bStatisTimer 
+0x11A - BYTE bPlagueTimer 
+0x11B - BYTE bIsUnderStorm 
Used to tell if a unit is under psi storm 
+0x11C - CUNIT* IrradiatedBy 
+0x120 - BYTE bIrradiatePlayerID 
+0x121 - BYTE bParasiteFlags 
Each bit corrisponds to the player who has parasited this unit 
+0x122 - BYTE bCycleCounter 
Runs updates 2 times per sec(about) 
+0x123 - BYTE bIsBlind 
+0x124 - BYTE bMaelstromCounter 
+0x125 - bUnknown_Unreferenced 
+0x126 - BYTE bAcidSporeCount 
+0x127 - BYTE bAcidSpore1Time 
+0x128 - BYTE bAcidSpore2Time 
+0x129 - BYTE bAcidSpore3Time 
+0x12A - BYTE bAcidSpore4Time 
+0x12B - BYTE bAcidSpore5Time 
+0x12C - BYTE bAcidSpore6Time 
+0x12D - BYTE bAcidSpore7Time 
+0x12E - BYTE bAcidSpore8Time 
+0x12F - BYTE bAcidSpore9Time 
+0x130 - WORD w3by3OffsetIndex 
+0x132 - WORD wUnused_1325a 
+0x134 - DWORD dwUnknown_134_CUNIT_AI 
+0x138 - WORD wAirStrength(see equation below, 1 if has no air weapon but has a ground) 
+0x13A - WORD wGroundStrength(see equation below, 1 if has no ground weapon but has an air) 
+0x13C - DWORD dwTableID_Unknown_1 
+0x140 - DWORD dwTableID_Unknown_2 
+0x144 - DWORD dwTableID_Unknown_3 
+0x148 - DWORD dwTableID_Unknown_4 
+0x14C - BYTE bRepulse_Unknown_1 
+0x14D - BYTE bRepulse_Unknown_2 
+0x14E - BYTE bDriftPosX(mapsizex/1.5 max) 
+0x14F - BYTE bDriftPosY(mapsizey/1.5 max) 
 
CSPRITE STRUCT 
+0x8 - WORD wSpriteID 
+0xE - BYTE bFlags_E 
0x20 - ? 
 
CIMAGE 
 
CORDER 
 
CWEAPON 
+0x0 - CWEAPON* Previous 
+0x4 - CWEAPON* Next 
+0x8 - DWORD dwUnknown 
+0xC - CSPRITE* Sprite 
+0x58 - WORD wTargetGroundX 
+0x5A - WORD wTargetGroundY 
+0x5C - CUNIT* TargetUnit 
+0x60 - BYTE bWeaponID 
 
+0x63 - BYTE bBounceCount 
+0x64 - CUNIT* AttackingUnit 
 
CPLAYER 
+0x0 - BYTE bPlayerType 
1 - Computer 
2 - Human 
3 - Rescuable 
7 - Neutral 
10 - Human Defeated(Left) 
11 - Computer Defeated(Left) 
+0x1 - BYTE bPlayerRace 
+0x2 - BYTE bPlayerForce 
+0x3 - char[23] szName 
+0x1C - dwPlayerNumber(+1)? 
+0x20 - dwUnknown 
 
round( 
squareroot 
((integermath) 
(range/cooldown)*factor*damage amount 
+ 
(((factor*damage*2048)/coolodwn)*total_hpshield)/256 
} 
* 
7.58 
} 
 
 
/range*factor*damage 8*factor*damage*hpshield\\ 
|------------------- + ------------------------| ^ .5 
\\ cooldown cooldown/  
 
 
factor*damage 
------------- * (range + 8*hpshield)^ .5 * 7.58 toINT 
 cooldown 
 
 
ARMOR TABLE - 1.15 
 
IndependantSmallMediumLarge 
Independant0 - 515b900 - 515b940 - 515b980 - 515b9c 
Explosive0 - 515ba450%(128) - 515ba875%(192) - 515bac100%(256) - 515bb0 
Concussive0 - 515bb8100%(256) - 515bbc50%(128) - 515bc025%(64) - 515bc4 
Normal0 - 515bcc100%(256) - 515bd0100%(256) - 515bd4100%(256) - 515bd8 
Ignore Armor0 - 515be0100%(256) - 515be4100%(256) - 515be8100%(256) - 515bec 
 
 
 
EMP = Inner Splash controls radius of effect 
 
Units.dat Advanced flags: 
 
- 1 - Building  
- 2 - Addon 
- 4 - Flyer 
- 8 - Worker 
- 10 - Subunit 
- 20 - Flying Building 
- 40 - Hero 
- 80 - Regen HP 
 
- 100 - Ani Idle? 
- 200 - Cloak 
- 400 - 2 in 1 
- 800 - Neut Access?Neutral?Single Entity. 
- 1000 - Resource Depot 
- 2000 - Contain Gas/Resource Container 
- 4000 - Robotic 
- 8000 - Detector 
 
- 10000 - Organic 
- 20000 - Creep 
- 40000 - Unused 
- 80000 - Req Psi 
- 100000 - Burrowable 
- 200000 - Spell/Mana 
- 400000 - Perm Cloak 
- 800000 - NPC/Access?Pickup Item? 
 
- 1000000 - Morph from Unit?/Check SUPPLY CouNT 
- 2000000 - Med overlay 
- 4000000 - Large overlay 
- 8000000 - Auto attk/Battle React 
- 10000000 - Attack/Direct attk 
- 20000000 - Invincible 
- 40000000 - Mech 
- 80000000 - Produce units? - Wide radius creep 
 
Rally Point Unit ID's 
 
106 - Command Center 
111 - Barracks 
113 - Factory 
114 - Starport 
131 - Hatchery 
132 - Lair 
133 - Hive 
154 - Nexus 
155 - Robotics Facility 
160 - Gateway 
167 - Stargate |   
 
 
 
 |