AddressPlayer IDNameSizeLengthSCRDescription
004FF900-141977Filename for Lastreplay121Contains the string "LastReplay".
004FF90C-141974Replay Speed Limiters47The speed in milliseconds to spend each frame during a repl…
004FF928-141967Replay Command Table162Contains the replay commands "show" and "hid…
004FF948-141959Replay show command modifiers3212Contains sub-commands and leaderboard values to use in the …
004FFAD0-141861Menu Info Array1227Contains the menu index, background index, and menu path.
004FFC20-141777Campaign List Info885Contains the campaign listing info. WORD gluHist.tbl inde…
004FFF60-141569Establishing shot pointers86564 entries defining campaign mission prologue/establishing …
0050C000-129241cInit Constructor Function Table4310Standard C-Runtime. Generated by Visual C++.
005122A0-122929Campaign list pointers46Pointer to memory location of details of first mission in S…
005122B8-122923Current Cinematic ID41An index for the currently playing cinematic.
005124D8-122787Game Speed Refresh Rate47Simple DataContains the value in milliseconds required for each frame.…
005124F4-122780Replay Speed Refresh Rate47Contains the time in milliseconds spent each frame. Array i…
00512510-122773Image Update Functions818An array of image functions. The array is officially called…
005125A0-122737Image Drawing Functions1218This corresponds to a value in images.dat. The official nam…
00512678-122683Active Nation ID41Backed By CodeThis is the same as Human ID unless you are playing Team Me…
0051267C-122682Active Human ID41Backed By CodeThis is your player ID. The official name for this is g_Act…
00512680-122681Active Storm ID41UnsupportedThis is your active storm ID, which is different from your …
00512684-122680Local Nation ID41Backed By CodeThe official name for this is g_LocalNationID. P1: 00 P…
00512688-122679Local Human ID41The official name for this is g_LocalHumanID.
0051268C-122678Local Storm ID41UnsupportedThe official name for this is g_LocalStormID.
00512690-122677Cinematic File Name Array428Contains string pointers for the file names of all game cin…
00512700-122649Race Filename Modifiers81Contains 3 bytes "ztp" used when loading race-spe…
00512708-122647Cursor Filename Array419Contains pointers to a string for each cursor image.
00512754-122628Cursor Scroll Type Modifiers210UnsupportedContains the index for the cursor used for scrolling.
005127DC-122594Tileset Color Cycle Pointers49Contains pointers to the tileset color cycle data. Array in…
00512800-122585Trigger Action Function Array460Contains function pointers for all trigger actions.
00513B68-121343Mouse and Keyboard Scroll Speed77SupportedEdited by PereC, 2021.04.12 For SC:R, In menu - Options -…
00513B68-121343Mouse Scroll Speed Array77SupportedAmount of Mouse Scroll Speed. Array index dependent on mous…
00514178-120955Unit Reqs data10901Simple DataPacked list of opcodes/parameters for data requiremens. …
005145C0-120681Upgrade Reqs data8381Simple Data
00514908-120471Research Req Data3181Simple Data
00514A48-120391Tech Use Req Data6881Simple Data
00514CF8-120219Order Req Data13161Simple Data
00515A98-119347Trigger Condition Function Array424Contains function pointers for all trigger conditions.
00515B84-119288Damage type/factor multipliers vs unit size205Weapon damage typa, against each unit size struct { i…
005187E8-116447s_button Offset12250Backed By Code+0x00 (EPD -116447) Number of available buttons. 0 = Butt…
005193A0-115697Unit Infomation12228See DescriptionEdited by PereC, 2021-06-05 In SC:R, 64-bit starcraft igno…
00519E50-115013Mission Briefing Action Function Array410Contains function pointers for all mission briefing actions.
0051A280-114745Player 1 Trigger List43Backed By Code
0051A28C-114742Player 2 Trigger List43Backed By Code
0051A298-114739Player 3 Trigger List43Backed By Code
0051A2A4-114736Player 4 Trigger List43Backed By Code
0051A2B0-114733Player 5 Trigger List43Backed By Code
0051A2BC-114730Player 6 Trigger List43Backed By Code
0051A2C8-114727Player 7 Trigger List43Backed By Code
0051A2D4-114724Player 8 Trigger List43Backed By Code
0051CA14-112212Last Random Number41Simple DataRandomization seed for the next random number, mask with 0x…
0051CE84-111928Network Mode Delay41Read Only1 in single player, 2 in LAN, 5 on battle.net. Described…
0051CE88-111927Network Mode Delay 241Appears to be a duplicate of 0x0051CE84. Not sure which val…
0051CE8C-111926Inverse System Time41Value : -GetTickCount() (about 10ms error) Used for inpu…
0051CE98-111923Fog of War Update Counter41Simple DataSet to 0 to update FoW. Toggle between 0 and 1 in separa…
0051CED0-111909GRP Array4999Read OnlyPointer to each GRP for each images.dat entry
0051F2A8-109615Images Attack Overlay Array4999Read OnlyPointers to GRP handles for all images.
00520244-108616Images Damage Overlay Array4999Read OnlyPointer to LO? handles for all images.dat entries.
005211E0-107617Images Special Overlay Array4999Read OnlyPointer to LO? handles for all images.dat entries.
0052217C-106618Images Landing Dust Overlay Array4999Read OnlyPointer to LO? handles for all images.dat entries.
00523118-105619Images Liftoff Dust Overlay Array4999Read OnlyPointer to LO? handles for all images.dat entries.
005240D0-104613Images Damage Overlay Frame1999Simple Data
0052E5C8-94055Images Shield Overlay Array4999Pointer to GRP handles for all images.
0052F568-93055Images Array645000Read OnlyThe array of images currently processed in the game.
0057EB68-11775First Image Pointer41Read OnlyPointer to the first CImage instance.
0057EB70-11773Last Image Pointer41Read OnlyPointer to the last CImage instance.
0057EE7C-11578Player Human IDs48UnsupportedThe Human ID for each player.llll
0057EE9C-11570Player Name251UnsupportedIf you are playing as 'asdf' then you will find o…
0057EEC0-11561Player Nation IDs48UnsupportedThe Nation ID for each player.
0057EEE0-11553Active Player Structures3612Backed By CodeA structure for each player containing their HumanID, Storm…
0057F094-11444Last Whisper Player251The name of the player that last whispered you (in-game onl…
0057F0B0-11437Vision Filter41A shared vision filter used for changing the player's …
0057F0B4-11436Multiplayer Mode41Read OnlyA boolean value that specifies if the game is Single or Mul…
0057F0B8-11435Network Player Status Array48UnsupportedAn array containing flags for each player's network st…
0057F0D8-11427Network Maximum Buffer Size41A value indicating the maximum size for the command buffer …
0057F0DC-11426Main Menu Dialog Handle41UnsupportedA handle to the main menu BIN dialog.
0057F0F0-11421Player Minerals412Simple DataThe current amount of minerals the player has.
0057F120-11409Player Gas412Simple DataThe current amount of gas the player has.
0057F150-11397Player Total Gas Harvested412Simple DataThe total gas the player has ever harvested
0057F180-11385Player Total Minerals Harvested412Simple DataThe total minerals the player has ever harvested
0057F1B0-11373Starting Player Local ID41Simple Data
0057F1B4-11372Player Slot Types112Simple Data
0057F1C0-11369Player Slot Races112Simple Data
0057F1CC-11366Team Game Main Player14Simple Data
0057F1D0-11365Screen Tile Position22Simple Data
0057F1D4-11364MapSize22Simple Data2byte Width 2byte Height width + 65536*height
0057F1D8-11363Messsage Send To Filter22Simple Data
0057F1DA-11363Message Player Filter22Simple DataShould be within the previous entry
0057F1DC-11362Tileset21Simple DataThe current tileset ID being used. Changing to 1 will tu…
0057F1DE-11362Current Music22Simple Data
0057F1E0-11361BWGame Unk_f011Simple Data
0057F1E1-11361Active Player Count11Simple DataThe number of active players in the game.
0057F1E2-11361Console Index11Simple DataA value indicating which console GUI should be displayed. …
0057F1E3-11361Is Custom Single Player11Simple Data
0057F1E4-11360BWGame unk_f441Simple Data
0057F1E8-11359BWGame unk_f841Simple Data
0057F1EC-11358Shared Vision412Simple DataThe shared vision values for each player. StarCraft does…
0057F21C-11346Player Color Mapping48Simple DataA mapping of the player's colors.
0057F23C-11338Elapsed Time41Simple DataThe elapsed game time (in game ticks, ~42ms per tick on fas…
0057F240-11337Saved Elapsed Seconds41Simple Data
0057F244-11336Campaign Index21Simple DataA value indicating which campaign is being played.
0057F246-11336Next Scenario name321Simple DataThe name of the next scenario, set using the Set Next Scena…
0057F266-11328Single Player Race11Simple Data
0057F267-11328Single Player Computer Races18Simple Data
0057F26F-11326BWGame unk_17F11Simple Data
0057F270-11325Saved Screen Positions43Simple DataPos 1: -11325 X + 65536Y Pos 2: -11324 X + 65536Y …
0057F27C-11322Player Units available22812Simple Data1 row of 228 bytes, 1 per unit, per player offset + (Cp …
0057FD2C-10638BWGame unk_c3c18Simple Data
0057FD34-10636Last Event Position42Simple DataA POINT structure containing the position of the last event…
0057FD3C-10634Map File Name2601Simple DataThe current map's file name.
0057FE40-10569Map Title321Simple DataThe current map's title.
0057FE60-10561Hotkeyed Unit8648Simple DataPurpose To detect the hotkey and then the slot that a …
00581960-8833BWGame unk_287011024Simple Data
00581D60-8577Default Message Filter11Simple DataControls who you chat with when pressing Enter. (To Allies:…
00581D61-8577Player Lose Type11Simple Data
00581D62-8577Player Left18Simple Data
00581D6A-8575Player Selection Circle Colors112Simple DataEach byte sets the color of the selection circle: 000 - Gr…
00581D76-8572Unit Color Table812Simple DataEach byte corresponds to a palette index used for each play…
00581DD6-8548Minimap Color Table112Simple DataEach byte references a palette index. This table is immedi…
00581DE2-8545BWGame unk_2cf212Simple Data
00581DE4-8544Score Total Units Produced412Simple DataAppears to be flipped; units owned, and not produced.
00581E14-8532Score Units Produced412Simple DataAppears to be flipped; units owned, and not produced.
00581E44-8520Score Units Owned412Simple DataAppears to be flipped; to be units produced, and not owned.
00581E74-8508Number of Units Lost412Simple DataDeaths for "Any Unit" stored here.
00581EA4-8496Number of Units Killed412Simple DataKills for "Any Unit" stored here.
00581ED4-8484Score Unit Total412Simple Data
00581F04-8472Score Kill Total412Simple Data
00581F34-8460Score Structures Constructed Total412Simple Data
00581F64-8448Number of Buildings Constructed412Simple Data
00581F94-8436Number of Buildings Owned412Simple Data
00581FC4-8424Number of Buildings Lost412Simple DataDeaths for "Buildings" stored here.
00581FF4-8412Number of Buildings Razed412Simple DataKills for "Buildings" stored here.
00582024-8400Buildings Score412Simple DataScore for "Buildings", or buildings produced.
00582054-8388Razings Score412Simple DataScore for "Razings", or buildings killed.
00582084-8376Number of Factories Constructed412Simple Data
005820B4-8364Number of Factories Owned412Simple Data
005820E4-8352Number of Factories Lost412Simple DataDeaths for "Factories" stored here.
00582114-8340Number of Factories Razed412Simple DataKills for "Factories" stored here.
00582144-8328Zerg Control Available412Simple Data4 bytes per player Despite being 4 bytes, the game will …
00582174-8316Zerg Control Used412Simple Data4 bytes per player Despite being 4 bytes, the game will …
005821A4-8304Zerg Control Max412Simple Data4 bytes per player Despite being 4 bytes, the game will …
005821D4-8292Terran Supply Available412Simple Data4 bytes per player Despite being 4 bytes, the game will …
00582204-8280Terran Supply Used412Simple Data4 bytes per player Despite being 4 bytes, the game will …
00582234-8268Terran Supply Max412Simple Data4 bytes per player Despite being 4 bytes, the game will …
00582264-8256Protoss Psi Available412Simple Data4 bytes per player Despite being 4 bytes, the game will …
00582294-8244Protoss Psi Used412Simple Data4 bytes per player Despite being 4 bytes, the game will …
005822C4-8232Protoss Psi Max412Simple Data4 bytes per player Despite being 4 bytes, the game will …
005822F4-8220Score Custom412Simple Data
00582324-8208All Unit Counts Table48228Simple DataCounts per player, per unit For each unit, 4 bytes per…
00584DE4-5472Completed Unit Counts Table48228Simple DataCounts per player, per unit For each unit, 4 bytes per p…
00585474-5052Larva Count121(Why does this entry exist? Should be within the Completed …
005878A4-2736Killed Unit Counts Table48228Simple DataCounts per player, per unit. For each unit, 4 bytes per …
0058A3640Death Table Start48228Simple DataCounts per player, per unit First entry in the death tab…
0058CE242736SC Technologies Available (0-23)2412Simple DataTable layout is reverse compared to deaths/kills table. …
0058CF442808SC Technologies Researched (0-23)2412Simple Data[See SC Technologies Available] http://farty1billion.dyndn…
0058D0642880SC Tech Research In Progress136Simple DataWho knows
0058D0882889SC Upgrades Available (0-45)4612Simple DataTable layout is reverse compared to deaths/kills table. …
0058D2B03027SC Upgrades Researched (0-45)4612Simple DataTable layout is reverse compared to deaths/kills table. …
0058D4D83165SC Upgrade in Progress Lvl 1 (Unused?)172Simple DataWho knows
0058D5203183SC Upgrade in Progress Lvl 2 (Unused?)172Simple DataWho knows
0058D5B03219Player's Force18Simple Data8 bytes: 1 byte for each active player, specifying which o…
0058D5B83221Force Flags14Simple Data4 bytes: 1 byte for each force specifying the flags; forc…
0058D5BC3222Force Names304Simple Data4 byte integers: 1 integer for each force, string number o…
0058D6343252Player Alliances1212Simple DataEPD 3252 + 0x00: P1 ally status to P1 + 0x01: P1 ally sta…
0058D6C43288Mission Objectives Index412Simple DataEPD 3288 (+0x00): This is the Mission Objective String I…
0058D6F43300Countdown Timer41Simple DataChanging the value of this address with EUP or EUD is worth…
0058D6F83301Elapsed Time41Simple DataGame Seconds (1 Game Second = 16 Game Ticks = ~1072ms on no…
0058D6FC3302SC Switch Table (Unused?)41Simple Data32 switches, probably pre-1.04 when number of switches was …
0058D7003303Player Victory Status18Simple Data
0058D7083305Leaderboard Has Computer Players41Simple Data
0058D70C3306Leader Board Type11Simple Data
0058D70D3306Leader Board Condition11Simple Data
0058D70E3306Leader Board Subtype21Simple Data
0058D7103307Leader Board Goal41Simple Data
0058D7143308Leader Board String Index41Simple Data
0058D7183309#'s of Game Pauses18Simple DataThe base value of this address is: (P1 + P2 + P3 + P4) * 3 …
0058D7203311Start Locations48Simple DataPoint: u16 X u16 Y EPD 3311 +0x00: P1 Start Location …
0058D7403319Vanilla Location Table2064Simple DataThis Location Table is not used in the Expansion (Brood War…
0058DC403639Switch Table321Simple Data+0x00 (EPD 3639) Switch 1: *1 Switch 2: *2 Switch 3: …
0058DC603647Location Table20255Simple Data+0x00 (EPD 3647) This is the LEFT position of the locat…
0058F04C4922Time Pause State41Simple DataIf FALSE, the value of the address is 0, and the countdown …
0058F0504923BW Technologies Available (24-43)2012Simple DataTable layout is reverse compared to deaths/kills table. …
0058F1404983BW Technologies Researched (24-43)2012Simple DataTable layout is reverse compared to deaths/kills table. …
0058F2305043BW Tech Research In Progress172[SCR: Simple data] Who knows
0058F2785061BW Upgrades Available (46-60)1512Simple DataTable layout is reverse compared to deaths/kills table. …
0058F32C5106BW Upgrades Researched (46-60)1512Simple DataTable layout is reverse compared to deaths/kills table. …
0058F3E05151BW Upgrade In Progress196Simple DataWho knows
0058F4405175Is Expansion11Simple Data1 if your game is using the Expansion set.
0058F4415175BWGame unk_1035111Simple Data
0058F4425175Unknown Player Color Something18Simple Data
0058F44A5177BWGame "Literally Unused"129604Simple Data
005968A012623Input Procedures419A list of functions that determine how user input is handle…
005968AC12626Mouse Left Click41Detects the left click of a mouse. Use only actions that…
0059690412648Game Mode21UnsupportedDetermines the game's mode. In-Game, in-menu, battle.n…
00596A1812717Virtual Key Array1256Backed By CodeAn array containing the state of all the virtual key codes …
005993C415384Pointer to "MTXM" map tile data41Backed By Code
005993D415388Pointer to map "STR " section41Backed By CodePointer default: first string
0059BA5C17854Game Subtype ID41Subtype ID specified in GOT template. Top Vs. Bottom: Nu…
0059C08018247Mapdata.dat - Mission dir465Mapdata.tbl string index
0059CC7819013Last Time for Drop Window41Simple DataLast GetTickCount Win32 API Time for Drop Window shown. …
0059CC8019015Drop Timer41Simple DataThe time remaining before a player is dropped. See the a…
0059CCA819025Unitnode Table3361700Backed By Code[SCR: See individual entries] See Unitnode Structure in …
0059CCA819025CUnit - Previous Unit41Supported
0059CCAC19026CUnit - Next Unit41Supported
0059CCB019027CUnit - HP41SupportedAmount of HP that a unit currently has. Value displayed …
0059CCB419028CUnit - Sprite41SupportedPointer to CSprite. Contains the graphics of the unit.
0059CCB819029CUnit - Target Pos22SupportedX + 65536*Y
0059CCBC19030CUnit - Target Unit41SupportedCUnit target pointer
0059CCC019031CUnit - Next Movement Waypoint22Unsupported0x0000FFFF x-coord 0xFFFF0000 y-coord The next way poin…
0059CCC419032CUnit - Next Target Waypoint41Unsupported0x0000FFFF x-coord 0xFFFF0000 y-coord The desired posit…
0059CCC819033CUnit - Movement Flags11SupportedFlags that enable/disable certain movement. Need more testi…
0059CCC919033CUnit - Current Direction 111Supported256 directions starting from the top going clockwise. 0x00…
0059CCCA19033CUnit - Flingy Turn Radius11Supported"The unit flips out when this is frozen on a specific …
0059CCCB19033CUnit - Velocity Direction 111SupportedThis usually only differs from the currentDirection field f…
0059CCCC19034CUnit - Flingy ID21SupportedThe Flingy ID of the unit.
0059CCCF19034CUnit - Flingy Movement Type11SupportedThe type of movement that the unit use (*16777216).
0059CCD019035CUnit - Position Coordinates22SupportedThe coordinates of a unit on the map (X + 65536*Y).
0059CCD419036CUnit - Halt X Coordinate41SupportedThe X coordinate of a unit on the map (*256).
0059CCD819037CUnit - Halt Y Coordinate41SupportedThe Y coordinate of a unit on the map (*256).
0059CCDC19038CUnit - Flingy Top Speed41Supported
0059CCE019039CUnit - Move Acceleration41SupportedCUnit.current_speed1 Related to turning and from observa…
0059CCE419040CUnit - Move Speed41SupportedCUnit.current_speed2 The speed that the unit is currentl…
0059CCE819041CUnit - Move Speed On X-Axis41SupportedCUnit.current_speed.x The speed that the unit is current…
0059CCEC19042CUnit - Move Speed On Y-Axis41SupportedCUnit.current_speed.y The speed that the unit is current…
0059CCF019043CUnit - Flingy Acceleration21Supported
0059CCF219043CUnit - Current Direction 211SupportedThe direction a unit is currently facing (*65536) THIS SHI…
0059CCF319043CUnit - Velocity Direction 211SupportedThe direction a unit is currently facing (*16777216). U…
0059CCF419044CUnit - Player ID11SupportedThe owner of the cunit. Mask: 0x000000FF *1 P1: 00 P…
0059CCF519044CUnit - Main Order ID11SupportedSpecification of type of order given. See http://www.stared…
0059CCF619044CUnit - Main Order State11SupportedAdditional order (*65536) information. More extensive testi…
0059CCF719044CUnit - Order Signal11SupportedAdditional order (*16777216) information. Set by iscript. …
0059CCF819045CUnit - Order Unit Type21Supported228 = none?
0059CCF919045CUNIT - Idle Order Timer41(*256) While the unit is specifically following the order t…
0059CCFC19046CUnit - Main Order Timer11SupportedA timer for orders. An example would be the time left befor…
0059CCFD19046CUnit - Cooldown13SupportedThe firing rate (or cooldown) for ground weapons (*256). 0…
0059CD0019047CUnit - Order Coordinates22SupportedThe coordinates of an order given to a unit (X + 65536*Y) …
0059CD0419048CUnit - Order Target Unit41SupportedThe unit targeted by another unit (Index Pointer).
0059CD0819049CUnit - Shield Points41SupportedThe amount of shield points that a unit have (*256).
0059CD0C19050CUnit - Unit Type21Supported
0059CD1019051CUnit - Previous Player Unit41SupportedPointer to previous CUnit owned by the same player
0059CD1419052CUnit - Next Player Unit41SupportedPointer to the next CUnit owned by the same player.
0059CD1819053CUnit - Sub Unit41SupportedPointer to this unit's subunit CUnit.
0059CD1C19054CUnit - Order Queue Head41(Unsupported?) Pointer to COrder
0059CD2019055CUnit - Order Queue Tail41(Unsupported?) Pointer to COrder.
0059CD2419056CUnit - Auto-Target Unit41SupportedPointer to CUnit. The auto-acquired target (Note: This f…
0059CD2819057CUnit - Connected Unit41SupportedPointer to CUnit. Addon is connected to building (addon …
0059CD2C19058CUnit - Order Queue Count11SupportedThe number of queued orders a unit currently has.
0059CD2D19058CUnit - Order Queue Timer11SupportedBWAPI doc: counts/cycles down from from 8 to 0 (inclusive)…
0059CD2E19058CUnit - Unknown 0x08611SupportedPathing related?
0059CD2F19058CUnit - Attack Notify Timer11Supported
0059CD3019059CUnit - Previous Unit Type21(Unsupported?) Stores the type of the unit prior to bein…
0059CD3219059CUnit - Last Event Timer11(Unsupported?) countdown that stops being recent when it…
0059CD3319059CUnit - Last Event Color11(Unsupported? 17 = was completed (train, morph), 174 = w…
0059CD3419060CUnit - Unused 0x08C21Supported
0059CD3619060CUnit - Rank Increase11SupportedAdds to unit's base rank. (*65536)
0059CD3719060CUnit - Kill Count11SupportedThe kill count of a unit (*16777216).
0059CD3819061CUnit - Last Attacking Player11SupportedThe player that last attacked this unit
0059CD3919061CUnit - Secondary Order Timer11Supported
0059CD3A19061CUnit - AI Action Flag11SupportedInternal use by AI only (bwapi)
0059CD3B19061CUnit - User Action Flags11SupportedSome flags that change when the user interacts with the uni…
0059CD3C19062CUnit - Button Set21SupportedThe current button set of a unit.
0059CD3C19062Order Destination Invalid (???)41"When this address is frozen and you order a unit to t…
0059CD3E19062CUnit - Is Cloaked11Supported
0059CD3F19062CUnit - Movement State11Supportedhttps://github.com/bwapi/bwapi/blob/master/bwapi/BWAPI/Sour…
0059CD4019063CUnit - Build Queue25SupportedQueue of units to build. Note that it doesn't begin wi…
0059CD4A19065CUnit - Energy21SupportedAmount of energy a unit has. (value*256) * 65536
0059CD4C19066CUnit - Build Queue Slot11SupportedIndex of active unit in #buildQueue. (bwapi)
0059CD4D19066CUnit - Uniqueness Identifier11SupportedA byte used to determine uniqueness of the unit
0059CD4E19066CUnit - Secondary Order ID11SupportedThe order ID for passive orders such as Cloak, Build, Expan…
0059CD4F19066CUnit - Building Overlay State11Supported0 means the building has the largest amount of fire/blood (…
0059CD5019067CUnit - HP Gain21Supportedhp gained on construction or repair (bwapi)
0059CD5219067Cunit - Shield Gain21SupportedShield gain on construction (bwapi)
0059CD5419068CUnit - Remaining Build Time21SupportedThe remaining time before a building is constructed.
0059CD5619068CUnit - Previous HP21SupportedThe HP of the unit before it changed (example Drone->Hat…
0059CD5819069CUnit - Loaded Unit Index28Unsupported(Unsupported?) Unit ID's (not pointers) of loaded u…
0059CD6819073CUnit - Vulture - Spider Mines11SupportedThe amount of spider mines that a vulture has left. Also…
0059CD6819073CUnit - Carrier/Reaver - In Hangar41SupportedCUnit pointer to first unit inside the hangar. Also: Vu…
0059CD6819073CUnit - Scarab/Interceptor - Parent Unit41SupportedCUnit pointer to parent unit Also: Vulture - Spider min…
0059CD6819073CUnit - Beacon - Unknown +0041SupportedUnknown ? Also: Vulture - Spider mine count Carrier/Re…
0059CD6819073CUnit - Building - Addon41SupportedCUnit pointer to addon. -- is this different from Connected…
0059CD6819073CUnit - Worker - Powerup Unit41SupportedCUnit pointer to the powerup carried by a worker Also: …
0059CD6C19074CUnit - Carrier/Reaver - Out Hanger41SupportedCUnit pointer to first child outside the hangar Also: S…
0059CD6C19074CUnit - Scarab/Interceptor - Previous41SupportedCUnit pointer to previous scarab/interceptor Also: Carr…
0059CD6C19074CUnit - Beacon - Unknown +0441SupportedUnknown Also: Carrier/Reaver: pointer to first child ou…
0059CD6C19074CUnit - Building - Addon Building Type21SupportedAlso: Carrier/Reaver: pointer to first child outside the h…
0059CD6C19074CUnit - Worker - Target Resource Coord22Supported0x0000FFFF x-coordinate 0xFFFF0000 y-coordinate Also: …
0059CD6E19074CUnit - Building - Upgrade/Research Time21Supported
0059CD7019075CUnit - Carrier/Reaver - In Hangar Count11SupportedAmount of units in hangar. Also: Scarab/Interceptor - p…
0059CD7019075CUnit - Scarab/Interceptor - Next41SupportedCUnit pointer to next scarab/interceptor Also: Carrier/…
0059CD7019075CUnit - Beacon - Flag Spawn Frame41Supportedflag beacons, the frame that the flag will spawn (bwapi) …
0059CD7019075CUnit - Building - Tech Type11SupportedAlso: Carrier/Reaver - number of units in hangar Scarab…
0059CD7019075CUnit - Worker - Target Resource Unit41SupportedCUnit pointer Also: Carrier/Reaver - number of units in…
0059CD7119075CUnit - Carrier/Reaver - Out Hangar Count11SupportedThe amount of interceptors that a carrier has (*256). Al…
0059CD7119075CUnit - Building - Upgrade Type11SupportedAlso: Carrier/Reaver - Out hangar count
0059CD7219075CUnit - Building - Larva Spawn Timer11SupportedThe remaining time left before a larva is created on buildi…
0059CD7319075CUnit - Building - Landing Timer11SupportedDetects if a Terran building is landing (*16777216).
0059CD7419076CUnit - Scarab/Interceptor - In Hanger11SupportedBoolean value? Also: Building - Creep timer Worker - R…
0059CD7419076CUnit - Building - Creep Timer11SupportedAlso: Scarab/Interceptor - In hangar Worker - Repair/re…
0059CD7419076CUnit - Worker - Repair/Resource Timer21SupportedAlso: Scarab/Interceptor - In hangar Building - Creep t…
0059CD7519076CUnit - Building - Upgrade Level11Supported
0059CD7619076CUnit - Worker - Is Carring Something11Supported
0059CD7719076CUnit - Worker - Resource Carry Count11Supported
0059CD7819077CUnit - Resource - Resource Count21SupportedAmount of Resource if its Mineral Field or Vespene Gayser …
0059CD7819077CUnit - Worker - Harvest Target Unit41SupportedCUnit pointer to harvested mineral/geyser Also: Resourc…
0059CD7819077CUnit - Nydus - Exit Unit41SupportedCUnit pointer to connected exit Also: Resource - Resour…
0059CD7819077CUnit - Ghost - Nuke Dot Sprite41SupportedPointer to nuke dot CSprite Also: Resource - Resource c…
0059CD7819077CUnit - Pylon - Power Overlay Sprite41SupportedPointer to overlay CSprite Also: Resource - Resource co…
0059CD7819077CUnit - Nuke Silo - Attached Nuke41SupportedCUnit pointer to attached nuke Also: Resource - Resourc…
0059CD7819077CUnit - Powerup - Origin Coordinates22SupportedCoordinates where the powerup was picked up from. 0x0000FF…
0059CD7819077CUnit - Hatchery? - Harvest Value24Supportedhttps://github.com/bwapi/bwapi/blob/master/bwapi/BWAPI/Sour…
0059CD7A19077CUnit - Resource - Resource IScript11SupportedCurrent iscript animation ?
0059CD7B19077CUnit - Resource - Gatherer Queue Count11Supportedas named in bwapi, or "Boolean on whether is extracted…
0059CD7C19078CUnit - Worker - Previous Harvest Unit41SupportedCUnit pointer "When there is a gather conflict"…
0059CD7C19078CUnit - Resource - Next Gatherer41SupportedCUnit pointer to the next worker unit waiting in line to ga…
0059CD7C19078CUnit - Silo - Ready11SupportedAlso: Resource - Next gatherer Worker - Previous harves…
0059CD8019079CUnit - Resource - Resource Group11SupportedAlso: Worker - Next harvest unit
0059CD8019079CUnit - Worker - Next Harvest Unit41SupportedAlso: Resource - Resource group/resource belongs to AI
0059CD8119079CUnit - Resource - Reource Belongs to AI11Supported
0059CD8419080CUnit - Status Flags41Supportedhttps://github.com/bwapi/bwapi/blob/master/bwapi/BWAPI/Sour…
0059CD8819081CUnit - Resource Type11(Unsupported?) Resource being held by worker: 1 = gas …
0059CD8919081CUnit - Wireframe Randomizer11(Unsupported?)
0059CD8A19081CUnit - Secondary Order State11(Unsupported?)
0059CD8B19081CUnit - Recent Order Time11(Unsupported?) Counts down from 15 to 0 when most orders…
0059CD8C19082CUnit - Visiblity Status41(Unsupported?) Flags specifying which players can detect…
0059CD9019083CUnit - Secondary Order Position22(Unsupported?) Unused according to bwapi. 0x0000FFFF…
0059CD9419084CUnit - Unit beingBuilt41UnsupportedThe current unit that's being produced from a building…
0059CD9819085CUnit - Previous Burrowed Unit41(Unsupported?) CUnit pointer to previous burrowed unit
0059CD9C19086CUnit - Next Burrowed Unit41(Unsupported?) Pointer to CUnit of next burrowed unit
0059CDA019087CUnit - Rally - Rally Coordinates22SupportedThe coordinates of a rally from a building (X + 65536*Y) …
0059CDA019087CUnit - Pylon - Previous Psi Provider41SupportedCUnit pointer to previous psi provider For other buildin…
0059CDA419088CUnit - Rally - Rally Unit41SupportedThe unit that a building set their rally to (CUnit pointer)…
0059CDA419088CUnit - Pylon - Next Psi Provider41SupportedCUnit pointer to next psi provider For other buildings:…
0059CDA819089CUnit - Pathing Pointer41(Unsupported?) Pointer to pathing data.
0059CDAC19090CUnit - Pathing Collision Interval11SupportedUnknown?
0059CDAD19090CUnit - Pathing Flags11Supported0x01 = uses pathing 0x02 = ? 0x04 = ? (bwapi)
0059CDAF19090CUnit - Is Healing11SupportedDetects if a unit is currently being healed (*16777216).
0059CDB019091CUnit - Contour Bounds24(Unsupported?) a rect that specifies the closest contour…
0059CDB819093CUnit - Remove Timer21SupportedWhen this timer equals 0, the following are destroyed: h…
0059CDBA19093CUnit - Matrix Damage Absorption21SupportedThe amount of damage the matrix has absorbed (*16777216).
0059CDBC19094CUnit - Matrix Timer11SupportedThe amount of time remaining for matrix by a science vessel.
0059CDBD19094CUnit - Stim Timer11SupportedThe amount of time remaining (*256) for the stim effect app…
0059CDBE19094CUnit - Ensnare Timer11SupportedThe amount of time remaining (*65536) to ensure by a queen,…
0059CDBF19094CUnit - Lockdown Timer11SupportedThe amount of time remaining (*16777216) for lockdown by a …
0059CDC019095CUnit - Irradiate Timer11SupportedThe amount of time remaining for irradiate by a science ves…
0059CDC119095CUnit - Stasis Timer11SupportedThe amount of time remaining (*256) for stasis by a arbiter.
0059CDC219095CUnit - Plague Timer11SupportedDetects if a unit has been plagued by defiler (*65536)
0059CDC319095CUnit - Storm Timer11SupportedIf a unit is under storm (*16777216)
0059CDC419096CUnit - Irradiated By41SupportedCUnit pointer to casting unit which irradiated this unit.
0059CDC819097CUnit - Irradiate Player ID11SupportedPlayer ID who irradiated the unit.
0059CDC919097CUnit - Parasite Flags11SupportedDetects if a unit have been infected with a parasite (*256)…
0059CDCA19097CUnit - Cycle Counter11SupportedCounts/cycles up from 0 to 7 inclusive (*65536)
0059CDCB19097CUnit - Blind State11SupportedDetects if a unit has been blinded (*16777216) by a medic.
0059CDCC19098CUnit - Maelstorm Timer11SupportedThe remaining time that a unit has before Maelstorm wears o…
0059CDCD19098CUnit - Unused Timer11SupportedPotentially from Valkyrie Afterburner or Ultralisk Roar.
0059CDCE19098CUnit - Acid Spore Count11SupportedThe amount of Acid Spores applied to a unit (*65536). Th…
0059CDCF19098CUnit - Acid Spore 1/911See Description[SCR: Other acid spore timers are NOT supported and give EU…
0059CDD019099CUnit - Acid Spore 2/911UnsupportedTimer for 2nd of 9 acid spores applied to a unit Refer t…
0059CDD119099CUnit - Acid Spore 3/911UnsupportedTimer for 3rd of 9 acid spores applied to a unit (*256) …
0059CDD219099CUnit - Acid Spore 4/911UnsupportedTimer for 4th of 9 acid spores applied to a unit (*65536) …
0059CDD319099CUnit - Acid Spore 5/911UnsupportedTimer for 5th of 9 acid spores applied to a unit (*16777216…
0059CDD419100CUnit - Acid Spore 6/911UnsupportedTimer for 6th of 9 acid spores applied to a unit Refer t…
0059CDD519100CUnit - Acid Spore 7/911UnsupportedTimer for 7th of 9 acid spores applied to a unit (*256) …
0059CDD619100CUnit - Acid Spore 8/911UnsupportedTimer for 8th of 9 acid spores applied to a unit (*65536) …
0059CDD719100CUnit - Acid Spore 9/911UnsupportedTimer for 9th of 9 acid spores applied to a unit (*16777216…
0059CDD819101CUnit - Bullet Behavior 3x3 Attack21(Unsupported?) Counts up for the number of bullets shot …
0059CDDC19102CUnit - AI Data41(Unsupported?) Pointer to AI class
0059CDE019103Emp Shockwave Missiles (???)41The total amount of missiles from *all science vessel that …
0059CDE019103CUnit - Air Strength21Unsupported
0059CDE219103CUnit - Ground Strength21Unsupported
0059CDE419104CUnit - Unit Finder44(Unsupported?) PID+0 left PID+1 right PID+2 top PID+3…
0059CDF419108CUnit - Repulse Unknown11Supported
0059CDF519108CUnit - Repulse Angle11SupportedUpdated when the air unit is being pushed (*256). Need more…
0059CDF619108CUnit - Drift X11SupportedFor air units when they're pushed (*65536) on X-axis. …
0059CDF719108CUnit - Drift Y11SupportedFor air units when they're pushed (*16777216) on Y-axi…
0059D56819585SC Upgrade in Progress Lvl 3 (???)172Who knows
006283F8161829Last Unit Pointer41The value is pointer to the last unit in the unitNodeTable.…
00628430161843First Unit Pointer41Backed By CodeThe value is pointer to the first unit in the unitNodeTable.
00628438161845First Empty Unit41Backed By CodeThe address of the unit structure to be created -added by …
00628448161849Screen Coordinate X41Read OnlyThe position of the screen on the X Axis. Note that it'…
00628470161859Screen Coordinate Y41Read OnlyThe position of the screen on the Y Axis. Note that it'…
0062848C161866glScrollPixelX41Read OnlyDuplicate of screen coordinates?
00628494161868gfpCellMap41Backed By CodePointer to VX4 megatile buffer?
006284A8161873glScrollPixelY41Read OnlyDuplicate of screen coordinates?
006284B8161877Current Player Selection412Backed By CodeSelection group of the current player Seems to be duplic…
006284E8161889Player 1 Selection Group412Backed By CodeList of unit node pointers for Player's current group …
00628518161901Player 2 Selection Group412Backed By CodeList of unit node pointers for Player's current group …
00628548161913Player 3 Selection Group412Backed By CodeList of unit node pointers for Player's current group …
00628578161925Player 4 Selection Group412Backed By CodeList of unit node pointers for Player's current group …
006285A8161937Player 5 Selection Group412Backed By CodeList of unit node pointers for Player's current group …
006285D8161949Player 6 Selection Group412Backed By CodeList of unit node pointers for Player's current group …
00628608161961Player 7 Selection Group412Backed By CodeList of unit node pointers for Player's current group …
00628638161973Player 8 Selection Group412Backed By CodeList of unit node pointers for Player's current group …
00629D98163469Sprite Table362500Read Only[SCR: See individual entries] Difference between each en…
00629D98163469CSprite - Previous Entry41Supported
00629D9C163470CSprite - Next Entry41Supported
00629DA0163471CSprite - Sprite ID21Supported
00629DA2163471CSprite - Player ID11Supported
00629DA3163471CSprite - Selection Index11SupportedIndex in the selection area at the bottom of the screen.
00629DA4163472CSprite - Visibility Flags11UnsupportedPlayer bits indicating the visiblity for a player. P1: 1…
00629DA5163472CSprite - Elevation Level11Unsupported
00629DA6163472CSprite - Draw Flags11Unsupported0x01 - Draw selection circle 0x02 - Ally selection? 0x04 …
00629DA7163472CSprite - Selection Timer11Unsupported
00629DA8163473CSprite - Index21Unsupported
00629DAA163473CSprite - Unknown Flags 1211Unsupported
00629DAB163473CSprite - Unknown flags 1311Unsupported
00629DAC163474CSprite - Position22Unsupported65536*Y + X
00629DB0163475CSprite - Primary Image41UnsupportedPointer to main CImage instance.
00629DB4163476CSprite - Image Head41UnsupportedPointer to first CImage instance associated with this sprit…
00629DB8163477CSprite - Image Tail41UnsupportedPointer to last CImage instance associated with this sprite.
0063FF48186105Pylon Auras are Visible41Read-Only (Writing to it apparently does nothing :C .)
00640B24186864gameTextCounters412UnsupportedContains the tick count for when the message should disappe…
00640B58186877Next Display Text Line41Simple DataFirst line to be drawn on screen or written to. Changing…
00640B60186879Display Text21813Backed By CodeLine IDs: 0-10: display text lines (first line defined by …
00650980203143Trigger Wait Timers48Wait action timers for each player
006509A0203151Trigger Execution Timer (Hyper triggers)41Simple DataWhen this value reaches 0, trigger loop executes. Preser…
006509B0203155Trigger Current Player aka CP Trick41Simple DataUsed to dynamically run EUDs or dereference pointers. Se…
00654880207175Network Buffer4961Backed By CodeGame Command Queue. See https://github.com/phu54321/vgce/bl…
00654AA0207311Network Buffer Used41SupportedCommand queue (0x00654880) space used. Edited by PereC, 20…
006556E0208095Accept Commands41UnsupportedIf 1, commands are accepted. If 0, all commands are ignore…
00655700208103Upgrades.dat - Max Level161Simple Data
00655740208119Upgrades.dat - Mineral Cost Base261Simple DataAddress 0x00655740 - Upgrade ID 000 - bit-mask 0x0000FFFF …
006557C0208151Upgrades.dat - Gas Cost Factor261Simple Data
00655840208183Upgrades.dat - Gas Cost Base261Simple Data
006558C0208215Upgrades.dat - Dat Requirement Offset261Simple Data
00655940208247Upgrades.dat - Time Factor261Simple Data
006559C0208279Upgrades.dat - Mineral Cost Factor261Simple Data
00655A40208311Upgrades.dat - Label261Simple Datastat_txt.tbl index
00655AC0208343Upgrades.dat - Icon261Simple Datacmdicons.grp frame
00655B3C208374Upgrades.dat - Brood War Flag161Simple Data
00655B80208391Upgrades.dat - Time Base261Simple Data
00655BFC208422Upgrades.dat - Race161Simple Data0 = Zerg 1 = Terran 2 = Protoss 3 = All
00655C58208445Portdata.dat - Idle SMK4110Backed By Code1-based reference to portdata.tbl
00655E10208555Portdata.dat - Idle SMK Change1110
00655E80208583Portdata.dat - Talking SMK4110Backed By Code1-based reference to portdata.tbl
00656038208693Portdata.dat - Idle Unknown1110
006560A8208721Portdata.dat - Talking SMK change1110
00656118208749Portdata.dat - Talking unknown1110
00656198208781Techdata.dat - Unknown1244Simple Data
006561F0208803Techdata.dat - Gas Cost244Simple DataAddress 0x006561F0 - Tech ID 000 - bit-mask 0x0000FFFF - *1…
00656248208825Techdata.dat - Mineral Cost244Simple DataAddress 0x00656248 - Tech ID 000 - bit-mask 0x0000FFFF - *1…
006562A0208847Techdata.dat - Label244Simple Datastat_txt.tbl index
006562F8208869Techdata.dat - Data Restrictions244Simple Data
00656350208891Techdata.dat - Researched144Simple DataDatEdit says Unused?
00656380208903Techdata.dat - Energy Cost244Simple Data
006563D8208925Techdata.dat - Time244Simple Data
00656430208947Techdata.dat - Icon244Simple Datacmdicons.grp frame index
00656488208969Techdata.dat - Race144Simple Data0 = Zerg 1 = Terran 2 = Protoss 3 = All
006564B4208980Techdata.dat - Brood War Flag144Simple Data
006564E0208991Weapons.dat - Damage Factor1130Simple Data
00656568209025Weapons.dat - Target Error Message2130Simple Datastat_txt.tbl index
00656670209091Weapons.dat - Behavior1130Simple Data0 = Fly & Don't Follow Target 1 = Fly & Foll…
006566F8209125Weapons.dat - Effect1130Simple Data0 = None 1 = Normal Hit 2 = Splash (Radial) 3 = Splash …
00656780209159Weapons.dat - Icon2130Simple Datacmdicons.grp frame
0065678C209162Damage type/factor multipliers vs unit size205(What's this?)
00656888209225Weapons.dat - Splash Inner Radius2130Simple Data
00656990209291Weapons.dat - Attack Angle1130Simple Data"Angle within which the weapon can be fired without wa…
00656A18209325Weapons.dat - Minimum Range4130Simple Data16 times the value in DatEdit.
00656C20209455Weapons.dat - Graphics Y Offset1130Simple Data
00656CA8209489Weapons.dat - Graphics4130Simple DataFlingy.dat index Weapon Graphic
00656EB0209619Weapons.dat - Damage Amount2130Simple Data
00656FB8209685Weapons.dat - Cooldown1130Simple Data
00657040209719Weapons.dat - Remove After1130Simple Data"Time until the weapon is removed if it does not hit a…
006570C8209753Weapons.dat - Splash Middle Radius2130Simple Data
006571D0209819Weapons.dat - Upgrade ID1130Simple DataUpgrades.dat index
00657258209853Weapons.dat - Damage Type1130Simple Data0 = Independent 1 = Explosive 2 = Concussive 3 = Normal …
006572E0209887Weapons.dat - Label2130Simple Datastat_txt.tbl index
006573E8209953Weapons.dat - Special Attack1130Simple DataReference only?
00657470209987Weapons.dat - Maximum Range4130Simple DataValue is 16 times what DatEdit shows.
00657678210117Weapons.dat - Upgrade Bonus2130Simple Data
00657780210183Weapons.dat - Splash Outer Radius2130Simple Data
00657888210249Weapons.dat - Launch Spin1130Simple Data
00657910210283Weapons.dat - Graphics X Offset1130Simple Data
00657998210317Weapons.dat - Target Flags2130Simple Data0x001 Air 0x002 Ground 0x004 Mechanical 0x008 Organic 0…
00657A9C210382Game Brightness41Simple DataDarkens the screen without affecting UI elements. Appears t…
00657AA0210383Fog of War Masks14096Backed By CodeSets the brightness parts of the fog of war masks. Correspo…
0065FC18218669Units.dat - Max Hits (Air)1228Simple DataThis value is for statistics purposes only (?)
0065FD00218727Units.dat - Gas Cost2228Simple Data
0065FEC8218841Units.dat - Armor1228Simple Data
0065FFB0218899Units.dat - "What" Sound Start2228Simple Datasfxdata.dat start index
00660178219013Units.dat - Computer AI Unit Type1228Simple Data"AI Internal" in DatEdit
00660260219071Units.dat - Map String2228Simple DataIf this property is different from 0, the unit's name …
00660428219185Units.dat - Build Time2228Simple Data
006605F0219299Units.dat - Start Direction1228Simple Data"Direction unit will face after it is created. Values …
006606D8219357Units.dat - Brood War Flag1228Simple Data
006607C0219415Units.dat - Subunit 12228Simple Data228 = None
00660988219529Units.dat - Transport Space Provided1228Simple Data
00660A70219587Units.dat - Dat Requirement Offset2228Simple Datau16 index of 0x00514178 (address is 0x00514178 + 2*this va…
00660C38219701Units.dat - Subunit 22228Simple DataUnused.
00660E00219815Units.dat - Shield Amount2228Simple Data
00660FC8219929Units.dat - Movement Flags1228Simple Data
006610B0219987Units.dat - Construction Animation4228Simple Data0 = No graphics
00661440220215Units.dat - "Yes" Sound End2106Simple Datasfxdata.dat end index
00661518220269Units.dat - Staredit Availability Flags2228Simple Data0x0001 - Non-Neutral 0x0002 - Unit Listing & Palette …
006616E0220383Units.dat - Air Weapon1228Simple DataWeapons.dat index
006617C8220441Units.dat - Unit Dimensions8228Simple DataStruct: 2 bytes - Left Dimension (from center) 2 bytes - …
00661EE8220897Units.dat - "Pissed" Sound End2106Simple Datasfxdata.dat end index
00661FC0220951Units.dat - "Ready" Sound2106Simple Datasfxdata.dat index
00662098221005Units.dat - Right-click Action1228Simple Data0 = No commands/Auto Attack 1 = Normal movement/Normal Att…
00662180221063Units.dat - Size Class1228Simple Data0 = Independent 1 = Small 2 = Medium 3 = Large
00662268221121Units.dat - Human Init Action1228Simple Data"Human Idle Action" in DatEdit Orders.dat index
00662350221179Units.dat - Max HP4228Simple DataLowest byte is fractional part (*256)
006626E0221407Units.dat - Addon Placement496Simple DataStruct: 2 bytes - X Pos 2 bytes - Y Pos Only exists fo…
00662860221503Units.dat - Building Dimensions4228Simple DataStruct: 2 bytes - Width 2 bytes - Height Setting to 0 …
00662BF0221731Units.dat - "What" Sound End2228Simple Datasfxdata.dat end index
00662DB8221845Units.dat - Seek Range1228Simple Data1 range unit here = 2 range units in Weapons.dat. If the v…
00662EA0221903Units.dat - Computer Init Action1228Simple Data"Computer Idle" in DatEdit Orders.dat index
00662F88221961Units.dat - Portrait2228Simple Data0xFFFF = No Portrait
00663150222075Units.dat - Elevation Level1228Simple DataElevation Level
00663238222133Units.dat - Sight Range1228Simple DataSet value from 0-11. Values greater than 11 will crash. …
00663320222191Units.dat - Attack Unit Order1228Simple DataOrders.dat reference
00663408222249Units.dat - Build Score2228Simple Data
006635D0222363Units.dat - Armor Upgrade ID1228Simple DataUpgrades.dat index
006636B8222421Units.dat - Ground Weapon1228Simple Dataweapons.dat reference
006637A0222479Units.dat - Group Flags1228Simple Data0x01 - Zerg (Uses underlings, can build on creep) 0x02 - T…
00663888222537Units.dat - Mineral Cost2228Simple Data
00663A50222651Units.dat - Attack Move Order ID1228Simple DataOrders.dat index
00663B38222709Units.dat - "Pissed" Sound Start2106Simple Datasfxdata.dat start index
00663C10222763Units.dat - "Yes" Sound Start2107Simple Datasfxdata.dat start index
00663CE8222817Units.dat - Supply Used1228Simple DataValue here is twice what you see in-game. (Hence why 2 Zerg…
00663DD0222875Units.dat - Rank/Sublabel1228Simple Data"Controls ground units movement: units with lower Rank…
00663EB8222933Units.dat - Kill Score2228Simple DataKill Score
00664080223047Units.dat - Advanced Flags4228Simple Data0x00000001 - Building 0x00000002 - Addon 0x00000004 - Fly…
00664410223275Units.dat - Transport Space Required1228Simple Data
006644F8223333Units.dat - Graphics (Flingy ID)1228Backed By Codeflingy.dat index
006645E0223391Units.dat - Max Hits (Ground)1228Simple DataThis value is for statistics purposes only (?)
006646C8223449Units.dat - Supply Provided1228Simple DataThe value is twice what you see in-game.
006647B0223507Units.dat - Has Shields1228Simple DataExample: Unset "has shields" for Protoss Observat…
00664898223565Units.dat - Idle Order1228Simple Data"Return to Idle" in DatEdit Orders.dat index
00664980223623Units.dat - Infestation Unit296Simple DataOnly exists for buildings (First entry is 106 Command Cente…
00664A40223671Orders.dat - Unknown 41189Simple Data
00664B00223719Orders.dat - Use Weapon Targetting1189Simple Data
00664BC0223767Orders.dat - Unknown 121189Simple Data
00664C80223815Orders.dat - Unknown 111189Simple Data
00664D40223863Orders.dat - Animation1189Simple Data0 = Initial 1 = Death 2 = Ground Attack - Initial 3 = Ai…
00664E00223911Orders.dat - Energy Technology1189Simple DataTechdata.dat index for energy
00664EC0223959Orders.dat - Highlight Button ID2189Simple Datacmdicons.grp frame index or 0xFFFF for none.
00665040224055Orders.dat - Can Be Interrupted1189Simple Data
00665100224103Orders.dat - Unknown 71189Simple Data
006651C0224151Orders.dat - Unknown 91189Simple Data
00665280224199Orders.dat - Label ID2189Simple DataDoesn't do anything.
00665400224295Orders.dat - Obscured Order1189Simple DataOrders.dat index "Order to be run if the target is ob…
006654C0224343Orders.dat - Can Be Obstructed?1189Simple Data
00665580224391Orders.dat - Dat Reqs Offset2189Simple Data
00665700224487Orders.dat - Can Be Queued1189Simple Data
006657C0224535Orders.dat - Unknown 51189Simple Data
00665880224583Orders.dat - Targeting1189Simple DataWeapons.dat index "Weapon used by the order to determ…
00665940224631Orders.dat - Order is Secondary1189Simple DataOrder goes in bSecondaryOrderID instead of bMainOrderID.
00665A00224679Orders.dat - Unknown 31189Simple Data
00665AC0224727Sprites.dat - Selection Circle1387Read OnlyImages.dat reference starting at index 561. Starts on spri…
00665C48224825Sprites.dat - Visible1517Simple Data
00665E50224955Sprites.dat - HP Bar Length1387Read OnlyStarts on Sprites.dat ID 130.
00665FD8225053Sprites.dat - Selection Vertical Offset1387Read OnlyStarts on Sprites.dat ID 130.
00666160225151Sprites.dat - Image Index2517Backed By CodeImages.dat index
00666570225411Sprites.dat - Unknown1517Simple DataUnknown flag.
00666778225541Images.dat - Landing Dust Overlay4999Read Onlyimages.tbl lo? index
00667718226541Images.dat - Draw If Cloaked1999Simple Data
00667B00226791Images.dat - Special Overlay4999Read OnlyImages.tbl lo? index
00668AA0227791Images.dat - GRP File4999Read OnlyImages.tbl grp index
00669A40228791Images.dat - Drawing Function (Remapping Table)1999Simple Data0 - normal 1 - doesn't draw hallucination 2 - non-vi…
00669E28229041Images.dat - Remapping Table (Drawing Function)1999Backed By CodeIf Drawing Function is 9: 0 = No remapping 1 = ofire.pc…
0066A210229291Images.dat - Damage Overlay4999Read OnlyImages.tbl lof pointer
0066B1B0230291Images.dat - Attack Overlay4999Read Onlyimages.dat lo? index
0066C150231291Images.dat - Clickable1999Simple Data
0066C538231541Images.dat - Sheilds Overlay4999Read OnlyNone = 0 Small = 133 Medium = 2 Large = 184
0066D4D8232541Images.dat - Use Full Iscript1999Simple Data
0066D8C0232791Images.dat - Lift-off Dust Overlay4999Read Onlyimages.tbl lod index
0066E860233791Images.dat - Graphics Turns1999Simple Data
0066EC48234041Images.dat - Iscript ID4999Backed By CodeIscript.bin ID
0068C104264040AIScript pointer41Backed By Code
0068C108264041BWScript pointer41Backed By Code
0068C144264056Send Message Type41Simple DataCan be used to check if send message box is open (At Least …
0068C14C264058Current Button Set41Simple DataThe button set ID of the currently selected single unit. Th…
0068C1F4264100TranWire.grp pointer41Backed By CodeOverwriting a particular unit's frame offset with a di…
0068C1FC264102GrpWire.grp Pointer41Backed By CodeOverwriting a particular unit's frame offset with a di…
0068C204264104Wirefram.grp Pointer41Backed By CodeOverwriting a particular unit's frame offset with a di…
0068C448264249Sfxdata.dat - minVolume11144Unknown 4
0068C8C0264535Sfxdata.dat - Flags11144Value is some combination of: - 1 preload - 2 unitSpeech …
0068CD38264821Sfxdata.dat - lengthAdjust21144Unknown 3
0068D628265393Sfxdata.dat - Priority11144Unknown 1
0068DAA0265679Sfxdata.dat - Sound file41144Direct pointer to SFXData.tbl string. This can be changed a…
006C9858326973Flingy.dat - Movement Control1209Simple Data0 = Flingy.dat Control 1 = Partially Mobile, Weapon 2 = I…
006C9930327027Flingy.dat - Halt Distance4209Simple DataMeasured in pixels*256
006C9C78327237Flingy.dat - Acceleration2209Simple DataMeasured in pixels-per-frame.
006C9E20327343Flingy.dat - Turn Radius1209Simple Data
006C9EF8327397Flingy.dat - Top Speed4209Simple DataMeasured in pixels-per-frame, but written as "Speed*(3…
006CA240327607Flingy.dat - Unused1209Simple DataUnused in DatEdit
006CA318327661Flingy.dat - Sprite Index2209Simple DataSprites.dat index
006CA94D328058Displayed HP41The current HP of the selected unit.
006CA9F0328099Unit being Produced41UnsupportedSet value to 1 to detect any unit currently being trained o…
006CDDC0331415Mouse Button State41Simple Data2: Left button pressed. 8: Right button pressed. 32: Middle…
006CDDC4331416Mouse Coordinate X41Simple DataRelative to the screen.
006CDDC8331417Mouse Coordinate Y41Simple DataRelative to the screen.
006CDFD4331548Game Speed41Backed By CodeThe current game speed. The values are as follows: 0 = S…
006CDFE0331551Music Volume41Backed By Code0-100 for music volume Note: SC:R no longer uses this add…
006CDFE4331552Digital Volume41Backed By Code0-100 for sound volume Note: SC:R no longer uses this add…
006D0C68334401Creep Tile Backup Buffer41UnsupportedPointer to the u16 buffer that stores the tile IDs of tiles…
006D0C6C334402Tile Buffer Height41UnsupportedCopy of Map Height?
006D0C70334403Tile Function Pointers44Unsupported0x006D0C70 -> 0x0047E2D0 -- refreshes map tiles for draw…
006D0E80334535Creep Overlay Buffer41UnsupportedPointer to u8 flags relating to the creep overlay for each …
006D0E84334536Active Tile Buffer41UnsupportedPointer to u16 array of active map tiles.
006D0F08334569Tile Buffer Width41UnsupportedCopy of Map Width
006D0F30334579Replay Header6331Read Onlyhttps://github.com/bwapi/bwapi/blob/master/bwapi/BWAPI/Sour…
006D0F30334579Replay Header - Is Broodwar11Read Only
006D0F31334579Replay Header - Frame Count41Read Only
006D0F35334580Replay Header - Campaign ID21Read Only
006D0F37334580Replay Header - Command ID11Read Onlystruct gameSeed
006D0F38334581Replay Header - Rand Seed41Read Onlystruct gameSeed. Unix time on game start.(The number of sec…
006D0F3C334582Replay Header - Player Bytes18Read Onlystruct gameSeed
006D0F44334584Replay Header - Unknown_041Read Onlystruct networkGameHeader
006D0F48334585Replay Header - 해당 플레이어 이름251Read Only게임 제목? "This is the name that the host has ch…
006D0F60334591Replay Header - Game flags41Read Onlystruct networkGameHeader
006D0F64334592Replay Header - MapSize22Read Only2Byte MapWidth 2Byte MapHeight struct networkGameHeader
006D0F68334593Replay Header - Active Player Count11Read Onlystruct networkGameHeader
006D0F69334593Replay Header - Available Slots11Read Onlystruct networkGameHeader
006D0F6A334593Replay Header - Game Speed11Read Onlystruct networkGameHeader
006D0F6B334593Replay Header - Game State11Read Onlystruct networkGameHeader
006D0F6C334594Replay Header - Game Type11Read Onlystruct networkGameHeader
006D0F6D334594Replay Header - Unknown_111Read Onlystruct networkGameHeader
006D0F6E334594Replay Header - Game Subtype21Read Onlystruct networkGameHeader
006D0F70334595Replay Header - Seed (Unused)41Read Onlystruct networkGameHeader
006D0F74334596Replay Header - Tileset21Read Onlystruct networkGameHeader
006D0F76334596Replay Header - Autosaved11Read Onlystruct networkGameHeader
006D0F77334596Replay Header- Computer Player Count11Read Onlystruct networkGameHeader
006D0F78334597Replay Header - Game Name125Read Onlystruct networkGameHeader
006D0F91334603Replay Header - Map Name124Read Onlystruct networkGameHeader
006D0FB1334611Replay Header - Game Type11Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FB2334611Replay Header - Unknown11Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FB3334611Replay Header - Subtype21Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FB5334612Replay Header - Subtype display21Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FB7334612Replay Header - Subtype Label21Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FB9334613Replay Header - Victory Condition11Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FBA334613Replay Header - Resource Type11Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FBB334613Replay Header - Use Standard Units11Read Onlyboolean struct networkGameHeader.gameTemplateInfo
006D0FBC334614Replay Header - Fog of War (Unused)11Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FBD334614Replay Header - Starting Units11Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FBE334614Replay Header - Use Fixed Positions11Read Onlyboolean struct networkGameHeader.gameTemplateInfo
006D0FBF334614Replay Header - Usage Restriction Flags11Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FC0334615Replay Header - Allies Allowed11Read Onlyboolean struct networkGameHeader.gameTemplateInfo
006D0FC1334615Replay Header - Teams11Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FC2334615Replay Header - Cheats11Read Onlyboolean struct networkGameHeader.gameTemplateInfo
006D0FC3334615Replay Header - Tournament Mode11Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FC4334616Replay Header - Victory Condition Value41Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FC8334617Replay Header - Resources Value41Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FCC334618Replay Header - Unused value41Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FD0334619Replay Header - Extra11Read Onlystruct networkGameHeader.gameTemplateInfo
006D0FD1334619Replay Header - Player Entries3612Read OnlyUnfortunately this struct is not dword-aligned. +0 - u32…
006D1181334727Replay Header - Player Colors48Read Only
006D11A1334735Replay Header - Player Force Data18Read Only
006D1200334759iscript.bin pointer41Backed By Code
006D1238334773stat_txt.tbl pointer41Backed By Code
006D1260334783Tile Flags Pointer41Backed By CodePointer to (Map Width)x(Map Height) array of u32 flags: 0x…
006D5A6C339394Cheat Flags41Simple DataSetting cheat flags will work in multiplayer games, but may…
006D5BB0339475Music ID41Change this value and toggle music and it will play a diffe…
006D5BBE339478Minimap State41Minimap State - Pressing Tab, Shift+tab changes this 0x00 …
006D5EC8339673CV5 Pointer41Backed By Code
1505E67086724803Storm Graphics Palette4256Read Only
19046138103477109Battle.snp Join Channel41Simple Data
1904613C103477110Battle.snp Join Channel41Simple Data

Player Name

Address57EE9C
Player ID-11570 (Byte Offset: 0)
Size25
Length1
SC:RUnsupported

If you are playing as 'asdf' then you will find on that address: 'asdf'

Death Table Start

Address58A364
Player ID0 (Byte Offset: 0)
Size48
Length228
SC:RSimple Data

Counts per player, per unit

First entry in the death table (P1 marine) for 1.16.1.

Structured like

P1 marine

P2 marine

...

P12 marine

P1 ghost

P2 ghost

...

P12 ghost

...

...

For each unit, 4 bytes per player, for 12 players.

offset + (unit*12 + player) * sizeof(u32)

Location Table

Address58DC60
Player ID3647 (Byte Offset: 0)
Size20
Length255
SC:RSimple Data
  • +0x00 (EPD 3647)

    This is the LEFT position of the location (X1).

  • +0x04 (EPD 3648)

    This is the TOP position of the location (Y1).

  • +0x08 (EPD 3649)

    This is the RIGHT position of the location (X2).

  • +0x0C (EPD 3650)

    This is the BOTTOM position of the location (Y2).

  • +0x10 (EPD 3651)

    • String ID:

      1. Look in the String Editor of the Map Editor you're using

      2. Find the name of the location within it

      3. Now count all the strings that are above it, and add 1 to the total number.

      4. The number you came to is the String ID for that location

    • Flags (Affect Layers):

      • Low Ground: 65536

      • Med Ground: 131072

      • High Ground: 262144

      • Low Air: 524288

      • Med Air: 1048576

      • High Air: 2097152

    • When all flags are enabled, the value of the address is: 4128768 + String ID

    • When all flags are disabled, the value of the address is: String ID

    NOTE: the 64th (1-based) location is "Anywhere."

Drop Timer

Address59CC80
Player ID19015 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

The time remaining before a player is dropped.

See the address 0x59CC78 (Last Time of Drop Window) for application.

Player Alliances

Address58D634
Player ID3252 (Byte Offset: 0)
Size12
Length12
SC:RSimple Data

EPD 3252

  • 0x00: P1 ally status to P1

  • 0x01: P1 ally status to P2 (*256).

  • 0x02: P1 ally status to P3 (*65536).

  • 0x03: P1 ally status to P4 (*16777216).

EPD 3253

  • 0x04: P1 ally status to P5.

  • 0x05: P1 ally status to P6 (*256).

  • 0x06: P1 ally status to P7 (*65536).

  • 0x07: P1 ally status to P8 (*16777216).

EPD 3254

P1 ally status to P9-P12.

EPD 3255

  • 0x0C: P2 ally status to P1.

  • 0x0D: P2 ally status to P2 (*256).

etc

0x00: Enemy, 0x01: Ally, 0x02: Allied Victory

Note - A player is always allied OR allied victory to themself. I could not confirm through testing if it was just one of them, but in most cases, it's allied. Otherwise assume allied victory instead.

Minimap State

Address6D5BBE
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

Minimap State -

Pressing Tab, Shift+tab changes this 0x00 - default

0x01 - Enemies red, allies yellow

0x02 - Enemies red, allies yellow, ememy units red, ally units yellow, your units teal

Player 1 Selection Group

Address6284E8
Player ID161889 (Byte Offset: 0)
Size4
Length12
SC:RBacked By Code

List of unit node pointers for Player's current group selection. Points to address 0x0059CCA8

Units.dat - Air Weapon

Address6616E0
Player ID220383 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Weapons.dat index

Weapons.dat - Damage Amount

Address656EB0
Player ID209619 (Byte Offset: 0)
Size2
Length130
SC:RSimple Data

Weapons.dat - Cooldown

Address656FB8
Player ID209685 (Byte Offset: 0)
Size1
Length130
SC:RSimple Data

Units.dat - Has Shields

Address6647B0
Player ID223507 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Example: Unset "has shields" for Protoss Observatory

Base Address = 0x006647B0

Protoss Observatory Units.dat Index = 159 = 0x9F

0x006647B0 + 0x9F = 0x0066484F

0x0066484F is not divisible by 4, next lowest multiple of 4 = 0x0066484C

Went down by 3 bytes to reach the multiple of 4

Therefore, modify 0xFF00000 at 0x0066484C to change value at 0x0066484F

// set observatory "has shields" to 0

Masked MemoryAddr(0x0066484C, Set To, 0, 0xFF000000);

Units.dat - Shield Amount

Address660E00
Player ID219815 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

Units.dat - Max HP

Address662350
Player ID221179 (Byte Offset: 0)
Size4
Length228
SC:RSimple Data

Lowest byte is fractional part (*256)

Units.dat - Max Hits (Air)

Address65FC18
Player ID218669 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

This value is for statistics purposes only (?)

Units.dat - Gas Cost

Address65FD00
Player ID218727 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

Units.dat - Armor

Address65FEC8
Player ID218841 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Units.dat - "What" Sound Start

Address65FFB0
Player ID218899 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

sfxdata.dat start index

Units.dat - Computer AI Unit Type

Address660178
Player ID219013 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

"AI Internal" in DatEdit

Units.dat - Map String

Address660260
Player ID219071 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

If this property is different from 0, the unit's name will be read from the strings stored within the map (CHK) that is currently loaded, instead of the stat_txt.tbl file.

Units.dat - Build Time

Address660428
Player ID219185 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

Units.dat - Start Direction

Address6605F0
Player ID219299 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

"Direction unit will face after it is created. Values start at 0 (the unit will face the top of the screen) and go on clockwise through subsequent turning stages until 31 (unit will face a little left from the complete turn). Value of 32 means unit will face a random direction." -DatEdit

Units.dat - Brood War Flag

Address6606D8
Player ID219357 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Units.dat - Subunit 1

Address6607C0
Player ID219415 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

228 = None

Units.dat - Transport Space Provided

Address660988
Player ID219529 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Units.dat - Dat Requirement Offset

Address660A70
Player ID219587 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

u16 index of 0x00514178

(address is 0x00514178 + 2*this value)

Units.dat - Subunit 2

Address660C38
Player ID219701 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

Unused.

Units.dat - Movement Flags

Address660FC8
Player ID219929 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Units.dat - Construction Animation

Address6610B0
Player ID219987 (Byte Offset: 0)
Size4
Length228
SC:RSimple Data

0 = No graphics

Units.dat - "Yes" Sound End

Address661440
Player ID220215 (Byte Offset: 0)
Size2
Length106
SC:RSimple Data

sfxdata.dat end index

Units.dat - Staredit Availability Flags

Address661518
Player ID220269 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

0x0001 - Non-Neutral

0x0002 - Unit Listing & Palette

0x0004 - Mission Briefing

0x0008 - Player Settings

0x0010 - All Races

0x0020 - Set Doodad State

0x0040 - Non-Location Triggers

0x0080 - Unit&&Hero Settings

0x0100 - Location Triggers

0x0200 - BroodWar Only

Units.dat - Unit Dimensions

Address6617C8
Player ID220441 (Byte Offset: 0)
Size8
Length228
SC:RSimple Data

Struct:

2 bytes - Left Dimension (from center)

2 bytes - Up Dimension

2 bytes - Right Dimension

2 bytes - Down Dimension

Units.dat - "Pissed" Sound End

Address661EE8
Player ID220897 (Byte Offset: 0)
Size2
Length106
SC:RSimple Data

sfxdata.dat end index

Units.dat - "Ready" Sound

Address661FC0
Player ID220951 (Byte Offset: 0)
Size2
Length106
SC:RSimple Data

sfxdata.dat index

Units.dat - Right-click Action

Address662098
Player ID221005 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

0 = No commands/Auto Attack

1 = Normal movement/Normal Attack

2 = Normal movement/No Attack

3 = No movement/Normal Attack

4 = Harvest

5 = Harvest&Repair

6 = Nothing (with indicator)

(I think)

Units.dat - Size Class

Address662180
Player ID221063 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

0 = Independent

1 = Small

2 = Medium

3 = Large

Units.dat - Addon Placement

Address6626E0
Player ID221407 (Byte Offset: 0)
Size4
Length96
SC:RSimple Data

Struct:

2 bytes - X Pos

2 bytes - Y Pos

Only exists for buildings (First entry is 106 Command Center)

Units.dat - Building Dimensions

Address662860
Player ID221503 (Byte Offset: 0)
Size4
Length228
SC:RSimple Data

Struct:

2 bytes - Width

2 bytes - Height

Setting to 0 will make the unit (not just buildings) invisible:

  • It won't appear on the minimap

  • It won't appear on the main map

  • It can't be selected by the mouse in any way

  • 'Bring' triggers will not locate it

  • Units can still attack (and will display missile graphics)

  • Units still cause and are affected by collision

  • Units can't be targetted by other units

This dimension is used when determining if units with the Building flag can fit in the available spaace. Units without the Building flag will rely on their collision dimensions instead.

Setting this to a size of 31x31 or smaller will allow buildings to be built on any terrain, including water and cliffs, although the placement mechanics are a little wonky.

Units.dat - "What" Sound End

Address662BF0
Player ID221731 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

sfxdata.dat end index

Units.dat - Seek Range

Address662DB8
Player ID221845 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

1 range unit here = 2 range units in Weapons.dat.

If the value is 0 in DatEdit, here it will be half of Max Range in the unit's weapon range.

Units.dat - Elevation Level

Address663150
Player ID222075 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Elevation Level

Units.dat - Attack Unit Order

Address663320
Player ID222191 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Orders.dat reference

Units.dat - Build Score

Address663408
Player ID222249 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

Units.dat - Armor Upgrade ID

Address6635D0
Player ID222363 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Upgrades.dat index

Units.dat - Ground Weapon

Address6636B8
Player ID222421 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

weapons.dat reference

Units.dat - Group Flags

Address6637A0
Player ID222479 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

0x01 - Zerg (Uses underlings, can build on creep)

0x02 - Terran (Uses Supply, has sublabel, buildings will burn)

0x04 - Protoss (Uses Psi)

0x08 - Men

0x10 - Building

0x20 - Factory

0x40 - Independent

0x80 - Neutral

Example:

Set Protoss Observatory as Terran and Unset Protoss so it will burn and can be repaired.

Protoss Observatory Units.dat Index = 159 = 0x9F

0x006637A0 + 0x9F = 0x0066383F

0x0066383F is not divisible by 4, next lowest multiple of 4 = 0x0066383C

Therefore, modify 0xFF00000 at 0x0066383C to hit 0x0066383F

// set Protoss Observatory Terran

MemoryAddr(0x0066383C, Add, 0x02000000);

// unset Protoss Observatory Protoss

MemoryAddr(0x0066383C, Subtract, 0x04000000);

Units.dat - Mineral Cost

Address663888
Player ID222537 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

Units.dat - Attack Move Order ID

Address663A50
Player ID222651 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Orders.dat index

Units.dat - "Pissed" Sound Start

Address663B38
Player ID222709 (Byte Offset: 0)
Size2
Length106
SC:RSimple Data

sfxdata.dat start index

Units.dat - "Yes" Sound Start

Address663C10
Player ID222763 (Byte Offset: 0)
Size2
Length107
SC:RSimple Data

sfxdata.dat start index

Units.dat - Supply Used

Address663CE8
Player ID222817 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Value here is twice what you see in-game. (Hence why 2 Zerglings = 1 Underling)

Units.dat - Rank/Sublabel

Address663DD0
Player ID222875 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

"Controls ground units movement: units with lower Rank will stop and wait to allow units with higher Rank to continue movement."

For Terran Units this shows a stat_txt string (starting at index 550).

Units.dat - Kill Score

Address663EB8
Player ID222933 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

Kill Score

Units.dat - Advanced Flags

Address664080
Player ID223047 (Byte Offset: 0)
Size4
Length228
SC:RSimple Data

0x00000001 - Building

0x00000002 - Addon

0x00000004 - Flyer

0x00000008 - Worker

0x00000010 - Subunit

0x00000020 - Flying Building

0x00000040 - Hero

0x00000080 - Regenerates HP

0x00000100 - Animated Idle(?)

0x00000200 - Cloakable

0x00000400 - Two Units in 1 Egg

0x00000800 - Single Entity

0x00001000 - Resource Depot

0x00002000 - Resource Container

0x00004000 - Robotic Unit

0x00008000 - Detector

0x00010000 - Organic Unit

0x00020000 - Requires Creep

0x00040000 - Unused(?)

0x00080000 - Requires Psi

0x00100000 - Burrowable

0x00200000 - Spellcaster

0x00400000 - Permanent Cloak

0x00800000 - Pickup Item(?)

0x01000000 - Ignore Supply Check

0x02000000 - Use Medium Overlays

0x04000000 - Use Large Overlays

0x08000000 - Battle Reactions

0x10000000 - Full Auto-Attack

0x20000000 - Invincible

0x40000000 - Mechanical Unit

0x80000000 - Produces Units(?)

Units.dat - Transport Space Required

Address664410
Player ID223275 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Units.dat - Graphics (Flingy ID)

Address6644F8
Player ID223333 (Byte Offset: 0)
Size1
Length228
SC:RBacked By Code

flingy.dat index

Units.dat - Max Hits (Ground)

Address6645E0
Player ID223391 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

This value is for statistics purposes only (?)

Units.dat - Supply Provided

Address6646C8
Player ID223449 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

The value is twice what you see in-game.

Units.dat - Idle Order

Address664898
Player ID223565 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

"Return to Idle" in DatEdit

Orders.dat index

Units.dat - Infestation Unit

Address664980
Player ID223623 (Byte Offset: 0)
Size2
Length96
SC:RSimple Data

Only exists for buildings (First entry is 106 Command Center)

Units.dat - Human Init Action

Address662268
Player ID221121 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

"Human Idle Action" in DatEdit

Orders.dat index

Units.dat - Computer Init Action

Address662EA0
Player ID221903 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

"Computer Idle" in DatEdit

Orders.dat index

Weapons.dat - Damage Factor

Address6564E0
Player ID208991 (Byte Offset: 0)
Size1
Length130
SC:RSimple Data

Weapons.dat - Target Error Message

Address656568
Player ID209025 (Byte Offset: 0)
Size2
Length130
SC:RSimple Data

stat_txt.tbl index

Weapons.dat - Behavior

Address656670
Player ID209091 (Byte Offset: 0)
Size1
Length130
SC:RSimple Data

0 = Fly & Don't Follow Target

1 = Fly & Follow Target

2 = Appear on Target Unit

3 = Persist on Target Site

4 = Appear on Target Site

5 = Appear on Attacker

6 = Attack & Self-Destruct

7 = Bounce

8 = Attack Target 3x3 Area

9 = Go to Max. Range

Weapons.dat - Effect

Address6566F8
Player ID209125 (Byte Offset: 0)
Size1
Length130
SC:RSimple Data

0 = None

1 = Normal Hit

2 = Splash (Radial)

3 = Splash (Enemy)

4 = Lockdown

5 = Nuclear Missile

6 = Parasite

7 = Broodlings

8 = EMP Shockwave

9 = Irradiate

10 = Ensnare

11 = Plague

12 = Stasis Field

13 = Dark Swarm

14 = Consume

15 = Yamato Gun

16 = Restoration

17 = Disruption Web

18 = Corrosive Acid

19 = Mind Control

20 = Feedback

21 = Optical Flare

22 = Maelstrom

23 = Unused (Crash)

24 = Splash (Air)

Weapons.dat - Icon

Address656780
Player ID209159 (Byte Offset: 0)
Size2
Length130
SC:RSimple Data

cmdicons.grp frame

Weapons.dat - Splash Inner Radius

Address656888
Player ID209225 (Byte Offset: 0)
Size2
Length130
SC:RSimple Data

Weapons.dat - Attack Angle

Address656990
Player ID209291 (Byte Offset: 0)
Size1
Length130
SC:RSimple Data

"Angle within which the weapon can be fired without waiting for the unit's graphics to turn. 128 = 180 degrees."

Weapons.dat - Minimum Range

Address656A18
Player ID209325 (Byte Offset: 0)
Size4
Length130
SC:RSimple Data

16 times the value in DatEdit.

Weapons.dat - Graphics Y Offset

Address656C20
Player ID209455 (Byte Offset: 0)
Size1
Length130
SC:RSimple Data

Weapons.dat - Graphics

Address656CA8
Player ID209489 (Byte Offset: 0)
Size4
Length130
SC:RSimple Data

Flingy.dat index

Weapon Graphic

Weapons.dat - Remove After

Address657040
Player ID209719 (Byte Offset: 0)
Size1
Length130
SC:RSimple Data

"Time until the weapon is removed if it does not hit a target."

Weapons.dat - Splash Middle Radius

Address6570C8
Player ID209753 (Byte Offset: 0)
Size2
Length130
SC:RSimple Data

Weapons.dat - Upgrade ID

Address6571D0
Player ID209819 (Byte Offset: 0)
Size1
Length130
SC:RSimple Data

Upgrades.dat index

Weapons.dat - Damage Type

Address657258
Player ID209853 (Byte Offset: 0)
Size1
Length130
SC:RSimple Data

0 = Independent

1 = Explosive

2 = Concussive

3 = Normal

4 = Ignore Armor

Weapons.dat - Label

Address6572E0
Player ID209887 (Byte Offset: 0)
Size2
Length130
SC:RSimple Data

stat_txt.tbl index

Weapons.dat - Special Attack

Address6573E8
Player ID209953 (Byte Offset: 0)
Size1
Length130
SC:RSimple Data

Reference only?

Weapons.dat - Maximum Range

Address657470
Player ID209987 (Byte Offset: 0)
Size4
Length130
SC:RSimple Data

Value is 16 times what DatEdit shows.

Weapons.dat - Upgrade Bonus

Address657678
Player ID210117 (Byte Offset: 0)
Size2
Length130
SC:RSimple Data

Weapons.dat - Splash Outer Radius

Address657780
Player ID210183 (Byte Offset: 0)
Size2
Length130
SC:RSimple Data

Weapons.dat - Launch Spin

Address657888
Player ID210249 (Byte Offset: 0)
Size1
Length130
SC:RSimple Data

Weapons.dat - Graphics X Offset

Address657910
Player ID210283 (Byte Offset: 0)
Size1
Length130
SC:RSimple Data

Weapons.dat - Target Flags

Address657998
Player ID210317 (Byte Offset: 0)
Size2
Length130
SC:RSimple Data

0x001 Air

0x002 Ground

0x004 Mechanical

0x008 Organic

0x010 non-Building

0x020 non-Robotic

0x040 Terrain

0x080 Organic or Mechanical

0x100 Own

This is actually better thought of "which units can this weapon deal damage to". Eg if you give a ground weapon the air + ground target as well as splash, then when it attacks a ground unit, any air units in the vicinity will also take splash damage. If you also set it to have Mechanical targeting, then the weapon will be able to attack all types of ground units, but only deal damage to ones with the mechanical flag.

Flingy.dat - Movement Control

Address6C9858
Player ID326973 (Byte Offset: 0)
Size1
Length209
SC:RSimple Data

0 = Flingy.dat Control

1 = Partially Mobile, Weapon

2 = Iscript.bin Control

Flingy.dat - Halt Distance

Address6C9930
Player ID327027 (Byte Offset: 0)
Size4
Length209
SC:RSimple Data

Measured in pixels*256

Flingy.dat - Acceleration

Address6C9C78
Player ID327237 (Byte Offset: 0)
Size2
Length209
SC:RSimple Data

Measured in pixels-per-frame.

Flingy.dat - Turn Radius

Address6C9E20
Player ID327343 (Byte Offset: 0)
Size1
Length209
SC:RSimple Data

Flingy.dat - Top Speed

Address6C9EF8
Player ID327397 (Byte Offset: 0)
Size4
Length209
SC:RSimple Data

Measured in pixels-per-frame, but written as "Speed*(320/3)"

Flingy.dat - Sprite Index

Address6CA318
Player ID327661 (Byte Offset: 0)
Size2
Length209
SC:RSimple Data

Sprites.dat index

Sprites.dat - Selection Circle

Address665AC0
Player ID224727 (Byte Offset: 0)
Size1
Length387
SC:RRead Only

Images.dat reference starting at index 561.

Starts on sprites.dat entry 130.

Sprites.dat - Visible

Address665C48
Player ID224825 (Byte Offset: 0)
Size1
Length517
SC:RSimple Data

Sprites.dat - HP Bar Length

Address665E50
Player ID224955 (Byte Offset: 0)
Size1
Length387
SC:RRead Only

Starts on Sprites.dat ID 130.

Sprites.dat - Selection Vertical Offset

Address665FD8
Player ID225053 (Byte Offset: 0)
Size1
Length387
SC:RRead Only

Starts on Sprites.dat ID 130.

Sprites.dat - Image Index

Address666160
Player ID225151 (Byte Offset: 0)
Size2
Length517
SC:RBacked By Code

Images.dat index

Sprites.dat - Unknown

Address666570
Player ID225411 (Byte Offset: 0)
Size1
Length517
SC:RSimple Data

Unknown flag.

Images.dat - Landing Dust Overlay

Address666778
Player ID225541 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

images.tbl lo? index

Images.dat - Draw If Cloaked

Address667718
Player ID226541 (Byte Offset: 0)
Size1
Length999
SC:RSimple Data

Images.dat - Special Overlay

Address667B00
Player ID226791 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

Images.tbl lo? index

Images.dat - GRP File

Address668AA0
Player ID227791 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

Images.tbl grp index

Images.dat - Drawing Function (Remapping Table)

Address669A40
Player ID228791 (Byte Offset: 0)
Size1
Length999
SC:RSimple Data

0 - normal

1 - doesn't draw hallucination

2 - non-vision cloaking

3 - non-vision cloaked

4 - non-vision uncloaking

5 - vision cloaking

6 - vision cloaked

7 - vision uncloaking

8 - EMP

9 - uses remapping

10 - shadow

11 - HP bar

12 - warp texture

13 - selection circle remapping

14 - draw original player color (used for flags -- player color stored in coloring data)

15 - draw update rect

16 - hallucination

17 - warp flash

Images.dat - Damage Overlay

Address66A210
Player ID229291 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

Images.tbl lof pointer

Images.dat - Attack Overlay

Address66B1B0
Player ID230291 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

images.dat lo? index

Images.dat - Clickable

Address66C150
Player ID231291 (Byte Offset: 0)
Size1
Length999
SC:RSimple Data

Images.dat - Sheilds Overlay

Address66C538
Player ID231541 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

None = 0

Small = 133

Medium = 2

Large = 184

Images.dat - Use Full Iscript

Address66D4D8
Player ID232541 (Byte Offset: 0)
Size1
Length999
SC:RSimple Data

Images.dat - Lift-off Dust Overlay

Address66D8C0
Player ID232791 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

images.tbl lod index

Images.dat - Graphics Turns

Address66E860
Player ID233791 (Byte Offset: 0)
Size1
Length999
SC:RSimple Data

Images.dat - Iscript ID

Address66EC48
Player ID234041 (Byte Offset: 0)
Size4
Length999
SC:RBacked By Code

Iscript.bin ID

Upgrades.dat - Max Level

Address655700
Player ID208103 (Byte Offset: 0)
Size1
Length61
SC:RSimple Data

Upgrades.dat - Mineral Cost Base

Address655740
Player ID208119 (Byte Offset: 0)
Size2
Length61
SC:RSimple Data

Address 0x00655740 - Upgrade ID 000 - bit-mask 0x0000FFFF

Address 0x00655740 - Upgrade ID 001 - bit-mask 0xFFFF0000

Address 0x00655744 - Upgrade ID 002 - bit-mask 0x0000FFFF

Address 0x00655744 - Upgrade ID 003 - bit-mask 0xFFFF0000

etc.

Upgrades.dat - Gas Cost Factor

Address6557C0
Player ID208151 (Byte Offset: 0)
Size2
Length61
SC:RSimple Data

Upgrades.dat - Gas Cost Base

Address655840
Player ID208183 (Byte Offset: 0)
Size2
Length61
SC:RSimple Data

Upgrades.dat - Dat Requirement Offset

Address6558C0
Player ID208215 (Byte Offset: 0)
Size2
Length61
SC:RSimple Data

Upgrades.dat - Time Factor

Address655940
Player ID208247 (Byte Offset: 0)
Size2
Length61
SC:RSimple Data

Upgrades.dat - Mineral Cost Factor

Address6559C0
Player ID208279 (Byte Offset: 0)
Size2
Length61
SC:RSimple Data

Upgrades.dat - Label

Address655A40
Player ID208311 (Byte Offset: 0)
Size2
Length61
SC:RSimple Data

stat_txt.tbl index

Upgrades.dat - Icon

Address655AC0
Player ID208343 (Byte Offset: 0)
Size2
Length61
SC:RSimple Data

cmdicons.grp frame

Upgrades.dat - Brood War Flag

Address655B3C
Player ID208374 (Byte Offset: 0)
Size1
Length61
SC:RSimple Data

Upgrades.dat - Time Base

Address655B80
Player ID208391 (Byte Offset: 0)
Size2
Length61
SC:RSimple Data

Upgrades.dat - Race

Address655BFC
Player ID208422 (Byte Offset: 0)
Size1
Length61
SC:RSimple Data

0 = Zerg

1 = Terran

2 = Protoss

3 = All

Techdata.dat - Unknown1

Address656198
Player ID208781 (Byte Offset: 0)
Size2
Length44
SC:RSimple Data

Techdata.dat - Gas Cost

Address6561F0
Player ID208803 (Byte Offset: 0)
Size2
Length44
SC:RSimple Data

Address 0x006561F0 - Tech ID 000 - bit-mask 0x0000FFFF - *1

Address 0x006561F0 - Tech ID 001 - bit-mask 0xFFFF0000 - *65536

Address 0x006561F4 - Tech ID 002 - bit-mask 0x0000FFFF - *1

Address 0x006561F4 - Tech ID 003 - bit-mask 0xFFFF0000 - *65536

Techdata.dat - Mineral Cost

Address656248
Player ID208825 (Byte Offset: 0)
Size2
Length44
SC:RSimple Data

Address 0x00656248 - Tech ID 000 - bit-mask 0x0000FFFF - *1

Address 0x00656248 - Tech ID 001 - bit-mask 0xFFFF0000 - *65536

Address 0x0065624C - Tech ID 002 - bit-mask 0x0000FFFF - *1

Address 0x0065624C - Tech ID 003 - bit-mask 0xFFFF0000 - *65536

Techdata.dat - Label

Address6562A0
Player ID208847 (Byte Offset: 0)
Size2
Length44
SC:RSimple Data

stat_txt.tbl index

Techdata.dat - Data Restrictions

Address6562F8
Player ID208869 (Byte Offset: 0)
Size2
Length44
SC:RSimple Data

Techdata.dat - Researched

Address656350
Player ID208891 (Byte Offset: 0)
Size1
Length44
SC:RSimple Data

DatEdit says Unused?

Techdata.dat - Energy Cost

Address656380
Player ID208903 (Byte Offset: 0)
Size2
Length44
SC:RSimple Data

Techdata.dat - Time

Address6563D8
Player ID208925 (Byte Offset: 0)
Size2
Length44
SC:RSimple Data

Techdata.dat - Icon

Address656430
Player ID208947 (Byte Offset: 0)
Size2
Length44
SC:RSimple Data

cmdicons.grp frame index

Techdata.dat - Race

Address656488
Player ID208969 (Byte Offset: 0)
Size1
Length44
SC:RSimple Data

0 = Zerg

1 = Terran

2 = Protoss

3 = All

Techdata.dat - Brood War Flag

Address6564B4
Player ID208980 (Byte Offset: 0)
Size1
Length44
SC:RSimple Data

Orders.dat - Unknown 4

Address664A40
Player ID223671 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Orders.dat - Use Weapon Targetting

Address664B00
Player ID223719 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Orders.dat - Unknown 12

Address664BC0
Player ID223767 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Orders.dat - Unknown 11

Address664C80
Player ID223815 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Orders.dat - Animation

Address664D40
Player ID223863 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

0 = Initial

1 = Death

2 = Ground Attack - Initial

3 = Air Attack - Initial

4 = Unused1

5 = Ground Attack - Repeat

6 = Air Attack - Repeat

7 = Cast Spell

8 = Return to Idle from Ground Attack

9 = Return to Idle from Air Attack

10 = Unused2

11 = Walking

12 = Return to Idle from Walking

13 = Special State 1 (Bouncing Animation)

14 = Special State 2

15 = Almost Built

16 = Built

17 = Landing

18 = Lift-Off

19 = Building Is Working

20 = Return to Idle from Working

21 = Warp In

22 = Unused 3

23 = Initial (StarEdit only)

24 = Disable

25 = Burrow

26 = UnBurrow

27 = Enable

28 = No Animation

Orders.dat - Energy Technology

Address664E00
Player ID223911 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Techdata.dat index for energy

Orders.dat - Highlight Button ID

Address664EC0
Player ID223959 (Byte Offset: 0)
Size2
Length189
SC:RSimple Data

cmdicons.grp frame index or 0xFFFF for none.

Orders.dat - Can Be Interrupted

Address665040
Player ID224055 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Orders.dat - Unknown 7

Address665100
Player ID224103 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Orders.dat - Unknown 9

Address6651C0
Player ID224151 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Orders.dat - Label ID

Address665280
Player ID224199 (Byte Offset: 0)
Size2
Length189
SC:RSimple Data

Doesn't do anything.

Orders.dat - Obscured Order

Address665400
Player ID224295 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Orders.dat index

"Order to be run if the target is obscured by the Fog-of-War."

Orders.dat - Can Be Obstructed?

Address6654C0
Player ID224343 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Orders.dat - Dat Reqs Offset

Address665580
Player ID224391 (Byte Offset: 0)
Size2
Length189
SC:RSimple Data

Orders.dat - Can Be Queued

Address665700
Player ID224487 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Orders.dat - Unknown 5

Address6657C0
Player ID224535 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Orders.dat - Targeting

Address665880
Player ID224583 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Weapons.dat index

"Weapon used by the order to determine the targeting rules, if "Use Weapon Targeting" is checked."

Orders.dat - Order is Secondary

Address665940
Player ID224631 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Order goes in bSecondaryOrderID instead of bMainOrderID.

Orders.dat - Unknown 3

Address665A00
Player ID224679 (Byte Offset: 0)
Size1
Length189
SC:RSimple Data

Player 2 Selection Group

Address628518
Player ID161901 (Byte Offset: 0)
Size4
Length12
SC:RBacked By Code

List of unit node pointers for Player's current group selection.

Player 3 Selection Group

Address628548
Player ID161913 (Byte Offset: 0)
Size4
Length12
SC:RBacked By Code

List of unit node pointers for Player's current group selection.

Player 4 Selection Group

Address628578
Player ID161925 (Byte Offset: 0)
Size4
Length12
SC:RBacked By Code

List of unit node pointers for Player's current group selection.

Player 5 Selection Group

Address6285A8
Player ID161937 (Byte Offset: 0)
Size4
Length12
SC:RBacked By Code

List of unit node pointers for Player's current group selection.

Player 6 Selection Group

Address6285D8
Player ID161949 (Byte Offset: 0)
Size4
Length12
SC:RBacked By Code

List of unit node pointers for Player's current group selection.

Player 7 Selection Group

Address628608
Player ID161961 (Byte Offset: 0)
Size4
Length12
SC:RBacked By Code

List of unit node pointers for Player's current group selection.

Player 8 Selection Group

Address628638
Player ID161973 (Byte Offset: 0)
Size4
Length12
SC:RBacked By Code

List of unit node pointers for Player's current group selection.

Unitnode Table

Address59CCA8
Player ID19025 (Byte Offset: 0)
Size336
Length1700
SC:RBacked By Code

[SCR: See individual entries]

See Unitnode Structure in the Reference page or https://github.com/bwapi/bwapi/blob/master/bwapi/BWAPI/Source/BW/CUnit.h

Units are loaded to index 0 then 1699, 1698, 1697... (this includes pre-placed map units)

Compute the memory location of an index using:

0x0059CCA8 + (0x150 * index)

Example:

Index 1699 is at 0x00628298 = 0x0059CCA8 + (0x150 * 0x6A3) (player 161,741)

where 0x0059CCA8 is the base address, 0x150 = 336 is the size and 0x6A3 = 1699 is the unit index

Index 1698 is at 0x00628148 = 0x0059CCA8 + (0x150 * 0x6A2)

Index 1697 is at 0x00627FF8 = 0x0059CCA8 + (0x150 * 0x6A1)

Index 1696 is at 0x00627EA8 = 0x0059CCA8 + (0x150 * 0x6A0)

etc. (difference between each index is the size, 336 = 0x150)

Music Volume

Address6CDFE0
Player ID331551 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

0-100 for music volume

Note:

SC:R no longer uses this address. The value is always 0 in SC:R.

Digital Volume

Address6CDFE4
Player ID331552 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

0-100 for sound volume

Note:

SC:R no longer uses this address. The value is always 0 in SC:R.

Game Speed

Address6CDFD4
Player ID331548 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

The current game speed. The values are as follows:

0 = Slowest

1 = Slower

2 = Slow

3 = Normal

4 = Fast

5 = Faster

6 = Fastest

Note:

SC:R no longer uses this address. The value is always 0 in SC:R.

Pylon Auras are Visible

Address63FF48
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

Read-Only (Writing to it apparently does nothing :C .)

Cheat Flags

Address6D5A6C
Player ID339394 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Setting cheat flags will work in multiplayer games, but maybe not as expected.

00000001 **Black Sheep Wall

00000002 Operation CWAL

00000004 Power Overwhelming

00000008 *Something For Nothing

00000010 *Show Me The Money

00000040 Game Over Man

00000080 There Is No Cow Level

00000100 Staying Alive

00000200 Ophelia

00000800 The Gathering

00001000 Medieval Man

00002000 Modify The Phase Variance

00004000 **War Aint What It Used To Be

00020000 Food For Thought

00040000 *Whats Mine Is Mine

00080000 *Breathe Deep

20000000 noglues

  • If any of these are enabled and you use any cheat it will instead disable these and do their action (and since you can't use cheats in multiplayer they are useless there.)

** If you enable these in Multiplayer they will be automatically disabled.

28000200 - These flags apparently do not clear at the start of a game.

Radio Free Zerg doesn't use these flags.

Music ID

Address6D5BB0
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

Change this value and toggle music and it will play a different sound track.

0 = Off

1 = Zerg 1

2 = Zerg 2

3 = Zerg 3

4 = Terran 1

5 = Terran 2

6 = Terran 3

7 = Protoss 1

8 = Protoss 2

9 = Protoss 3

10 = Zerg Briefing Room

11 = Terran Briefing Room

12 = Protoss Briefing Room

13 = Zerg Defeat

14 = Terran Defeat

15 = Protoss Defeat

16 = Zerg Victory

17 = Terran Victory

18 = Protoss Victory

19 = Zerg Victory

20 = Terran Victory

21 = Protoss Victory

22 = Title/Menu Music

23 = Terran 2 (Credits?)

24 = Radio Free Zerg

Others crash.

Unit Color Table

Address581D76
Player ID-8572 (Byte Offset: 2)
Size8
Length12
SC:RSimple Data

Each byte corresponds to a palette index used for each player color.

(The low values for the starting address is the selection circle color for players 11 and 12. Usually 0x0101 ... See that address for details.)

Minimap Color Table

Address581DD6
Player ID-8548 (Byte Offset: 2)
Size1
Length12
SC:RSimple Data

Each byte references a palette index.

This table is immediately after the unit color table, so the low value is the last 2 bytes of Player 12's unit color.

Player Selection Circle Colors

Address581D6A
Player ID-8575 (Byte Offset: 2)
Size1
Length12
SC:RSimple Data

Each byte sets the color of the selection circle:

000 - Green

001 - Yellow

002 - Red

017 - Grey Blue*

136 - Light Grey*

138 - Dark Grey*

Higher values can give different colors (most give solid black.) Asterisk colors are inconsistent.

p1 = -8575 with mask 0x00FF0000

p2 = -8575 with mask 0xFF000000

p3 = -8574 with mask 0x000000FF

p4 = -8574 with mask 0x0000FF00

p5 = -8574 with mask 0x00FF0000

p6 = -8574 with mask 0xFF000000

p7 = -8573 with mask 0x000000FF

p8 = -8573 with mask 0x0000FF00

p9 = -8573 with mask 0x00FF0000

p10 = -8573 with mask 0xFF000000

p11 = -8572 with mask 0x000000FF

p12 = -8572 with mask 0x0000FF00

Pointer to map "STR " section

Address5993D4
Player ID15388 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

Pointer

default: first string

Units.dat - Sight Range

Address663238
Player ID222133 (Byte Offset: 0)
Size1
Length228
SC:RSimple Data

Set value from 0-11. Values greater than 11 will crash.

Example: Setting SCV Sight Range to 5.

Base Address = 0x00663238

SCV Units.dat Index = 0x7

0x00663238 + 0x7 = 0X66323F

0x0066323F is not divisible by 4, next lowest multiple of 4 is 0x0066323C

Went down 3 bytes to get from 0x0066323F to 0x0066323C

Therefore, need to modify 0xFF000000 at 0x0066323C to the change value at 0x0066323F

// set SCV sight range to 5

Masked MemoryAddr(0x0066323C, Set To, 0x05000000, 0xFF000000);

SC Technologies Available (0-23)

Address58CE24
Player ID2736 (Byte Offset: 0)
Size24
Length12
SC:RSimple Data

Table layout is reverse compared to deaths/kills table.

1 row per player, 24 bytes per row, 1 byte per tech.

BW techs are elsewhere.

Offset: 24 * Player + Offs

SC Techs:

ID Offs. Name

00 +0 Stim Packs

01 +1 Lockdown

02 +2 EMP Shockwave

03 +3 Spider Mines

04 +4 Scanner Sweep

05 +5 Tank Siege Mode

06 +6 Defensive Matrix

07 +7 Irradiate

08 +8 Yamato Gun

09 +9 Cloaking Field

10 +10 Personnel Cloaking

11 +11 Burrowing

12 +12 Infestation

13 +13 Spawn Broodlings

14 +14 Dark Swarm

15 +15 Plague

16 +16 Consume

17 +17 Ensnare

18 +18 Parasite

19 +19 Psionic Storm

20 +20 Hallucination

21 +21 Recall

22 +22 Stasis Field

23 +23 Archon Warp

SC Technologies Researched (0-23)

Address58CF44
Player ID2808 (Byte Offset: 0)
Size24
Length12
SC:RSimple Data

[See SC Technologies Available]

http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=410

SC Upgrades Available (0-45)

Address58D088
Player ID2889 (Byte Offset: 0)
Size46
Length12
SC:RSimple Data

Table layout is reverse compared to deaths/kills table.

1 row per player, 46 bytes per row, 1 byte per upgrade.

BW upgrades are elsewhere.

Offset: 46 * Player + Offs

SC Upgrades:

ID Offs. Name

00 +0 Terran Infantry Armor

01 +1 Terran Vehicle Plating

02 +2 Terran Ship Plating

03 +3 Zerg Carapace

04 +4 Zerg Flyer Caparace

05 +5 Protoss Armor

06 +6 Protoss Plating

07 +7 Terran Infantry Weapons

08 +8 Terran Vehicle Weapons

09 +9 Terran Ship Weapons

10 +10 Zerg Melee Attacks

11 +11 Zerg Missile Attacks

12 +12 Zerg Flyer Attacks

13 +13 Protoss Ground Weapons

14 +14 Protoss Air Weapons

15 +15 Protoss Plasma Shields

16 +16 U-238 Shells

17 +17 Ion Thrusters

18 +18 Burst Lasers (Unused)

19 +19 Titan Reactor (SV +50)

20 +20 Ocular Implants

21 +21 Moebius Reactor (Ghost +50)

22 +22 Apollo Reactor (Wraith +50)

23 +23 Colossus Reactor (BC +50)

24 +24 Ventral Sacs

25 +25 Antennae

26 +26 Pneumatized Carapace

27 +27 Metabolic Boost

28 +28 Adrenal Glands

29 +29 Muscular Augments

30 +30 Grooved Spines

31 +31 Gamete Meiosis (Queen +50)

32 +32 Metasynaptic Node (Defiler +50)

33 +33 Singularity Charge

34 +34 Leg Enhancements

35 +35 Scarab Damage

36 +36 Reaver Capacity

37 +37 Gravitic Drive

38 +38 Sensor Array

39 +39 Gravitic Boosters

40 +40 Khaydarin Amulet (HT +50)

41 +41 Apial Sensors

42 +42 Gravitic Thrusters

43 +43 Carrier Capacity

44 +44 Khaydarin Core (Arbiter +50)

45 +45 Unknown Upgrade45

SC Upgrades Researched (0-45)

Address58D2B0
Player ID3027 (Byte Offset: 0)
Size46
Length12
SC:RSimple Data

Table layout is reverse compared to deaths/kills table.

1 row per player, 46 bytes per row, 1 byte per upgrade.

BW upgrades are elsewhere.

Offset: 46 * Player + Offs

SC Upgrades:

ID Offs. Name

00 +0 Terran Infantry Armor

01 +1 Terran Vehicle Plating

02 +2 Terran Ship Plating

03 +3 Zerg Carapace

04 +4 Zerg Flyer Caparace

05 +5 Protoss Armor

06 +6 Protoss Plating

07 +7 Terran Infantry Weapons

08 +8 Terran Vehicle Weapons

09 +9 Terran Ship Weapons

10 +10 Zerg Melee Attacks

11 +11 Zerg Missile Attacks

12 +12 Zerg Flyer Attacks

13 +13 Protoss Ground Weapons

14 +14 Protoss Air Weapons

15 +15 Protoss Plasma Shields

16 +16 U-238 Shells

17 +17 Ion Thrusters

18 +18 Burst Lasers (Unused)

19 +19 Titan Reactor (SV +50)

20 +20 Ocular Implants

21 +21 Moebius Reactor (Ghost +50)

22 +22 Apollo Reactor (Wraith +50)

23 +23 Colossus Reactor (BC +50)

24 +24 Ventral Sacs

25 +25 Antennae

26 +26 Pneumatized Carapace

27 +27 Metabolic Boost

28 +28 Adrenal Glands

29 +29 Muscular Augments

30 +30 Grooved Spines

31 +31 Gamete Meiosis (Queen +50)

32 +32 Metasynaptic Node (Defiler +50)

33 +33 Singularity Charge

34 +34 Leg Enhancements

35 +35 Scarab Damage

36 +36 Reaver Capacity

37 +37 Gravitic Drive

38 +38 Sensor Array

39 +39 Gravitic Boosters

40 +40 Khaydarin Amulet (HT +50)

41 +41 Apial Sensors

42 +42 Gravitic Thrusters

43 +43 Carrier Capacity

44 +44 Khaydarin Core (Arbiter +50)

45 +45 Unknown Upgrade45

First Unit Pointer

Address628430
Player ID161843 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

The value is pointer to the first unit in the unitNodeTable.

Unit being Produced

Address6CA9F0
Player ID328099 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

Set value to 1 to detect any unit currently being trained on any building.

Not fully tested.

Filename for Lastreplay

Address4FF900
Player ID-141977 (Byte Offset: 0)
Size12
Length1
SC:R

Contains the string "LastReplay".

Replay Speed Limiters

Address4FF90C
Player ID0 (Byte Offset: 0)
Size4
Length7
SC:R

The speed in milliseconds to spend each frame during a replay. The array index is dependant on the game speed.

Replay Command Table

Address4FF928
Player ID0 (Byte Offset: 0)
Size16
Length2
SC:R

Contains the replay commands "show" and "hide" along with function pointers.

Replay show command modifiers

Address4FF948
Player ID0 (Byte Offset: 0)
Size32
Length12
SC:R

Contains sub-commands and leaderboard values to use in the "/replay show" command.

Menu Info Array

Address4FFAD0
Player ID0 (Byte Offset: 0)
Size12
Length27
SC:R

Contains the menu index, background index, and menu path.

Campaign List Info

Address4FFC20
Player ID0 (Byte Offset: 0)
Size8
Length85
SC:R

Contains the campaign listing info.

WORD gluHist.tbl index

WORD mapdata.dat index

WORD cinematic index

BYTE race index

BYTE bonus flag

cInit Constructor Function Table

Address50C000
Player ID0 (Byte Offset: 0)
Size4
Length310
SC:R

Standard C-Runtime. Generated by Visual C++.

Current Cinematic ID

Address5122B8
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

An index for the currently playing cinematic.

Game Speed Refresh Rate

Address5124D8
Player ID-122787 (Byte Offset: 0)
Size4
Length7
SC:RSimple Data

Contains the value in milliseconds required for each frame. Array index dependant on game speed...

Replay Speed Refresh Rate

Address5124F4
Player ID0 (Byte Offset: 0)
Size4
Length7
SC:R

Contains the time in milliseconds spent each frame. Array index dependent on game speed.

Image Update Functions

Address512510
Player ID0 (Byte Offset: 0)
Size8
Length18
SC:R

An array of image functions. The array is officially called sgUpdateFuncs.

Image Drawing Functions

Address5125A0
Player ID-122737 (Byte Offset: 0)
Size12
Length18
SC:R

This corresponds to a value in images.dat. The official name for this array is sgDrawFuncs.

Structure:

+0x0 id

+0x4 normal draw function pointer

+0x8 mirror draw function

Active Nation ID

Address512678
Player ID-122683 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

This is the same as Human ID unless you are playing Team Melee. The official name for this is g_ActiveNationID.

Active Human ID

Address51267C
Player ID-122682 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

This is your player ID. The official name for this is g_ActiveHumanID.

Active Storm ID

Address512680
Player ID-122681 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

This is your active storm ID, which is different from your player ID. The official name for this is g_ActiveStormID.

Local Nation ID

Address512684
Player ID-122680 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

The official name for this is g_LocalNationID.

P1: 00

P2: 01

P3: 02

etc.

Local Human ID

Address512688
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

The official name for this is g_LocalHumanID.

Local Storm ID

Address51268C
Player ID-122678 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

The official name for this is g_LocalStormID.

Cinematic File Name Array

Address512690
Player ID0 (Byte Offset: 0)
Size4
Length28
SC:R

Contains string pointers for the file names of all game cinematics.

Race Filename Modifiers

Address512700
Player ID0 (Byte Offset: 0)
Size8
Length1
SC:R

Contains 3 bytes "ztp" used when loading race-specific files, like the user HUD for example.

Cursor Filename Array

Address512708
Player ID0 (Byte Offset: 0)
Size4
Length19
SC:R

Contains pointers to a string for each cursor image.

Cursor Scroll Type Modifiers

Address512754
Player ID-122628 (Byte Offset: 0)
Size2
Length10
SC:RUnsupported

Contains the index for the cursor used for scrolling.

Tileset Color Cycle Pointers

Address5127DC
Player ID0 (Byte Offset: 0)
Size4
Length9
SC:R

Contains pointers to the tileset color cycle data. Array index dependant on tileset.

Trigger Action Function Array

Address512800
Player ID0 (Byte Offset: 0)
Size4
Length60
SC:R

Contains function pointers for all trigger actions.

Images Attack Overlay Array

Address51F2A8
Player ID-109615 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

Pointers to GRP handles for all images.

Images Damage Overlay Array

Address520244
Player ID-108616 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

Pointer to LO? handles for all images.dat entries.

Images Special Overlay Array

Address5211E0
Player ID-107617 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

Pointer to LO? handles for all images.dat entries.

Images Landing Dust Overlay Array

Address52217C
Player ID-106618 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

Pointer to LO? handles for all images.dat entries.

Images Liftoff Dust Overlay Array

Address523118
Player ID-105619 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

Pointer to LO? handles for all images.dat entries.

Images Shield Overlay Array

Address52E5C8
Player ID0 (Byte Offset: 0)
Size4
Length999
SC:R

Pointer to GRP handles for all images.

Images Array

Address52F568
Player ID-93055 (Byte Offset: 0)
Size64
Length5000
SC:RRead Only

The array of images currently processed in the game.

Player Human IDs

Address57EE7C
Player ID-11578 (Byte Offset: 0)
Size4
Length8
SC:RUnsupported

The Human ID for each player.llll

Player Nation IDs

Address57EEC0
Player ID-11561 (Byte Offset: 0)
Size4
Length8
SC:RUnsupported

The Nation ID for each player.

Active Player Structures

Address57EEE0
Player ID-11553 (Byte Offset: 0)
Size36
Length12
SC:RBacked By Code

A structure for each player containing their HumanID, StormID, Type, Race, Team, and Name.

+0x00 = HumanID (4 bytes)

+0x04 = StormID (4 bytes)

+0x08 = Type (1 byte; 0 = inactive, 1 = computer, 2 = human, 3 = rescuable, 7 = neutral)

+0x09 = Race (1 byte; 0 = zerg, 1 = terran, 2 = protoss)

+0x0A = Team (1 byte)

+0x0B = Name (25 bytes)

Last Whisper Player

Address57F094
Player ID0 (Byte Offset: 0)
Size25
Length1
SC:R

The name of the player that last whispered you (in-game only).

Vision Filter

Address57F0B0
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

A shared vision filter used for changing the player's vision settings.

Multiplayer Mode

Address57F0B4
Player ID-11436 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

A boolean value that specifies if the game is Single or Multi player. The official name for this field is gbMultiPlayerMode.

0=single

1=Multi

Network Player Status Array

Address57F0B8
Player ID-11435 (Byte Offset: 0)
Size4
Length8
SC:RUnsupported

An array containing flags for each player's network status.

Network Maximum Buffer Size

Address57F0D8
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

A value indicating the maximum size for the command buffer that the network provider allows.

Main Menu Dialog Handle

Address57F0DC
Player ID-11426 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

A handle to the main menu BIN dialog.

Player Minerals

Address57F0F0
Player ID-11421 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

The current amount of minerals the player has.

Player Gas

Address57F120
Player ID-11409 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

The current amount of gas the player has.

Player Total Gas Harvested

Address57F150
Player ID-11397 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

The total gas the player has ever harvested

Player Total Minerals Harvested

Address57F180
Player ID-11385 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

The total minerals the player has ever harvested

Tileset

Address57F1DC
Player ID-11362 (Byte Offset: 0)
Size2
Length1
SC:RSimple Data

The current tileset ID being used.

Changing to 1 will turn null terrain into Space with stars (Space platform tileset)

Active Player Count

Address57F1E1
Player ID-11361 (Byte Offset: 1)
Size1
Length1
SC:RSimple Data

The number of active players in the game.

Console Index

Address57F1E2
Player ID-11361 (Byte Offset: 2)
Size1
Length1
SC:RSimple Data

A value indicating which console GUI should be displayed.

0 = zerg

1 = terran

2 = protoss

Shared Vision

Address57F1EC
Player ID-11358 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

The shared vision values for each player.

StarCraft does not draw vision for players 9-12, but they can see players that have visioned with them and players can detect units they have shared vision with..

Player Color Mapping

Address57F21C
Player ID-11346 (Byte Offset: 0)
Size4
Length8
SC:RSimple Data

A mapping of the player's colors.

Elapsed Time

Address58D6F8
Player ID3301 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Game Seconds (1 Game Second = 16 Game Ticks = ~1072ms on normal speed = ~672ms on fastest speed)

Reportedly can be modified to prevent flag beacons from creating flags.

Campaign Index

Address57F244
Player ID-11336 (Byte Offset: 0)
Size2
Length1
SC:RSimple Data

A value indicating which campaign is being played.

Next Scenario name

Address57F246
Player ID-11336 (Byte Offset: 2)
Size32
Length1
SC:RSimple Data

The name of the next scenario, set using the Set Next Scenario trigger.

Last Event Position

Address57FD34
Player ID-10636 (Byte Offset: 0)
Size4
Length2
SC:RSimple Data

A POINT structure containing the position of the last event that occured (spacebar).

PlayerID + 1 for Y position

Map File Name

Address57FD3C
Player ID-10634 (Byte Offset: 0)
Size260
Length1
SC:RSimple Data

The current map's file name.

Map Title

Address57FE40
Player ID-10569 (Byte Offset: 0)
Size32
Length1
SC:RSimple Data

The current map's title.

Score Total Units Produced

Address581DE4
Player ID-8544 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Appears to be flipped; units owned, and not produced.

Score Units Produced

Address581E14
Player ID-8532 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Appears to be flipped; units owned, and not produced.

Score Units Owned

Address581E44
Player ID-8520 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Appears to be flipped; to be units produced, and not owned.

Number of Units Lost

Address581E74
Player ID-8508 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Deaths for "Any Unit" stored here.

Number of Units Killed

Address581EA4
Player ID-8496 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Kills for "Any Unit" stored here.

Score Unit Total

Address581ED4
Player ID-8484 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Score Kill Total

Address581F04
Player ID-8472 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Score Structures Constructed Total

Address581F34
Player ID-8460 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Number of Buildings Constructed

Address581F64
Player ID-8448 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Number of Buildings Lost

Address581FC4
Player ID-8424 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Deaths for "Buildings" stored here.

Number of Buildings Razed

Address581FF4
Player ID-8412 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Kills for "Buildings" stored here.

Buildings Score

Address582024
Player ID-8400 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Score for "Buildings", or buildings produced.

Razings Score

Address582054
Player ID-8388 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Score for "Razings", or buildings killed.

Number of Factories Constructed

Address582084
Player ID-8376 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Number of Factories Owned

Address5820B4
Player ID-8364 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Number of Factories Lost

Address5820E4
Player ID-8352 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Deaths for "Factories" stored here.

Zerg Control Available

Address582144
Player ID-8328 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

4 bytes per player

Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.

Zerg Control Used

Address582174
Player ID-8316 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

4 bytes per player

Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.

Zerg Control Max

Address5821A4
Player ID-8304 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

4 bytes per player

Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.

Terran Supply Available

Address5821D4
Player ID-8292 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

4 bytes per player

Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.

Terran Supply Used

Address582204
Player ID-8280 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

4 bytes per player

Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.

Terran Supply Max

Address582234
Player ID-8268 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

4 bytes per player

Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.

Protoss Psi Available

Address582264
Player ID-8256 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

4 bytes per player

Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.

Protoss Psi Used

Address582294
Player ID-8244 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

4 bytes per player

Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.

Protoss Psi Max

Address5822C4
Player ID-8232 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

4 bytes per player

Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.

Score Custom

Address5822F4
Player ID-8220 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

All Unit Counts Table

Address582324
Player ID-8208 (Byte Offset: 0)
Size48
Length228
SC:RSimple Data

Counts per player, per unit

For each unit, 4 bytes per player, for 12 players.

offset + (unit*12 + player) * sizeof(u32)

Completed Unit Counts Table

Address584DE4
Player ID0 (Byte Offset: 0)
Size48
Length228
SC:RSimple Data

Counts per player, per unit

For each unit, 4 bytes per player, for 12 players.

offset + (unit*12 + player) * sizeof(u32)

Killed Unit Counts Table

Address5878A4
Player ID-2736 (Byte Offset: 0)
Size48
Length228
SC:RSimple Data

Counts per player, per unit.

For each unit, 4 bytes per player, for 12 players.

offset + (unit*12 + player) * sizeof(u32)

Player's Force

Address58D5B0
Player ID3219 (Byte Offset: 0)
Size1
Length8
SC:RSimple Data

8 bytes: 1 byte for each active player, specifying

which of the 4 forces (0-based) that the player's

on:

EPD 3219
Player 1: 0x0058D5B0
Player 2: 0x0058D5B1 force*256
Player 3: 0x0058D5B2 force*65536
Player 4: 0x0058D5B3 force*16777216
EPD 3220
Player 5: 0x0058D5B4
Player 6: 0x0058D5B5 force*256
Player 7: 0x0058D5B6 force*65536
Player 8: 0x0058D5B7 force*16777216

each force have a multipler value to differentiate

themselves from one another:

Force 1
Force 2 (*2 to Player)
Force 3 (*3 to Player)
Force 4 (*4 to Player)

force flags

force names

PLAYER'S FORCE

Force Flags

Address58D5B8
Player ID3221 (Byte Offset: 0)
Size1
Length4
SC:RSimple Data

4 bytes: 1 byte for each force specifying the flags;

force 1: 0x0058D5B8
force 2: 0x0058D5B9 bits*256
force 3: 0x0058D5BA bits*65536
force 4: 0x0058D5BB bits*16777216

7 bits: 1 bit per flag per force;

bit 0: randomize location (+1 to byte)
bit 1: ally (+2 to byte)
bit 2: allied victory (+4 to byte)
bit 3: shared vision (+8 to byte)
bit 4: unknown/unused (+16 to byte)
bit 5: unknown/unused (+32 to byte)
bit 6: unknown/unused (+64 to byte)
bit 7: unknown/unused (+128 to byte)

EPD 3221: read not one byte, but all four bytes

and 12 bits

FORCE FLAGS

force names

player's force

Force Names

Address58D5BC
Player ID3222 (Byte Offset: 0)
Size30
Length4
SC:RSimple Data

4 byte integers: 1 integer for each force, string

number of the name per force:

force 1: 0x0058D5BC (EPD 3222)
force 2: 0x0058D5DC (EPD 3230)
force 3: 0x0058D5F8 (EPD 3237)
force 4: 0x0058D614 (EPD 3244)

untested: even forces strip two characters from

the start of the force name

advice: use [EUD] Text to Value converter

force flags

FORCE NAMES

player's force

Mission Objectives Index

Address58D6C4
Player ID3288 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

EPD 3288 (+0x00):

This is the Mission Objective String ID for Player 1.

To find the String ID for a Mission Objective:

1) Look at Player 1's Mission Objective text.
2) Go into the String Editor of the Map Editor you're using.
3) Find the exact string used in Player 1's Mission Objective text 		within the String Editor.
4) Now count all of the string above it, and add 1 to the total 	number.

Note: This does not work if Player 1 does not have any text in his Mission Objective. In fact, the value of the address would be 0.

EPD 3289 (+0x04): This is the Mission Objective String ID for Player 2.

EPD 3290 (+0x08): This is the Mission Objective String ID for Player 3.

EPD 3291 (+0x0C): This is the Mission Objective String ID for Player 4.

EPD 3292 (+0x10): This is the Mission Objective String ID for Player 5.

etc

Countdown Timer

Address58D6F4
Player ID3300 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Changing the value of this address with EUP or EUD is worthwhile, as the timer will not appear graphically and yet count down till zero without any of the players knowing. In other words, this could be used as another death counter for certain events.

[So is this 'Display Countdown Timer' then?]

#'s of Game Pauses

Address58D718
Player ID3309 (Byte Offset: 0)
Size1
Length8
SC:RSimple Data

The base value of this address is: (P1 + P2 + P3 + P4) * 3 = 50529027

Player 1: *1

Player 2: *256

Player 3: *65536

Player 4: *16777216

Player 1, 2, 3, and 4 all have three remaining game pauses that they can use to stop the game from running temporarily. If Player 2 were to pause the game, and have only two remaining game pauses left as a result, the new value of the address is: 50529027 - 256 = 50528771.

The same as EPD 3310, except:

Player 5: *1

Player 6: *256

Player 7: *65536

Player 8: *16777216

Challenge (Try it) - Create a easy formula from all of the information given.

Start Locations

Address58D720
Player ID3311 (Byte Offset: 0)
Size4
Length8
SC:RSimple Data

Point:

u16 X

u16 Y

EPD 3311

+0x00: P1 Start Location (X, Y*65536)

+0x01: P2 Start Location (X16777216, Y256) *256

+0x02: Unknown (4194352) *65536

+0x03: Unknown (805322752) *16777216

EPD 3312

+0x04: Unknown (3145792)

+0x05: P3 Start Location (X16777216, Y256) *256

+0x06: Unknown (4194352) *65536

+0x07: Unknown (805322752) *1677216

EPD 3313

+0x08: Unknown (3145792)

+0x09: P4 Start Location (X16777216, Y256) *256

+0x0A: Unknown (4194352) *65536

+0x0B: Unknown (805322752) *16777216

EPD 3314

  • 0x0C: Unknown (3145792)

+0x0D: P5 Start Location (X16777216, Y256) *256

+0x0E: Unknown (12582960) *65536

+0x0F: Unknown (805355520) *16777216

EPD 3315

+0x10: Unknown (3145920)

+0x11: P6 Start Location (X16777216, Y256) *256

+0x12: Unknown (12582960) *65536

+0x13: Unknown (805355520) *16777216

EPD 3316

+0x14: Unknown (3145920)

+0x15: P7 Start Location (X16777216, Y256) *256

+0x16: Unknown (12582960) *65536

+0x17: Unknown (805355520) *16777216

EPD 3317

+0x18: Unknown (3145920)

+0x19: P8 Start Location (X16777216, Y256) *256

+0x1A: Unknown (12582960) *65536

+0x1B: Unknown (805355520) *16777216

Base Value (when start locations are placed top-left of the map)

Player 1: 3145792

Player 2-8: 1073754112

Already you can tell that all of this is confusing and doesn't make a lot of sense on its own, so here's a tutorial that will hopefully clear up some things:

1.To check if the position of Player 3's Start Location is at the location you placed it at, look at EPD 3312.

  1. Look at the X pixel placement of P3 start location in your map editor and

write it down.

  1. Look at the Y pixel placement of P3 start location in your map editor

and write it down.

  1. Now plug those numbers into this formula:

Memory at Death Table + 3312 is exactly (3145792 + (((Start Location X * 16777216) + (Start Location Y * 256)) * 256) + (4194352 * 65536) + (805322752 * 16777216))

3145792, 4194352, and 805322752 are "constants," that you need to know and account for in the equation. Because EPD reads 4 bytes at once (this formula does not work for Player 1 and Player 2 Start Location. If you understood everything that was said so far, then coming up with another formula that's specific to those two will be easy).

  1. The trigger should work, and if it doesn't, then either you have miscalculated or these "unknowns", are not constant.

Challenge - Find out what those unknowns are actually for, and/or create an easier formula than the one I have come up with.

Vanilla Location Table

Address58D740
Player ID3319 (Byte Offset: 0)
Size20
Length64
SC:RSimple Data

This Location Table is not used in the Expansion (Brood War)!

Switch Table

Address58DC40
Player ID3639 (Byte Offset: 0)
Size32
Length1
SC:RSimple Data

+0x00 (EPD 3639)

Switch 1: *1
Switch 2: *2
Switch 3: *4
Switch 4: *8
Switch 5: *16
Switch 6: *32
Switch 7: *64
Switch 8: *128
...
Switch 32: *2147483648

When none of the switches from 1 to 32

are set, the value of the address is: 0

When only switch 8 is set, the value of the

address is: 128.

When only switch 2 and switch 8 are set,

the value of the address is: 2 + 128 = 130.

+0x04 (EPD 3640): Switch 33-64

+0x08 (EPD 3641): Switch 65-96

+0x0C (EPD 3642): Switch 97-128

+0x10 (EPD 3643): Switch 129-160

+0x14 (EPD 3644): Switch 161-192

+0x18 (EPD 3645): Switch 193-224

+0x1C (EPD 3646): Switch 225-256

Time Pause State

Address58F04C
Player ID4922 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

If FALSE, the value of the address is 0, and the countdown timer is not paused.

if TRUE, the value of the address is greater than 0, and the countdown timer is paused.

Is Expansion

Address58F440
Player ID5175 (Byte Offset: 0)
Size1
Length1
SC:RSimple Data

1 if your game is using the Expansion set.

Input Procedures

Address5968A0
Player ID0 (Byte Offset: 0)
Size4
Length19
SC:R

A list of functions that determine how user input is handled.

Game Mode

Address596904
Player ID12648 (Byte Offset: 0)
Size2
Length1
SC:RUnsupported

Determines the game's mode. In-Game, in-menu, battle.net, etc. The official name is gwGameMode.

Virtual Key Array

Address596A18
Player ID12717 (Byte Offset: 0)
Size1
Length256
SC:RBacked By Code

An array containing the state of all the virtual key codes (VK_).

BW Technologies Available (24-43)

Address58F050
Player ID0 (Byte Offset: 0)
Size20
Length12
SC:RSimple Data

Table layout is reverse compared to deaths/kills table.

1 row per player, 20 bytes per row, 1 byte per tech.

BW Technologies Researched (24-43)

Address58F140
Player ID0 (Byte Offset: 0)
Size20
Length12
SC:RSimple Data

Table layout is reverse compared to deaths/kills table.

1 row per player, 20 bytes per row, 1 byte per tech.

BW Upgrades Available (46-60)

Address58F278
Player ID0 (Byte Offset: 0)
Size15
Length12
SC:RSimple Data

Table layout is reverse compared to deaths/kills table.

1 row per player, 15 bytes per row, 1 byte per upgrade.

BW Upgrades Researched (46-60)

Address58F32C
Player ID5106 (Byte Offset: 0)
Size15
Length12
SC:RSimple Data

Table layout is reverse compared to deaths/kills table.

1 row per player, 46 bytes per row, 1 byte per upgrade.

ALL BW upgrades addresses generated automatically in Eud Editor 2 0.17.9.7 are wrong

Please follow contents below

Offset: 15 * Player + Offs

BW Upgrades:

ID Offs. Name

00 +0 unknown upgrade46

01 +1 argus jewel (corsair +50)

02 +2 unknown upgrade48

03 +3 arugs talisman (DA +50)

04 +4 unknown upgrade50

05 +5 caduceus reactor (medic +50)

06 +6 chitinous plating

07 +7 anabolic synthesis

08 +8 charon booster

09 +9 unknown upgrade55

10 +10 unknown upgrade56

11 +11 unknown upgrade57

12 +12 unknown upgrade58

13 +13 unknown upgrade59

14 +14 unknown upgrade60

Number of Buildings Owned

Address581F94
Player ID-8436 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Campaign list pointers

Address5122A0
Player ID0 (Byte Offset: 0)
Size4
Length6
SC:R

Pointer to memory location of details of first mission in SC zerg, SC terran, SC protoss, BW zerg, BW terran and BW protoss campaigns

Data pointed to:

http://farty1billion.dyndns.org/EUDDB/?pg=entry&id=423

Establishing shot pointers

Address4FFF60
Player ID0 (Byte Offset: 0)
Size8
Length65
SC:R

64 entries defining campaign mission prologue/establishing shots

1 entry defining campaign mission epilogue (hybrids bonus mission)

INT pointer to script filename

INT mapdata.dat index

Screen Coordinate Y

Address628470
Player ID161859 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

The position of the screen on the Y Axis. Note that it's locked on an 8 pixel grid, so 2 would mean 16 pixel.

Screen Coordinate X

Address628448
Player ID161849 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

The position of the screen on the X Axis. Note that it's locked on an 8 pixel grid, so 2 would mean 16 pixel.

CUnit - Irradiate Player ID

Address59CDC8
Player ID19097 (Byte Offset: 0)
Size1
Length1
SC:RSupported

Player ID who irradiated the unit.

CUnit - Matrix Timer

Address59CDBC
Player ID19094 (Byte Offset: 0)
Size1
Length1
SC:RSupported

The amount of time remaining for matrix by a science vessel.

CUnit - Maelstorm Timer

Address59CDCC
Player ID19098 (Byte Offset: 0)
Size1
Length1
SC:RSupported

The remaining time that a unit has before Maelstorm wears off.

CUnit - Irradiate Timer

Address59CDC0
Player ID19095 (Byte Offset: 0)
Size1
Length1
SC:RSupported

The amount of time remaining for irradiate by a science vessel.

CUnit - Carrier/Reaver - In Hangar Count

Address59CD70
Player ID19075 (Byte Offset: 0)
Size1
Length1
SC:RSupported

Amount of units in hangar.

Also:

Scarab/Interceptor - pointer to next scarab/interceptor

Beacon - Flag spawn frame

Building - Tech type/upgrade type/larva timer/landing timer

Worker - Target resource CUnit pointer

CUnit - Vulture - Spider Mines

Address59CD68
Player ID19073 (Byte Offset: 0)
Size1
Length1
SC:RSupported

The amount of spider mines that a vulture has left.

Also:

Carrier/Reaver - Pointer to first CUnit inside the hangar

Scarab/Interceptor - Pointer to parent

Beacon - Unknown

Building - Addon CUnit pointer

Worker - Powerup CUnit pointer

CUnit - Remaining Build Time

Address59CD54
Player ID19068 (Byte Offset: 0)
Size2
Length1
SC:RSupported

The remaining time before a building is constructed.

Mouse Coordinate X

Address6CDDC4
Player ID331416 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Relative to the screen.

Mouse Coordinate Y

Address6CDDC8
Player ID331417 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Relative to the screen.

CUnit - Position Coordinates

Address59CCD0
Player ID19035 (Byte Offset: 0)
Size2
Length2
SC:RSupported

The coordinates of a unit on the map (X + 65536*Y).

CUnit - Halt X Coordinate

Address59CCD4
Player ID19036 (Byte Offset: 0)
Size4
Length1
SC:RSupported

The X coordinate of a unit on the map (*256).

CUnit - Halt Y Coordinate

Address59CCD8
Player ID19037 (Byte Offset: 0)
Size4
Length1
SC:RSupported

The Y coordinate of a unit on the map (*256).

CUnit - Rally - Rally Coordinates

Address59CDA0
Player ID19087 (Byte Offset: 0)
Size2
Length2
SC:RSupported

The coordinates of a rally from a building (X + 65536*Y)

0x0000FFFF - X coordinate

0xFFFF0000 - Y coordinate

For pylons:

Previous Psi Provider (CUnit pointer)

CUnit - HP

Address59CCB0
Player ID19027 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Amount of HP that a unit currently has.

Value displayed in-game is divided by 256. For example, a Marine that has 40 HP in-game would have 10240 or 0x2800 HP in memory.

Offset from unit index address: 0x08

Unit Index 0 HP = 0x0059CCA8 + 0x08 = 0x0059CCB0

Unit Index 1 HP = 0x00628298 + 0x08 = 0x006282A0

Unit Index 2 HP = 0x00628148 + 0x08 = 0x00628150

Example: Regenerate HP for unit at index 2 to a max of 100 HP

Unit Index 2 HP = 0x00628148 + 0x08 = 0x00628150

Trigger("Player 1"){

Conditions:

// HP is less than 100

MemoryAddr(0x628150, At most, 25599);

Actions:

// Add 16/256 HP

MemoryAddr(0x628150, Add, 16);

Preserve Trigger();

}

//-----------------------------------------------------------------//

Trigger("Player 1"){

Conditions:

// HP is over 100

MemoryAddr(0x628150, At least, 25601);

Actions:

// Set to 100 HP

MemoryAddr(0x628150, Set To, 25600);

Preserve Trigger();

}

CUnit - Shield Points

Address59CD08
Player ID19049 (Byte Offset: 0)
Size4
Length1
SC:RSupported

The amount of shield points that a unit have (*256).

CUnit - Unused 0x08C

Address59CD34
Player ID19060 (Byte Offset: 0)
Size2
Length1
SC:RSupported

CUnit - Flingy Acceleration

Address59CCF0
Player ID19043 (Byte Offset: 0)
Size2
Length1
SC:RSupported

CUnit - Player ID

Address59CCF4
Player ID19044 (Byte Offset: 0)
Size1
Length1
SC:RSupported

The owner of the cunit.

Mask: 0x000000FF *1

P1: 00

P2: 01

P3: 02

etc.

CUnit - Order Target Unit

Address59CD04
Player ID19048 (Byte Offset: 0)
Size4
Length1
SC:RSupported

The unit targeted by another unit (Index Pointer).

CUnit - Order Coordinates

Address59CD00
Player ID19047 (Byte Offset: 0)
Size2
Length2
SC:RSupported

The coordinates of an order given to a unit (X + 65536*Y)

Advice: use a trigger duplicator.

X: *1 Mask: 0x0000FFFF

Y: *65536 Mask: 0xFFFF0000

Hotkeyed Unit

Address57FE60
Player ID-10561 (Byte Offset: 0)
Size864
Length8
SC:RSimple Data

Purpose

To detect the hotkey and then the slot that a unit is stored in and/or the unit

that is stored in a slot within a hotkey for any player.

Math

The total amount of units that can be hotkeyed

is 12.

There are 18 hotkeys in existence.

12 * 18 = 108

108 is the total amount of EPD values for each

player.

If we want to check if there's a unit in the
seventh slot within the hotkey CTRL+0 for
Player 1, 

-10561 + 7 = -10555.

If we want to check if there's a unit in the
first slot within the hotkey CTRL+1 for Player
1,

-10561 + 12 = -10550.

If we want to check if there's a unit in
the first slot within the hotkey CTRL+0 for
Player 2,

-10561 + 109 = -10452.

12 * 9 * 8 = 864

864 is the total combined number of all players' EPD

value.

We can check any slots within any hotkeys for 
any player to detect if any unit exist. 

	At least 1

We can check any slots within any hotkeys for
any player to detect if no unit exist.

	At least 3749

but what if we want to detect if a specific unit
within the map is hotkeyed in a certain slot?

Unit alpha ID (Unit Entity)

Index # Alpha ID

0 2049

1 3748 [+1700]

2 3747 [-1]

3 3746 [-1]

Confused? Hint: http://www.staredit.net/topic/14226/ (Read Section 6)

^^^^^^^Parts of this seem to be wrong.

This is the magic formula:

with the variables

p = player number (starting at 0 up to 7)

h = hotkey number

i = index in a hotkey (starting at 0 up to 11)

u = unit id

then if player p has unit u hotkeyed in index i of hotkey h, we have, for u > 0

memory(-10561+(p216)+(h12)+i) == 3749 - u,

and for u = 0,

memory(-10561+(p216)+(h12)+i) == 2049.

==============

Edited by PereC, 2021.06.25:

Each u32 stores the Alpha ID of a hotkeyed unit:

Starting from 0x57FE60: All the hotkeyed unit of P1

0x57FE60: Alpha ID of the 1st unit in P1 hotkey 0

0x57FE64: Alpha ID of the 2nd unit in P1 hotkey 0

0x57FE68: Alpha ID of the 3rd unit in P1 hotkey 0

...

0x57FE60 + 4 * 11: Alpha ID of the 12th unit in P1 hotkey 0

0x57FE60 + 4 * 12: Alpha ID of the 1st unit in P1 hotkey 1

0x57FE60 + 4 * 13: Alpha ID of the 2nd unit in P1 hotkey 1

...

0x57FE60 + 4 * 119: Alpha ID of the 12th unit in P1 hotkey 9

From 0x57FE60 + 4 * 120 to 0x57FE60 + 4 * 216: ??????


Starting from 0x57FE60 + 216: All the hotkeyed unit of P2


Starting from 0x57FE60 + 216 * 2: All the hotkeyed unit of P3


...


Starting from 0x57FE60 + 216 * 7: All the hotkeyed unit of P8


Personally I don't know why there are 864 bytes for each player. Intuitively there should be 4 * 12 * 10 = 480 bytes for each player, cuz there are 10 hotkeys and 12 units within a hotkey.

======================================

Further written by AINukeHere. (2021.08.24)

The above is very confusing because there are many wrong parts.

There are 12 unit slots for each hotkey, and each unit ID (Alpha ID) is 4 bytes.

That is, 48 bytes per hotkey.

Each player holds 18 hotkeys.

The 10 hotkeys (indices 0 to 9) are hotkeys designated by Ctrl+Number.

The remaining 8 (indices 10 to 17) hotkeys are units that are automatically saved whenever multiple units are selected.

It can be selected with Alt+Left Mouse Click.

So the allocated memory per player is 41218 = 864 bytes.

CUnit - Main Order Timer

Address59CCFC
Player ID19046 (Byte Offset: 0)
Size1
Length1
SC:RSupported

A timer for orders. An example would be the time left before a worker harvest the gas from a mine or transport unloading.

CUnit - Cooldown

Address59CCFD
Player ID19046 (Byte Offset: 1)
Size1
Length3
SC:RSupported

The firing rate (or cooldown) for ground weapons (*256).

0x0059CCFD

The firing rate (or cooldown) for air weapons (*65536).

0x0059CCFE

The casting rate (or cooldown) for spells (*16777216).

0x0059CCFF

CUnit - Main Order ID

Address59CCF5
Player ID19044 (Byte Offset: 1)
Size1
Length1
SC:RSupported

Specification of type of order given. See http://www.staredit.net/wiki/index.php?title=Orders.dat_Entry_Listing

Mask: 0x0000FF00 *256

CUnit - Main Order State

Address59CCF6
Player ID19044 (Byte Offset: 2)
Size1
Length1
SC:RSupported

Additional order (*65536) information. More extensive testing is necessary.

BWAPI doc:

0x01 Moving/Following Order

0x02 No collide (Larva)?

0x04 Harvesting? Working?

0x08 Constructing Stationary

Note: I don't actually think these are flags

CUnit - Order Signal

Address59CCF7
Player ID19044 (Byte Offset: 3)
Size1
Length1
SC:RSupported

Additional order (*16777216) information. Set by iscript.

BWAPI doc:

0x01 Update building graphic/state

0x02 Casting spell

0x04 Reset collision? Always enabled for hallucination...

0x10 Lift/Land state

Potential Link: https://github.com/bwapi/bwapi/blob/master/Documentation/dox/orders.dox

Emp Shockwave Missiles (???)

Address59CDE0
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

The total amount of missiles from *all science vessel that you can see on the map.

*: Not completely tested and confirmed.

Mouse Left Click

Address5968AC
Player ID12626 (Byte Offset: 0)
Size4
Length1
SC:R

Detects the left click of a mouse.

Use only actions that won't desync (check the Reference).

006D0F48

Displayed HP

Address6CA94D
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

The current HP of the selected unit.

Current Button Set

Address68C14C
Player ID264058 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

The button set ID of the currently selected single unit. There is a 1-to-1 relationship between unit ID and it's button set, eg the buttonset for terran ghost is ID 1.

There are also several group buttonsets, for when multiple workers, or burrowable, or cloakable units etc selected:

  • 244 - generic units, shows move/stop/attack/guard/patrol buttons

  • 245 - workers, shows move/stock/attack + gather and return resources buttons

  • 246 - cloakable units, as per 'generic' + cloak/decloak buttons

  • 247 - burrowable units, as per 'generic' + burrow/unburrow buttons

Refer to button tabs in Firegraft.

Through experimentation, buttons occasionally have a delay of up to 2-3 seconds before changes in game state will update the button status (eg when a new tech is available, a button that relies on that tech may stay greyed out for 2-3 seconds). Setting this address with a different value (eg 244) is a way to force a refresh for the currently displayed button set.

Note that SC constantly updates this address to reflect the current unit's actual button set, to prevent units from being able to action commands that they shouldn't have access to (the infamous 1.13 patch series to stop any building from making any unit).

Inverse System Time

Address51CE8C
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

Value : -GetTickCount()

(about 10ms error)

Used for input polling. See .text:004D98D8 for more info. Can be used to detect lagging

or syncing with game audio.

Trigger Condition Function Array

Address515A98
Player ID0 (Byte Offset: 0)
Size4
Length24
SC:R

Contains function pointers for all trigger conditions.

Mission Briefing Action Function Array

Address519E50
Player ID0 (Byte Offset: 0)
Size4
Length10
SC:R

Contains function pointers for all mission briefing actions.

Trigger Execution Timer (Hyper triggers)

Address6509A0
Player ID203151 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

When this value reaches 0, trigger loop executes.

Preserve to 0 for single-tick hypers, or 1 for traditional hyper triggers (2 ticks).

Wait(n) will make this value 1 after ceil(n / 'ms per tick') + 1, so Wait(0) makes this value to 1, making the trigger loop execute every 2 ticks.

CUnit - Sprite

Address59CCB4
Player ID19028 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Pointer to CSprite. Contains the graphics of the unit.

CUnit - Carrier/Reaver - Out Hangar Count

Address59CD71
Player ID19075 (Byte Offset: 1)
Size1
Length1
SC:RSupported

The amount of interceptors that a carrier has (*256).

Also:

Building - Upgrade type

CUnit - Building - Larva Spawn Timer

Address59CD72
Player ID19075 (Byte Offset: 2)
Size1
Length1
SC:RSupported

The remaining time left before a larva is created on buildings (*65536).

CUnit - Building - Landing Timer

Address59CD73
Player ID19075 (Byte Offset: 3)
Size1
Length1
SC:RSupported

Detects if a Terran building is landing (*16777216).

CUnit - Stim Timer

Address59CDBD
Player ID19094 (Byte Offset: 0)
Size1
Length1
SC:RSupported

The amount of time remaining (*256) for the stim effect applied to a marine or firebat.

CUnit - Ensnare Timer

Address59CDBE
Player ID19094 (Byte Offset: 2)
Size1
Length1
SC:RSupported

The amount of time remaining (*65536) to ensure by a queen, infested Kerrigan.

Initialised to 75 (4915200). Timers decay 1 tick per 8 frames, so 75 / 2.9762 = 25.2 RL seconds on Fastest.

75 timer * 8 frame * 0.042 seconds (Which is MS)

CUnit - Lockdown Timer

Address59CDBF
Player ID19094 (Byte Offset: 3)
Size1
Length1
SC:RSupported

The amount of time remaining (*16777216) for lockdown by a ghost.

Initialised to 131 (2,197,815,296). Timers decay 1 tick per 8 frames, so 131 / 2.9762 = 44.02 RL seconds on Fastest.

CUnit - Stasis Timer

Address59CDC1
Player ID19095 (Byte Offset: 1)
Size1
Length1
SC:RSupported

The amount of time remaining (*256) for stasis by a arbiter.

CUnit - Storm Timer

Address59CDC3
Player ID19095 (Byte Offset: 3)
Size1
Length1
SC:RSupported

If a unit is under storm (*16777216)

CUnit - Blind State

Address59CDCB
Player ID19097 (Byte Offset: 3)
Size1
Length1
SC:RSupported

Detects if a unit has been blinded (*16777216) by a medic.

CUnit - Button Set

Address59CD3C
Player ID19062 (Byte Offset: 0)
Size2
Length1
SC:RSupported

The current button set of a unit.

CUnit - Order Queue Count

Address59CD2C
Player ID19058 (Byte Offset: 0)
Size1
Length1
SC:RSupported

The number of queued orders a unit currently has.

CUnit - Rally - Rally Unit

Address59CDA4
Player ID19088 (Byte Offset: 0)
Size4
Length1
SC:RSupported

The unit that a building set their rally to (CUnit pointer).

For pylons:

Next Psi Provider (CUnit pointer)

CUnit - Is Healing

Address59CDAF
Player ID19090 (Byte Offset: 3)
Size1
Length1
SC:RSupported

Detects if a unit is currently being healed (*16777216).

CUnit - Remove Timer

Address59CDB8
Player ID19093 (Byte Offset: 0)
Size2
Length1
SC:RSupported

When this timer equals 0, the following are destroyed:

hallucinations

Swarm

Disruption Web

Broodlings

Could be more?

CUnit - Plague Timer

Address59CDC2
Player ID19095 (Byte Offset: 2)
Size1
Length1
SC:RSupported

Detects if a unit has been plagued by defiler (*65536)

CUnit - Unit beingBuilt

Address59CD94
Player ID19084 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

The current unit that's being produced from a building. For a better description of what this does, more testing is necessary.

CUnit - Acid Spore 1/9

Address59CDCF
Player ID19098 (Byte Offset: 3)
Size1
Length1
SC:RSee Description

[SCR: Other acid spore timers are NOT supported and give EUD errors on access]

Timer for 1st of 9 acid spores applied to a unit (*16777216)

Initialised to 150 (2,516,582,400). Timers decay 1 tick per 8 frames, so 150 / 2.9762 = 50.4 RL seconds on Fastest.

This is the timer for the first acid spore that hits a target, you can reduce the value and the spore will decay quickly as expected.

When a 2nd spore is applied that timer is recorded separately and independently. The first spore will decay as per its timer and the 2nd one decays based on its timer.

CUnit - Acid Spore 2/9

Address59CDD0
Player ID19099 (Byte Offset: 0)
Size1
Length1
SC:RUnsupported

Timer for 2nd of 9 acid spores applied to a unit

Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595

CUnit - Acid Spore Count

Address59CDCE
Player ID19098 (Byte Offset: 2)
Size1
Length1
SC:RSupported

The amount of Acid Spores applied to a unit (*65536).

This value is incremented when a spore timer becomes non-0, and decremented when a spore timer becomes 0. It represents the extra damage (+1) and weapon cooldown (+12.5% per spore) inflicted on the current unit, and controls which overlay graphic to display and the green "Acid Spore (x)" rank string.

Artificially decrementing this value can result in an underflow wrap-around to 255 if a spore timer subsequently decrements to 0. Unfortunately the code to remove the graphical overlay is tied to the last spore timer decrementing to 0, so simply setting this value back to 0 does not remove the graphical overlay. The best approach is to detect if the value is at least 10, then set the value to 1 and set sporeTimer[1] to 1, so that when it decrements the graphical overlay will be removed.

CUnit - Acid Spore 3/9

Address59CDD1
Player ID19099 (Byte Offset: 1)
Size1
Length1
SC:RUnsupported

Timer for 3rd of 9 acid spores applied to a unit (*256)

Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595

CUnit - Acid Spore 4/9

Address59CDD2
Player ID19099 (Byte Offset: 2)
Size1
Length1
SC:RUnsupported

Timer for 4th of 9 acid spores applied to a unit (*65536)

Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595

CUnit - Acid Spore 5/9

Address59CDD3
Player ID19099 (Byte Offset: 3)
Size1
Length1
SC:RUnsupported

Timer for 5th of 9 acid spores applied to a unit (*16777216)

Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595

CUnit - Acid Spore 6/9

Address59CDD4
Player ID19100 (Byte Offset: 0)
Size1
Length1
SC:RUnsupported

Timer for 6th of 9 acid spores applied to a unit

Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595

CUnit - Acid Spore 7/9

Address59CDD5
Player ID19100 (Byte Offset: 1)
Size1
Length1
SC:RUnsupported

Timer for 7th of 9 acid spores applied to a unit (*256)

Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595

CUnit - Acid Spore 8/9

Address59CDD6
Player ID19100 (Byte Offset: 2)
Size1
Length1
SC:RUnsupported

Timer for 8th of 9 acid spores applied to a unit (*65536)

Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595

CUnit - Acid Spore 9/9

Address59CDD7
Player ID19100 (Byte Offset: 3)
Size1
Length1
SC:RUnsupported

Timer for 9th of 9 acid spores applied to a unit (*16777216)

Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595

CUnit - Repulse Angle

Address59CDF5
Player ID19108 (Byte Offset: 1)
Size1
Length1
SC:RSupported

Updated when the air unit is being pushed (*256). Need more testing.

Set entire Player ID to 0 to remove air repulsion for the CUnit.

CUnit - Drift X

Address59CDF6
Player ID19108 (Byte Offset: 2)
Size1
Length1
SC:RSupported

For air units when they're pushed (*65536) on X-axis.

Formula from BWAPI: (mapsizex/1.5 max)

Need more testing.

CUnit - Drift Y

Address59CDF7
Player ID19108 (Byte Offset: 3)
Size1
Length1
SC:RSupported

For air units when they're pushed (*16777216) on Y-axis.

Formula from BWAPI: (mapsizex/1.5 max)

Need more testing.

CUnit - Matrix Damage Absorption

Address59CDBA
Player ID19093 (Byte Offset: 2)
Size2
Length1
SC:RSupported

The amount of damage the matrix has absorbed (*16777216).

Larva Count

Address585474
Player ID-5052 (Byte Offset: 0)
Size12
Length1
SC:R

(Why does this entry exist? Should be within the Completed Unit Counts Table)

The amount of larva a hatchery, lair, or hive currently have.

CUnit - Flingy Movement Type

Address59CCCF
Player ID19034 (Byte Offset: 3)
Size1
Length1
SC:RSupported

The type of movement that the unit use (*16777216).

CUnit - Flingy ID

Address59CCCC
Player ID19034 (Byte Offset: 0)
Size2
Length1
SC:RSupported

The Flingy ID of the unit.

CUnit - Flingy Turn Radius

Address59CCCA
Player ID19033 (Byte Offset: 2)
Size1
Length1
SC:RSupported

"The unit flips out when this is frozen on a specific value. It will have difficulty turning, and will usually be seen walking diagonally instead of facing the direction it is actually walking towards." -Roy

CUnit - Movement Flags

Address59CCC8
Player ID19033 (Byte Offset: 0)
Size1
Length1
SC:RSupported

Flags that enable/disable certain movement. Need more testing.

0x01 - Ordered at least once

0x02 - Accelerating

0x04 - Breaking

0x08 - Starting attack

0x10 - Moving

0x20 - Lifted

0x40 - Unknown

0x80 - Always zero

CUnit - Next Target Waypoint

Address59CCC4
Player ID19032 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

0x0000FFFF x-coord

0xFFFF0000 y-coord

The desired position (bwapi)

"When this is set to a certain point, a unit will face in the direction of that point while it idles. This has no effect on the unit when it's moving. By default, it was on the current position of the Marine. When the unit is attacking another unit, this point is set to the unit's target. This is likely used to make a unit face its target when attacking." -Roy

CUnit - Move Acceleration

Address59CCE0
Player ID19039 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit.current_speed1

Related to turning and from observations, it is apparent that this is similar (or the same) to the move speed of a unit.

CUnit - Move Speed

Address59CCE4
Player ID19040 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit.current_speed2

The speed that the unit is currently moving at. An example of this in use would be to tell the difference between a marine that is using Stim Packs and a marine that is not using Stim Packs.

CUnit - Move Speed On X-Axis

Address59CCE8
Player ID19041 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit.current_speed.x

The speed that the unit is currently moving at on the X-Axis (Left = Negative, Right = Positive). An example of this would be to detect if a unit is absolutely moving towards the right (not diagonally).

CUnit - Move Speed On Y-Axis

Address59CCEC
Player ID19042 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit.current_speed.y

The speed that the unit is currently moving at on the Y-Axis (Up = Negative, Down = Positive). An example of this in use would be to tell if a unit is going absolutely down (not diagonally).

Order Destination Invalid (???)

Address59CD3C
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

"When this address is frozen and you order a unit to try to walk into water or other invalid terrain, the unit will walk in place when it determines it cannot complete the destination, instead of coming to a full stop." -Roy

CUnit - Order Unit Type

Address59CCF8
Player ID19045 (Byte Offset: 0)
Size2
Length1
SC:RSupported

228 = none?

CUNIT - Idle Order Timer

Address59CCF9
Player ID19045 (Byte Offset: 1)
Size4
Length1
SC:R

(*256) While the unit is specifically following the order to move to an area, the value of this address is 0. When it is not moving, the value appears to randomize itself. When the unit is given an order to attack an area, it switches from randomizing itself to being zero repeatedly with a delay. This might explain why units that are attacking are slower at firing the auto-acquired target once it is in range than it is to patrol towards them instead. Note that a building is always zero.

0x0059CCFA (*65536)

0x0059CCFB (*16777216)

CUnit - Status Flags

Address59CD84
Player ID19080 (Byte Offset: 0)
Size4
Length1
SC:RSupported

https://github.com/bwapi/bwapi/blob/master/bwapi/BWAPI/Source/BW/UnitStatusFlags.h

0x00000001 - Completed

0x00000002 - GroundedBuilding (Building on the ground)

0x00000004 - In Air

0x00000008 - Disabled (Protoss unpowered)

0x00000010 - Burrowed

0x00000020 - In Building

0x00000040 - In Transport

0x00000080 - Unknown (Target acquisition)

0x00000100 - Requires detection

0x00000200 - Cloaked

0x00000400 - Doodad State thing

0x00000800 - Cloaking for free (no energy to cloak)

0x00001000 - Cannot receive orders

0x00002000 - NoBrkCodeStart (Iscript)

0x00004000 - Unknown

0x00008000 - Cannot Attack (unknown)

0x00010000 - Is A Unit

0x00020000 - Is A Building

0x00040000 - Ignore Tile Collision

0x00080000 - Unknown

0x00100000 - Is Normal (set for normal units, not set for hallucinated units)

0x00200000 - No Collide

0x00400000 - unknown

0x00800000 - Is Gathering

0x01000000 - unknown

0x02000000 - unknown (turret related)

0x04000000 - Invincible

0x08000000 - Holding Position

0x10000000 - Speed Upgrade

0x20000000 - Cooldown Upgrade

0x40000000 - Is Hallucination (set for hallucinated units, not set for normal units)

0x80000000 - Is Self Destructing (Set for when the unit is self-destructing (scarab, scourge, infested terran))

Offset from CUnit Base: 0xDC (= 0x0059CD84 - 0x0059CCA8)

Units.dat - Portrait

Address662F88
Player ID221961 (Byte Offset: 0)
Size2
Length228
SC:RSimple Data

0xFFFF = No Portrait

Last Time for Drop Window

Address59CC78
Player ID19013 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Last GetTickCount Win32 API Time for Drop Window shown.

Whenever a player disconnects, StarCraft will display drop window.

If 2 minutes elapsed since last drop window showed, StarCraft will reset the drop timer to 45 seconds.

Accept Commands

Address6556E0
Player ID208095 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

If 1, commands are accepted.

If 0, all commands are ignored.

s_button Offset

Address5187E8
Player ID-116447 (Byte Offset: 0)
Size12
Length250
SC:RBacked By Code

+0x00 (EPD -116447)

Number of available buttons.

0 = Button disabled

+0x04 (EPD -116446)

s_button Address.

+0x08 (EPD -116445)

Unknown.

0 ~ 227 = Units buttons

228 ~ 249 = Internal buttons (228 = Blank)

Pointer to "MTXM" map tile data

Address5993C4
Player ID15384 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

Portdata.dat - Idle SMK

Address655C58
Player ID208445 (Byte Offset: 0)
Size4
Length110
SC:RBacked By Code

1-based reference to portdata.tbl

Portdata.dat - Talking SMK

Address655E80
Player ID208583 (Byte Offset: 0)
Size4
Length110
SC:RBacked By Code

1-based reference to portdata.tbl

Portdata.dat - Idle SMK Change

Address655E10
Player ID208555 (Byte Offset: 0)
Size1
Length110
SC:R

Portdata.dat - Talking SMK change

Address6560A8
Player ID0 (Byte Offset: 0)
Size1
Length110
SC:R

Portdata.dat - Idle Unknown

Address656038
Player ID0 (Byte Offset: 0)
Size1
Length110
SC:R

Portdata.dat - Talking unknown

Address656118
Player ID0 (Byte Offset: 0)
Size1
Length110
SC:R

Sfxdata.dat - Sound file

Address68DAA0
Player ID265679 (Byte Offset: 0)
Size4
Length1144
SC:R

Direct pointer to SFXData.tbl string. This can be changed as long as the wav hasn't been loaded. This means that any wav without the 'preload' flag should be able to be pointed to a different wav file.

Sfxdata.dat - Priority

Address68D628
Player ID265393 (Byte Offset: 0)
Size1
Length1144
SC:R

Unknown 1

Sfxdata.dat - Flags

Address68C8C0
Player ID264535 (Byte Offset: 0)
Size1
Length1144
SC:R

Value is some combination of:

  • 1 preload

  • 2 unitSpeech

  • 16 oneAtTime

  • 32 neverPreempt

Sfxdata.dat - lengthAdjust

Address68CD38
Player ID264821 (Byte Offset: 0)
Size2
Length1144
SC:R

Unknown 3

Sfxdata.dat - minVolume

Address68C448
Player ID264249 (Byte Offset: 0)
Size1
Length1144
SC:R

Unknown 4

Mapdata.dat - Mission dir

Address59C080
Player ID0 (Byte Offset: 0)
Size4
Length65
SC:R

Mapdata.tbl string index

GRP Array

Address51CED0
Player ID-111909 (Byte Offset: 0)
Size4
Length999
SC:RRead Only

Pointer to each GRP for each images.dat entry

Player Units available

Address57F27C
Player ID-11322 (Byte Offset: 0)
Size228
Length12
SC:RSimple Data

1 row of 228 bytes, 1 per unit, per player

offset + (Cp * 228) + 100

Network Mode Delay

Address51CE84
Player ID-111928 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

1 in single player, 2 in LAN, 5 on battle.net.

Described at http://wiki.teamliquid.net/starcraft/LatencyChanger

Editted by PereC, 2021.03.31:

In SC:R, the value is always 1000

Network Mode Delay 2

Address51CE88
Player ID-111927 (Byte Offset: 0)
Size4
Length1
SC:R

Appears to be a duplicate of 0x0051CE84. Not sure which value is the one that is actually used.

Editted by PereC, 2021.03.31:

In SC:R, the value is always 1000

First Empty Unit

Address628438
Player ID161845 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

The address of the unit structure to be created

-added by jehn

Last Unit Pointer

Address6283F8
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

The value is pointer to the last unit in the unitNodeTable.

-added by jehn

CUnit - Resource - Resource Count

Address59CD78
Player ID19077 (Byte Offset: 0)
Size2
Length1
SC:RSupported

Amount of Resource if its Mineral Field or Vespene Gayser

Also:

Nydus - Exit unit

Ghost - Nuke dot sprite

Pylon - Power overlay

Nuke Silo - Attached nuke

Powerup - Origin Coords

Gatherer - Harvst target unit

Hatchery? - Harvest Value

CUnit - Resource - Gatherer Queue Count

Address59CD7B
Player ID19077 (Byte Offset: 3)
Size1
Length1
SC:RSupported

as named in bwapi, or "Boolean on whether is extracted-added by jehn" ???

CUnit - Worker - Previous Harvest Unit

Address59CD7C
Player ID19078 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer

"When there is a gather conflict" (bwapi)

"It is taken to wait unit the next" (jehn)

Also:

Resource - Next gatherer

Silo - Ready

CUnit - Worker - Harvest Target Unit

Address59CD78
Player ID19077 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to harvested mineral/geyser

Also:

Resource - Resource count/iscript/queue count

Nydus - Exit unit

Ghost - Nuke dot sprite

Pylon - Power overlay

Nuke Silo - Attached nuke

Powerup - Origin Coords

Hatchery? - Harvest Value

CUnit - Unit Type

Address59CD0C
Player ID19050 (Byte Offset: 0)
Size2
Length1
SC:RSupported

Trigger Wait Timers

Address650980
Player ID0 (Byte Offset: 0)
Size4
Length8
SC:R

Wait action timers for each player

Flingy.dat - Unused

Address6CA240
Player ID327607 (Byte Offset: 0)
Size1
Length209
SC:RSimple Data

Unused in DatEdit

Current Player Selection

Address6284B8
Player ID161877 (Byte Offset: 0)
Size4
Length12
SC:RBacked By Code

Selection group of the current player

Seems to be duplicated at 0x59724C and 0x597208?

Replay Header - MapSize

Address6D0F64
Player ID334592 (Byte Offset: 0)
Size2
Length2
SC:RRead Only

2Byte MapWidth

2Byte MapHeight

struct networkGameHeader

MapSize

Address57F1D4
Player ID-11364 (Byte Offset: 0)
Size2
Length2
SC:RSimple Data

2byte Width

2byte Height

width + 65536*height

stat_txt.tbl pointer

Address6D1238
Player ID334773 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

Game Subtype ID

Address59BA5C
Player ID0 (Byte Offset: 0)
Size4
Length1
SC:R

Subtype ID specified in GOT template.

Top Vs. Bottom: Number is the number of players on top (1 = "1 vs #", 2 = "2 vs #", etc.)

Greed: 1=2500, 2=5000, 3=7500, 4=10000

Slaughter: 1=15, 2=30, 3=45, 4=60

Team Melee/FFA/CTF: 1=2 teams, 2=3 teams, 3=4 teams

Images Damage Overlay Frame

Address5240D0
Player ID-104613 (Byte Offset: 0)
Size1
Length999
SC:RSimple Data

First Image Pointer

Address57EB68
Player ID-11775 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

Pointer to the first CImage instance.

Last Image Pointer

Address57EB70
Player ID-11773 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

Pointer to the last CImage instance.

CUnit - Current Direction 1

Address59CCC9
Player ID19033 (Byte Offset: 1)
Size1
Length1
SC:RSupported

256 directions starting from the top going clockwise.

0x0000FF00 - *256

CUnit - Velocity Direction 1

Address59CCCB
Player ID19033 (Byte Offset: 3)
Size1
Length1
SC:RSupported

This usually only differs from the currentDirection field for units that can accelerate and travel in a different direction than they are facing. For example Mutalisks can change the direction they are facing faster than then can change the direction they are moving.

CUnit - Flingy Top Speed

Address59CCDC
Player ID19038 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit - Current Direction 2

Address59CCF2
Player ID19043 (Byte Offset: 2)
Size1
Length1
SC:RSupported

The direction a unit is currently facing (*65536)

THIS SHIT UPDATES WITH IDLE ANIMATION (GHOSTS/MARINES/FIREBATS ETC)

CUnit - Velocity Direction 2

Address59CCF3
Player ID19043 (Byte Offset: 3)
Size1
Length1
SC:RSupported

The direction a unit is currently facing (*16777216).

Up

Least 0

Most 16777215

Up-Right

Least 536870912

Most 553648127

Right

Least 1073741824

Most 1090519039

Down-Right

Least 1610612736

Most 1627389951

Down

Least 2147483648

Most 2164260863

Down-Left

Least 2684354560

Most 2701131775

Left

Least 3221225472

Most 3238002687

Up-Left

Least 3758096384

Most 3774873599

CUnit - Order Queue Timer

Address59CD2D
Player ID19058 (Byte Offset: 1)
Size1
Length1
SC:RSupported

BWAPI doc:

counts/cycles down from from 8 to 0 (inclusive). See also [Cycle Counter].

CUnit - Unknown 0x086

Address59CD2E
Player ID19058 (Byte Offset: 2)
Size1
Length1
SC:RSupported

Pathing related?

CUnit - Attack Notify Timer

Address59CD2F
Player ID19058 (Byte Offset: 3)
Size1
Length1
SC:RSupported

CUnit - Kill Count

Address59CD37
Player ID19060 (Byte Offset: 3)
Size1
Length1
SC:RSupported

The kill count of a unit (*16777216).

CUnit - Rank Increase

Address59CD36
Player ID19060 (Byte Offset: 2)
Size1
Length1
SC:RSupported

Adds to unit's base rank. (*65536)

CUnit - Is Cloaked

Address59CD3E
Player ID19062 (Byte Offset: 0)
Size1
Length1
SC:RSupported

CUnit - Movement State

Address59CD3F
Player ID19062 (Byte Offset: 0)
Size1
Length1
SC:RSupported

https://github.com/bwapi/bwapi/blob/master/bwapi/BWAPI/Source/BW/Path.h

// Names are official

UM_Init = 0x00,

UM_InitSeq = 0x01,

UM_Lump = 0x02,

UM_Turret = 0x03,

UM_Bunker = 0x04,

UM_BldgTurret = 0x05,

UM_Hidden = 0x06,

UM_Flyer = 0x07,

UM_FakeFlyer = 0x08,

UM_AtRest = 0x09,

UM_Dormant = 0x0A,

UM_AtMoveTarget = 0x0B,

UM_CheckIllegal = 0x0C,

UM_MoveToLegal = 0x0D,

UM_LumpWannabe = 0x0E,

UM_FailedPath = 0x0F,

UM_RetryPath = 0x10,

UM_StartPath = 0x11,

UM_UIOrderDelay = 0x12,

UM_TurnAndStart = 0x13,

UM_FaceTarget = 0x14,

UM_NewMoveTarget = 0x15,

UM_AnotherPath = 0x16,

UM_Repath = 0x17,

UM_RepathMovers = 0x18,

UM_FollowPath = 0x19,

UM_ScoutPath = 0x1A,

UM_ScoutFree = 0x1B,

UM_FixCollision = 0x1C,

UM_WaitFree = 0x1D,

UM_GetFree = 0x1E,

UM_SlidePrep = 0x1F,

UM_SlideFree = 0x20,

UM_ForceMoveFree = 0x21,

UM_FixTerrain = 0x22,

UM_TerrainSlide = 0x23

CUnit - Energy

Address59CD4A
Player ID19065 (Byte Offset: 2)
Size2
Length1
SC:RSupported

Amount of energy a unit has. (value*256) * 65536

CUnit - Previous HP

Address59CD56
Player ID19068 (Byte Offset: 2)
Size2
Length1
SC:RSupported

The HP of the unit before it changed (example Drone->Hatchery, the Drone's HP will be stored here)

CUnit - Parasite Flags

Address59CDC9
Player ID19097 (Byte Offset: 1)
Size1
Length1
SC:RSupported

Detects if a unit have been infected with a parasite (*256).

Flags connected to player ID. Value is a sum of:

P1: 256

P2: 512

P3: 1024

P4: 2048

P5: 4096

P6: 8192

P7: 16384

P8: 32768

CUnit - Cycle Counter

Address59CDCA
Player ID19097 (Byte Offset: 2)
Size1
Length1
SC:RSupported

Counts/cycles up from 0 to 7 inclusive (*65536)

CUnit - Unused Timer

Address59CDCD
Player ID19098 (Byte Offset: 1)
Size1
Length1
SC:RSupported

Potentially from Valkyrie Afterburner or Ultralisk Roar.

CUnit - Irradiated By

Address59CDC4
Player ID19096 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to casting unit which irradiated this unit.

CUnit - Air Strength

Address59CDE0
Player ID19103 (Byte Offset: 0)
Size2
Length1
SC:RUnsupported

CUnit - Ground Strength

Address59CDE2
Player ID19103 (Byte Offset: 2)
Size2
Length1
SC:RUnsupported

Sprite Table

Address629D98
Player ID163469 (Byte Offset: 0)
Size36
Length2500
SC:RRead Only

[SCR: See individual entries]

Difference between each entry: 9 Player ID's

Struct:

https://github.com/bwapi/bwapi/blob/master/bwapi/BWAPI/Source/BW/CSprite.h

Populates like CUnit, with 2nd entry at the rearmost of the table, and the 3rd the 2nd rearmost entry of the table; first entry will be a cursour sprite, having sprite ID of 318.

CSprite - Previous Entry

Address629D98
Player ID163469 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CSprite - Next Entry

Address629D9C
Player ID163470 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CSprite - Sprite ID

Address629DA0
Player ID163471 (Byte Offset: 0)
Size2
Length1
SC:RSupported

CSprite - Player ID

Address629DA2
Player ID163471 (Byte Offset: 2)
Size1
Length1
SC:RSupported

CSprite - Selection Index

Address629DA3
Player ID163471 (Byte Offset: 3)
Size1
Length1
SC:RSupported

Index in the selection area at the bottom of the screen.

CSprite - Visibility Flags

Address629DA4
Player ID163472 (Byte Offset: 0)
Size1
Length1
SC:RUnsupported

Player bits indicating the visiblity for a player.

P1: 1

P2: 2

P3: 4

P4: 8

P5: 16

P6: 32

P7: 64

P8: 128

CSprite - Elevation Level

Address629DA5
Player ID163472 (Byte Offset: 1)
Size1
Length1
SC:RUnsupported

CSprite - Draw Flags

Address629DA6
Player ID163472 (Byte Offset: 2)
Size1
Length1
SC:RUnsupported

0x01 - Draw selection circle

0x02 - Ally selection?

0x04 - Ally selection?

0x08 - Draw HP bar

0x10 -

0x20 - Hidden

0x40 - Burrowed

0x80 - Iscript unbreakable code section

CSprite - Selection Timer

Address629DA7
Player ID163472 (Byte Offset: 3)
Size1
Length1
SC:RUnsupported

CSprite - Index

Address629DA8
Player ID163473 (Byte Offset: 0)
Size2
Length1
SC:RUnsupported

CSprite - Unknown Flags 12

Address629DAA
Player ID163473 (Byte Offset: 2)
Size1
Length1
SC:RUnsupported

CSprite - Unknown flags 13

Address629DAB
Player ID163473 (Byte Offset: 3)
Size1
Length1
SC:RUnsupported

CSprite - Position

Address629DAC
Player ID163474 (Byte Offset: 0)
Size2
Length2
SC:RUnsupported

65536*Y + X

CSprite - Primary Image

Address629DB0
Player ID163475 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

Pointer to main CImage instance.

CSprite - Image Head

Address629DB4
Player ID163476 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

Pointer to first CImage instance associated with this sprite.

CSprite - Image Tail

Address629DB8
Player ID163477 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

Pointer to last CImage instance associated with this sprite.

Images.dat - Remapping Table (Drawing Function)

Address669E28
Player ID229041 (Byte Offset: 0)
Size1
Length999
SC:RBacked By Code

If Drawing Function is 9:

0 = No remapping

1 = ofire.pcx (Orange)

2 = gfire.pcx (Green)

3 = bfire.pcx (Blue)

4 = bexpl.pcx (Blue2)

5 = Special (Own cloak)

6 = (crash)

7 = (crash)

8 = Unk8 (?)

9 = Unk9 (?)

iscript.bin pointer

Address6D1200
Player ID334759 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

Storm Graphics Palette

Address1505E670
Player ID86724803 (Byte Offset: 0)
Size4
Length256
SC:RRead Only

Battle.snp Join Channel

Address1904613C
Player ID103477110 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Battle.snp Join Channel

Address1904613C
Player ID103477110 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Replay Header

Address6D0F30
Player ID334579 (Byte Offset: 0)
Size633
Length1
SC:RRead Only

https://github.com/bwapi/bwapi/blob/master/bwapi/BWAPI/Source/BW/Replay.h

Replay Header - Is Broodwar

Address6D0F30
Player ID334579 (Byte Offset: 0)
Size1
Length1
SC:RRead Only

Replay Header - Frame Count

Address6D0F31
Player ID334579 (Byte Offset: 1)
Size4
Length1
SC:RRead Only

Replay Header - Campaign ID

Address6D0F35
Player ID334580 (Byte Offset: 1)
Size2
Length1
SC:RRead Only

Replay Header - Command ID

Address6D0F37
Player ID334580 (Byte Offset: 3)
Size1
Length1
SC:RRead Only

struct gameSeed

Replay Header - Rand Seed

Address6D0F38
Player ID334581 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

struct gameSeed. Unix time on game start.(The number of seconds that have elapsed since 00:00:00 UTC on 1 January 1970)

Replay Header - Player Bytes

Address6D0F3C
Player ID334582 (Byte Offset: 0)
Size1
Length8
SC:RRead Only

struct gameSeed

Replay Header - Unknown_0

Address6D0F44
Player ID334584 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

struct networkGameHeader

Replay Header - Game flags

Address6D0F60
Player ID334591 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

struct networkGameHeader

Replay Header - Active Player Count

Address6D0F68
Player ID334593 (Byte Offset: 0)
Size1
Length1
SC:RRead Only

struct networkGameHeader

Replay Header - Available Slots

Address6D0F69
Player ID334593 (Byte Offset: 1)
Size1
Length1
SC:RRead Only

struct networkGameHeader

Replay Header - Game Speed

Address6D0F6A
Player ID334593 (Byte Offset: 2)
Size1
Length1
SC:RRead Only

struct networkGameHeader

Replay Header - Game State

Address6D0F6B
Player ID334593 (Byte Offset: 3)
Size1
Length1
SC:RRead Only

struct networkGameHeader

Replay Header - Game Type

Address6D0FB1
Player ID334611 (Byte Offset: 1)
Size1
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Unknown_1

Address6D0F6D
Player ID334594 (Byte Offset: 1)
Size1
Length1
SC:RRead Only

struct networkGameHeader

Replay Header - Game Subtype

Address6D0F6E
Player ID334594 (Byte Offset: 2)
Size2
Length1
SC:RRead Only

struct networkGameHeader

Replay Header - Seed (Unused)

Address6D0F70
Player ID334595 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

struct networkGameHeader

Replay Header - Tileset

Address6D0F74
Player ID334596 (Byte Offset: 0)
Size2
Length1
SC:RRead Only

struct networkGameHeader

Replay Header - Autosaved

Address6D0F76
Player ID334596 (Byte Offset: 2)
Size1
Length1
SC:RRead Only

struct networkGameHeader

Replay Header- Computer Player Count

Address6D0F77
Player ID334596 (Byte Offset: 3)
Size1
Length1
SC:RRead Only

struct networkGameHeader

Replay Header - Game Name

Address6D0F78
Player ID334597 (Byte Offset: 0)
Size1
Length25
SC:RRead Only

struct networkGameHeader

Replay Header - Map Name

Address6D0F91
Player ID334603 (Byte Offset: 1)
Size1
Length24
SC:RRead Only

struct networkGameHeader

Replay Header - Game Type

Address6D0FB1
Player ID334611 (Byte Offset: 1)
Size1
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Unknown

Address6D0FB2
Player ID334611 (Byte Offset: 2)
Size1
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Subtype

Address6D0FB3
Player ID334611 (Byte Offset: 3)
Size2
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Subtype display

Address6D0FB5
Player ID334612 (Byte Offset: 1)
Size2
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Subtype Label

Address6D0FB7
Player ID334612 (Byte Offset: 3)
Size2
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Victory Condition

Address6D0FB9
Player ID334613 (Byte Offset: 1)
Size1
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Resource Type

Address6D0FBA
Player ID334613 (Byte Offset: 2)
Size1
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Use Standard Units

Address6D0FBB
Player ID334613 (Byte Offset: 3)
Size1
Length1
SC:RRead Only

boolean

struct networkGameHeader.gameTemplateInfo

Replay Header - Fog of War (Unused)

Address6D0FBC
Player ID334614 (Byte Offset: 0)
Size1
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Starting Units

Address6D0FBD
Player ID334614 (Byte Offset: 1)
Size1
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Use Fixed Positions

Address6D0FBE
Player ID334614 (Byte Offset: 2)
Size1
Length1
SC:RRead Only

boolean

struct networkGameHeader.gameTemplateInfo

Replay Header - Usage Restriction Flags

Address6D0FBF
Player ID334614 (Byte Offset: 3)
Size1
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Allies Allowed

Address6D0FC0
Player ID334615 (Byte Offset: 0)
Size1
Length1
SC:RRead Only

boolean

struct networkGameHeader.gameTemplateInfo

Replay Header - Teams

Address6D0FC1
Player ID334615 (Byte Offset: 1)
Size1
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Cheats

Address6D0FC2
Player ID334615 (Byte Offset: 2)
Size1
Length1
SC:RRead Only

boolean

struct networkGameHeader.gameTemplateInfo

Replay Header - Tournament Mode

Address6D0FC3
Player ID334615 (Byte Offset: 3)
Size1
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Victory Condition Value

Address6D0FC4
Player ID334616 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Resources Value

Address6D0FC8
Player ID334617 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Unused value

Address6D0FCC
Player ID334618 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Extra

Address6D0FD0
Player ID334619 (Byte Offset: 0)
Size1
Length1
SC:RRead Only

struct networkGameHeader.gameTemplateInfo

Replay Header - Player Entries

Address6D0FD1
Player ID334619 (Byte Offset: 1)
Size36
Length12
SC:RRead Only

Unfortunately this struct is not dword-aligned.

+0 - u32 slot (0x006D0FD1)

+4 - u32 storm ID (0x006D0FD5)

+8 - u8 type (0x006D0FD9)

+9 - u8 race (0x006D0FDA)

+A - u8 team (0x006D0FDB)

+B - char name[25] (0x006D0FDC)

For next player add 9 player ID's.

Replay Header - Player Colors

Address6D1181
Player ID334727 (Byte Offset: 1)
Size4
Length8
SC:RRead Only

Replay Header - Player Force Data

Address6D11A1
Player ID334735 (Byte Offset: 1)
Size1
Length8
SC:RRead Only

Unit Reqs data

Address514178
Player ID-120955 (Byte Offset: 0)
Size1090
Length1
SC:RSimple Data

Packed list of opcodes/parameters for data requiremens.

First u16 is the unit ID for the script, followed by the script. 0x##FF is an opcode, 0x##00 is a parameter, FFFF is the end of the script.

Upgrade Reqs data

Address5145C0
Player ID-120681 (Byte Offset: 0)
Size838
Length1
SC:RSimple Data

Research Req Data

Address514908
Player ID-120471 (Byte Offset: 0)
Size318
Length1
SC:RSimple Data

Tech Use Req Data

Address514A48
Player ID-120391 (Byte Offset: 0)
Size688
Length1
SC:RSimple Data

Order Req Data

Address514CF8
Player ID-120219 (Byte Offset: 0)
Size1316
Length1
SC:RSimple Data

Player 1 Trigger List

Address51A280
Player ID-114745 (Byte Offset: 0)
Size4
Length3
SC:RBacked By Code

Player 2 Trigger List

Address51A28C
Player ID-114742 (Byte Offset: 0)
Size4
Length3
SC:RBacked By Code

Player 3 Trigger List

Address51A298
Player ID-114739 (Byte Offset: 0)
Size4
Length3
SC:RBacked By Code

Player 4 Trigger List

Address51A2A4
Player ID-114736 (Byte Offset: 0)
Size4
Length3
SC:RBacked By Code

Player 5 Trigger List

Address51A2B0
Player ID-114733 (Byte Offset: 0)
Size4
Length3
SC:RBacked By Code

Player 6 Trigger List

Address51A2BC
Player ID-114730 (Byte Offset: 0)
Size4
Length3
SC:RBacked By Code

Player 7 Trigger List

Address51A2C8
Player ID-114727 (Byte Offset: 0)
Size4
Length3
SC:RBacked By Code

Player 8 Trigger List

Address51A2D4
Player ID-114724 (Byte Offset: 0)
Size4
Length3
SC:RBacked By Code

Fog of War Update Counter

Address51CE98
Player ID-111923 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Set to 0 to update FoW.

Toggle between 0 and 1 in separate trigger cycles to fast update FoW.

With single frame hypers: (see 0x006509A0)

Set to 1 to fast update Fog of War.

Set to 0 to never Fog of War revealed areas. (ie. "war ain't what it used to be" cheat)

Number of Factories Razed

Address582114
Player ID-8340 (Byte Offset: 0)
Size4
Length12
SC:RSimple Data

Kills for "Factories" stored here.

Starting Player Local ID

Address57F1B0
Player ID-11373 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Player Slot Types

Address57F1B4
Player ID-11372 (Byte Offset: 0)
Size1
Length12
SC:RSimple Data

Player Slot Races

Address57F1C0
Player ID-11369 (Byte Offset: 0)
Size1
Length12
SC:RSimple Data

Team Game Main Player

Address57F1CC
Player ID-11366 (Byte Offset: 0)
Size1
Length4
SC:RSimple Data

Screen Tile Position

Address57F1D0
Player ID-11365 (Byte Offset: 0)
Size2
Length2
SC:RSimple Data

Messsage Send To Filter

Address57F1D8
Player ID-11363 (Byte Offset: 0)
Size2
Length2
SC:RSimple Data

Message Player Filter

Address57F1DA
Player ID-11363 (Byte Offset: 2)
Size2
Length2
SC:RSimple Data

Should be within the previous entry

Current Music

Address57F1DE
Player ID-11362 (Byte Offset: 2)
Size2
Length2
SC:RSimple Data

BWGame Unk_f0

Address57F1E0
Player ID-11361 (Byte Offset: 0)
Size1
Length1
SC:RSimple Data

Is Custom Single Player

Address57F1E3
Player ID-11361 (Byte Offset: 3)
Size1
Length1
SC:RSimple Data

BWGame unk_f4

Address57F1E4
Player ID-11360 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

BWGame unk_f8

Address57F1E8
Player ID-11359 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Saved Elapsed Seconds

Address57F240
Player ID-11337 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Single Player Race

Address57F266
Player ID-11328 (Byte Offset: 2)
Size1
Length1
SC:RSimple Data

Single Player Computer Races

Address57F267
Player ID-11328 (Byte Offset: 3)
Size1
Length8
SC:RSimple Data

BWGame unk_17F

Address57F26F
Player ID-11326 (Byte Offset: 3)
Size1
Length1
SC:RSimple Data

Saved Screen Positions

Address57F270
Player ID-11325 (Byte Offset: 0)
Size4
Length3
SC:RSimple Data

Pos 1: -11325

X + 65536*Y

Pos 2: -11324

X + 65536*Y

Pos 3: -11323

X + 65536*Y

BWGame unk_c3c

Address57FD2C
Player ID-10638 (Byte Offset: 0)
Size1
Length8
SC:RSimple Data

BWGame unk_2870

Address581960
Player ID-8833 (Byte Offset: 0)
Size1
Length1024
SC:RSimple Data

Default Message Filter

Address581D60
Player ID-8577 (Byte Offset: 0)
Size1
Length1
SC:RSimple Data

Controls who you chat with when pressing Enter. (To Allies: hello)

0 = Player0

1 = Player1

2 = Player2

3 = Player3

4 = Player4

5 = Player5

6 = Player6

7 = Player7

8 = All

9 = Allies

Player Lose Type

Address581D61
Player ID-8577 (Byte Offset: 1)
Size1
Length1
SC:RSimple Data

Player Left

Address581D62
Player ID-8577 (Byte Offset: 2)
Size1
Length8
SC:RSimple Data

BWGame unk_2cf2

Address581DE2
Player ID-8545 (Byte Offset: 2)
Size1
Length2
SC:RSimple Data

SC Tech Research In Progress

Address58D064
Player ID2880 (Byte Offset: 0)
Size1
Length36
SC:RSimple Data

Who knows

SC Upgrade in Progress Lvl 1 (Unused?)

Address58D4D8
Player ID3165 (Byte Offset: 0)
Size1
Length72
SC:RSimple Data

Who knows

SC Upgrade in Progress Lvl 2 (Unused?)

Address58D520
Player ID3183 (Byte Offset: 0)
Size1
Length72
SC:RSimple Data

Who knows

SC Upgrade in Progress Lvl 3 (???)

Address59D568
Player ID19585 (Byte Offset: 0)
Size1
Length72
SC:R

Who knows

Elapsed Time

Address58D6F8
Player ID3301 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Game Seconds (1 Game Second = 16 Game Ticks = ~1072ms on normal speed = ~672ms on fastest speed)

Reportedly can be modified to prevent flag beacons from creating flags.

SC Switch Table (Unused?)

Address58D6FC
Player ID3302 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

32 switches, probably pre-1.04 when number of switches was increased to 256.

Player Victory Status

Address58D700
Player ID3303 (Byte Offset: 0)
Size1
Length8
SC:RSimple Data

Leaderboard Has Computer Players

Address58D708
Player ID3305 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Leader Board Type

Address58D70C
Player ID3306 (Byte Offset: 0)
Size1
Length1
SC:RSimple Data

Leader Board Condition

Address58D70D
Player ID3306 (Byte Offset: 1)
Size1
Length1
SC:RSimple Data

Leader Board Subtype

Address58D70E
Player ID3306 (Byte Offset: 2)
Size2
Length1
SC:RSimple Data

Leader Board Goal

Address58D710
Player ID3307 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Leader Board String Index

Address58D714
Player ID3308 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

BW Tech Research In Progress

Address58F230
Player ID0 (Byte Offset: 0)
Size1
Length72
SC:R

[SCR: Simple data]

Who knows

BW Upgrade In Progress

Address58F3E0
Player ID5151 (Byte Offset: 0)
Size1
Length96
SC:RSimple Data

Who knows

BWGame unk_10351

Address58F441
Player ID5175 (Byte Offset: 1)
Size1
Length1
SC:RSimple Data

Unknown Player Color Something

Address58F442
Player ID5175 (Byte Offset: 2)
Size1
Length8
SC:RSimple Data

BWGame "Literally Unused"

Address58F44A
Player ID5177 (Byte Offset: 2)
Size1
Length29604
SC:RSimple Data

Trigger Current Player aka CP Trick

Address6509B0
Player ID203155 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Used to dynamically run EUDs or dereference pointers.

Sets "Current Player" in triggers to be a reference to a different base address for the deaths table.

e.g.

Set Deaths("Int:203155", "Terran Marine", Set to, EPD);

Set Deaths("Int:203155", "Terran Marine", Add/Subtract, whatever);

Set Deaths("Current Player", "Terran Marine", Set to/Add/Subtract, whatever);

Example: Implement Set Minerals for current player

// Add -11421 to 0x006509B0 (player ID corresponding to 0x0057F0F0)

SetMemory(0x6509B0, Add, 0xFFFFD363);

// Add 50 to byte offset for that address -- current player will increase target address by 4 bytes for each player that runs it

SetDeaths(CurrentPlayer, Add, 50, "Terran Marine");

// Add +11421 to 0x006509B0 to set it back to what it was

SetMemory(0x6509B0, Add, 0x00002C9D);

Example: Implement a SetKills action for Current Player

// Add -2736 to 0x6509B0 (player ID corresponding to 0x005878A4)

SetMemory(0x6509B0, Add, 0xFFFFF550);

// Current player combined with unit ID now references the correct target address in the Kills table)

// This SetDeaths is now really SetKills to add/subtract/set to for unit of choice

SetDeaths(CurrentPlayer, Subtract, 1, "Terran Ghost");

// Add +2736 to 0x006509B0 to set it back to what it was

SetMemory(0x6509B0, Add, 0x00000AB0);

Note: Set Deaths needs to be for current player, P1/P2/etc. would modify the normal deaths table.

Note2: Cannot use Any Unit/Men/Buildings/Factories for the unit, those do have Unit IDs, are not stored in the Kills table, and would overflow into other areas.

TranWire.grp pointer

Address68C1F4
Player ID264100 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

Overwriting a particular unit's frame offset with a different frame offset can change the image used for that unit.

GRP header:

u16 frameCount

u16 width

u16 height

GRP Frame (* frameCount)

u8 x

u8 y

u8 w

u8 h

u32 offset

GrpWire.grp Pointer

Address68C1FC
Player ID264102 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

Overwriting a particular unit's frame offset with a different frame offset can change the image used for that unit.

GRP header:

u16 frameCount

u16 width

u16 height

GRP Frame (* frameCount)

u8 x

u8 y

u8 w

u8 h

u32 offset

Wirefram.grp Pointer

Address68C204
Player ID264104 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

Overwriting a particular unit's frame offset with a different frame offset can change the image used for that unit.

GRP header:

u16 frameCount

u16 width

u16 height

GRP Frame (* frameCount)

u8 x

u8 y

u8 w

u8 h

u32 offset

AIScript pointer

Address68C104
Player ID264040 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

BWScript pointer

Address68C108
Player ID264041 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

CUnit - Previous Unit

Address59CCA8
Player ID19025 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit - Next Unit

Address59CCAC
Player ID19026 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit - Target Pos

Address59CCB8
Player ID19029 (Byte Offset: 0)
Size2
Length2
SC:RSupported

X + 65536*Y

CUnit - Target Unit

Address59CCBC
Player ID19030 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit target pointer

Damage type/factor multipliers vs unit size

Address65678C
Player ID209162 (Byte Offset: 0)
Size20
Length5
SC:R

(What's this?)

Display Text

Address640B60
Player ID186879 (Byte Offset: 0)
Size218
Length13
SC:RBacked By Code

Line IDs:

0-10: display text lines (first line defined by 0x640B58 - Next Display Text Line)

11: ?

12: status message

Next Display Text Line

Address640B58
Player ID186877 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

First line to be drawn on screen or written to.

Changing this value to 11 or 12 and then doing a Display Text action will allow displaying a status message.

Send Message Type

Address68C144
Player ID264056 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Can be used to check if send message box is open (At Least 1)

Active Tile Buffer

Address6D0E84
Player ID334536 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

Pointer to u16 array of active map tiles.

Last Random Number

Address51CA14
Player ID-112212 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Randomization seed for the next random number, mask with 0x7FFF0000 for the last returned number.

int getRandomNumber(){

lastRandomNumber = lastRandomNumber * 0x15A4E35 + 1;

return (lastRandomNumber >> 16) & 0x7FFF;

}

glScrollPixelX

Address62848C
Player ID161866 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

Duplicate of screen coordinates?

glScrollPixelY

Address6284A8
Player ID161873 (Byte Offset: 0)
Size4
Length1
SC:RRead Only

Duplicate of screen coordinates?

gfpCellMap

Address628494
Player ID161868 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

Pointer to VX4 megatile buffer?

Creep Tile Backup Buffer

Address6D0C68
Player ID334401 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

Pointer to the u16 buffer that stores the tile IDs of tiles overwritten by creep in the Active Map Tile buffer. Values are normally 0 until a creep tile replaces them.

Tile Buffer Height

Address6D0C6C
Player ID334402 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

Copy of Map Height?

Tile Function Pointers

Address6D0C70
Player ID334403 (Byte Offset: 0)
Size4
Length4
SC:RUnsupported

0x006D0C70 -> 0x0047E2D0 -- refreshes map tiles for drawing?

0x006D0C74 -> isCreepCovered -- checks if a tile is creep

0x006D0C78 -> isTileVisible -- checks if a player can see the tile

0x006D0C7C -> null pointer? -- I couldn't find what function is actually put here

Tile Buffer Width

Address6D0F08
Player ID334569 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

Copy of Map Width

Tile Flags Pointer

Address6D1260
Player ID334783 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

Pointer to (Map Width)x(Map Height) array of u32 flags:

0x000000xx - Visibility Flags -- bits correspond to each player

0x0000xx00 - Explored Flags -- bits correspond to each player

0x00010000 - Walkable

0x00020000 - Unused?

0x00040000 - Unwalkable

0x00080000 - Unused?

0x00100000 - Unused?

0x00200000 - Unused?

0x00400000 - Has Creep

0x00800000 - Unbuildable (i.e., water tiles)

0x01000000 - Low Ground

0x02000000 - Med Ground

0x04000000 - High Ground

0x08000000 - Occupied (i.e. contains a building)

0x10000000 - Creep Receeding

0x20000000 - Cliff Edge

0x40000000 - Temporary Creep

0x80000000 - Unused?

Taken from: https://github.com/bwapi/bwapi/blob/master/bwapi/BWAPI/Source/BW/Structures.h#L80

CV5 Pointer

Address6D5EC8
Player ID339673 (Byte Offset: 0)
Size4
Length1
SC:RBacked By Code

Creep Overlay Buffer

Address6D0E80
Player ID334535 (Byte Offset: 0)
Size4
Length1
SC:RUnsupported

Pointer to u8 flags relating to the creep overlay for each map tile.

gameTextCounters

Address640B24
Player ID186864 (Byte Offset: 0)
Size4
Length12
SC:RUnsupported

Contains the tick count for when the message should disappear. Corresponds to the same index of game text.

CUnit - Next Movement Waypoint

Address59CCC0
Player ID19031 (Byte Offset: 0)
Size2
Length2
SC:RUnsupported

0x0000FFFF x-coord

0xFFFF0000 y-coord

The next way point in the path the unit is following to get to its destination. Equal to moveToPos for air units since they don't need to navigate around buildings or other units. (bwapi)

CUnit - Previous Player Unit

Address59CD10
Player ID19051 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Pointer to previous CUnit owned by the same player

CUnit - Next Player Unit

Address59CD14
Player ID19052 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Pointer to the next CUnit owned by the same player.

CUnit - Sub Unit

Address59CD18
Player ID19053 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Pointer to this unit's subunit CUnit.

CUnit - Order Queue Head

Address59CD1C
Player ID19054 (Byte Offset: 0)
Size4
Length1
SC:R

(Unsupported?) Pointer to COrder

CUnit - Order Queue Tail

Address59CD20
Player ID19055 (Byte Offset: 0)
Size4
Length1
SC:R

(Unsupported?)

Pointer to COrder.

CUnit - Auto-Target Unit

Address59CD24
Player ID19056 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Pointer to CUnit.

The auto-acquired target (Note: This field is actually used for different targets internally, especially by the AI) (bwapi)

CUnit - Connected Unit

Address59CD28
Player ID19057 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Pointer to CUnit.

Addon is connected to building (addon has conntected building, but not in other direction (officially "pAttached") (bwapi)

CUnit - Previous Unit Type

Address59CD30
Player ID19059 (Byte Offset: 0)
Size2
Length1
SC:R

(Unsupported?)

Stores the type of the unit prior to being morphed/constructed (bwapi)

CUnit - Last Event Timer

Address59CD32
Player ID19059 (Byte Offset: 2)
Size1
Length1
SC:R

(Unsupported?)

countdown that stops being recent when it hits 0 (bwapi)

CUnit - Last Event Color

Address59CD33
Player ID19059 (Byte Offset: 3)
Size1
Length1
SC:R

(Unsupported?

17 = was completed (train, morph), 174 = was attacked (bwapi)

CUnit - Last Attacking Player

Address59CD38
Player ID19061 (Byte Offset: 0)
Size1
Length1
SC:RSupported

The player that last attacked this unit

CUnit - Secondary Order Timer

Address59CD39
Player ID19061 (Byte Offset: 1)
Size1
Length1
SC:RSupported

CUnit - AI Action Flag

Address59CD3A
Player ID19061 (Byte Offset: 2)
Size1
Length1
SC:RSupported

Internal use by AI only (bwapi)

CUnit - User Action Flags

Address59CD3B
Player ID19061 (Byte Offset: 3)
Size1
Length1
SC:RSupported

Some flags that change when the user interacts with the unit

2 = issued an order

3 = interrupted an order

4 = self destructing

(bwapi)

CUnit - Build Queue

Address59CD40
Player ID19063 (Byte Offset: 0)
Size2
Length5
SC:RSupported

Queue of units to build. Note that it doesn't begin with index 0, but with #buildQueueSlot index. (bwapi)

CUnit - Build Queue Slot

Address59CD4C
Player ID19066 (Byte Offset: 0)
Size1
Length1
SC:RSupported

Index of active unit in #buildQueue. (bwapi)

CUnit - Uniqueness Identifier

Address59CD4D
Player ID19066 (Byte Offset: 1)
Size1
Length1
SC:RSupported

A byte used to determine uniqueness of the unit

CUnit - Secondary Order ID

Address59CD4E
Player ID19066 (Byte Offset: 2)
Size1
Length1
SC:RSupported

The order ID for passive orders such as Cloak, Build, ExpandCreep, cloaking field, etc.

CUnit - Building Overlay State

Address59CD4F
Player ID19066 (Byte Offset: 3)
Size1
Length1
SC:RSupported

0 means the building has the largest amount of fire/blood (bwapi)

CUnit - HP Gain

Address59CD50
Player ID19067 (Byte Offset: 0)
Size2
Length1
SC:RSupported

hp gained on construction or repair (bwapi)

Cunit - Shield Gain

Address59CD52
Player ID19067 (Byte Offset: 2)
Size2
Length1
SC:RSupported

Shield gain on construction (bwapi)

CUnit - Loaded Unit Index

Address59CD58
Player ID19069 (Byte Offset: 0)
Size2
Length8
SC:RUnsupported

(Unsupported?)

Unit ID's (not pointers) of loaded units.

CUnit - Resource Type

Address59CD88
Player ID19081 (Byte Offset: 0)
Size1
Length1
SC:R

(Unsupported?)

Resource being held by worker:

1 = gas

2 = ore

(bwapi)

CUnit - Wireframe Randomizer

Address59CD89
Player ID19081 (Byte Offset: 1)
Size1
Length1
SC:R

(Unsupported?)

CUnit - Secondary Order State

Address59CD8A
Player ID19081 (Byte Offset: 2)
Size1
Length1
SC:R

(Unsupported?)

CUnit - Recent Order Time

Address59CD8B
Player ID19081 (Byte Offset: 3)
Size1
Length1
SC:R

(Unsupported?)

Counts down from 15 to 0 when most orders are given, or when the unit moves after reaching a patrol location (bwapi)

CUnit - Visiblity Status

Address59CD8C
Player ID19082 (Byte Offset: 0)
Size4
Length1
SC:R

(Unsupported?)

Flags specifying which players can detect this unit (cloaked/burrowed) (bwapi)

CUnit - Secondary Order Position

Address59CD90
Player ID19083 (Byte Offset: 0)
Size2
Length2
SC:R

(Unsupported?)

Unused according to bwapi.

0x0000FFFF x-coord

0xFFFF0000 y-coord

CUnit - Previous Burrowed Unit

Address59CD98
Player ID19085 (Byte Offset: 0)
Size4
Length1
SC:R

(Unsupported?)

CUnit pointer to previous burrowed unit

CUnit - Next Burrowed Unit

Address59CD9C
Player ID19086 (Byte Offset: 0)
Size4
Length1
SC:R

(Unsupported?)

Pointer to CUnit of next burrowed unit

CUnit - Pathing Pointer

Address59CDA8
Player ID19089 (Byte Offset: 0)
Size4
Length1
SC:R

(Unsupported?)

Pointer to pathing data.

CUnit - Pathing Collision Interval

Address59CDAC
Player ID19090 (Byte Offset: 0)
Size1
Length1
SC:RSupported

Unknown?

CUnit - Pathing Flags

Address59CDAD
Player ID19090 (Byte Offset: 1)
Size1
Length1
SC:RSupported

0x01 = uses pathing

0x02 = ?

0x04 = ?

(bwapi)

CUnit - Contour Bounds

Address59CDB0
Player ID19091 (Byte Offset: 0)
Size2
Length4
SC:R

(Unsupported?)

a rect that specifies the closest contour (collision) points (bwapi)

s16 left, s16 top, s16 bottom, s16 right ?

CUnit - Bullet Behavior 3x3 Attack

Address59CDD8
Player ID19101 (Byte Offset: 0)
Size2
Length1
SC:R

(Unsupported?)

Counts up for the number of bullets shot by a unit using this weapon behaviour and resets after it reaches 12 (bwapi)

CUnit - AI Data

Address59CDDC
Player ID19102 (Byte Offset: 0)
Size4
Length1
SC:R

(Unsupported?)

Pointer to AI class

CUnit - Unit Finder

Address59CDE4
Player ID19104 (Byte Offset: 0)
Size4
Length4
SC:R

(Unsupported?)

PID+0 left

PID+1 right

PID+2 top

PID+3 bottom

CUnit - Repulse Unknown

Address59CDF4
Player ID19108 (Byte Offset: 0)
Size1
Length1
SC:RSupported

CUnit - Carrier/Reaver - In Hangar

Address59CD68
Player ID19073 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to first unit inside the hangar.

Also:

Vulture - Scarab count

Scarab/Interceptor - Pointer to parent

Beacon - Unknown

Building - Addon CUnit pointer

Worker - Powerup CUnit pointer

CUnit - Scarab/Interceptor - Parent Unit

Address59CD68
Player ID19073 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to parent unit

Also:

Vulture - Spider mine count

Carrier/Reaver - Pointer to first CUnit inside the hangar

Beacon - Unknown

Building - Addon CUnit pointer

Worker - Powerup CUnit pointer

CUnit - Beacon - Unknown +00

Address59CD68
Player ID19073 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Unknown ?

Also:

Vulture - Spider mine count

Carrier/Reaver - Pointer to first CUnit inside the hangar

Scarab/Interceptor - Pointer to parent

Building - Addon CUnit pointer

Worker - Powerup CUnit pointer

CUnit - Building - Addon

Address59CD68
Player ID19073 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to addon. -- is this different from Connected Unit?

Also:

Vulture - Spider mine count

Carrier/Reaver - Pointer to first CUnit inside the hangar

Scarab/Interceptor - Pointer to parent

Beacon - Unknown

Building - Addon CUnit pointer

Worker - Powerup CUnit pointer

CUnit - Worker - Powerup Unit

Address59CD68
Player ID19073 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to the powerup carried by a worker

Also:

Vulture - Spider mine count

Carrier/Reaver - Pointer to first CUnit inside the hangar

Scarab/Interceptor - Pointer to parent

Beacon - Unknown

Worker - Powerup CUnit pointer

CUnit - Carrier/Reaver - Out Hanger

Address59CD6C
Player ID19074 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to first child outside the hangar

Also:

Scarab/Interceptor: pointer to previous

Beacon: Unknown

Building: Addon building type and upgrade/research time

Worker: Target resource coordinates

CUnit - Scarab/Interceptor - Previous

Address59CD6C
Player ID19074 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to previous scarab/interceptor

Also:

Carrier/Reaver: pointer to first child outside the hangar

Beacon: Unknown

Building: Addon building type and upgrade/research time

Worker: Target resource coordinates

CUnit - Beacon - Unknown +04

Address59CD6C
Player ID19074 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Unknown

Also:

Carrier/Reaver: pointer to first child outside the hangar

Scarab/Interceptor: pointer to previous

Building: Addon building type and upgrade/research time

Worker: Target resource coordinates

CUnit - Building - Addon Building Type

Address59CD6C
Player ID19074 (Byte Offset: 0)
Size2
Length1
SC:RSupported

Also:

Carrier/Reaver: pointer to first child outside the hangar

Scarab/Interceptor: pointer to previous

Beacon: Unknown

Worker: Target resource coordinates

CUnit - Worker - Target Resource Coord

Address59CD6C
Player ID19074 (Byte Offset: 0)
Size2
Length2
SC:RSupported

0x0000FFFF x-coordinate

0xFFFF0000 y-coordinate

Also:

Carrier/Reaver: pointer to first child outside the hangar

Scarab/Interceptor: pointer to previous

Beacon: Unknown

Building: Addon building type and upgrade/research time

CUnit - Building - Upgrade/Research Time

Address59CD6E
Player ID19074 (Byte Offset: 2)
Size2
Length1
SC:RSupported

CUnit - Scarab/Interceptor - Next

Address59CD70
Player ID19075 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to next scarab/interceptor

Also:

Carrier/Reaver - number of units in hangar

Beacon - Flag spawn frame

Building - Tech type/upgrade type/larva timer/landing timer

Worker - Target resource pointer

CUnit - Beacon - Flag Spawn Frame

Address59CD70
Player ID19075 (Byte Offset: 0)
Size4
Length1
SC:RSupported

flag beacons, the frame that the flag will spawn (bwapi)

Also:

Carrier/Reaver - number of units in hangar

Scarab/Interceptor - pointer to next scarab/interceptor

Building - Tech type/upgrade type/larva timer/landing timer

Worker - Target resource pointer

CUnit - Building - Tech Type

Address59CD70
Player ID19075 (Byte Offset: 0)
Size1
Length1
SC:RSupported

Also:

Carrier/Reaver - number of units in hangar

Scarab/Interceptor - pointer to next scarab/interceptor

Beacon - Flag spawn frame

Worker - Target resource pointer

CUnit - Worker - Target Resource Unit

Address59CD70
Player ID19075 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer

Also:

Carrier/Reaver - number of units in hangar

Scarab/Interceptor - pointer to next scarab/interceptor

Beacon - Flag spawn frame

Building - Tech type/upgrade type/larva timer/landing timer

CUnit - Building - Upgrade Type

Address59CD71
Player ID19075 (Byte Offset: 1)
Size1
Length1
SC:RSupported

Also:

Carrier/Reaver - Out hangar count

CUnit - Scarab/Interceptor - In Hanger

Address59CD74
Player ID19076 (Byte Offset: 0)
Size1
Length1
SC:RSupported

Boolean value?

Also:

Building - Creep timer

Worker - Repair/resource timer

CUnit - Building - Creep Timer

Address59CD74
Player ID19076 (Byte Offset: 0)
Size1
Length1
SC:RSupported

Also:

Scarab/Interceptor - In hangar

Worker - Repair/resource timer

CUnit - Worker - Repair/Resource Timer

Address59CD74
Player ID19076 (Byte Offset: 0)
Size2
Length1
SC:RSupported

Also:

Scarab/Interceptor - In hangar

Building - Creep timer

CUnit - Building - Upgrade Level

Address59CD75
Player ID19076 (Byte Offset: 1)
Size1
Length1
SC:RSupported

CUnit - Worker - Is Carring Something

Address59CD76
Player ID19076 (Byte Offset: 2)
Size1
Length1
SC:RSupported

CUnit - Worker - Resource Carry Count

Address59CD77
Player ID19076 (Byte Offset: 3)
Size1
Length1
SC:RSupported

CUnit - Nydus - Exit Unit

Address59CD78
Player ID19077 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to connected exit

Also:

Resource - Resource count/iscript/queue count

Ghost - Nuke dot sprite

Pylon - Power overlay

Nuke Silo - Attached nuke

Powerup - Origin Coords

Worker - Harvest target unit

Hatchery? - Harvest Value

CUnit - Ghost - Nuke Dot Sprite

Address59CD78
Player ID19077 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Pointer to nuke dot CSprite

Also:

Resource - Resource count/iscript/queue count

Nydus - Exit unit

Pylon - Power overlay

Nuke Silo - Attached nuke

Powerup - Origin Coords

Worker - Harvest target unit

Hatchery? - Harvest Value

CUnit - Pylon - Power Overlay Sprite

Address59CD78
Player ID19077 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Pointer to overlay CSprite

Also:

Resource - Resource count/iscript/queue count

Nydus - Exit unit

Ghost - Nuke dot sprite

Nuke Silo - Attached nuke

Powerup - Origin Coords

Worker - Harvest target unit

Hatchery? - Harvest Value

CUnit - Nuke Silo - Attached Nuke

Address59CD78
Player ID19077 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to attached nuke

Also:

Resource - Resource count/iscript/queue count

Nydus - Exit unit

Ghost - Nuke dot sprite

Pylon - Power overlay

Powerup - Origin Coords

Worker - Harvest target unit

Hatchery? - Harvest Value

CUnit - Powerup - Origin Coordinates

Address59CD78
Player ID19077 (Byte Offset: 0)
Size2
Length2
SC:RSupported

Coordinates where the powerup was picked up from.

0x0000FFFF x-coord

0xFFFF0000 y-coord

Also:

Resource - Resource count/iscript/queue count

Nydus - Exit unit

Ghost - Nuke dot sprite

Pylon - Power overlay

Nuke Silo - Attached nuke

Worker - Harvest target unit

Hatchery? - Harvest Value

CUnit - Hatchery? - Harvest Value

Address59CD78
Player ID19077 (Byte Offset: 0)
Size2
Length4
SC:RSupported

https://github.com/bwapi/bwapi/blob/master/bwapi/BWAPI/Source/BW/CUnit.h#L227

left, top, right, bottom ?

Also:

Resource - Resource count/iscript/queue count

Nydus - Exit unit

Ghost - Nuke dot sprite

Pylon - Power overlay

Nuke Silo - Attached nuke

Powerup - Origin Coords

Worker - Harvest target unit

CUnit - Resource - Resource IScript

Address59CD7A
Player ID19077 (Byte Offset: 2)
Size1
Length1
SC:RSupported

Current iscript animation ?

CUnit - Resource - Next Gatherer

Address59CD7C
Player ID19078 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to the next worker unit waiting in line to gather

Also:

Silo - Ready

Worker - Previous harvest unit

CUnit - Silo - Ready

Address59CD7C
Player ID19078 (Byte Offset: 0)
Size1
Length1
SC:RSupported

Also:

Resource - Next gatherer

Worker - Previous harvest unit

CUnit - Resource - Resource Group

Address59CD80
Player ID19079 (Byte Offset: 0)
Size1
Length1
SC:RSupported

Also:

Worker - Next harvest unit

CUnit - Worker - Next Harvest Unit

Address59CD80
Player ID19079 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Also:

Resource - Resource group/resource belongs to AI

CUnit - Resource - Reource Belongs to AI

Address59CD81
Player ID19079 (Byte Offset: 1)
Size1
Length1
SC:RSupported

CUnit - Pylon - Previous Psi Provider

Address59CDA0
Player ID19087 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to previous psi provider

For other buildings:

The coordinates of a rally from a building

CUnit - Pylon - Next Psi Provider

Address59CDA4
Player ID19088 (Byte Offset: 0)
Size4
Length1
SC:RSupported

CUnit pointer to next psi provider

For other buildings:

The unit that a building set their rally to

Damage type/factor multipliers vs unit size

Address65678C
Player ID209162 (Byte Offset: 0)
Size20
Length5
SC:R

(What's this?)

Game Brightness

Address657A9C
Player ID210382 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

Darkens the screen without affecting UI elements. Appears to be a modifier for Fog of War Masks? Technically a 1 byte value, but the high bytes are padding and not used.

Valid values are 0-31, with 0 being black and 31 being maximum brightness. Values >31 appear to just be black.

The value appears to be the index in tileset*\dark.pcx remapping palette.

Fog of War Masks

Address657AA0
Player ID210383 (Byte Offset: 0)
Size1
Length4096
SC:RBacked By Code

Sets the brightness parts of the fog of war masks. Corresponds to dark.pcx indexes, with valid values from 0 (black) to 31 (full brightness). Values >31 in 1.16.1 are glitched colors.

4 bytes at 0x00657AA0 correspond to unexplored fog.

4 bytes at 0x0065825C correspond to explored areas in fog.

4 bytes at 0x00658A9C correspond to visible areas.

Other addresses relate to the transitions between these areas.

Setting to 0x1F1F1F1F will fully clear the mask, though units and buildings may not be visible or selectable depending on the actual fog state. Additionally, using different values for each byte, e.g. 0x1F001F00, will create vertical stripes (tested in 1.16.1).

Mouse Button State

Address6CDDC0
Player ID331415 (Byte Offset: 0)
Size4
Length1
SC:RSimple Data

2: Left button pressed. 8: Right button pressed. 32: Middle button pressed

Edited by PereC, 2021.03.29

Network Buffer

Address654880
Player ID207175 (Byte Offset: 0)
Size496
Length1
SC:RBacked By Code

Game Command Queue. See https://github.com/phu54321/vgce/blob/master/docs/Blizzard/Starcraft/packets2.txt

Also https://github.com/bwapi/bwapi/blob/main/bwapi/BWAPI/Source/BW/OrderTypes.cpp

Not sure if the size is 496, the value in 0x0057F0D8

Edited by PereC, 2021.04.03

Network Buffer Used

Address654AA0
Player ID207311 (Byte Offset: 0)
Size4
Length1
SC:RSupported

Command queue (0x00654880) space used.

Edited by PereC, 2021.04.03

Mouse and Keyboard Scroll Speed

Address513B68
Player ID-121343 (Byte Offset: 0)
Size7
Length7
SC:RSupported

Edited by PereC, 2021.04.12

For SC:R,

In menu - Options - Speed, you can set Key Scroll Speed and Mouse Scroll Speed, each has 7 levels.

For each level, the Scroll Speed has 7 different values, each 1 byte.

level 1: 0x513B68, 0x513B69, 0x513B6A, ..., 0x513B6E

level 2: 0x513B6F, 0x513B70, 0x513B71, ..., 0x513B72

...

level 7: 0x513B92, 0x513B93, 0x513B94, ..., 0x513B98

If you set all the 7 bytes of level2 to 0, then you can't scroll the screen by mouse if you set the Mouse Scroll Speed to level2 in game, but you can still scroll screen by keyboard if Key Scroll Speed is not in level2.

If you set all the 49 bytes to 0, then you can't scroll the screen using mouse or keyboard.

See: https://cafe.naver.com/edac/39325

Mouse Scroll Speed Array

Address513B68
Player ID-121343 (Byte Offset: 0)
Size7
Length7
SC:RSupported

Amount of Mouse Scroll Speed. Array index dependent on mouse scroll level (0 to 6).

Unit Infomation

Address5193A0
Player ID-115697 (Byte Offset: 0)
Size12
Length228
SC:RSee Description

Edited by PereC, 2021-06-05

In SC:R, 64-bit starcraft ignores this part. You are suggested to use 32-bit starcraft if this part of memory is modified by EUD triggers.

+0x0: Unit ID

+0x4: Status Function

+0x8: Display Function