StarCraft II Client - protocol definitions used to communicate with StarCraft II.

Overview

Overview

The StarCraft II API is an interface that provides full external control of StarCraft II.

This API exposes functionality for developing software for:

  • Scripted bots.
  • Machine-learning based bots.
  • Replay analysis.
  • Tool assisted human play.

The API is available in the retail Windows and Mac clients. There are also Linux clients available at the download links below.

Contents

Official

  • Protocol
  • Reference C++ implementation
    • Library designed for building a scripted bots using the API.
    • Repository
  • StarCraft II Linux Packages
  • Maps
    • Maps from the 1v1 ladder and other custom maps.
    • Download
  • Replays
    • Replay packs of 1v1 ladder games.
    • Download

Community

  • PySC2
    • DeepMind's python environment wrapper.
    • Repository
  • CommandCenter
    • A robust architecture for quickly developing Starcraft AI bots.
    • Repository
  • Bot Ladders
    • SC2AI - Unofficial community organized ladder.
    • AI Arena - Unofficial community organized ladder.
  • Community Wiki
    • Unofficial wiki of documentation and tutorials.
    • Website
  • Discord Server
    • Unofficial server for discussing AI questions and projects.
    • Invite Link
  • Facebook Group
    • Unofficial community page.
    • Website

Downloads

To access the linux packages, map packs and replay packs, you must agree to the AI and Machine Learning License

The files are password protected with the password 'iagreetotheeula'.

By typing in the password ‘iagreetotheeula’ you agree to be bound by the terms of the AI and Machine Learning License

Linux Packages

Map Packs

This is the previous version of the Ladder 2017 Season 3 Map Pack

Replay Packs

Installing Map and Replay Packs

All additional game data should be extracted within the installation directory.

The default installation directories are:

  • Windows: C:\Program Files (x86)\StarCraft II\
  • Mac: /Applications/StarCraft II/

On Linux, the installation directory is the folder you extracted the linux package into.

The folder structure is the same accross all platforms. However you may need to create some folders if they are missing.

Standard folder layout:

  • StarCraft II/
    • Battle.net/
    • Maps/
    • Replays/
    • SC2Data/
    • Versions/

Map Packs

  • Extract the zip file directly into the "Maps" folder.
  • In the API, a map can be specified as either an absolute path or its relative path inside this "Maps" folder.

Replay Packs

  • Replace the "Battle.net" and "Replays" folders with the ones in the zip file.
  • In the API, a replay must be specified as an absolute path.

Stable IDs

These define the action mappings from ability ids in the protobuf api to the internals of the game. They also define some general ids that combine multiple abilities that have a similar semantic meaning (eg various forms of burrow, cancel, lift/land, etc). The stableid.json is updated occasionally with the game, but can also be updated manually by downloading the stableid.json from here and placing it in the root of your StarCraft II directory.

