1.16.1 · Index · Add Address · Statistics · Reference · About

Multiple entries were found!

Address Player ID Version Name Size Length SCR Description
004FF900 -141977 1.16.1 Filename for Lastreplay 12 1 Contains the string "LastReplay".
004FF90C -141974 1.16.1 Replay Speed Limiters 4 7 The speed in milliseconds to spend each frame during a replay. The array index is dependant on the game speed.
004FF928 -141967 1.16.1 Replay Command Table 16 2 Contains the replay commands "show" and "hide" along with function pointers.
004FF948 -141959 1.16.1 Replay show command modifiers 32 12 Contains sub-commands and leaderboard values to use in the "/replay show" command.
004FFAD0 -141861 1.16.1 Menu Info Array 12 27 Contains the menu index, background index, and menu path.
004FFC20 -141777 1.16.1 Campaign List Info 8 85 Contains the campaign listing info. WORD gluHist.tbl index WORD mapdata.dat index WORD cinematic index BYTE race index BYTE bonus flag
004FFF60 -141569 1.16.1 Establishing shot pointers 8 65 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
0050C000 -129241 1.16.1 cInit Constructor Function Table 4 310 Standard C-Runtime. Generated by Visual C++.
005122A0 -122929 1.16.1 Campaign list pointers 4 6 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
005122B8 -122923 1.16.1 Current Cinematic ID 4 1 An index for the currently playing cinematic.
005124D8 -122787 1.16.1 Game Speed Refresh Rate 4 7 Simple Data Contains the value in milliseconds required for each frame. Array index dependant on game speed. To change current game speed needs to set all 7 values (0x5124D8, 0x5124DC, ..., 0x5124F0) Fastest=42, #x1=36, #x2=29, #x3=21, #x4=12, #x5=1
005124F4 -122780 1.16.1 Replay Speed Refresh Rate 4 7 Contains the time in milliseconds spent each frame. Array index dependent on game speed.
00512510 -122773 1.16.1 Image Update Functions 8 18 An array of image functions. The array is officially called sgUpdateFuncs.
005125A0 -122737 1.16.1 Image Drawing Functions 12 18 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
00512678 -122683 1.16.1 Active Nation ID 4 1 Backed By Code This is the same as Human ID unless you are playing Team Melee. The official name for this is g_ActiveNationID.
0051267C -122682 1.16.1 Active Human ID 4 1 Backed By Code This is your player ID. The official name for this is g_ActiveHumanID.
00512680 -122681 1.16.1 Active Storm ID 4 1 Unsupported This is your active storm ID, which is different from your player ID. The official name for this is g_ActiveStormID.
00512684 -122680 1.16.1 Local Nation ID 4 1 Backed By Code The official name for this is g_LocalNationID. P1: 00 P2: 01 P3: 02 etc.
00512688 -122679 1.16.1 Local Human ID 4 1 The official name for this is g_LocalHumanID.
0051268C -122678 1.16.1 Local Storm ID 4 1 Unsupported The official name for this is g_LocalStormID.
00512690 -122677 1.16.1 Cinematic File Name Array 4 28 Contains string pointers for the file names of all game cinematics.
00512700 -122649 1.16.1 Race Filename Modifiers 8 1 Contains 3 bytes "ztp" used when loading race-specific files, like the user HUD for example.
00512708 -122647 1.16.1 Cursor Filename Array 4 19 Contains pointers to a string for each cursor image.
00512754 -122628 1.16.1 Cursor Scroll Type Modifiers 2 10 Unsupported Contains the index for the cursor used for scrolling.
005127DC -122594 1.16.1 Tileset Color Cycle Pointers 4 9 Contains pointers to the tileset color cycle data. Array index dependant on tileset.
00512800 -122585 1.16.1 Trigger Action Function Array 4 60 Contains function pointers for all trigger actions.
00513B68 -121343 1.16.1 Mouse and Keyboard Scroll Speed 7 7 Supported 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
00513B68 -121343 1.16.1 Mouse Scroll Speed Array 7 7 Supported Amount of Mouse Scroll Speed. Array index dependent on mouse scroll level (0 to 6).
00514178 -120955 1.16.1 Unit Reqs data 1090 1 Simple 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.
005145C0 -120681 1.16.1 Upgrade Reqs data 838 1 Simple Data
00514908 -120471 1.16.1 Research Req Data 318 1 Simple Data
00514A48 -120391 1.16.1 Tech Use Req Data 688 1 Simple Data
00514CF8 -120219 1.16.1 Order Req Data 1316 1 Simple Data
00515A98 -119347 1.16.1 Trigger Condition Function Array 4 24 Contains function pointers for all trigger conditions.
00515B84 -119288 1.16.1 Damage type/factor multipliers vs unit size 20 5 Weapon damage typa, against each unit size struct { int id; int multipliers[4]; // independant = 0, small = 1, medium = 2, large = 3 } dmgMultiplier; dmgMultiplier weaponDamageTypes[5]; // Independent, Explosive, Concussive, Normal, Ignore Armor Values are represented as a fraction of 256, so 256 = 100% damage, 512 = 200% damage, 64 = 25% damage. The minimum amount of damage able to be done is 0.5, so a 0 multiplier means any attack will do .5 damage. Independent is the the unit size used for powerups such as data disc, and hence this is why they take 0.5 damage from each hit and take a long time to kill. Weapon factor is applied after subtracting unit armor from the weapon's damage. Independent damage 0x515B88 vs independent - 0 0x515B8C vs small - 0 0x515B90 vs medium - 0 0x515B94 vs large - 0 Explosive damage 0x515B9C vs independent - 0 0x515BA0 vs small - 128 0x515BA4 vs medium - 192 0x515BA8 vs large - 256 Concussive damage 0x515BB0 vs independent - 0 0x515BB4 vs small - 256 0x515BB8 vs medium - 128 0x515BBC vs large - 64 Normal damage 0x515BC4 vs independent - 0 0x515BC8 vs small - 256 0x515BCC vs medium - 256 0x515BD0 vs large - 256 Ignore armor 0x515BD8 vs independent - 0 0x515BDC vs small - 256 0x515BE0 vs medium - 256 0x515BE4 vs large - 256
005187E8 -116447 1.16.1 s_button Offset 12 250 Backed 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)
005193A0 -115697 1.16.1 Unit Infomation 12 228 See 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
00519E50 -115013 1.16.1 Mission Briefing Action Function Array 4 10 Contains function pointers for all mission briefing actions.
0051A280 -114745 1.16.1 Player 1 Trigger List 4 3 Backed By Code
0051A28C -114742 1.16.1 Player 2 Trigger List 4 3 Backed By Code
0051A298 -114739 1.16.1 Player 3 Trigger List 4 3 Backed By Code
0051A2A4 -114736 1.16.1 Player 4 Trigger List 4 3 Backed By Code
0051A2B0 -114733 1.16.1 Player 5 Trigger List 4 3 Backed By Code
0051A2BC -114730 1.16.1 Player 6 Trigger List 4 3 Backed By Code
0051A2C8 -114727 1.16.1 Player 7 Trigger List 4 3 Backed By Code
0051A2D4 -114724 1.16.1 Player 8 Trigger List 4 3 Backed By Code
0051CA14 -112212 1.16.1 Last Random Number 4 1 Simple 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; }
0051CE84 -111928 1.16.1 Network Mode Delay 4 1 Read Only 1 in single player, 2 in LAN, 5 on battle.net. Described at http://wiki.teamliquid.net/starcraft/LatencyChanger In SC:R, the value is determined by the combination of Turn Rate and room name (#x) speed.
0051CE88 -111927 1.16.1 Network Mode Delay 2 4 1 Appears to be a duplicate of 0x0051CE84. Not sure which value is the one that is actually used. In SC:R, the value is determined by the combination of Turn Rate and room name (#x) speed.
0051CE8C -111926 1.16.1 Inverse System Time 4 1 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.
0051CE98 -111923 1.16.1 Fog of War Update Counter 4 1 Simple 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)
0051CED0 -111909 1.16.1 GRP Array 4 999 Read Only Pointer to each GRP for each images.dat entry
0051F2A8 -109615 1.16.1 Images Attack Overlay Array 4 999 Read Only Pointers to GRP handles for all images.
00520244 -108616 1.16.1 Images Damage Overlay Array 4 999 Read Only Pointer to LO? handles for all images.dat entries.
005211E0 -107617 1.16.1 Images Special Overlay Array 4 999 Read Only Pointer to LO? handles for all images.dat entries.
0052217C -106618 1.16.1 Images Landing Dust Overlay Array 4 999 Read Only Pointer to LO? handles for all images.dat entries.
00523118 -105619 1.16.1 Images Liftoff Dust Overlay Array 4 999 Read Only Pointer to LO? handles for all images.dat entries.
005240D0 -104613 1.16.1 Images Damage Overlay Frame 1 999 Simple Data
0052E5C8 -94055 1.16.1 Images Shield Overlay Array 4 999 Pointer to GRP handles for all images.
0052F568 -93055 1.16.1 Images Array 64 5000 Read Only The array of images currently processed in the game.
0057EB68 -11775 1.16.1 First Image Pointer 4 1 Read Only Pointer to the first CImage instance.
0057EB70 -11773 1.16.1 Last Image Pointer 4 1 Read Only Pointer to the last CImage instance.
0057EE7C -11578 1.16.1 Player Human IDs 4 8 Unsupported The Human ID for each player.llll
0057EE9C -11570 1.16.1 Player Name 25 1 Unsupported If you are playing as 'asdf' then you will find on that address: 'asdf'
0057EEC0 -11561 1.16.1 Player Nation IDs 4 8 Unsupported The Nation ID for each player.
0057EEE0 -11553 1.16.1 Active Player Structures 36 12 Backed 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)
0057F094 -11444 1.16.1 Last Whisper Player 25 1 The name of the player that last whispered you (in-game only).
0057F0B0 -11437 1.16.1 Vision Filter 4 1 A shared vision filter used for changing the player's vision settings.
0057F0B4 -11436 1.16.1 Multiplayer Mode 4 1 Read 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
0057F0B8 -11435 1.16.1 Network Player Status Array 4 8 Unsupported An array containing flags for each player's network status.
0057F0D8 -11427 1.16.1 Network Maximum Buffer Size 4 1 A value indicating the maximum size for the command buffer that the network provider allows.
0057F0DC -11426 1.16.1 Main Menu Dialog Handle 4 1 Unsupported A handle to the main menu BIN dialog.
0057F0F0 -11421 1.16.1 Player Minerals 4 12 Simple Data The current amount of minerals the player has.
0057F120 -11409 1.16.1 Player Gas 4 12 Simple Data The current amount of gas the player has.
0057F150 -11397 1.16.1 Player Total Gas Harvested 4 12 Simple Data The total gas the player has ever harvested
0057F180 -11385 1.16.1 Player Total Minerals Harvested 4 12 Simple Data The total minerals the player has ever harvested
0057F1B0 -11373 1.16.1 Starting Player Local ID 4 1 Simple Data
0057F1B4 -11372 1.16.1 Player Slot Types 1 12 Simple Data
0057F1C0 -11369 1.16.1 Player Slot Races 1 12 Simple Data
0057F1CC -11366 1.16.1 Team Game Main Player 1 4 Simple Data
0057F1D0 -11365 1.16.1 Screen Tile Position 2 2 Simple Data
0057F1D4 -11364 1.16.1 MapSize 2 2 Simple Data 2byte Width 2byte Height width + 65536*height
0057F1D8 -11363 1.16.1 Messsage Send To Filter 2 2 Simple Data
0057F1DA -11363 1.16.1 Message Player Filter 2 2 Simple Data Should be within the previous entry
0057F1DC -11362 1.16.1 Tileset 2 1 Simple Data The current tileset ID being used. Changing to 1 will turn null terrain into Space with stars (Space platform tileset)
0057F1DE -11362 1.16.1 Current Music 2 2 Simple Data
0057F1E0 -11361 1.16.1 BWGame Unk_f0 1 1 Simple Data
0057F1E1 -11361 1.16.1 Active Player Count 1 1 Simple Data The number of active players in the game.
0057F1E2 -11361 1.16.1 Console Index 1 1 Simple Data A value indicating which console GUI should be displayed. 0 = zerg 1 = terran 2 = protoss
0057F1E3 -11361 1.16.1 Is Custom Single Player 1 1 Simple Data
0057F1E4 -11360 1.16.1 BWGame unk_f4 4 1 Simple Data
0057F1E8 -11359 1.16.1 BWGame unk_f8 4 1 Simple Data
0057F1EC -11358 1.16.1 Shared Vision 4 12 Simple 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..
0057F21C -11346 1.16.1 Player Color Mapping 4 8 Simple Data A mapping of the player's colors.
0057F23C -11338 1.16.1 Elapsed Time 4 1 Simple Data The elapsed game time (in game ticks, ~42ms per tick on fastest).
0057F240 -11337 1.16.1 Saved Elapsed Seconds 4 1 Simple Data
0057F244 -11336 1.16.1 Campaign Index 2 1 Simple Data A value indicating which campaign is being played.
0057F246 -11336 1.16.1 Next Scenario name 32 1 Simple Data The name of the next scenario, set using the Set Next Scenario trigger.
0057F266 -11328 1.16.1 Single Player Race 1 1 Simple Data
0057F267 -11328 1.16.1 Single Player Computer Races 1 8 Simple Data
0057F26F -11326 1.16.1 BWGame unk_17F 1 1 Simple Data
0057F270 -11325 1.16.1 Saved Screen Positions 4 3 Simple Data Pos 1: -11325 X + 65536*Y Pos 2: -11324 X + 65536*Y Pos 3: -11323 X + 65536*Y
0057F27C -11322 1.16.1 Player Units available 228 12 Simple Data 1 row of 228 bytes, 1 per unit, per player offset + (Cp * 228) + 100
0057FD2C -10638 1.16.1 BWGame unk_c3c 1 8 Simple Data
0057FD34 -10636 1.16.1 Last Event Position 4 2 Simple Data A POINT structure containing the position of the last event that occured (spacebar). PlayerID + 1 for Y position
0057FD3C -10634 1.16.1 Map File Name 260 1 Simple Data The current map's file name.
0057FE40 -10569 1.16.1 Map Title 32 1 Simple Data The current map's title.
0057FE60 -10561 1.16.1 Hotkeyed Unit 864 8 Simple 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 9 hotkeys in existence. 12 * 9 = 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+(p*216)+(h*12)+i) == 3749 - u, and for u = 0, memory(-10561+(p*216)+(h*12)+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.
00581960 -8833 1.16.1 BWGame unk_2870 1 1024 Simple Data
00581D60 -8577 1.16.1 Default Message Filter 1 1 Simple 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
00581D61 -8577 1.16.1 Player Lose Type 1 1 Simple Data
00581D62 -8577 1.16.1 Player Left 1 8 Simple Data
00581D6A -8575 1.16.1 Player Selection Circle Colors 1 12 Simple 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
00581D76 -8572 1.16.1 Unit Color Table 8 12 Simple 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.)
00581DD6 -8548 1.16.1 Minimap Color Table 1 12 Simple 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.
00581DE2 -8545 1.16.1 BWGame unk_2cf2 1 2 Simple Data
00581DE4 -8544 1.16.1 Score Total Units Produced 4 12 Simple Data Appears to be flipped; units owned, and not produced.
00581E14 -8532 1.16.1 Score Units Produced 4 12 Simple Data Appears to be flipped; units owned, and not produced.
00581E44 -8520 1.16.1 Score Units Owned 4 12 Simple Data Appears to be flipped; to be units produced, and not owned.
00581E74 -8508 1.16.1 Number of Units Lost 4 12 Simple Data Deaths for "Any Unit" stored here.
00581EA4 -8496 1.16.1 Number of Units Killed 4 12 Simple Data Kills for "Any Unit" stored here.
00581ED4 -8484 1.16.1 Score Unit Total 4 12 Simple Data
00581F04 -8472 1.16.1 Score Kill Total 4 12 Simple Data
00581F34 -8460 1.16.1 Score Structures Constructed Total 4 12 Simple Data
00581F64 -8448 1.16.1 Number of Buildings Constructed 4 12 Simple Data
00581F94 -8436 1.16.1 Number of Buildings Owned 4 12 Simple Data
00581FC4 -8424 1.16.1 Number of Buildings Lost 4 12 Simple Data Deaths for "Buildings" stored here.
00581FF4 -8412 1.16.1 Number of Buildings Razed 4 12 Simple Data Kills for "Buildings" stored here.
00582024 -8400 1.16.1 Buildings Score 4 12 Simple Data Score for "Buildings", or buildings produced.
00582054 -8388 1.16.1 Razings Score 4 12 Simple Data Score for "Razings", or buildings killed.
00582084 -8376 1.16.1 Number of Factories Constructed 4 12 Simple Data
005820B4 -8364 1.16.1 Number of Factories Owned 4 12 Simple Data
005820E4 -8352 1.16.1 Number of Factories Lost 4 12 Simple Data Deaths for "Factories" stored here.
00582114 -8340 1.16.1 Number of Factories Razed 4 12 Simple Data Kills for "Factories" stored here.
00582144 -8328 1.16.1 Zerg Control Available 4 12 Simple Data 4 bytes per player Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.
00582174 -8316 1.16.1 Zerg Control Used 4 12 Simple Data 4 bytes per player Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.
005821A4 -8304 1.16.1 Zerg Control Max 4 12 Simple Data 4 bytes per player Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.
005821D4 -8292 1.16.1 Terran Supply Available 4 12 Simple Data 4 bytes per player Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.
00582204 -8280 1.16.1 Terran Supply Used 4 12 Simple Data 4 bytes per player Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.
00582234 -8268 1.16.1 Terran Supply Max 4 12 Simple Data 4 bytes per player Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.
00582264 -8256 1.16.1 Protoss Psi Available 4 12 Simple Data 4 bytes per player Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.
00582294 -8244 1.16.1 Protoss Psi Used 4 12 Simple Data 4 bytes per player Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.
005822C4 -8232 1.16.1 Protoss Psi Max 4 12 Simple Data 4 bytes per player Despite being 4 bytes, the game will only display it as uint16 and will wrap around after 65536.
005822F4 -8220 1.16.1 Score Custom 4 12 Simple Data
00582324 -8208 1.16.1 All Unit Counts Table 48 228 Simple Data Counts per player, per unit For each unit, 4 bytes per player, for 12 players. offset + (unit*12 + player) * sizeof(u32)
00584DE4 -5472 1.16.1 Completed Unit Counts Table 48 228 Simple Data Counts per player, per unit For each unit, 4 bytes per player, for 12 players. offset + (unit*12 + player) * sizeof(u32)
00585474 -5052 1.16.1 Larva Count 12 1 (Why does this entry exist? Should be within the Completed Unit Counts Table) The amount of larva a hatchery, lair, or hive currently have.
005878A4 -2736 1.16.1 Killed Unit Counts Table 48 228 Simple Data Counts per player, per unit. For each unit, 4 bytes per player, for 12 players. offset + (unit*12 + player) * sizeof(u32)
0058A364 1.16.1 Death Table Start 48 228 Simple 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)
0058CE24 2736 1.16.1 SC Technologies Available (0-23) 24 12 Simple 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
0058CF44 2808 1.16.1 SC Technologies Researched (0-23) 24 12 Simple Data [See SC Technologies Available] http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=410
0058D064 2880 1.16.1 SC Tech Research In Progress 1 36 Simple Data Who knows
0058D088 2889 1.16.1 SC Upgrades Available (0-45) 46 12 Simple 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
0058D2B0 3027 1.16.1 SC Upgrades Researched (0-45) 46 12 Simple 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
0058D4D8 3165 1.16.1 SC Upgrade in Progress Lvl 1 (Unused?) 1 72 Simple Data Who knows
0058D520 3183 1.16.1 SC Upgrade in Progress Lvl 2 (Unused?) 1 72 Simple Data Who knows
0058D5B0 3219 1.16.1 Player's Force 1 8 Simple 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
0058D5B8 3221 1.16.1 Force Flags 1 4 Simple 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
0058D5BC 3222 1.16.1 Force Names 30 4 Simple 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
0058D634 3252 1.16.1 Player Alliances 12 12 Simple 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.
0058D6C4 3288 1.16.1 Mission Objectives Index 4 12 Simple 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
0058D6F4 3300 1.16.1 Countdown Timer 4 1 Simple 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?]
0058D6F8 3301 1.16.1 Elapsed Time 4 1 Simple 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.
0058D6FC 3302 1.16.1 SC Switch Table (Unused?) 4 1 Simple Data 32 switches, probably pre-1.04 when number of switches was increased to 256.
0058D700 3303 1.16.1 Player Victory Status 1 8 Simple Data
0058D708 3305 1.16.1 Leaderboard Has Computer Players 4 1 Simple Data
0058D70C 3306 1.16.1 Leader Board Type 1 1 Simple Data
0058D70D 3306 1.16.1 Leader Board Condition 1 1 Simple Data
0058D70E 3306 1.16.1 Leader Board Subtype 2 1 Simple Data
0058D710 3307 1.16.1 Leader Board Goal 4 1 Simple Data
0058D714 3308 1.16.1 Leader Board String Index 4 1 Simple Data
0058D718 3309 1.16.1 #'s of Game Pauses 1 8 Simple 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.
0058D720 3311 1.16.1 Start Locations 4 8 Simple Data Point: u16 X u16 Y EPD 3311 +0x00: P1 Start Location (X, Y*65536) +0x01: P2 Start Location (X*16777216, Y*256) *256 +0x02: Unknown (4194352) *65536 +0x03: Unknown (805322752) *16777216 EPD 3312 +0x04: Unknown (3145792) +0x05: P3 Start Location (X*16777216, Y*256) *256 +0x06: Unknown (4194352) *65536 +0x07: Unknown (805322752) *1677216 EPD 3313 +0x08: Unknown (3145792) +0x09: P4 Start Location (X*16777216, Y*256) *256 +0x0A: Unknown (4194352) *65536 +0x0B: Unknown (805322752) *16777216 EPD 3314 + 0x0C: Unknown (3145792) +0x0D: P5 Start Location (X*16777216, Y*256) *256 +0x0E: Unknown (12582960) *65536 +0x0F: Unknown (805355520) *16777216 EPD 3315 +0x10: Unknown (3145920) +0x11: P6 Start Location (X*16777216, Y*256) *256 +0x12: Unknown (12582960) *65536 +0x13: Unknown (805355520) *16777216 EPD 3316 +0x14: Unknown (3145920) +0x15: P7 Start Location (X*16777216, Y*256) *256 +0x16: Unknown (12582960) *65536 +0x17: Unknown (805355520) *16777216 EPD 3317 +0x18: Unknown (3145920) +0x19: P8 Start Location (X*16777216, Y*256) *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. 2. Look at the X pixel placement of P3 start location in your map editor and write it down. 3. Look at the Y pixel placement of P3 start location in your map editor and write it down. 4. 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). 5. 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.
0058D740 3319 1.16.1 Vanilla Location Table 20 64 Simple Data This Location Table is not used in the Expansion (Brood War)! +0x00 (EPD 3319) This is the LEFT position of the location (X1). +0x04 (EPD 3320) This is the TOP position of the location (Y1). +0x08 (EPD 3321) This is the RIGHT position of the location (X2). +0x0C (EPD 3322) This is the BOTTOM position of the location (Y2). +0x10 (EPD 3323) 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 location is "Anywhere."
0058DC40 3639 1.16.1 Switch Table 32 1 Simple 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
0058DC60 3647 1.16.1 Location Table 20 255 Simple 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."
0058F04C 4922 1.16.1 Time Pause State 4 1 Simple 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.
0058F050 4923 1.16.1 BW Technologies Available (24-43) 20 12 Simple Data Table layout is reverse compared to deaths/kills table. 1 row per player, 20 bytes per row, 1 byte per tech.
0058F140 4983 1.16.1 BW Technologies Researched (24-43) 20 12 Simple Data Table layout is reverse compared to deaths/kills table. 1 row per player, 20 bytes per row, 1 byte per tech.
0058F230 5043 1.16.1 BW Tech Research In Progress 1 72 [SCR: Simple data] Who knows
0058F278 5061 1.16.1 BW Upgrades Available (46-60) 15 12 Simple Data Table layout is reverse compared to deaths/kills table. 1 row per player, 15 bytes per row, 1 byte per upgrade.
0058F32C 5106 1.16.1 BW Upgrades Researched (46-60) 15 12 Simple 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
0058F3E0 5151 1.16.1 BW Upgrade In Progress 1 96 Simple Data Who knows
0058F440 5175 1.16.1 Is Expansion 1 1 Simple Data 1 if your game is using the Expansion set.
0058F441 5175 1.16.1 BWGame unk_10351 1 1 Simple Data
0058F442 5175 1.16.1 Unknown Player Color Something 1 8 Simple Data
0058F44A 5177 1.16.1 BWGame "Literally Unused" 1 29604 Simple Data
005968A0 12623 1.16.1 Input Procedures 4 19 A list of functions that determine how user input is handled.
005968AC 12626 1.16.1 Mouse Left Click 4 1 Detects the left click of a mouse. Use only actions that won't desync (check the Reference).
00596904 12648 1.16.1 Game Mode 2 1 Unsupported Determines the game's mode. In-Game, in-menu, battle.net, etc. The official name is gwGameMode.
00596A18 12717 1.16.1 Virtual Key Array 1 256 Backed By Code An array containing the state of all the virtual key codes (VK_).
005993C4 15384 1.16.1 Pointer to "MTXM" map tile data 4 1 Backed By Code
005993D4 15388 1.16.1 Pointer to map "STR " section 4 1 Backed By Code Pointer default: first string
0059BA5C 17854 1.16.1 Game Subtype ID 4 1 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
0059C080 18247 1.16.1 Mapdata.dat - Mission dir 4 65 Mapdata.tbl string index
0059CC78 19013 1.16.1 Last Time for Drop Window 4 1 Simple 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.
0059CC80 19015 1.16.1 Drop Timer 4 1 Simple Data The time remaining before a player is dropped. See the address 0x59CC78 (Last Time of Drop Window) for application.
0059CCA8 19025 1.16.1 Unitnode Table 336 1700 Backed 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)
0059CCA8 19025 1.16.1 CUnit - Previous Unit 4 1 Supported
0059CCAC 19026 1.16.1 CUnit - Next Unit 4 1 Supported
0059CCB0 19027 1.16.1 CUnit - HP 4 1 Supported 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(); }
0059CCB4 19028 1.16.1 CUnit - Sprite 4 1 Supported Pointer to CSprite. Contains the graphics of the unit.
0059CCB8 19029 1.16.1 CUnit - Target Pos 2 2 Supported X + 65536*Y
0059CCBC 19030 1.16.1 CUnit - Target Unit 4 1 Supported CUnit target pointer
0059CCC0 19031 1.16.1 CUnit - Next Movement Waypoint 2 2 Unsupported 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)
0059CCC4 19032 1.16.1 CUnit - Next Target Waypoint 4 1 Unsupported 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
0059CCC8 19033 1.16.1 CUnit - Movement Flags 1 1 Supported 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
0059CCC9 19033 1.16.1 CUnit - Current Direction 1 1 1 Supported 256 directions starting from the top going clockwise. 0x0000FF00 - *256
0059CCCA 19033 1.16.1 CUnit - Flingy Turn Radius 1 1 Supported "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
0059CCCB 19033 1.16.1 CUnit - Velocity Direction 1 1 1 Supported 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.
0059CCCC 19034 1.16.1 CUnit - Flingy ID 2 1 Supported The Flingy ID of the unit.
0059CCCF 19034 1.16.1 CUnit - Flingy Movement Type 1 1 Supported The type of movement that the unit use (*16777216).
0059CCD0 19035 1.16.1 CUnit - Position Coordinates 2 2 Supported The coordinates of a unit on the map (X + 65536*Y).
0059CCD4 19036 1.16.1 CUnit - Halt X Coordinate 4 1 Supported The X coordinate of a unit on the map (*256).
0059CCD8 19037 1.16.1 CUnit - Halt Y Coordinate 4 1 Supported The Y coordinate of a unit on the map (*256).
0059CCDC 19038 1.16.1 CUnit - Flingy Top Speed 4 1 Supported
0059CCE0 19039 1.16.1 CUnit - Move Acceleration 4 1 Supported 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.
0059CCE4 19040 1.16.1 CUnit - Move Speed 4 1 Supported 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.
0059CCE8 19041 1.16.1 CUnit - Move Speed On X-Axis 4 1 Supported 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).
0059CCEC 19042 1.16.1 CUnit - Move Speed On Y-Axis 4 1 Supported 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).
0059CCF0 19043 1.16.1 CUnit - Flingy Acceleration 2 1 Supported
0059CCF2 19043 1.16.1 CUnit - Current Direction 2 1 1 Supported
0059CCF3 19043 1.16.1 CUnit - Velocity Direction 2 1 1 Supported 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
0059CCF4 19044 1.16.1 CUnit - Player ID 1 1 Supported The owner of the cunit. Mask: 0x000000FF *1 P1: 00 P2: 01 P3: 02 etc.
0059CCF5 19044 1.16.1 CUnit - Main Order ID 1 1 Supported Specification of type of order given. See http://www.staredit.net/wiki/index.php?title=Orders.dat_Entry_Listing Mask: 0x0000FF00 *256
0059CCF6 19044 1.16.1 CUnit - Main Order State 1 1 Supported 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
0059CCF7 19044 1.16.1 CUnit - Order Signal 1 1 Supported 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
0059CCF8 19045 1.16.1 CUnit - Order Unit Type 2 1 Supported 228 = none?
0059CCF9 19045 1.16.1 CUNIT - Idle Order Timer 4 1 (*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)
0059CCFC 19046 1.16.1 CUnit - Main Order Timer 1 1 Supported A timer for orders. An example would be the time left before a worker harvest the gas from a mine or transport unloading.
0059CCFD 19046 1.16.1 CUnit - Cooldown 1 3 Supported 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
0059CD00 19047 1.16.1 CUnit - Order Coordinates 2 2 Supported 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
0059CD04 19048 1.16.1 CUnit - Order Target Unit 4 1 Supported The unit targeted by another unit (Index Pointer).
0059CD08 19049 1.16.1 CUnit - Shield Points 4 1 Supported The amount of shield points that a unit have (*256).
0059CD0C 19050 1.16.1 CUnit - Unit Type 2 1 Supported
0059CD10 19051 1.16.1 CUnit - Previous Player Unit 4 1 Supported Pointer to previous CUnit owned by the same player
0059CD14 19052 1.16.1 CUnit - Next Player Unit 4 1 Supported Pointer to the next CUnit owned by the same player.
0059CD18 19053 1.16.1 CUnit - Sub Unit 4 1 Supported Pointer to this unit's subunit CUnit.
0059CD1C 19054 1.16.1 CUnit - Order Queue Head 4 1 (Unsupported?) Pointer to COrder
0059CD20 19055 1.16.1 CUnit - Order Queue Tail 4 1 (Unsupported?) Pointer to COrder.
0059CD24 19056 1.16.1 CUnit - Auto-Target Unit 4 1 Supported Pointer to CUnit. The auto-acquired target (Note: This field is actually used for different targets internally, especially by the AI) (bwapi)
0059CD28 19057 1.16.1 CUnit - Connected Unit 4 1 Supported Pointer to CUnit. Addon is connected to building (addon has conntected building, but not in other direction (officially "pAttached") (bwapi)
0059CD2C 19058 1.16.1 CUnit - Order Queue Count 1 1 Supported The number of queued orders a unit currently has.
0059CD2D 19058 1.16.1 CUnit - Order Queue Timer 1 1 Supported BWAPI doc: counts/cycles down from from 8 to 0 (inclusive). See also [Cycle Counter].
0059CD2E 19058 1.16.1 CUnit - Unknown 0x086 1 1 Supported Pathing related?
0059CD2F 19058 1.16.1 CUnit - Attack Notify Timer 1 1 Supported
0059CD30 19059 1.16.1 CUnit - Previous Unit Type 2 1 (Unsupported?) Stores the type of the unit prior to being morphed/constructed (bwapi)
0059CD32 19059 1.16.1 CUnit - Last Event Timer 1 1 (Unsupported?) countdown that stops being recent when it hits 0 (bwapi)
0059CD33 19059 1.16.1 CUnit - Last Event Color 1 1 (Unsupported? 17 = was completed (train, morph), 174 = was attacked (bwapi)
0059CD34 19060 1.16.1 CUnit - Unused 0x08C 2 1 Supported
0059CD36 19060 1.16.1 CUnit - Rank Increase 1 1 Supported Adds to unit's base rank. (*65536)
0059CD37 19060 1.16.1 CUnit - Kill Count 1 1 Supported The kill count of a unit (*16777216).
0059CD38 19061 1.16.1 CUnit - Last Attacking Player 1 1 Supported The player that last attacked this unit
0059CD39 19061 1.16.1 CUnit - Secondary Order Timer 1 1 Supported
0059CD3A 19061 1.16.1 CUnit - AI Action Flag 1 1 Supported Internal use by AI only (bwapi)
0059CD3B 19061 1.16.1 CUnit - User Action Flags 1 1 Supported Some flags that change when the user interacts with the unit 2 = issued an order 3 = interrupted an order 4 = self destructing (bwapi)
0059CD3C 19062 1.16.1 CUnit - Button Set 2 1 Supported The current button set of a unit.
0059CD3C 19062 1.16.1 Order Destination Invalid (???) 4 1 "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
0059CD3E 19062 1.16.1 CUnit - Is Cloaked 1 1 Supported
0059CD3F 19062 1.16.1 CUnit - Movement State 1 1 Supported 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
0059CD40 19063 1.16.1 CUnit - Build Queue 2 5 Supported Queue of units to build. Note that it doesn't begin with index 0, but with #buildQueueSlot index. (bwapi)
0059CD4A 19065 1.16.1 CUnit - Energy 2 1 Supported Amount of energy a unit has. (value*256) * 65536
0059CD4C 19066 1.16.1 CUnit - Build Queue Slot 1 1 Supported Index of active unit in #buildQueue. (bwapi)
0059CD4D 19066 1.16.1 CUnit - Uniqueness Identifier 1 1 Supported A byte used to determine uniqueness of the unit
0059CD4E 19066 1.16.1 CUnit - Secondary Order ID 1 1 Supported The order ID for passive orders such as Cloak, Build, ExpandCreep, cloaking field, etc.
0059CD4F 19066 1.16.1 CUnit - Building Overlay State 1 1 Supported 0 means the building has the largest amount of fire/blood (bwapi)
0059CD50 19067 1.16.1 CUnit - HP Gain 2 1 Supported hp gained on construction or repair (bwapi)
0059CD52 19067 1.16.1 Cunit - Shield Gain 2 1 Supported Shield gain on construction (bwapi)
0059CD54 19068 1.16.1 CUnit - Remaining Build Time 2 1 Supported The remaining time before a building is constructed.
0059CD56 19068 1.16.1 CUnit - Previous HP 2 1 Supported The HP of the unit before it changed (example Drone->Hatchery, the Drone's HP will be stored here)
0059CD58 19069 1.16.1 CUnit - Loaded Unit Index 2 8 Unsupported (Unsupported?) Unit ID's (not pointers) of loaded units.
0059CD68 19073 1.16.1 CUnit - Vulture - Spider Mines 1 1 Supported 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
0059CD68 19073 1.16.1 CUnit - Carrier/Reaver - In Hangar 4 1 Supported 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
0059CD68 19073 1.16.1 CUnit - Scarab/Interceptor - Parent Unit 4 1 Supported 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
0059CD68 19073 1.16.1 CUnit - Beacon - Unknown +00 4 1 Supported 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
0059CD68 19073 1.16.1 CUnit - Building - Addon 4 1 Supported 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
0059CD68 19073 1.16.1 CUnit - Worker - Powerup Unit 4 1 Supported 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
0059CD6C 19074 1.16.1 CUnit - Carrier/Reaver - Out Hanger 4 1 Supported 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
0059CD6C 19074 1.16.1 CUnit - Scarab/Interceptor - Previous 4 1 Supported 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
0059CD6C 19074 1.16.1 CUnit - Beacon - Unknown +04 4 1 Supported 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
0059CD6C 19074 1.16.1 CUnit - Building - Addon Building Type 2 1 Supported Also: Carrier/Reaver: pointer to first child outside the hangar Scarab/Interceptor: pointer to previous Beacon: Unknown Worker: Target resource coordinates
0059CD6C 19074 1.16.1 CUnit - Worker - Target Resource Coord 2 2 Supported 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
0059CD6E 19074 1.16.1 CUnit - Building - Upgrade/Research Time 2 1 Supported
0059CD70 19075 1.16.1 CUnit - Carrier/Reaver - In Hangar Count 1 1 Supported 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
0059CD70 19075 1.16.1 CUnit - Scarab/Interceptor - Next 4 1 Supported 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
0059CD70 19075 1.16.1 CUnit - Beacon - Flag Spawn Frame 4 1 Supported 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
0059CD70 19075 1.16.1 CUnit - Building - Tech Type 1 1 Supported Also: Carrier/Reaver - number of units in hangar Scarab/Interceptor - pointer to next scarab/interceptor Beacon - Flag spawn frame Worker - Target resource pointer
0059CD70 19075 1.16.1 CUnit - Worker - Target Resource Unit 4 1 Supported 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
0059CD71 19075 1.16.1 CUnit - Carrier/Reaver - Out Hangar Count 1 1 Supported The amount of interceptors that a carrier has (*256). Also: Building - Upgrade type
0059CD71 19075 1.16.1 CUnit - Building - Upgrade Type 1 1 Supported Also: Carrier/Reaver - Out hangar count
0059CD72 19075 1.16.1 CUnit - Building - Larva Spawn Timer 1 1 Supported The remaining time left before a larva is created on buildings (*65536).
0059CD73 19075 1.16.1 CUnit - Building - Landing Timer 1 1 Supported Detects if a Terran building is landing (*16777216).
0059CD74 19076 1.16.1 CUnit - Scarab/Interceptor - In Hanger 1 1 Supported Boolean value? Also: Building - Creep timer Worker - Repair/resource timer
0059CD74 19076 1.16.1 CUnit - Building - Creep Timer 1 1 Supported Also: Scarab/Interceptor - In hangar Worker - Repair/resource timer
0059CD74 19076 1.16.1 CUnit - Worker - Repair/Resource Timer 2 1 Supported Also: Scarab/Interceptor - In hangar Building - Creep timer
0059CD75 19076 1.16.1 CUnit - Building - Upgrade Level 1 1 Supported
0059CD76 19076 1.16.1 CUnit - Worker - Is Carring Something 1 1 Supported
0059CD77 19076 1.16.1 CUnit - Worker - Resource Carry Count 1 1 Supported
0059CD78 19077 1.16.1 CUnit - Resource - Resource Count 2 1 Supported 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
0059CD78 19077 1.16.1 CUnit - Worker - Harvest Target Unit 4 1 Supported 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
0059CD78 19077 1.16.1 CUnit - Nydus - Exit Unit 4 1 Supported 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
0059CD78 19077 1.16.1 CUnit - Ghost - Nuke Dot Sprite 4 1 Supported 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
0059CD78 19077 1.16.1 CUnit - Pylon - Power Overlay Sprite 4 1 Supported 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
0059CD78 19077 1.16.1 CUnit - Nuke Silo - Attached Nuke 4 1 Supported 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
0059CD78 19077 1.16.1 CUnit - Powerup - Origin Coordinates 2 2 Supported 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
0059CD78 19077 1.16.1 CUnit - Hatchery? - Harvest Value 2 4 Supported 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
0059CD7A 19077 1.16.1 CUnit - Resource - Resource IScript 1 1 Supported Current iscript animation ?
0059CD7B 19077 1.16.1 CUnit - Resource - Gatherer Queue Count 1 1 Supported as named in bwapi, or "Boolean on whether is extracted-added by jehn" ???
0059CD7C 19078 1.16.1 CUnit - Worker - Previous Harvest Unit 4 1 Supported CUnit pointer "When there is a gather conflict" (bwapi) "It is taken to wait unit the next" (jehn) Also: Resource - Next gatherer Silo - Ready
0059CD7C 19078 1.16.1 CUnit - Resource - Next Gatherer 4 1 Supported CUnit pointer to the next worker unit waiting in line to gather Also: Silo - Ready Worker - Previous harvest unit
0059CD7C 19078 1.16.1 CUnit - Silo - Ready 1 1 Supported Also: Resource - Next gatherer Worker - Previous harvest unit
0059CD80 19079 1.16.1 CUnit - Resource - Resource Group 1 1 Supported Also: Worker - Next harvest unit
0059CD80 19079 1.16.1 CUnit - Worker - Next Harvest Unit 4 1 Supported Also: Resource - Resource group/resource belongs to AI
0059CD81 19079 1.16.1 CUnit - Resource - Reource Belongs to AI 1 1 Supported
0059CD84 19080 1.16.1 CUnit - Status Flags 4 1 Supported 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)
0059CD88 19081 1.16.1 CUnit - Resource Type 1 1 (Unsupported?) Resource being held by worker: 1 = gas 2 = ore (bwapi)
0059CD89 19081 1.16.1 CUnit - Wireframe Randomizer 1 1 (Unsupported?)
0059CD8A 19081 1.16.1 CUnit - Secondary Order State 1 1 (Unsupported?)
0059CD8B 19081 1.16.1 CUnit - Recent Order Time 1 1 (Unsupported?) Counts down from 15 to 0 when most orders are given, or when the unit moves after reaching a patrol location (bwapi)
0059CD8C 19082 1.16.1 CUnit - Visiblity Status 4 1 (Unsupported?) Flags specifying which players can detect this unit (cloaked/burrowed) (bwapi)
0059CD90 19083 1.16.1 CUnit - Secondary Order Position 2 2 (Unsupported?) Unused according to bwapi. 0x0000FFFF x-coord 0xFFFF0000 y-coord
0059CD94 19084 1.16.1 CUnit - Unit beingBuilt 4 1 Unsupported The current unit that's being produced from a building. For a better description of what this does, more testing is necessary.
0059CD98 19085 1.16.1 CUnit - Previous Burrowed Unit 4 1 (Unsupported?) CUnit pointer to previous burrowed unit
0059CD9C 19086 1.16.1 CUnit - Next Burrowed Unit 4 1 (Unsupported?) Pointer to CUnit of next burrowed unit
0059CDA0 19087 1.16.1 CUnit - Rally - Rally Coordinates 2 2 Supported The coordinates of a rally from a building (X + 65536*Y) 0x0000FFFF - X coordinate 0xFFFF0000 - Y coordinate For pylons: Previous Psi Provider (CUnit pointer)
0059CDA0 19087 1.16.1 CUnit - Pylon - Previous Psi Provider 4 1 Supported CUnit pointer to previous psi provider For other buildings: The coordinates of a rally from a building
0059CDA4 19088 1.16.1 CUnit - Rally - Rally Unit 4 1 Supported The unit that a building set their rally to (CUnit pointer). For pylons: Next Psi Provider (CUnit pointer)
0059CDA4 19088 1.16.1 CUnit - Pylon - Next Psi Provider 4 1 Supported CUnit pointer to next psi provider For other buildings: The unit that a building set their rally to
0059CDA8 19089 1.16.1 CUnit - Pathing Pointer 4 1 (Unsupported?) Pointer to pathing data.
0059CDAC 19090 1.16.1 CUnit - Pathing Collision Interval 1 1 Supported Unknown?
0059CDAD 19090 1.16.1 CUnit - Pathing Flags 1 1 Supported 0x01 = uses pathing 0x02 = ? 0x04 = ? (bwapi)
0059CDAF 19090 1.16.1 CUnit - Is Healing 1 1 Supported Detects if a unit is currently being healed (*16777216).
0059CDB0 19091 1.16.1 CUnit - Contour Bounds 2 4 (Unsupported?) a rect that specifies the closest contour (collision) points (bwapi) s16 left, s16 top, s16 bottom, s16 right ?
0059CDB8 19093 1.16.1 CUnit - Remove Timer 2 1 Supported When this timer equals 0, the following are destroyed: hallucinations Swarm Disruption Web Broodlings Could be more?
0059CDBA 19093 1.16.1 CUnit - Matrix Damage Absorption 2 1 Supported The amount of damage the matrix has absorbed (*16777216).
0059CDBC 19094 1.16.1 CUnit - Matrix Timer 1 1 Supported The amount of time remaining for matrix by a science vessel.
0059CDBD 19094 1.16.1 CUnit - Stim Timer 1 1 Supported The amount of time remaining (*256) for the stim effect applied to a marine or firebat.
0059CDBE 19094 1.16.1 CUnit - Ensnare Timer 1 1 Supported 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)
0059CDBF 19094 1.16.1 CUnit - Lockdown Timer 1 1 Supported 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.
0059CDC0 19095 1.16.1 CUnit - Irradiate Timer 1 1 Supported The amount of time remaining for irradiate by a science vessel.
0059CDC1 19095 1.16.1 CUnit - Stasis Timer 1 1 Supported The amount of time remaining (*256) for stasis by a arbiter.
0059CDC2 19095 1.16.1 CUnit - Plague Timer 1 1 Supported Detects if a unit has been plagued by defiler (*65536)
0059CDC3 19095 1.16.1 CUnit - Storm Timer 1 1 Supported If a unit is under storm (*16777216)
0059CDC4 19096 1.16.1 CUnit - Irradiated By 4 1 Supported CUnit pointer to casting unit which irradiated this unit.
0059CDC8 19097 1.16.1 CUnit - Irradiate Player ID 1 1 Supported Player ID who irradiated the unit.
0059CDC9 19097 1.16.1 CUnit - Parasite Flags 1 1 Supported 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
0059CDCA 19097 1.16.1 CUnit - Cycle Counter 1 1 Supported Counts/cycles up from 0 to 7 inclusive (*65536)
0059CDCB 19097 1.16.1 CUnit - Blind State 1 1 Supported Detects if a unit has been blinded (*16777216) by a medic.
0059CDCC 19098 1.16.1 CUnit - Maelstorm Timer 1 1 Supported The remaining time that a unit has before Maelstorm wears off.
0059CDCD 19098 1.16.1 CUnit - Unused Timer 1 1 Supported Potentially from Valkyrie Afterburner or Ultralisk Roar.
0059CDCE 19098 1.16.1 CUnit - Acid Spore Count 1 1 Supported 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.
0059CDCF 19098 1.16.1 CUnit - Acid Spore 1/9 1 1 See 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.
0059CDD0 19099 1.16.1 CUnit - Acid Spore 2/9 1 1 Unsupported Timer for 2nd of 9 acid spores applied to a unit Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595
0059CDD1 19099 1.16.1 CUnit - Acid Spore 3/9 1 1 Unsupported Timer for 3rd of 9 acid spores applied to a unit (*256) Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595
0059CDD2 19099 1.16.1 CUnit - Acid Spore 4/9 1 1 Unsupported Timer for 4th of 9 acid spores applied to a unit (*65536) Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595
0059CDD3 19099 1.16.1 CUnit - Acid Spore 5/9 1 1 Unsupported Timer for 5th of 9 acid spores applied to a unit (*16777216) Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595
0059CDD4 19100 1.16.1 CUnit - Acid Spore 6/9 1 1 Unsupported Timer for 6th of 9 acid spores applied to a unit Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595
0059CDD5 19100 1.16.1 CUnit - Acid Spore 7/9 1 1 Unsupported Timer for 7th of 9 acid spores applied to a unit (*256) Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595
0059CDD6 19100 1.16.1 CUnit - Acid Spore 8/9 1 1 Unsupported Timer for 8th of 9 acid spores applied to a unit (*65536) Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595
0059CDD7 19100 1.16.1 CUnit - Acid Spore 9/9 1 1 Unsupported Timer for 9th of 9 acid spores applied to a unit (*16777216) Refer to http://farty1billion.dyndns.org/EUDdb/?pg=entry&id=595
0059CDD8 19101 1.16.1 CUnit - Bullet Behavior 3x3 Attack 2 1 (Unsupported?) Counts up for the number of bullets shot by a unit using this weapon behaviour and resets after it reaches 12 (bwapi)
0059CDDC 19102 1.16.1 CUnit - AI Data 4 1 (Unsupported?) Pointer to AI class
0059CDE0 19103 1.16.1 Emp Shockwave Missiles (???) 4 1 The total amount of missiles from *all science vessel that you can see on the map. *: Not completely tested and confirmed.
0059CDE0 19103 1.16.1 CUnit - Air Strength 2 1 Unsupported
0059CDE2 19103 1.16.1 CUnit - Ground Strength 2 1 Unsupported
0059CDE4 19104 1.16.1 CUnit - Unit Finder 4 4 (Unsupported?) PID+0 left PID+1 right PID+2 top PID+3 bottom
0059CDF4 19108 1.16.1 CUnit - Repulse Unknown 1 1 Supported
0059CDF5 19108 1.16.1 CUnit - Repulse Angle 1 1 Supported 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.
0059CDF6 19108 1.16.1 CUnit - Drift X 1 1 Supported For air units when they're pushed (*65536) on X-axis. Formula from BWAPI: (mapsizex/1.5 max) Need more testing.
0059CDF7 19108 1.16.1 CUnit - Drift Y 1 1 Supported For air units when they're pushed (*16777216) on Y-axis. Formula from BWAPI: (mapsizex/1.5 max) Need more testing.
0059D568 19585 1.16.1 SC Upgrade in Progress Lvl 3 (???) 1 72 Who knows
006283F8 161829 1.16.1 Last Unit Pointer 4 1 The value is pointer to the last unit in the unitNodeTable. -added by jehn
00628430 161843 1.16.1 First Unit Pointer 4 1 Backed By Code The value is pointer to the first unit in the unitNodeTable.
00628438 161845 1.16.1 First Empty Unit 4 1 Backed By Code The address of the unit structure to be created -added by jehn
00628448 161849 1.16.1 Screen Coordinate X 4 1 Read 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.
00628470 161859 1.16.1 Screen Coordinate Y 4 1 Read 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.
0062848C 161866 1.16.1 glScrollPixelX 4 1 Read Only Duplicate of screen coordinates?
00628494 161868 1.16.1 gfpCellMap 4 1 Backed By Code Pointer to VX4 megatile buffer?
006284A8 161873 1.16.1 glScrollPixelY 4 1 Read Only Duplicate of screen coordinates?
006284B8 161877 1.16.1 Current Player Selection 4 12 Backed By Code Selection group of the current player Seems to be duplicated at 0x59724C and 0x597208?
006284E8 161889 1.16.1 Player 1 Selection Group 4 12 Backed By Code List of unit node pointers for Player's current group selection. Points to address 0x0059CCA8
00628518 161901 1.16.1 Player 2 Selection Group 4 12 Backed By Code List of unit node pointers for Player's current group selection.
00628548 161913 1.16.1 Player 3 Selection Group 4 12 Backed By Code List of unit node pointers for Player's current group selection.
00628578 161925 1.16.1 Player 4 Selection Group 4 12 Backed By Code List of unit node pointers for Player's current group selection.
006285A8 161937 1.16.1 Player 5 Selection Group 4 12 Backed By Code List of unit node pointers for Player's current group selection.
006285D8 161949 1.16.1 Player 6 Selection Group 4 12 Backed By Code List of unit node pointers for Player's current group selection.
00628608 161961 1.16.1 Player 7 Selection Group 4 12 Backed By Code List of unit node pointers for Player's current group selection.
00628638 161973 1.16.1 Player 8 Selection Group 4 12 Backed By Code List of unit node pointers for Player's current group selection.
00629D98 163469 1.16.1 Sprite Table 36 2500 Read 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.
00629D98 163469 1.16.1 CSprite - Previous Entry 4 1 Supported
00629D9C 163470 1.16.1 CSprite - Next Entry 4 1 Supported
00629DA0 163471 1.16.1 CSprite - Sprite ID 2 1 Supported
00629DA2 163471 1.16.1 CSprite - Player ID 1 1 Supported
00629DA3 163471 1.16.1 CSprite - Selection Index 1 1 Supported Index in the selection area at the bottom of the screen.
00629DA4 163472 1.16.1 CSprite - Visibility Flags 1 1 Unsupported Player bits indicating the visiblity for a player. P1: 1 P2: 2 P3: 4 P4: 8 P5: 16 P6: 32 P7: 64 P8: 128
00629DA5 163472 1.16.1 CSprite - Elevation Level 1 1 Unsupported
00629DA6 163472 1.16.1 CSprite - Draw Flags 1 1 Unsupported 0x01 - Draw selection circle 0x02 - Ally selection? 0x04 - Ally selection? 0x08 - Draw HP bar 0x10 - 0x20 - Hidden 0x40 - Burrowed 0x80 - Iscript unbreakable code section
00629DA7 163472 1.16.1 CSprite - Selection Timer 1 1 Unsupported
00629DA8 163473 1.16.1 CSprite - Index 2 1 Unsupported
00629DAA 163473 1.16.1 CSprite - Unknown Flags 12 1 1 Unsupported
00629DAB 163473 1.16.1 CSprite - Unknown flags 13 1 1 Unsupported
00629DAC 163474 1.16.1 CSprite - Position 2 2 Unsupported 65536*Y + X
00629DB0 163475 1.16.1 CSprite - Primary Image 4 1 Unsupported Pointer to main CImage instance.
00629DB4 163476 1.16.1 CSprite - Image Head 4 1 Unsupported Pointer to first CImage instance associated with this sprite.
00629DB8 163477 1.16.1 CSprite - Image Tail 4 1 Unsupported Pointer to last CImage instance associated with this sprite.
0063FF48 186105 1.16.1 Pylon Auras are Visible 4 1 Read-Only (Writing to it apparently does nothing :C .)
00640B24 186864 1.16.1 gameTextCounters 4 12 Unsupported Contains the tick count for when the message should disappear. Corresponds to the same index of game text.
00640B58 186877 1.16.1 Next Display Text Line 4 1 Simple 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.
00640B60 186879 1.16.1 Display Text 218 13 Backed By Code Line IDs: 0-10: display text lines (first line defined by 0x640B58 - Next Display Text Line) 11: ? 12: status message
00650980 203143 1.16.1 Trigger Wait Timers 4 8 Wait action timers for each player
006509A0 203151 1.16.1 Trigger Execution Timer (Hyper triggers) 4 1 Simple 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.
006509B0 203155 1.16.1 Trigger Current Player aka CP Trick 4 1 Simple 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.
00654880 207175 1.16.1 Network Buffer 496 1 Backed 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
00654AA0 207311 1.16.1 Network Buffer Used 4 1 Supported Command queue (0x00654880) space used. Edited by PereC, 2021.04.03
006556E0 208095 1.16.1 Accept Commands 4 1 Unsupported If 1, commands are accepted. If 0, all commands are ignored.
00655700 208103 1.16.1 Upgrades.dat - Max Level 1 61 Simple Data
00655740 208119 1.16.1 Upgrades.dat - Mineral Cost Base 2 61 Simple 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.
006557C0 208151 1.16.1 Upgrades.dat - Gas Cost Factor 2 61 Simple Data
00655840 208183 1.16.1 Upgrades.dat - Gas Cost Base 2 61 Simple Data
006558C0 208215 1.16.1 Upgrades.dat - Dat Requirement Offset 2 61 Simple Data
00655940 208247 1.16.1 Upgrades.dat - Time Factor 2 61 Simple Data
006559C0 208279 1.16.1 Upgrades.dat - Mineral Cost Factor 2 61 Simple Data
00655A40 208311 1.16.1 Upgrades.dat - Label 2 61 Simple Data stat_txt.tbl index
00655AC0 208343 1.16.1 Upgrades.dat - Icon 2 61 Simple Data cmdicons.grp frame
00655B3C 208374 1.16.1 Upgrades.dat - Brood War Flag 1 61 Simple Data
00655B80 208391 1.16.1 Upgrades.dat - Time Base 2 61 Simple Data
00655BFC 208422 1.16.1 Upgrades.dat - Race 1 61 Simple Data 0 = Zerg 1 = Terran 2 = Protoss 3 = All
00655C58 208445 1.16.1 Portdata.dat - Idle SMK 4 110 Backed By Code 1-based reference to portdata.tbl
00655E10 208555 1.16.1 Portdata.dat - Idle SMK Change 1 110
00655E80 208583 1.16.1 Portdata.dat - Talking SMK 4 110 Backed By Code 1-based reference to portdata.tbl
00656038 208693 1.16.1 Portdata.dat - Idle Unknown 1 110
006560A8 208721 1.16.1 Portdata.dat - Talking SMK change 1 110
00656118 208749 1.16.1 Portdata.dat - Talking unknown 1 110
00656198 208781 1.16.1 Techdata.dat - Unknown1 2 44 Simple Data
006561F0 208803 1.16.1 Techdata.dat - Gas Cost 2 44 Simple 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
00656248 208825 1.16.1 Techdata.dat - Mineral Cost 2 44 Simple 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
006562A0 208847 1.16.1 Techdata.dat - Label 2 44 Simple Data stat_txt.tbl index
006562F8 208869 1.16.1 Techdata.dat - Data Restrictions 2 44 Simple Data
00656350 208891 1.16.1 Techdata.dat - Researched 1 44 Simple Data DatEdit says Unused?
00656380 208903 1.16.1 Techdata.dat - Energy Cost 2 44 Simple Data
006563D8 208925 1.16.1 Techdata.dat - Time 2 44 Simple Data
00656430 208947 1.16.1 Techdata.dat - Icon 2 44 Simple Data cmdicons.grp frame index
00656488 208969 1.16.1 Techdata.dat - Race 1 44 Simple Data 0 = Zerg 1 = Terran 2 = Protoss 3 = All
006564B4 208980 1.16.1 Techdata.dat - Brood War Flag 1 44 Simple Data
006564E0 208991 1.16.1 Weapons.dat - Damage Factor 1 130 Simple Data
00656568 209025 1.16.1 Weapons.dat - Target Error Message 2 130 Simple Data stat_txt.tbl index
00656670 209091 1.16.1 Weapons.dat - Behavior 1 130 Simple 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
006566F8 209125 1.16.1 Weapons.dat - Effect 1 130 Simple 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)
00656780 209159 1.16.1 Weapons.dat - Icon 2 130 Simple Data cmdicons.grp frame
0065678C 209162 1.16.1 Damage type/factor multipliers vs unit size 20 5 (What's this?)
00656888 209225 1.16.1 Weapons.dat - Splash Inner Radius 2 130 Simple Data
00656990 209291 1.16.1 Weapons.dat - Attack Angle 1 130 Simple Data "Angle within which the weapon can be fired without waiting for the unit's graphics to turn. 128 = 180 degrees."
00656A18 209325 1.16.1 Weapons.dat - Minimum Range 4 130 Simple Data 16 times the value in DatEdit.
00656C20 209455 1.16.1 Weapons.dat - Graphics Y Offset 1 130 Simple Data
00656CA8 209489 1.16.1 Weapons.dat - Graphics 4 130 Simple Data Flingy.dat index Weapon Graphic
00656EB0 209619 1.16.1 Weapons.dat - Damage Amount 2 130 Simple Data
00656FB8 209685 1.16.1 Weapons.dat - Cooldown 1 130 Simple Data
00657040 209719 1.16.1 Weapons.dat - Remove After 1 130 Simple Data "Time until the weapon is removed if it does not hit a target."
006570C8 209753 1.16.1 Weapons.dat - Splash Middle Radius 2 130 Simple Data
006571D0 209819 1.16.1 Weapons.dat - Upgrade ID 1 130 Simple Data Upgrades.dat index
00657258 209853 1.16.1 Weapons.dat - Damage Type 1 130 Simple Data 0 = Independent 1 = Explosive 2 = Concussive 3 = Normal 4 = Ignore Armor
006572E0 209887 1.16.1 Weapons.dat - Label 2 130 Simple Data stat_txt.tbl index
006573E8 209953 1.16.1 Weapons.dat - Special Attack 1 130 Simple Data Reference only?
00657470 209987 1.16.1 Weapons.dat - Maximum Range 4 130 Simple Data Value is 16 times what DatEdit shows.
00657678 210117 1.16.1 Weapons.dat - Upgrade Bonus 2 130 Simple Data
00657780 210183 1.16.1 Weapons.dat - Splash Outer Radius 2 130 Simple Data
00657888 210249 1.16.1 Weapons.dat - Launch Spin 1 130 Simple Data
00657910 210283 1.16.1 Weapons.dat - Graphics X Offset 1 130 Simple Data
00657998 210317 1.16.1 Weapons.dat - Target Flags 2 130 Simple 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.
00657A9C 210382 1.16.1 Game Brightness 4 1 Simple 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.
00657AA0 210383 1.16.1 Fog of War Masks 1 4096 Backed 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).
0065FC18 218669 1.16.1 Units.dat - Max Hits (Air) 1 228 Simple Data This value is for statistics purposes only (?)
0065FD00 218727 1.16.1 Units.dat - Gas Cost 2 228 Simple Data
0065FEC8 218841 1.16.1 Units.dat - Armor 1 228 Simple Data
0065FFB0 218899 1.16.1 Units.dat - "What" Sound Start 2 228 Simple Data sfxdata.dat start index
00660178 219013 1.16.1 Units.dat - Computer AI Unit Type 1 228 Simple Data "AI Internal" in DatEdit
00660260 219071 1.16.1 Units.dat - Map String 2 228 Simple 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.
00660428 219185 1.16.1 Units.dat - Build Time 2 228 Simple Data
006605F0 219299 1.16.1 Units.dat - Start Direction 1 228 Simple 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
006606D8 219357 1.16.1 Units.dat - Brood War Flag 1 228 Simple Data
006607C0 219415 1.16.1 Units.dat - Subunit 1 2 228 Simple Data 228 = None
00660988 219529 1.16.1 Units.dat - Transport Space Provided 1 228 Simple Data
00660A70 219587 1.16.1 Units.dat - Dat Requirement Offset 2 228 Simple Data u16 index of 0x00514178 (address is 0x00514178 + 2*this value)
00660C38 219701 1.16.1 Units.dat - Subunit 2 2 228 Simple Data Unused.
00660E00 219815 1.16.1 Units.dat - Shield Amount 2 228 Simple Data
00660FC8 219929 1.16.1 Units.dat - Movement Flags 1 228 Simple Data
006610B0 219987 1.16.1 Units.dat - Construction Animation 4 228 Simple Data 0 = No graphics
00661440 220215 1.16.1 Units.dat - "Yes" Sound End 2 106 Simple Data sfxdata.dat end index
00661518 220269 1.16.1 Units.dat - Staredit Availability Flags 2 228 Simple 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
006616E0 220383 1.16.1 Units.dat - Air Weapon 1 228 Simple Data Weapons.dat index
006617C8 220441 1.16.1 Units.dat - Unit Dimensions 8 228 Simple Data Struct: 2 bytes - Left Dimension (from center) 2 bytes - Up Dimension 2 bytes - Right Dimension 2 bytes - Down Dimension
00661EE8 220897 1.16.1 Units.dat - "Pissed" Sound End 2 106 Simple Data sfxdata.dat end index
00661FC0 220951 1.16.1 Units.dat - "Ready" Sound 2 106 Simple Data sfxdata.dat index
00662098 221005 1.16.1 Units.dat - Right-click Action 1 228 Simple 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)
00662180 221063 1.16.1 Units.dat - Size Class 1 228 Simple Data 0 = Independent 1 = Small 2 = Medium 3 = Large
00662268 221121 1.16.1 Units.dat - Human Init Action 1 228 Simple Data "Human Idle Action" in DatEdit Orders.dat index
00662350 221179 1.16.1 Units.dat - Max HP 4 228 Simple Data Lowest byte is fractional part (*256)
006626E0 221407 1.16.1 Units.dat - Addon Placement 4 96 Simple Data Struct: 2 bytes - X Pos 2 bytes - Y Pos Only exists for buildings (First entry is 106 Command Center)
00662860 221503 1.16.1 Units.dat - Building Dimensions 4 228 Simple 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.
00662BF0 221731 1.16.1 Units.dat - "What" Sound End 2 228 Simple Data sfxdata.dat end index
00662DB8 221845 1.16.1 Units.dat - Seek Range 1 228 Simple 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.
00662EA0 221903 1.16.1 Units.dat - Computer Init Action 1 228 Simple Data "Computer Idle" in DatEdit Orders.dat index
00662F88 221961 1.16.1 Units.dat - Portrait 2 228 Simple Data 0xFFFF = No Portrait
00663150 222075 1.16.1 Units.dat - Elevation Level 1 228 Simple Data Elevation Level
00663238 222133 1.16.1 Units.dat - Sight Range 1 228 Simple 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);
00663320 222191 1.16.1 Units.dat - Attack Unit Order 1 228 Simple Data Orders.dat reference
00663408 222249 1.16.1 Units.dat - Build Score 2 228 Simple Data
006635D0 222363 1.16.1 Units.dat - Armor Upgrade ID 1 228 Simple Data Upgrades.dat index
006636B8 222421 1.16.1 Units.dat - Ground Weapon 1 228 Simple Data weapons.dat reference
006637A0 222479 1.16.1 Units.dat - Group Flags 1 228 Simple 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);
00663888 222537 1.16.1 Units.dat - Mineral Cost 2 228 Simple Data
00663A50 222651 1.16.1 Units.dat - Attack Move Order ID 1 228 Simple Data Orders.dat index
00663B38 222709 1.16.1 Units.dat - "Pissed" Sound Start 2 106 Simple Data sfxdata.dat start index
00663C10 222763 1.16.1 Units.dat - "Yes" Sound Start 2 107 Simple Data sfxdata.dat start index
00663CE8 222817 1.16.1 Units.dat - Supply Used 1 228 Simple Data Value here is twice what you see in-game. (Hence why 2 Zerglings = 1 Underling)
00663DD0 222875 1.16.1 Units.dat - Rank/Sublabel 1 228 Simple 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).
00663EB8 222933 1.16.1 Units.dat - Kill Score 2 228 Simple Data Kill Score
00664080 223047 1.16.1 Units.dat - Advanced Flags 4 228 Simple 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(?)
00664410 223275 1.16.1 Units.dat - Transport Space Required 1 228 Simple Data
006644F8 223333 1.16.1 Units.dat - Graphics (Flingy ID) 1 228 Backed By Code flingy.dat index
006645E0 223391 1.16.1 Units.dat - Max Hits (Ground) 1 228 Simple Data This value is for statistics purposes only (?)
006646C8 223449 1.16.1 Units.dat - Supply Provided 1 228 Simple Data The value is twice what you see in-game.
006647B0 223507 1.16.1 Units.dat - Has Shields 1 228 Simple 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);
00664898 223565 1.16.1 Units.dat - Idle Order 1 228 Simple Data "Return to Idle" in DatEdit Orders.dat index
00664980 223623 1.16.1 Units.dat - Infestation Unit 2 96 Simple Data Only exists for buildings (First entry is 106 Command Center)
00664A40 223671 1.16.1 Orders.dat - Unknown 4 1 189 Simple Data
00664B00 223719 1.16.1 Orders.dat - Use Weapon Targetting 1 189 Simple Data
00664BC0 223767 1.16.1 Orders.dat - Unknown 12 1 189 Simple Data
00664C80 223815 1.16.1 Orders.dat - Unknown 11 1 189 Simple Data
00664D40 223863 1.16.1 Orders.dat - Animation 1 189 Simple 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
00664E00 223911 1.16.1 Orders.dat - Energy Technology 1 189 Simple Data Techdata.dat index for energy
00664EC0 223959 1.16.1 Orders.dat - Highlight Button ID 2 189 Simple Data cmdicons.grp frame index or 0xFFFF for none.
00665040 224055 1.16.1 Orders.dat - Can Be Interrupted 1 189 Simple Data
00665100 224103 1.16.1 Orders.dat - Unknown 7 1 189 Simple Data
006651C0 224151 1.16.1 Orders.dat - Unknown 9 1 189 Simple Data
00665280 224199 1.16.1 Orders.dat - Label ID 2 189 Simple Data Doesn't do anything.
00665400 224295 1.16.1 Orders.dat - Obscured Order 1 189 Simple Data Orders.dat index "Order to be run if the target is obscured by the Fog-of-War."
006654C0 224343 1.16.1 Orders.dat - Can Be Obstructed? 1 189 Simple Data
00665580 224391 1.16.1 Orders.dat - Dat Reqs Offset 2 189 Simple Data
00665700 224487 1.16.1 Orders.dat - Can Be Queued 1 189 Simple Data
006657C0 224535 1.16.1 Orders.dat - Unknown 5 1 189 Simple Data
00665880 224583 1.16.1 Orders.dat - Targeting 1 189 Simple Data Weapons.dat index "Weapon used by the order to determine the targeting rules, if "Use Weapon Targeting" is checked."
00665940 224631 1.16.1 Orders.dat - Order is Secondary 1 189 Simple Data Order goes in bSecondaryOrderID instead of bMainOrderID.
00665A00 224679 1.16.1 Orders.dat - Unknown 3 1 189 Simple Data
00665AC0 224727 1.16.1 Sprites.dat - Selection Circle 1 387 Read Only Images.dat reference starting at index 561. Starts on sprites.dat entry 130.
00665C48 224825 1.16.1 Sprites.dat - Visible 1 517 Simple Data
00665E50 224955 1.16.1 Sprites.dat - HP Bar Length 1 387 Read Only Starts on Sprites.dat ID 130.
00665FD8 225053 1.16.1 Sprites.dat - Selection Vertical Offset 1 387 Read Only Starts on Sprites.dat ID 130.
00666160 225151 1.16.1 Sprites.dat - Image Index 2 517 Backed By Code Images.dat index
00666570 225411 1.16.1 Sprites.dat - Unknown 1 517 Simple Data Unknown flag.
00666778 225541 1.16.1 Images.dat - Landing Dust Overlay 4 999 Read Only images.tbl lo? index
00667718 226541 1.16.1 Images.dat - Draw If Cloaked 1 999 Simple Data
00667B00 226791 1.16.1 Images.dat - Special Overlay 4 999 Read Only Images.tbl lo? index
00668AA0 227791 1.16.1 Images.dat - GRP File 4 999 Read Only Images.tbl grp index
00669A40 228791 1.16.1 Images.dat - Drawing Function (Remapping Table) 1 999 Simple 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
00669E28 229041 1.16.1 Images.dat - Remapping Table (Drawing Function) 1 999 Backed 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 (?)
0066A210 229291 1.16.1 Images.dat - Damage Overlay 4 999 Read Only Images.tbl lof pointer
0066B1B0 230291 1.16.1 Images.dat - Attack Overlay 4 999 Read Only images.dat lo? index
0066C150 231291 1.16.1 Images.dat - Clickable 1 999 Simple Data
0066C538 231541 1.16.1 Images.dat - Sheilds Overlay 4 999 Read Only None = 0 Small = 133 Medium = 2 Large = 184
0066D4D8 232541 1.16.1 Images.dat - Use Full Iscript 1 999 Simple Data
0066D8C0 232791 1.16.1 Images.dat - Lift-off Dust Overlay 4 999 Read Only images.tbl lod index
0066E860 233791 1.16.1 Images.dat - Graphics Turns 1 999 Simple Data
0066EC48 234041 1.16.1 Images.dat - Iscript ID 4 999 Backed By Code Iscript.bin ID
0068C104 264040 1.16.1 AIScript pointer 4 1 Backed By Code
0068C108 264041 1.16.1 BWScript pointer 4 1 Backed By Code
0068C144 264056 1.16.1 Send Message Type 4 1 Simple Data Can be used to check if send message box is open (At Least 1)
0068C14C 264058 1.16.1 Current Button Set 4 1 Simple 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).
0068C1F4 264100 1.16.1 TranWire.grp pointer 4 1 Backed 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
0068C1FC 264102 1.16.1 GrpWire.grp Pointer 4 1 Backed 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
0068C204 264104 1.16.1 Wirefram.grp Pointer 4 1 Backed 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
0068C448 264249 1.16.1 Sfxdata.dat - minVolume 1 1144 Unknown 4
0068C8C0 264535 1.16.1 Sfxdata.dat - Flags 1 1144 Value is some combination of: - 1 preload - 2 unitSpeech - 16 oneAtTime - 32 neverPreempt
0068CD38 264821 1.16.1 Sfxdata.dat - lengthAdjust 2 1144 Unknown 3
0068D628 265393 1.16.1 Sfxdata.dat - Priority 1 1144 Unknown 1
0068DAA0 265679 1.16.1 Sfxdata.dat - Sound file 4 1144 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.
006C9858 326973 1.16.1 Flingy.dat - Movement Control 1 209 Simple Data 0 = Flingy.dat Control 1 = Partially Mobile, Weapon 2 = Iscript.bin Control
006C9930 327027 1.16.1 Flingy.dat - Halt Distance 4 209 Simple Data Measured in pixels*256
006C9C78 327237 1.16.1 Flingy.dat - Acceleration 2 209 Simple Data Measured in pixels-per-frame.
006C9E20 327343 1.16.1 Flingy.dat - Turn Radius 1 209 Simple Data
006C9EF8 327397 1.16.1 Flingy.dat - Top Speed 4 209 Simple Data Measured in pixels-per-frame, but written as "Speed*(320/3)"
006CA240 327607 1.16.1 Flingy.dat - Unused 1 209 Simple Data Unused in DatEdit
006CA318 327661 1.16.1 Flingy.dat - Sprite Index 2 209 Simple Data Sprites.dat index
006CA94D 328058 1.16.1 Displayed HP 4 1 The current HP of the selected unit.
006CA9F0 328099 1.16.1 Unit being Produced 4 1 Unsupported Set value to 1 to detect any unit currently being trained on any building. Not fully tested.
006CDDC0 331415 1.16.1 Mouse Button State 4 1 Simple Data 2: Left button pressed. 8: Right button pressed. 32: Middle button pressed Edited by PereC, 2021.03.29
006CDDC4 331416 1.16.1 Mouse Coordinate X 4 1 Simple Data Relative to the screen.
006CDDC8 331417 1.16.1 Mouse Coordinate Y 4 1 Simple Data Relative to the screen.
006CDFD4 331548 1.16.1 Game Speed 4 1 Backed 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.
006CDFE0 331551 1.16.1 Music Volume 4 1 Backed By Code 0-100 for music volume Note: SC:R no longer uses this address. The value is always 0 in SC:R.
006CDFE4 331552 1.16.1 Digital Volume 4 1 Backed By Code 0-100 for sound volume Note: SC:R no longer uses this address. The value is always 0 in SC:R.
006D0C68 334401 1.16.1 Creep Tile Backup Buffer 4 1 Unsupported 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.
006D0C6C 334402 1.16.1 Tile Buffer Height 4 1 Unsupported Copy of Map Height?
006D0C70 334403 1.16.1 Tile Function Pointers 4 4 Unsupported 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
006D0E80 334535 1.16.1 Creep Overlay Buffer 4 1 Unsupported Pointer to u8 flags relating to the creep overlay for each map tile.
006D0E84 334536 1.16.1 Active Tile Buffer 4 1 Unsupported Pointer to u16 array of active map tiles.
006D0F08 334569 1.16.1 Tile Buffer Width 4 1 Unsupported Copy of Map Width
006D0F30 334579 1.16.1 Replay Header 633 1 Read Only https://github.com/bwapi/bwapi/blob/master/bwapi/BWAPI/Source/BW/Replay.h
006D0F30 334579 1.16.1 Replay Header - Is Broodwar 1 1 Read Only
006D0F31 334579 1.16.1 Replay Header - Frame Count 4 1 Read Only
006D0F35 334580 1.16.1 Replay Header - Campaign ID 2 1 Read Only
006D0F37 334580 1.16.1 Replay Header - Command ID 1 1 Read Only struct gameSeed
006D0F38 334581 1.16.1 Replay Header - Rand Seed 4 1 Read Only struct gameSeed. Unix time on game start.(The number of seconds that have elapsed since 00:00:00 UTC on 1 January 1970)
006D0F3C 334582 1.16.1 Replay Header - Player Bytes 1 8 Read Only struct gameSeed
006D0F44 334584 1.16.1 Replay Header - Unknown_0 4 1 Read Only struct networkGameHeader
006D0F48 334585 1.16.1 Replay Header - 해당 플레이어 이름 25 1 Read Only 게임 제목? "This is the name that the host has chosen when creating the game." struct networkGameHeader
006D0F60 334591 1.16.1 Replay Header - Game flags 4 1 Read Only struct networkGameHeader
006D0F64 334592 1.16.1 Replay Header - MapSize 2 2 Read Only 2Byte MapWidth 2Byte MapHeight struct networkGameHeader
006D0F68 334593 1.16.1 Replay Header - Active Player Count 1 1 Read Only struct networkGameHeader
006D0F69 334593 1.16.1 Replay Header - Available Slots 1 1 Read Only struct networkGameHeader
006D0F6A 334593 1.16.1 Replay Header - Game Speed 1 1 Read Only struct networkGameHeader
006D0F6B 334593 1.16.1 Replay Header - Game State 1 1 Read Only struct networkGameHeader
006D0F6C 334594 1.16.1 Replay Header - Game Type 1 1 Read Only struct networkGameHeader
006D0F6D 334594 1.16.1 Replay Header - Unknown_1 1 1 Read Only struct networkGameHeader
006D0F6E 334594 1.16.1 Replay Header - Game Subtype 2 1 Read Only struct networkGameHeader
006D0F70 334595 1.16.1 Replay Header - Seed (Unused) 4 1 Read Only struct networkGameHeader
006D0F74 334596 1.16.1 Replay Header - Tileset 2 1 Read Only struct networkGameHeader
006D0F76 334596 1.16.1 Replay Header - Autosaved 1 1 Read Only struct networkGameHeader
006D0F77 334596 1.16.1 Replay Header- Computer Player Count 1 1 Read Only struct networkGameHeader
006D0F78 334597 1.16.1 Replay Header - Game Name 1 25 Read Only struct networkGameHeader
006D0F91 334603 1.16.1 Replay Header - Map Name 1 24 Read Only struct networkGameHeader
006D0FB1 334611 1.16.1 Replay Header - Game Type 1 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FB2 334611 1.16.1 Replay Header - Unknown 1 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FB3 334611 1.16.1 Replay Header - Subtype 2 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FB5 334612 1.16.1 Replay Header - Subtype display 2 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FB7 334612 1.16.1 Replay Header - Subtype Label 2 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FB9 334613 1.16.1 Replay Header - Victory Condition 1 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FBA 334613 1.16.1 Replay Header - Resource Type 1 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FBB 334613 1.16.1 Replay Header - Use Standard Units 1 1 Read Only boolean struct networkGameHeader.gameTemplateInfo
006D0FBC 334614 1.16.1 Replay Header - Fog of War (Unused) 1 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FBD 334614 1.16.1 Replay Header - Starting Units 1 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FBE 334614 1.16.1 Replay Header - Use Fixed Positions 1 1 Read Only boolean struct networkGameHeader.gameTemplateInfo
006D0FBF 334614 1.16.1 Replay Header - Usage Restriction Flags 1 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FC0 334615 1.16.1 Replay Header - Allies Allowed 1 1 Read Only boolean struct networkGameHeader.gameTemplateInfo
006D0FC1 334615 1.16.1 Replay Header - Teams 1 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FC2 334615 1.16.1 Replay Header - Cheats 1 1 Read Only boolean struct networkGameHeader.gameTemplateInfo
006D0FC3 334615 1.16.1 Replay Header - Tournament Mode 1 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FC4 334616 1.16.1 Replay Header - Victory Condition Value 4 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FC8 334617 1.16.1 Replay Header - Resources Value 4 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FCC 334618 1.16.1 Replay Header - Unused value 4 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FD0 334619 1.16.1 Replay Header - Extra 1 1 Read Only struct networkGameHeader.gameTemplateInfo
006D0FD1 334619 1.16.1 Replay Header - Player Entries 36 12 Read 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.
006D1181 334727 1.16.1 Replay Header - Player Colors 4 8 Read Only
006D11A1 334735 1.16.1 Replay Header - Player Force Data 1 8 Read Only
006D1200 334759 1.16.1 iscript.bin pointer 4 1 Backed By Code
006D1238 334773 1.16.1 stat_txt.tbl pointer 4 1 Backed By Code
006D1260 334783 1.16.1 Tile Flags Pointer 4 1 Backed 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
006D5A6C 339394 1.16.1 Cheat Flags 4 1 Simple 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.
006D5BB0 339475 1.16.1 Music ID 4 1 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.
006D5BBE 339478 1.16.1 Minimap State 4 1 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
006D5EC8 339673 1.16.1 CV5 Pointer 4 1 Backed By Code
1505E670 86724803 1.16.1 Storm Graphics Palette 4 256 Read Only
19046138 103477109 1.16.1 Battle.snp Join Channel 4 1 Simple Data
1904613C 103477110 1.16.1 Battle.snp Join Channel 4 1 Simple Data