megastructures = {
	use_for_ai_budget = yes
	ai_use_parent_for_resources_upkeep = {
		energy
		consumer_goods
	}
	parent = country
	modifier_category = megastructure

	generate_mult_modifiers = {
		produces
		cost
		upkeep
	}
	generate_add_modifiers = {
		produces
		cost
		upkeep
	}
	triggered_cost_modifier = { #from gigastructure mod
		key = megastructure_build
		modifier_types = { mult }
	}
	triggered_produces_modifier = { #from gigastructure mod
		key = megastructure
		modifier_types = { mult }
	}
	triggered_upkeep_modifier = { #from gigastructure mod
		key = megastructure
		modifier_types = { mult }
	}
}

ship_components = {
	parent = ships

	generate_mult_modifiers = {
		cost
        produces
        upkeep
	}

	generate_add_modifiers = {
		cost
        produces
        upkeep
	}
}

ship_sections = {
	parent = ships
	generate_mult_modifiers = {
		produces
		upkeep
		cost
	}
	generate_add_modifiers = {
		produces
		upkeep
		cost
	}
}

ship_upgrades = {
	parent = ships
	use_for_ai_budget = yes	
	generate_mult_modifiers = {
		produces
		upkeep
		cost
	}
	generate_add_modifiers = {
		produces
		upkeep
		cost
	}
}

stations = {
	use_for_ai_budget = yes
	ai_use_parent_for_resources_upkeep = {
		energy
	}

	generate_mult_modifiers = {
		produces
		upkeep
		cost
	}

	generate_add_modifiers = {
		produces
		upkeep
		cost
	}

	parent = country
}

planets = {
	parent = country
	use_for_ai_budget = yes
	ai_use_parent_for_resources_upkeep = {
		energy
		consumer_goods
	}
	generate_mult_modifiers = {
		produces
		upkeep
		cost
	}
	generate_add_modifiers = {
		produces
		upkeep
		cost
	}

	hidden = yes
}

planet_districts = {
	parent = planet_structures

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}
	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
	modifier_category = colony
}

planet_districts_cities = {
	parent = planet_districts
	generate_mult_modifiers = {
		cost
		produces
		upkeep
	}
	generate_add_modifiers = {
		cost
		produces
		upkeep
	}
}

planet_structures = {
	parent = planets
	hidden = yes
	generate_mult_modifiers = {
		produces
		upkeep
		cost
	}
	generate_add_modifiers = {
		produces
		upkeep
		cost
	}
	modifier_category = colony
}

planet_buildings = {
	parent = planet_structures

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}
	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
	modifier_category = colony
}

planet_buildings_strongholds = {
	parent = planet_buildings

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}
	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

colonies = {
	use_for_ai_budget = yes
	ai_use_parent_for_resources_upkeep = {
		energy
	}

	modifier_category = ship

	triggered_cost_modifier = {
		key = ship_colonizer
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes #When called from ship designer the design is not valid yet.
			is_ship_class = shipclass_colonizer
		}
	}

	generate_mult_modifiers = {
		produces
		cost
		upkeep
	}

	generate_add_modifiers = {
		produces
		cost
		upkeep
	}

	parent = ships
}

station_gatherers = {
	parent = stations

	generate_mult_modifiers = {
		produces
		cost
		upkeep
	}
	generate_add_modifiers = {
		produces
		cost
		upkeep
	}
	modifier_category = deposit #it applies to the planet
}

station_researchers = {
	parent = stations

	generate_mult_modifiers = {
		produces
		cost
		upkeep
	}
	generate_add_modifiers = {
		produces
		cost
		upkeep
	}
	modifier_category = deposit #it applies to the planet
}

station_observers = {
	parent = stations

	generate_mult_modifiers = {
		produces
		cost
		upkeep
	}

	generate_add_modifiers = {
		produces
		cost
		upkeep
	}
}

station_observer_missions = {
	parent = station_observers

	generate_mult_modifiers = {
		produces
		cost
		upkeep
	}

	generate_add_modifiers = {
		produces
		cost
		upkeep
	}
}

