/api/combat-simulator/bootstrap
/api/combat-simulator/bootstrap
Returns everything the in-game combat simulator needs to build a battle: every player and NPC ship stat line, which ship ids count as pirates, the selectable pirate zones, and the caller’s own bonus availability.
Method
GET
Response Structure
{
"ownProfile": {
"bonusesAvailable": true,
"carrierOperationsLevel": 1,
"leadership": {
"available": true,
"name": "Ika (Leadership Vessel)",
"currentHull": 659,
"maxHull": 1242,
"shield": 163,
"attack": 285
}
},
"playerShips": [
{
"id": 1,
"key": "probe",
"name": "Probe",
"hp": 30,
"shieldHp": 8,
"attack": 0,
"weaponType": null,
"armorType": "light",
"shipSize": "small",
"shipClass": "recon",
"imageKey": "probe",
"reportKey": "probe",
"sortOrder": 1,
"isNpc": false
}
],
"npcShips": [
{
"id": -10001,
"key": "scout",
"name": "Pirate Scout",
"hp": 100,
"shieldHp": 0,
"attack": 15,
"weaponType": "kinetic",
"armorType": "light",
"shipSize": "small",
"shipClass": "combat",
"imageKey": "scout",
"reportKey": "wormhole_pirate_scout",
"sortOrder": 9000,
"isNpc": true
}
],
"pirateShipIds": [
4
],
"pirateZones": [
"sentinel"
]
}
Notes
playerShips[]/npcShips[]carry the raw combat stats (hp,shieldHp,attack,weaponType,armorType,shipSize,shipClass), so this is a single-call source of truth for ship balance data.pirateShipIdsis the subset ofnpcShipsusable when a side hastype: "pirate".pirateZonesare the valid values forpirateZonein the simulate payload.ownProfile.bonusesAvailablegates the client’s “load my bonuses” toggle;ownProfile.leadershipdescribes the command vessel thatattachLeadershipwould add.
Live Verification
- Verified 2026-08-26 on
s0:GET /api/combat-simulator/bootstrap->200. - Example above is a real response with every array truncated to its first item.
- Live array sizes at capture time:
npcShips=14,pirateShipIds=7,pirateZones=4,playerShips=33.