buffer = {
	hidden = yes
	use_for_ai_budget = yes
}

country = {
	hidden = yes
	use_for_ai_budget = yes
	generate_mult_modifiers = {
		produces
		cost
		upkeep
	}
	#modifier category: economic_unit is fine

	generate_add_modifiers = {
		produces
		cost
	}
}

# Base income of country
country_base = {
	parent = country
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

trade = {
	parent = country
	use_for_ai_budget = yes
}

trade_routes = {
	parent = trade
	generate_mult_modifiers = {
		produces
	}
}

situations = {
	parent = country
}

resolutions = {
	parent = country
	use_for_ai_budget = yes
	generate_add_modifiers = {
		cost
	}
	generate_mult_modifiers = {
		cost
	}
}

edicts = {
	use_for_ai_budget = yes
	parent = country
	ai_use_parent_for_resources_upkeep = {
		energy
		food
		minerals
		unity
	}
	generate_mult_modifiers = {
		produces 
		cost
		upkeep
	}
	generate_add_modifiers = {
		produces
		cost
		upkeep
	}
	modifier_category = country
	add_unscaled_value_to_tooltip = yes
	scaled_value_key = "ECONOMICS_SCALED_RESOURCES_EMPIRE_SIZE_STRING"
}

edicts_unscaled = {
	use_for_ai_budget = yes
	parent = edicts
	add_unscaled_value_to_tooltip = no
}

rare_edicts = {
	use_for_ai_budget = no
	parent = edicts
	generate_mult_modifiers = {
		produces 
		cost
		upkeep
	}

	generate_add_modifiers = {
		produces
		cost
		upkeep
	}
}

ship_edicts = {
	parent = rare_edicts
	use_for_ai_budget = no
}

campaigns = {
	use_for_ai_budget = no
	parent = edicts
	generate_mult_modifiers = {
		produces 
		cost
		upkeep
	}

	generate_add_modifiers = {
		produces
		cost
		upkeep
	}
}

decisions = {
	use_for_ai_budget = yes
	parent = country
    generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

megastructures = {
	use_for_ai_budget = yes
	ai_use_parent_for_resources_upkeep = {
		energy
		consumer_goods
	}
	parent = country
	modifier_category = megastructure
	generate_mult_modifiers = {
		cost
		produces
		upkeep
	}
	generate_add_modifiers = {
		cost
        produces
        upkeep
	}
	triggered_cost_modifier = {
		key = megastructure_build
		modifier_types = { mult }
	}
	triggered_produces_modifier = {
		key = megastructure
		modifier_types = { mult }
	}
	triggered_upkeep_modifier = {
		key = megastructure
		modifier_types = { mult }
	}
}

megastructures_habitat = {
	use_for_ai_budget = yes
	parent = megastructures
	generate_mult_modifiers = {
		cost
		produces
		upkeep
	}
	generate_add_modifiers = {
		cost
		produces
		upkeep
	}
	modifier_category = megastructure
}

megastructures_gateways = {
	use_for_ai_budget = yes
	parent = megastructures
	generate_mult_modifiers = {
		cost
	}
	modifier_category = megastructure
}

megastructures_hyper_relay = {
	parent = megastructures
	use_for_ai_budget = yes
	ai_use_parent_for_resources_upkeep = {
		energy
		consumer_goods
	}
	generate_add_modifiers = {
		upkeep
		produces
		cost
	}
	generate_mult_modifiers = {
		upkeep
		produces
		cost
	}
	modifier_category = megastructure
}

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

	ai_use_parent_for_resources_upkeep = {
		energy
		minerals
		food
	}

	parent = country
	modifier_category = ship

	triggered_cost_modifier = {
		key = starbase_shipyard_build
		use_parent_icon = yes

		modifier_types = {
			mult
			add
		}
	}

	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_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 = { (Ben_D): #Commented out by Paradox
	# 	key = ship_corvette
	# 	use_parent_icon = yes
	# 	modifier_types = {
	# 		mult
	# 		add
	# 	}

	# 	trigger = {
	# 		is_scope_valid = yes #When called from ship designer the design is not valid yet.
	# 		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 = { (Ben_D): #Commented out by Paradox
	# 	key = ship_destroyer
	# 	use_parent_icon = yes
	# 	modifier_types = {
	# 		mult
	# 		add
	# 	}

	# 	trigger = {
	# 		is_scope_valid = yes #When called from ship designer the design is not valid yet.
	# 		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 = { (Ben_D): #Commented out by Paradox
	# 	key = ship_cruiser
	# 	use_parent_icon = yes
	# 	modifier_types = {
	# 		mult
	# 		add
	# 	}

	# 	trigger = {
	# 		is_scope_valid = yes #When called from ship designer the design is not valid yet.
	# 		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 = { (Ben_D): #Commented out by Paradox
	# 	key = ship_battleship
	# 	use_parent_icon = yes
	# 	modifier_types = {
	# 		mult
	# 		add
	# 	}

	# 	trigger = {
	# 		is_scope_valid = yes #When called from ship designer the design is not valid yet.
	# 		OR = {
	# 			is_ship_size = battleship
	# 			is_ship_size = offspring_battleship
	# 		}
	# 	}
	# }
	
	# triggered_cost_modifier = { (Ben_D): #Commented out by Paradox
	# 	key = ship_titan
	# 	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_size = titan
	# 	}
	# }
    
    triggered_cost_modifier = {
		key = ship_juggernaut
		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_size = juggernaut
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_juggernaut
		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_size = juggernaut
		}
	}
	
	triggered_cost_modifier = {
		key = ship_colossus
		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_size = colossus
		}
	}
	triggered_upkeep_modifier = {
		key = ship_colossus
		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_size = colossus
		}
	}
	triggered_cost_modifier = {
		key = ship_military_station_small
		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_size = military_station_small
		}
	}
	triggered_upkeep_modifier = {
		key = ship_military_station_small #Girion had this as: shipsize_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_ion_cannon
		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_size = ion_cannon
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_ion_cannon
		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_size = ion_cannon
		}
	}
	triggered_cost_modifier = {
		key = ship_extended_military_station_medium
		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_size = extended_military_station_medium
		}
	}
    
    triggered_upkeep_modifier = {
		key = ship_extended_military_station_medium
		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_size = extended_military_station_medium
		}
	}
	triggered_cost_modifier = {
		key = ship_extended_military_station_large 
		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_size = extended_military_station_large
		}
	}
    
    triggered_upkeep_modifier = {
		key = ship_extended_military_station_large 
		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_size = extended_military_station_large
		}
	}

	triggered_cost_modifier = {
		key = ship_science
		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_science_ship
		}
	}

	triggered_upkeep_modifier = {
		key = ship_science
		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_science_ship
		}
	}

	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_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.
			is_ship_size = starbase_outpost
		}
	}
    
	triggered_upkeep_modifier = {
		key = starbase_outpost
		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_size = starbase_outpost
		}
	}
	
	triggered_cost_modifier = {
		key = starbase_starport
		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_size = starbase_starport
		}
	}
	
	triggered_upkeep_modifier = {
		key = starbase_starport
		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_size = starbase_starport
		}
	}
	
	triggered_cost_modifier = {
		key = starbase_starhold
		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_size = starbase_starhold
		}
	}
	
	triggered_upkeep_modifier = {
		key = starbase_starhold
		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_size = starbase_starhold
		}
	}
	
	triggered_cost_modifier = {
		key = starbase_starfortress
		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_size = starbase_starfortress
		}
	}
	
	triggered_upkeep_modifier = {
		key = starbase_starfortress
		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_size = starbase_starfortress
		}
	}
	
	triggered_cost_modifier = {
		key = starbase_citadel
		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_size = starbase_citadel
		}
	}
	
	triggered_upkeep_modifier = {
		key = starbase_citadel
		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_size = starbase_citadel
		}
	}

	triggered_cost_modifier = {
		key = ship_StrikeCruiser
		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_size = StrikeCruiser
		}
	}

	triggered_upkeep_modifier = {
		key = ship_StrikeCruiser
		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_size = StrikeCruiser
		}
	}
	
	triggered_cost_modifier = {
		key = ship_constructor
		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_constructor
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_constructor
		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_constructor
		}
	}
	
	triggered_cost_modifier = {
		key = ship_colossus
		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_size = colossus
		}
	}
	triggered_upkeep_modifier = {
		key = ship_colossus
		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_size = colossus
		}
	}
	
	triggered_cost_modifier = {
		key = ship_juggernaut
		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_size = juggernaut
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_juggernaut
		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_size = juggernaut
		}
	}

	triggered_cost_modifier = {
		key = ship_Flagship
		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_size = Flagship
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_Flagship
		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_size = Flagship
		}
	}
	
	triggered_cost_modifier = {
		key = ship_explorationship
		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_size = explorationship
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_explorationship
		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_size = explorationship
		}
	}
	
	triggered_cost_modifier = {
		key = ship_escortcarrier
		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_size = escortcarrier
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_escortcarrier
		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_size = escortcarrier
		}
	}
	triggered_cost_modifier = {
		key = ship_supportship
		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_size = supportship
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_supportship
		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_size = supportship
		}
	}
	triggered_cost_modifier = {
        key = ship_dreadnought
        use_parent_icon = yes
        modifier_types = {
            mult
        }

        trigger = {
            is_scope_valid = yes #When called from ship designer the design is not valid yet.
            OR = {
                is_ship_class = buildable_battlecruiser
                is_ship_class = buildable_dreadnought
                is_ship_class = buildable_yamato
                is_ship_class = buildable_executor
				is_ship_size = Dreadnought
            }
        }
    }

	triggered_upkeep_modifier = {
        key = ship_dreadnought
        use_parent_icon = yes
        modifier_types = {
            mult
        }

        trigger = {
            is_scope_valid = yes #When called from ship designer the design is not valid yet.
            OR = {
                is_ship_class = buildable_battlecruiser
                is_ship_class = buildable_dreadnought
                is_ship_class = buildable_yamato
                is_ship_class = buildable_executor
				is_ship_size = Dreadnought
            }
        }
    }
	
	triggered_cost_modifier = {
		key = ship_military_station_medium
		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_size = military_station_medium
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_military_station_medium
		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_size = military_station_medium
		}
	}
	
	triggered_cost_modifier = {
		key = ship_military_station_large
		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_size = military_station_large
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_military_station_large
		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_size = military_station_large
		}
	}
	###From forgotten Hive Queens mod###
	triggered_cost_modifier = {
		key = ship_headquarters
		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_size = headquarters
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_headquarters
		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_size = headquarters
		}
	}
	###End of forgotten Hive Queens mod###
	triggered_cost_modifier = {
		key = ship_rs_battlecruiser
		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_size = rs_battlecruiser
		}
	}

	triggered_upkeep_modifier = {
		key = ship_rs_battlecruiser
		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_size = rs_battlecruiser
		}
	}

	triggered_cost_modifier = {
		key = ship_rs_ea_cruiser
		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_size = rs_ea_cruiser
		}
	}

	triggered_upkeep_modifier = {
		key = ship_rs_ea_cruiser
		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_size = rs_ea_cruiser
		}
	}

	triggered_cost_modifier = {
		key = ship_rs_support_cruiser
		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_size = rs_support_cruiser
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_rs_support_cruiser
		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_size = rs_support_cruiser
		}
	}
	
	triggered_cost_modifier = {
		key = ship_rs_dreadnought
		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_size = rs_dreadnought
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_rs_dreadnought
		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_size = rs_dreadnought
		}
	}
	
	triggered_cost_modifier = {
		key = ship_rs_heavy_dreadnought_type_a
		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_size = rs_heavy_dreadnought_type_a
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_rs_heavy_dreadnought_type_a
		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_size = rs_heavy_dreadnought_type_a
		}
	}
	
	triggered_cost_modifier = {
		key = ship_rs_heavy_dreadnought_type_b
		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_size = rs_heavy_dreadnought_type_b
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_rs_heavy_dreadnought_type_b
		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_size = rs_heavy_dreadnought_type_b
		}
	}
	
	triggered_cost_modifier = {
		key = ship_rs_heavy_dreadnought_type_c
		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_size = rs_heavy_dreadnought_type_c
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_rs_heavy_dreadnought_type_c
		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_size = rs_heavy_dreadnought_type_c
		}
	}
	
	triggered_cost_modifier = {
		key = ship_rs_heavy_dreadnought_type_d
		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_size = rs_heavy_dreadnought_type_d
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_rs_heavy_dreadnought_type_d
		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_size = rs_heavy_dreadnought_type_d
		}
	}
	
	triggered_cost_modifier = {
		key = ship_rs_heavy_dreadnought_type_e
		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_size = rs_heavy_dreadnought_type_e
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_rs_heavy_dreadnought_type_e
		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_size = rs_heavy_dreadnought_type_e
		}
	}
	
	triggered_cost_modifier = {
		key = ship_rs_heavy_dreadnought_type_f
		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_size = rs_heavy_dreadnought_type_f
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_rs_heavy_dreadnought_type_f
		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_size = rs_heavy_dreadnought_type_f
		}
	}
	
	triggered_cost_modifier = {
		key = ship_rs_heavy_dreadnought_type_g
		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_size = rs_heavy_dreadnought_type_g
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_rs_heavy_dreadnought_type_g
		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_size = rs_heavy_dreadnought_type_g
		}
	}
	
	triggered_cost_modifier = {
		key = ship_rs_heavy_dreadnought_type_h
		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_size = rs_heavy_dreadnought_type_h
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_rs_heavy_dreadnought_type_h
		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_size = rs_heavy_dreadnought_type_h
		}
	}
	
	triggered_cost_modifier = {
		key = ship_rs_heavy_dreadnought_type_i
		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_size = rs_heavy_dreadnought_type_i
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_rs_heavy_dreadnought_type_i
		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_size = rs_heavy_dreadnought_type_i
		}
	}
	#End of RS	
	#POTE
	triggered_cost_modifier = {
		key = ship_z_pote_military_station_medium
		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_size = z_pote_military_station_medium
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_z_pote_military_station_medium
		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_size = z_pote_military_station_medium
		}
	}
	
	triggered_cost_modifier = {
		key = ship_z_pote_military_station_large
		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_size = z_pote_military_station_large
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_z_pote_military_station_large
		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_size = z_pote_military_station_large
		}
	}
}

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
		}
	}

	triggered_upkeep_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
}

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