starbases = {
	parent = country
	use_for_ai_budget = yes

	generate_mult_modifiers = {
		upkeep
		cost
	}
	generate_add_modifiers = {
		upkeep
		cost
	}
	ai_use_parent_for_resources_upkeep = {
		energy
		trade
		food
	}
	
	triggered_cost_modifier = {
		key = starbase_outpost
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes #When called from ship designer the design is not valid yet.
			OR = {
				is_ship_size = starbase_outpost
				is_ship_size = orbital_ring_tier_1
			}
		}
	}
}

starbase_buildings = {
	parent = starbase_constructions

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
	modifier_category = starbase
}

starbase_modules = {
	parent = starbase_constructions

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
	modifier_category = starbase
}

ships = {
	use_for_ai_budget = yes
	generate_mult_modifiers = {
		upkeep
		logistics
		cost
		produces
	}
	generate_add_modifiers = {
		upkeep
		logistics
		cost
		produces
	}

	ai_use_parent_for_resources_upkeep = {
		energy
	}

	parent = country
	modifier_category = ship

	triggered_cost_modifier = {
		key = starbase_shipyard_build
		use_parent_icon = yes

		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
		}
	}

	triggered_cost_modifier = {
		key = starbase_shipyard_artificial_build
		use_parent_icon = yes

		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			is_ship_class = shipclass_military
			is_space_fauna = no
		}
	}

	triggered_cost_modifier = {
		key = starbase_shipyard_space_fauna_build
		use_parent_icon = yes

		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			is_space_fauna = yes
		}
	}

	triggered_cost_modifier = {
		key = gdf_ship
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			has_ship_owner_type = galactic_community
		}
	}

	triggered_cost_modifier = {
		key = ship_nanite_swarmer
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			is_ship_size = nanite_swarmer
		}
	}

	triggered_cost_modifier = {
		key = ship_corvette
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			OR = {
				is_ship_size = corvette
				is_ship_size = offspring_corvette
				is_ship_size = frigate
			}
		}
	}

	#triggered_upkeep_modifier = {
	#	key = ship_corvette
	#	use_parent_icon = yes
	#	modifier_types = {
	#		add
	#	}
	#
	#	trigger = {
	#		is_scope_valid = yes
	#		OR = {
	#			is_ship_size = corvette
	#			is_ship_size = offspring_corvette
	#			is_ship_size = frigate
	#		}
	#	}
	#}

	triggered_cost_modifier = {
		key = ship_destroyer
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			OR = {
				is_ship_size = destroyer
				is_ship_size = offspring_destroyer
			}
		}
	}

	#triggered_upkeep_modifier = {
	#	key = ship_destroyer
	#	use_parent_icon = yes
	#	modifier_types = {
	#		add
	#	}
	#
	#	trigger = {
	#		is_scope_valid = yes
	#		OR = {
	#			is_ship_size = destroyer
	#			is_ship_size = offspring_destroyer
	#		}
	#	}
	#}

	triggered_cost_modifier = {
		key = ship_cruiser
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			OR = {
				is_ship_size = cruiser
				is_ship_size = offspring_cruiser
			}
		}
	}

	#triggered_upkeep_modifier = {
	#	key = ship_cruiser
	#	use_parent_icon = yes
	#	modifier_types = {
	#		add
	#	}
	#
	#	trigger = {
	#		is_scope_valid = yes
	#		OR = {
	#			is_ship_size = cruiser
	#			is_ship_size = offspring_cruiser
	#		}
	#	}
	#}

	triggered_cost_modifier = {
		key = ship_battleship
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			OR = {
				is_ship_size = battleship
				is_ship_size = offspring_battleship
			}
		}
	}

	#triggered_upkeep_modifier = {
	#	key = ship_battleship
	#	use_parent_icon = yes
	#	modifier_types = {
	#		add
	#	}
	#
	#	trigger = {
	#		is_scope_valid = yes
	#		OR = {
	#			is_ship_size = battleship
	#			is_ship_size = offspring_battleship
	#		}
	#	}
	#}

	#triggered_upkeep_modifier = {
	#	key = ship_titan
	#	use_parent_icon = yes
	#	modifier_types = {
	#		add
	#	}
	#
	#	trigger = {
	#		is_scope_valid = yes
	#		is_ship_size = titan
	#	}
	#}

	triggered_cost_modifier = {
		key = ship_mauler
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			OR = {
				is_ship_size = mauler_stage_1
				is_ship_size = mauler_stage_2
				is_ship_size = mauler_stage_3
				is_ship_size = offspring_mauler_stage_1
				is_ship_size = offspring_mauler_stage_2
				is_ship_size = offspring_mauler_stage_3
			}
		}
	}

	triggered_cost_modifier = {
		key = ship_stinger
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			OR = {
				is_ship_size = stinger_stage_1
				is_ship_size = stinger_stage_2
				is_ship_size = stinger_stage_3
				is_ship_size = offspring_stinger_stage_1
				is_ship_size = offspring_stinger_stage_2
				is_ship_size = offspring_stinger_stage_3
			}
		}
	}

	triggered_cost_modifier = {
		key = ship_weaver
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			OR = {
				is_ship_size = weaver_stage_1
				is_ship_size = weaver_stage_2
				is_ship_size = weaver_stage_3
				is_ship_size = offspring_stinger_stage_1
				is_ship_size = offspring_stinger_stage_2
				is_ship_size = offspring_stinger_stage_3
			}
		}
	}

	triggered_cost_modifier = {
		key = ship_harbinger
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			OR = {
				is_ship_size = harbinger_stage_1
				is_ship_size = harbinger_stage_2
				is_ship_size = harbinger_stage_3
				is_ship_size = offspring_harbinger_stage_1
				is_ship_size = offspring_harbinger_stage_2
				is_ship_size = offspring_harbinger_stage_3
			}
		}
	}

	triggered_cost_modifier = {
		key = ship_military_station_small
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			is_ship_size = military_station_small
		}
	}

	triggered_upkeep_modifier = {
		key = ship_military_station_small
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			is_ship_size = military_station_small
		}
	}

	triggered_cost_modifier = {
		key = ship_military
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			OR = {
				is_ship_class = shipclass_military
				is_ship_class = shipclass_military_special
			}
		}
	}

	triggered_upkeep_modifier = {
		key = ship_military
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			OR = {
				is_ship_class = shipclass_military
				is_ship_class = shipclass_military_special
			}
		}
	}

	triggered_upkeep_modifier = {
		key = ship_science
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			is_ship_class = shipclass_science_ship
		}
	}

	triggered_upkeep_modifier = {
		key = ship_military_artificial
		use_parent_icon = yes

		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			OR = {
				is_ship_class = shipclass_military
				is_ship_class = shipclass_military_special
			}
			is_space_fauna = no
		}
	}
	
	triggered_produces_modifier = {
		key = ship_tiyanki
		use_parent_icon = yes

		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			is_ship_category = tiyanki
		}
	}

	triggered_produces_modifier = {
		key = ship_amoeba
		use_parent_icon = yes

		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			is_ship_category = space_amoeba
		}
	}

	triggered_produces_modifier = {
		key = ship_crystalline_entity
		use_parent_icon = yes

		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			is_ship_category = crystalline_entity
		}
	}

	triggered_produces_modifier = {
		key = ship_voidworm
		use_parent_icon = yes

		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			is_ship_category = voidworm
		}
	}

	triggered_produces_modifier = {
		key = ship_cutholoid
		use_parent_icon = yes

		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			is_ship_category = cutholoid
		}
	}
	
	# special to make shipsize_science_upkeep_mult work
	triggered_upkeep_modifier = {
		key = shipsize_science
		use_parent_icon = yes
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes
			is_ship_size = science
		}
	}
	
}