Comments
  • Chat Interaction

    Chat Interaction

    I'm currently building a mini game for which I need the ability for agents to both send chat messages as well as to receive them.

    For sending chat message, I noticed the chat field in the Action message. However, I can't figure out how to correctly use it. If I send a request of

    action {
      actions {
        chat {
          channel: Broadcast
          message: "Chat Test Message"
        }
      }
    }
    

    The response is always an error

    action {
      result: Error
    }
    status: in_game
    

    However, there seems to be no way to get more information about a request error from the API, so I don't know what I'm doing wrong here.

    If I send the chat field together with a normal action (for example, to select a rectangle)

    action {
      actions {
        action_feature_layer {
          unit_selection_rect {
            selection_screen_coord {
              p0 {
                x: 0
                y: 0
              }
              p1 {
                x: 63
                y: 63
              }
            }
            selection_add: false
          }
        }
        chat {
          channel: Broadcast
          message: "Chat Test Message"
        }
      }
    }
    

    the game responds with

    action {
      result: Success
    }
    status: in_game
    

    I can see in-game that the selection action is performed, however, no message is displayed in the chat.

    Am I using the API in the wrong way or is chat sending functionality not yet implemented on the client? I'm testing this on Windows, by the way.

    Furthermore, regarding the API for receiving chat messages, I have also never observed that the chat field in the ReponseObservations message was set.

    As a side note, trying to use DebugChat with a request a la

    debug {
      debug {
        chat {
          message: "Debug Chat Test Message"
        }
      }
    }
    

    seems to have no effect on the game.

    opened by lschmelzeisen 3
  • generating protos with protoc

    generating protos with protoc

    I'm trying to generate the protos from a git submodule in my project - running the following command errors out.

    $ protoc -I s2client-proto/s2clientprotocol --rust_out src/protos --proto_path s2client-proto/s2clientprotocol s2client-proto/s2clientprotocol/*.proto
    s2clientprotocol/common.proto: File not found.
    data.proto: Import "s2clientprotocol/common.proto" was not found or had errors.
    data.proto:82:12: "SC2APIProtocol.Race" seems to be defined in "common.proto", which is not imported by "data.proto".  To use it here, please add the necessary import.
    

    I've also tried created a symbolic link and executing this command but get a lot of "file not found" and "is not defined".

    $ protoc -I ./s2clientprotocol --rust_out ./src/protos --proto_path ./s2clientprotocol ./s2clientprotocol/sc2api.proto
    

    Any advise would greatly be appreciated.

    opened by ttdonovan 3
  • Update Download Link URLs in Readme.md

    Update Download Link URLs in Readme.md

    https://security.googleblog.com/2019/10/no-more-mixed-messages-about-https_3.html "https:// pages can only load secure https:// subresources. " is preventing the 1-click download links, since they use http and Github uses https (if I understand correctly). Updated links to https. Working as intended in my fork.

    Current work around is to click the link directly from the webpage source code (hover over link, right-click, select 'inspect' ... click on the link after "href=". Or to right-click the link and select 'copy link address' and post that in browser URL address bar.

    opened by Nickrader 2
  • Morph archon with raw interface.

    Morph archon with raw interface.

    It is supposed to select two high templar before morphing archon. But I don't see select action in ActionRaw. Is it possible to morph archon with just raw interface?

    opened by linshiyx 2
  • GameSettings' map name always get overwritten

    GameSettings' map name always get overwritten

    Starting off with the given examples, passing in map name never seemed to work.

    Observations:

    1. There seems to be no public getter to retrieve the map name inside GameSetting of the coordinator.
    2. StartGame() and CreateGame() both takes const string& as param. Use empty string as default argument. Will always overwrite the map name with the passed in value.

    With these two combined, I'm in a funny scenario. After passing in a map name through command-line argument, I can't read the map name from the coordinator and use it as param for Start/CreateGame().

    opened by T-Jin 2
  • Fatal error occurred: 'e_errorIdDamagedRepairable'

    Fatal error occurred: 'e_errorIdDamagedRepairable'

    Hitting this on 4.10.0-33-generic #37~16.04.1-Ubuntu SMP

     ~/StarCraftII/Versions/Base55958/SC2_x64 -listen 127.0.0.1 -port 9999                                                                                                                                       1 ↵
    Version: B55958 (SC2.3.16)
    Build: Jul 31 2017 13:19:41
    Command Line: '"/home/oars/StarCraftII/Versions/Base55958/SC2_x64" -listen 127.0.0.1 -port 9999'
    Starting up...
    Startup Phase 1 complete
    Fatal error encountered!
    Backtrace:
    /home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x653068]
    /home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x653aa0]
    /home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x6534f2]
    /home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x5f19e3]
    /home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x19348d5]
    /home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x5ed44d]
    /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f8b9c70f830]
    /home/oars/StarCraftII/Versions/Base55958/SC2_x64[0x5ed2d9]
    Error condition code: '9'
    Error suffix: 'Error'
    Error preface: 'A fatal error occurred:'
    Error failure: 'e_errorIdDamagedRepairable'
    Error details: '"AppErrors.txt"
    NGDP:"B56787" != Exe:"B55958"'
    Error description: 'AppErrors.txt'
    [1]    16626 abort (core dumped)  ~/StarCraftII/Versions/Base55958/SC2_x64 -listen 127.0.0.1 -port 9999
    

    Any suggestions or further logs I can provide?

    opened by oars 2
  • Add ability to set player names in bot games

    Add ability to set player names in bot games

    Currently when I add a bot to a game, all the names are set to 'foo[xxxx]'. It would be good if I could set the name to a custom value to easier see which agent is controlling which player.

    opened by Cryptyc 2
  • Client version management

    Client version management

    In light of major upcoming changes, I'm curious if there's a way to manage client versions and if yes, how will it affect client <-> API <-> pysc2 communication.

    My concern is that otherwise these massive changes essentially void some research efforts (i.e. trained agents will break due to key units missing or behaving differently).

    opened by inoryy 2
  • Chat is not working, sending messages results in error

    Chat is not working, sending messages results in error

    Scenario

    Game is created with two participants, a participant (my bot) and an easy computer. My bot joins to the game. Game info, game data and the first observation are requested. Before calling step, my bot sends a chat message gl hf.

    I also tried sending the message only after a few frames, or sending it between every step, but the results were same.

    Result

    Expected: ActionResult.Success Actual: ActionResult.Error

    Game itself doesn't display any chat messages send by my bot. Player can still send messages normally by opening the chat, typing in the message and sending it.

    Messages

    Request:

    action {
      actions {
        chat {
          channel: Team
          message: "gl hf"
        }
      }
    }
    

    Response:

    action {
      result: Error
    }
    status: in_game
    
    opened by Dentosal 2
  • How can I quickly restart the game when I am multiple players?

    How can I quickly restart the game when I am multiple players?

    Multiple players means multiple processes, so the only way i know is leave game and re-join the game is through controllers, but it will costs 3-4 seconds, which is too slow for reinforcement learning training. Anybody know how to slove this?

    opened by dooliu 1
  • custom barracks

    custom barracks

    await self.build(UnitTypeId.BARRACKS, near=cc.position.towards(self.game_info.map_center, 8)) build a custom barracks.

        ability_id.py
    
    
        BARRACKSTECHLABMORPH_BUILDREACTORBARRACKS = 5001
        BARRACKSTECHLABMORPH_TECHREACTOR2 = 5002
        BARRACKSADDONS=5003
        BARRACKSTECHREACTOR=5004
        BARRACKSLIFTOFF=5005
    
    2021-03-18 23:14:59.626 | INFO     | sc2.protocol:_execute:72 - Client status changed to Status.launched (was None)
    2021-03-18 23:14:59.762 | INFO     | sc2.protocol:_execute:72 - Client status changed to Status.launched (was None)
    2021-03-18 23:14:59.764 | INFO     | sc2.controller:create_game:36 - Creating new game
    2021-03-18 23:14:59.766 | INFO     | sc2.controller:create_game:37 - Map:     沙漠风暴经典版work
    2021-03-18 23:14:59.768 | INFO     | sc2.controller:create_game:38 - Players: Bot WorkerRushBot(Terran), Bot CyclonePush(Terran)
    2021-03-18 23:14:59.773 | INFO     | sc2.protocol:_execute:72 - Client status changed to Status.init_game (was Status.launched)
    2021-03-18 23:15:16.007 | INFO     | sc2.protocol:_execute:72 - Client status changed to Status.in_game (was None)
    2021-03-18 23:15:16.010 | INFO     | sc2.main:_play_game:328 - Player 2 - Bot CyclonePush(Terran)
    2021-03-18 23:15:16.063 | INFO     | sc2.protocol:_execute:72 - Client status changed to Status.in_game (was None)
    2021-03-18 23:15:16.068 | INFO     | sc2.main:_play_game:328 - Player 1 - Bot WorkerRushBot(Terran)
    2021-03-18 23:15:17.427 | ERROR    | sc2.main:_play_game_ai:297 - AI step threw an error
    Traceback (most recent call last):
    
      File "d:/python-sc2/python-sc2\1.py", line 45, in <module>
        main()
        └ <function main at 0x00000225409363A0>
    
      File "d:/python-sc2/python-sc2\1.py", line 32, in main
        sc2.run_game(
        │   └ <function run_game at 0x00000225603B9D30>
        └ <module 'sc2' from 'd:\\python-sc2\\python-sc2\\sc2\\__init__.py'>
    
      File "d:\python-sc2\python-sc2\sc2\main.py", line 596, in run_game
        result = asyncio.get_event_loop().run_until_complete(
                 │       └ <built-in function get_event_loop>
                 └ <module 'asyncio' from 'C:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\\li...
    
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 603, in run_until_complete
        self.run_forever()
        │    └ <function ProactorEventLoop.run_forever at 0x000002254116E9D0>
        └ <ProactorEventLoop running=True closed=False debug=False>
    
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\windows_events.py", line 316, in run_forever
        super().run_forever()
    
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 570, in run_forever
        self._run_once()
        │    └ <function BaseEventLoop._run_once at 0x00000225410DF040>
        └ <ProactorEventLoop running=True closed=False debug=False>
    
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 1859, in _run_once
        handle._run()
        │      └ <function Handle._run at 0x000002254104ADC0>
        └ <Handle <TaskWakeupMethWrapper object at 0x0000022560683E20>(<Future finished result=None>)>
    
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\events.py", line 81, in _run
        self._context.run(self._callback, *self._args)
        │    │            │    │           │    └ <member '_args' of 'Handle' objects>
        │    │            │    │           └ <Handle <TaskWakeupMethWrapper object at 0x0000022560683E20>(<Future finished result=None>)>
        │    │            │    └ <member '_callback' of 'Handle' objects>
        │    │            └ <Handle <TaskWakeupMethWrapper object at 0x0000022560683E20>(<Future finished result=None>)>
        │    └ <member '_context' of 'Handle' objects>
        └ <Handle <TaskWakeupMethWrapper object at 0x0000022560683E20>(<Future finished result=None>)>
    
      File "d:\python-sc2\python-sc2\sc2\main.py", line 479, in _host_game
        result = await _play_game(
                       └ <function _play_game at 0x00000225603B9790>
    
      File "d:\python-sc2\python-sc2\sc2\main.py", line 333, in _play_game
        result = await _play_game_ai(client, player_id, player.ai, realtime, step_time_limit, game_time_limit)
                       │             │       │          │      │   │         │                └ None
                       │             │       │          │      │   │         └ None
                       │             │       │          │      │   └ False
                       │             │       │          │      └ <__main__.WorkerRushBot object at 0x0000022540B84370>
                       │             │       │          └ <sc2.player.Bot object at 0x0000022540B346A0>
                       │             │       └ 1
                       │             └ <sc2.client.Client object at 0x0000022560616850>
                       └ <function _play_game_ai at 0x00000225603B9700>
    
    > File "d:\python-sc2\python-sc2\sc2\main.py", line 247, in _play_game_ai
        await ai.on_step(iteration)
              │  │       └ 0
              │  └ <function WorkerRushBot.on_step at 0x0000022540B94310>
              └ <__main__.WorkerRushBot object at 0x0000022540B84370>
    
      File "d:/python-sc2/python-sc2\1.py", line 22, in on_step
        if self.can_afford(UnitTypeId.BARRACKS):
           │    │          │          └ UnitTypeId.BARRACKS
           │    │          └ <enum 'UnitTypeId'>
           │    └ <function BotAI.can_afford at 0x000002255FB1B310>
           └ <__main__.WorkerRushBot object at 0x0000022540B84370>
    
      File "d:\python-sc2\python-sc2\sc2\bot_ai.py", line 737, in can_afford
        cost = self.calculate_cost(item_id)
               │    │              └ UnitTypeId.BARRACKS
               │    └ <function BotAI.calculate_cost at 0x000002255FB1B280>
               └ <__main__.WorkerRushBot object at 0x0000022540B84370>
    
      File "d:\python-sc2\python-sc2\sc2\bot_ai.py", line 699, in calculate_cost
        cost = self._game_data.calculate_ability_cost(unit_data.creation_ability)
               │    │          │                      │         └ <property object at 0x000002255FAF9720>
               │    │          │                      └ UnitTypeData(name=Barracks)
               │    │          └ <functools._lru_cache_wrapper object at 0x000002255FA5F790>
               │    └ <sc2.game_data.GameData object at 0x0000022560623FD0>
               └ <__main__.WorkerRushBot object at 0x0000022540B84370>
    
      File "d:\python-sc2\python-sc2\sc2\game_data.py", line 37, in calculate_ability_cost
        assert isinstance(ability, AbilityData), f"C: {ability}"
                          │        └ <class 'sc2.game_data.AbilityData'>
                          └ None
    
    AssertionError: C: None
    2021-03-18 23:15:17.656 | ERROR    | sc2.main:_play_game_ai:298 - Error: C: None
    2021-03-18 23:15:17.658 | ERROR    | sc2.main:_play_game_ai:299 - Resigning due to previous error
    2021-03-18 23:15:17.661 | INFO     | sc2.main:_play_game:335 - Result for player 1 - Bot WorkerRushBot(Terran): Defeat
    2021-03-18 23:15:18.747 | INFO     | sc2.protocol:_execute:72 - Client status changed to Status.ended (was Status.in_game)
    2021-03-18 23:15:18.790 | INFO     | sc2.main:_play_game:335 - Result for player 2 - Bot CyclonePush(Terran): Victory
    2021-03-18 23:15:19.239 | INFO     | sc2.protocol:_execute:72 - Client status changed to Status.launched (was Status.in_game)
    2021-03-18 23:15:19.243 | INFO     | sc2.protocol:_execute:72 - Client status changed to Status.quit (was Status.launched)
    2021-03-18 23:15:19.245 | INFO     | sc2.sc2process:_close_connection:231 - Closing connection at 23501...
    2021-03-18 23:15:19.249 | INFO     | sc2.sc2process:kill_all:37 - kill_switch: Process cleanup for 2 processes
    2021-03-18 23:15:19.251 | INFO     | sc2.sc2process:_clean:240 - Cleaning up...
    2021-03-18 23:15:19.767 | INFO     | sc2.sc2process:_clean:273 - Cleanup complete
    2021-03-18 23:15:19.769 | INFO     | sc2.sc2process:_clean:240 - Cleaning up...
    2021-03-18 23:15:20.784 | INFO     | sc2.sc2process:_clean:273 - Cleanup complete
    2021-03-18 23:15:20.788 | INFO     | sc2.protocol:__request:47 - Cannot receive: Game has already ended.
    2021-03-18 23:15:20.792 | INFO     | sc2.sc2process:_close_connection:231 - Closing connection at None...
    2021-03-18 23:15:20.795 | INFO     | sc2.sc2process:kill_all:37 - kill_switch: Process cleanup for 2 processes
    2021-03-18 23:15:20.797 | INFO     | sc2.sc2process:_clean:240 - Cleaning up...
    2021-03-18 23:15:20.799 | INFO     | sc2.sc2process:_clean:273 - Cleanup complete
    2021-03-18 23:15:20.801 | INFO     | sc2.sc2process:_clean:240 - Cleaning up...
    2021-03-18 23:15:20.804 | INFO     | sc2.sc2process:_clean:273 - Cleanup complete
    Traceback (most recent call last):
      File "d:/python-sc2/python-sc2/1.py", line 45, in <module>
        main()
      File "d:/python-sc2/python-sc2/1.py", line 32, in main
        sc2.run_game(
      File "d:\python-sc2\python-sc2\sc2\main.py", line 596, in run_game
        result = asyncio.get_event_loop().run_until_complete(
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\asyncio\base_events.py", line 616, in run_until_complete
        return future.result()
      File "d:\python-sc2\python-sc2\sc2\main.py", line 557, in _join_game
        await client.quit()
      File "d:\python-sc2\python-sc2\sc2\protocol.py", line 87, in quit
        await self._execute(quit=sc_pb.RequestQuit())
      File "d:\python-sc2\python-sc2\sc2\protocol.py", line 68, in _execute
        response = await self.__request(sc_pb.Request(**kwargs))
      File "d:\python-sc2\python-sc2\sc2\protocol.py", line 36, in __request
        await self._ws.send_bytes(request.SerializeToString())
      File "C:\Users\wwwfe\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\aiohttp\client_ws.py", line 155, in send_bytes
        await self._writer.send(data, binary=True, compress=compress)
      File "C:\Users\wwwfe\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\aiohttp\http_websocket.py", line 685, in send
        await self._send_frame(message, WSMsgType.BINARY, compress)
      File "C:\Users\wwwfe\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\aiohttp\http_websocket.py", line 598, in _send_frame
        raise ConnectionResetError("Cannot write to closing transport")
    ConnectionResetError: Cannot write to closing transport```
    opened by fengmao31 1
  • DebugGameState gas does nothing

    DebugGameState gas does nothing

    Hello, after looking what DebugGameState can do noticed that gas = 8 does nothing 🤷‍♂️ also there is no such call in reference cpp implementations. Wondering if this is something well known or not and may be it should be removed from proto at least to not confuse anyone

    opened by mac2000 0
  • Fatal error occurred: 'e_errorIdMemoryUnknown'

    Fatal error occurred: 'e_errorIdMemoryUnknown'

    Hello, I run the following code on Ubuntu 4.4.0-201-generic x86_64 python -m smac.examples.random_agents

    then I get the following error 'e_errorIdMemoryUnknown'

    `Version: B75689 (SC2.4.10) Build: Aug 12 2019 17:16:57 Command Line: '"/home/StarCraftII/Versions/Base75689/SC2_x64" -listen 127.0.0.1 -port 22463 -dataDir /home/StarCraftII/ -tempDir /tmp/sc-04tstjhs/' Starting up... Startup Phase 1 complete ValidateExternalAddr Fatal error encountered! Backtrace: /home/StarCraftII/Versions/Base75689/SC2_x64[0x65e838]

    /home/StarCraftII/Versions/Base75689/SC2_x64[0x65f270] /home/StarCraftII/Versions/Base75689/SC2_x64[0x65ecc2] /home/StarCraftII/Versions/Base75689/SC2_x64[0x6664b5] /home/StarCraftII/Versions/Base75689/SC2_x64[0x665374] /home/StarCraftII/Versions/Base75689/SC2_x64[0x98c6d5] /home/StarCraftII/Versions/Base75689/SC2_x64[0x9a02fc] /home/StarCraftII/Versions/Base75689/SC2_x64[0x9bf7fd] /home/StarCraftII/Versions/Base75689/SC2_x64[0x1e7e714] /home/StarCraftII/Versions/Base75689/SC2_x64[0x1e8ae48] /home/StarCraftII/Versions/Base75689/SC2_x64[0x1e88a1d] /home/StarCraftII/Versions/Base75689/SC2_x64[0x1e9add5] /home/StarCraftII/Versions/Base75689/SC2_x64[0x1ee7997] /home/StarCraftII/Versions/Base75689/SC2_x64[0x1ee546b] /home/StarCraftII/Versions/Base75689/SC2_x64[0x1ee0a3e] /home/StarCraftII/Versions/Base75689/SC2_x64[0x1e9a5ac] /home/StarCraftII/Versions/Base75689/SC2_x64[0x1e83845] /home/StarCraftII/Versions/Base75689/SC2_x64[0x1e835ac] /home/StarCraftII/Versions/Base75689/SC2_x64[0x6cd9a0] /home/StarCraftII/Versions/Base75689/SC2_x64[0xaf45f8] /home/StarCraftII/Versions/Base75689/SC2_x64[0x5fc7a8] /home/StarCraftII/Versions/Base75689/SC2_x64[0x1b946e8] /home/StarCraftII/Versions/Base75689/SC2_x64[0x5f855c] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f1d85b07840] /home/StarCraftII/Versions/Base75689/SC2_x64[0x5f7f59] Error condition code: '9' Error suffix: 'Error' Error preface: 'A fatal error occurred:' Error failure: 'e_errorIdMemoryUnknown' Error details: '"AppErrors.txt" (0x000000000A500B38)' Error description: 'AppErrors.txt' ValidateExternalAddr`

    Any suggestions ?

    opened by CrazySssst 1
  • Missing buff for carrying rich vespene gas

    Missing buff for carrying rich vespene gas

    When a worker carries a resource it gets a buff corresponding to what it's carrying:

    https://github.com/Blizzard/s2client-proto/blob/5b42959a40a45cca290ce427b5522a35c8a59178/stableid.json#L24352-L24371

    However, there is no corresponding buff for rich vespene gas, and workers carrying rich gas don't have any buffs.

    opened by SoupCatcher 0
  • WSL as a way to load SC2

    WSL as a way to load SC2

    I am looking to see if there is a way to tell pysc2 running on an instance of Ubunto 20.04 through windows wsl2 to use the SC2 binary I have on windows to process the replays.

    opened by HDavidEspinosa 0
Releases(1.2.0)
  • 1.2.0(Nov 14, 2017)

    Rendered Interface

    • Full fidelity rendered images of the game.
    • Provides both observation and action interface.
    • Supported on Windows/Mac/Linux.

    Save/Load

    • Adds request to create a savepoint and later rewind time back to the savepoint.
    • Includes alternate faster implementation for minigame maps.

    Replay API

    • Automated service for getting ladder replays.
    • Documentation can be found here: https://github.com/Blizzard/s2client-proto/tree/master/samples/replay-api

    Other features:

    • Realtime mode support for replays.
    • Observer actions.
    • Support for sending/recieving chat messages.
    • Size option to DebugText
    • Exposed max shield/energy values.
    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Sep 1, 2017)

    This release updates the protocol with the new features added in the 3.17 patch.

    Additional Unit Data

    • Whether a protoss structure is powered
    • Whether a pylon has fast warp in

    Additional Unit Type Data

    • Tech requirements
    • Build/Train time
    • Ability that creates the unit
    • Morphed variants of the unit
    • Food used and provided
    • Race it belongs to
    • If it is a mineral patch or vespene geyser

    Additional Upgrade Data

    • Resource cost
    • Research time
    • Ability that researches the upgrade
    Source code(tar.gz)
    Source code(zip)
Owner
Blizzard Entertainment
Blizzard Entertainment
Wifi-jammer - Continuously perform deauthentication attacks on all detectable stations

wifi-jammer Continuously perform deauthentication attacks on all detectable stat

Leonardo de Araujo 14 Nov 03, 2022
RollerScanner — Fast Port Scanner Written On Python

RollerScanner RollerScanner — Fast Port Scanner Written On Python Installation You should clone this repository using: git clone https://github.com/Ma

68 Nov 09, 2022
A python shell / chat bot for XMPP and cloud services

XMPP_Shell_Bot A python shell / chat bot for XMPP and cloud services, designed for penetration testers to bypass network filters. To better understand

Abdulkareem Aldeek 1 Jan 09, 2022
Light, simple RPC framework for Python

Agileutil是一个Python3 RPC框架。基于微服务架构,封装了rpc/http/orm/log等常用组件,提供了简洁的API,开发者可以很快上手,快速进行业务开发。

16 Nov 22, 2022
Best discord webhook spammer using proxy (support all proxy type)

Best discord webhook spammer using proxy (support all proxy type)

Iтѕ_Ѵιcнч#1337 25 Nov 01, 2022
Test - Python project for Collection Server and API Server

QProjectPython Collection Server 와 API Server 를 위한 Python 프로젝트 입니다. [FastAPI참고]

1 Jan 03, 2022
With Py-Autocrack you can crack WPA2 networks in no time.

With Py-Autocrack you can crack WPA2 networks in no time. All based on Aircrack-ng and Crunch.

Paul - FloatDesign 1 Dec 10, 2021
This script aims to make the dynamic public ip of your local server, public.

EZ DDNS CLOUDFLARE This script aims to make the dynamic ip of your local server, public. It does this by regularly updating cloudflare's dns record. B

3 Feb 13, 2022
Whoisss is a website information gatharing Tool.

Whoisss Whoisss is a website information gatharing Tool. You can cse it to collect information about website. Usage apt-get update apt-get upgrade pkg

Md. Nur habib 2 Jan 23, 2022
Takes a file of hosts or domains and outputs the IP address of each host/domain in the file.

Takes a file of hosts or domains and outputs the IP address of each host/domain in the file. Installation $ git clone https://github.com/whoamisec75/i

whoami security 2 May 10, 2022
BaseSpec is a system that performs a comparative analysis of baseband implementation and the specifications of cellular networks.

BaseSpec is a system that performs a comparative analysis of baseband implementation and the specifications of cellular networks. The key intuition of BaseSpec is that a message decoder in baseband s

SysSec Lab 35 Dec 06, 2022
Search ports in multiples hosts

Search Port ✨ Multiples Searchs ✨ Create list hosts Create list targets Start Require Python 3.10.0+. python main.py Struture Function Directory load_

Tux#3634 7 Apr 29, 2022
Easy-to-setup bot, ChatOps project for handling telegram chat logging over docker-compose services, being runned as one of them.

Easy-to-setup bot, ChatOps project for handling telegram chat logging over docker-compose services, being runned as one of them.

Rashid 7 Aug 08, 2022
A simple software which can use to make a server in local network

home-nas it is simple software which can use to make a server in local network, it has a web site on it which can use by multipale system, i use nginx

R ansh joseph 1 Nov 10, 2021
Roadster - Distance to Closest Road Feature Server

Roadster: Distance to Closest Road Feature Server Milliarium Aerum, the zero of

Textualization Software Ltd. 4 May 23, 2022
The module that allows the collection of data sampling, which is transmitted with WebSocket via WIFI or serial port for CSV file.

The module that allows the collection of data sampling, which is transmitted with WebSocket via WIFI or serial port for CSV file.

Nelson Wenner 2 Apr 01, 2022
Arp Spoofer using Python 3.

ARP Spoofer / Wifi Killer By Auax Run: Run the application with the following command: python3 spoof.py -t target_ip_address -lh host_ip_address I

Auax 6 Sep 15, 2022
A repository to spoof ARP table of any devices and successfully establish Man in the Middle(MITM) attack using Python3 in Linux

arp_spoofer A repository to spoof ARP table of any devices and successfully establish Man in the Middle(MITM) attack using Python3 in Linux Usage: git

Surya Das N 1 Oct 30, 2021
🌐 Tools for Networking

🌐 Network Tools Tools for Networking This repository contains the tools needed to make networking easier. Make sure to download all of the requiremen

Tornaido 1 Jan 15, 2022
Netwalk is a Python library to discover, parse, analyze and change Cisco switched networks

Netwalk is a Python library born out of a large remadiation project aimed at making network device discovery and management as fast and painless as possible.

38 Nov 07, 2022