ship_sections = {
	parent = ships
	generate_mult_modifiers = {
		cost
		produces
		upkeep
	}
	generate_add_modifiers = {
		cost
		produces
		upkeep
	}
	
	triggered_cost_modifier = {
		key = ship_military_station_small
		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_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 #When called from ship designer the design is not valid yet.
			is_ship_size = military_station_small
		}
	}
	
	triggered_cost_modifier = {
		key = ship_military_station_medium
		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_size = military_station_medium
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_military_station_medium
		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_size = military_station_medium
		}
	}
	
	triggered_cost_modifier = {
		key = ship_military_station_large
		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_size = military_station_large
		}
	}
	
	triggered_upkeep_modifier = {
		key = ship_military_station_large
		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_size = military_station_large
		}
	}
}

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

stations = {
	use_for_ai_budget = yes
	ai_use_parent_for_resources_upkeep = {
		energy
	}

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

	parent = country
	modifier_category = deposit #it applies to the planet
}

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_add_modifiers = {
		produces
		cost
		upkeep
	}
	generate_mult_modifiers = {
		produces
		cost
		upkeep
	}
}

station_observer_missions = {
	parent = station_observers
	
	generate_mult_modifiers = {
		produces
		cost
		upkeep
	}
	generate_add_modifiers = {
		produces
		cost
		upkeep
	}
}

