Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
,May not relevant: queueable (everything is queueable). May not be important: AbilSetId - marine stim, marauder stim. Stuff omitted: transient. Stuff that may be important: cost, range, Alignment, targetfilters.
Used in:
Stable ID.
Catalog name of the ability.
Catalog index of the ability.
Name used for the command card. May not always be set.
A human friendly name when the button name or link name isn't descriptive.
Hotkey. May not always be set.
This ability id may be represented by the given more generic id.
If true, the ability may be used by this set of mods/map.
Determines if a point is optional or required.
Can be cast in the minimap.
Autocast can be set.
Requires placement to construct a building.
Estimation of the footprint size. Need a better footprint.
Placement next to an existing structure, e.g., an add-on like a Tech Lab.
Range unit can cast ability without needing to approach target.
Used in:
Does not require a target.
Requires a target position.
Requires a unit to target. Given by position using feature layers.
Requires either a target point or target unit.
Requires either a target point or no target. (eg. building add-ons)
Used in:
,Populated if Raw interface is enabled.
Populated if Feature Layer interface is enabled.
Not implemented. Populated if Render interface is enabled.
Populated if Feature Layer or Render interface is enabled.
Chat messages as a player typing into the chat channel.
Populated for actions in ResponseObservation. The game loop on which the action was executed.
Used in:
Used in:
Used in:
Used in:
Used in:
Equivalent to number hotkey. Replaces current selection with control group.
Equivalent to Control + number hotkey. Sets control group to current selection.
Equivalent to Shift + number hotkey. Adds current selection into control group.
Equivalent to Control + Alt + number hotkey. Sets control group to current selection. Units are removed from other control groups.
Equivalent to Shift + Alt + number hotkey. Adds current selection into control group. Units are removed from other control groups.
Used in:
Only populated when using raw interface.
Used in:
Used in:
Click on icon
Shift Click on icon
Control Click on icon.
Control+Shift Click on icon.
Used in:
Not implemented. Value must be [1, 15]
Used in:
Used in:
Distance between camera and terrain. Larger value zooms out camera. Defaults to standard camera distance if set to 0.
Used in:
0 to observe "Everyone"
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
, ,Used in:
Used in:
Used in:
Equivalent to click with no modifiers. Replaces selection with single idle worker.
Equivalent to shift+click. Adds single idle worker to current selection.
Equivalent to control+click. Selects all idle workers.
Equivalent to shift+control+click. Adds all idle workers to current selection.
Used in:
(message has no fields)
Used in:
Used in:
Used in:
Simulates a click on the minimap to move the camera.
Used in:
Equivalent to shift+command.
Used in:
Used in:
Equivalent to normal click. Changes selection to unit.
Equivalent to shift+click. Toggle selection of unit.
Equivalent to control+click. Selects all units of a given type.
Equivalent to shift+control+click. Selects all units of a given type.
Used in:
Eventually this should not be an array, but a single field (multiple would be cheating).
Equivalent to shift+drag. Adds units to selection.
Used in:
Used in:
Used in:
Used in:
,Used in:
,Used in:
,Used in:
Stable ID.
Used in:
Range: [0.0, 1.0]
Used in:
TODO: Change to cargo size
Used in:
Used when no other category is configured in game data
Used in:
Used in:
Under the fog, so unknown whether it's cloaked or not.
Used in:
, , ,Used in:
Used in:
Display debug boxes on screen.
Used in:
Issue various useful commands to the game engine.
Used in:
Useful only for single-player "curriculum" maps.
Used in:
Used in:
Used in:
Used in:
Default if nothing is set. The current player admits defeat.
Used in:
Used in:
Display debug lines on screen.
Used in:
World space line.
Used in:
Used in:
Used in:
Display debug spheres on screen.
Used in:
Used in:
Used in:
Display debug text on screen.
Used in:
Text to display.
Virtualized position in 2D (the screen is 0..1, 0..1 for any resolution).
Position in the world.
Pixel height of the text. Defaults to 8px.
Used in:
,Used in:
Fully visible
Dimmed version of unit left behind after entering fog of war
Fully hidden
Building that hasn't started construction.
Used in:
Effect may impact multiple locations. (eg. Lurker attack)
Used in:
Stable ID.
Used in:
Used in:
uint8. Terrain height. World space units of [-200, 200] encoded into [0, 255].
uint8. 0=Hidden, 1=Fogged, 2=Visible, 3=FullHidden
1-bit. Zerg creep.
1-bit. Protoss power.
uint8. Participants: [1, 15] Neutral: 16
int32. Unique identifier for type of unit.
1-bit. Selected units.
int32.
uint8. Ratio of current health to max health. [0%, 100%] encoded into [0, 255].
int32.
uint8. Ratio of current energy to max energy. [0%, 100%] encoded into [0, 255].
int32.
uint8. Ratio of current shields to max shields. [0%, 100%] encoded into [0, 255].
uint8. See "Alliance" enum in raw.proto. Range: [1, 4]
uint8. Density of units overlapping a pixel, anti-aliased. [0.0, 16.0f] encoded into [0, 255].
uint8. Count of units overlapping a pixel.
uint8. Visuals of persistent abilities. (eg. Psistorm)
1-bit. Whether the unit here is a hallucination.
1-bit. Whether the unit here is cloaked. Hidden units will show up too, but with less details in other layers.
1-bit. Whether the unit here is a blip.
int32. One of the buffs applied to this unit. Extras are ignored.
uint8. Ratio of buff remaining. [0%, 100%] encoded into [0, 255].
1-bit. Whether the unit here is active.
uint8. How far along the building is building something. [0%, 100%] encoded into [0, 255].
1-bit. Whether a building can be built here.
1-bit. Whether a unit can walk here.
1-bit. Whether the unit here is a placeholder building to be constructed.
Used in:
uint8. Terrain height. World space units of [-200, 200] encoded into [0, 255].
uint8. 0=Hidden, 1=Fogged, 2=Visible, 3=FullHidden
1-bit. Zerg creep.
1-bit. Area covered by the camera.
uint8. Participants: [1, 15] Neutral: 16
uint8. See "Alliance" enum in raw.proto. Range: [1, 4]
1-bit. Selected units.
1-bit. Shows 'UnitAttacked' alert location.
1-bit. Whether a building can be built here.
1-bit. Whether a unit can walk here.
Cheat layers, enable with SpatialCameraSetup.allow_cheating_layers.
int32. Unique identifier for type of unit.
Used in:
, , , ,Number of bits per pixel; 8 bits for a byte etc.
Dimension in pixels.
Binary data; the size of this buffer in bytes is width * height * bits_per_pixel / 8.
Used in:
, ,Interface options
Omit to disable.
Omit to disable.
By default cloaked units are completely hidden. This shows some details.
By default burrowed units are completely hidden. This shows some details for those that produce a shadow.
Return placeholder units (buildings to be constructed), both for raw and feature layers.
By default raw actions select, act and revert the selection. This is useful if you're playing simultaneously with the agent so it doesn't steal your selection. This inflates APM (due to deselect) and makes the actions hard to follow in a replay. Setting this to true will cause raw actions to do select, act, but not revert the selection.
Changes the coordinates in raw.proto to be relative to the playable area. The map_size and playable_area will be the diagonal of the real playable area.
Used in:
Used in:
A map can be specified either by a file path or the data of the .SC2Map file. If you provide both, it will play the game using map_data and store map_path into the replay. (260 character max)
Used in:
1 byte visibility layer.
1 bit creep layer.
Used in:
Used in:
Abilities available in the selection. Enabled if in this list, disabled otherwise.
Populated if Raw interface is enabled.
Populated if Feature Layer interface is enabled.
Populated if Render interface is enabled.
Populated if Feature Layer or Render interface is enabled.
Used in:
Used in:
Fog of war, creep and so on. Board stuff that changes per frame.
Used in:
Used in:
Used in:
Not implemented
Not implemented
Used in:
Used in:
Used in:
,Identifier that will be used to reference this player. SC2 will always assign playerIds starting from 1 in standard Melee maps. This may not be true in custom maps.
Only populated for your player or when watching replay
Used in:
Used in:
TODO: Add to UI observation?
Used in:
,Used in:
Only used for a computer player.
Used in:
,Point on the game board, 0..255. Note: bottom left of the screen is 0, 0.
Used in:
, , , , , , , , , ,Point on the game board, 0..255. Note: bottom left of the screen is 0, 0.
Used in:
, , , , , ,Point on the screen/minimap (e.g., 0..64). Note: bottom left of the screen is 0, 0.
Used in:
, , ,Used in:
Game right now needs two internal ports to establish a multiplay game on the local host.
Used in:
Used in:
build_queue ONLY gives information about units that are being produced. Use production_queue instead to see both units being trained as well as research in the queue.
Used in:
, , ,Used in:
Used in:
Will always be filled.
Only if it's targeting a unit.
Screen space rectangular area.
Used in:
,Game Setup
Send to host to initialize game.
Send to host and all clients for game to begin.
Single player only. Reinitializes the game with the same player setup.
Start playing a replay.
Multiplayer only. Disconnects from a multiplayer game, equivalent to surrender.
Saves game to an in-memory bookmark.
Loads from an in-memory bookmark.
Terminates the application.
During Game
Static data about the current game and map.
Snapshot of the current game state.
Executes an action for a participant.
Executes an action for an observer.
Advances the game simulation.
Data about different gameplay elements. May be different for different games.
Additional methods for inspecting game state.
Generates a replay.
Execute a particular trigger through a string interface
Other.
Returns metadata about a replay file. Does not load the replay.
Returns directory of maps that can be played on.
Saves binary map data to the local temp directory.
Debugging
Network ping for testing connection.
Display debug information and execute debug actions.
-----------------------------------------------------------------------------
Used in:
-----------------------------------------------------------------------------
Used in:
(message has no fields)
----------------------------------------------------------------------------- If successful, puts the game into the status: init_game. The next expected request should be RequestJoinGame. Can also quit (exit).
Used in:
Local .SC2Map file
Map published to BattleNet
Sets the pseudo-random seed for the game.
If set, the game plays in real time.
-----------------------------------------------------------------------------
Used in:
-----------------------------------------------------------------------------
Used in:
-----------------------------------------------------------------------------
Used in:
(message has no fields)
----------------------------------------------------------------------------- If successful, puts the game into the status: in_game. Will be able to request actions, observations and step the game.
Used in:
Join as participant
Join as observer
This is limited to what is specified in RequestCreateGame, but you can request less information if you want.
Do not set in the single-player case. This is the port a server will use.
Do not set in the single-player case. These are the ports clients will use to initialize communication.
Currently only a singe client is supported.
deprecated
Use this to set the player's name to something other than autogenerated name.
Both game creator and joiner should provide the ip address of the game creator in order to play remotely. Defaults to localhost.
-----------------------------------------------------------------------------
Used in:
(message has no fields)
-----------------------------------------------------------------------------
Used in:
-----------------------------------------------------------------------------
Used in:
In realtime the request will only return once the simulation game loop has reached this value. When not realtime this value is ignored.
-----------------------------------------------------------------------------
Used in:
-----------------------------------------------------------------------------
Used in:
(message has no fields)
Used in:
Ignores requirements like food, minerals and so on.
--------------------------------------------------------------------------------------------------
Used in:
--------------------------------------------------------------------------------------------------
Used in:
Not required
--------------------------------------------------------------------------------------------------
Used in:
-----------------------------------------------------------------------------
Used in:
(message has no fields)
-----------------------------------------------------------------------------
Used in:
(message has no fields)
-----------------------------------------------------------------------------
Used in:
(message has no fields)
-----------------------------------------------------------------------------
Used in:
Limitation: might fail if the replay file is currently loaded.
Ensure the data and binary are downloaded if this is an old version replay.
-----------------------------------------------------------------------------
Used in:
(message has no fields)
----------------------------------------------------------------------------- Copies map data into the path specified.
Used in:
Path the game process will write to, relative to the temp directory. (260 character max)
Binary map data of a .SC2Map.
-----------------------------------------------------------------------------
Used in:
(message has no fields)
-----------------------------------------------------------------------------
Used in:
Overrides the map path stored in the replay.
Allow RequestSaveReplay from a replay. Useful for truncating a replay, or restoring tracker.events.
-----------------------------------------------------------------------------
Used in:
Number of game loops to simulate for the next frame.
Debugging
If command is missing, this will contain the error. Otherwise this will contain any warnings.
Should be sent back with all responses.
Used in:
This will only contain locally cached BattleNet maps. To download all ladder maps, log in and queue into a ladder match. To download any other map, play a custom game on that map.
Used in:
All the maps in the "Maps/" directory.
All the maps in the BattleNet cache.
Used in:
Used in:
Multiplayer is not supported in the current build.
Used in:
Used in:
(message has no fields)
Used in:
Populated if Raw interface is enabled.
Used in:
Used in:
Multiplayer specific.
Multiplayer is not supported in the current build for the requested features.
Used in:
(message has no fields)
Used in:
Used in:
Used in:
Actions this player did since the last Observation.
Equivalent of UI "red text" errors.
Only populated if the game ended during this step.
Used in:
(message has no fields)
Used in:
Used in:
Used in:
Used in:
Used in:
0 if no path exists
-----------------------------------------------------------------------------
Used in:
(message has no fields)
-----------------------------------------------------------------------------
Used in:
(message has no fields)
Used in:
(message has no fields)
Used in:
Used in:
The defaultRestartGameLoops is specified to be (1<<18) by default
Used in:
This will occur once the simulation_loop is greater then defaultRestartGameLoops
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Max simulation_loop is (1<<19) before "end of time" will occur The "end of time" is classified as the maximum number of game loops or absolute game time representable as a positive fixed point number. When we reach the "end of time", permanently pause the game and end the game for all.
Used in:
Used in:
Note: check score_type to know whether this is a melee score or curriculum score
Used in:
map generated score (from curriculum maps with special scoring)
summation of in-progress and current units/buildings value + minerals + vespene
Used in:
Sum of time any available structure able to produce a unit is not. The time stacks, as in, three idle barracks will increase idle_production_time three times quicker than just one.
Sum of time any worker is not mining. Note a worker building is not idle and three idle workers will increase this value three times quicker than just one.
Sum of minerals and vespene spent on completed units.
Sum of minerals and vespene spent on completed structures.
Sum of minerals and vespene of units, belonging to the opponent, that the player has destroyed.
Sum of minerals and vespene of structures, belonging to the opponent, that the player has destroyed.
Sum of minerals collected by the player.
Sum of vespene collected by the player.
Estimated income of minerals over the next minute based on the players current income. The unit is minerals per minute.
Estimated income of vespene over the next minute based on the players current income. The unit is vespene per minute.
Sum of spent minerals at the moment it is spent. For example, this number is incremented by 50 the moment an scv is queued in a command center. It is decremented by 50 if that unit is canceled.
Sum of spent vespene at the moment it is spent. For example, this number is incremented by 50 when a reaper is queued but decremented by 50 if it is canceled.
Sum of food, or supply, utilized in the categories above.
Sum of enemies catagories destroyed in minerals.
Sum of enemies catagories destroyed in vespene.
Sum of lost minerals for the player in each category.
Sum of lost vespene for the player in each category.
Sum of the lost minerals via destroying the players own units/buildings.
Sum of the lost vespene via destroying the players own units/buildings.
Sum of used minerals for the player in each category for each existing unit or upgrade. Therefore if a unit died worth 50 mierals this number will be decremented by 50.
Sum of used vespene for the player in each category. Therefore if a unit died worth 50 vespene this number will be decremented by 50.
Sum of used minerals throughout the entire game for each category. Unliked used_minerals, this value is never decremented.
Sum of used vespene throughout the entire game for each category. Unliked used_vespene, this value is never decremented.
Sum of damage dealt to the player's opponent for each category.
Sum of damage taken by the player for each category.
Sum of health healed by the player. Note that technology can be healed (by queens) or repaired (by scvs).
Recent raw APM.
Recent effective APM.
Used in:
Screen dimensions.
Used in:
, ,Used in:
Below are only relevant for feature layers.
Set the screen camera width in world units.
Crop minimap to the playable area.
Return unit_type on the minimap, and potentially other cheating layers.
Used in:
Width and height of the map.
1 bit bitmap of the pathing grid.
1 byte bitmap of the terrain height.
1 bit bitmap of the building placement grid.
The playable cells.
Possible start locations for players.
Used in:
Game has been launch and is not yet doing anything.
Create game has been called, and the host is awaiting players.
In a single or multiplayer game.
In a replay.
Game has ended, can still request game info, but ready for a new game.
Application is shutting down.
Should not happen, but indicates an error if it occurs.
Used in:
Fields are populated based on type/alliance
Unique identifier for a unit
Range: [0.0, 1.0]
Visible and within the camera frustrum.
Detected by sensor tower
Building is training/researching (ie animated).
Not populated for snapshots
Unit is your own or detected as a hallucination.
Not populated for enemies
How long a buff or unit is still around (eg mule, broodling, chronoboost).
How long the buff or unit is still around (eg mule, broodling, chronoboost).
Used in:
, , ,Range: [0.0, 1.0]
Used in:
Progress of train abilities. Range: [0.0, 1.0]
Used in:
Stable ID.
Catalog name of the unit.
If true, the ability may be used by this set of mods/map.
Number of cargo slots it occupies in transports.
The ability that builds this unit.
Range unit reveals vision.
Other units that satisfy the same tech requirement.
The morphed variant of this unit.
Structure required to build this unit. (Or any with the same tech_alias)
Whether tech_requirement is an add-on.
Values include changes from upgrades
Used in:
Stable ID.
Used in:
Used in:
Number of hits per attack. (eg. Colossus has 2 beams)
Time between attacks.
Used in: