# modules.toml # # First real-content iteration: module ids and surface masks are the designed # content; stats, materials, and threat costs are placeholders until the # recipe and balancing passes. # # Surface mask footprint ladder — footprints gate which hulls can mount a # module, purely through geometry (see ships.toml for the matching hull # grids): # # 1x1 laser_cannon_s, salvager, repair_tool fits every hull, incl. drones # 1x2 maneuvering_thrusters, sensor_booster, # armor_plates frigate and up # 1x3 afterburner frigate and up (eats most of a frigate) # L-shape weapon_stabilizer, weapon_primer, # weapon_upgrade frigate and up # 2x2 laser_cannon_m, drone_bay cruiser and up (no 2x2 area on s hulls) # 3x3 laser_cannon_l battleship and up (no 3x3 area on m hulls) # 2x6 drone_hangar dreadnought and carrier only # ----------------------------------------------------------------------------- # Weapons # ----------------------------------------------------------------------------- [[module]] id = "laser_cannon_s" unlock_at_station_level = -1 surface_mask = ["O"] materials = [{item = "laser_cannon_s_module", amount = 1}] player_production_level = 1 production_time_seconds = 0.5 threat_cost = 5.0 fill_color = "#FF8040" glyph = "Ls" [module.weapon] damage_formula = "2" attack_range_m_formula = "50" attack_rate_hz_formula = "2.0" [[module]] id = "laser_cannon_m" unlock_at_station_level = -1 surface_mask = [ "OO", "OO"] materials = [{item = "laser_cannon_m_module", amount = 1}] player_production_level = 1 production_time_seconds = 2 threat_cost = 30.0 fill_color = "#FF8040" glyph = "Lm" [module.weapon] damage_formula = "10" attack_range_m_formula = "70" attack_rate_hz_formula = "1.5" [[module]] id = "laser_cannon_l" unlock_at_station_level = -1 surface_mask = [ "OOO", "OOO", "OOO"] materials = [{item = "laser_cannon_l_module", amount = 1}] player_production_level = 1 production_time_seconds = 8 threat_cost = 150.0 fill_color = "#FF8040" glyph = "Ll" [module.weapon] damage_formula = "40" attack_range_m_formula = "100" attack_rate_hz_formula = "0.8" # ----------------------------------------------------------------------------- # Utility tools # ----------------------------------------------------------------------------- [[module]] id = "salvager" unlock_at_station_level = -1 surface_mask = ["O"] materials = [{item = "salvager_module", amount = 1}] player_production_level = 1 production_time_seconds = 2 threat_cost = 0.0 fill_color = "#AACC44" glyph = "Sv" [module.salvage] collection_range_m_formula = "500" cargo_capacity_formula = "10" collection_rate_hz_formula = "0.5" [[module]] id = "repair_tool" unlock_at_station_level = -1 surface_mask = ["O"] materials = [{item = "repair_tool_module", amount = 1}] player_production_level = 1 production_time_seconds = 2 threat_cost = 0.0 fill_color = "#66CCFF" glyph = "Rp" [module.repair] repair_rate_hz_formula = "5 + x" repair_range_m_formula = "800" # ----------------------------------------------------------------------------- # Propulsion # ----------------------------------------------------------------------------- [[module]] id = "afterburner" unlock_at_station_level = -1 surface_mask = ["OOO"] materials = [{item = "afterburner_module", amount = 1}] player_production_level = 1 production_time_seconds = 2 threat_cost = 1.0 fill_color = "#40A0FF" glyph = "Ab" [module.movement] multiplied_speed_mps_formula = "1.6" added_main_acceleration_mpss_formula = "60" [[module]] id = "maneuvering_thrusters" unlock_at_station_level = -1 surface_mask = ["OO"] materials = [{item = "maneuvering_thrusters_module", amount = 1}] player_production_level = 1 production_time_seconds = 2 threat_cost = 1.0 fill_color = "#40A0FF" glyph = "Mt" [module.movement] multiplied_speed_mps_formula = "1.2" added_maneuvering_acceleration_mpss_formula = "10" # ----------------------------------------------------------------------------- # Defense & sensors # ----------------------------------------------------------------------------- [[module]] id = "armor_plates" unlock_at_station_level = -1 surface_mask = ["OO"] materials = [{item = "armor_plates_module", amount = 1}] player_production_level = 1 production_time_seconds = 3 threat_cost = 20.0 fill_color = "#808080" glyph = "A" [module.health] added_hp_formula = "40" [[module]] id = "sensor_booster" unlock_at_station_level = -1 surface_mask = ["OO"] materials = [{item = "sensor_booster_module", amount = 1}] player_production_level = 1 production_time_seconds = 2 threat_cost = 1.0 fill_color = "#40A0FF" glyph = "S" [module.sensor] added_sensor_range_m_formula = "50" # ----------------------------------------------------------------------------- # Weapon modifiers # ----------------------------------------------------------------------------- [[module]] id = "weapon_upgrade" unlock_at_station_level = -1 surface_mask = [ "OO", "OX", ] materials = [{item = "weapon_upgrade_module", amount = 1}] player_production_level = 1 production_time_seconds = 4 threat_cost = 10.0 fill_color = "#FF4040" glyph = "Wu" [module.weapon] multiplied_damage_formula = "1.2" [[module]] id = "weapon_primer" unlock_at_station_level = -1 surface_mask = [ "OO", "OX", ] materials = [{item = "weapon_primer_module", amount = 1}] player_production_level = 1 production_time_seconds = 4 threat_cost = 10.0 fill_color = "#FF4040" glyph = "Wp" [module.weapon] multiplied_attack_rate_hz_formula = "1.2" [[module]] id = "weapon_stabilizer" unlock_at_station_level = -1 surface_mask = [ "OO", "OX", ] materials = [{item = "weapon_stabilizer_module", amount = 1}] player_production_level = 1 production_time_seconds = 4 threat_cost = 10.0 fill_color = "#FF4040" glyph = "Ws" [module.weapon] multiplied_attack_range_m_formula = "1.5" multiplied_attack_rate_hz_formula = "0.8" # ----------------------------------------------------------------------------- # Drone modules # # Footprint-only placeholders: the drone launching capability is not # implemented yet, so these modules define no capability section. # ----------------------------------------------------------------------------- [[module]] id = "drone_bay" unlock_at_station_level = -1 surface_mask = [ "OO", "OO"] materials = [{item = "drone_bay_module", amount = 1}] player_production_level = 1 production_time_seconds = 5 threat_cost = 15.0 fill_color = "#CC66FF" glyph = "Db" [[module]] id = "drone_hangar" unlock_at_station_level = -1 surface_mask = [ "OOOOOO", "OOOOOO"] materials = [{item = "drone_hangar_module", amount = 1}] player_production_level = 1 production_time_seconds = 20 threat_cost = 100.0 fill_color = "#9933CC" glyph = "Dh"