starbases = {
	use_for_ai_budget = yes

	generate_mult_modifiers = {
		cost
		upkeep
	}
	generate_add_modifiers = {
		cost
		upkeep
	}
	ai_use_parent_for_resources_upkeep = {
		energy
	}

	parent = country
	modifier_category = starbase
}

starbase_stations = {
	parent = starbases
	modifier_category = starbase

	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
			}
		}
	}
	
	triggered_upkeep_modifier = {
		key = starbase_outpost
		use_parent_icon = yes
		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 #TODOJM: Remove?
			}
		}
	}
	
	triggered_cost_modifier = {
		key = starbase_starport
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes #When called from ship designer the design is not valid yet.
			is_ship_size = starbase_starport
		}
	}
	triggered_upkeep_modifier = {
		key = starbase_starport
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes #When called from ship designer the design is not valid yet.
			is_ship_size = starbase_starport
		}
	}
	
	triggered_cost_modifier = {
		key = starbase_starhold
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes #When called from ship designer the design is not valid yet.
			is_ship_size = starbase_starhold
		}
	}
	triggered_upkeep_modifier = {
		key = starbase_starhold
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes #When called from ship designer the design is not valid yet.
			is_ship_size = starbase_starhold
		}
	}
	
	triggered_cost_modifier = {
		key = starbase_starfortress
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes #When called from ship designer the design is not valid yet.
			is_ship_size = starbase_starfortress
		}
	}
	triggered_upkeep_modifier = {
		key = starbase_starfortress
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes #When called from ship designer the design is not valid yet.
			is_ship_size = starbase_starfortress
		}
	}
	
	triggered_cost_modifier = {
		key = starbase_citadel
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes #When called from ship designer the design is not valid yet.
			is_ship_size = starbase_citadel
		}
	}
	triggered_upkeep_modifier = {
		key = starbase_citadel
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes #When called from ship designer the design is not valid yet.
			is_ship_size = starbase_citadel
		}
	}
	
	triggered_cost_modifier = {
		key = starbase_ion_cannon
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes #When called from ship designer the design is not valid yet.
			is_ship_size = ion_cannon
		}
	}
	triggered_upkeep_modifier = {
		key = starbase_ion_cannon
		modifier_types = {
			mult
			add
		}

		trigger = {
			is_scope_valid = yes #When called from ship designer the design is not valid yet.
			is_ship_size = ion_cannon
		}
	}
	
	triggered_upkeep_modifier = {
		key = starbase_upgraded
		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_starbase
			NOT = { is_ship_size = starbase_outpost }
			NOT = { is_ship_size = juggernaut }
		}
	}
	triggered_cost_modifier = {
		key = starbase_xl_cannon
		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_size = xl_cannon
		}
	}

	triggered_upkeep_modifier = {
		key = starbase_xl_cannon
		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_size = xl_cannon
		}
	}
}

starbase_constructions = {
	parent = starbases

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

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
}

terraforming = {
	parent = country
	use_for_ai_budget = yes

	generate_mult_modifiers = {
		cost
		upkeep
	}
	generate_add_modifiers = {
		cost
		upkeep
	}
	modifier_category = planet
}

terraforming_ocean = {
	parent = terraforming

	generate_mult_modifiers = {
		cost
		upkeep
	}
	generate_add_modifiers = {
		cost
		upkeep
	}
	modifier_category = planet
}

planets = {
	parent = country
	use_for_ai_budget = yes
	ai_use_parent_for_resources_upkeep = {
		energy
		consumer_goods
	}

	generate_mult_modifiers = {
		upkeep
		produces
	}
	generate_add_modifiers = {
		upkeep
		produces
	}
	hidden = yes
}

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

