A powerful library for interacting with the Starblast Modding API
npm install starblast-modding```
npm install starblast-modding
yarn add starblast-modding
pnpm add starblast-modding
(along with available events to listen on)
`js
const { Client } = require("starblast-modding");
const game = new Client({
cacheECPKey: true,
cacheEvents: false,
cacheOptions: true
});
game.setRegion("Asia");
game.setECPKey("12345-67890");
game.setOptions({
map_name: "Test"
});
game.aliens.add();
game.start({
region: "Asia",
ECPKey: "09876-54321",
options: {
//map_size: 20,
custom_map: "",
root_mode: "team",
friendly_colors: 5,
radar_zoom: 1,
station_size: 3
}
}).then(function (link, options) {
console.log("Promise fulfilled: " + link);
game.log(link);
}).catch(function (error) {
console.log("Promise rejected: " + error.message)
});
game.on('error', function(error) {
console.log("In-game error: " + error.message);
// Invalid laser rate....
});
game.on('log', function(...args) {
console.log("In-game log:", ...args);
// Custom game log goes here
})
game.on('start', function(link, options) {
console.log("Mod started with link: "+ link);
});
game.on('tick', function (step) {
if (step % 30 == 0) for (let ship of game.ships) {
ship.set({invulnerable: 120});
ship.setCrystals(120).setGenerator(300).setHealing(true)
}
});
game.on('shipRespawn', function(ship) {
ship.setX(0).setY(0);
console.log("Ship respawn: " + ship.name);
console.log("Event: " + game.timer.step);
});
game.on('shipSpawn', function(ship) {
ship.setX(0).setY(0);
console.log("Ship spawn: "+ship.name);
});
game.on('shipDestroy', function(ship, killer) {
});
game.on('shipDisconnect', function(ship) {
});
game.on('alienCreate', function(alien) {
console.log("Alien created")
});
game.on('alienDestroy', function(alien, killer) {
});
game.on('asteroidCreate', function(asteroid) {
});
game.on('asteroidDestroy', function(asteroid, killer) {
});
game.on('collectibleCreate', function(collectible) {
});
game.on('collectiblePick', function(collectible, ship) {
});
game.on('stationDestroy', function(station) {
console.log("Destroyed:", station)
});
game.on('stationModuleDestroy', function(station_module) {
console.log("Destroyed:", station_module)
});
game.on('stationModuleRepair', function(station_module) {
console.log("Repaired:", station_module)
});
game.on('UIComponentClick', function (component, ship) {
});
game.on('stop', function() {
console.log("Mod stopped");
})
``$3
#### From command linebash`
npx starblast-modding [options] [mod_code]npx starblast-modding --help
To view list of options use
For example:
`bash`
npx starblast-modding -r Asia -k 12345-67890 'echo("Hello World!")'`
You can also load from configuration file:bash`
npx starblast-modding -c ./config.json`
Example configuration JSON file:json
{
"key": "12345-67890",
"region": "Asia",
"sourcemode": "local",
"sourcepath": "./modcode.js",
"watch": true,
"interval": 5000,
"timeout": 5000,
"compression": false,
"strict": false,
"silent": false,
"extended": false
}
``
#### Using NodeJS
Here is an example for running SDC code pulled from Neuronality's site:js
const { BrowserClient } = require("starblast-modding");
let container = new BrowserClient({
cacheECPKey: true,
cacheOptions: true
});
container.setRegion("Asia");
container.setECPKey("12345-67890");
container.loadCodeFromExternal("https://starblast.data.neuronality.com/mods/sdc.js");
container.start();
let game = container.getGame();
let node = container.getNode();
``