s2client-api-typescript
v1.2.2
Published
The StarCraft 2 API for TypeScript
Downloads
5
Readme
s2client-api-typescript
This is a package that allows you to communicate with the StarCraft 2 API with a bot written in TypeScript.
It uses protobuf-ts to convert the official protocol files to TypeScript interfaces, enums, and serialization methods.
This project is similar to @node-sc2/core and @node-sc2/proto, which are written in JavaScript and use pbjs
to convert the official proto files to JSON (instead of TypeScript).
Usage
This library provides several things:
1) The StarCraft2Client
Class
StarCraft 2 exposes its API via a WebSocket server built-in to the game. (It is only available if you launch the game with some specific flags.) The StarCraft2Client
class is an abstraction that can be used to easily send messages over the WebSocket connection.
For example:
import { launchStarCraft2, StarCraft2Client } from "s2client-api-typescript";
main().catch((err) => {
console.error("Failed to run the program:", err);
});
async function main() {
await launchStarCraft2();
const client = new StarCraft2Client();
await client.connect(); // Establishes a WebSocket connection with the game.
const pingResponse = await client.ping();
console.log(pingResponse);
}
2) StarCraft 2 API Interfaces and Enums
The official StarCraft 2 protocol files contain the interfaces and enums that are used in the API. These are automatically converted to TypeScript with the protobuf-ts tool and are exported from this library your use.
import { Race } from "s2client-api-typescript";
const MY_RACE = Race.Protoss;
3) Helper Functions
When writing your bot, this library offers some helper functions that can get you up and running faster:
launchStarCraft2
getMapPath
The helper functions are described in more detail in the documentation; see below.
Docs
See the automatically generated TypeDoc documentation for every export that this library provides.