planet_buildings = {
	parent = planet_structures

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

planet_buildings_strongholds = {
	parent = planet_buildings
	modifier_category = planet
	
	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}
	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

planet_branch_offices = {
	parent = planets

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
	modifier_category = planet
}

planet_buildings_hab_capital = {
	parent = planet_buildings

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
	modifier_category = planet
}



planet_buildings_clone_vats = {
	parent = planet_buildings

	generate_mult_modifiers = {
		upkeep
	}
	modifier_category = planet
}

planet_branch_office_buildings = {
	parent = planets
	
	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

planet_holdings = {
	parent = planets
	
	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

planet_districts = {
	parent = planet_structures

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

planet_districts_farming = {
	parent = planet_districts

	generate_add_modifiers = {
		produces
	}

	modifier_category = planet
}

planet_districts_mining = {
	parent = planet_districts

	generate_add_modifiers = {
		produces
	}
	
	modifier_category = planet
}

planet_districts_generator = {
	parent = planet_districts

	generate_add_modifiers = {
		produces
	}
	
	modifier_category = planet
}

planet_districts_cities = {
	parent = planet_districts

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

planet_districts_industrial = {
	parent = planet_districts

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

planet_districts_hab = {
	parent = planet_districts
	generate_mult_modifiers = {
		upkeep
	}
}

planet_districts_hab_energy = {
	parent = planet_districts_hab

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

planet_districts_hab_industrial = {
	parent = planet_districts_hab

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

planet_districts_hab_research = {
	parent = planet_districts_hab

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

planet_districts_hab_mining = {
	parent = planet_districts_hab

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

planet_districts_hab_trade = {
	parent = planet_districts_hab

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

planet_districts_hab_leisure = {
	parent = planet_districts_hab

	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

planet_districts_orders_demesne = {
	parent = planet_districts_hab
	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

planet_districts_rw_generator = {
	parent = planet_districts

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

planet_districts_rw_farming = {
	parent = planet_districts

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

planet_jobs = {
	parent = planets

	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop

	generate_add_modifiers = {
		produces
		upkeep
	}

	triggered_produces_modifier = {
		key = planet_jobs_slave
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = slave
			has_job_category = worker
		}
	}

	triggered_produces_modifier = {
		key = planet_psionic_jobs
		modifier_types = {
			mult
			add
		}
		trigger = {
			OR = {
				has_trait = trait_psionic
				has_trait = trait_latent_psionic
			}
		}
	}

	triggered_produces_modifier = {
		key = planet_worker_ownership_jobs
		modifier_types = {
			mult
		}
		trigger = {
			exists = owner
			has_living_standard = {
				country = owner
				type = living_standard_worker_ownership
			}
		}
	}

	triggered_produces_modifier = {
		key = planet_cyborg_jobs
		modifier_types = {
			mult
			add
		}
		trigger = {
			has_trait = trait_cybernetic
		}
	}

	triggered_produces_modifier = {
		key = planet_virtual_jobs
		modifier_types = {
			mult
			add
		}
		trigger = {
			has_virtual_species_trait = yes
		}
	}

	triggered_produces_modifier = {
		key = habitat_jobs
		modifier_types = {
			mult
			add
		}
		trigger = {
			exists = planet
			planet = { is_planet_class = pc_habitat }
		}
	}

	triggered_produces_modifier = {
		key = non_artificial_planet_jobs
		modifier_types = {
			mult
			add
		}
		trigger = {
			exists = planet
			planet = { is_artificial = no }
		}
	}
	
	triggered_upkeep_modifier = {
		key = planet_jobs_slave
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = slave
			has_job_category = worker
		}
	}

	triggered_upkeep_modifier = {
		key = planet_jobs_worker
		modifier_types = {
			mult
			add
		}
		trigger = {
			OR = {
				is_pop_category = worker
				is_pop_category = slave # Yes, slave should count towards both worker and slave
				is_pop_category = simple_drone
			}
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_latent_psionic
		modifier_types = {
			mult
			add
		}
		trigger = {
			has_trait = trait_latent_psionic
		}
	}

	triggered_upkeep_modifier = {
		key = planet_jobs_latent_psionic
		modifier_types = {
			mult
			add
		}
		trigger = {
			has_trait = trait_latent_psionic
		}
	}
	

	triggered_produces_modifier = {
		key = planet_jobs_psionic
		modifier_types = {
			mult
			add
		}
		trigger = {
			has_trait = trait_psionic
		}
	}

	triggered_upkeep_modifier = {
		key = planet_jobs_psionic
		modifier_types = {
			mult
			add
		}
		trigger = {
			has_trait = trait_psionic
		}
	}

	triggered_produces_modifier = {
		key = planet_jobs_worker
		modifier_types = {
			mult
			add
		}
		trigger = {
			OR = {
				is_pop_category = worker
				AND = {
					is_pop_category = slave # Yes, slave should count towards both worker and slave
					has_job_category = worker
				}
				is_pop_category = simple_drone
			}
		}
	}

	triggered_produces_modifier = {
		key = planet_jobs_cyborg_worker
		modifier_types = {
			mult
		}
		trigger = {
			has_trait = trait_cybernetic
			OR = {
				is_pop_category = worker
				AND = {
					is_pop_category = slave # Yes, slave should count towards both worker and slave
					has_job_category = worker
				}
				is_pop_category = simple_drone
			}
		}
	}

	triggered_produces_modifier = {
		key = planet_jobs_robot_worker
		modifier_types = {
			mult
		}
		trigger = {
			OR = {
				is_pop_category = worker
				is_pop_category = simple_drone
				is_pop_category = robot_servant
			}
		}
	}

	triggered_produces_modifier = { #use this one if deliberately excluding worker drones
		key = planet_jobs_worker_only
		modifier_types = {
			mult
			add
		}
		trigger = {
			OR = {
				is_pop_category = worker
				AND = {
					is_pop_category = slave # Yes, slave should count towards both worker and slave
					has_job_category = worker
				}
			}
		}
	}

	triggered_produces_modifier = {
		key = planet_jobs_specialist
		modifier_types = {
			mult
			add
		}
		trigger = {
			OR = {
				is_pop_category = specialist
				is_pop_category = complex_drone #planet_jobs_complex_drone is preferable for stuff visible during galaxy setup
				AND = {
					is_pop_category = slave
					has_job_category = specialist
				}
			}
		}
	}

	triggered_upkeep_modifier = {
		key = planet_jobs_specialist
		modifier_types = {
			mult
			add
		}
		trigger = {
			OR = {
				is_pop_category = specialist
				is_pop_category = complex_drone #should use planet_jobs_complex_drone wherever possible, this is just for cases like species traits
			}
		}
	}
	
	triggered_produces_modifier = { #use this one if deliberately excluding complex drones
		key = planet_jobs_specialist_only
		modifier_types = {
			mult
			add
		}
		trigger = {
			OR = {
				is_pop_category = specialist
				AND = {
					is_pop_category = slave
					has_job_category = specialist
				}
			}
		}
	}

	triggered_upkeep_modifier = {
		key = planet_jobs_ruler
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = ruler
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_ruler
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = ruler
		}
	}

	triggered_produces_modifier = {
		key = planet_jobs_simple_drone
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = simple_drone
		}
	}

	triggered_upkeep_modifier = {
		key = planet_jobs_simple_drone
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = simple_drone
		}
	}	
	
	triggered_upkeep_modifier = {
		key = planet_jobs_complex_drone
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = complex_drone
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_complex_drone
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = complex_drone
		}
	}

	triggered_produces_modifier = {
		key = planet_jobs_complex_and_simple_drone
		modifier_types = {
			mult
			add
		}
		trigger = {
			OR = {
				is_pop_category = complex_drone
				is_pop_category = simple_drone
			}

		}
	}

	triggered_produces_modifier = {
		key = planet_jobs_robotic
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_robot_pop = yes
		}
	}
	
	triggered_upkeep_modifier = {
		key = planet_jobs_robotic
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_robot_pop = yes
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_organic
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_robot_pop = no
		}
	}
	
	triggered_upkeep_modifier = {
		key = planet_jobs_organic
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_robot_pop = no
		}
	}
	triggered_produces_modifier = {
		key = planet_jobs_organic_slave
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = slave
			is_robot_pop = no
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_robotic_slave
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = slave
			is_robot_pop = yes
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_organic_worker
		modifier_types = {
			mult
			add
		}
		trigger = {
			OR = {
				is_pop_category = worker
				is_pop_category = slave # Yes, slave should count towards both worker and slave
				is_pop_category = simple_drone
			}
			is_robot_pop = no
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_robotic_worker
		modifier_types = {
			mult
			add
		}
		trigger = {
			OR = {
				is_pop_category = worker
				is_pop_category = slave # Yes, slave should count towards both worker and slave
				is_pop_category = simple_drone
			}
			is_robot_pop = yes
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_organic_specialist
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = specialist
			is_robot_pop = no
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_robotic_specialist
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = specialist
			is_robot_pop = yes
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_organic_ruler
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = ruler
			is_robot_pop = no
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_robotic_ruler
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = ruler
			is_robot_pop = yes
		}
	}

	triggered_produces_modifier = {
		key = planet_jobs_organics
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_robot_pop = no
		}
	}

	triggered_produces_modifier = {
		key = planet_jobs_organic_simple_drone
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = simple_drone
			is_robot_pop = no
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_robotic_simple_drone
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = simple_drone
			is_robot_pop = yes
		}
	}

	triggered_produces_modifier = {
		key = planet_jobs_organic_complex_drone
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = complex_drone
			is_robot_pop = no
		}
	}
	
	triggered_produces_modifier = {
		key = planet_jobs_robotic_complex_drone
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = complex_drone
			is_robot_pop = yes
		}
	}

	triggered_produces_modifier = {
		key = planet_jobs_inmate
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_pop_category = inmate
		}
	}
}

planet_jobs_productive = { #this should contain all categories that primarily produce resources (rather than e.g. amenities, trade, stability)
	parent = planet_jobs
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_bio_trophies = {
	parent = planet_jobs
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_pop_assemblers = {
	parent = planet_jobs
	modifier_category = pop
	generate_mult_modifiers = {
		cost
		produces
		upkeep
	}
	
	generate_add_modifiers = {
		cost
		produces
		upkeep
	}
}

planet_farmers = {
	parent = planet_jobs_productive
	generate_mult_modifiers = {
		produces
		upkeep
	}

	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_anglers = {
	parent = planet_farmers
	generate_mult_modifiers = {
		produces
		upkeep
	}

	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_miners = {
	parent = planet_jobs_productive
	generate_mult_modifiers = {
		produces
		upkeep
	}

	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_sr_miners = { #added because we don't want miners_minerals_produces_add to apply to these
	parent = planet_miners
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_livestock = {
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		cost
		upkeep
	}
	modifier_category = pop
	# Inherited Modifiers
	triggered_produces_modifier = {
		key = planet_farmers
		modifier_types = {
			mult
			add
		}
		trigger = {
			has_job = livestock	# This check is done so that livestock working zoo jobs don't inherit the modifier
			is_organic_species = yes
			is_lithoid = no
		}
		use_parent_icon = yes
	}
	triggered_produces_modifier = {
		key = planet_miners
		modifier_types = {
			mult
			add
		}
		trigger = {
			has_job = livestock	# This check is done so that livestock working zoo jobs don't inherit the modifier
			is_organic_species = yes
			is_lithoid = yes
		}
		use_parent_icon = yes
	}
}
planet_organic_batteries = {
	parent = planet_jobs_productive
	modifier_category = pop
	# Inherited Modifiers
	triggered_produces_modifier = {
		key = planet_technician
		modifier_types = {
			mult
			add
		}
		trigger = {
			always = yes
		}
		use_parent_icon = yes
	}
}
planet_technician = {
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_politicians = {
	parent = planet_jobs_productive
	generate_mult_modifiers = {
		produces
		upkeep
	}
	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_administrators = {
	icon = "job_bureaucrat"
	parent = planet_jobs_productive
	generate_mult_modifiers = {
		cost
		produces
		upkeep
	}
	generate_add_modifiers = {
		cost
		produces
		upkeep
	}
	modifier_category = pop
}

planet_executives = {
	parent = planet_politicians
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_managers = {
	parent = planet_administrators
	generate_mult_modifiers = {
		produces
		upkeep
	}
	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
	# Inherited Modifiers
	triggered_produces_modifier = {
		key = planet_administrators
		modifier_types = {
			add
		}
		trigger = {
			always = yes
		}
		use_parent_icon = yes
	}
}

planet_researchers = {
	icon = "job_researcher"
	parent = planet_jobs_productive
	generate_mult_modifiers = {
		produces
		upkeep
	}
	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_rangers = {
	icon = "job_ranger"
	parent = planet_researchers
	generate_add_modifiers = {
		produces
	}
	modifier_category = pop
}

planet_metallurgists = {
	icon = "job_foundry"
	parent = planet_jobs_productive
	generate_mult_modifiers = {
		produces
		upkeep
	}
	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_laborer = {
	icon = "low_tech_laborer"
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_culture_workers = {
	parent = planet_administrators
	modifier_category = pop
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
}

planet_evaluators = {
	parent = planet_administrators
	generate_add_modifiers = {
		produces
        	upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_synapse_drones = {
	parent = planet_administrators
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_nobles = {
	parent = planet_politicians
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_necro_apprentices = {
	parent = planet_pop_assemblers
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_merchants = {
	parent = planet_jobs
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_entertainers = {
	parent = planet_jobs
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_soldiers = {
	parent = planet_jobs
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_necromancers = {
	parent = planet_jobs
	generate_mult_modifiers = {
		produces
		upkeep
	}
	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_squires = {
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_knights = {
	parent = planet_jobs_productive
	modifier_category = pop
	generate_mult_modifiers = {
		produces
	}
# Inherited Modifiers
	triggered_produces_modifier = {
		key = planet_researchers
		modifier_types = {
			mult
			add
		}
		trigger = {
			always = yes
		}
		use_parent_icon = yes
	}
	triggered_upkeep_modifier = {
		key = planet_researchers
		modifier_types = {
			mult
			add
		}
		trigger = {
			always = yes
		}
		use_parent_icon = yes
	}
	triggered_produces_modifier = {
		key = planet_administrators
		modifier_types = {
			mult
			add
		}
		trigger = {
			always = yes
		}
		use_parent_icon = yes
	}
	triggered_upkeep_modifier = {
		key = planet_administrators
		modifier_types = {
			mult
		}
		trigger = {
			always = yes
		}
		use_parent_icon = yes
	}
}

planet_priests = {
	parent = planet_administrators
	modifier_category = pop
	generate_mult_modifiers = {
		produces
		upkeep
	}
	generate_add_modifiers = {
		produces
		upkeep
	}
	# Inherited Modifiers
	triggered_produces_modifier = {
		key = planet_administrators
		modifier_types = {
			add
		}
		trigger = {
			always = yes
		}
		use_parent_icon = yes
	}
}

planet_enforcers = {
	parent = planet_jobs
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_clerks = {
	parent = planet_jobs
	generate_add_modifiers = {
		produces
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_traders = {
	parent = planet_jobs
	modifier_category = pop
}

planet_telepaths = {
	parent = planet_administrators
	modifier_category = pop
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	# Inherited Modifiers
	triggered_produces_modifier = {
		key = planet_administrators
		modifier_types = {
			add
		}
		trigger = {
			always = yes
		}
		use_parent_icon = yes
	}	
}

planet_doctors = {
	parent = planet_jobs
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_augmentors = {
	parent = planet_jobs_productive
	generate_mult_modifiers = {
		upkeep
	}
	modifier_category = pop
}


planet_refiners = {
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_translucers = {
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_chemists = {
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_artisans = {
	icon = "job_artisan"
	parent = planet_jobs_productive
	generate_mult_modifiers = {
		produces
		upkeep
	}
	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_bath_attendants = {
	icon = "job_bath_attendant"
	parent = planet_jobs
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}

	modifier_category = pop
}

planet_bath_attendants_hive = {
	icon = "job_bath_attendant"
	parent = planet_jobs
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}

	modifier_category = pop
}

planet_bath_attendants_machine = {
	icon = "job_bath_attendant"
	parent = planet_jobs
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}

	modifier_category = pop
}

planet_bath_attendants_individual_machine = {
	icon = "job_bath_attendant"
	parent = planet_jobs
}

planet_neural_chips = {
	icon = "job_neural_chip"
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
	}
	modifier_category = pop
}

#DO NOT ASSIGN A PARENT TO THIS.
#It is a special hack. The normal job modifiers apply via knights_unity/research_output_modifier script values in the jobs
knights_independent_category = {
	generate_mult_modifiers = {
		produces
		upkeep
	}
	generate_add_modifiers = {
		produces
		upkeep
	}
}

planet_replicator = {
	parent = planet_jobs_productive
	generate_mult_modifiers = {
		produces
		upkeep
	}
	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}


planet_organic_battery = {
	parent = planet_jobs_productive
	generate_mult_modifiers = {
		produces
		upkeep
	}
	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

#These jobs produce resources yes? then they should belong to planet_jobs_productive not planet_jobs.
planet_infrastructure = {
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
        upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_bore = {
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
        upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_penrose = {
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
        upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_jobs_machinedlc_drone_processor = {
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
        upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_jobs_machinedlcmod_clerk = {
	parent = planet_jobs_productive
	generate_add_modifiers = {
		produces
        upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_pops = {
	parent = planets

	generate_add_modifiers = {
		upkeep
	}
	generate_mult_modifiers = {
		upkeep
	}
	modifier_category = pop

	triggered_upkeep_modifier = {
		key = planet_pops_robotics
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_robot_pop = yes
		}
	}

	triggered_upkeep_modifier = {
		key = planet_pops_cyborgs
		modifier_types = {
			mult
			add
		}
		trigger = {
			has_trait = trait_cybernetic
		}
	}

	triggered_upkeep_modifier = {
		key = planet_pops_organics
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_robot_pop = no
		}
	}

	triggered_upkeep_modifier = {
		key = planet_pops_unemployed
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_unemployed = yes
		}
	}
	triggered_upkeep_modifier = {
		key = planet_pops_biologicals
		modifier_types = {
			mult
			add
		}
		trigger = {
			is_lithoid = no
			is_robot_pop = no
		}
	}

	triggered_upkeep_modifier = {
		key = planet_pops_lithoids
		modifier_types = { 
			mult
			add
		}
		trigger = { is_lithoid = yes }
	}
}

unemployment_resources = {
	parent = planet_pops
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

pop_category_precursor = {
	parent = planet_pops
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

pop_category_xeno_ward = {
	parent = planet_pops
    generate_add_modifiers = {
		produces
		upkeep
	}
    generate_mult_modifiers = {
        produces
		upkeep
	}
	modifier_category = pop
}

pop_category_pre_sapients = {
	parent = planet_pops
    generate_add_modifiers = {
		produces
		upkeep
	}
    generate_mult_modifiers = {
        produces
		upkeep
	}
	modifier_category = pop
}

pop_category_purge = {
	parent = planet_pops
	generate_add_modifiers = {
		produces
		upkeep
	}
    generate_mult_modifiers = {
        produces
		upkeep
	}
	modifier_category = pop
}

pop_category_bio_trophy = {
	parent = planet_pops
	generate_add_modifiers = {
    	produces
		upkeep
	}
    generate_mult_modifiers = {
        produces
		upkeep
	}
	modifier_category = pop
}

pop_category_slave = {
	parent = planet_pops
	generate_mult_modifiers = {
		produces
		upkeep
	}
	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
	triggered_produces_modifier = {
		key = pop_category_psionic_slave
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_psionic
		}
	}
	
	triggered_upkeep_modifier = {
		key = pop_category_psionic_slave
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_psionic
		}
	}
	
	triggered_produces_modifier = {
		key = pop_category_latent_psionic_slave
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_latent_psionic
		}
	}
	
	triggered_upkeep_modifier = {
		key = pop_category_latent_psionic_slave
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_latent_psionic
		}
	}
}

pop_category_robot = {
	parent = planet_pops
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

pop_category_drones = {
	parent = planet_pops
	generate_add_modifiers = {
		cost
		produces
		upkeep
	}
	generate_mult_modifiers = {
		cost
		produces
		upkeep
	}
		triggered_produces_modifier = {
		key = pop_category_complex_drones
		modifier_types = {
			add
			mult
		}
		trigger = {
			is_pop_category = complex_drone
		}
	}
	triggered_upkeep_modifier = {
		key = pop_category_complex_drones
		modifier_types = {
			add
			mult
		}
		trigger = {
			is_pop_category = complex_drone
		}
	}
	triggered_upkeep_modifier = {
		key = pop_category_drones_xvcv_bio_robot
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = xvcv_mdlc_trait_bio_robot
		}
	}
	triggered_produces_modifier = {
		key = pop_category_simple_drones
		modifier_types = {
			add
			mult
		}
		trigger = {
			is_pop_category = simple_drone
		}
	}
	triggered_upkeep_modifier = {
		key = pop_category_simple_drones
		modifier_types = {
			add
			mult
		}
		trigger = {
			is_pop_category = simple_drone
		}
	}
	triggered_upkeep_modifier = {
		key = planet_pops_complex_drone_machinedlc_processing
		modifier_types = {
			add
			mult
		}
		trigger = {
			is_pop_category = complex_drone
			has_global_flag = machinedlc_new_feature_1
			NOT = { has_job = machinedlc_drone_processor }
			owner = {
				NOR = {
					has_valid_civic = civic_machine_clockwork
					has_modifier = mod_civic_machine_clockwork
				}
			}
		}
	}
	triggered_upkeep_modifier = {
		key = planet_pops_simple_drone_machinedlc_processing
		modifier_types = {
			add
			mult
		}
		trigger = {
			is_pop_category = simple_drone
			has_global_flag = machinedlc_new_feature_1
			NOT = { has_job = machinedlc_drone_inactive }
			owner = { 
				NOR = {
					has_valid_civic = civic_machine_clockwork
					has_modifier = mod_civic_machine_clockwork
				}
			}
		}
	}
	triggered_upkeep_modifier = {
		key = planet_pops_drone_hyrbid_machine
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_biorobot
		}
	}
	modifier_category = pop
}

pop_category_workers = {
	parent = planet_pops
	generate_add_modifiers = {
		upkeep
		produces
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}

	modifier_category = pop

	triggered_produces_modifier = {
		key = pop_category_robot_workers
		modifier_types = {
			add
			mult
		}
		trigger = {
			is_robot_pop = yes
		}
	}
	
	triggered_upkeep_modifier = {
		key = pop_category_workers_xvcv_bio_robot
		modifier_types = { 
			add
			mult
		}
		trigger = {
			has_trait = xvcv_mdlc_trait_bio_robot
		}
	}
	
	triggered_produces_modifier = {
		key = pop_category_psionic_workers
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_psionic
		}
	}
	
	triggered_produces_modifier = {
		key = pop_category_robot_psionic_workers
		modifier_types = {
			add
			mult
		}
		trigger = {
			is_robot_pop = yes
			has_trait = trait_psionic
		}
	}
	
	triggered_upkeep_modifier = {
		key = pop_category_psionic_workers
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_psionic
		}
	}
	
	triggered_produces_modifier = {
		key = pop_category_latent_psionic_workers
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_latent_psionic
		}
	}
	
	triggered_upkeep_modifier = {
		key = pop_category_latent_psionic_workers
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_latent_psionic
		}
	}
}

pop_category_specialists = {
	parent = planet_pops
	generate_add_modifiers = {
		upkeep
		produces
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}

	modifier_category = pop

	triggered_produces_modifier = {
		key = pop_category_robot_specialists
		modifier_types = {
			add
			mult
		}
		trigger = {
			is_robot_pop = yes
		}
	}
		
	triggered_upkeep_modifier = {
		key = pop_category_specialists_xvcv_bio_robot
		modifier_types = { 
			add
			mult
		}
		trigger = {
			has_trait = xvcv_mdlc_trait_bio_robot
		}
	}
	
	triggered_produces_modifier = {
		key = pop_category_psionic_specialists
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_psionic
		}
	}
	
	triggered_produces_modifier = {
		key = pop_category_robot_psionic_specialists
		modifier_types = {
			add
			mult
		}
		trigger = {
			is_robot_pop = yes
			has_trait = trait_psionic
		}
	}
	
	triggered_upkeep_modifier = {
		key = pop_category_psionic_specialists
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_psionic
		}
	}
	
	triggered_produces_modifier = {
		key = pop_category_latent_psionic_specialists
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_latent_psionic
		}
	}
	
	triggered_upkeep_modifier = {
		key = pop_category_latent_psionic_specialists
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_latent_psionic
		}
	}
}

pop_category_rulers = {
	parent = planet_pops

	generate_mult_modifiers = {
		upkeep
		produces
	}
	generate_add_modifiers = {
		upkeep
		produces
	}
	modifier_category = pop

	triggered_produces_modifier = {
		key = pop_category_robot_rulers
		modifier_types = {
			add
			mult
		}
		trigger = {
			is_robot_pop = yes
		}
	}
	

	triggered_upkeep_modifier = {
		key = pop_category_rulers_xvcv_bio_robot
		modifier_types = { 
			add
			mult
		}
		trigger = {
			has_trait = xvcv_mdlc_trait_bio_robot
		}
	}

	
	triggered_produces_modifier = {
		key = pop_category_psionic_rulers
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_psionic
		}
	}
	
	triggered_produces_modifier = {
		key = pop_category_robot_psionic_rulers
		modifier_types = {
			add
			mult
		}
		trigger = {
			is_robot_pop = yes
			has_trait = trait_psionic
		}
	}
	
	triggered_upkeep_modifier = {
		key = pop_category_psionic_rulers
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_psionic
		}
	}
	
	triggered_produces_modifier = {
		key = pop_category_latent_psionic_rulers
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_latent_psionic
		}
	}
	
	triggered_upkeep_modifier = {
		key = pop_category_latent_psionic_rulers
		modifier_types = {
			add
			mult
		}
		trigger = {
			has_trait = trait_latent_psionic
		}
	}
}

pop_category_assimilation = {
	parent = planet_pops
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = pop
}

planet_deposits = {
	parent = planets
	generate_add_modifiers = {
		produces
	}
	generate_mult_modifiers = {
		produces
	}
}

hab_deposits = {
	parent = planet_deposits
}

orbital_mining_deposits = {
	parent = station_gatherers
    generate_mult_modifiers = {
		produces
		cost
		upkeep
	}
	generate_add_modifiers = {
		produces
		cost
		upkeep
	}
}

orbital_research_deposits = {
	parent = station_researchers
    generate_mult_modifiers = {
		produces
		cost
		upkeep
	}
	generate_add_modifiers = {
		produces
		cost
		upkeep
	}
}

hab_mining_deposits = {
	parent = orbital_mining_deposits
}

hab_research_deposits = {
	parent = station_researchers
}

deposit_blockers = {
	use_for_ai_budget = yes
	generate_add_modifiers = {
		cost
		produces
	}
	generate_mult_modifiers = {
		cost
		produces
	}
	modifier_category = deposit

	ai_use_parent_for_resources_upkeep = {
		energy
	}

	parent = country
}

deposit_blockers_natural = {
	generate_add_modifiers = {
		produces
		cost
	}

	generate_mult_modifiers = {
		cost
		produces
	}
	modifier_category = deposit

	parent = deposit_blockers
}

armies = {
	use_for_ai_budget = yes

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

	ai_use_parent_for_resources_upkeep = {
		energy
		minerals
		food
	}

	parent = country
}

leaders = {
	use_for_ai_budget = yes
	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}
	modifier_category = leader
	parent = country
}

leader_commanders = {
	parent = leaders
	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}
	generate_add_modifiers = {
		produces
		upkeep
		cost
	}
}

leader_generals = {
	parent = leader_commanders
}

leader_admirals = {
	parent = leader_commanders
}

leader_scientists = {
	parent = leaders
	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}
	generate_add_modifiers = {
		produces
		upkeep
		cost
	}
}

leader_officials = {
	parent = leaders
	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}
	generate_add_modifiers = {
		produces
		upkeep
		cost
	}
}

leader_governors = {
	parent = leader_officials
}

diplomacy = {
	hidden = yes
	parent = country
	generate_mult_modifiers = {
		upkeep
		produces
	}

	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

# Country wide modifier collection
country_container = {
	hidden = yes
	parent = country
}

country_monuments = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_ambition = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_federation_perks = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_civics = {
	parent = country_container
	generate_add_modifiers = {
		upkeep
		produces
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_ai_uprising = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_covenant = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_dessanu = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_extended_payout = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_shoulders = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_galactic_standard = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_concessions = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_first_contact = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_custodian = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_tech = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_traditions = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_councilor = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_ruler = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_agendas = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_ethic = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_first_league_homeworld = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

country_power_projection = {
	parent = country_container
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}

pop_factions = {
	parent = country
	generate_mult_modifiers = {
		produces
		upkeep
	}

	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = country #pop factions category currently unused
}

subjects = {
	parent = diplomacy
	generate_add_modifiers = {
		produces
	}
}

federation = {
	parent = diplomacy
	generate_add_modifiers = {
		produces
	}
	generate_mult_modifiers = {
		produces
	}
	modifier_category = country
}

rivalries = {
	parent = diplomacy
	generate_add_modifiers = {
		produces
		upkeep
	}
	generate_mult_modifiers = {
		produces
		upkeep
	}
}

non_aggression_pacts = {
	parent = diplomacy
	generate_mult_modifiers = {
		upkeep
	}

	generate_add_modifiers = {
		upkeep
	}
}

migration_pacts = {
	parent = diplomacy
	generate_mult_modifiers = {
		upkeep
	}

	generate_add_modifiers = {
		upkeep
	}
}

research_agreements = {
	parent = diplomacy
	generate_mult_modifiers = {
		upkeep
	}

	generate_add_modifiers = {
		upkeep
	}
}

commercial_pacts = {
	parent = diplomacy
	generate_mult_modifiers = {
		upkeep
	}

	generate_add_modifiers = {
		upkeep
	}
}

defensive_pacts = {
	parent = diplomacy
	generate_mult_modifiers = {
		upkeep
	}

	generate_add_modifiers = {
		upkeep
	}
}

guarantees = {
	parent = diplomacy
	generate_mult_modifiers = {
		upkeep
	}

	generate_add_modifiers = {
		upkeep
	}
}

monthly_trades = {
	generate_add_modifiers = {
		produces
	}
	generate_mult_modifiers = {
		produces
	}
	modifier_category = country
}

claims = {
	use_for_ai_budget = yes
	parent = country
}

agreement_proposals = {
	use_for_ai_budget = yes
	parent = diplomacy
}

subject_tax = {
}

envoy_costs = {
	parent = diplomacy
}

diplo_closed_borders = {
	parent = diplomacy
}

diplomatic_networking = {
	parent = diplomacy
}

societal_enlightenment_pacts = {
	parent = diplomacy
}

open_technological_enlightenment_pacts = {
	parent = diplomacy
}

stratified_technological_enlightenment_pacts = {
	parent = diplomacy
}

pre_ftl_trade_pacts = {
	parent = diplomacy
}

subject_integration = {
}

overlord_subsidy = {
}

specialist_subject_conversion = {
}

relics = {
	generate_mult_modifiers = {
		cost
		upkeep
	}

	generate_add_modifiers = {
		cost
		upkeep
	}
}

artifact_actions = {
	generate_mult_modifiers = {
		cost
		upkeep
		produces
	}

	generate_add_modifiers = {
		cost
		upkeep
		produces
	}
}

sector = {
}

menace = {
}

traditions = {
		use_for_ai_budget = yes
		parent = country
}

operations = {
	use_for_ai_budget = yes
	ai_use_parent_for_resources_upkeep = {
		energy
	}
	generate_mult_modifiers = {
		cost
		upkeep
	}
	generate_add_modifiers = {
		cost
		upkeep
	}
	parent = country
	modifier_category = espionage
}

country_situations = {
	generate_mult_modifiers = {
		produces
		upkeep
	}
	generate_add_modifiers = {
		produces
		upkeep
	}
	modifier_category = country
}
