#Remember to update operation_sabotage_starbase if you add any new buildings. # You will need to update the description, espionage_sabotage_starbase_building, remove_sabotage_starbase_flag, and has_nonshipyard_starbase_buildings recruitment_office = { icon = "GFX_starbase_recruitment_office" construction_days = 720 potential = { is_space_citadel = no exists = owner owner = { has_technology = "tech_xeno_linguistics" is_homicidal = no } } possible = { owner = { count_starbase_buildings = { type = recruitment_office count < 1 include_being_constructed = yes } } } abort_construction_trigger = { owner = { count_starbase_buildings = { type = recruitment_office count > 1 include_being_constructed = yes } } } country_modifier = { external_leader_pool_add = 1 species_leader_exp_gain = 0.1 } resources = { category = starbase_buildings cost = { alloys = 50 } upkeep = { energy = 2 } } show_in_tech = "tech_xeno_linguistics" custom_tooltip = sm_recruitment_office_tooltip ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } crew_quarters = { icon = "GFX_spaceport_module_crew_quarters" construction_days = 180 initial = yes resources = { category = starbase_buildings cost = { alloys = 50 } upkeep = { energy = 1 } } orbit_modifier = { ship_orbit_upkeep_mult = -0.25 } ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } hydroponics_bay = { icon = "GFX_spaceport_module_hydroponic_farms" construction_days = 180 potential = { exists = owner owner = { has_technology = "tech_hydroponics" } is_space_citadel = no } possible = { exists = owner OR = { owner = { is_ai = no } owner = { country_uses_food = yes } } } resources = { category = starbase_buildings cost = { alloys = 50 } produces = { food = 10 } upkeep = { energy = 1 } } show_in_tech = "tech_hydroponics" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } resource_silo = { icon = "GFX_spaceport_module_resource_silo" construction_days = 180 potential = { is_space_citadel = no } resources = { category = starbase_buildings cost = { alloys = 50 } } triggered_country_modifier = { potential = { exists = owner owner = { NOT = { has_technology = tech_construction_templates } } } country_resource_max_add = 5000 } triggered_country_modifier = { potential = { exists = owner owner = { has_technology = tech_construction_templates } } country_resource_max_add = 10000 } ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } nebula_refinery = { icon = "GFX_spaceport_nebula_refinery" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_space_mining_1 } is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport_or_ring" OR = { has_starbase_size >= starbase_starport is_orbital_ring = yes } } custom_tooltip = { fail_text = "requires_nebula" star = { is_inside_nebula = yes } } } resources = { category = starbase_buildings cost = { alloys = 100 } produces = { minerals = 10 } produces = { trigger = { exists = owner owner = { has_technology = tech_mine_exotic_gases } } exotic_gases = 1 } upkeep = { energy = 2 } } show_in_tech = "tech_space_mining_1" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } listening_post = { icon = "GFX_spaceport_module_navigators_guild" construction_days = 360 resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { energy = 2 } } potential = { exists = owner owner = { has_technology = tech_sensors_2 } OR = { is_normal_starbase = yes is_space_citadel = yes } } possible = { NOT = { has_starbase_building = dark_matter_listening_post } } station_modifier = { ship_sensor_range_add = 2 ship_hyperlane_range_add = 4 } triggered_station_modifier = { potential = { hidden_trigger = { exists = this } exists = owner owner = { has_technology = tech_unusual_senses } } custom_tooltip = sm_listening_post_unusual_senses_desc ship_cloaking_detection_add = 1 ship_sensor_range_add = 1 mult = value:unusual_senses_mult } triggered_station_modifier = { potential = { hidden_trigger = { exists = this } exists = owner owner = { is_galactic_community_member = yes } OR = { is_active_resolution = "resolution_galacticstudies_astral_studies_network" is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" is_active_resolution = "resolution_galacticstudies_extradimensional_experimentation" } } ship_sensor_range_add = 1 ship_hyperlane_range_add = 1 } triggered_station_modifier = { potential = { hidden_trigger = { exists = this } exists = owner owner = { has_civic = civic_hive_subspace_ephapse has_first_contact_dlc = yes } } ship_cloaking_detection_add = 1 } ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } show_in_tech = "tech_sensors_2" } offworld_trading_company = { icon = "GFX_starbase_offworld_trading_company" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_space_trading is_gestalt = no } is_normal_starbase = yes is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport" has_starbase_size >= starbase_starport } OR = { has_starbase_module = trading_hub starbase_buildable_is_in_queue_before = { first = trading_hub second = offworld_trading_company } } } resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { energy = 1 } } custom_tooltip = sm_offworld_trading_company_desc_modifier show_in_tech = "tech_space_trading" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt modifier = { factor = 0 count_starbase_modules = { type = trading_hub count < 3 } } } } fleet_academy = { icon = "GFX_spaceport_module_fleet_academy" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_interstellar_fleet_traditions } is_normal_starbase = yes is_space_citadel = no } possible = { OR = { has_starbase_module = shipyard starbase_buildable_is_in_queue_before = { first = shipyard second = fleet_academy } } } ship_modifier = { ship_starting_experience_add = 100 } resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { energy = 2 } } show_in_tech = "tech_interstellar_fleet_traditions" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt modifier = { factor = 0 count_starbase_modules = { type = shipyard count < 2 } } } } naval_logistics_office = { icon = "GFX_starbase_naval_logistics" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_interstellar_fleet_traditions } is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_anchorage" OR = { has_starbase_module = anchorage starbase_buildable_is_in_queue_before = { first = anchorage second = naval_logistics_office } has_starbase_module = orbital_ring_anchorage starbase_buildable_is_in_queue_before = { first = orbital_ring_anchorage second = naval_logistics_office } } } } resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { energy = 2 } } custom_tooltip = sm_naval_logistics_office_desc_modifier show_in_tech = "tech_interstellar_fleet_traditions" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt modifier = { factor = 0 count_starbase_modules = { type = anchorage count < 1 } } } } titan_yards = { icon = "GFX_spaceport_module_titan_assembly_yard" construction_days = 720 potential = { exists = owner owner = { OR = { has_technology = tech_titans has_technology = tech_cosmogenesis_FE_titan } } is_normal_starbase = yes is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_citadel" has_starbase_size >= starbase_citadel } OR = { has_starbase_module = shipyard starbase_buildable_is_in_queue_before = { first = shipyard second = titan_yards } } } resources = { category = starbase_buildings cost = { alloys = 500 } upkeep = { energy = 10 } } custom_tooltip = sm_titan_yards_desc_modifier ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt modifier = { factor = 0 count_starbase_modules = { type = shipyard count < 2 } } modifier = { factor = 0 owner = { any_owned_starbase = { NOT = { is_same_value = root } has_starbase_building = titan_yards } } } } } colossus_yards = { icon = "GFX_spaceport_module_colossus_assembly_yard" construction_days = 720 potential = { exists = owner owner = { OR = { has_technology = tech_colossus has_technology = tech_juggernaut has_technology = tech_btc_1 # star-eater } } is_normal_starbase = yes is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_citadel" has_starbase_size >= starbase_citadel } OR = { has_starbase_module = shipyard starbase_buildable_is_in_queue_before = { first = shipyard second = colossus_yards } } } resources = { category = starbase_buildings cost = { alloys = 1000 } upkeep = { energy = 20 } } custom_tooltip = sm_colossus_yards_desc_modifier show_in_tech = "tech_colossus" show_in_tech = "tech_juggernaut" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt modifier = { factor = 0 count_starbase_modules = { type = shipyard count < 2 } } modifier = { factor = 0 owner = { any_owned_starbase = { NOT = { is_same_value = root } has_starbase_building = colossus_yards } } } } } black_hole_observatory = { icon = "GFX_spaceport_module_observatory" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_sensors_3 } is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport_or_ring" OR = { has_starbase_size >= starbase_starport is_orbital_ring = yes } } custom_tooltip = { fail_text = "requires_black_hole" star = { is_star_class = sc_black_hole } } } resources = { category = starbase_buildings cost = { alloys = 100 } produces = { physics_research = 15 } produces = { trigger = { exists = owner owner = { is_galactic_community_member = yes } OR = { is_active_resolution = "resolution_galacticstudies_astral_studies_network" is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" is_active_resolution = "resolution_galacticstudies_extradimensional_experimentation" } } physics_research = 15 } produces = { trigger = { exists = owner owner = { has_technology = tech_mine_dark_matter } } sr_dark_matter = 1 } upkeep = { energy = 2 } } show_in_tech = "tech_sensors_3" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } target_uplink_computer = { icon = "GFX_spaceport_synchronized_defenses" construction_days = 360 potential = { exists = owner } possible = { custom_tooltip = { fail_text = "requires_starport_or_ring" OR = { has_starbase_size >= starbase_starport is_orbital_ring = yes is_space_citadel = yes } } } resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { energy = 2 } } station_modifier = { ship_weapon_range_mult = 0.50 } defense_platform_modifier = { ship_weapon_range_mult = 0.50 } ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } defense_grid = { icon = "GFX_starbase_defense_grid_supercomputer" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_synchronized_defences } } possible = { custom_tooltip = { fail_text = "requires_starport_or_ring" OR = { has_starbase_size >= starbase_starport is_orbital_ring = yes is_space_citadel = yes } } } resources = { category = starbase_buildings cost = { alloys = 150 } upkeep = { energy = 2 } } station_modifier = { starbase_defense_platform_capacity_add = 8 } show_in_tech = "tech_synchronized_defences" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } deep_space_black_site = { icon = "GFX_starbase_deep_space_black_site" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_living_state NOT = { has_ethic = ethic_gestalt_consciousness } } OR = { is_normal_starbase = yes is_space_citadel = yes } } possible = { custom_tooltip = { fail_text = "requires_starport" OR = { has_starbase_size >= starbase_starport is_space_citadel = yes } } custom_tooltip = { fail_text = "requires_colonized_planet" solar_system = { any_system_colony = { is_owned_by = from } } } } resources = { category = starbase_buildings cost = { alloys = 100 } produces = { unity = 1 } upkeep = { energy = 2 } } system_modifier = { pop_government_ethic_attraction = 0.25 planet_stability_add = 2 } show_in_tech = "tech_living_state" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } curator_think_tank = { icon = "GFX_starbase_curator_think_tank" construction_days = 360 potential = { exists = owner owner = { is_homicidal = no has_country_flag = curator_intro } is_normal_starbase = yes is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport" has_starbase_size >= starbase_starport } custom_tooltip = { fail_text = "requires_curator" solar_system = { has_star_flag = enclave any_fleet_in_system = { exists = owner owner = { has_country_flag = curator_enclave_country } } } } custom_tooltip = { fail_text = "requires_curator_agreement" solar_system = { has_star_flag = enclave any_fleet_in_system = { exists = owner owner = { has_country_flag = curator_enclave_country has_country_flag = think_tank@root.owner } } } } } resources = { category = starbase_buildings cost = { alloys = 100 } produces = { physics_research = 5 society_research = 5 engineering_research = 5 } produces = { trigger = { exists = owner owner = { is_galactic_community_member = yes } OR = { is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" is_active_resolution = "resolution_galacticstudies_extradimensional_experimentation" } } physics_research = 5 society_research = 5 engineering_research = 5 } upkeep = { energy = 2 } } ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } art_college = { icon = "GFX_starbase_artist_college" construction_days = 360 potential = { exists = owner owner = { is_homicidal = no has_country_flag = enclave_artist_encountered } is_normal_starbase = yes is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport" has_starbase_size >= starbase_starport } custom_tooltip = { fail_text = "requires_artisans" solar_system = { has_star_flag = enclave any_fleet_in_system = { exists = owner owner = { is_same_value = event_target:artist_enclave_country } } } } custom_tooltip = { fail_text = "requires_artist_agreement" solar_system = { has_star_flag = enclave any_fleet_in_system = { exists = owner owner = { is_same_value = event_target:artist_enclave_country has_country_flag = art_college@root.owner } } } } } resources = { category = starbase_buildings cost = { alloys = 100 } produces = { unity = 10 } produces = { trigger = { exists = owner owner = { is_galactic_community_member = yes } OR = { is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" is_active_resolution = "resolution_galacticstudies_extradimensional_experimentation" } } unity = 10 } upkeep = { energy = 2 } } ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } salvager_workshop = { icon = "GFX_starbase_salvager_workshop" construction_days = 360 potential = { exists = owner owner = { is_homicidal = no has_country_flag = salvager_enclave_diplomacy_engaged } OR = { is_normal_starbase = yes is_space_citadel = yes } } possible = { custom_tooltip = { fail_text = "requires_starport" OR = { has_starbase_size >= starbase_starport is_space_citadel = yes } } custom_tooltip = { fail_text = "requires_salvager_enclave" solar_system = { has_star_flag = enclave any_fleet_in_system = { exists = owner owner = { has_country_flag = salvager_enclave_country } } } } custom_tooltip = { fail_text = "requires_salvager_agreement" solar_system = { has_star_flag = enclave any_fleet_in_system = { exists = owner owner = { has_country_flag = salvager_enclave_country has_country_flag = salvage_works@root.owner } } } } } resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { energy = 3 } produces = { trigger = { exists = owner owner = { is_galactic_community_member = yes } OR = { is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" is_active_resolution = "resolution_galacticstudies_extradimensional_experimentation" } } alloys = 5 } } orbit_modifier = { ship_orbit_upkeep_mult = -0.2 ship_repair_hull_mult = 0.3 ship_repair_armor_mult = 0.3 } ai_weight = { weight = 150 } } shroud_beacon = { icon = "GFX_starbase_shroud_beacon" construction_days = 720 potential = { exists = owner owner = { is_homicidal = no has_country_flag = shroudwalker_enclave_diplomacy_engaged has_country_flag = shroudwalker_enclave_bought_shroud_beacon } is_normal_starbase = yes is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport" has_starbase_size >= starbase_starport } custom_tooltip = { fail_text = "requires_not_shroudwalker_system" solar_system = { NOR = { has_star_flag = shroudwalker_enclave_system any_fleet_in_system = { exists = owner owner = { has_country_flag = shroudwalker_enclave_country } } } } } custom_tooltip = { fail_text = "requires_no_bypass" solar_system = { if = { limit = { NOT = { has_star_flag = spawned_shroud_tunnel } } has_natural_wormhole = no } } } custom_tooltip = { fail_text = "limit_one_shroud_tunnel" OR = { owner = { NOT = { any_system_within_border = { OR = { has_star_flag = spawned_shroud_tunnel starbase = { has_starbase_building = shroud_beacon } } } } } AND = { solar_system = { has_star_flag = spawned_shroud_tunnel } NOT = { has_starbase_building = shroud_beacon } } } } custom_tooltip = { fail_text = "requires_shroudwalker_agreement" OR = { AND = { exists = event_target:shroudwalker_enclave_country event_target:shroudwalker_enclave_country = { has_country_flag = shroud_beacon@root.owner } } owner = { has_country_flag = shroud_beacon } } } } resources = { category = starbase_buildings cost = { alloys = 500 rare_crystals = 25 } upkeep = { energy = 3 } } ai_weight = { weight = 50 #Don't build nextdoor to the Shroudwalkers modifier = { factor = 0 solar_system = { any_neighbor_system = { any_fleet_in_system = { exists = owner owner = { has_country_flag = shroudwalker_enclave_country } } } } } } on_finished = { if = { limit = { solar_system = { NOT = { has_star_flag = spawned_shroud_tunnel } } } shroudwalker_enclave_starbase_create_shroud_tunnel = yes } fleet.owner = { country_event = { id = enclave.4200 } country_event = { id = origin.5625 } country_event = { id = timeline.60 } # Origin Event Shroud Tunnel Built } } on_destroyed = { fleet.owner = { country_event = { id = enclave.6015 } } } } cybrex_mining_hub = { icon = "GFX_starbase_cybrex_mining_hub" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_secrets_cybrex } is_normal_starbase = yes is_space_citadel = no } resources = { category = starbase_buildings cost = { alloys = 100 minor_artifacts = @minor_artifacts_cost_l } upkeep = { energy = 1 } } triggered_system_modifier = { potential = { owner = { NOT = { has_ascension_perk = ap_archaeoengineers } } } station_gatherers_produces_mult = 1.0 } triggered_system_modifier = { potential = { owner = { has_ascension_perk = ap_archaeoengineers } } station_gatherers_produces_mult = 1.5 } ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } custom_tooltip = sm_cybrex_mining_hub_desc_modifier show_in_tech = "tech_secrets_cybrex" } irassian_naval_yards = { icon = "GFX_starbase_irassian_naval_yards" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_secrets_irassian } is_normal_starbase = yes is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_shipyard" OR = { has_starbase_module = shipyard starbase_buildable_is_in_queue_before = { first = shipyard second = irassian_naval_yards } } } } resources = { category = starbase_buildings cost = { alloys = 100 minor_artifacts = @minor_artifacts_cost_xl } upkeep = { energy = 2 } } triggered_station_modifier = { potential = { owner = { NOT = { has_ascension_perk = ap_archaeoengineers } } } starbase_shipyard_build_speed_mult = 0.2 } triggered_station_modifier = { potential = { owner = { has_ascension_perk = ap_archaeoengineers } } starbase_shipyard_build_speed_mult = 0.3 } custom_tooltip = sm_irassian_naval_yards_desc_modifier show_in_tech = "tech_secrets_irassian" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt modifier = { factor = 0 count_starbase_modules = { type = shipyard count < 1 } } } } yuht_detection_array = { icon = "GFX_starbase_yuht_detection_array" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_secrets_yuht } OR = { is_normal_starbase = yes is_space_citadel = yes } } resources = { category = starbase_buildings cost = { alloys = 100 minor_artifacts = @minor_artifacts_cost_xl } upkeep = { energy = 2 } } triggered_station_modifier = { potential = { owner = { NOT = { has_ascension_perk = ap_archaeoengineers } } } ship_sensor_range_add = 7 ship_hyperlane_range_add = 14 } triggered_station_modifier = { potential = { owner = { has_ascension_perk = ap_archaeoengineers } } ship_sensor_range_add = 10 ship_hyperlane_range_add = 20 } custom_tooltip = sm_yuht_detection_array_desc_modifier show_in_tech = "tech_secrets_yuht" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } zroni_storm_caster = { icon = "GFX_starbase_zroni_storm_caster" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_secrets_zroni } is_normal_starbase = yes } resources = { category = starbase_buildings cost = { alloys = 100 minor_artifacts = @minor_artifacts_cost_xl sr_zro = 100 } upkeep = { energy = 20 sr_zro = 1 } } ai_weight = { weight = 50 } on_finished = { if = { limit = { solar_system = { NOT = { has_modifier = zroni_storm } } } solar_system = { system_event = { id = ancrel.9900 } } } } on_destroyed = { solar_system = { system_event = { id = ancrel.9905 } } } custom_tooltip = sm_zroni_storm_caster_desc_modifier show_in_tech = "tech_secrets_zroni" } archaeo_overcharger = { icon = "GFX_starbase_archaeo_overcharger" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_archaeo_overcharger } OR = { is_normal_starbase = yes is_space_citadel = yes } } triggered_station_modifier = { potential = { NOT = { owner = { has_ascension_perk = ap_archaeoengineers } } } ship_shield_mult = 0.33 ship_shield_hardening_add = 0.33 } triggered_station_modifier = { potential = { owner = { has_ascension_perk = ap_archaeoengineers } } ship_shield_mult = 0.5 ship_shield_hardening_add = 0.5 } defense_platform_modifier = { ship_shield_mult = 0.25 ship_shield_hardening_add = 0.25 ship_shield_regen_add_perc = 0.1 } custom_tooltip = sm_archaeo_overcharger_desc_modifier resources = { category = starbase_buildings cost = { alloys = 100 minor_artifacts = @minor_artifacts_cost_xl } upkeep = { energy = 15 exotic_gases = 2 } } show_in_tech = "tech_archaeo_overcharger" ai_build_at_chokepoint = yes ai_build_outside_chokepoint = yes ai_weight = { weight = 100 } } feeder = { icon = "GFX_starbase_feeder" construction_days = 180 potential = { is_normal_starbase = yes exists = owner owner = { has_technology = tech_critter_feeder } } possible = { exists = owner } resources = { category = starbase_buildings cost = { alloys = 50 } produces = { food = 5 } upkeep = { energy = 1 } } custom_tooltip = sm_feeder_tt show_in_tech = "tech_critter_feeder" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } astromining_hub = { icon = "GFX_orbitalring_mineral_hub" construction_days = 360 potential = { is_normal_starbase = yes exists = owner owner = { has_civic = civic_machine_astromining_drones } } possible = { OR = { is_scope_valid = no custom_tooltip = { fail_text = "requires_astromining_bay" OR = { has_starbase_module = astromining_bay starbase_buildable_is_in_queue_before = { first = astromining_bay second = astromining_hub } } } } } resources = { category = starbase_buildings cost = { alloys = 50 } } custom_tooltip = sm_astromining_hub_office_desc_modifier ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } nanite_harvester = { icon = "GFX_starbase_nanite_harvester" construction_days = 360 potential = { exists = owner owner = { has_tradition = tr_nanotech_adopt } is_normal_starbase = yes } possible = { custom_tooltip = { fail_text = "requires_starport" has_starbase_size >= starbase_starport } custom_tooltip = { fail_text = requires_planetoids_for_nanites solar_system = { any_system_planet = { can_have_mineral_deposits = yes NOT = { has_deposit = d_nanite_harvester_deposit } } } } } resources = { category = starbase_buildings cost = { alloys = 500 } upkeep = { energy = 4 mult = value:nanotech_harvester_deposit_num } } on_finished = { solar_system = { system_event = { id = cybernetics.5050 } } } on_destroyed = { solar_system = { system_event = { id = cybernetics.5051 } } } custom_tooltip = nanite_harvester_tooltip ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt modifier = {} } } communications_jammer = { icon = "GFX_starbase_communication_jammer" construction_days = 180 potential = { is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport_or_ring" OR = { has_starbase_size >= starbase_starport is_orbital_ring = yes } } solar_system = { count_starbase_buildings = { type = communications_jammer count < 1 include_being_constructed = yes } } } abort_construction_trigger = { solar_system = { count_starbase_buildings = { type = communications_jammer count > 1 include_being_constructed = yes } } } resources = { category = starbase_buildings cost = { alloys = 50 } upkeep = { energy = 1 } } equipped_component = "STARBASE_AURA_COMMUNICATIONS_JAMMER" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } disruption_field = { icon = "GFX_spaceport_module_orbital_mind_control_lazer" construction_days = 180 potential = { is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport_or_ring" OR = { has_starbase_size >= starbase_starport is_orbital_ring = yes } } solar_system = { count_starbase_buildings = { type = disruption_field count < 1 include_being_constructed = yes } } } abort_construction_trigger = { solar_system = { count_starbase_buildings = { type = disruption_field count > 1 include_being_constructed = yes } } } resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { energy = 2 } } equipped_component = "STARBASE_AURA_DISRUPTION_FIELD" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } warp_fluctuator = { icon = "GFX_spaceport_module_atmospheric_manipulator" construction_days = 180 potential = { exists = owner owner = { has_technology = tech_interstellar_economics is_gestalt = no } is_normal_starbase = yes } possible = { custom_tooltip = { fail_text = "requires_starport" has_starbase_size >= starbase_starport } } resources = { category = starbase_buildings cost = { alloys = 100 } produces = { trade = 4 } upkeep = { energy = 2 } } equipped_component = "SHIP_AURA_HYPERLANE" custom_tooltip = warp_fluctuator_tt triggered_system_modifier = { # Gives some Stability per "Hyperspace Specialty" Councilor level. potential = { OR = { has_councilor = { COUNCILOR = "councilor_hyperspace_specialty" } has_councilor = { COUNCILOR = "councilor_hyperspace_specialty_corporate" } } } planet_stability_add = @councilor_hyperspace_specialty_warp_fluctuator_stability mult = value:councilor_level_combo|COUNCILOR_1|councilor_hyperspace_specialty|COUNCILOR_2|councilor_hyperspace_specialty_corporate| } show_in_tech = "tech_interstellar_economics" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } transit_hub = { icon = "GFX_spaceport_module_pioneering_terminal" construction_days = 180 potential = { exists = owner owner = { has_technology = tech_hyper_drive_2 is_wilderness_empire = no } is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport_or_ring" OR = { has_starbase_size >= starbase_starport is_orbital_ring = yes } } custom_tooltip = { fail_text = "requires_colonized_planet" solar_system = { any_system_colony = { is_owned_by = from } } } solar_system = { count_starbase_buildings = { type = transit_hub count < 1 include_being_constructed = yes } } } abort_construction_trigger = { solar_system = { count_starbase_buildings = { type = communications_jammer count > 1 include_being_constructed = yes } } } resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { energy = 3 } } system_modifier = { planet_resettlement_unemployed_mult = 2.00 } show_in_tech = "tech_hyper_drive_2" ai_weight = { weight = 100 modifier = { factor = 0 NOT = { solar_system = { any_system_colony = { exists = owner owner = { is_country_type = default } } } } } } } command_center = { icon = "GFX_starbase_command_center" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_command_matrix } is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starfortress_or_ring_3" OR = { has_starbase_size >= starbase_starfortress has_starbase_size >= orbital_ring_tier_3 } } solar_system = { count_starbase_buildings = { type = command_center count < 1 include_being_constructed = yes } } } abort_construction_trigger = { solar_system = { count_starbase_buildings = { type = communications_jammer count > 1 include_being_constructed = yes } } } resources = { category = starbase_buildings cost = { alloys = 250 } upkeep = { energy = 5 } } equipped_component = "STARBASE_AURA_COMMAND_CENTER" show_in_tech = "tech_command_matrix" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } trader_proxy_office = { icon = "GFX_starbase_offworld_trading_company" construction_days = 360 potential = { exists = owner owner = { is_homicidal = no is_gestalt = no has_country_flag = has_market_access } solar_system = { any_fleet_in_system = { has_fleet_flag = trader_enclave_station } } is_normal_starbase = yes is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport" has_starbase_size >= starbase_starport } NOT = { has_starbase_building = trader_proxy_office } custom_tooltip = { fail_text = "requires_trader_enclave" solar_system = { OR = { any_system_colony = { exists = owner owner = { is_country_type = default } } AND = { has_star_flag = enclave any_fleet_in_system = { exists = owner owner = { has_country_flag = trader_enclave_country } } } } } } } resources = { category = starbase_buildings cost = { alloys = 100 } produces = { trade = 5 } } country_modifier = { country_trade_fee = -0.05 } triggered_station_modifier = { potential = { hidden_trigger = { exists = this } exists = owner owner = { is_galactic_community_member = yes } OR = { is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" is_active_resolution = "resolution_galacticstudies_extradimensional_experimentation" } } } ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt modifier = { factor = 0 OR = { solar_system = { NOT = { has_star_flag = guardians_traders_system } } has_starbase_building = trader_proxy_office solar_system = { any_fleet_in_system = { has_fleet_flag = trader_enclave_station } } } } } } dragon_hatchery = { icon = "GFX_starbase_dragon_hatchery" construction_days = 720 potential = { exists = owner owner = { is_dragon_breeder_country = yes } is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_citadel" has_starbase_size >= starbase_citadel } OR = { has_starbase_module = shipyard has_starbase_module = hatchery has_starbase_module = beastport starbase_buildable_is_in_queue_before = { first = shipyard second = dragon_hatchery } } } resources = { category = starbase_buildings cost = { alloys = 750 } upkeep = { energy = 10 } } custom_tooltip = dragon_hatchery_tooltip ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt modifier = { factor = 0 owner = { count_owned_starbase = { count >= 1 limit = { has_starbase_building = dragon_hatchery } } } } } } ice_mining_station = { icon = "GFX_starbase_ice_mining_station" construction_days = 360 potential = { exists = owner owner = { has_ascension_perk = ap_hydrocentric } is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport" has_starbase_size >= starbase_starport } custom_tooltip = { fail_text = requires_ice_source solar_system = { any_system_planet = { OR = { is_planet_class = pc_ice_asteroid is_planet_class = pc_frozen } NOT = { has_planet_flag = mercenary_enclave_planet } } } } } resources = { category = starbase_buildings cost = { alloys = 100 } } custom_tooltip = ice_mining_station_tooltip system_modifier = { station_gatherers_produces_mult = 0.15 } ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt modifier = { factor = 0 owner = { count_owned_starbase = { count >= 2 limit = { has_starbase_building = ice_mining_station } } } } } } offspring_outlook = { icon = "GFX_offspring_aura_sb" construction_days = 180 potential = { exists = owner owner = { has_origin = origin_progenitor_hive } is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport" has_starbase_size >= starbase_starport } } resources = { category = starbase_buildings cost = { alloys = 150 } upkeep = { energy = 2 } } equipped_component = "STARBASE_OFFSPRING_OUTLOOK" ai_weight = { weight = 10 } } mercenary_garrison = { icon = "GFX_starbase_mercenary_garrison" construction_days = 360 potential = { exists = owner owner = { is_homicidal = no has_country_flag = mercenary_enclave_diplomacy_engaged } is_normal_starbase = yes is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_starport" has_starbase_size >= starbase_starport } custom_tooltip = { fail_text = "requires_mercenary_agreement" owner = { has_country_flag = mercenary_enclave_bought_mercenary_garrison } } solar_system = { count_starbase_buildings = { type = mercenary_garrison count < 1 include_being_constructed = yes } } } abort_construction_trigger = { solar_system = { count_starbase_buildings = { type = mercenary_garrison count > 1 include_being_constructed = yes } } } equipped_component = "STARBASE_AURA_MERCENARY_GARRISON" triggered_country_modifier = { potential = { hidden_trigger = { exists = this } exists = owner owner = { is_galactic_community_member = yes } OR = { is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" is_active_resolution = "resolution_galacticstudies_extradimensional_experimentation" } } country_naval_cap_add = 5 } resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { energy = 10 trade = 5 } } ai_weight = { weight = 50 } } cordyceptic_reanimation_facility = { icon = "GFX_cordyceptic_reanimation_facility" construction_days = 180 potential = { exists = owner owner = { has_valid_civic = civic_hive_cordyceptic_drones } is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_tiyanki_spawning_system" star.solar_system = { OR = { has_star_flag = tiyanki_graveyard_system has_star_flag = tiyanki_spawn_system has_star_flag = amoeba_home_system } } } } resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { food = 10 } } custom_tooltip = sm_cordyceptic_reanimation_facility_desc_modifier on_finished = { starbase_event = { id = necroids.305 days = 1800 } } ai_build_at_chokepoint = yes ai_build_outside_chokepoint = yes ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } dark_matter_detector = { icon = "GFX_starbase_dark_matter_detector" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_dark_matter_detection } is_normal_starbase = yes } possible = { custom_tooltip = { fail_text = "requires_detection_array" OR = { has_starbase_module = detection_array starbase_buildable_is_in_queue_before = { first = detection_array second = dark_matter_detector } } } NOT = { has_starbase_building = dark_matter_listening_post } } triggered_station_modifier = { potential = { hidden_trigger = { exists = this } has_starbase_module = detection_array } ship_cloaking_detection_add = 1 mult = value:dark_matter_detection_value } resources = { category = starbase_buildings cost = { alloys = 500 sr_dark_matter = 25 } upkeep = { energy = 5 sr_dark_matter = 0.25 } } custom_tooltip = sm_dark_matter_detector_desc_modifier show_in_tech = "tech_dark_matter_detection" ai_build_at_chokepoint = no ai_build_outside_chokepoint = yes ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt modifier = { factor = 0 count_starbase_modules = { type = detection_array count < 1 } } } } dark_matter_listening_post = { icon = "GFX_spaceport_module_navigators_guild" construction_days = 360 resources = { category = starbase_buildings cost = { alloys = 500 sr_dark_matter = 50 } upkeep = { energy = 10 sr_dark_matter = 0.5 } } potential = { exists = owner owner = { is_fallen_empire = yes } OR = { is_normal_starbase = yes is_space_citadel = yes } } possible = { NOR = { has_starbase_module = detection_array has_starbase_building = dark_matter_detector has_starbase_building = listening_post } } station_modifier = { ship_sensor_range_add = 2 ship_hyperlane_range_add = 4 ship_cloaking_detection_add = 6 } triggered_station_modifier = { potential = { hidden_trigger = { exists = this } exists = owner owner = { is_galactic_community_member = yes } OR = { is_active_resolution = "resolution_galacticstudies_astral_studies_network" is_active_resolution = "resolution_galacticstudies_advanced_xenostudies" is_active_resolution = "resolution_galacticstudies_ethical_guideline_refactoring" is_active_resolution = "resolution_galacticstudies_extradimensional_experimentation" } } ship_sensor_range_add = 1 ship_hyperlane_range_add = 1 } ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } dimensional_shrine = { icon = "GFX_spaceport_module_dimensional_shrine" construction_days = 360 potential = { exists = owner owner = { is_dimensional_worship_empire = yes } } possible = { custom_tooltip = { fail_text = "requires_starport_or_ring" OR = { is_scope_valid = no has_starbase_size >= starbase_starport is_orbital_ring = yes is_space_citadel = yes } } custom_tooltip = { fail_text = "requires_dimensional_space_object" solar_system = { OR = { has_natural_wormhole = yes has_astral_rift = yes has_star_flag = lgate has_star_flag = lcluster_lgate has_star_flag = spawned_shroud_tunnel has_star_flag = shroudwalker_enclave_system any_system_planet = { is_astral_scar = yes } } } } } resources = { category = starbase_buildings cost = { alloys = 100 } produces = { unity = @dimensional_shrine_unity_production } upkeep = { energy = 3 } } show_in_tech = "tech_sensors_3" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } reloading_bay = { icon = "GFX_spaceport_module_reloading_bay" construction_days = 360 potential = { exists = owner owner = { is_sovereign_guardianship_empire = yes } } possible = { custom_tooltip = { fail_text = "requires_starport_or_ring" OR = { has_starbase_size >= starbase_starport is_orbital_ring = yes is_space_citadel = yes } } } station_modifier = { ship_fire_rate_mult = 0.25 starbase_defense_platform_capacity_add = 2 } resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { energy = 2 } } ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } growth_chamber = { icon = "GFX_spaceport_module_growth_chamber" construction_days = 360 potential = { exists = owner owner = { has_technology = tech_growth_chamber_1 } is_normal_starbase = yes is_space_citadel = no } possible = { custom_tooltip = { fail_text = "requires_shipyard" OR = { has_starbase_module = shipyard starbase_buildable_is_in_queue_before = { first = shipyard second = growth_chamber } } } } orbit_modifier = { bioship_growth_progress_add = 2 ship_orbit_upkeep_mult = 1.00 } triggered_station_modifier = { potential = { exists = owner owner = { has_technology = tech_growth_chamber_2 } } starbase_shipyard_capacity_add = 2 } resources = { category = starbase_buildings cost = { alloys = 100 exotic_gases = 50 } upkeep = { food = 10 exotic_gases = 2 } } show_in_tech = "tech_growth_chamber_1" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } storm_attraction_computer = { icon = "GFX_starbase_cosmic_storm_attraction_computer" construction_days = @b1_time potential = { has_cosmic_storms_dlc = yes is_orbital_ring = no owner = { has_technology = "tech_storm_manipulation" } } possible = { solar_system = { system_has_storm_repelling_tech = no } } show_in_tech = tech_storm_manipulation resources = { category = starbase_buildings cost = { alloys = 100 } cost = { trigger = { exists = owner NOT = { owner = { has_origin = origin_storm_chasers } } } rare_crystals = 25 } upkeep = { energy = @b2_upkeep } upkeep = { trigger = { exists = owner NOT = { owner = { has_origin = origin_storm_chasers } } } rare_crystals = 0.75 } } triggered_station_modifier = { potential = { always = yes } storm_attraction_field_modifier = 0.8 } on_finished = { create_influence_field_if_needed = yes } custom_tooltip = "cosmic_storm_attraction_computer_tt" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } storm_repelling_computer = { icon = "GFX_starbase_cosmic_storm_repelling_computer" construction_days = @b1_time potential = { has_cosmic_storms_dlc = yes is_orbital_ring = no owner = { has_technology = "tech_storm_manipulation" } } possible = { solar_system = { system_has_storm_attraction_tech = no } } show_in_tech = tech_storm_manipulation resources = { category = starbase_buildings cost = { alloys = 100 rare_crystals = 25 } upkeep = { energy = @b2_upkeep rare_crystals = 0.75 } } triggered_station_modifier = { potential = { always = yes } storm_repelling_field_modifier = 0.8 } on_finished = { create_influence_field_if_needed = yes } custom_tooltip = "cosmic_storm_repellent_computer_tt" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } hyperlane_detailer = { icon = GFX_starbase_hyperlane_detailer construction_days = @b0_time triggered_system_modifier = { potential = { always = yes } ship_speed_mult = 0.1 mult = value:hyperlane_detailer_modifier_mult } potential = { owner = { has_country_flag = unlocked_hyperlane_detailer } } resources = { category = starbase_buildings cost = { alloys = 150 minor_artifacts = 45 } upkeep = { energy = @b2_upkeep } } ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } #Tiyanki Voidlure inline_script = { script = grand_archive/voidlure CATEGORY = tiyanki SPAWN_EVENT_ID = grand_archive.7000 } #Amoeba Voidlure inline_script = { script = grand_archive/voidlure CATEGORY = space_amoeba SPAWN_EVENT_ID = grand_archive.7001 } #Crystal Voidlure inline_script = { script = grand_archive/voidlure CATEGORY = crystalline_entity SPAWN_EVENT_ID = grand_archive.7002 } #Voidworm Voidlure inline_script = { script = grand_archive/voidlure CATEGORY = voidworm SPAWN_EVENT_ID = grand_archive.7003 } #Cutholoid Voidlure inline_script = { script = grand_archive/voidlure CATEGORY = cutholoid SPAWN_EVENT_ID = grand_archive.7004 } pyroclastic_resonator = { icon = GFX_starbase_pyroclastic_resonator construction_days = 360 potential = { has_shroud_dlc = yes exists = owner owner = { has_technology = tech_pyroclastic_resonation } is_orbital_ring = no } resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { exotic_gases = 1 } produces = { energy = 10 } produces = { energy = 5 mult = value:num_planet_of_class_in_system|CLASS|pc_molten| } } show_in_tech = "tech_pyroclastic_resonation" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } aura_emitter = { icon = "GFX_starbase_aura_emitter" construction_days = 180 potential = { has_shroud_dlc = yes exists = owner owner = { has_technology = tech_aura_resonation } is_orbital_ring = no } resources = { category = starbase_buildings cost = { alloys = 500 } upkeep = { energy = 3 sr_zro = 1 } } on_finished = { solar_system = { if = { limit = { is_psionic_aura_suppressed = no } natural_spawn_psionic_aura = { OWNER = root.owner } } } } show_in_tech = "tech_aura_resonation" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt } } gravitational_centrifuge = { icon = "GFX_spaceport_gravitational_centrifuge" construction_days = 360 potential = { exists = owner owner = { has_crisis_level = crisis_hyperthermia_level_1 } } possible = { custom_tooltip = { fail_text = "requires_multiple_stars_or_or_bh" star = { OR = { is_star_class = sc_black_hole is_binary_star = yes is_trinary_star = yes } } } } resources = { category = starbase_buildings cost = { alloys = 100 } upkeep = { energy = 2 } } custom_tooltip = "gravitational_centrifuge_tt" ai_weight = { weight = 100 #use same weight here - ai weighting is done in starbase_types.txt modifier = { factor = 0 solar_system = { any_neighbor_system = { exists = owner owner = { NOT = { is_same_value = root.owner } } } } } modifier = { factor = 0 owner = { count_owned_starbase = { count >= 5 limit = { has_starbase_building = gravitational_centrifuge } } } } } }