# balancing.toml — canonical arena suite for the combat stats pass. # # Ship counts are chosen so both teams have (near-)equal total threat, # using the verified fitted threat values from tools/threat_report.py: # drone 10.5, frigate 47, destroyer 99, cruiser 233.5, # battlecruiser 354.5, battleship 722.5, dreadnought 1491.5, # carrier 1436.5, glass destroyer (8 small guns) 92, repair drone 17. # Module arrays mirror the ships' default_modules loadouts unless a # doctrine variant is the point of the arena. # # Expectations: mirror matches and equal-threat cross-tier matchups should # be near-draws (power-per-threat rule); the two-to-one arena must be a # decisive win for the larger team. "Cruisers vs carrier" is EXPECTED to be # a loss for the carrier until the drone-launching capability exists — the # hangar is 224 threat of dead weight. # --- mirrors (sanity: symmetric outcomes, fight duration in the 30-60 s band) --- [[arena]] name = "Mirror: drones 20v20" height_tiles = 30 player_buffer_width_tiles = 10 contest_zone_width_tiles = 50 enemy_buffer_width_tiles = 10 [[arena.team]] name = "Alpha" [[arena.team.ship]] schematic = "drone" count = 20 modules = [ {type = "railgun_s", x = 0, y = 0, rotation = "east"}, ] [[arena.team]] name = "Beta" [[arena.team.ship]] schematic = "drone" count = 20 modules = [ {type = "railgun_s", x = 0, y = 0, rotation = "east"}, ] [[arena]] name = "Mirror: cruisers 6v6" height_tiles = 30 player_buffer_width_tiles = 10 contest_zone_width_tiles = 50 enemy_buffer_width_tiles = 10 [[arena.team]] name = "Alpha" [[arena.team.ship]] schematic = "cruiser" count = 6 modules = [ {type = "railgun_m", x = 0, y = 1, rotation = "east"}, {type = "railgun_m", x = 2, y = 1, rotation = "east"}, {type = "armor_plates", x = 1, y = 0, rotation = "east"}, {type = "maneuvering_thrusters", x = 1, y = 3, rotation = "east"}, ] [[arena.team]] name = "Beta" [[arena.team.ship]] schematic = "cruiser" count = 6 modules = [ {type = "railgun_m", x = 0, y = 1, rotation = "east"}, {type = "railgun_m", x = 2, y = 1, rotation = "east"}, {type = "armor_plates", x = 1, y = 0, rotation = "east"}, {type = "maneuvering_thrusters", x = 1, y = 3, rotation = "east"}, ] [[arena]] name = "Mirror: battleships 2v2" height_tiles = 30 player_buffer_width_tiles = 10 contest_zone_width_tiles = 50 enemy_buffer_width_tiles = 10 [[arena.team]] name = "Alpha" [[arena.team.ship]] schematic = "battleship" count = 2 modules = [ {type = "railgun_l", x = 1, y = 0, rotation = "east"}, {type = "railgun_m", x = 1, y = 3, rotation = "east"}, {type = "railgun_m", x = 3, y = 3, rotation = "east"}, {type = "weapon_stabilizer", x = 4, y = 1, rotation = "east"}, {type = "railgun_s", x = 4, y = 0, rotation = "east"}, {type = "railgun_s", x = 0, y = 1, rotation = "east"}, ] [[arena.team]] name = "Beta" [[arena.team.ship]] schematic = "battleship" count = 2 modules = [ {type = "railgun_l", x = 1, y = 0, rotation = "east"}, {type = "railgun_m", x = 1, y = 3, rotation = "east"}, {type = "railgun_m", x = 3, y = 3, rotation = "east"}, {type = "weapon_stabilizer", x = 4, y = 1, rotation = "east"}, {type = "railgun_s", x = 4, y = 0, rotation = "east"}, {type = "railgun_s", x = 0, y = 1, rotation = "east"}, ] # --- equal-threat cross-tier matchups (power-per-threat: expect near-draws) --- [[arena]] name = "Drone swarm vs cruisers (462 vs 467)" height_tiles = 30 player_buffer_width_tiles = 10 contest_zone_width_tiles = 50 enemy_buffer_width_tiles = 10 [[arena.team]] name = "Swarm" [[arena.team.ship]] schematic = "drone" count = 44 modules = [ {type = "railgun_s", x = 0, y = 0, rotation = "east"}, ] [[arena.team]] name = "Cruisers" [[arena.team.ship]] schematic = "cruiser" count = 2 modules = [ {type = "railgun_m", x = 0, y = 1, rotation = "east"}, {type = "railgun_m", x = 2, y = 1, rotation = "east"}, {type = "armor_plates", x = 1, y = 0, rotation = "east"}, {type = "maneuvering_thrusters", x = 1, y = 3, rotation = "east"}, ] [[arena]] name = "Frigates vs battleship (705 vs 723)" height_tiles = 30 player_buffer_width_tiles = 10 contest_zone_width_tiles = 50 enemy_buffer_width_tiles = 10 [[arena.team]] name = "Frigates" [[arena.team.ship]] schematic = "frigate" count = 15 modules = [ {type = "railgun_s", x = 1, y = 0, rotation = "east"}, {type = "railgun_s", x = 2, y = 1, rotation = "east"}, {type = "maneuvering_thrusters", x = 0, y = 1, rotation = "east"}, ] [[arena.team]] name = "Battleship" [[arena.team.ship]] schematic = "battleship" count = 1 modules = [ {type = "railgun_l", x = 1, y = 0, rotation = "east"}, {type = "railgun_m", x = 1, y = 3, rotation = "east"}, {type = "railgun_m", x = 3, y = 3, rotation = "east"}, {type = "weapon_stabilizer", x = 4, y = 1, rotation = "east"}, {type = "railgun_s", x = 4, y = 0, rotation = "east"}, {type = "railgun_s", x = 0, y = 1, rotation = "east"}, ] [[arena]] name = "Destroyers vs dreadnought (1485 vs 1492)" height_tiles = 40 player_buffer_width_tiles = 10 contest_zone_width_tiles = 50 enemy_buffer_width_tiles = 10 [[arena.team]] name = "Destroyers" [[arena.team.ship]] schematic = "destroyer" count = 15 modules = [ {type = "railgun_s", x = 0, y = 0, rotation = "east"}, {type = "railgun_s", x = 2, y = 0, rotation = "east"}, {type = "railgun_s", x = 4, y = 0, rotation = "east"}, {type = "armor_plates", x = 0, y = 1, rotation = "east"}, {type = "sensor_booster", x = 3, y = 1, rotation = "east"}, ] [[arena.team]] name = "Dreadnought" [[arena.team.ship]] schematic = "dreadnought" count = 1 modules = [ {type = "railgun_l", x = 0, y = 1, rotation = "east"}, {type = "railgun_l", x = 4, y = 1, rotation = "east"}, {type = "railgun_l", x = 8, y = 1, rotation = "east"}, {type = "armor_plates", x = 3, y = 0, rotation = "east"}, {type = "armor_plates", x = 5, y = 0, rotation = "east"}, {type = "armor_plates", x = 2, y = 4, rotation = "east"}, {type = "armor_plates", x = 7, y = 4, rotation = "east"}, {type = "railgun_s", x = 7, y = 0, rotation = "east"}, ] [[arena]] name = "Cruisers vs carrier (1401 vs 1437, carrier expected to lose)" height_tiles = 40 player_buffer_width_tiles = 10 contest_zone_width_tiles = 50 enemy_buffer_width_tiles = 10 [[arena.team]] name = "Cruisers" [[arena.team.ship]] schematic = "cruiser" count = 6 modules = [ {type = "railgun_m", x = 0, y = 1, rotation = "east"}, {type = "railgun_m", x = 2, y = 1, rotation = "east"}, {type = "armor_plates", x = 1, y = 0, rotation = "east"}, {type = "maneuvering_thrusters", x = 1, y = 3, rotation = "east"}, ] [[arena.team]] name = "Carrier" [[arena.team.ship]] schematic = "carrier" count = 1 modules = [ {type = "drone_hangar", x = 2, y = 0, rotation = "east"}, {type = "railgun_m", x = 3, y = 2, rotation = "east"}, {type = "railgun_m", x = 6, y = 2, rotation = "east"}, {type = "armor_plates", x = 0, y = 1, rotation = "east"}, {type = "armor_plates", x = 8, y = 1, rotation = "east"}, {type = "sensor_booster", x = 3, y = 4, rotation = "east"}, ] [[arena]] name = "Mixed mid vs battlecruisers (1394 vs 1418)" height_tiles = 40 player_buffer_width_tiles = 10 contest_zone_width_tiles = 50 enemy_buffer_width_tiles = 10 [[arena.team]] name = "Mixed" [[arena.team.ship]] schematic = "destroyer" count = 7 modules = [ {type = "railgun_s", x = 0, y = 0, rotation = "east"}, {type = "railgun_s", x = 2, y = 0, rotation = "east"}, {type = "railgun_s", x = 4, y = 0, rotation = "east"}, {type = "armor_plates", x = 0, y = 1, rotation = "east"}, {type = "sensor_booster", x = 3, y = 1, rotation = "east"}, ] [[arena.team.ship]] schematic = "cruiser" count = 3 modules = [ {type = "railgun_m", x = 0, y = 1, rotation = "east"}, {type = "railgun_m", x = 2, y = 1, rotation = "east"}, {type = "armor_plates", x = 1, y = 0, rotation = "east"}, {type = "maneuvering_thrusters", x = 1, y = 3, rotation = "east"}, ] [[arena.team]] name = "Battlecruisers" [[arena.team.ship]] schematic = "battlecruiser" count = 4 modules = [ {type = "railgun_m", x = 0, y = 0, rotation = "east"}, {type = "railgun_m", x = 4, y = 0, rotation = "east"}, {type = "railgun_m", x = 2, y = 1, rotation = "east"}, {type = "armor_plates", x = 2, y = 3, rotation = "east"}, {type = "railgun_s", x = 1, y = 2, rotation = "east"}, {type = "railgun_s", x = 4, y = 2, rotation = "east"}, ] # --- asymmetric checks --- [[arena]] name = "Two to one (must be decisive)" height_tiles = 30 player_buffer_width_tiles = 10 contest_zone_width_tiles = 50 enemy_buffer_width_tiles = 10 [[arena.team]] name = "Six" [[arena.team.ship]] schematic = "frigate" count = 6 modules = [ {type = "railgun_s", x = 1, y = 0, rotation = "east"}, {type = "railgun_s", x = 2, y = 1, rotation = "east"}, {type = "maneuvering_thrusters", x = 0, y = 1, rotation = "east"}, ] [[arena.team]] name = "Three" [[arena.team.ship]] schematic = "frigate" count = 3 modules = [ {type = "railgun_s", x = 1, y = 0, rotation = "east"}, {type = "railgun_s", x = 2, y = 1, rotation = "east"}, {type = "maneuvering_thrusters", x = 0, y = 1, rotation = "east"}, ] [[arena]] name = "Armored vs glass destroyers (1188 vs 1196)" height_tiles = 30 player_buffer_width_tiles = 10 contest_zone_width_tiles = 50 enemy_buffer_width_tiles = 10 [[arena.team]] name = "Armored" [[arena.team.ship]] schematic = "destroyer" count = 12 modules = [ {type = "railgun_s", x = 0, y = 0, rotation = "east"}, {type = "railgun_s", x = 2, y = 0, rotation = "east"}, {type = "railgun_s", x = 4, y = 0, rotation = "east"}, {type = "armor_plates", x = 0, y = 1, rotation = "east"}, {type = "sensor_booster", x = 3, y = 1, rotation = "east"}, ] [[arena.team]] name = "Glass" [[arena.team.ship]] schematic = "destroyer" count = 13 modules = [ {type = "railgun_s", x = 0, y = 0, rotation = "east"}, {type = "railgun_s", x = 2, y = 0, rotation = "east"}, {type = "railgun_s", x = 4, y = 0, rotation = "east"}, {type = "railgun_s", x = 0, y = 1, rotation = "east"}, {type = "railgun_s", x = 1, y = 1, rotation = "east"}, {type = "railgun_s", x = 2, y = 1, rotation = "east"}, {type = "railgun_s", x = 3, y = 1, rotation = "east"}, {type = "railgun_s", x = 4, y = 1, rotation = "east"}, ] [[arena]] name = "Repair escort vs raw numbers (444 vs 444)" height_tiles = 30 player_buffer_width_tiles = 10 contest_zone_width_tiles = 50 enemy_buffer_width_tiles = 10 [[arena.team]] name = "Escorted" [[arena.team.ship]] schematic = "frigate" count = 8 modules = [ {type = "railgun_s", x = 1, y = 0, rotation = "east"}, {type = "railgun_s", x = 2, y = 1, rotation = "east"}, {type = "maneuvering_thrusters", x = 0, y = 1, rotation = "east"}, ] [[arena.team.ship]] schematic = "drone" count = 4 modules = [ {type = "repair_tool", x = 0, y = 0, rotation = "east"}, ] [[arena.team]] name = "Raw" [[arena.team.ship]] schematic = "frigate" count = 9 modules = [ {type = "railgun_s", x = 1, y = 0, rotation = "east"}, {type = "railgun_s", x = 2, y = 1, rotation = "east"}, {type = "maneuvering_thrusters", x = 0, y = 1, rotation = "east"}, ] [[arena.team.ship]] schematic = "drone" count = 2 modules = [ {type = "railgun_s", x = 0, y = 0, rotation = "east"}, ] [[arena]] name = "Station assault (2 stations + 105 vs 315)" height_tiles = 60 player_buffer_width_tiles = 15 contest_zone_width_tiles = 40 enemy_buffer_width_tiles = 15 [[arena.team]] name = "Fortified" [[arena.team.ship]] schematic = "drone" count = 10 modules = [ {type = "railgun_s", x = 0, y = 0, rotation = "east"}, ] [[arena.team.station]] type = "player_station" x = 8 y = 15 level = 1 [[arena.team.station]] type = "player_station" x = 8 y = 45 level = 1 [[arena.team]] name = "Swarm" [[arena.team.ship]] schematic = "drone" count = 30 modules = [ {type = "railgun_s", x = 0, y = 0, rotation = "east"}, ]