Skip to content
Pure Java BWAPI Client implementation
Branch: develop
Clone or download
Latest commit 3e6b7ed Jan 18, 2020

Build StatusTotal alertsLanguage grade: Java


Pure Java bwapi 4.4.0 client implementation backed by N00byEdge's JavaBWAPIBackend idea and automated by Bytekeeper.

Also contains a modified version of the pure Java BWEM implementation from BWAPI4J.


  • Have a similar (Java) interface to BWMirror to make porting BWMirror bots easy without all the DLL and JNI hassle and overhead.
  • Stay as updated as possible with the BWAPI releases.


  • No dependency on external DLL's.
  • At least 5x faster compared to BWMirror for primitives as it directly reads the memory mapped client file. Even faster for BWAPI objects as it also avoids type marshalling
  • Supports both 32 and 64 bit Java (e.g. deeplearning4j requires 64 bit Java which bwmirror doesn't support).
  • BWEM instead of BWTA as map analyser.


  • A fake BWTA is provided for easier porting from BWMirror, but it translates BWTA calls to their respective BWEM calls, so specific Regions/Chokepoints etc. may differ.



Add JitPack as a repository:


Add JBWAPI as a dependency:



Add JitPack as a repository:

allprojects {
    repositories {
        maven { url '' }

Add JBWAPI as a dependency:

dependencies {
    implementation 'com.github.JavaBWAPI:JBWAPI:1.1.1'


Alternatively add the latest .jar from the releases page to your project.


mvnw.cmd package

or if you already have maven installed

mvn package


A simple Hello World bot is as easy as

import bwapi.*;

class HelloBot extends DefaultBWListener {
	private BWClient bwClient;

	public void onFrame() {
		Game game = bwClient.getGame();
		game.drawTextScreen(100, 100, "Hello World!");

	public static void main(String[] args) {
		HelloBot bot = new HelloBot();
		bot.bwClient = new BWClient(bot);


The API documentation can be found here.

You can also ask any further questions on the SSCAIT Discord


If you are a just starting out with bot development, it might be helpful to follow the tutorial!

You can’t perform that action at this time.