Main Page

Welcome to StarCraft AI
The StarCraft BroodWar Resource for custom AIs

This is a collaborative wiki, so please, if you want to contribute send an email to Alberto Uriarte (admin[at] with your desired username. Public registration is disabled to avoid spam bots and vandalism.


BWAPI extensions

Using other programming languages

  • Java: BWMirror, JNIBWAPI
  • GOAL. An AI language on top of BWAPI, under development by University of Delft, Netherlands.
  • Python: CyBW

Other tools


  • For development
    • Visual Studio VC++ 2013 Express is enough.
    • If you want to compile old bots (VS2008 projects) with VS2013. Install the Windows SDK 7.1. Remember you should uninstall first any version of Visual C++ 2010 redistributable, otherwise Windows SDK setup will fail.
  • For running BWAPI Bots on non-development machines (e.g Tournaments clients) you only need the VC 2013 Redistributable Package




Currently there are 61 bots listed.

  • 27 Terran bots
  • 22 Protoss bots
  • 14 Zerg bots
  • 1 using BWAPI 4.1.2
  • 4 using BWAPI 4.0.1
  • 32 using BWAPI 3.7.4
  • 5 using BWAPI 3.6.1
  • 3 using BWAPI 3.0.3
  • 2 using BWAPI 2.8.0
  • 2 using BWAPI 2.6.1
  • 38 using C++
  • 10 using Java
  • 2 using C♯
  • 1 using Clojure


Various venues host remote competitive AI competitions that allow developers from around the world to participate. These venues are often held annually and will sometimes offer prizes to the winners. It is also a great way to test your bot's capabilities.

StarCraft: Brood War's Mechanics

Map making/editing

  • Basics of UMS Mapping
  • Guide Map Making
  • CHK Format
  • Unused Unprotector 2 StarCraft Tool and the source code.
  • Scmdraft map editor. Under downloads, you will obtain version 0.8.0, but this is not the latest version. Instead, you will want to look at the news page and get ScmDraft 2 (0.8.1), located in the temp folder.
  • Unfortunately, the author did not update the version number in the build, so it incorrectly says 0.8.0, making things quite confusing. You will need this if you want to be able to create Extended Unit Death (EUD) triggers (the Memory condition will be enabled when creating a trigger).
  • The downside of using EUDs is that the memory offsets change with every version of StarCraft; I doubt that will be a problem these days though.
  • EUD Database, with EUDTrig to find unit offsets. With EUDTrig, you need to copy comctl32.ocx (alternate location) into the current directory. You need ArtMoney for monitoring the process and finding the hex values in the first place. Then, see this exported wiki article.
  • Staredit Network's Wiki, and the StarEdit forums. Be sure to change the theme after login, as I find the default one annoying.
  • You have 256 switches that you can use to set/reset game state. Death counters are an alternative, and they trigger at a rate of 1 death count = 84 milliseconds.
  • Only Players 1 through 8 can own triggers. Neutral (Player 12) cannot, and such triggers will be ignored.
  • How to make 4 players share minerals + gas. Lousy resource, but hard to find anything on this.
  • It looks like a lot of the good EUD's are patched. EUDEnable. This post clears up exactly what is being read (4 bytes at a time). Many of the tutorials simply assume that all other bytes are 0, which is often incorrect.
  • Using Death Count Timers instead of waiting.
  • How damage works, such as for burning buildings.
  • And overview of working with MPQ archives. Use MPQDraft to patch MPQ files. For reading and editing the contents, use MPQ Editor.
  • StarEdit FAQ. StarCraft Mapmaker's Guide.
  • StarCraft unit sizes. You can use DatEdit (StarEdit tab) to get the Placement box in pixels. The pixels for a Terran Dropship, for example, are height 37 and width 49. Since scmdraft is zero indexed, be sure to enter your locations for bottom and right as one less than what it actually is. In this example, bottom would be 36 and right would be 48.
  • Frequently Asked Questions

Starcraft in south korea.jpg