offer_confederation_interaction = {
	category = interaction_category_diplomacy
	icon = offer_confederation_interaction

	desc = offer_confederation_interaction_desc

	ai_targets = {
		ai_recipients = neighboring_rulers_including_tributary_borders
	}
	ai_frequency_by_tier = {
		barony = 0
		county = 8
		duchy = 8
		kingdom = 0
		empire = 0
		hegemony = 0
	}
	popup_on_receive = yes
	pause_on_receive = yes

	common_interaction = yes

	cooldown_against_recipient = { years = 3 }

	is_shown = {
		scope:actor = {
			OR = {
				government_has_flag = government_is_tribal
				government_has_flag = government_is_nomadic
			}
			is_playable_character = yes
			OR = {
				is_independent_ruler = yes
				confederation ?= { is_house_based = no }
			}
		}
		scope:recipient = {
			is_playable_character = yes
			is_independent_ruler = yes
			OR = {
				government_has_flag = government_is_tribal
				government_has_flag = government_is_nomadic
			}
			NOT = { this = scope:actor }
		}
	}

	is_valid_showing_failures_only = {
		trigger_if = {
			limit = {
				scope:actor = { is_confederation_member = no }
			}
			custom_tooltip = {
				text = forming_confederation_tt
				scope:actor = {
					has_character_flag = forming_confederation
				}
			}
		}
		scope:actor = {
			is_imprisoned = no
		}
		scope:recipient = {
			valid_confederation_member_trigger = { CHARACTER = scope:actor }
			is_imprisoned = no
			is_at_war = no
		}
	}

	cost = {
		prestige = {
			value = 0
			if = {
				limit = { scope:prestige_send_option = yes }
				add = scope:actor.minor_prestige_value
				desc = PRESTIGE_INTERACTION_ACCEPTANCE_SEND_OPTION
			}
		}
	}

	greeting = positive
	notification_text = OFFER_CONFEDERATION_INTERACTION_NOTIFICATION

	ai_accept = {
		base = -50
		# MAIN
		# Heretic/Infidel modifier.
		# Tier difference modifier.
		# Dejure modifier.
		# Distant/Remote Realm modifier.
		# Military power difference modifier.

		# MINOR
		# Rivalry modifier.
		# Same Dynasty modifier.
		# Cultural/Cultural Group modifiers.
		# Ageism modifier vs kids.
		# Ruler Legitimacy modifier.
		# Claimant modifier.
		# FP3 Piety Level modifier.

		# OPINION SCALES
		# Dread
		# Compare Opinion modifier.

		#WHEN UPDATING ANYTHING HERE, PLEASE DO THE SAME (BUT INVERTED) IN LEAVE CONFEDERATION DECISION

		# PERKS
		modifier = { # Perk boost
			desc = offer_vassalization_true_ruler_perk_tt
			trigger = {
				scope:actor = { has_perk = true_ruler_perk }
			}
			add = true_ruler_value
		}
		modifier = { # Education 5 boost
			desc = offer_vassalization_education_diplomacy_5_tt
			trigger = {
				scope:actor = { has_trait_with_flag = offer_vassalisation_25 }
			}
			add = 25
		}

		# EVENTS - temporary bonuses gained by events
		modifier = {
			desc = event_bonus_to_vassal_accept_tt
			trigger = {
				scope:actor = { has_character_modifier = event_bonus_to_vassal_accept }
			}
			add = 20
		}


		# STRUGGLES - bonus gained by successful Sway scheme during the Persian Struggle
		modifier = {
			desc = fp3_persian_struggle_previously_swayed_tt
			trigger = {
				scope:recipient = {
					has_opinion_modifier = {
						modifier = scheme_sway_and_compelled_to_submit_opinion
						target = scope:actor
					}
				}
			}
			add = 20
		}

		modifier = {
			desc = fp3_rekindler_of_iran_modifier_reason
			trigger = {
				AND = {
					scope:actor = { dynasty ?={ has_dynasty_modifier = fp3_rekindler_of_iran_modifier } }
					scope:recipient = { culture = { has_cultural_pillar = heritage_iranian } }
				}
			}
			add = 20
		}


		modifier = { # Cultural Acceptance
			add = offer_vassalage_acceptance_value
			desc = cultural_acceptance_interaction_reason
			trigger = {
				scope:actor = {
					NOT = { has_same_culture_as = scope:recipient }
					culture = {
						cultural_acceptance = { target = scope:recipient.culture value <= 90 }
					}
				}
			}
		}

		# MAIN
		modifier = { #Different faith, no pluralism.
			desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
			trigger = {
				scope:recipient = {
					NOR = { #Of two different faiths AND the potential vassal's faith is not pluralistic.
						faith = scope:actor.faith
						faith = { has_doctrine = doctrine_pluralism_pluralistic }
						government_has_flag = government_is_nomadic
						government_has_flag = government_is_true_herder
					}
				}
			}
			add = {
				value = -30
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_hostile_level
							}
						}
					}
					add = -30
				}
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_evil_level
							}
						}
					}
					add = -30
				}
			}
		}

		modifier = { #Different faith, pluralism.
			desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
			trigger = {
				scope:recipient = {
					NOR = {
						faith = scope:actor.faith
						scope:actor.faith = { has_doctrine = doctrine_pluralism_pluralistic }
						government_has_flag = government_is_nomadic
						government_has_flag = government_is_true_herder
					}
					faith = { has_doctrine = doctrine_pluralism_pluralistic }
				}
			}
			add = {
				value = -15
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_hostile_level
							}
						}
					}
					add = -15
				}
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_evil_level
							}
						}
					}
					add = -15
				}
			}
		}

		modifier = { #Different faith, both have pluralism.
			desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
			trigger = {
				scope:recipient = {
					NOR = {
						faith = scope:actor.faith
						government_has_flag = government_is_nomadic
						government_has_flag = government_is_true_herder
					}
					scope:actor.faith = { has_doctrine = doctrine_pluralism_pluralistic }
					faith = { has_doctrine = doctrine_pluralism_pluralistic }
				}
			}
			add = {
				value = -10
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_hostile_level
							}
						}
					}
					add = -10
				}
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_evil_level
							}
						}
					}
					add = -10
				}
			}
		}
		modifier = { #We just fought against each other.
			desc = offer_vassalization_interaction_aibehavior_recent_war_tt
			trigger = {
				scope:recipient = {
					any_truce_holder = {
						this = scope:actor
					}
				}
				# Ensure the truce wasn't purchased and is indeed from a war
				scope:actor = {
					NOT = {
						has_purchased_truce_with_char = { TARGET = scope:recipient }
					}
				}
			}
			add = -40
		}
		modifier = { #I fought an independence war against you.
			desc = offer_confederation_independence_war_tt
			trigger = {
				scope:recipient = {
					exists = var:independence_war_former_liege
					var:independence_war_former_liege = scope:actor.top_liege
				}
			}
			add = -100
		}
		modifier = { # Isolationist tradition
			desc = isolationist_reason
			trigger = {
				NOT = {
					scope:actor.culture = scope:recipient.culture
				}
				scope:recipient.culture = {
					has_cultural_tradition = tradition_isolationist
				}
			}
			add = -50
		}
		modifier = { #Bankrupt
			desc = bankrupt_reason
			trigger = {
				scope:actor.gold <= -1
			}
			add = -30
		}
		modifier = { #Wide difference in rank
			desc = offer_vassalization_interaction_aibehavior_widetitletier_tt
			trigger = {
				scope:actor = {
					tier_difference = {
						target = scope:recipient
						value > 1
					}
				}
			}
			add = 10
		}
		modifier = { # Allied
			desc = offer_vassalization_interaction_aibehavior_allied_tt
			trigger = {
				scope:recipient = {
					is_allied_to = scope:actor
				}
			}
			add = 50
		}
		modifier = { # Is the Rightful Liege of recipient
			desc = offer_vassalization_interaction_aibehavior_rightfulliegetitleholder_tt
			trigger = {
				scope:actor = { is_rightful_liege_of = scope:recipient }
			}
			add = 20
		}
		modifier = { # Encircled
			desc = offer_vassalization_interaction_aibehavior_encircled_tt
			trigger = {
				scope:recipient = {
					NOT = {
						any_land_neighboring_realm_with_tributaries_owner = {
							NOT = {
								this = scope:actor
							}
						}
					}
					NOT = {
						any_realm_county = {
							is_coastal_county = yes
						}
					}
				}
			}
			add = 40
		}
		modifier = { #No adjacency
			desc = offer_vassalization_interaction_aibehavior_unconnectedrealm_tt
			trigger = {
				scope:recipient = {
					NOT = {
						any_land_neighboring_realm_with_tributaries_owner = {
							OR = {
								this = scope:actor
								AND = {
									exists = scope:actor.confederation
									is_member_of_confederation = scope:actor.confederation
								}
								AND = {
									exists = scope:actor.confederation
									suzerain ?= {
										is_member_of_confederation = scope:actor.confederation
									}
								}
								suzerain ?= {
									this = scope:actor
								}
							}
						}
					}
				}
				scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value < 100000 } }
			}
			add = -25
		}
		modifier = { #Distant Realm
			desc = offer_vassalization_interaction_aibehavior_distantrealm_tt
			trigger = {
				scope:recipient = {
					NOT = {
						any_land_neighboring_realm_with_tributaries_owner = {
							OR = {
								this = scope:actor
								AND = {
									exists = scope:actor.confederation
									is_member_of_confederation = scope:actor.confederation
								}
								AND = {
									exists = scope:actor.confederation
									suzerain ?= {
										is_member_of_confederation = scope:actor.confederation
									}
								}
								suzerain ?= {
									this = scope:actor
								}
							}
						}
					}
				}
				scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value >= 100000 } }
			}
			add = -100
		}
		modifier = { #Remote Realm.
			desc = offer_vassalization_interaction_aibehavior_remoterealm_tt
			trigger = {
				scope:recipient = {
					NOT = {
						any_land_neighboring_realm_with_tributaries_owner = {
							OR = {
								this = scope:actor
								AND = {
									exists = scope:actor.confederation
									is_member_of_confederation = scope:actor.confederation
								}
								AND = {
									exists = scope:actor.confederation
									suzerain ?= {
										is_member_of_confederation = scope:actor.confederation
									}
								}
								suzerain ?= {
									this = scope:actor
								}
							}
						}
					}
				}
				scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value >= 200000 } }
			}
			add = -175
		}
		#Relative power
		modifier = {
			desc = offer_vassalization_interaction_aibehavior_power_tt
	  	  	add = {
				value = 1
				subtract = {
					value = scope:recipient.max_military_strength # Intended for recipient to use max, to avoid having vassalizations become too easy for weakened realms
					divide = { value = scope:actor.top_liege.current_military_strength min = 1 }
				}
				multiply = 5
				ceiling = yes
				min = -100
	  		}
		}
		#Powerful vassal opinion of you
		modifier = {
			desc = offer_confederation_offerer_vassal_opinion_tt
			trigger = {
				scope:actor.top_liege = {
				number_of_powerful_vassals >= 1
				}
			}

	  	  	add = {
				value = 0
				scope:actor.top_liege = {
					every_powerful_vassal = {
						if = {
							limit = {
								save_temporary_opinion_value_as = {
									name = vassal_opinion
									target = scope:actor.top_liege
								}
							}
							add = scope:vassal_opinion
						}
					}

					if = {
						limit = {
							number_of_powerful_vassals > 0
						}
						divide = number_of_powerful_vassals
					}
					else = {
						divide = 5
					}
				}
				divide = 10
	  		}
		}

		# Legitimacy
		modifier = {
			desc = "LOW_LEGITIMACY_REASON"
			scope:actor = {
				has_legitimacy_flag = very_reduced_tributarization_acceptance
			}
			add = -20
		}
		modifier = {
			desc = "LOW_LEGITIMACY_REASON"
			scope:actor = {
				has_legitimacy_flag = reduced_tributarization_acceptance
			}
			add = -10
		}
		modifier = {
			desc = "HIGH_LEGITIMACY_REASON"
			scope:actor = {
				has_legitimacy_flag = increased_tributarization_acceptance
			}
			add = 10
		}
		modifier = {
			desc = "HIGH_LEGITIMACY_REASON"
			scope:actor = {
				has_legitimacy_flag = very_increased_tributarization_acceptance
			}
			add = 20
		}

		# MINOR
		modifier = { #Friend modifier.
			desc = offer_vassalization_interaction_aibehavior_friend_tt
			trigger = {
				scope:recipient = {
					has_relation_friend = scope:actor
					NOT = { has_relation_best_friend = scope:actor }
				}
			}
			add = 25
		}
		modifier = { #Best Friend modifier.
			desc = offer_vassalization_interaction_aibehavior_best_friend_tt
			trigger = {
				scope:recipient = {
					has_relation_best_friend = scope:actor
				}
			}
			add = 50
		}
		modifier = { #Lover modifier.
			desc = interaction_lover
			trigger = {
				scope:recipient = {
					has_relation_lover = scope:actor
					NOT = { has_relation_soulmate = scope:actor }
				}
			}
			add = 25
		}
		modifier = { #Soulmate modifier.
			desc = interaction_soulmate
			trigger = {
				scope:recipient = {
					has_relation_soulmate = scope:actor
				}
			}
			add = 50
		}
		modifier = { #Rivalry modifier.
			desc = offer_vassalization_interaction_aibehavior_rival_tt
			trigger = {
				scope:recipient = {
					has_relation_rival = scope:actor
					NOT = { has_relation_nemesis = scope:actor }
				}
			}
			add = -200
		}
		modifier = { #Nemesis modifier.
			desc = offer_vassalization_interaction_aibehavior_nemesis_tt
			trigger = {
				scope:recipient = {
					has_relation_nemesis = scope:actor
				}
			}
			add = -1000
		}

		modifier = { #Rivalry modifier.
			desc = offer_vassalization_interaction_aibehavior_rival_confederation_tt
			trigger = {
				scope:actor.confederation ?= {
					any_confederation_member = {
						NOT = { this = scope:actor }
						has_relation_rival = scope:recipient
						NOT = { has_relation_nemesis = scope:recipient }
					}
				}
			}
			add = -100
		}
		modifier = { #Nemesis modifier.
			desc = offer_vassalization_interaction_aibehavior_nemesis_confederation_tt
			trigger = {
				scope:actor.confederation ?= {
					any_confederation_member = {
						NOT = { this = scope:actor }
						has_relation_nemesis = scope:recipient
					}
				}
			}
			add = -500
		}
		modifier = { #Same Dynasty modifier.
			desc = offer_vassalization_interaction_aibehavior_dynasty_tt
			trigger = {
				exists = scope:actor.dynasty
				exists = scope:recipient.dynasty
				scope:recipient = {
					dynasty = scope:actor.dynasty
				}
			}
			add = 25
		}
		modifier = { #Same House modifier.
			desc = offer_vassalization_interaction_aibehavior_house_tt
			trigger = {
				exists = scope:actor.house
				exists = scope:recipient.house
				scope:recipient = {
					house = scope:actor.house
				}
			}
			add = 50
		}

		modifier = { # Same language
			add = 20
			desc = speaks_same_language_interaction_reason
			trigger = {
				scope:actor = {
					knows_language_of_culture = scope:recipient.culture
				}
			}
		}

		modifier = { # Iberian Struggle, less likely for outsiders to vassalize inside
			add = -35
			desc = iberian_struggle_reason_reason
			trigger = {
				scope:actor = {
					NOT = {
						any_character_struggle = { is_struggle_type = iberian_struggle }
					}
				}
				scope:recipient = {
					any_character_struggle = { is_struggle_type = iberian_struggle }
				}
			}
		}

		modifier = { #Ageism modifier vs kids.
			desc = offer_vassalization_interaction_aibehavior_child_tt
			trigger = {
				scope:actor = {
					age < 12
				}
				scope:recipient = {
					age > 16
				}
			}
			add = -5
		}
		modifier = { #Illegitimacy modifier.
			desc = confederation_offerer_illegitimate_tt
			trigger = {
				scope:actor.top_liege = {
					OR = {
						AND = {
							has_trait = bastard
							scope:recipient = {
								faith = { NOT = { has_doctrine = doctrine_bastardry_none } }
							}
						}
						has_trait = denounced
						has_trait = disinherited
					}
				}
			}
			add = -20
		}

		modifier = { #Claimant modifier.
			desc = confederation_interaction_aibehavior_claimant_tt
			trigger = {
				scope:actor.top_liege.primary_title = {
					scope:recipient = {
						has_claim_on = prev
					}
				}
			}
			add = -20
		}

		modifier = { # Ambitious
			desc = TAKE_THE_VOWS_AMBITIOUS
			trigger = {
				scope:recipient = {
					has_trait = ambitious
				}
			}
			add = -25
		}

		modifier = { # Paranoid
			desc = INTERACTION_PARANOID
			trigger = {
				scope:recipient = {
					has_trait = paranoid
				}
			}
			add = -25
		}

		modifier = { # Arrogant
			desc = INTERACTION_ARROGANT
			trigger = {
				scope:recipient = {
					has_trait = arrogant
				}
			}
			add = -25
		}

		modifier = { # Fickle
			desc = INTERACTION_FICKLE
			trigger = {
				scope:recipient = {
					has_trait = fickle
				}
			}
			add = -15
		}

		modifier = { # Stubborn
			desc = INTERACTION_STUBBORN
			trigger = {
				scope:recipient = {
					has_trait = stubborn
				}
			}
			add = -15
		}

		modifier = { # Greedy
			desc = INTERACTION_GREEDY
			trigger = {
				scope:recipient = {
					has_trait = greedy
				}
			}
			add = -15
		}

		modifier = { # Trusting
			desc = TAKE_THE_VOWS_TRUSTING
			trigger = {
				scope:recipient = {
					has_trait = trusting
				}
			}
			add = 15
		}

		modifier = { # Content
			desc = INTERACTION_CONTENT
			trigger = {
				scope:recipient = {
					has_trait = content
				}
			}
			add = 15
		}

		modifier = { # Craven
			desc = INTERACTION_CRAVEN
			trigger = {
				scope:recipient = {
					has_trait = craven
				}
			}
			add = 25
		}

		modifier = { # FP3 modifier.
			desc = GENERIC_YOUR_PIETY_LEVEL_MODIFIER
			trigger = { scope:actor = { any_character_struggle = { has_struggle_phase_parameter = piety_level_affects_vassalage_acceptance } } }
			add = {
				value = {
					value = scope:actor.piety_level
					subtract = low_piety_level
				}
				multiply = 10
			}
		}

		# OPINION INFLUENCE
		modifier = {
			add = intimidated_external_reason_value
			scope:recipient = {
				has_dread_level_towards = {
					target = scope:actor
					level = 1
				}
			}
			desc = INTIMIDATED_REASON
		}
		modifier = {
			add = cowed_external_reason_value
			scope:recipient = {
				has_dread_level_towards = {
					target = scope:actor
					level = 2
				}
			}
			desc = COWED_REASON
		}
		opinion_modifier = { #Compare Opinion modifier.
			who = scope:recipient
			opinion_target = scope:actor
			multiplier = 0.35
		}

		# DIPLOMATIC COURT GRANDEUR BONUS
		modifier = {
			trigger = {
				scope:actor.top_liege = {
					has_royal_court = yes
					has_dlc_feature = royal_court
					has_court_type = court_diplomatic
					court_grandeur_current_level >= 1
				}
			}
			add = {
				value = scope:actor.top_liege.court_grandeur_current
				if = {
					limit = { # Reduce the bonus if you are below your expected level
						scope:actor.top_liege = {
							court_grandeur_current_level < court_grandeur_minimum_expected_level
						}
					}
					multiply = 0.15
				}
				else = {
					multiply = 0.3
				}
			}
			desc = DIPLOMATIC_COURT_ACCEPTANCE_INCREASE_REASON
		}

		# LOW LEGITIMACY
		modifier = {
			desc = "LOW_LEGITIMACY_REASON"
			add = -10
			scope:actor = {
				has_legitimacy_flag = reduced_confederation_acceptance
			}
		}
		modifier = {
			desc = "LOW_LEGITIMACY_REASON"
			add = -25
			scope:actor = {
				has_legitimacy_flag = very_reduced_confederation_acceptance
			}
		}

		# HIGH LEGITIMACY
		modifier = {
			desc = "HIGH_LEGITIMACY_REASON"
			add = 15
			scope:actor = {
				has_legitimacy_flag = increased_confederation_acceptance
			}
		}
		modifier = {
			desc = "HIGH_LEGITIMACY_REASON"
			add = 40
			scope:actor = {
				has_legitimacy_flag = very_increased_confederation_acceptance
			}
		}

		# HERD
		modifier = {
			add = 40
			scope:herd_send_option = yes
			desc = HERD_INTERACTION_ACCEPTANCE_SEND_OPTION
		}

		# PRESTIGE
		modifier = {
			add = 40
			scope:prestige_send_option = yes
			desc = PRESTIGE_INTERACTION_ACCEPTANCE_SEND_OPTION
		}

		#CULTURE
		modifier = {
			add = 50
			scope:actor = {
				culture = scope:recipient.culture
			}
			desc = "SAME_CULTURE_REASON"
		}
		modifier = {
			add = -20
			NOT = {
				scope:actor = {
					culture = scope:recipient.culture
				}
			}
			scope:actor = {
				NOR = {
					culture = {
						any_parent_culture_or_above = {
							this = scope:recipient.culture
						}
					}
					scope:recipient.culture = {
						any_parent_culture_or_above = {
							this = scope:actor.culture
						}
					}
					culture = {
						has_same_culture_heritage = scope:recipient.culture
					}
				}
			}
			desc = "DIFFERENT_CULTURE_REASON"
		}

		#Conquerors have no interest in this
		modifier = {
			scope:recipient = {
				has_trait = conqueror
			}
			add = -1000
		}
		modifier = {
			scope:recipient = {
				has_trait = greatest_of_khans
			}
			add = -1000
		}

		# Are you using a hook?
		modifier = {
			trigger = {
				scope:hook ?= yes
			}
			add = 100
			desc = LEGEND_HOOK_USED
		}

		#No neighbor scaring them
		modifier = {
			add = -30
			desc = NO_FRIGHTENING_NEIGHBOR_REASON
			scope:actor.culture = {
				NOT = {
					has_cultural_parameter = forming_confederations_is_easier
				}
			}
			scope:recipient.culture = {
				NOT = {
					has_cultural_parameter = forming_confederations_is_easier
				}
			}
			NOT = {
				scope:recipient = {
					confederation_neighboring_foe_trigger = { CHARACTER = scope:recipient }
				}
			}
		}

		#Neighbor is TERRIFYING them
		modifier = {
			add = 30
			desc = TERRIFYING_NEIGHBOR_REASON
			scope:recipient = {
				save_temporary_scope_as = confederate
				any_land_neighboring_realm_with_tributaries_owner = {
					top_suzerain ?= {
						is_confederation_member = no
						NOR = {
							this = scope:actor
							this = scope:actor.top_liege
						}
						confederation_worthy_foe_strength_ratio_value <= 0.25
						NOT = { is_allied_to = scope:recipient }
						OR = {
							highest_held_title_tier >= tier_kingdom
							faith = {
								faith_hostility_level = {
									target = scope:recipient.faith
									value >= faith_evil_level
								}
							}
							has_trait = conqueror
							has_trait = greatest_of_khans
							any_owned_story = {
								OR = {
									story_type = story_greatest_of_khans
									story_type = story_mongol_invasion
								}
							}
						}
					}
				}
			}
		}

		#You have too many confederates
		#For duchy
		modifier = {
			add = duchy_confederation_vassals_value
			desc = TOO_MANY_CONFEDERATION_VASSALS_REASON
			scope:actor.confederation ?= {
				any_confederation_member = {
					count >= 6
					highest_held_title_tier >= tier_county
				}
			}
		}

		#Another confederation of recipient's culture exists
		modifier = {
			add = -100
			desc = ANOTHER_CULTURE_CONFEDERATION_REASON
			NOT = {
				scope:actor.culture = {
					this = scope:recipient.culture
				}
			}
			any_confederation = {
				NOT = {
					this = scope:actor.confederation
				}
				has_variable = confederation_culture
				var:confederation_culture = scope:actor.culture
			}
		}

		#Forcing them to join war
		modifier = {
			add = -100
			desc = FORCED_TO_JOIN_WAR_REASON
			scope:actor = {
				is_at_war_as_defender = yes
				any_character_war = {
					primary_defender = {
						OR = {
							this = scope:actor
							AND = {
								exists = scope:actor.confederation
								is_member_of_confederation = scope:actor.confederation
							}
						}
					}
					is_defender = scope:actor
					NOR = {
						any_war_attacker = {
							is_allied_to = scope:recipient
						}
						any_war_attacker = {
							this = scope:recipient
						}
						any_war_defender = {
							this = scope:recipient
						}
						any_war_attacker = {
							scope:recipient = {
								has_truce = prev
							}
						}
					}
				}
			}
		}

		#You will be taking over their war
		modifier = {
			add = 100
			desc = TAKING_OVER_DEFENSIVE_WAR_REASON
			scope:recipient = {
				is_at_war_as_defender = yes
				any_character_war = {
					is_war_leader = scope:recipient
					is_defender = scope:recipient
					NOR = {
						any_war_attacker = {
							is_allied_to = scope:actor
						}
						any_war_attacker = {
							this = scope:actor
						}
						any_war_defender = {
							this = scope:actor
						}
					}
					defender_war_score < 80
					defender_war_score >= 0
				}
			}
		}
		modifier = {
			add = 200
			desc = TAKING_OVER_DEFENSIVE_WAR_REASON
			scope:recipient = {
				is_at_war_as_defender = yes
				any_character_war = {
					is_war_leader = scope:recipient
					is_defender = scope:recipient
					NOR = {
						any_war_attacker = {
							is_allied_to = scope:actor
						}
						any_war_attacker = {
							this = scope:actor
						}
						any_war_defender = {
							this = scope:actor
						}
					}
					defender_war_score < 0
				}
			}
		}

		#Culture is into/not into confederation
		modifier = {
			add = 10
			desc = CONFEDERATION_ETHOS_REASON
			scope:recipient.culture = {
				OR = {
					has_cultural_pillar = ethos_stoic
					has_cultural_pillar = ethos_communal
				}
			}
		}
		modifier = {
			add = 20
			desc = CONFEDERATION_ETHOS_REASON
			scope:recipient.culture = {
				OR = {
					has_cultural_pillar = ethos_egalitarian
				}
			}
		}
		modifier = {
			add = -10
			desc = CONFEDERATION_ETHOS_REASON
			scope:recipient.culture = {
				OR = {
					has_cultural_pillar = ethos_bellicose
					has_cultural_pillar = ethos_courtly
					has_cultural_pillar = ethos_bureaucratic
				}
			}
		}

		modifier = { # Herder
			add = 50
			desc = CONFEDERATION_HERDER_REASON
			trigger = {
				scope:recipient = {
					government_has_flag = government_is_true_herder
				}
			}
		}
		modifier = {
			add = -20
			desc = NOMADIC_AUTHORITY_REASON
			trigger = {
				scope:recipient = {
					has_realm_law = nomadic_authority_3
				}
			}
		}
		modifier = {
			add = -50
			desc = NOMADIC_AUTHORITY_REASON
			trigger = {
				scope:recipient = {
					has_realm_law = nomadic_authority_4
				}
			}
		}
		modifier = {
			add = -100
			desc = NOMADIC_AUTHORITY_REASON
			trigger = {
				scope:recipient = {
					has_realm_law = nomadic_authority_5
				}
			}
		}
		modifier = {
			add = -20
			desc = TRIBAL_AUTHORITY_REASON
			trigger = {
				scope:recipient = {
					has_realm_law = tribal_authority_2
				}
			}
		}
		modifier = {
			add = -50
			desc = TRIBAL_AUTHORITY_REASON
			trigger = {
				scope:recipient = {
					has_realm_law = tribal_authority_3
				}
			}
		}
		modifier = {
			desc = "BARANGAY_TRADITION_REASON"
			trigger = {
				scope:recipient.culture = {
					has_cultural_parameter = invite_to_confederation_extra_reasons
				}
			}
			add = 20
		}
		modifier = { #left your confederation
			add = -50
			desc = LEFT_YOUR_CONFEDERATION_REASON
			exists = scope:actor.confederation
			scope:recipient = {
				has_variable = left_confederation
				var:left_confederation ?= {
					this = scope:actor.confederation
				}
			}
		}
	}

	send_option = {
		flag = hook
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		localization = GENERIC_SPEND_A_HOOK
	}

	send_option = { # Herd
		is_shown = {
			scope:actor = {
				government_has_flag = government_is_nomadic
				exists = domicile
			}
		}
		is_valid = {
			scope:recipient = {
				government_has_flag = government_is_nomadic
				exists = domicile
			}
			scope:actor.domicile = { herd >= minor_herd_value }
		}
		flag = herd_send_option
		localization = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_CONFEDERATION
	}

	send_option = { # Prestige
		is_shown = {
			always = yes
		}
		is_valid = {
			scope:actor = { prestige >= minor_prestige_value }
		}
		flag = prestige_send_option
		localization = TRADE_PRESTIGE_FOR_BETTER_AI_ACCEPTANCE
	}

	send_options_exclusive = no

	on_accept = {
		if = {
			#checking that the delay hasn't made the character invalid
			limit = {
				scope:recipient = {
					is_playable_character = yes
				}
			}
			scope:actor = {
				if = {
					limit = { has_character_flag = forming_confederation }
					remove_character_flag = forming_confederation
					# MPO ACHIEVEMENT Con-Fed-Up
					if = {
						limit = { is_ai = no }
						add_achievement_global_variable_effect = {
							VARIABLE = mpo_confedup_achievement_unlocked
							VALUE = yes
						}
					}
				}
			}
			if = {
				limit = {
					scope:recipient = {
						is_at_war_as_defender = yes
						any_character_war = {
							is_war_leader = scope:recipient
							is_defender = scope:recipient
						}
					}
				}
				scope:recipient = {
					every_character_war = {
						limit = {
							is_war_leader = scope:recipient
							is_defender = scope:recipient
						}
						add_to_list = recipient_wars
					}
				}
				every_in_list = {
					list = recipient_wars
					save_scope_as = recipient_war
					primary_attacker = {
						save_scope_as = attacker
					}
					add_defender = scope:actor
					hidden_effect = {
						scope:actor.confederation ?= {
							every_confederation_member = {
								limit = {
									NOR = {
										is_attacker_in_war = scope:recipient_war
										is_defender_in_war = scope:recipient_war
										is_at_war_with = scope:recipient
										is_allied_to = scope:attacker
										is_imprisoned_by = scope:recipient
										is_at_war_with = scope:recipient
									}
								}
								scope:recipient_war = { add_defender = prev }
							}
						}
					}
				}
				if = {
					limit = {
						scope:actor.confederation ?= {
							any_confederation_member = {
								NOR = {
									is_attacker_in_war = scope:recipient_war
									is_defender_in_war = scope:recipient_war
									this = scope:actor
									is_at_war_with = scope:recipient
									is_allied_to = scope:attacker
									is_imprisoned_by = scope:recipient
									is_at_war_with = scope:recipient
								}
							}
						}
					}
					scope:actor = {
						custom_tooltip = confederates_joining_recipient_war_tt
					}
				}
			}
			scope:actor = {
				save_scope_as = confederation_offerer
			}
			scope:recipient = {
				save_scope_as = confederation_accepter
			}
			#Confederation doesn't exist yet
			if = {
				limit = {
					scope:actor = {
						is_confederation_member = no
					}
				}
				scope:actor = {
					custom_tooltip = create_confederation_tt
					custom_tooltip = confederation_defensive_wars_tt
					custom_tooltip = unlock_leave_confederation_interaction_tt
					if = {
						limit = {
							government_has_flag = government_is_nomadic
						}
						add_character_modifier = {
							modifier = mpo_confederation_member_modifier
							years = 5
						}
						capital_county ?= {
							change_county_fertility = major_county_fertility_level_gain
						}
					}
				}
				scope:recipient = {
					offer_confederation_accepter_effect = yes
				}
			}
			#Confederation already exists
			else = {
				scope:actor.confederation = {
					save_scope_as = confederation
				}
				show_as_tooltip = {
					#If actor is top liege and offering vassaldom
					scope:recipient = {
						offer_confederation_accepter_effect = yes
					}
				}
			}
			if = {
				limit = {
					scope:recipient = {
						government_has_flag = government_is_nomadic
					}
				}
				scope:recipient = {
					add_character_modifier = {
						modifier = mpo_confederation_member_modifier
						years = 5
					}
					capital_county ?= {
						change_county_fertility = major_county_fertility_level_gain
					}
				}
			}
			if = {
				limit = {
					scope:recipient = {
						is_ai = no
					}
				}
				scope:recipient = {
					custom_tooltip = confederation_raiding_attacking_tt
					if = {
						limit = {
							government_has_flag = government_is_nomadic
						}
						custom_tooltip = confederation_restrictions_warning_tt
					}
					else = {
						custom_tooltip = confederation_restrictions_tribe_warning_tt
					}
				}
			}
			scope:recipient = {
				if = {
					limit = {
						government_has_flag = government_is_nomadic
					}
					custom_tooltip = confederation_migrating_leaving_warning_tt
				}
			}
			scope:actor = {
				#Event distributor event
				trigger_event = mpo_interactions_events.0001
			}
			if = {
				limit = {
					scope:actor = {
						is_at_war_as_defender = yes
						any_character_war = {
							primary_defender = {
								OR = {
									this = scope:actor
									AND = {
										exists = scope:actor.confederation
										is_member_of_confederation = scope:actor.confederation
									}
								}
							}
							is_defender = scope:actor
							NOR = {
								any_war_attacker = {
									is_allied_to = scope:recipient
								}
								any_war_attacker = {
									this = scope:recipient
								}
								any_war_defender = {
									this = scope:recipient
								}
								any_war_attacker = {
									scope:recipient = {
										has_truce = prev
									}
								}
							}
						}
					}
				}
				scope:actor = {
					every_character_war = {
						limit = {
							primary_defender = {
								OR = {
									this = scope:actor
									AND = {
										exists = scope:actor.confederation
										is_member_of_confederation = scope:actor.confederation
									}
								}
							}
							is_defender = scope:actor
							NOR = {
								any_war_attacker = {
									is_allied_to = scope:recipient
								}
								any_war_attacker = {
									this = scope:recipient
								}
								any_war_defender = {
									this = scope:recipient
								}
								any_war_attacker = {
									scope:recipient = {
										has_truce = prev
									}
								}
							}
						}
						add_defender = scope:recipient
					}
					#Lose legitimacy unless you're taking on a war too
					if = {
						limit = {
							NOT = {
								scope:recipient = {
									is_at_war_as_defender = yes
									any_character_war = {
										is_war_leader = scope:recipient
										is_defender = scope:recipient
										NOR = {
											any_war_attacker = {
												is_allied_to = scope:actor
											}
											any_war_attacker = {
												this = scope:actor
											}
											any_war_attacker = {
												scope:actor = {
													has_truce = prev
												}
											}
										}
									}
								}
							}
						}
						add_legitimacy = medium_legitimacy_loss
						custom_tooltip = confederation_legitimacy_loss_war_tt
					}
				}
			}
			if = {
				limit = {
					scope:prestige_send_option = yes
				}
				scope:recipient = {
					add_prestige = scope:actor.minor_prestige_value
				}
			}
			if = {
				limit = {
					scope:herd_send_option = yes
				}
				scope:actor = {
					pay_herd = {
						target = scope:recipient
						value = domicile.minor_herd_value
					}
				}
			}
		}
	}

	on_decline = {
		#Stop spamming players with this
		if = {
			limit = {
				exists = scope:actor.confederation
				scope:recipient = {
					is_ai = no
				}
			}
			scope:recipient = {
				set_variable = {
					name = refused_confederation
					value = scope:actor.confederation
					years = 3
				}
			}
		}
		scope:actor = {
			#letter response
			trigger_event = mpo_interactions_events.0004
		}
	}

	ai_potential = {
		age >= 6
		OR = {
			AND = {
				is_independent_ruler = yes
				highest_held_title_tier < tier_kingdom
				has_character_flag = forming_confederation
			}
			is_confederation_member = yes
		}
		OR = {
			government_has_flag = government_is_tribal
			government_has_flag = government_is_nomadic
		}
	}

	ai_will_do = {
		base = 50

		modifier = {
			add = 25
			scope:actor = {
				confederation_neighboring_foe_trigger = { CHARACTER = scope:actor }
			}
		}
		modifier = {
			add = 25
			scope:recipient = {
				confederation_neighboring_foe_trigger = { CHARACTER = scope:recipient }
			}
		}
		modifier = {
			add = -25
			scope:recipient = {
				is_at_war = yes
			}
		}
		modifier = {
			factor = 0
			OR = {
				#Will only throw the confederation into a war
				scope:recipient = {
					is_at_war = yes
					NOR = {
						any_character_war = { primary_defender = scope:recipient }
						culture = scope:actor.culture
						scope:actor.confederation ?= {
							any_confederation_member = {
								count >= 4
								highest_held_title_tier >= tier_county
							}
						}
						reverse_opinion = {
							target = scope:actor
							value >= 30
						}
					}
				}
				AND = {
					exists = scope:actor.confederation
					scope:recipient = {
						has_variable = left_confederation
						var:left_confederation ?= {
							this = scope:actor.confederation
						}
					}
				}
				#Recipient hasn't been asked to join this confederation already
				scope:recipient = {
					has_variable = refused_confederation
					exists = scope:actor.confederation
					var:refused_confederation = {
						this = scope:actor.confederation
					}
				}
			}
		}
	}
}

promote_divergent_or_hybrid_culture_interaction = {
	category = interaction_category_diplomacy
	icon = icon_culture

	desc = promote_divergent_or_hybrid_culture_interaction_desc

	ai_targets = {
		ai_recipients = tributaries
		ai_recipients = vassals
		max = 10
	}
	ai_frequency_by_tier = {
		barony = 0
		county = 0
		duchy = 12
		kingdom = 12
		empire = 12
		hegemony = 12
	}
	popup_on_receive = yes
	pause_on_receive = yes

	common_interaction = yes

	is_shown = {
		scope:actor.domicile ?= {
			domicile_uses_culture_and_faith = yes
			domicile_culture = scope:actor.culture
		}
		scope:actor.culture ?= {
			OR = {
				is_hybrid_culture = yes
				is_divergent_culture = yes
			}
		}
		scope:recipient = {
			trigger_if = {
				limit = {
					domicile ?= { domicile_uses_culture_and_faith = yes }
				}
				domicile.domicile_culture != scope:actor.culture
			}
			trigger_else = {
				culture != scope:actor.culture
			}
			OR = {
				is_tributary_of_suzerain_or_above = scope:actor
				is_vassal_or_below_of = scope:actor
			}
		}
	}

	is_valid_showing_failures_only = {
		scope:recipient = {
			NOR = {
				is_imprisoned_by = scope:actor
				has_strong_hook = scope:actor
				is_at_war_with = scope:actor
			}
		}
		custom_tooltip = {
			text = not_a_nomad_or_herder_tt
			scope:recipient = {
				OR = {
					government_has_flag = government_is_nomadic
					government_has_flag = government_is_true_herder
				}
			}
		}
		trigger_if = {
			limit = {
				exists = scope:recipient.domicile
			}
			custom_tooltip = {
				text = not_a_parent_culture_of_domicile_tt
				scope:actor.culture = {
					any_parent_culture_or_above = {
						this = scope:recipient.domicile.domicile_culture
					}
				}
			}
		}
		trigger_else = {
			custom_tooltip = {
				text = not_a_parent_culture_tt
				scope:actor.culture = {
					any_parent_culture_or_above = {
						this = scope:recipient.culture
					}
				}
			}
		}
	}

	greeting = positive
	notification_text = PROMOTE_DIVERGENT_CULTURE_INTERACTION_NOTIFICATION

	ai_accept = {
		base = -50

		modifier = {
			add = 1000
			scope:recipient = {
				is_obedient_to = scope:actor
			}
			desc = MIGRATION_INTERACTION_OBEDIENT_ACCEPTANCE
		}

		opinion_modifier = {
			opinion_target = scope:actor
			who = scope:recipient
			multiplier = 1
			desc = AI_OPINION_REASON
		}

		modifier = {
			add = 20
			desc = NOMADIC_AUTHORITY_POSITIVE_REASON
			trigger = {
				scope:actor = {
					has_realm_law = nomadic_authority_3
				}
			}
		}

		modifier = {
			add = 50
			desc = NOMADIC_AUTHORITY_POSITIVE_REASON
			trigger = {
				scope:actor = {
					has_realm_law = nomadic_authority_4
				}
			}
		}

		modifier = {
			add = 100
			desc = NOMADIC_AUTHORITY_POSITIVE_REASON
			trigger = {
				scope:actor = {
					has_realm_law = nomadic_authority_5
				}
			}
		}

		# HERD
		modifier = {
			add = 60
			scope:herd_send_option = yes
			desc = HERD_INTERACTION_ACCEPTANCE_SEND_OPTION
		}

		# PRESTIGE
		modifier = {
			add = 60
			scope:prestige_send_option = yes
			desc = PRESTIGE_INTERACTION_ACCEPTANCE_SEND_OPTION
		}

		# Are you using a hook?
		modifier = {
			trigger = {
				scope:hook ?= yes
			}
			add = 1000
			desc = LEGEND_HOOK_USED
		}

		modifier = { # Herder
			add = 100
			desc = CONFEDERATION_HERDER_REASON
			trigger = {
				scope:recipient = {
					government_has_flag = government_is_true_herder
				}
			}
		}
	}

	send_option = {
		flag = hook
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		localization = GENERIC_SPEND_A_HOOK
	}

	send_option = { # Herd
		is_shown = {
			scope:actor = {
				government_has_flag = government_is_nomadic
				exists = domicile
			}
		}
		is_valid = {
			scope:recipient = {
				government_has_flag = government_is_nomadic
				exists = domicile
			}
			scope:actor.domicile = { herd >= minor_herd_value }
		}
		flag = herd_send_option
		localization = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_CONFEDERATION
	}

	send_option = { # Prestige
		is_shown = {
			always = yes
		}
		is_valid = {
			scope:actor = { prestige >= minor_prestige_value }
		}
		flag = prestige_send_option
		localization = TRADE_PRESTIGE_FOR_BETTER_AI_ACCEPTANCE
	}

	send_options_exclusive = no

	on_accept = {
		scope:actor = {
			send_interface_toast = {
				type = event_toast_effect_good
				title = promote_culture_accepted_tt
				left_icon = scope:recipient
				scope:recipient = {
					if = {
						limit = {
							domicile ?= { domicile_uses_culture_and_faith = yes }
						}
						custom_tooltip = {
							text = family_and_lands_convert_domicile_tt
							every_held_title = {
								limit = {
									tier = tier_county
									is_landless_type_title = no
									culture = scope:recipient.domicile.domicile_culture
								}
								add_to_list = counties_to_convert
							}
							# Family at court also convert
							every_close_or_extended_family_member = {
								limit = {
									is_courtier_of = scope:recipient
									culture = scope:recipient.domicile.domicile_culture
								}
								add_to_list = spouses_and_family_to_convert
							}
							domicile = {
								set_domicile_culture = scope:actor.culture
							}
						}
					}
					else = {
						custom_tooltip = {
							text = family_and_lands_convert_tt
							every_held_title = {
								limit = {
									tier = tier_county
									is_landless_type_title = no
									culture = scope:recipient.culture
								}
								add_to_list = counties_to_convert
							}
							# Family at court also convert
							every_close_or_extended_family_member = {
								limit = {
									is_courtier_of = scope:recipient
									culture = scope:recipient.culture
								}
								add_to_list = spouses_and_family_to_convert
							}
						}
					}
					if = {
						limit = {
							culture != scope:actor.culture
						}
						set_culture = scope:actor.culture
					}
					hidden_effect = {
						every_in_list = {
							list = counties_to_convert
							set_county_culture = scope:actor.culture
						}
						every_in_list = {
							list = spouses_and_family_to_convert
							set_culture = scope:actor.culture
						}
					}
					add_opinion = {
						modifier = respect_opinion
						opinion = 10
						target = scope:actor
					}
				}
			}
			if = {
				limit = {
					scope:prestige_send_option = yes
				}
				scope:actor = {
					add_prestige = scope:actor.minor_prestige_loss
				}
				scope:recipient = {
					add_prestige = scope:actor.minor_prestige_value
				}
			}
			if = {
				limit = {
					scope:herd_send_option = yes
				}
				scope:actor = {
					pay_herd = {
						target = scope:recipient
						value = domicile.minor_herd_value
					}
				}
			}
			if = {
				limit = {
					scope:hook = yes
				}
				use_hook = scope:recipient
			}
		}
	}

	on_decline = {
		scope:actor = {
		}
	}

	ai_potential = {
		government_has_flag = government_is_nomadic
		highest_held_title_tier >= tier_duchy
	}

	ai_will_do = {
		base = 100

		modifier = {
			add = -1
			scope:hook ?= yes
		}

		modifier = {
			factor = 0
			OR = {
				scope:herd_send_option ?= yes
				scope:prestige_send_option ?= yes
			}
		}
	}
}

inspire_conversion_interaction = {
	category = interaction_category_religion
	icon = government_type_nomad

	desc = inspire_conversion_interaction_desc

	ai_targets = {
		ai_recipients = tributaries
		ai_recipients = vassals
		max = 10
	}
	ai_frequency_by_tier = {
		barony = 0
		county = 0
		duchy = 12
		kingdom = 6
		empire = 6
		hegemony = 6
	}
	cooldown_against_recipient = { years = 5 }
	popup_on_receive = yes
	pause_on_receive = yes

	common_interaction = yes

	is_shown = {
		scope:actor.domicile ?= {
			domicile_uses_culture_and_faith = yes
		}
		scope:recipient = {
			OR = {
				trigger_if = {
					limit = {
						domicile ?= { domicile_uses_culture_and_faith = yes }
					}
					domicile.domicile_faith != scope:actor.domicile.domicile_faith
				}
				faith != scope:actor.domicile.domicile_faith
				faith != scope:actor.faith # Tooltip reasons
			}
			OR = {
				is_tributary_of_suzerain_or_above = scope:actor
				is_vassal_or_below_of = scope:actor
			}
		}
	}

	is_valid_showing_failures_only = {
		scope:recipient = {
			NOR = {
				is_imprisoned_by = scope:actor
				has_strong_hook = scope:actor
				is_at_war_with = scope:actor
			}
		}
		custom_description = {
			text = "is_head_of_religion"
			subject = scope:recipient
			NOT = { scope:recipient.faith.religious_head = scope:recipient }
		}
		custom_description = {
			text = "is_protected_via_contract"
			subject = scope:recipient
			NAND = { # Vassal Contract forbids meddling by liege
				exists = scope:recipient.liege
				scope:recipient.liege = scope:actor
				scope:recipient = {
					is_ruler = yes
					vassal_contract_has_flag = religiously_protected
				}
			}
		}
		custom_tooltip = {
			text = you_are_not_of_your_domicile_faith_tt
			scope:recipient = {
				OR = {
					trigger_if = {
						limit = {
							domicile ?= { domicile_uses_culture_and_faith = yes }
						}
						domicile.domicile_faith != scope:actor.domicile.domicile_faith
					}
					faith != scope:actor.domicile.domicile_faith
				}
			}
		}
		custom_tooltip = {
			text = not_a_nomad_or_herder_tt
			scope:recipient = {
				OR = {
					government_has_flag = government_is_nomadic
					government_has_flag = government_is_true_herder
				}
			}
		}
	}

	greeting = positive
	notification_text = INSPIRE_CONVERSION_INTERACTION_NOTIFICATION

	ai_accept = {
		base = -50

		modifier = {
			add = 1000
			scope:recipient = {
				is_obedient_to = scope:actor
			}
			desc = MIGRATION_INTERACTION_OBEDIENT_ACCEPTANCE
		}

		modifier = {
			desc = ASK_FOR_CONVERSION_RECIPIENT_IS_ZEALOUS
			add = -100
			scope:recipient = {
				has_trait = zealous
			}
		}

		modifier = {
			desc = INSPIRE_UNREFORMED_FAITH
			add = -50
			scope:actor.faith = { has_doctrine_parameter = unreformed }
		}

		modifier = {
			add = 50
			desc = ZEALOUS_PROSELYTIZER_REASON
			trigger = {
				scope:actor = {
					has_perk = zealous_proselytizer_perk
				}
			}
		}

		modifier = {
			add = 20
			desc = NOMADIC_AUTHORITY_POSITIVE_REASON
			trigger = {
				scope:actor = {
					has_realm_law = nomadic_authority_3
				}
			}
		}

		modifier = {
			add = 50
			desc = NOMADIC_AUTHORITY_POSITIVE_REASON
			trigger = {
				scope:actor = {
					has_realm_law = nomadic_authority_4
				}
			}
		}

		modifier = {
			add = 100
			desc = NOMADIC_AUTHORITY_POSITIVE_REASON
			trigger = {
				scope:actor = {
					has_realm_law = nomadic_authority_5
				}
			}
		}

		opinion_modifier = {
			opinion_target = scope:actor
			who = scope:recipient
			multiplier = 1
			desc = AI_OPINION_REASON
		}

		# HERD
		modifier = {
			add = 60
			scope:herd_send_option = yes
			desc = HERD_INTERACTION_ACCEPTANCE_SEND_OPTION
		}

		# PIETY
		modifier = {
			add = 60
			scope:piety_send_option = yes
			desc = PIETY_INTERACTION_ACCEPTANCE_SEND_OPTION
		}

		# Are you using a hook?
		modifier = {
			trigger = {
				scope:hook ?= yes
			}
			add = 1000
			desc = LEGEND_HOOK_USED
		}

		modifier = { # Herder
			add = 100
			desc = CONFEDERATION_HERDER_REASON
			trigger = {
				scope:recipient = {
					government_has_flag = government_is_true_herder
				}
			}
		}
	}

	send_option = {
		flag = hook
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		localization = GENERIC_SPEND_A_HOOK
	}

	send_option = { # Herd
		is_shown = {
			scope:actor = {
				government_has_flag = government_is_nomadic
				exists = domicile
			}
		}
		is_valid = {
			scope:recipient = {
				government_has_flag = government_is_nomadic
				exists = domicile
			}
			scope:actor.domicile = { herd >= minor_herd_value }
		}
		flag = herd_send_option
		localization = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_CONFEDERATION
	}

	send_option = { # Piety
		is_shown = {
			always = yes
		}
		is_valid = {
			scope:actor = { piety >= medium_piety_value }
		}
		flag = piety_send_option
		localization = TRADE_PRESTIGE_FOR_BETTER_AI_ACCEPTANCE_ICON
	}

	send_options_exclusive = no

	on_accept = {
		scope:actor = {
			send_interface_toast = {
				type = event_toast_effect_good
				title = inspire_conversion_accepted_tt
				left_icon = scope:recipient
				scope:recipient = {
					if = {
						limit = {
							domicile ?= { domicile_uses_culture_and_faith = yes }
						}
						custom_tooltip = {
							text = family_and_lands_inspire_domicile_tt
							every_held_title = {
								limit = {
									tier = tier_county
									is_landless_type_title = no
									culture = scope:recipient.domicile.domicile_culture
									faith != scope:actor.domicile.domicile_faith
								}
								add_to_list = counties_to_convert
							}
							# Family at court also convert
							every_close_or_extended_family_member = {
								limit = {
									is_courtier_of = scope:recipient
									faith != scope:actor.domicile.domicile_faith
								}
								add_to_list = spouses_and_family_to_convert
							}
							domicile = {
								if = {
									limit = {
										domicile_faith != scope:actor.domicile.domicile_faith
									}
									set_domicile_faith = scope:actor.domicile.domicile_faith
								}
							}
						}
					}
					else = {
						custom_tooltip = {
							text = family_and_lands_inspire_tt
							every_held_title = {
								limit = {
									tier = tier_county
									is_landless_type_title = no
									culture = scope:recipient.culture
									faith != scope:actor.domicile.domicile_faith
								}
								add_to_list = counties_to_convert
							}
							# Family at court also convert
							every_close_or_extended_family_member = {
								limit = {
									is_courtier_of = scope:recipient
									faith != scope:actor.domicile.domicile_faith
								}
								add_to_list = spouses_and_family_to_convert
							}
						}
					}
					if = {
						limit = {
							faith != scope:actor.domicile.domicile_faith
						}
						set_character_faith = scope:actor.domicile.domicile_faith
					}
					hidden_effect = {
						every_in_list = {
							list = counties_to_convert
							set_county_faith = scope:actor.domicile.domicile_faith
						}
						every_in_list = {
							list = spouses_and_family_to_convert
							set_character_faith = scope:actor.domicile.domicile_faith
						}
					}
					if = { # If you have the Religious Icon perk they become obedient
						limit = {
							scope:actor = {
								government_has_flag = government_is_nomadic
								has_perk = religious_icon_perk
							}
							scope:recipient = {
								obedience_target = scope:actor
								is_obedient = no
							}
						}
						scope:recipient = {
							add_opinion = {
								modifier = obedience_opinion
								target = scope:actor
							}
						}
					}
					else = {
						add_opinion = {
							modifier = respect_opinion
							opinion = 10
							target = scope:actor
						}
					}
				}
			}
			if = {
				limit = {
					scope:piety_send_option = yes
				}
				scope:actor = {
					add_piety = scope:actor.medium_piety_loss
				}
				scope:recipient = {
					add_piety = scope:actor.medium_piety_value
				}
			}
			if = {
				limit = {
					scope:herd_send_option = yes
				}
				scope:actor = {
					pay_herd = {
						target = scope:recipient
						value = domicile.minor_herd_value
					}
				}
			}
		}
	}

	on_decline = {
		scope:actor = {
		}
	}

	ai_potential = {
		government_has_flag = government_is_nomadic
		highest_held_title_tier >= tier_duchy
		NOR = {
			any_owned_story = {
				OR = {
					story_type = story_mongol_invasion
					story_type = story_greatest_of_khans

				}
			}
			mpo_has_gok_mongol_empire_trigger = yes
		}
	}

	ai_will_do = {
		base = 100

		modifier = {
			add = -1
			scope:hook ?= yes
		}

		modifier = {
			add = -1
			scope:piety_send_option ?= yes
		}

		modifier = {
			factor = 0
			scope:herd_send_option ?= yes
		}
	}
}

# Used by AI code
migration_interaction = {
	interface_priority = 120
	common_interaction = yes
	use_diplomatic_range = no
	category = interaction_debug_main
	icon = herd_interaction
	hidden = yes

	# Keep AI reply at minimum - don't change default values
	# ai_min_reply_days = 0
	# ai_max_reply_days = 0

	can_send_despite_rejection = yes

	interface = migration
	special_interaction = migration

	cost = {
		# Free
	}

	desc = migration_interaction_desc

	is_shown = {
		scope:actor = {
			government_has_flag = government_is_nomadic
			trigger_if = {
				limit = {
					is_ai = yes
				}
				is_at_war = no
			}
			highest_held_title_tier >= tier_county
		}
	}

	is_valid_showing_failures_only = {
		scope:actor = {
			is_imprisoned = no
			is_independent_ruler = yes
			is_travelling = no
			custom_tooltip = {
				text = no_primary_wars_tt
				NOT = {
					any_character_war = {
						OR = {
							primary_attacker = { this = scope:actor }
							primary_defender = { this = scope:actor }
						}
					}
				}
			}
			custom_tooltip = {
				text = must_have_migration_situation_tt
				any_character_situation = {
					any_participant_group = {
						participant_group_type = nomad_rulers_capital
						participant_group_has_character = scope:actor
					}
				}
			}
			NOR = {
				exists = involved_activity
				has_truce = scope:recipient
			}
		}
		scope:recipient = {
			is_ruler = yes
			NOT = { is_allied_to = scope:actor }
		}
	}

	# can_be_picked_title is unused for migration_interaction and controlled by code
	# can_be_picked_title = {}

	on_accept = {
		scope:actor = {
			if = {
				limit = {
					is_ai = yes
				}
				set_variable = {
					name = migration_cooldown
					years = migration_cooldown_value
				}
			}
			# We add a variable in case you're migrating into a Tributary, for special event Options
			if = {
				limit = {
					scope:recipient = {
						is_tributary = yes
						NOT = { is_tributary_of_suzerain_or_above = scope:actor } # They're not your Tributary
					}
					trigger_if = {
						limit = { exists = scope:actor.overlord }
						scope:recipient.overlord != scope:actor.overlord # You're not subjects of the same ruler already
					}
				}
				set_variable = {
					name = migrating_into_tributary_var
					value = scope:recipient.overlord
				}
			}
			if = {
				limit = {
					is_confederation_member = yes
				}
				confederation = {
					save_scope_as = confederation_left
				}
				confederation_migration_notification_effect = yes
				confederation = {
					remove_confederation_member = scope:actor
				}
			}
			# Pay what you need to pay first
			if = {
				limit = { scope:hook = yes }
				use_hook = scope:recipient
			}
			if = {
				limit = { scope:gold_cost = yes }
				pay_short_term_gold = {
					target = scope:recipient
					gold = medium_gold_value
				}
			}
			if = {
				limit = { scope:herd_cost = yes }
				pay_herd = {
					target = scope:recipient
					value = domicile.medium_herd_value
				}
			}
			if = {
				limit = {
					exists = scope:target_title
				}
				set_variable = {
					name = migration_title
					value = scope:target_title
				}
			}

			# Save your old lands
			save_scope_as = old_holder
			capital_county = { save_scope_as = old_capital_county }
			every_held_title = {
				limit = {
					tier = tier_county
					exists = duchy
					culture = scope:actor.domicile.domicile_culture
				}
				add_to_list = old_held_titles
			}

			# Make a new culture appear in the lands you left behind, as you're bringing _your_ people with you
			# Delay the creation so that Herders have spawned
			trigger_event = {
				id = mpo_misc.0001
				delayed = yes
			}

			# Let's migrate!
			# If there's a Drought, your people get a morale boost
			if = {
				limit = {
					any_character_situation = {
						any_situation_sub_region = {
							has_sub_region_phase_parameter = the_great_steppe_migration_morale_boost
							any_situation_sub_region_participant_group = {
								participant_group_type = nomad_rulers_capital
								participant_group_has_character = scope:actor
							}
						}
					}
				}
				custom_tooltip = {
					text = mpo_the_great_steppe_migration_morale_boost_effect_tt
					every_courtier_or_guest = {
						add_opinion = {
							target = prev
							modifier = drought_migration_opinion
						}
					}
				}
			}

			if = {
				limit = {
					exists = scope:target_title
				}
				custom_tooltip = mpo_steppe_migration_migrate_to_tt
				custom_tooltip = mpo_steppe_migration_lose_land_tt
				every_vassal = {
					limit = {
						OR = {
							is_ai = no
							NOT = { is_obedient_to = scope:actor }
						}
					}
					hidden_effect = {
						break_subject_contract_and_establish_tributary_effect = {
							SUZERAIN = scope:actor
							TRIBUTARY = this
						}
					}
					custom_tooltip = mpo_steppe_migration_lose_vassal_tt
				}
			}
			# Obedient vassals follow their liege
			every_vassal = {
				limit = {
					exists = scope:target_title
					is_obedient_to = scope:actor
					is_ai = yes
				}
				save_scope_as = current_vassal
				custom_tooltip = mpo_steppe_migration_keep_vassal_tt
				hidden_effect = {
					start_travel_plan = {
						destination = scope:target_title.title_capital_county.title_province
						return_trip = no
						travel_with_domicile = yes
					}
					migration_set_obedient_vassal_effect = yes
				}
			}
			# Player and non obedient vassals get turned into Tributaries instead
			every_vassal = {
				limit = {
					exists = scope:target_title
					OR = {
						NOT = { is_obedient_to = scope:actor }
						is_ai = no
					}
				}
				break_subject_contract_and_establish_tributary_effect = { SUZERAIN = scope:actor TRIBUTARY = prev }
			}
			# Migration travel is handled by code
		}
	}

	on_decline = {
		# We add a variable in case you're migrating into a Tributary, for special event Options
		if = {
			limit = {
				scope:recipient = {
					is_tributary = yes
					suzerain != scope:actor # They're not your tributary
				}
				trigger_if = {
					limit = { exists = scope:actor.overlord }
					scope:recipient.overlord != scope:actor.overlord # You're not subjects of the same ruler already
				}
			}
			scope:actor = {
				set_variable = {
					name = migrating_into_tributary_war_var
					value = scope:recipient.overlord
				}
			}
		}
		# Migration wars are handled by code
		scope:actor = {
			if = {
				limit = {
					is_confederation_member = yes
				}
				confederation_migration_notification_effect = yes
				confederation = {
					remove_confederation_member = scope:actor
				}
			}
			every_vassal = {
				limit = {
					exists = scope:target_title
					is_obedient_to = scope:actor
					is_ai = yes
				}
				save_scope_as = current_vassal
				hidden_effect = {
					migration_set_obedient_vassal_effect = yes
				}
			}
		}
	}

	# Use gold
	send_option = {
		flag = gold_cost
		is_valid = {
			scope:actor.gold >= scope:actor.medium_gold_value
		}
		localization = TRADE_GOLD_FOR_BETTER_MIGRATION_AI_ACCEPTANCE
	}

	# Use Herd
	send_option = {
		is_shown = {
			scope:recipient = {
				government_has_flag = government_is_nomadic
			}
		}
		is_valid = {
			scope:actor = {
				domicile ?= { herd >= medium_herd_value }
			}
		}
		flag = herd_cost
		localization = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE
	}

	# Use hook
	send_option = {
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		flag = hook
		localization = GENERIC_SPEND_A_HOOK
	}
	should_use_extra_icon = {
		scope:actor = { has_usable_hook = scope:recipient }
	}
	extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"

	send_options_exclusive = no

	ai_accept = {
		base = 0
		modifier = {
			add = {
				value = -95
				if = { #Non-Nomads should try to keep their lands
					limit = {
						scope:recipient = {
							NOR = {
								government_has_flag = government_is_nomadic
								government_has_flag = government_is_true_herder
							}
						}
					}
					add = -405
				}
			}
			desc = MIGRATION_INTERACTION_BASE_ACCEPTANCE
		}
		modifier = { # Easier for AI to migrate peacefully since they can't send Herd/Gold
			add = 50
			trigger = {
				scope:recipient = { is_ai = yes }
				scope:actor = { is_ai = yes }
			}
			desc = MIGRATION_INTERACTION_ACCEPTANCE_AI
		}
		modifier = { # Herders move away immediately
			trigger = {
				scope:recipient = { government_has_flag = government_is_true_herder }
			}
			add = 150
			desc = MIGRATION_INTERACTION_HERDER
		}
		modifier = { # Dukes don't really want to move
			trigger = {
				scope:recipient = {
					has_realm_law = nomadic_authority_3
				}
			}
			add = -20
			desc = MIGRATION_INTERACTION_HIGH_DOMINANCE
		}
		modifier = { # Kingdoms/Empires don't want to move
			trigger = {
				scope:recipient = {
					OR = {
						has_realm_law = nomadic_authority_4
						has_realm_law = nomadic_authority_5
					}
				}
			}
			add = -100
			desc = MIGRATION_INTERACTION_HIGH_DOMINANCE
		}
		# Are you using a hook?
		modifier = {
			trigger = {
				scope:hook ?= yes
			}
			add = 100
			desc = MIGRATION_HOOK_USED
		}
		# Are you using Gold?
		modifier = {
			trigger = {
				scope:gold_cost ?= yes
			}
			add = 25
			desc = TRADE_GOLD_FOR_BETTER_AI_ACCEPTANCE_TT
		}
		# Are you using Herd?
		modifier = {
			trigger = {
				scope:herd_cost ?= yes
			}
			add = 25
			desc = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_TT
		}
		# Is there a Drought?
		modifier = {
			add = 15
			any_character_situation = {
				any_situation_sub_region = {
					has_sub_region_phase_parameter = the_great_steppe_migration_acceptance_boost
					any_situation_sub_region_participant_group = {
						participant_group_type = nomad_rulers_capital
						participant_group_has_character = scope:actor
					}
				}
			}
			desc = MIGRATION_INTERACTION_DROUGHT_ACCEPTANCE
		}
		# Recipient traits
		modifier = {
			add = 15
			scope:recipient = {
				has_trait = craven
			}
			desc = MIGRATION_INTERACTION_CRAVEN_ACCEPTANCE
		}
		modifier = {
			add = 15
			scope:recipient = {
				has_trait = content
			}
			desc = MIGRATION_INTERACTION_CONTENT_ACCEPTANCE
		}
		# Recipient's opinion
		opinion_modifier = {
			trigger = {
				scope:actor = {
					OR = {
						has_realm_law = nomadic_authority_1
						has_realm_law = nomadic_authority_2
					}
				}
			}
			opinion_target = scope:actor
			who = scope:recipient
			multiplier = 1
			desc = MIGRATION_INTERACTION_OPINION_ACCEPTANCE
		}
		opinion_modifier = {
			trigger = {
				scope:actor = {
					OR = {
						has_realm_law = nomadic_authority_3
						has_realm_law = nomadic_authority_4
						has_realm_law = nomadic_authority_5
					}
				}
			}
			opinion_target = scope:actor
			who = scope:recipient
			multiplier = 0.5
			desc = MIGRATION_INTERACTION_OPINION_ACCEPTANCE
		}
		# Recipient's relation to you
		modifier = {
			scope:recipient = {
				has_relation_friend = scope:actor
			}
			add = {
				value = 25
				if = {
					limit = {
						scope:actor = {
							OR = {
								has_realm_law = nomadic_authority_1
								has_realm_law = nomadic_authority_2
							}
						}
					}
					add = 50
				}
			}
			desc = MIGRATION_INTERACTION_FRIEND_ACCEPTANCE
		}
		modifier = {
			scope:recipient = {
				has_relation_blood_brother = scope:actor
			}
			add = {
				value = 50
				if = {
					limit = {
						scope:actor = {
							OR = {
								has_realm_law = nomadic_authority_1
								has_realm_law = nomadic_authority_2
							}
						}
					}
					add = 50
				}
			}
			desc = MIGRATION_INTERACTION_BLOOD_BROTHERS_ACCEPTANCE
		}
		# Obedience
		modifier = {
			scope:recipient = {
				is_obedient_to = scope:actor
			}
			add = {
				value = 50
				if = {
					limit = {
						scope:actor = {
							OR = {
								has_realm_law = nomadic_authority_1
								has_realm_law = nomadic_authority_2
							}
						}
					}
					add = 50
				}
			}
			desc = MIGRATION_INTERACTION_OBEDIENT_ACCEPTANCE
		}
		# Relative Prestige
		modifier = {
			add = 10
			prestige_level >= scope:recipient.prestige_level
			desc = MIGRATION_INTERACTION_PRESTIGE_ACCEPTANCE
		}
		# Relative Prowess
		modifier = {
			add = 10
			prowess >= scope:recipient.prowess
			desc = MIGRATION_INTERACTION_PROWESS_ACCEPTANCE
		}
		# Relative Herd
		modifier = {
			trigger_if = {
				exists = scope:recipient.domicile # Herders won't have a domicile
			}
			add = 25
			domicile.herd >= scope:recipient.domicile.herd
			desc = MIGRATION_INTERACTION_HERD_ACCEPTANCE
		}
		# Gurkhan
		modifier = {
			add = -1000
			exists = situation:the_great_steppe
			scope:recipient = {
				this = situation:the_great_steppe.situation_top_herd
			}
			desc = MIGRATION_INTERACTION_GURKHAN_ACCEPTANCE
		}
		modifier = {
			add = 50
			trigger_if = {
				exists = situation:the_great_steppe
			}
			scope:actor = {
				this = situation:the_great_steppe.situation_top_herd
			}
			desc = MIGRATION_INTERACTION_GURKHAN_ACTOR_ACCEPTANCE
		}
		# Dread
		modifier = {
			add = intimidated_reason_value
			scope:recipient = {
				has_dread_level_towards = {
					target = scope:actor
					level = 1
				}
			}
			desc = INTIMIDATED_REASON
		}
		modifier = {
			add = cowed_reason_value
			scope:recipient = {
				has_dread_level_towards = {
					target = scope:actor
					level = 2
				}
			}
			desc = COWED_REASON
		}

		# Events
		modifier = {
			add = 5
			scope:actor = { has_character_modifier = mpo_elder_flock_migrate_modifier }
			desc = MIGRATION_INTERACTION_ELDER_FLOCK_ACCEPTANCE
		}

		#Confederations refuse to be intimidated and don't want to leave
		modifier = {
			add = -300
			desc = CONFEDERATION_MEMBER_REASON
			scope:recipient = {
				is_confederation_member = yes
			}
		}
		# High-tier Ruler
		modifier = {
			add = -500
			exists = scope:recipient.primary_title
			scope:recipient.primary_title.tier >= tier_kingdom
			desc = MIGRATION_INTERACTION_KING_ACCEPTANCE
		}

		# Recently settled nomads don't want to accept
		modifier = {
			add = -1000
			desc = JUST_SETTLED_REASON
			scope:recipient = {
				is_tributary = yes
				NOT = { government_has_flag = government_is_true_herder }
				capital_county = {
					title_held_years < 3
				}
			}
		}
	}

	ai_instant_response = yes

	# Available scopes and values
	#
	# scope:actor - migrating ruler
	# scope:recipient - ruler who decides if migration is peaceful or hostile
	# scope:target - main migration target - can be of any tier
	#
	# Additional scopes provided from code
	#
	# scope:domain - County or duchy that migrating ruler aims to get as their new domain.
	# Can be the same as scope:target, if county of duchy-level migration
	#
	# scope:domain_fertility - Total current fertility of scope:domain - what actor is going to receive
	# scope:target_fertility - Total current fertility of main migration target
	#
	# scope:defenders - Script list of all rulers who will be part of migration war if declined.
	# It includes all rulers who are going to lose land - holder of main migration target and all rulers
	# who has land in scope:domain
	#
	# scope:defender_power - combined max military power of all members in scope:defenders.
	# It's power - i.e. scaled by regiments attack and toughness
	#
	ai_will_do = {
		base = 0

		# More likely to migrate to people you don't like
		opinion_modifier = {
			opinion_target = scope:recipient
			multiplier = -0.25
		}

		# Bold, energetic characters are more likely to migrate
		ai_value_modifier = {
			ai_boldness = 0.25
			ai_energy = 0.25
		}

		# We substract your Fertility
		modifier = {
			add = {
				value = scope:actor.current_domain_fertility
				multiply = -1
			}
		}

		# And we add the target realm's Fertility
		modifier = {
			add = scope:domain_fertility
		}

		# Less likely to migrate into players
		modifier = {
			add = -25
			scope:recipient = { is_ai = no }
		}

		# Can you win this war?
		modifier = {
			scope:actor.current_military_strength >= scope:defender_power
			add = 25
		}
		modifier = {
			scope:actor.current_military_strength <= scope:defender_power
			add = -75
		}

		# You're moving from a bad season to a good one
		modifier = {
			has_bad_season_nomadic_capital_character_trigger = { CHARACTER = scope:actor }
			has_good_season_nomadic_capital_character_trigger = { CHARACTER = scope:recipient }
			add = 10
		}

		# There's a very bad season in your area
		modifier = {
			scope:actor = {
				any_character_situation = {
					any_situation_sub_region = {
						sub_region_current_phase = situation_steppe_havsarsan_zud_season
						situation_sub_region_has_county = scope:actor.capital_county
					}
				}
			}
			add = 100
		}

		# You are landless and your herd is starving
		modifier = {
			scope:actor = {
				is_landed = no
			}
			add = 50
		}

		# The recipient is a Herder
		modifier = {
			scope:recipient = { government_has_flag = government_is_true_herder }
			add = 10
		}
		
		# The recipient is a Steppe Admin
		modifier = {
			scope:recipient = { government_has_flag = government_is_steppe_admin }
			add = -25
		}

		# You have a hook on the recipient
		modifier = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
			add = 25
		}

		# More likely to migrate with Low Dominance
		modifier = {
			scope:actor = {
				OR = {
					has_realm_law = nomadic_authority_1
					has_realm_law = nomadic_authority_2
				}
			}
			add = 10
		}
		modifier = {
			exists = scope:target
			scope:actor = {
				scope:target.tier >= tier_kingdom
				primary_title.tier < tier_kingdom
				OR = {
					has_realm_law = nomadic_authority_3
					has_realm_law = nomadic_authority_4
					has_realm_law = nomadic_authority_5
				}
			}
			add = 100
		}
		modifier = {
			exists = scope:target
			scope:actor = {
				scope:target.tier >= tier_empire
				primary_title.tier < tier_empire
				OR = {
					has_realm_law = nomadic_authority_4
					has_realm_law = nomadic_authority_5
				}
			}
			add = 100
		}
		modifier = {
			scope:actor = {
				primary_title.tier >= tier_kingdom
				has_realm_law = nomadic_authority_3
			}
			add = -90
		}
		modifier = {
			scope:actor = {
				primary_title.tier >= tier_empire
				OR = {
					has_realm_law = nomadic_authority_4
					has_realm_law = nomadic_authority_5
				}
			}
			add = -90
		}

		#You're in a confederation... you don't want to go anywhere
		modifier = {
			scope:actor = {
				is_confederation_member = yes
				has_character_flag = new_confederate
			}
			add = -100
		}
		modifier = {
			scope:actor = {
				is_confederation_member = yes
				NOT = { has_character_flag = new_confederate }
			}
			add = -30
		}
		#The recipient is bordering your confederation (so you can rejoin)
		modifier = {
			scope:actor = {
				is_confederation_member = yes
			}
			scope:recipient = {
				highest_held_title_tier <= tier_duchy
				any_land_neighboring_realm_with_tributaries_owner = {
					OR = {
						is_member_of_confederation = scope:actor.confederation
						suzerain ?= {
							is_member_of_confederation = scope:actor.confederation
						}
					}
				}
			}
			add = 30
		}

		# Don't migrate somewhere where there's a disease or Havsaran Zud
		modifier = {
			factor = 0
			scope:domain = {
				OR = {
					AND = {
						tier = tier_county
						any_county_situation_sub_region = {
							sub_region_current_phase = situation_steppe_havsarsan_zud_season
						}
					}
					AND = {
						tier = tier_county
						any_county_province = {
							any_province_epidemic = {
							}
						}
					}
				}
			}
		}
		# Don't migrate into a domain that contains a vassal player
		modifier = {
			scope:domain = {
				any_in_de_facto_hierarchy = {
					holder ?= {
						is_ai = no
						is_independent_ruler = no
					}
				}
			}
			factor = 0
		}
		# Avoid bad wars
		modifier = {
			factor = 0.01
			scope:defender_power >= scope:actor.current_military_strength
		}
		# Don't be suicidal
		modifier = {
			factor = 0
			scope:defender_power >= scope:actor.twice_current_military_strength
		}
		modifier = {
			factor = 0
			scope:recipient.current_military_strength > scope:actor.current_military_strength
		}
		modifier = {
			factor = 0
			scope:defender_power >= 10
			scope:actor.current_military_strength <= 500
		}
		# Do not downgrade your title
		modifier = {
			factor = 0
			exists = scope:target
			scope:target.tier < scope:actor.primary_title.tier
		}
		# Tributaries want to stick close to their suzerain
		modifier = {
			factor = 0
			scope:actor = {
				is_tributary = yes
			}
			scope:domain = {
				NOR = {
					holder ?= {
						is_tributary_of_suzerain_or_above = scope:actor.suzerain
					}
					AND = {
						tier = tier_county
						any_neighboring_county = {
							holder ?= {
								is_tributary_of_suzerain_or_above = scope:actor.suzerain
							}
						}
					}
					any_in_de_jure_hierarchy = {
						tier = tier_county
						OR = {
							holder ?= {
								is_tributary_of_suzerain_or_above = scope:actor.suzerain
							}
							any_neighboring_county = {
								holder ?= {
									is_tributary_of_suzerain_or_above = scope:actor.suzerain
								}
							}
						}
					}
				}
			}
		}
		# Small AI nomads should only migrate to same-culture areas or right next to them, as everything else looks really bad.
		modifier = {
			factor = 0
			scope:actor = {
				any_character_situation = {
					this = situation:the_great_steppe
				}
				has_realm_law = nomadic_authority_1
				# If the character's culture does not exist outside of their realm, allow lenient migrations (otherwise small cultures get stuck)
				culture = {
					any_culture_county = {
						holder.top_liege != scope:actor
					}
				}
			}
			scope:domain = {
				NOR = {
					AND = {
						tier = tier_county
						save_temporary_scope_as = county_culture_check
						OR = {
							culture = scope:actor.culture
							culture = {
								any_parent_culture_or_above = {
									this = scope:actor.culture
								}
							}
							scope:actor.culture = {
								any_parent_culture_or_above = {
									this = scope:county_culture_check.culture
								}
							}
							any_neighboring_county = {
								OR = {
									culture = scope:actor.culture
									culture = {
										any_parent_culture_or_above = {
											this = scope:actor.culture
										}
									}
									scope:actor.culture = {
										any_parent_culture_or_above = {
											this = scope:county_culture_check.culture
										}
									}
								}
							}
						}
					}
					any_in_de_jure_hierarchy = {
						tier = tier_county
						save_temporary_scope_as = county_culture_check
						OR = {
							culture = scope:actor.culture
							culture = {
								any_parent_culture_or_above = {
									this = scope:actor.culture
								}
							}
							scope:actor.culture = {
								any_parent_culture_or_above = {
									this = scope:county_culture_check.culture
								}
							}
							any_neighboring_county = {
								OR = {
									culture = scope:actor.culture
									culture = {
										any_parent_culture_or_above = {
											this = scope:actor.culture
										}
									}
									scope:actor.culture = {
										any_parent_culture_or_above = {
											this = scope:county_culture_check.culture
										}
									}
								}
							}
						}
					}
				}
			}
		}
		# Slightly bigger nomads are also allowed to migrate into non-nomadic lands
		modifier = {
			factor = 0
			scope:actor = {
				any_character_situation = {
					this = situation:the_great_steppe
				}
				has_realm_law = nomadic_authority_2
				# If the character's culture does not exist outside of their realm, allow lenient migrations (otherwise small cultures get stuck)
				culture = {
					any_culture_county = {
						holder.top_liege != scope:actor
					}
				}
			}
			scope:domain = {
				NOR = {
					AND = {
						tier = tier_county
						save_temporary_scope_as = county_culture_check
						OR = {
							culture = scope:actor.culture
							culture = {
								any_parent_culture_or_above = {
									this = scope:actor.culture
								}
							}
							scope:actor.culture = {
								any_parent_culture_or_above = {
									this = scope:county_culture_check.culture
								}
							}
							any_neighboring_county = {
								OR = {
									culture = scope:actor.culture
									culture = {
										any_parent_culture_or_above = {
											this = scope:actor.culture
										}
									}
									scope:actor.culture = {
										any_parent_culture_or_above = {
											this = scope:county_culture_check.culture
										}
									}
								}
							}
							title_province = {
								NOR = {
									has_holding_type = nomad_holding
									has_holding_type = herder_holding
								}
							}
						}
					}
					any_in_de_jure_hierarchy = {
						tier = tier_county
						save_temporary_scope_as = county_culture_check
						OR = {
							culture = scope:actor.culture
							culture = {
								any_parent_culture_or_above = {
									this = scope:actor.culture
								}
							}
							scope:actor.culture = {
								any_parent_culture_or_above = {
									this = scope:county_culture_check.culture
								}
							}
							any_neighboring_county = {
								OR = {
									culture = scope:actor.culture
									culture = {
										any_parent_culture_or_above = {
											this = scope:actor.culture
										}
									}
									scope:actor.culture = {
										any_parent_culture_or_above = {
											this = scope:county_culture_check.culture
										}
									}
								}
							}
							title_province = {
								NOR = {
									has_holding_type = nomad_holding
									has_holding_type = herder_holding
								}
							}
						}
					}
				}
			}
		}
		# Big nomads move more freely, and the small ones will follow because they'll spread their culture there!
		modifier = {
			factor = 0
			scope:actor = {
				any_character_situation = {
					this = situation:the_great_steppe
				}
				NOR = {
					has_realm_law = nomadic_authority_1
					has_realm_law = nomadic_authority_2
				}
				# If the character's culture does not exist outside of their realm, allow lenient migrations (otherwise small cultures get stuck)
				culture = {
					any_culture_county = {
						holder.top_liege != scope:actor
					}
				}
				capital_county = {
					any_county_situation_sub_region = {
						NOR = {
							sub_region_current_phase = situation_steppe_havsarsan_zud_season
							sub_region_current_phase = situation_steppe_severe_drought_season
							sub_region_current_phase = situation_steppe_cold_zud_season
							sub_region_current_phase = situation_steppe_white_zud_season
						}
					}
				}
			}
			scope:domain = {
				NOR = {
					AND = {
						tier = tier_county
						save_temporary_scope_as = county_culture_check
						OR = {
							culture = scope:actor.culture
							culture = {
								any_parent_culture_or_above = {
									this = scope:actor.culture
								}
							}
							culture = {
								has_same_culture_heritage = scope:actor.culture
							}
							culture = {
								any_parent_culture_or_above = {
									has_same_culture_heritage = scope:actor.culture
								}
							}
							scope:actor.culture = {
								any_parent_culture_or_above = {
									this = scope:county_culture_check.culture
								}
							}
							scope:actor.culture = {
								any_parent_culture_or_above = {
									has_same_culture_heritage = scope:county_culture_check.culture
								}
							}
							any_neighboring_county = {
								OR = {
									culture = scope:actor.culture
									culture = {
										any_parent_culture_or_above = {
											this = scope:actor.culture
										}
									}
									culture = {
										has_same_culture_heritage = scope:actor.culture
									}
									culture = {
										any_parent_culture_or_above = {
											has_same_culture_heritage = scope:actor.culture
										}
									}
									scope:actor.culture = {
										any_parent_culture_or_above = {
											this = scope:county_culture_check.culture
										}
									}
									scope:actor.culture = {
										any_parent_culture_or_above = {
											has_same_culture_heritage = scope:county_culture_check.culture
										}
									}
								}
							}
							title_province = {
								NOR = {
									has_holding_type = nomad_holding
									has_holding_type = herder_holding
								}
							}
						}
					}
					any_in_de_jure_hierarchy = {
						tier = tier_county
						save_temporary_scope_as = county_culture_check
						OR = {
							culture = scope:actor.culture
							culture = {
								any_parent_culture_or_above = {
									this = scope:actor.culture
								}
							}
							culture = {
								has_same_culture_heritage = scope:actor.culture
							}
							culture = {
								any_parent_culture_or_above = {
									has_same_culture_heritage = scope:actor.culture
								}
							}
							scope:actor.culture = {
								any_parent_culture_or_above = {
									this = scope:county_culture_check.culture
								}
							}
							scope:actor.culture = {
								any_parent_culture_or_above = {
									has_same_culture_heritage = scope:county_culture_check.culture
								}
							}
							any_neighboring_county = {
								OR = {
									culture = scope:actor.culture
									culture = {
										any_parent_culture_or_above = {
											this = scope:actor.culture
										}
									}
									culture = {
										has_same_culture_heritage = scope:actor.culture
									}
									culture = {
										any_parent_culture_or_above = {
											has_same_culture_heritage = scope:actor.culture
										}
									}
									scope:actor.culture = {
										any_parent_culture_or_above = {
											this = scope:county_culture_check.culture
										}
									}
									scope:actor.culture = {
										any_parent_culture_or_above = {
											has_same_culture_heritage = scope:county_culture_check.culture
										}
									}
								}
							}
							title_province = {
								NOR = {
									has_holding_type = nomad_holding
									has_holding_type = herder_holding
								}
							}
						}
					}
				}
			}
		}
	}
}

# PAIZA
mpo_interaction_grant_paiza = {
	category = interaction_category_diplomacy
	icon = paiza_interaction
	common_interaction = no

	desc = mpo_interaction_grant_paiza_desc

	ai_frequency_by_tier = {
		barony = 0
		county = 24
		duchy = 24
		kingdom = 8
		empire = 8
		hegemony = 8
	}
	popup_on_receive = yes
	pause_on_receive = yes

	is_shown = {
		scope:actor = {
			has_character_flag = established_paiza_system
			exists = situation:the_great_steppe
			any_character_situation = {
				this = situation:the_great_steppe
			}
			government_has_flag = government_is_nomadic
		}
		scope:recipient = {
			government_has_flag = government_is_nomadic
			OR = {
				is_vassal_of = scope:actor
				is_tributary_of = scope:actor
				is_courtier_of = scope:actor
			}
		}
	}

	cooldown_against_recipient = { years = 10 }

	is_valid_showing_failures_only = {
		scope:actor = {
			NOT = {
				is_at_war_with = scope:recipient
			}
			is_independent_ruler = yes
			custom_tooltip = {
				text = mpo_character_interaction_gurkhan
				is_gurkhan = yes
			}
			custom_tooltip = {
				text = mpo_character_interaction_established_paiza_system
				has_character_flag = established_paiza_system
			}
		}
		scope:recipient = {
			custom_tooltip = {
				text = mpo_character_interaction_obedient
				NOT = { is_obedient_to = scope:actor }
			}
			NOT = {
				any_character_artifact = {
					scope:recipient = { can_benefit_from_artifact = prev }
					scope:artifact.var:paiza_patron ?= { is_gurkhan = yes }
					scope:artifact.var:paiza_patron ?= scope:actor
				}
			}
		}
	}

	cost = {
		prestige = major_prestige_value
		gold = 25
	}

	on_accept = {
		make_obedient_recipient_to_actor_effect = yes
		scope:recipient = {
			mpo_create_paiza_artifact_effect = {
				PATRON = scope:actor
				GRANTEE = scope:recipient
			}
			custom_tooltip = mpo_establish_paiza_system_decision.paiza_abuse_authority_unlocked
			custom_tooltip = mpo_establish_paiza_system_decision.leverage_khan_authority_unlocked
		}
		scope:actor = {
			switch = {
				trigger = scope:recipient.primary_title.tier
				tier_empire = {
					add_legitimacy_effect = { LEGITIMACY = massive_legitimacy_gain }
				}
				tier_kingdom = {
					add_legitimacy_effect = { LEGITIMACY = major_legitimacy_gain }
				}
				tier_duchy = {
					add_legitimacy_effect = { LEGITIMACY = medium_legitimacy_gain }
				}
				tier_county = {
					add_legitimacy_effect = { LEGITIMACY = miniscule_legitimacy_gain }
				}
			}
		}
	}

	ai_targets = {
		ai_recipients = vassals
		ai_recipients = tributaries
	}


	ai_accept = {
		base = -20
		opinion_modifier = {
			opinion_target = scope:actor
			who = scope:recipient
			multiplier = 1
		}
		modifier = {
			add = intimidated_external_reason_value
			scope:recipient = {
				has_dread_level_towards = {
					target = scope:actor
					level = 1
				}
			}
			desc = INTIMIDATED_REASON
		}
		modifier = {
			add = cowed_external_reason_value
			scope:recipient = {
				has_dread_level_towards = {
					target = scope:actor
					level = 2
				}
			}
			desc = COWED_REASON
		}
		modifier = {
			add = 40
			scope:recipient = {
				ai_honor < 0
				ai_greed > 0
			}
			desc = will_abuse_paiza_reason
		}
	}

	ai_will_do = {
		base = 10

		modifier = {
			factor = 10
			scope:recipient = {
				is_ai = no
				OR = {
					is_vassal_of = scope:actor
					is_tributary_of = scope:actor
				}
			}
		}

		modifier = {
			factor = 10
			scope:recipient = {
				NOT = {
					is_obedient_to = root
				}
				OR = {
					is_powerful_vassal = yes
					is_kurultai_trigger = yes
				}
			}
		}
	}
}

mpo_interaction_ask_for_paiza = {
	category = interaction_category_diplomacy
	icon = paiza_interaction
	common_interaction = no

	desc = mpo_interaction_ask_for_paiza_desc

	ai_frequency_by_tier = {
		barony = 0
		county = 0
		duchy = 12
		kingdom = 12
		empire = 0
		hegemony = 0
	}
	popup_on_receive = yes
	pause_on_receive = yes

	is_shown = {
		scope:recipient = {
			government_has_flag = government_is_nomadic
			has_character_flag = established_paiza_system
		}
		scope:actor = {
			OR = {
				government_has_flag = government_is_nomadic
				top_liege = scope:recipient
			}
			NOT = {
				is_at_war_with = scope:recipient
			}
		}
	}

	cooldown_against_recipient = { years = 10 }

	is_valid_showing_failures_only = {
		scope:recipient = {
			is_independent_ruler = yes
			is_gurkhan = yes
		}
		scope:actor = {
			custom_tooltip = {
				text = already_received_a_paiza
				NOT = {
					any_character_artifact = {
						scope:actor = { can_benefit_from_artifact = prev }
						var:paiza_patron ?= scope:recipient
					}
				}
			}
		}
	}

	send_options_exclusive = no
	send_option = {
		flag = hook
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		localization = GENERIC_SPEND_A_HOOK
	}

	send_option = { # Herd
		is_shown = {
			scope:actor = {
				government_has_flag = government_is_nomadic
				exists = domicile
			}
		}
		is_valid = {
			scope:actor = {
				government_has_flag = government_is_nomadic
				exists = domicile
			}
			scope:actor.domicile = { herd >= scope:recipient.domicile.massive_herd_value }
		}
		flag = herd_send_option
		localization = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_CONFEDERATION
	}

	on_accept = {
		scope:actor = {
			make_obedient_recipient_to_actor_effect = yes
			send_interface_toast = {
				type = event_toast_effect_good
				title = mpo_decisions_events.paiza_granted
				mpo_create_paiza_artifact_effect = {
					PATRON = scope:recipient
					GRANTEE = scope:actor
				}
				left_icon = scope:recipient
				right_icon = scope:created_paiza
			}
			custom_tooltip = mpo_establish_paiza_system_decision.paiza_abuse_authority_unlocked
			custom_tooltip = mpo_establish_paiza_system_decision.leverage_khan_authority_unlocked
			if = {
				limit = {
					scope:herd_send_option = yes
				}
				pay_herd = {
					target = scope:recipient
					value = scope:recipient.domicile.massive_herd_value
				}
			}
			if = {
				limit = {
					scope:hook = yes
				}
				use_hook = scope:recipient
			}
		}
		scope:recipient = {
			switch = {
				trigger = scope:actor.primary_title.tier
				tier_empire = {
					add_legitimacy_effect = { LEGITIMACY = massive_legitimacy_gain }
				}
				tier_kingdom = {
					add_legitimacy_effect = { LEGITIMACY = major_legitimacy_gain }
				}
				tier_duchy = {
					add_legitimacy_effect = { LEGITIMACY = medium_legitimacy_gain }
				}
				tier_county = {
					add_legitimacy_effect = { LEGITIMACY = miniscule_legitimacy_gain }
				}
			}
			add_character_flag = {
				flag = paiza_recently_granted
				years = 2
			}
		}
	}

	on_decline = {
		scope:recipient = {
			add_character_flag = {
				flag = paiza_recently_granted
				years = 4
			}
		}
	}

	ai_accept = {
		base = -60
		modifier = {
			add = intimidated_external_reason_value
			scope:recipient = {
				has_dread_level_towards = {
					target = scope:actor
					level = 1
				}
			}
			desc = INTIMIDATED_REASON
		}
		modifier = {
			add = cowed_external_reason_value
			scope:recipient = {
				has_dread_level_towards = {
					target = scope:actor
					level = 2
				}
			}
			desc = COWED_REASON
		}
		modifier = {
			add = 40
			scope:actor = {
				NOT = {
					is_obedient_to = root
				}
				OR = {
					is_powerful_vassal = yes
					is_kurultai_trigger = yes
				}
			}
			desc = AI_NOT_OBEDIENT_REVERSE_REASON
		}
		modifier = {
			add = -20
			scope:actor = {
				is_obedient_to = scope:recipient
			}
			desc = AI_OBEDIENT_REVERSE_REASON
		}
		modifier = {
			scope:recipient = {
				has_relation_blood_brother = scope:actor
			}
			add = 100
			desc = MIGRATION_INTERACTION_BLOOD_BROTHERS_ACCEPTANCE
		}

		modifier = {
			trigger = {
				scope:hook ?= yes
			}
			add = 60
			desc = LEGEND_HOOK_USED
		}

		modifier = {
			add = 20
			trigger = {
				scope:herd_send_option ?= yes
			}
			desc = HERD_INTERACTION_ACCEPTANCE_SEND_OPTION
		}

		opinion_modifier = {
			opinion_target = scope:actor
			who = scope:recipient
			multiplier = 0.4
		}
	}

	ai_potential = {
		is_adult = yes
	}

	ai_will_do = {
		base = 0

		modifier = {
			add = 100
			scope:recipient = {
				has_relation_blood_brother = scope:actor
			}
		}

		modifier = {
			add = {
				value = scope:actor.ai_greed
				multiply = 0.1
			}
			scope:actor = {
				ai_greed > 0
			}
		}

		modifier = {
			add = {
				value = scope:actor.primary_title.tier
				subtract = scope:recipient.primary_title.tier
				multiply = 10
				max = 0
			}
		}

		modifier = {
			add = {
				value = scope:actor.ai_honor
				multiply = 0.1
			}
			scope:actor = {
				ai_honor > 0
			}
		}

		ai_value_modifier = {
			ai_boldness = -0.4
			ai_honor = 0.1
			ai_greed = 0.1
			ai_energy = -0.2
		}

		modifier = {
			factor = 0
			scope:recipient = {
				has_character_flag = paiza_recently_granted
			}
		}
	}

	ai_targets = {
		ai_recipients = liege
		ai_recipients = suzerain
	}
}

mpo_interaction_leverage_khan_authority = {
	category = interaction_category_hostile
	icon = paiza_interaction
	common_interaction = no

	desc = mpo_interaction_leverage_khan_authority_desc

	ai_frequency_by_tier = {
		barony = 0
		county = 24
		duchy = 8
		kingdom = 8
		empire = 8
		hegemony = 8
	}
	popup_on_receive = yes
	pause_on_receive = yes

	cooldown = { months = 6 }

	cooldown_against_recipient = { years = 10 }

	is_shown = {
		scope:actor = {
			any_character_artifact = {
				scope:actor = { can_benefit_from_artifact = prev }
				has_variable = paiza_patron
				OR = {
					scope:recipient.top_liege = var:paiza_patron
					scope:recipient = {
						is_independent_ruler = yes
						primary_title.tier < scope:actor.primary_title.tier
						government_has_flag = government_is_nomadic
					}
					scope:recipient = {
						liege = {
							OR = {
								government_has_flag = government_is_nomadic
								scope:recipient.top_liege = prev.var:paiza_patron
							}
						}
					}
				}
			}
			NOT = {
				has_character_flag = established_paiza_system
			}
		}
		scope:recipient = {
			is_ai = yes
			is_gurkhan = no
			age >= 12
			NOT = {
				has_character_flag = established_paiza_system
			}
		}
	}

	is_valid_showing_failures_only = {
		scope:actor = {
			custom_tooltip = {
				text = mpo_abuse_authority_paiza_decision.no_more_paiza_abuse
				NOT = { has_character_flag = no_more_paiza_abuse }
			}
			custom_tooltip = {
        	    text = mpo_abuse_authority_paiza_decision.paiza_patron_not_topdog
        	    any_character_artifact = {
        	        scope:actor = { can_benefit_from_artifact = prev }
        	        exists = var:paiza_patron
        	        var:paiza_patron ?= {
        	            is_gurkhan = yes
        	        }
        	    }
        	}
        	NOT = {
				is_at_war_with = scope:recipient
			}
		}
	}

	ai_accept = {
		base = -60
		modifier = {
			add = 10
			has_trait = craven
			desc = BLACKMAIL_INTERACTION_CRAVEN_ACCEPTANCE
		}
		modifier = {
			add = -20
			has_trait = arrogant
			desc = BLACKMAIL_INTERACTION_ARROGANT_ACCEPTANCE
		}
		modifier = {
			add = -20
			has_trait = brave
			desc = BLACKMAIL_INTERACTION_BRAVE_ACCEPTANCE
		}
		modifier = {
			add = -20
			has_trait = paranoid
			desc = BLACKMAIL_INTERACTION_PARANOID_ACCEPTANCE
		}
		modifier = {
			add = {
				value = scope:recipient.intrigue
				multiply = -2
			}
			desc = INDEBT_GUEST_INTRIGUE_RECIPIENT
		}
		modifier = {
			add = {
				value = scope:actor.intrigue
			}
			desc = INDEBT_GUEST_INTRIGUE_ACTOR
		}
		modifier = {
			add = {
				value = scope:actor.dread
				divide = 2
			}
			scope:actor.dread >= 2
			desc = offer_vassalization_interaction_aibehavior_dreaded_tt
		}
		opinion_modifier = {
			opinion_target = situation:the_great_steppe.situation_top_herd
			who = scope:recipient
			multiplier = 0.4
		}
		opinion_modifier = {
			opinion_target = scope:actor
			who = scope:recipient
			multiplier = 0.2
		}
	}

	ai_will_do = {
		base = -40
		modifier = {
            add = 40
			domicile ?= { herd <= twenty_percent_herd_value }
        }
		modifier = {
            add = 10
			domicile ?= { herd <= sixty_percent_herd_value }
        }
		modifier = {
			add = 10
			domicile ?= { herd <= eighty_percent_herd_value }
		}
        modifier = {
            add = 10
            has_trait = greedy
        }
        modifier = {
            add = 10
            has_trait = wrathful
        }
        modifier = {
            add = 10
            has_trait = ambitious
        }
		modifier = {
			add = -10
			var:paiza_patron ?= {
				domicile ?= { has_domicile_parameter = nomad_yurt_paiza_abuse_less_likely_lvl_1 }
			}
		}
		modifier = {
			add = -20
			var:paiza_patron ?= {
				domicile ?= { has_domicile_parameter = nomad_yurt_paiza_abuse_less_likely_lvl_2 }
			}
		}
		modifier = {
			add = -35
			var:paiza_patron ?= {
				domicile ?= { has_domicile_parameter = nomad_yurt_paiza_abuse_less_likely_lvl_3 }
			}
		}
	}

	ai_targets = {
		ai_recipients = peer_vassals
	}

	on_accept = {
		scope:actor = {
			send_interface_toast = {
				left_icon = scope:recipient
				right_icon = situation:the_great_steppe.situation_top_herd
				title = mpo_interaction_leverage_khan_authority
				make_obedient_recipient_to_actor_effect = yes
				scope:recipient = {
					pay_short_term_gold = {
						target = scope:actor
						gold = {
							value = current_gold_value
							divide = 2
						}
					}
					if = {
						limit = {
							government_has_flag = government_is_nomadic
							scope:recipient = {
								government_has_flag = government_is_nomadic
							}
						}
						pay_herd = {
							target = scope:actor
							value = {
								value = domicile.herd
								multiply = 0.5
							}
						}
					}
				}
				if = {
					limit = {
						scope:recipient = {
							OR = {
								is_landed = yes
							}
						}
					}
					add_prestige = medium_prestige_value
				}
				else = {
					add_prestige = minor_prestige_value
				}
			}

			if = {
				limit = {
					government_has_flag = government_is_nomadic
					scope:recipient = {
						government_has_flag = government_is_nomadic
					}
				}
				pay_herd = {
					target = scope:actor
					value = {
						value = domicile.herd
						multiply = 0.5
					}
				}
			}
		}

		scope:actor = {
			random_character_artifact = {
				limit = {
					scope:actor = { can_benefit_from_artifact = prev }
					has_variable = paiza_patron
				}
				var:paiza_patron = {
					scope:actor = {
						mpo_paiza_abuse_counter_effect = {
							PAIZA_PATRON = prev
							PAIZA_ABUSER = scope:actor
						}
					}
				}
			}
		}
	}
}

# Interrogate
# Used in the Ill-Advised event chain - nomad_events.0001 - 0099
interrogate_interaction = {
	category = interaction_category_hostile
	icon = icon_scheme_challenge_status
	common_interaction = no

	auto_accept = yes

	desc = interrogate_interaction_desc

	is_shown = {
		scope:actor = { has_variable = can_interrogate_var }
		scope:recipient = {
			is_target_in_variable_list = {
				name = valid_to_interrogate_var
				target = scope:actor
			}
		}
		# And Achmach is still around
		scope:actor = {
			any_courtier_or_guest = {
				has_variable = achmach_loyalty
			}
		}
	}

	cooldown_against_recipient = { years = 10 }

	on_accept = {
		scope:actor = {
			custom_tooltip = interrogate_interaction_tt
			trigger_event = nomad_events.0006
		}
		scope:recipient = {
			custom_tooltip = interrogate_interaction_recipient_tt
		}
	}

	ai_will_do = {
		base = 100
	}
}

# Steal Herd
steal_herd_interaction = {
	icon = icon_scheme_steal_herd
	interface_priority = 90
	common_interaction = yes
	category = interaction_category_hostile

	send_name = START_SCHEME

	scheme = steal_herd
	ignores_pending_interaction_block = yes

	is_shown = {
		NOT = { scope:recipient = scope:actor }
		scope:actor = {
			is_landed = yes
			is_adult = yes
			is_imprisoned = no
			government_has_flag = government_is_nomadic
			in_diplomatic_range = scope:recipient
			trigger_if = {
				limit = {
					is_ai = yes
				}
				NOR = {
					is_tributary_of_suzerain_or_above = scope:recipient
					is_vassal_or_below_of = scope:recipient
					scope:recipient = {
						is_ai = no
						any_targeting_scheme = {
							scheme_type = steal_herd
						}
					}
				}
			}
		}
		scope:recipient = {
			is_landed = yes
			is_adult = yes
			government_has_flag = government_is_nomadic
			highest_held_title_tier >= tier_county
		}
	}

	is_valid_showing_failures_only = {
		scope:actor = {
			can_start_scheme = {
				type = steal_herd
				target_character = scope:recipient
			}
		}
		scope:recipient = { NOT = { has_strong_hook = scope:actor } }
		trigger_if = {
			limit = { scope:actor = { has_variable = no_scheming_allowed_var } }
			custom_tooltip = {
				text = no_scheming_allowed_var_tt
				scope:actor.var:no_scheming_allowed_var != scope:recipient
			}
		}
	}

	desc = {
		triggered_desc = {
			trigger = {
				scope:actor = {
					can_start_scheme = {
						type = steal_herd
						target_character = scope:recipient
					}
				}
			}
			desc = scheme_interaction_tt_steal_herd_approved
		}
	}

	on_accept = {
		scope:actor = {
			stress_impact = {
				compassionate = minor_stress_impact_gain
				honest = minor_stress_impact_gain
				craven = minor_stress_impact_gain
				content = minor_stress_impact_gain
			}
			send_interface_toast = {
				type = event_toast_effect_neutral
				title = steal_herd_interaction_notification

				left_icon = scope:actor
				right_icon = scope:recipient

				begin_scheme_basic_effect = {
					SCHEME_TYPE = steal_herd
					TARGET_TYPE = target_character
					TARGET_SCOPE = scope:recipient
				}

				if = {
					limit = {
						domicile ?= { herd >= ninety_percent_herd_value }
					}
					custom_tooltip = steal_herd_interaction_tt.warning
				}
				scope:new_scheme ?= {
					if = {
						limit = {
							scope:steal_herd_low ?= yes
						}
						set_variable = steal_herd_low
					}
					else_if = {
						limit = {
							scope:steal_herd_normal ?= yes
						}
						set_variable = steal_herd_normal
					}
					else_if = {
						limit = {
							scope:steal_herd_high ?= yes
						}
						set_variable = steal_herd_high
					}
				}
			}
		}
	}

	ai_potential = {
		prestige >= medium_prestige_value # In case they fail
		trigger_if = {
			limit = {
				NOT = {
					domicile ?= {
						has_domicile_building_or_higher = steal_herd_yurt_01
					}
				}
			}
			ai_honor <= 50
		}
		NOR = {
			scheme_generic_ai_blocker_trigger = yes
			primary_title = {
				is_mercenary_company = yes
			}
		}
	}

	auto_accept = yes

	ai_will_do = {
		base = -30

		modifier = {
			add = 20
			domicile ?= { herd <= twenty_percent_herd_value }
		}

		modifier = {
			add = 20
			domicile ?= { herd <= sixty_percent_herd_value }
		}

		modifier = {
			add = {
				value = intrigue
				multiply = 3
			}
		}

		modifier = {
			add = {
				value = ai_greed
				multiply = -1
			}
		}
		modifier = {
			add = {
				value = ai_honor
				multiply = -0.25
			}
		}
		modifier = {
			scope:actor = {
				has_trait = schemer
			}
			add = 60
		}
		modifier = {
			scope:actor = {
				has_relation_rival = scope:recipient
			}
			add = 60
		}
		modifier = {
			scope:actor = {
				has_relation_nemesis = scope:recipient
			}
			add = 150
		}
		modifier = {
			scope:actor = {
				opinion = {
					target = scope:recipient
					value >= low_positive_opinion
				}
				ai_greed <= high_positive_ai_value
			}
			factor = 0
		}
		modifier = {
			scope:recipient = {
				OR = {
					has_relation_friend = scope:actor
					has_relation_lover = scope:actor
					is_obedient_to = scope:actor
				}
			}
			factor = 0
		}
		start_hostile_scheme_ai_base_modifiers = yes # At the end so Cowed can block it completely
	}

	ai_targets = {
		ai_recipients = scripted_relations
		ai_recipients = neighboring_rulers
		ai_recipients = peer_vassals
	}

	# Options
	options_heading = schemes.t.herd_amount
	send_options_exclusive = yes
	## Steal a little herd
	send_option = {
		flag = steal_herd_low
		current_description = steal_herd_interaction.tt.low
	}
	## Steal a moderate amount of herd
	send_option = {
		flag = steal_herd_normal
		current_description = steal_herd_interaction.tt.normal
	}
	## Steal a lot of herd
	send_option = {
		flag = steal_herd_high
		current_description = steal_herd_interaction.tt.high
	}

	ai_frequency_by_tier = {
		barony = 0
		county = 72
		duchy = 36
		kingdom = 36
		empire = 36
		hegemony = 36
	}
}

mpo_ask_for_herd_interaction = {
	category = interaction_category_hostile
	icon = demand_herd
	desc = mpo_ask_for_herd_interaction_desc
	interface_priority = 80
	common_interaction = yes

	ai_frequency_by_tier = {
		barony = 0
		county = 92
		duchy = 12
		kingdom = 8
		empire = 8
		hegemony = 8
	}
	popup_on_receive = yes
	pause_on_receive = yes

	is_shown = {
		scope:actor = {
			government_has_flag = government_is_nomadic
			exists = domicile
		}
		scope:recipient = {
			government_has_flag = government_is_nomadic
			exists = domicile
			is_ai = yes
		}
		NOT = {
			scope:actor = {
				has_variable = had_mpo_temujin_flavor_0020
				var:had_mpo_temujin_flavor_0020 ?= scope:recipient
			}
		}
	}

	is_valid_showing_failures_only = {
		scope:actor = {
			NOT = {
				is_imprisoned = yes
			}
		}
		scope:recipient = {
			NOR = {
				is_imprisoned = yes
				is_at_war = yes
				is_a_faction_member = yes
				custom_description = {
					text = ask_for_herd_not_enough_herd
					domicile.herd < scope:recipient.domicile.ask_for_herd_base_value
					government_has_flag = government_is_nomadic
				}
			}
		}
	}

	ai_potential = {
		primary_title.tier >= tier_duchy
	}

	send_option = {
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		flag = hook
		localization = GENERIC_SPEND_A_HOOK
	}

	send_option = {
		is_valid = {
			scope:recipient.domicile ?= {
				herd > ask_for_herd_double_value
			}
			scope:recipient = {
				NOT = {
					government_has_flag = government_is_true_herder
				}
			}
		}
		flag = more_herd
		localization = ASK_FOR_HERD_MORE_HERD
	}

	send_options_exclusive = no

	ai_accept = {
		base = -100
		modifier = {
			trigger = {
				scope:more_herd ?= yes
			}
			add = -100
			desc = ASK_FOR_HERD_MORE_HERD_REASON
		}
		modifier = {
			trigger = {
				scope:hook ?= yes
			}
			add = 1000
			desc = MIGRATION_HOOK_USED
		}
		modifier = {
			add = {
				value = ai_boldness
				multiply = -1
				divide = 4
			}
			NOT = { ai_boldness = 0 }
			desc = ARTIFACT_BOLDNESS_REASON
		}
		opinion_modifier = {
			who = scope:recipient
			opinion_target = scope:actor
			desc = AI_OPINION_REASON
		}
		bp2_hostage_dread_modifier = yes
	}

	ai_will_do = {
		base = 0
		modifier = {
			add = 20
			scope:actor.domicile.herd < scope:actor.domicile.ask_for_herd_double_value
		}
	}

	cooldown_against_recipient = { years = 6 }

	ai_targets = {
		ai_recipients = vassals
		ai_recipients = neighboring_rulers
		ai_recipients = peer_vassals
	}

	on_accept = {
		scope:actor = {
			send_interface_toast = {
				type = event_toast_effect_good
				title = ask_for_herd_toast
				left_icon = scope:recipient
				scope:recipient = {
					# How much Herd are you getting?
					if = {
						limit = {
							scope:more_herd ?= yes
						}
						if = {
							limit = {
								scope:actor = { has_variable = nomad_events_0210_herd_var }
							}
							pay_herd = {
								target = scope:actor
								value = {
									value = scope:recipient.domicile.ask_for_herd_double_value
									multiply = 2
								}
							}
						}
						else = {
							pay_herd = {
								target = scope:actor
								value = scope:recipient.domicile.ask_for_herd_double_value
							}
						}
					}
					else = {
						if = {
							limit = {
								scope:actor = { has_variable = nomad_events_0210_herd_var }
							}
							pay_herd = {
								target = scope:actor
								value = {
									value = scope:recipient.domicile.ask_for_herd_base_value
									multiply = 2
								}
							}
						}
						else = {
							pay_herd = {
								target = scope:actor
								value = scope:recipient.domicile.ask_for_herd_base_value
							}
						}
					}
					# Extra Herd during the Abundant Grazing season
					if = {
						limit = {
							any_character_situation = {
								any_situation_sub_region = {
									has_sub_region_phase_parameter = the_great_steppe_demand_herd_higher_rate
									any_situation_sub_region_participant_group = {
										participant_group_type = nomad_rulers_capital
										participant_group_has_character = scope:actor
									}
								}
							}
						}
						custom_tooltip = {
							text = ask_for_herd_abundant_grazing_tt
							pay_herd = {
								target = scope:actor
								value = scope:recipient.domicile.ask_for_herd_half_value
							}
						}
					}
					# Now opinion maluses
					if = {
						limit = {
							scope:more_herd ?= yes
						}
						if = {
							limit = {
								scope:recipient = {
									has_dread_level_towards = { target = scope:actor level = 2 }
								}
							}
							custom_tooltip = ask_for_herd_dread_effect_tt
							add_opinion = {
								target = scope:actor
								modifier = ask_for_herd_opinion
								opinion = -20
							}
						}
						else_if = {
							limit = {
								scope:recipient = {
									has_dread_level_towards = { target = scope:actor level = 1 }
								}
							}
							custom_tooltip = ask_for_herd_dread_effect_tt
							add_opinion = {
								target = scope:actor
								modifier = ask_for_herd_opinion
								opinion = -40
							}
						}
						else = {
							add_opinion = {
								target = scope:actor
								modifier = ask_for_herd_opinion
								opinion = -60
							}
						}
					}
					else = {
						if = {
							limit = { #herders cannot give you more herd
								scope:recipient = {
									government_has_flag = government_is_true_herder
								}
							}
							scope:actor = {
								domicile ?= { change_herd = major_herd_gain }
								add_legitimacy = minor_legitimacy_loss
							}
							scope:recipient.primary_title = {
								custom_tooltip = ask_for_herd_herder_recipient_tt
								add_county_modifier = {
									modifier = ask_for_herd_county_depleted_modifier
									years = 12
								}
							}
						}
						else = {
							if = {
								limit = {
									scope:recipient = {
										has_dread_level_towards = { target = scope:actor level = 2 }
									}
								}
								custom_tooltip = ask_for_herd_dread_effect_tt
								add_opinion = {
									target = scope:actor
									modifier = ask_for_herd_opinion
									opinion = -10
								}
							}
							else_if = {
								limit = {
									scope:recipient = {
										has_dread_level_towards = { target = scope:actor level = 1 }
									}
								}
								custom_tooltip = ask_for_herd_dread_effect_tt
								add_opinion = {
									target = scope:actor
									modifier = ask_for_herd_opinion
									opinion = -20
								}
							}
							else = {
								add_opinion = {
									target = scope:actor
									modifier = ask_for_herd_opinion
									opinion = -40
								}
							}
						}
					}
				}
			}
		}
	}
}

### Demand Obedience
mpo_demand_obedience_interaction = {
	category = interaction_category_vassal
	icon = demand_obedience
	desc = mpo_demand_obedience_interaction_desc
	interface_priority = 80
	common_interaction = yes

	ai_frequency_by_tier = {
		barony = 0
		county = 24
		duchy = 4
		kingdom = 4
		empire = 4
		hegemony = 4
	}
	popup_on_receive = yes
	pause_on_receive = yes

	is_shown = {
		scope:actor = {
			government_allows = obedience
		}
		scope:recipient = {
			is_ai = yes
			obedience_target ?= scope:actor
			is_obedient = no
		}
	}

	is_valid_showing_failures_only = {
		scope:actor = {
			age >= 16
			is_physically_able = yes
			NOT = {
				is_at_war_with = scope:recipient
			}
		}
		scope:actor = { dread >= medium_dread_value }
	}

	cost = { prestige = minor_prestige_value }

	ai_potential = {
		government_allows = obedience
		primary_title.tier >= tier_duchy
	}

	send_option = {
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		flag = hook
		localization = GENERIC_SPEND_A_HOOK
	}

	send_options_exclusive = no

	ai_accept = {
		base = -50
		modifier = {
			trigger = {
				scope:hook ?= yes
			}
			add = 100
			desc = MIGRATION_HOOK_USED
		}
		modifier = {
			add = 10
			scope:actor = {
				OR = {
					has_realm_law = nomadic_authority_2
					has_realm_law = meritocratic_bureaucracy_1
				}
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
		}
		modifier = {
			add = 20
			scope:actor = {
				OR = {
					has_realm_law = nomadic_authority_3
					has_realm_law = meritocratic_bureaucracy_2
				}
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
		}
		modifier = {
			add = 50
			scope:actor = {
				OR = {
					has_realm_law = nomadic_authority_4
					has_realm_law = meritocratic_bureaucracy_3
				}
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
		}
		modifier = {
			add = 100
			scope:actor = { has_realm_law = nomadic_authority_5 }
			desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
		}
		modifier = {
			add = -20
			scope:actor = { legitimacy_level = 1 }
			desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
		}
		modifier = {
			add = 10
			scope:actor = { legitimacy_level = 3 }
			desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
		}
		modifier = {
			add = 25
			scope:actor = { legitimacy_level = 4 }
			desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
		}
		modifier = {
			add = 50
			scope:actor = { legitimacy_level = 5 }
			desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
		}
		modifier = {
			add = {
				value = ai_boldness
				multiply = -1
				divide = 4
			}
			NOT = { ai_boldness = 0 }
			desc = ARTIFACT_BOLDNESS_REASON
		}
		modifier = {
			add = -20
			scope:recipient = {
				has_trait = brave
			}
			desc = BLACKMAIL_INTERACTION_BRAVE_ACCEPTANCE
		}
		modifier = {
			add = -50
			scope:recipient = {
				has_trait = arrogant
			}
			desc = BLACKMAIL_INTERACTION_ARROGANT_ACCEPTANCE
		}
		modifier = {
			add = -50
			scope:recipient = {
				has_trait = disloyal
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_DISLOYAL_ACCEPTANCE
		}
		modifier = {
			add = 10
			scope:recipient = {
				has_trait = craven
			}
			desc = BLACKMAIL_INTERACTION_CRAVEN_ACCEPTANCE
		}
		modifier = {
			add = 10
			scope:recipient = {
				has_trait = content
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_CONTENT_ACCEPTANCE
		}
		modifier = {
			add = 25
			any_character_situation = {
				any_situation_sub_region = {
					has_sub_region_phase_parameter = the_great_steppe_easier_obedience
					any_situation_sub_region_participant_group = {
						participant_group_type = nomad_rulers_capital
						participant_group_has_character = scope:actor
					}
				}
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_ZUD_ACCEPTANCE
		}
		bp2_hostage_dread_modifier = yes
	}

	ai_will_do = {
		base = 0
		modifier = {
			scope:actor = { dread >= major_dread_value }
			add = 25
		}
		modifier = {
			scope:actor = {
				any_councillor = {
					is_kurultai_trigger = yes
					NOT = { is_obedient_to = prev }
				}
			}
			add = 25
		}
	}

	cooldown_against_recipient = { years = 10 }

	ai_targets = {
		ai_recipients = vassals
		ai_recipients = courtiers
		ai_recipients = tributaries
		chance = 0.25
	}

	ai_targets = { # They will try to get a Stable Succession
		ai_recipients = councillors
	}

	on_accept = {
		scope:actor = {
			send_interface_toast = {
				type = event_toast_effect_good
				title = mpo_demand_obedience_interaction_toast
				left_icon = scope:recipient
				scope:recipient = {
					add_opinion = {
						target = scope:actor
						modifier = obedience_opinion
					}
				}
				# Belligerent Vassal Opinion
				if = {
					limit = {
						any_vassal = { has_vassal_stance = belligerent }
					}
					every_vassal = {
						limit = { has_vassal_stance = belligerent }
						custom = every_belligerent_vassal
						add_opinion = {
							modifier = impressed_opinion
							target = scope:actor
							opinion = 15
						}
					}
				}
			}
		}
	}
}

##################
# Refill MaA
##################

refill_maa_nomad_interaction = {
	icon = icon_soldier_survivor
	category = interaction_debug_main
	interface_priority = 20
	common_interaction = yes
	desc = refill_maa_nomad_interaction_desc
	cooldown = { months = 6 }
	hidden = yes

	is_shown = {
		has_mpo_dlc_trigger = yes
		scope:actor = {
			is_nomad = yes
			government_allows = conditional_maa_refill
		}
		scope:recipient = scope:actor
	}

	is_valid_showing_failures_only = {
		custom_tooltip = {
			text = reinforce_soldiers_any_regiment_tt
			scope:actor.maa_regiments_count >= 1
		}
		custom_tooltip = {
			text = reinforce_soldiers_unfull_regiment_tt
			scope:actor = {
				any_maa_regiment = { maa_regiments_valid_to_refill_trigger = yes }
			}
		}
		custom_tooltip = {
			text = SUPPLY_LOSS_AT_SEA
			scope:actor = { any_laamp_portion_at_sea_trigger = no }
		}
		custom_tooltip = {
			text = REFILL_MAA_AT_WAR_TT
			scope:actor = {
				NOT = {
					any_army = {
						location.county.holder = {
							OR = {
								is_at_war_with = scope:actor
								any_liege_or_above = { is_at_war_with = scope:actor }
							}
						}
					}
				}
			}
		}
	}

	send_options_exclusive = yes

	send_option = {
		flag = herd
		localization = reinforce_soldiers_option_herd
		is_valid = {
			scope:actor.domicile.herd >= 5
		}
	}

	send_option = {
		flag = gold
		localization = reinforce_soldiers_option_gold
		is_valid = {
			scope:actor.gold >= 5
		}
	}

	on_accept = {
		scope:actor = {
			switch = {
				trigger = yes
				scope:gold = {
					if = {
						limit = { gold > replenishable_troops_payed_gold_tt_value }
						custom_tooltip = refill_maa_gold_full_tt
					}
					else = { custom_tooltip = refill_maa_gold_tt }
					custom_tooltip = refill_maa_gold_cost_tt
					refill_maa_with_gold_effect = yes
				}
				scope:herd = {
					if = {
						limit = { domicile.herd > replenishable_troops_payed_herd_tt_value }
						custom_tooltip = refill_maa_herd_full_tt
					}
					else = { custom_tooltip = refill_maa_herd_tt }
					custom_tooltip = refill_maa_herd_cost_tt
					refill_maa_with_herd_effect = yes
				}
			}
			if = {
				limit = {
					is_ai = yes
					NOR = {
						scope:gold = yes
						scope:herd = yes
					}
				}
				refill_maa_with_herd_effect = yes
			}
			custom_tooltip = martial_skill_discount_tt
		}
	}

	ai_frequency_by_tier = {
		barony = 0
		county = 3
		duchy = 1
		kingdom = 1
		empire = 1
		hegemony = 1
	}
	ai_targets = {
		ai_recipients = self
	}
	ai_potential = {
		is_nomad = yes
		government_allows = conditional_maa_refill
		any_maa_regiment = { maa_current_troops_count < maa_max_troops_count }
	}

	ai_will_do = {
		base = 100
	}
}

### Commander Trait interaction for guardians
# actor = guardian
# recipient = ward/hostage
# This has to be update every time a new Commander trait is added to the game, otherwise you won't be able to pass it down
influence_child_commander_interaction = {
	category = interaction_category_friendly
	common_interaction = yes
	interface_priority = 60
	icon = child
	ai_maybe = yes
	ai_min_reply_days = 4
	ai_max_reply_days = 9
	can_send_despite_rejection = yes
	popup_on_receive = yes
	pause_on_receive = yes

	pre_answer_maybe_key = ANSWER_MIGHT_SUCCEED
	pre_answer_no_key = ANSWER_CANT_SUCCEED
	pre_answer_yes_key = ANSWER_WILL_SUCCEED
	pre_answer_maybe_breakdown_key = ANSWER_SUM_CHANCE

	desc = influence_child_commander_interaction_desc

	is_shown = { #any  ai ward/hostage
		has_mpo_dlc_trigger = yes
		scope:recipient = {
			is_ai = yes
			is_adult = no
			OR = {
				scope:actor = { has_relation_ward = scope:recipient }
				is_hostage_of = scope:actor
			}
		}
	}

	is_valid_showing_failures_only = {
		scope:recipient = { #be old enough to fight and don't have any commander traits yet
			age >= 10
			number_of_commander_traits <= 1
			#checking all trait individually through the set scope in order to catch if all of your traits are either the same or opposite
			trigger_if = {
				limit = {
					scope:actor = {
						number_of_commander_traits > 0
					}
				}
				custom_description = {
					text = influence_child_commander_interaction_all_same_traits
					switch = {
						trigger = yes
						scope:logistician = {
							scope:recipient = { NOT = { has_trait = logistician } }
						}
						scope:military_engineer = {
							scope:recipient = { NOT = { has_trait = military_engineer } }
						}
						scope:aggressive_attacker = {
							scope:recipient = { NOT = { has_trait = aggressive_attacker } }
						}
						scope:unyielding_defender = {
							scope:recipient = { NOT = { has_trait = unyielding_defender } }
						}
						scope:forder = {
							scope:recipient = { NOT = { has_trait = forder } }
						}
						scope:flexible_leader = {
							scope:recipient = { NOT = { has_trait = flexible_leader } }
						}
						scope:desert_warrior = {
							scope:recipient = { NOT = { has_trait = desert_warrior } }
						}
						scope:jungle_stalker = {
							scope:recipient = { NOT = { has_trait = jungle_stalker } }
						}
						scope:reaver = {
							scope:recipient = { NOT = { has_trait = reaver } }
						}
						scope:reckless = {
							scope:recipient = { NOT = { has_trait = reckless } }
						}
						scope:holy_warrior = {
							scope:recipient = { NOT = { has_trait = holy_warrior } }
						}
						scope:open_terrain_expert = {
							scope:recipient = { NOT = { has_trait = open_terrain_expert } }
						}
						scope:rough_terrain_expert = {
							scope:recipient = { NOT = { has_trait = rough_terrain_expert } }
						}
						scope:forest_fighter = {
							scope:recipient = { NOT = { has_trait = forest_fighter } }
						}
						scope:cautious_leader = {
							scope:recipient = { NOT = { has_trait = cautious_leader } }
						}
						scope:organizer = {
							scope:recipient = { NOT = { has_trait = organizer } }
						}
						scope:winter_soldier = {
							scope:recipient = { NOT = { has_trait = winter_soldier } }
						}
					}
				}
			}
			is_physically_able = yes
		}
		scope:actor = {
			is_adult = yes
			number_of_commander_traits >= 1
			is_imprisoned = no
			is_physically_able = yes
		}
	}

	cooldown_against_recipient = { years = 3 }

	can_send = {
	}
	#each option is shown if the actor has the corresponding trait and valid if recipient don't have it yet or don't have an opposite trait
	send_option = {
		is_shown = {
			scope:actor = { has_trait = logistician }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = logistician
					trait:logistician = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = logistician
		localization = trait_logistician
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = military_engineer }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = military_engineer
					trait:military_engineer = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = military_engineer
		localization = trait_military_engineer
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = aggressive_attacker }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = aggressive_attacker
					trait:aggressive_attacker = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = aggressive_attacker
		localization = trait_aggressive_attacker
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = unyielding_defender }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = unyielding_defender
					trait:unyielding_defender = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = unyielding_defender
		localization = trait_unyielding_defender
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = forder }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = forder
					trait:forder = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = forder
		localization = trait_forder
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = flexible_leader }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = flexible_leader
					trait:flexible_leader = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = flexible_leader
		localization = trait_flexible_leader
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = desert_warrior }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = desert_warrior
					trait:desert_warrior = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = desert_warrior
		localization = trait_desert_warrior
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = jungle_stalker }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = jungle_stalker
					trait:jungle_stalker = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = jungle_stalker
		localization = trait_jungle_stalker
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = reaver }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = reaver
					trait:reaver = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = reaver
		localization = trait_reaver
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = reckless }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = reckless
					trait:reckless = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = reckless
		localization = trait_reckless
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = holy_warrior }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = holy_warrior
					trait:holy_warrior = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = holy_warrior
		localization = trait_holy_warrior
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = open_terrain_expert }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = open_terrain_expert
					trait:open_terrain_expert = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = open_terrain_expert
		localization = trait_open_terrain_expert
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = rough_terrain_expert }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = rough_terrain_expert
					trait:rough_terrain_expert = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = rough_terrain_expert
		localization = trait_rough_terrain_expert
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = forest_fighter }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = forest_fighter
					trait:forest_fighter = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = forest_fighter
		localization = trait_forest_fighter
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = cautious_leader }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = cautious_leader
					trait:cautious_leader = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = cautious_leader
		localization = trait_cautious_leader
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = organizer }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = organizer
					trait:organizer = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = organizer
		localization = trait_organizer
	}
	send_option = {
		is_shown = {
			scope:actor = { has_trait = winter_soldier }
		}
		is_valid = {
			scope:recipient = {
				NOR = {
					has_trait = winter_soldier
					trait:winter_soldier = {
						any_opposite_trait = {
							scope:recipient = { has_trait = prev }
						}
					}
				}
			}
		}
		flag = winter_soldier
		localization = trait_winter_soldier
	}

	send_options_exclusive = yes

	on_send = {
		switch = {#save which trait was chosen as scope:target_trait
			trigger = yes
			scope:logistician = {
				trait:logistician = { save_scope_as = target_trait }
			}
			scope:military_engineer = {
				trait:military_engineer = { save_scope_as = target_trait }
			}
			scope:aggressive_attacker = {
				trait:aggressive_attacker = { save_scope_as = target_trait }
			}
			scope:unyielding_defender = {
				trait:unyielding_defender = { save_scope_as = target_trait }
			}
			scope:forder = {
				trait:forder = { save_scope_as = target_trait }
			}
			scope:flexible_leader = {
				trait:flexible_leader = { save_scope_as = target_trait }
			}
			scope:desert_warrior = {
				trait:desert_warrior = { save_scope_as = target_trait }
			}
			scope:jungle_stalker = {
				trait:jungle_stalker = { save_scope_as = target_trait }
			}
			scope:reaver = {
				trait:reaver = { save_scope_as = target_trait }
			}
			scope:reckless = {
				trait:reckless = { save_scope_as = target_trait }
			}
			scope:holy_warrior = {
				trait:holy_warrior = { save_scope_as = target_trait }
			}
			scope:open_terrain_expert = {
				trait:open_terrain_expert = { save_scope_as = target_trait }
			}
			scope:rough_terrain_expert = {
				trait:rough_terrain_expert = { save_scope_as = target_trait }
			}
			scope:forest_fighter = {
				trait:forest_fighter = { save_scope_as = target_trait }
			}
			scope:cautious_leader = {
				trait:cautious_leader = { save_scope_as = target_trait }
			}
			scope:organizer = {
				trait:organizer = { save_scope_as = target_trait }
			}
			scope:winter_soldier = {
				trait:winter_soldier = { save_scope_as = target_trait }
			}
			fallback = {
				scope:actor = {
					random_character_trait = {
						limit = { has_trait_category = commander }
						save_scope_as = target_trait
					}
				}
			}
		}
	}

	on_accept = {
		scope:actor = {
			# Trait you're trying to make your ward gained is saved as scope:target_trait
			trigger_event = mpo_interactions_events.0101
			show_as_tooltip = {
				add_stress = minor_stress_gain
				add_opinion = {
					target = scope:recipient
					modifier = pleased_opinion
					opinion = 20
				}
			}
		}
		scope:recipient = {
			show_as_tooltip = {
				switch = {#save which trait was chosen as scope:target_trait
					trigger = yes
					scope:logistician = {
						trait:logistician = { save_scope_as = target_trait }
					}
					scope:military_engineer = {
						trait:military_engineer = { save_scope_as = target_trait }
					}
					scope:aggressive_attacker = {
						trait:aggressive_attacker = { save_scope_as = target_trait }
					}
					scope:unyielding_defender = {
						trait:unyielding_defender = { save_scope_as = target_trait }
					}
					scope:forder = {
						trait:forder = { save_scope_as = target_trait }
					}
					scope:flexible_leader = {
						trait:flexible_leader = { save_scope_as = target_trait }
					}
					scope:desert_warrior = {
						trait:desert_warrior = { save_scope_as = target_trait }
					}
					scope:jungle_stalker = {
						trait:jungle_stalker = { save_scope_as = target_trait }
					}
					scope:reaver = {
						trait:reaver = { save_scope_as = target_trait }
					}
					scope:reckless = {
						trait:reckless = { save_scope_as = target_trait }
					}
					scope:holy_warrior = {
						trait:holy_warrior = { save_scope_as = target_trait }
					}
					scope:open_terrain_expert = {
						trait:open_terrain_expert = { save_scope_as = target_trait }
					}
					scope:rough_terrain_expert = {
						trait:rough_terrain_expert = { save_scope_as = target_trait }
					}
					scope:forest_fighter = {
						trait:forest_fighter = { save_scope_as = target_trait }
					}
					scope:cautious_leader = {
						trait:cautious_leader = { save_scope_as = target_trait }
					}
					scope:organizer = {
						trait:organizer = { save_scope_as = target_trait }
					}
					scope:winter_soldier = {
						trait:winter_soldier = { save_scope_as = target_trait }
					}
				}
				if = {
					limit = { exists = scope:target_trait }
					add_trait = scope:target_trait
				}
				add_opinion = {
					target = scope:actor
					modifier = admiration_opinion
					opinion = 20
				}
			}
		}
	}

	on_decline = {
		scope:actor = {
			# Trait you're trying to make your ward gained is saved as scope:target_trait
			trigger_event = mpo_interactions_events.0102
			show_as_tooltip = {
				add_stress = medium_stress_gain
				add_opinion = {
					target = scope:recipient
					modifier = disappointed_opinion
					opinion = -20
				}
			}
		}
		scope:recipient = {
			show_as_tooltip = {
				add_opinion = {
					target = scope:actor
					modifier = confused_opinion
					opinion = -20
				}
			}
		}
	}

	auto_accept = no

	ai_accept = {
		base = 0 # Try to make it 0 for most interactions
		opinion_modifier = { # Opinion Factor
			who = scope:recipient
			opinion_target = scope:actor
			multiplier = 0.5
			desc = AI_OPINION_REASON
		}

		modifier = { # Perk boost
			desc = influence_children_groomed_to_rule_perk_tt
			trigger = {
				scope:actor = { has_perk = groomed_to_rule_perk }
			}
			add = groomed_to_rule_value
		}

		modifier = { #more likely if you already have something in common
			add = {
				value = 5
				if = {
					limit = {
						number_of_personality_traits_in_common = {
							target = scope:recipient
							value = 2
						}
					}
					multiply = 2
				}
				else_if = {
					limit = {
						number_of_personality_traits_in_common = {
							target = scope:recipient
							value = 3
						}
					}
					multiply = 3
				}
			}
			number_of_personality_traits_in_common = {
				target = scope:recipient
				value >= 1
			}
			desc = we_are_alike_tt
		}

		modifier = { #less likely if you already have opposite traits
			add = {
				value = -5
				if = {
					limit = {
						scope:recipient = {
							number_of_opposing_personality_traits = {
								target = scope:actor
								value = 2
							}
						}
					}
					multiply = 2
				}
				else_if = {
					limit = {
						scope:recipient = {
							number_of_opposing_personality_traits = {
								target = scope:actor
								value = 3
							}
						}
					}
					multiply = 3
				}
			}
			scope:recipient = {
				number_of_opposing_personality_traits = {
					target = scope:actor
					value >= 1
				}
			}
			desc = we_are_NOT_alike_tt
		}

		modifier = { #adding your knowledge
			add = {
				value = scope:actor.martial
				multiply = 0.5
			}
			desc = HAS_MARTIAL_SKILL_REASON
		}

		modifier = { #adding your fighting skills
			add = {
				value = scope:actor.prowess
				multiply = 0.5
			}
			desc = HAS_PROWESS_SKILL_REASON
		}

		modifier = { #more likely with a Wet Nurse employed
			exists = scope:actor.court_position:champion_court_position
			add = 10
			desc = HAS_CHAMPION_REASON
		}

		modifier = { #more likely if chosen trait is compatible with recipients childhood personality
			add = 15
			switch = {
				trigger = yes
				scope:logistician = {
					scope:recipient = {
						OR = {
							has_trait = curious
							has_trait = pensive
						}
					}
				}
				scope:military_engineer = {
					scope:recipient = {
						OR = {
							has_trait = curious
							has_trait = pensive
						}
					}
				}
				scope:aggressive_attacker = {
					scope:recipient = {
						OR = {
							has_trait = bossy
							has_trait = rowdy
						}
					}
				}
				scope:unyielding_defender = {
					scope:recipient = {
						OR = {
							has_trait = bossy
							has_trait = rowdy
						}
					}
				}
				scope:forder = {
					scope:recipient = {
						OR = {
							has_trait = rowdy
							has_trait = curious
						}
					}
				}
				scope:flexible_leader = {
					scope:recipient = {
						OR = {
							has_trait = charming
							has_trait = curious
						}
					}
				}
				scope:desert_warrior = {
					scope:recipient = {
						has_trait = rowdy
					}
				}
				scope:jungle_stalker = {
					scope:recipient = {
						has_trait = rowdy
					}
				}
				scope:reaver = {
					scope:recipient = {
						OR = {
							has_trait = bossy
							has_trait = rowdy
						}
					}
				}
				scope:reckless = {
					scope:recipient = {
						OR = {
							has_trait = bossy
							has_trait = rowdy
						}
					}
				}
				scope:holy_warrior = {
					scope:recipient = {
						has_trait = pensive
					}
				}
				scope:open_terrain_expert = {
					scope:recipient = {
						has_trait = rowdy
					}
				}
				scope:rough_terrain_expert = {
					scope:recipient = {
						has_trait = rowdy
					}
				}
				scope:forest_fighter = {
					scope:recipient = {
						has_trait = rowdy
					}
				}
				scope:cautious_leader = {
					scope:recipient = {
						has_trait = pensive
					}
				}
				scope:organizer = {
					scope:recipient = {
						OR = {
							has_trait = bossy
							has_trait = charming
						}
					}
				}
				scope:winter_soldier = {
					scope:recipient = {
						has_trait = rowdy
					}
				}
			}
			desc = has_compatible_personality_tt
		}

		modifier = { #less likely if chosen trait is incompatible with recipients childhood personality
			add = -15
			switch = {
				trigger = yes
				scope:logistician = {
					scope:recipient = {
						NOR = {
							has_trait = curious
							has_trait = pensive
						}
					}
				}
				scope:military_engineer = {
					scope:recipient = {
						NOR = {
							has_trait = curious
							has_trait = pensive
						}
					}
				}
				scope:aggressive_attacker = {
					scope:recipient = {
						NOR = {
							has_trait = bossy
							has_trait = rowdy
						}
					}
				}
				scope:unyielding_defender = {
					scope:recipient = {
						NOR = {
							has_trait = bossy
							has_trait = rowdy
						}
					}
				}
				scope:forder = {
					scope:recipient = {
						NOR = {
							has_trait = rowdy
							has_trait = curious
						}
					}
				}
				scope:flexible_leader = {
					scope:recipient = {
						NOR = {
							has_trait = charming
							has_trait = curious
						}
					}
				}
				scope:desert_warrior = {
					scope:recipient = {
						NOT = { has_trait = rowdy }
					}
				}
				scope:jungle_stalker = {
					scope:recipient = {
						NOT = { has_trait = rowdy }
					}
				}
				scope:reaver = {
					scope:recipient = {
						NOR = {
							has_trait = bossy
							has_trait = rowdy
						}
					}
				}
				scope:reckless = {
					scope:recipient = {
						NOR = {
							has_trait = bossy
							has_trait = rowdy
						}
					}
				}
				scope:holy_warrior = {
					scope:recipient = {
						NOT = { has_trait = pensive }
					}
				}
				scope:open_terrain_expert = {
					scope:recipient = {
						NOT = { has_trait = rowdy }
					}
				}
				scope:rough_terrain_expert = {
					scope:recipient = {
						NOT = { has_trait = rowdy }
					}
				}
				scope:forest_fighter = {
					scope:recipient = {
						NOT = { has_trait = rowdy }
					}
				}
				scope:cautious_leader = {
					scope:recipient = {
						NOT = { has_trait = pensive }
					}
				}
				scope:organizer = {
					scope:recipient = {
						NOR = {
							has_trait = bossy
							has_trait = charming
						}
					}
				}
				scope:winter_soldier = {
					scope:recipient = {
						NOT = { has_trait = rowdy }
					}
				}
			}
			desc = has_incompatible_personality_tt
		}

		modifier = { #more likely if actor is afraid of you
			add = intimidated_halved_reason_value
			scope:recipient = {
				target_is_liege_or_above = scope:actor
				has_dread_level_towards = {
					target = scope:actor
					level = 1
				}
			}
			desc = INTIMIDATED_REASON
		}
		modifier = { #more likely if actor is afraid of you
			add = cowed_halved_reason_value
			scope:recipient = {
				target_is_liege_or_above = scope:actor
				has_dread_level_towards = {
					target = scope:actor
					level = 2
				}
			}
			desc = COWED_REASON
		}
		modifier = { #less likely if recipient already has a commander trait
			add = -50
			scope:recipient = {
				number_of_commander_traits >= 1
			}
			desc = has_commander_traits_already
		}
	}

	# AI
	ai_potential = {
		any_relation = {
			type = ward
			count >= 1
		}
	}
	ai_frequency_by_tier = {
		barony = 0
		county = 72
		duchy = 12
		kingdom = 12
		empire = 12
		hegemony = 12
	}
	ai_targets = {
		ai_recipients = courtiers
	}
	ai_will_do = {
		base = -100
		modifier = { # If the recipient is a player, do not bother sending
			factor = 0
			scope:recipient = {
				is_ai = no
			}
		}
		modifier = {
			add = ai_honor
		}
		modifier = {
			add = ai_energy
		}
		modifier = {
			add = ai_sociability
		}
		modifier = {
			add = ai_boldness
		}
	}
}

mpo_make_blood_brother = {
	category = interaction_category_diplomacy
	icon = blood_brother
	desc = make_blood_brother_desc
	common_interaction = yes
	can_send_despite_rejection = yes
	interface_priority = 60

	greeting = positive
	notification_text = MAKE_BLOOD_BROTHER_NOTIFICATION
	popup_on_receive = yes
	ai_maybe = yes

	cooldown = { months = 1 }
	cooldown_against_recipient = { years = 5 }

	is_shown = {
		# Scope:actor needs to have a suitable CulTrad.
		scope:actor = {
			mpo_valid_for_blood_brotherhood_trigger = yes
			NOT = { var:had_mpo_temujin_flavor_0020 ?= scope:recipient }
		}
		scope:recipient = {
			mpo_valid_for_blood_brotherhood_trigger = yes
			NOT = {
				this = scope:actor
			}
		}
	}

	is_valid_showing_failures_only = {
		mpo_can_be_blood_brothers_trigger = { CHARACTER_1 = scope:actor CHARACTER_2 = scope:recipient }
		# Both characters must be available
		scope:actor = {
			is_imprisoned = no
			is_incapable = no
		}
		scope:recipient = {
			is_imprisoned = no
			is_incapable = no
		}
	}
	#Mutual enemy that you oppose together
	send_option = {
		flag = common_enemy
		is_valid = {
			custom_description = {
				text = blood_brother_common_enemy_trigger
				mpo_blood_brother_common_enemy_trigger = yes
			}
		}
		localization = BLOOD_BROTHER_COMMON_ENEMY
	}
	#Shared memories
	send_option = {
		flag = memories_together
		is_valid = {
			custom_description = {
				text = blood_brother_memory_trigger
				scope:actor = {
					any_memory = {
						has_memory_participant = scope:recipient
						mpo_blood_brother_reason_memory_trigger = yes
					}
				}
			}
		}
		localization = BLOOD_BROTHER_MEMORIES
	}

	#Fought together in a war
	send_option = {
		flag = war_allies
		is_valid = {
			custom_description = {
				text = blood_brother_former_war_allies_trigger
				scope:actor = {
					has_variable_list = former_war_allies
					any_in_list = {
						variable = former_war_allies
						this = scope:recipient
					}
				}
			}
		}
		localization = BLOOD_BROTHER_WAR_ALLIES
	}

	# Normal
	send_option = {
		is_shown = {
			always = no
		}
		is_valid = {
			always = yes
		}
		flag = normal
		localization = BLOOD_BROTHER_NORMAL
		starts_enabled = { always = yes	}
	}

	cost = {
		piety = minor_piety_value
	}

	send_options_exclusive = no

	on_accept = {
		# Notifications with most effects.
		scope:actor = {
			# Become blood brothers
			#Tooltip effect because it happens later/in the blood brother on action
			show_as_tooltip = {
				set_relation_blood_brother = scope:recipient
			}
			custom_tooltip = blood_brother_alliance_actor_alliance_tt
			custom_tooltip = blood_brother_actor_gains_hook_tt
			if = {
				limit = {
					scope:recipient = {
						mpo_blood_brother_august_trigger = { OTHER_BROTHER = scope:actor }
					}
				}
				if = {
					limit = {
						scope:actor = {
							government_has_flag = government_is_nomadic
						}
					}
					custom_tooltip = blood_brother_august_nomadic_modifier_tt
				}
				else = {
					custom_tooltip = blood_brother_august_modifier_tt
				}
			}
			if = {
				limit = {
					scope:recipient = {
						mpo_blood_brother_warrior_trigger = { OTHER_BROTHER = scope:actor }
					}
				}
				custom_tooltip = blood_brother_warrior_modifier_tt
			}
			if = {
				limit = {
					scope:recipient = {
						mpo_blood_brother_clever_trigger = yes
					}
				}
				if = {
					limit = {
						scope:actor = {
							government_has_flag = government_is_nomadic
						}
					}
					custom_tooltip = blood_brother_clever_nomadic_modifier_tt
				}
				else = {
					custom_tooltip = blood_brother_clever_modifier_tt
				}
			}
			if = {
				limit = {
					scope:recipient = {
						mpo_blood_brother_loving_trigger = yes
					}
				}
				custom_tooltip = blood_brother_loving_modifier_tt
			}
			if = {
				limit = {
					always = scope:common_enemy
				}
				custom_tooltip = blood_brother_foe_modifier_tt
			}
		}
		scope:recipient = {
			# Become blood brothers
			#Tooltip effect because it happens later/in the blood brother on action

			show_as_tooltip = { set_relation_blood_brother = scope:actor }
			custom_tooltip = blood_brother_alliance_recipient_alliance_tt
			custom_tooltip = blood_brother_recipient_gains_hook_tt
			if = {
				limit = {
					scope:actor = {
						mpo_blood_brother_august_trigger = { OTHER_BROTHER = scope:recipient }
					}
				}
				if = {
					limit = {
						scope:recipient = {
							government_has_flag = government_is_nomadic
						}
					}
					custom_tooltip = blood_brother_august_nomadic_modifier_tt
				}
				else = {
					custom_tooltip = blood_brother_august_modifier_tt
				}
			}
			if = {
				limit = {
					scope:actor = {
						mpo_blood_brother_warrior_trigger = { OTHER_BROTHER = scope:recipient }
					}
				}
				custom_tooltip = blood_brother_warrior_modifier_tt
			}
			if = {
				limit = {
					scope:actor = {
						mpo_blood_brother_clever_trigger = yes
					}
				}
				if = {
					limit = {
						scope:recipient = {
							government_has_flag = government_is_nomadic
						}
					}
					custom_tooltip = blood_brother_clever_nomadic_modifier_tt
				}
				else = {
					custom_tooltip = blood_brother_clever_modifier_tt
				}
			}
			if = {
				limit = {
					scope:actor = {
						mpo_blood_brother_loving_trigger = yes
					}
				}
				custom_tooltip = blood_brother_loving_modifier_tt
			}
			if = {
				limit = {
					always = scope:common_enemy
				}
				custom_tooltip = blood_brother_foe_modifier_tt
			}
		}

		# If we're a clan this interaction affects unity
		add_clan_unity_interaction_effect = {
			CHARACTER = scope:actor
			TARGET = scope:recipient
			VALUE = minor_unity_gain
			DESC = clan_unity_oath_of_true_friendship.desc
			REVERSE_NON_HOUSE_TARGET = no
		}
		if = {
			limit = {
				always = scope:common_enemy
			}
			scope:actor = {
				make_blood_brother_save_common_enemy_effect = yes
			}
		}
		#Fire events for each char, resetting scopes to be appropriate in each
		hidden_effect = {
			scope:recipient = {
				save_scope_as = blood_bro
			}
			scope:actor = {
				set_relation_blood_brother = {
					reason = sworn_blood_brother
					target = scope:recipient
				}
				trigger_event = mpo_interactions_events.0006
			}
			clear_saved_scope = blood_bro
			scope:actor = {
				save_scope_as = blood_bro
			}
			scope:recipient = {
				trigger_event = mpo_interactions_events.0006
			}
		}
	}

	on_decline = {
		# Scope:actor gains some stress over the whole ordeal.
		scope:actor = {
			send_interface_toast = {
				type = event_toast_effect_bad
				title = make_blood_brother_interaction.decline.actor.tt
				left_icon = scope:recipient
				add_stress = minor_stress_gain
			}
		}
		# Scope:actor loses opinion of scope:recipient.
		scope:recipient = {
			send_interface_toast = {
				type = event_toast_effect_neutral
				title = make_blood_brother_interaction.decline.recipient.tt
				left_icon = scope:actor
				scope:actor = {
					add_opinion = {
						target = scope:recipient
						modifier = hurt_opinion
						opinion = -20
					}
				}
			}
		}
		# And set up a little hidden drama for later...
		hidden_effect = {
			scope:recipient = {
				if = {
					limit = {
						# We don't use the standard check for this, since they'll already be friends by definition, so the trigger would always return as false.
						# Instead, we just check to make sure they're not *already* potential rivals; this can happen regardless, so really we're just setting them up for drama if the friendship ever falters.
						NOT = { has_relation_potential_rival = scope:actor }
					}
					random = {
						chance = 20
						set_relation_potential_rival = scope:actor
					}
				}
			}
		}

		# If we're a clan this interaction affects unity
		add_clan_unity_interaction_effect = {
			CHARACTER = scope:actor
			TARGET = scope:recipient
			VALUE = minor_unity_loss
			DESC = clan_unity_declined_true_friendship.desc
			REVERSE_NON_HOUSE_TARGET = no
		}
	}

	# AI
	## Standard Acceptance stuff
	ai_accept = {
		base = -50

		mpo_blood_brother_interactions_ai_accept_modifier = yes

		# Common foe send option
		# Are you offering confederation leadership?
		modifier = {
			trigger = {
				scope:common_enemy ?= yes
			}
			add = 75
			desc = BLOOD_BROTHER_COMMON_ENEMY_VALUE
		}
		# Memories send option
		modifier = {
			trigger = {
				scope:memories_together ?= yes
			}
			add = 50
			desc = BLOOD_BROTHER_MEMORIES_VALUE
		}
		# Former war allies send option
		modifier = {
			trigger = {
				scope:war_allies ?= yes
			}
			add = 30
			desc = BLOOD_BROTHER_WAR_ALLIES_VALUE
		}
	}
	## Performance-enhancement
	ai_potential = {
		is_imprisoned = no
		is_at_war = no
		has_blood_brother = no
	}
	ai_target_quick_trigger = { adult = yes }
	ai_targets = {
		ai_recipients = liege
		ai_recipients = scripted_relations
	}
	ai_targets = {
		ai_recipients = peer_vassals
		max = 10
	}
	ai_targets = {
		ai_recipients = neighboring_rulers_including_tributary_borders
		max = 15
	}
	## Frequency
	ai_frequency_by_tier = {
		barony = 0
		county = 96
		duchy = 48
		kingdom = 12
		empire = 12
		hegemony = 12
	}
	ai_will_do = {
		base = -50

		#Dishonorable characters don't want to be bound like this
		modifier = {
			scope:recipient = {
				ai_honor <= medium_negative_ai_value
			}
			add = -40
		}
		modifier = {
			scope:recipient = {
				ai_sociability <= medium_negative_ai_value
			}
			add = -20
		}

		#This will mostly just annoy players, unless AI is worthy and has a good reason
		modifier = {
			scope:recipient = {
				is_ai = no
			}
			NOT = {
				scope:actor = {
					is_landed = yes
					OR = {
						has_relation_friend = scope:recipient
						has_relation_soulmate = scope:recipient
						is_allied_to = scope:recipient
					}
				}
			}
			add = -100
		}
		modifier = {
			add = 25
			any_ally = {
				count < 1
			}
		}
		modifier = {
			add = 75
			any_ally = {
				count < 2
			}
			scope:recipient = { # Don't propose alliances to tiny insignificant rulers just because
				OR = {
					current_military_strength >= scope:actor.eighty_percent_of_current_military_strength
					primary_title.tier >= scope:actor.primary_title.tier
					AND = {
						primary_title.tier >= tier_duchy
						scope:actor.primary_title.tier < tier_empire
					}
				}
			}
		}

		modifier = {
			add = 25
			scope:actor = {
				mpo_blood_brother_common_enemy_trigger = yes
			}
		}
		modifier = {
			add = 25
			scope:actor = {
				scope:actor = {
					any_memory = {
						has_memory_participant = scope:recipient
						mpo_blood_brother_reason_memory_trigger = yes
					}
				}
			}
		}
		modifier = {
			add = 10
			scope:actor = {
				has_variable_list = former_war_allies
				any_in_list = {
					variable = former_war_allies
					this = scope:recipient
				}
			}
		}

		mpo_blood_brother_interactions_ai_accept_modifier = yes

		modifier = { # The AI shouldn't propose to their Lieges
			factor = 0.5
			is_liege_or_above_of = scope:recipient
		}
		modifier = { # The AI shouldn't propose to their Vassals unless Clan
			factor = 0.5
			scope:actor = {
				NOT = { government_has_flag = government_is_clan }
			}
			scope:recipient = {
				is_vassal_of = scope:actor
			}
		}
		modifier = {
			factor = 0
			scope:recipient = {
				has_character_modifier = broke_blood_brotherhood_modifier
			}
		}

		# Jamukha offers Temujin via Event
		modifier = {
			trigger = {
				scope:actor = { this = character:mpo_mongol_1 }
				scope:recipient = { this = character:125501 }
			}
			factor = 0
		}
	}
}


################################
# Feudalize Nomadic Holding
################################
feudalize_nomadic_holding_interaction = {
	category = interaction_category_uncategorized
	hidden = yes
	special_interaction = feudalize_holding

	desc = feudalize_holding_interaction_desc

	target_type = title
	target_filter = actor_domain_titles

	auto_accept = yes

	is_shown = {
		scope:actor = {
			this = scope:recipient
			NOR = {
				government_has_flag = government_is_nomadic
				government_has_flag = government_is_true_herder
			}
		}
	}

	can_be_picked_title = {
		scope:target = {
			holder = scope:actor
			is_capital_barony = no # we'll use the county in that case
			trigger_if = {
				limit = { tier <= tier_county }
				title_province = {
					has_holding_type = nomad_holding
				}
			}
			trigger_else = {
				custom_description = {
					text = "feudalize_nomadic_holding_interaction_title_not_county_or_below"
					always = no
				}
			}
		}
	}

	has_valid_target_showing_failures_only = {
		scope:target = {
			trigger_if = {
				limit = { tier <= tier_county }
				title_province = {
					barony_controller = scope:actor
					has_ongoing_construction = no
				}
			}
		}
	}

	cost = {
		gold = {
			value = 0
			if = {
				limit = {
					has_treasury = no
				}
				scope:actor = {
					if = {
						limit = { # Less expensive for tribals
							government_has_flag = government_is_tribal
						}
						add = {
							value = 50
							desc = BASE
						}
					}
					else = {
						add = {
							value = feudalize_holding_interaction_cost
							desc = BASE
						}
						if = {
							limit = { # More expensive for admin to make barbarians civilized...
								government_has_flag = government_is_administrative
							}
							add = {
								value = feudalize_holding_interaction_cost
								multiply = 0.25
								desc = has_admin_government
							}
							if = {
								limit = { # Admin get a bonus for high bureaucracy levels
									OR = {
										has_realm_law = imperial_bureaucracy_2
										has_realm_law = imperial_bureaucracy_3
									}
								}
								subtract = {
									value = feudalize_holding_interaction_cost
									multiply = {
										value = 0.1
										if = {
											limit = {
												has_realm_law = imperial_bureaucracy_3
											}
											add = 0.15
										}
									}
									desc = imperial_bureaucracy
								}
							}
						}
					}
				}
			}
		}
		treasury = {
			value = 0
			if = {
				limit = {
					has_treasury = yes
				}
				scope:actor = {
					add = {
						value = feudalize_holding_interaction_cost
						desc = BASE
					}
					if = {
						limit = { # More expensive for admin to make barbarians civilized...
							government_has_flag = government_is_administrative
						}
						add = {
							value = feudalize_holding_interaction_cost
							multiply = 0.25
							desc = has_admin_government
						}
						if = {
							limit = { # Admin get a bonus for high bureaucracy levels
								OR = {
									has_realm_law = imperial_bureaucracy_2
									has_realm_law = imperial_bureaucracy_3
								}
							}
							subtract = {
								value = feudalize_holding_interaction_cost
								multiply = {
									value = 0.1
									if = {
										limit = {
											has_realm_law = imperial_bureaucracy_3
										}
										add = 0.15
									}
								}
								desc = imperial_bureaucracy
							}
						}
					}
				}
			}
		}
		prestige = {
			scope:actor = {
				if = {
					limit = { # Less expensive for tribals
						government_has_flag = government_is_tribal
						scope:target.county.culture = scope:actor.culture
					}
					add = {
						value = 50
						desc = BASE
					}
				}
				else_if = {
					limit = { # Less expensive for tribals
						government_has_flag = government_is_tribal
						scope:target.county.culture = { has_same_culture_heritage = scope:actor.culture }
					}
					add = {
						value = 100
						desc = BASE
					}
				}
				else_if = {
					limit = { # Less expensive for tribals
						government_has_flag = government_is_tribal
					}
					add = {
						value = 300
						desc = BASE
					}
				}
			}
		}
	}

	on_accept = {
		scope:actor = {
			send_interface_toast = {
				type = event_toast_effect_good
				title = feudalize_holding_interaction_notification

				right_icon = scope:actor

				if = {
					limit = {
						exists = scope:target.title_province
						NOT = { government_has_flag = government_is_tribal }
					}
					scope:target.title_province = {
						set_holding_type = castle_holding
					}
				}

				if = {
					limit = {
						exists = scope:target.title_province
						government_has_flag = government_is_tribal
					}
					scope:target.title_province = {
						set_holding_type = tribal_holding
					}
				}
				if = {
					limit = {
						scope:target.county.culture = scope:actor.culture
					}
				}
				else_if = {
					limit = {
						OR = {
							government_has_flag = government_is_tribal
							scope:target.county.culture = { has_same_culture_heritage = scope:actor.culture }
						}
					}
					scope:target.county = {
						add_county_modifier = {
							modifier = mpo_feudalize_nomadic_land_modifier
							years = 5
						}
					}
				}
				else = {
					scope:target.county = {
						add_county_modifier = {
							modifier = mpo_feudalize_nomadic_land_modifier
							years = 30
						}
					}
				}
			}
		}
	}

	ai_will_do = {
		base = 1500
	}
}

################################
# Feudalize Herder Holding
################################
feudalize_herder_holding_interaction = {
	category = interaction_category_uncategorized
	hidden = yes
	special_interaction = feudalize_holding

	desc = feudalize_holding_interaction_desc

	target_type = title
	target_filter = actor_domain_titles

	auto_accept = yes

	is_shown = {
		scope:actor = {
			this = scope:recipient
			NOR = {
				government_has_flag = government_is_nomadic
				government_has_flag = government_is_true_herder
			}
		}
	}

	can_be_picked_title = {
		scope:target = {
			holder = scope:actor
			is_capital_barony = no # we'll use the county in that case
			trigger_if = {
				limit = { tier <= tier_county }
				title_province = {
					has_holding_type = herder_holding
				}
			}
			trigger_else = {
				custom_description = {
					text = "feudalize_herder_holding_interaction_title_not_county_or_below"
					always = no
				}
			}
		}
	}

	has_valid_target_showing_failures_only = {
		scope:target = {
			trigger_if = {
				limit = { tier <= tier_county }
				title_province = {
					barony_controller = scope:actor
					has_ongoing_construction = no
				}
			}
		}
	}

	cost = {
		gold = {
			value = 0
			if = {
				limit = {
					has_treasury = no
				}
				scope:actor = {
					if = {
						limit = { # Less expensive for tribals
							government_has_flag = government_is_tribal
						}
						add = {
							value = 50
							desc = BASE
						}
					}
					else = {
						add = {
							value = feudalize_holding_interaction_cost
							desc = BASE
						}
						if = {
							limit = { # More expensive for admin to make barbarians civilized...
								government_has_flag = government_is_administrative
							}
							add = {
								value = feudalize_holding_interaction_cost
								multiply = 0.25
								desc = has_admin_government
							}
							if = {
								limit = { # Admin get a bonus for high bureaucracy levels
									OR = {
										has_realm_law = imperial_bureaucracy_2
										has_realm_law = imperial_bureaucracy_3
									}
								}
								subtract = {
									value = feudalize_holding_interaction_cost
									multiply = {
										value = 0.1
										if = {
											limit = {
												has_realm_law = imperial_bureaucracy_3
											}
											add = 0.15
										}
									}
									desc = imperial_bureaucracy
								}
							}
						}
					}
				}
			}
		}
		treasury = {
			value = 0
			if = {
				limit = {
					has_treasury = yes
				}
				scope:actor = {
					add = {
						value = feudalize_holding_interaction_cost
						desc = BASE
					}
					if = {
						limit = { # More expensive for admin to make barbarians civilized...
							government_has_flag = government_is_administrative
						}
						add = {
							value = feudalize_holding_interaction_cost
							multiply = 0.25
							desc = has_admin_government
						}
						if = {
							limit = { # Admin get a bonus for high bureaucracy levels
								OR = {
									has_realm_law = imperial_bureaucracy_2
									has_realm_law = imperial_bureaucracy_3
								}
							}
							subtract = {
								value = feudalize_holding_interaction_cost
								multiply = {
									value = 0.1
									if = {
										limit = {
											has_realm_law = imperial_bureaucracy_3
										}
										add = 0.15
									}
								}
								desc = imperial_bureaucracy
							}
						}
					}
				}
			}
		}
		prestige = {
			scope:actor = {
				if = {
					limit = { # Less expensive for tribals
						government_has_flag = government_is_tribal
						scope:target.county.culture = scope:actor.culture
					}
					add = {
						value = 50
						desc = BASE
					}
				}
				else_if = {
					limit = { # Less expensive for tribals
						government_has_flag = government_is_tribal
						scope:target.county.culture = { has_same_culture_heritage = scope:actor.culture }
					}
					add = {
						value = 100
						desc = BASE
					}
				}
				else_if = {
					limit = { # Less expensive for tribals
						government_has_flag = government_is_tribal
					}
					add = {
						value = 300
						desc = BASE
					}
				}
			}
		}
	}

	on_accept = {
		scope:actor = {
			send_interface_toast = {
				type = event_toast_effect_good
				title = feudalize_holding_interaction_notification

				right_icon = scope:actor

				if = {
					limit = {
						exists = scope:target.title_province
						NOT = { government_has_flag = government_is_tribal }
					}
					scope:target.title_province = {
						set_holding_type = castle_holding
					}
				}

				if = {
					limit = {
						exists = scope:target.title_province
						government_has_flag = government_is_tribal
					}
					scope:target.title_province = {
						set_holding_type = tribal_holding
					}
				}
				if = {
					limit = {
						scope:target.county.culture = scope:actor.culture
					}
				}
				else_if = {
					limit = {
						OR = {
							government_has_flag = government_is_tribal
							scope:target.county.culture = { has_same_culture_heritage = scope:actor.culture }
						}
					}
					scope:target.county = {
						add_county_modifier = {
							modifier = mpo_feudalize_nomadic_land_modifier
							years = 5
						}
					}
				}
				else = {
					scope:target.county = {
						add_county_modifier = {
							modifier = mpo_feudalize_nomadic_land_modifier
							years = 30
						}
					}
				}
			}
		}
	}

	ai_will_do = {
		base = 1500
	}
}

mpo_retrieve_land_from_herder_interaction = {
	category = interaction_category_diplomacy
	common_interaction = yes
	notification_text = REVOKE_TITLE_PROPOSAL
	interface_priority = 100
	icon = mpo_retrieve_land_from_herder_interaction
	desc = mpo_retrieve_land_from_herder_interaction_desc

	special_interaction = revoke_title_interaction
	interface = revoke_title
	target_type = title
	target_filter = recipient_domain_titles
	ai_maybe = yes
	popup_on_receive = yes
	pause_on_receive = yes

	interface_priority = 60
	ai_min_reply_days = 4
	ai_max_reply_days = 9

	# actor character giving the titles
	# recipient character receiving the titles

	is_shown = {
		scope:recipient = {
			government_has_flag = government_is_true_herder
		}
	}

	is_valid_showing_failures_only = {
		scope:actor = {
			is_adult = yes
			is_imprisoned = no
			prestige >= minor_prestige_value
			trigger_if = {
				limit = { is_landed = yes }
				custom_tooltip = {
					text = mpo_retrieve_land_from_herder_interaction_neighbour_tt
					any_sub_realm_county = {
						any_neighboring_county = {
							holder = {
								this = scope:recipient
							}
						}
					}
				}
			}
			trigger_else = {
				OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority }
				domicile.domicile_location.county.holder ?= scope:recipient
			}
		}
		scope:recipient = {
			custom_tooltip = {
				text = mpo_retrieve_land_from_herder_independent_tt
				OR = {
					AND = {
						is_independent_ruler = yes
						is_tributary = no
					}
					is_tributary_of_suzerain_or_above = scope:actor
					is_vassal_of = scope:actor
				}
			}
			custom_tooltip = {
				text = mpo_retrieve_land_migration_tt
				capital_county = { is_migration_target = no }
			}
		}
	}

	can_be_picked_title = {
		scope:target = {
			title_revocation_standard_can_pick_title_trigger = yes
		}
	}

	has_valid_target = {
		scope:target = {
			is_landless_type_title = no
			NOT = { is_noble_family_title = yes }
			NOT = { is_nomad_title = yes }
		}
	}

	#Use hook -- Has to stay so the UI doesn't break
	send_option = {
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		flag = hook
		localization = SCHEME_HOOK
	}
	should_use_extra_icon = {
		scope:actor = { has_usable_hook = scope:recipient }
	}
	extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"

	send_options_exclusive = no

	on_auto_accept = {
		scope:recipient = {
			trigger_event = char_interaction.0200
		}
	}

	on_accept = {
		scope:recipient = {
			if = {
				limit = {
					is_tributary = yes
					NOT = {
						is_tributary_of = scope:actor
					}
				}
				suzerain = {
					add_opinion = {
						target = scope:actor
						modifier = upset_opinion
						opinion = -25
					}
				}
			}
		}
		save_scope_value_as = {
			name = revoke_title_interaction
			value = yes
		}
		scope:recipient = {
			capital_county = {
				change_county_control = -25
			}
		}
		scope:actor = {
			add_prestige = minor_prestige_loss
			trigger_event = char_interaction.0199
		}
		

		scope:actor = {
			if = {
				limit = { has_character_flag = flag_hostile_actions_disabled_delay }
				remove_character_flag = flag_hostile_actions_disabled_delay
			}
			if = {
				limit = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
				demand_pastureland_adventurer_interaction_effect = yes
			}
			else = {
				revoke_title_interaction_effect = yes
			}
		}
	}

	auto_accept = {
		scope:actor = { is_landed = yes }
	}

	# AI
	ai_targets = {
		ai_recipients = tributaries
		ai_recipients = top_realm_domicile_owners
	}
	ai_targets = {
		ai_recipients = neighboring_rulers
		max = 5
	}
	ai_frequency_by_tier = {
		barony = 0
		county = 12
		duchy = 4
		kingdom = 4
		empire = 4
		hegemony = 4
	}

	ai_potential = {
		domain_size < domain_limit
		primary_title.tier >= tier_county
	}

	ai_accept = {
		base = 0
		modifier = {
			scope:actor = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
			add = -50
			desc = YOU_ARE_AN_ADVENTURER_REASON
		}
		modifier = {
			exists = scope:actor.suzerain
			add = -25
			desc = ADVENTURER_SUZERAIN_REASON
		}
		modifier = {
			scope:actor = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
			add = {
				value = scope:actor.military_power
				divide = 100
			}
			desc = ADVENTURER_MILITARY_POWER_REASON
		}
	}

	ai_will_do = {
		base = 0
		modifier = {
			scope:actor = {
				government_has_flag = government_is_nomadic
				current_domain_fertility <= bad_county_fertility_level
			}
			add = 100
		}
		modifier = {
			scope:actor = {
				NOT = { government_has_flag = government_is_nomadic }
				short_term_gold >= massive_gold_value
				NOR = {
					has_trait = humble
					has_trait = content
				}
			}
			add = 25
		}
	}
}

mpo_vassal_to_tributary_interaction = {
	category = interaction_category_vassal
	icon = become_tributary_interaction
	common_interaction = yes

	desc = mpo_vassal_to_tributary_interaction_desc

	#ai_frequency = 0
	popup_on_receive = yes
	pause_on_receive = yes

	is_shown = {
		scope:actor = {
			is_ai = no
			is_vassal_of = scope:recipient
			government_has_flag = government_is_nomadic
		}
	}

	is_valid_showing_failures_only = {
		scope:recipient = {
			is_imprisoned = no
		}
		scope:actor = {
			is_imprisoned = no
			NOR = {
				is_at_war_with = scope:recipient
				exists = involved_activity
				is_travelling = yes
			}
		}
	}

	is_highlighted = {
		always = yes
	}

	# Start with higher taxes
	send_option = {
		flag = high_obligations
		localization = VASSAL_TO_TRIBUTARY_HIGHER_OBLIGATIONS
	}

	#Use hook
	send_option = {
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		flag = hook
		localization = GENERIC_SPEND_A_HOOK
	}
	should_use_extra_icon = {
		scope:actor = { has_usable_hook = scope:recipient }
	}
	extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"

	send_options_exclusive = no

	on_accept = {
		scope:actor = {
			show_as_tooltip = {
				break_subject_contract_and_establish_tributary_effect = { SUZERAIN = scope:recipient TRIBUTARY = scope:actor }
			}
		}
		scope:actor = {
			trigger_event = mpo_interactions_events.0010
		}
	}

	on_decline = {
		scope:actor = {
			#Letter response, they get a bit pissed
			trigger_event = mpo_interactions_events.0011
		}
	}

	ai_accept = {
		base = 0

		modifier = {
			add = -50
			desc = BASE_RELUCTANCE
		}

		# Do they like you?
		opinion_modifier = {
			who = scope:recipient
			opinion_target = scope:actor
			multiplier = 1
			desc = AI_OPINION_REASON
		}

		# If you're friends
		modifier = {
			add = 50
			scope:recipient = {
				has_relation_friend = scope:actor
			}
			desc = AI_FRIEND_REASON
		}

		# If you're lovers
		modifier = {
			add = 50
			scope:recipient = {
				has_relation_lover = scope:actor
			}
			desc = AI_YOUR_LOVER
		}

		# You're using a hook
		modifier = {
			add = 100
			desc = SCHEME_WEAK_HOOK_USED
			scope:hook = yes
		}

		# You promised higher taxes
		modifier = {
			add = 25
			desc = AI_HIGHER_OBLIGATIONS_REASON
			scope:high_obligations = yes
		}

		# Are they Nomadic
		modifier = {
			add = 25
			desc = game_concept_nomadic_government
			scope:recipient = { government_has_flag = government_is_nomadic }
		}
	}

	#ai_will_do = {
	#	base = 0
	#}
	#
	#ai_targets = {
	#	ai_recipients = suzerain
	#}
}

mpo_gift_herd_interaction = {
	icon = herd_interaction
	category = interaction_category_friendly
	common_interaction = yes
	interface_priority = 65
	desc = mpo_gift_herd_interaction_desc

	greeting = positive
	notification_text = SEND_GIFT_HERD_PROPOSAL

	answer_accept_key = SEND_GIFT_HERD_ACCEPT
	answer_reject_key = SEND_GIFT_HERD_REJECT

	ai_targets = {
		ai_recipients = scripted_relations
		ai_recipients = liege
		ai_recipients = suzerain
		ai_recipients = head_of_faith
	}
	ai_targets = {
		ai_recipients = neighboring_rulers
		ai_recipients = peer_vassals
		max = 10
	}
	ai_targets = {
		ai_recipients = vassals
		max = 10
	}
	ai_targets = {
		ai_recipients = tributaries
		max = 10
	}
	ai_target_quick_trigger = {
		adult = yes
	}
	ai_frequency_by_tier = {
		barony = 0
		county = 60
		duchy = 60
		kingdom = 60
		empire = 60
		hegemony = 0
	}

	is_shown = {
		NOT = {
			scope:recipient = scope:actor
		}
		scope:actor = { government_has_flag = government_is_nomadic }
		scope:recipient = {
			government_has_flag = government_is_nomadic
			exists = domicile
		}
	}

	is_valid_showing_failures_only = {
		scope:actor.domicile.herd >= herd_gift_value
	}

	on_auto_accept = {
		scope:recipient = {
			trigger_event = mpo_interactions_events.0020
		}
	}

	on_accept = {
		scope:recipient = {
			# Verify that they could become friend
			if = {
				limit = {
					NAND = {
						has_relation_friend = scope:actor
						has_relation_lover = scope:actor
						has_relation_soulmate = scope:actor
						has_relation_best_friend = scope:actor
					}
				}
				gifting_leads_towards_friendship_effect = yes
			}
		}

		scope:actor = {
			# Warning for multiple gifts
			if = {
				limit = {
					is_ai = no
					scope:recipient = {
						has_opinion_modifier = {
							target = scope:actor
							modifier = sent_herd_opinion
						}
					}
				}
				custom_tooltip = ALREADY_SENT_GIFT_HERD_WARNING
			}

			send_interface_message = {
				type = event_gold_neutral
				title = gift_interaction_notification
				right_icon = scope:recipient
				pay_herd = {
					target = scope:recipient
					value = domicile.herd_gift_value
				}
				stress_impact = {
					greedy = medium_stress_impact_gain
				}
				if = {
					limit = {
						scope:recipient = {
							NOT = {
								is_heir_of = scope:actor
							}
						}
					}
					stress_impact = {
						generous = medium_stress_impact_loss
					}
				}

				#FP3 Tenet Communal Possessions Perk - piety gain for gift giving.
				if = {
					limit = {
						scope:actor = {
							faith = {
					 			has_doctrine_parameter = piety_from_gifts_active
					 		}
					 	}
					}
					scope:actor = {
						add_piety = minor_piety_gain
					}
				}

				# Let's apply the opinion modifier last, as to apply everything else correctly first
				scope:recipient = {
					add_opinion = {
						target = scope:actor
						modifier = sent_herd_opinion
						opinion = sent_herd_opinion_value
					}
				}
			}
		}
	}

	ai_accept = {
		base = 0
		modifier = {
			add = 100
			desc = HERD_REASON
		}
	}

	ai_potential = {
		is_available_at_peace_ai_adult = yes
		ai_greed < medium_positive_ai_value
		domicile.herd >= {
			value = major_herd_value_static
			multiply = 3
		}
		NOT = { has_variable = conqueror }
		ai_should_focus_on_building_in_their_capital = no
	}

	auto_accept = {
		custom_description = {
			text = auto_accept_interaction_ai
			object = scope:recipient
			scope:recipient = {
				is_ai = yes
			}
		}
	}

	ai_min_reply_days = 1
	ai_max_reply_days = 1

	ai_will_do = {
		base = 100

		modifier = { # Do not send double-gifts
			factor = 0
			scope:recipient = {
				has_opinion_modifier = {
					target = scope:actor
					modifier = sent_herd_opinion
				}
			}
		}

		modifier = { # Special Blood Brother weight
			add = 100
			scope:actor = {
				has_relation_blood_brother = scope:recipient
				domicile.herd >= { # Do not lose all your Herd for this
					value = herd_gift_value
					multiply = 2
				}
			}
		}

		modifier = {
			add = 100
			scope:recipient = {
				is_tributary_of = scope:actor
				OR = {
					ai_greed <= -50
					is_obedient_to = scope:actor
					opinion = {
						target = scope:actor
						value >= 50
					}
				}
			}
		}

		modifier = { # Basic Filtering
			factor = 0
			scope:recipient = {
				NOR = {
					AND = { # Bankrupt lovers, friends and a bankrupt liege should be considered
						OR = {
							scope:actor = {
								any_liege_or_above = {
									this = scope:recipient
								}
							}
							has_secret_relation_lover = scope:actor
							has_relation_lover = scope:actor
							has_relation_soulmate = scope:actor
							has_relation_friend = scope:actor
							has_relation_best_friend = scope:actor
						}
						domicile.herd < minor_herd_value_static
					}
					AND = { # Generous characters will give gifts to their friends/lovers
						OR = {
							has_secret_relation_lover = scope:actor
							has_relation_lover = scope:actor
							has_relation_soulmate = scope:actor
							has_relation_friend = scope:actor
							has_relation_best_friend = scope:actor
						}
						scope:actor = {
							OR = {
								ai_greed <= high_negative_ai_value
								AND = {
									ai_greed < 0
									culture = {
										has_cultural_parameter = gives_more_gifts
									}
								}
							}
						}
					}
					AND = { # Characters with the Generous Cultural Tradition will give gifts to more people
						is_ruler = yes
						OR = {
							is_allied_to = scope:actor
							is_close_or_extended_family_of = scope:actor
						}
						scope:actor = {
							ai_greed < 0
							culture = {
								has_cultural_parameter = gives_more_gifts
							}
						}
					}
					AND = { # Characters with the loyal trait more likely to give gifts to friends/lieges
						OR = {
							scope:actor.liege ?= this
							has_relation_friend = scope:actor
							has_relation_best_friend = scope:actor
							is_allied_to = scope:actor
							is_close_or_extended_family_of = scope:actor
						}
						scope:actor = {
							ai_greed <= 0
							has_trait = loyal
						}
					}
					AND = { # Powerful vassals should be considered
						is_powerful_vassal_of = scope:actor
						opinion = {
							target = scope:actor
							value < 0
						}
						NOT ={
							has_opinion_modifier = {
								target = scope:actor
								modifier = sent_herd_opinion
							}
						}
					}
					AND = { # Factioneering vassals should be considered
						is_vassal_of = scope:actor
						is_a_faction_member = yes
						NOT ={
							has_opinion_modifier = {
								target = scope:actor
								modifier = sent_herd_opinion
							}
						}
					}
					AND = { # Realm Priests should be considered
						scope:actor = {
							faith = { has_doctrine = doctrine_theocracy_temporal }
							exists = cp:councillor_court_chaplain
							cp:councillor_court_chaplain = scope:recipient
						}
						opinion = {
							target = scope:actor
							value <= 25
						}
						NOT = {
							has_opinion_modifier = {
								target = scope:actor
								modifier = sent_herd_opinion
							}
						}
					}
				}
			}
		}

		modifier = {
			factor = 0.1
			scope:recipient = {
				opinion = {
					target = scope:actor
					value < 0
				}
				NAND = {
					is_vassal_of = scope:actor
					scope:actor = {
						ai_rationality > 50
					}
				}
			}
		}

		modifier = {
			factor = 0.1
			scope:recipient = {
				has_relation_rival = scope:actor
			}
		}
	}
}

mpo_offer_submission_or_ruin = {
	category = interaction_category_vassal
	icon = invasion
	popup_on_receive = yes
	pause_on_receive = yes
	ai_maybe = yes

	desc = mpo_offer_submission_or_ruin_desc

	ai_targets = {
		ai_recipients = neighboring_rulers
	}
	ai_frequency_by_tier = {
		barony = 0
		county = 0
		duchy = 0
		kingdom = 0
		empire = 3
		hegemony = 3
	}
	interface_priority = 300
	common_interaction = yes
	force_notification = yes

	is_shown = {
		scope:actor = {
			OR = {
				mpo_has_gok_mongol_empire_trigger = yes
				has_trait = greatest_of_khans
			}
			mpo_offer_submission_or_ruin_shown_actor_trigger = yes
		}
		scope:recipient = {
			mpo_offer_submission_or_ruin_shown_recipient_trigger = yes
		}

	}

	is_valid_showing_failures_only = {
		scope:actor = {
			mpo_offer_submission_or_ruin_valid_actor_trigger = yes
		}
		scope:recipient = {
			mpo_offer_submission_or_ruin_valid_recipient_trigger = yes
		}
	}

	is_highlighted = {
		always = yes
	}

	greeting = positive
	notification_text = OFFER_SUBMISSION_OR_RUIN_INTERACTION_NOTIFICATION

	can_send_despite_rejection = yes

	ai_min_reply_days = 3
	ai_max_reply_days = 5

	ai_accept = {
		base = -50
		# MAIN
		# Heretic/Infidel modifier.
		# Tier difference modifier.
		# Dejure modifier.
		# Distant/Remote Realm modifier.
		# Military power difference modifier.

		# MINOR
		# Rivalry modifier.
		# Same Dynasty modifier.
		# Cultural/Cultural Group modifiers.
		# Ageism modifier vs kids.
		# Ruler Legitimacy modifier.
		# Claimant modifier.
		# FP3 Piety Level modifier.

		# OPINION SCALES
		# Dread
		# Compare Opinion modifier.

		#CONFEDERATION
		modifier = {
			desc = CONFEDERATION_MEMBER_REASON
			scope:recipient = {
	 			is_confederation_member = yes
 			}
 			add = -500
		}

		#HERDER
		modifier = {
			scope:recipient = { government_has_flag = government_is_true_herder }
			add = 10000
			desc = HERDER_REASON
		}

		#TRIBUTARY
		modifier = {
			desc = KING_SUZERAIN_REASON
			scope:recipient = {
	 			is_tributary = yes
	 			NOT = {
	 				is_tributary_of_suzerain_or_above = scope:actor
	 			}
	 			suzerain = {
	 				highest_held_title_tier >= tier_kingdom
	 			}
 			}
 			add = -50
		}
		modifier = {
			desc = STRONG_SUZERAIN_REASON
			scope:recipient = {
	 			is_tributary = yes
	 			NOT = {
	 				is_tributary_of_suzerain_or_above = scope:actor
	 			}
	 			suzerain = {
	 				sub_realm_size >= 20
	 			}
 			}
 			add = -100
		}
		modifier = {
			desc = STRONG_SUZERAIN_REASON
			scope:recipient = {
	 			is_tributary = yes
	 			NOT = {
	 				is_tributary_of_suzerain_or_above = scope:actor
	 			}
	 			scope:recipient.suzerain = {
	 				current_military_strength >= scope:actor.current_military_strength
	 			}
 			}
 			add = -300
		}
		modifier = {
			desc = ALREADY_TRIBUTARY_REASON
			scope:recipient = {
	 			is_tributary_of_suzerain_or_above = scope:actor
 			}
 			add = 30
		}

		# PERKS
		modifier = { # Perk boost
			desc = offer_vassalization_true_ruler_perk_tt
			trigger = {
				scope:actor = { has_perk = true_ruler_perk }
			}
			add = 30
		}
		modifier = { # Education 5 boost
			desc = offer_vassalization_education_diplomacy_5_tt
			trigger = {
				scope:actor = { has_trait_with_flag = offer_vassalisation_25 }
			}
			add = 25
		}

		# EVENTS - temporary bonuses gained by events
		modifier = {
			desc = event_bonus_to_vassal_accept_tt
			trigger = {
				scope:actor = { has_character_modifier = event_bonus_to_vassal_accept }
			}
			add = 20
		}


		# STRUGGLES - bonus gained by successful Sway scheme during the Persian Struggle
		modifier = {
			desc = fp3_persian_struggle_previously_swayed_tt
			trigger = {
				scope:recipient = {
					has_opinion_modifier = {
						modifier = scheme_sway_and_compelled_to_submit_opinion
						target = scope:actor
					}
				}
			}
			add = 20
		}

		modifier = {
			desc = fp3_rekindler_of_iran_modifier_reason
			trigger = {
				AND = {
					scope:actor = { dynasty ?={ has_dynasty_modifier = fp3_rekindler_of_iran_modifier } }
					scope:recipient = { culture = { has_cultural_pillar = heritage_iranian } }
				}
			}
			add = 20
		}

		# OBEDIENCE
		modifier = {
			desc = obedient_interaction_reason
			trigger = {
				is_obedient_to = scope:actor
			}
			add = 100
		}

		modifier = { # Cultural Acceptance
			add = offer_vassalage_acceptance_value
			desc = cultural_acceptance_interaction_reason
			trigger = {
				scope:actor = {
					NOR = {
						has_same_culture_as = scope:recipient
						government_has_flag = government_is_nomadic # Nomads do not care about Culture
						has_trait = nomadic_philosophy
					}
					culture = {
						cultural_acceptance = { target = scope:recipient.culture value <= 90 }
					}
				}
			}
		}

		# MAIN
		modifier = { #Different faith, no pluralism.
			desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
			trigger = {
				scope:actor = {
					NOR = { # Nomads do not care about Faith
						government_has_flag = government_is_nomadic
						has_trait = nomadic_philosophy
					}
				}
				scope:recipient = {
					NOR = { #Of two different faiths AND the potential vassal's faith is not pluralistic.
						faith = scope:actor.faith
						faith = { has_doctrine = doctrine_pluralism_pluralistic }
					}
				}
			}
			add = {
				value = -40
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_hostile_level
							}
						}
					}
					add = -40
				}
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_evil_level
							}
						}
					}
					add = -40
				}
			}
		}

		modifier = { #Different faith, pluralism.
			desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
			trigger = {
				scope:actor = {
					NOR = { # Nomads do not care about Faith
						government_has_flag = government_is_nomadic
						has_trait = nomadic_philosophy
					}
				}
				scope:recipient = {
					NOT = {
						faith = scope:actor.faith
					}
					NOT = {
						scope:actor.faith = { has_doctrine = doctrine_pluralism_pluralistic }
					}
					faith = { has_doctrine = doctrine_pluralism_pluralistic }
				}
			}
			add = {
				value = -20
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_hostile_level
							}
						}
					}
					add = -20
				}
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_evil_level
							}
						}
					}
					add = -20
				}
			}
		}

		modifier = { #Different faith, both have pluralism.
			desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
			trigger = {
				scope:actor = {
					NOR = { # Nomads do not care about Faith
						government_has_flag = government_is_nomadic
						has_trait = nomadic_philosophy
					}
				}
				scope:recipient = {
					NOT = {
						faith = scope:actor.faith
					}
					scope:actor.faith = { has_doctrine = doctrine_pluralism_pluralistic }
					faith = { has_doctrine = doctrine_pluralism_pluralistic }
				}
			}
			add = {
				value = -10
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_hostile_level
							}
						}
					}
					add = -10
				}
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_evil_level
							}
						}
					}
					add = -10
				}
			}
		}
		modifier = { #I am a King!
			desc = offer_vassalization_interaction_aibehavior_hightier_tt
			trigger = {
				scope:recipient = { highest_held_title_tier = tier_kingdom }
			}
			add = {
				value = -50
				if = {
					limit = {
						scope:recipient = {
							OR = {
								government_has_flag = government_is_republic
								government_has_flag = government_is_theocracy
							}
						}
					}
					add = -50
				}
				if = {
					limit = {
						scope:recipient.sub_realm_size >= 5
					}
					add = -50
				}
				if = {
					limit = {
						scope:recipient.sub_realm_size >= 10
					}
					add = -100
				}
				if = {
					limit = {
						scope:recipient.sub_realm_size >= 20
					}
					add = -100
				}
				if = {
					limit = {
						scope:actor = {
							is_ai = yes
						}
					}
					add = -10000
				}
			}
		}
		modifier = { #I am an Emperor!!!
			desc = offer_vassalization_interaction_aibehavior_hightier_tt
			trigger = {
				scope:recipient = { highest_held_title_tier >= tier_empire }
			}
			add = {
				value = -200
				if = {
					limit = {
						scope:recipient = {
							OR = {
								government_has_flag = government_is_republic
								government_has_flag = government_is_theocracy
							}
						}
					}
					add = -100
				}
				if = {
					limit = {
						scope:recipient.sub_realm_size >= 10
					}
					add = -100
				}
				if = {
					limit = {
						scope:recipient.sub_realm_size >= 20
					}
					add = -200
				}
				if = {
					limit = {
						scope:recipient.sub_realm_size >= 40
					}
					add = -200
				}
				if = {
					limit = {
						scope:actor = {
							is_ai = yes
						}
					}
					add = -10000
				}
			}
		}
		modifier = { #I fought an independence war against you.
			desc = offer_vassalization_interaction_aibehavior_independence_war_tt
			trigger = {
				scope:recipient = {
					exists = var:independence_war_former_liege
					var:independence_war_former_liege = scope:actor
				}
			}
			add = -300
		}
		modifier = { # We are both nomadic
			desc = interaction_nonnomad_vs_nomad
			trigger = {
				scope:actor = {
					government_has_flag = government_is_nomadic
				}
				scope:recipient = {
					government_has_flag = government_is_nomadic
				}
			}
			add = 25
		}
		modifier = { # Isolationist tradition
			desc = isolationist_reason
			trigger = {
				NOT = {
					scope:actor.culture = scope:recipient.culture
				}
				scope:recipient.culture = {
					has_cultural_tradition = tradition_isolationist
				}
			}
			add = -25
		}
		modifier = { #Bankrupt
			desc = bankrupt_reason
			trigger = {
				scope:actor.gold <= -1
			}
			add = -100
		}
		modifier = { #Wide difference in rank
			desc = offer_vassalization_interaction_aibehavior_widetitletier_tt
			trigger = {
				scope:actor = {
					tier_difference = {
						target = scope:recipient
						value > 2
					}
				}
			}
			add = 40
		}
		modifier = { # Allied
			desc = offer_vassalization_interaction_aibehavior_allied_tt
			trigger = {
				scope:recipient = {
					is_allied_to = scope:actor
				}
			}
			add = 25
		}
		modifier = { # Is the Rightful Liege of recipient
			desc = offer_vassalization_interaction_aibehavior_rightfulliegetitleholder_tt
			trigger = {
				scope:actor = { is_rightful_liege_of = scope:recipient }
			}
			add = 50
		}
		modifier = { # Encircled
			desc = offer_vassalization_interaction_aibehavior_encircled_tt
			trigger = {
				scope:recipient = {
					NOT = {
						any_neighboring_top_liege_realm_owner = {
							NOT = {
								this = scope:actor
							}
						}
					}
					NOT = {
						any_realm_county = {
							is_coastal_county = yes
						}
					}
				}
			}
			add = 50
		}
		modifier = { #Distant Realm — Overseas Connection
			desc = offer_vassalization_interaction_aibehavior_distantrealm_tt
			trigger = {
				scope:actor = {
					character_is_realm_neighbor = scope:recipient
					NOT = { #Ibiza should want to be a vassal of Mallorca, etc.
						character_is_land_realm_neighbor = scope:recipient
						scope:actor = { is_rightful_liege_of = scope:recipient }
					}
				}
			}
			add = -50
		}
		modifier = { #Distant Realm — No Connection
			desc = offer_vassalization_interaction_aibehavior_distantrealm_tt
			trigger = {
				scope:actor = {
					NOT = {
						character_is_realm_neighbor = scope:recipient
					}
				}
				scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value < 200000 } }
			}
			add = -100
		}
		modifier = { #Remote Realm.
			desc = offer_vassalization_interaction_aibehavior_remoterealm_tt
			trigger = {
				scope:actor = {
					NOT = {
						character_is_realm_neighbor = scope:recipient
					}
				}
				scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value >= 200000 } }
			}
			add = -200
		}
		modifier = {
			desc = offer_vassalization_interaction_aibehavior_power_tt_submission_or_ruin
	  	  	add = {
				value = 1
				subtract = {
					value = scope:recipient.max_military_strength # Intended for recipient to use max, to avoid having vassalizations become too easy for weakened realms
					divide = { value = scope:actor.current_military_strength min = 1 }
				}
				multiply = 100
				ceiling = yes
	  		}
		}
		modifier = {
			desc = offer_vassalization_interaction_aibehavior_vassal_opinion_tt
			trigger = {
				scope:actor = {
				number_of_powerful_vassals >= 1
				}
			}

	  	  	add = {
				value = 0
				scope:actor = {
					every_powerful_vassal = {
						if = {
							limit = {
								save_temporary_opinion_value_as = {
									name = vassal_opinion
									target = scope:actor
								}
							}
							add = scope:vassal_opinion
						}
					}

					if = {
						limit = {
							number_of_powerful_vassals > 0
						}
						divide = number_of_powerful_vassals
					}
					else = {
						divide = 10
					}
				}

				divide = 10
	  		}
		}

		# MINOR
		modifier = { #Friend modifier.
			desc = offer_vassalization_interaction_aibehavior_friend_tt
			trigger = {
				scope:recipient = {
					has_relation_friend = scope:actor
					NOT = { has_relation_best_friend = scope:actor }
				}
			}
			add = 20
		}
		modifier = { #Best Friend modifier.
			desc = offer_vassalization_interaction_aibehavior_best_friend_tt
			trigger = {
				scope:recipient = {
					has_relation_best_friend = scope:actor
				}
			}
			add = 50
		}
		modifier = { #Lover modifier.
			desc = interaction_lover
			trigger = {
				scope:recipient = {
					has_relation_lover = scope:actor
					NOT = { has_relation_soulmate = scope:actor }
				}
			}
			add = 20
		}
		modifier = { #Soulmate modifier.
			desc = interaction_soulmate
			trigger = {
				scope:recipient = {
					has_relation_soulmate = scope:actor
				}
			}
			add = 50
		}
		modifier = { #Rivalry modifier.
			desc = offer_vassalization_interaction_aibehavior_rival_tt
			trigger = {
				scope:recipient = {
					has_relation_rival = scope:actor
					NOT = { has_relation_nemesis = scope:actor }
				}
			}
			add = -200
		}
		modifier = { #Nemesis modifier.
			desc = offer_vassalization_interaction_aibehavior_nemesis_tt
			trigger = {
				scope:recipient = {
					has_relation_nemesis = scope:actor
				}
			}
			add = -2000
		}
		modifier = { #Same Dynasty modifier.
			desc = offer_vassalization_interaction_aibehavior_dynasty_tt
			trigger = {
				scope:recipient = {
					dynasty = scope:actor.dynasty
				}
			}
			add = 25
		}

		modifier = { # Same language
			add = 5
			desc = speaks_same_language_interaction_reason
			trigger = {
				scope:actor = {
					knows_language_of_culture = scope:recipient.culture
				}
			}
		}

		modifier = { # Iberian Struggle, less likely for outsiders to vassalize inside
			add = -35
			desc = iberian_struggle_reason_reason
			trigger = {
				scope:actor = {
					NOT = {
						any_character_struggle = { is_struggle_type = iberian_struggle }
					}
				}
				scope:recipient = {
					any_character_struggle = { is_struggle_type = iberian_struggle }
				}
			}
		}

		modifier = { #Ageism modifier vs kids.
			desc = offer_vassalization_interaction_aibehavior_child_tt
			trigger = {
				scope:actor = {
					age < 12
				}
				scope:recipient = {
					age > 16
				}
			}
			add = -5
		}
		modifier = { #Illegitimacy modifier.
			desc = offer_vassalization_interaction_aibehavior_illegitimate_tt
			trigger = {
				scope:actor = {
					OR = {
						AND = {
							has_trait = bastard
							scope:recipient = {
								faith = { NOT = { has_doctrine = doctrine_bastardry_none } }
							}
						}
						has_trait = denounced
						has_trait = disinherited
					}
				}
			}
			add = -10
		}

		modifier = { #Claimant modifier.
			desc = offer_vassalization_interaction_aibehavior_claimant_tt
			trigger = {
				scope:actor.primary_title = {
					scope:recipient = {
						has_claim_on = prev
					}
				}
			}
			add = -50
		}

		modifier = { # Ambitious
			desc = TAKE_THE_VOWS_AMBITIOUS
			trigger = {
				scope:recipient = {
					has_trait = ambitious
				}
			}
			add = -30
		}
		modifier = { # Brave
			desc = INTERACTION_BRAVE
			trigger = {
				scope:recipient = {
					has_trait = brave
				}
			}
			add = -30
		}
		modifier = { # wrathful
			desc = INTERACTION_WRATHFUL
			trigger = {
				scope:recipient = {
					has_trait = wrathful
				}
			}
			add = -40
		}
		modifier = { # vengeful
			desc = INTERACTION_VENGEFUL
			trigger = {
				scope:recipient = {
					has_trait = vengeful
				}
			}
			add = -20
		}
		modifier = { # peasant leader
			desc = INTERACTION_PEASANT_LEADER
			trigger = {
				scope:recipient = {
					has_trait = peasant_leader
				}
			}
			add = -40
		}
		modifier = { # populist leader
			desc = INTERACTION_POPULIST_LEADER
			trigger = {
				scope:recipient = {
					has_trait = populist_leader
				}
			}
			add = -100
		}
		modifier = { #martial leader
			desc = INTERACTION_MARTIAL_EDUCATION
			trigger = {
				scope:recipient = {
					OR = {
						has_education_martial_trigger = yes
						has_martial_lifestyle_trait_trigger = yes
					}
				}
			}
			add = -10
		}
		modifier = { # Arrogant
			desc = INTERACTION_ARROGANT
			trigger = {
				scope:recipient = {
					has_trait = arrogant
				}
			}
			add = -60
		}

		modifier = { # Fickle
			desc = INTERACTION_FICKLE
			trigger = {
				scope:recipient = {
					has_trait = fickle
				}
			}
			add = -10
		}

		modifier = { # Stubborn
			desc = INTERACTION_STUBBORN
			trigger = {
				scope:recipient = {
					has_trait = stubborn
				}
			}
			add = -180
		}

		modifier = { # Trusting
			desc = TAKE_THE_VOWS_TRUSTING
			trigger = {
				scope:recipient = {
					has_trait = trusting
				}
			}
			add = 20
		}

		modifier = { # Humble
			desc = INTERACTION_HUMBLE
			trigger = {
				scope:recipient = {
					has_trait = humble
				}
			}
			add = 20
		}

		modifier = { # Content
			desc = INTERACTION_CONTENT
			trigger = {
				scope:recipient = {
					has_trait = content
				}
			}
			add = 20
		}

		modifier = { # Craven
			desc = INTERACTION_CRAVEN
			trigger = {
				scope:recipient = {
					has_trait = craven
				}
			}
			add = 100
		}

		modifier = { # FP3 modifier.
			desc = GENERIC_YOUR_PIETY_LEVEL_MODIFIER
			trigger = { scope:actor = { any_character_struggle = { has_struggle_phase_parameter = piety_level_affects_vassalage_acceptance } } }
			add = {
				value = {
					value = scope:actor.piety_level
					subtract = low_piety_level
				}
				multiply = 10
			}
		}

		# OPINION INFLUENCE
		modifier = {
			add = intimidated_reason_value
			scope:recipient = {
				has_dread_level_towards = {
					target = scope:actor
					level = 1
				}
			}
			desc = INTIMIDATED_REASON
		}
		modifier = {
			add = cowed_reason_value
			scope:recipient = {
				has_dread_level_towards = {
					target = scope:actor
					level = 2
				}
			}
			desc = COWED_REASON
		}
		opinion_modifier = { #Compare Opinion modifier - Clans care more about opinion
			trigger = {
				scope:actor = {
					government_has_flag = government_is_clan
				}
				scope:recipient = {
					government_has_flag = government_is_clan
				}
			}
			who = scope:recipient
			opinion_target = scope:actor
			multiplier = 0.7
		}
		opinion_modifier = { #Compare Opinion modifier.
			trigger = {
				OR = {
					scope:actor = {
						NOT = { government_has_flag = government_is_clan }
					}
					scope:recipient = {
						NOT = { government_has_flag = government_is_clan }
					}
				}
			}
			who = scope:recipient
			opinion_target = scope:actor
			multiplier = 0.35
		}

		# DIPLOMATIC COURT GRANDEUR BONUS
		modifier = {
			trigger = {
				scope:actor = {
					has_royal_court = yes
					has_dlc_feature = royal_court
					has_court_type = court_diplomatic
					court_grandeur_current_level >= 1
				}
			}
			add = {
				value = scope:actor.court_grandeur_current
				if = {
					limit = { # Reduce the bonus if you are below your expected level
						scope:actor = {
							court_grandeur_current_level < court_grandeur_minimum_expected_level
						}
					}
					multiply = 0.15
				}
				else = {
					multiply = 0.3
				}
			}
			desc = DIPLOMATIC_COURT_ACCEPTANCE_INCREASE_REASON
		}

		# CONTRACT OPTIONS
		modifier = {
			add = 20
			scope:actor = {
				faith = {
					has_doctrine = doctrine_pluralism_pluralistic
				}
			}
			scope:recipient = {
				OR = {
					government_has_flag = government_is_feudal
					government_has_flag = government_is_clan
				}
			}
			desc = CONTRACT_RELIGIOUS_EXEMPTION_REASON
		}
		modifier = {
			add = 30
			scope:low_obligations = yes
			desc = CONTRACT_MERCIFUL_KHAN_REASON
		}
		modifier = {
			add = -10
			scope:send_siege_weapons = yes
			desc = CONTRACT_SEND_SIEGE_WEAPONS_REASON
		}
		modifier = {
			add = -50
			scope:recipient = {
				NOT = {
					government_has_flag = government_is_true_herder
				}
			}
			scope:send_tribute = yes
			desc = CONTRACT_SEND_TRIBUTE_REASON
		}

		# INSPECTION BONUSES
		modifier = {
			desc = "INSPECTION_REASON"
			add = 5
			scope:recipient = {
				has_variable_list = lesser_inspection_bonus
				is_target_in_variable_list = {
					name = lesser_inspection_bonus
					target = scope:actor
				}
			}
		}
		modifier = {
			desc = "INSPECTION_REASON"
			add = 10
			scope:recipient = {
				has_variable_list = inspection_bonus
				is_target_in_variable_list = {
					name = inspection_bonus
					target = scope:actor
				}
			}
		}
		modifier = {
			desc = "INSPECTION_REASON_REWARD"
			add = 10
			scope:recipient = {
				has_variable_list = inspection_reward
				is_target_in_variable_list = {
					name = inspection_reward
					target = scope:actor
				}
			}
		}
		modifier = {
			desc = "INSPECTION_REASON_REWARD_FOCUSED"
			add = 10
			scope:actor = { has_character_modifier = inspection_reward_focused_vassal_acceptance }
		}

		# LOW LEGITIMACY
		modifier = {
			desc = "LOW_LEGITIMACY_REASON"
			add = -10
			scope:actor = {
				has_legitimacy_flag = reduced_vassalization_acceptance
			}
		}
		modifier = {
			desc = "LOW_LEGITIMACY_REASON"
			add = -20
			scope:actor = {
				has_legitimacy_flag = very_reduced_vassalization_acceptance
			}
		}
		modifier = {
			desc = "LOW_LEGITIMACY_REASON"
			add = -50
			scope:actor = {
				has_legitimacy_flag = massively_reduced_vassalization_acceptance
			}
		}

		# HIGH LEGITIMACY
		modifier = {
			desc = "HIGH_LEGITIMACY_REASON"
			add = 25
			scope:actor = {
				has_legitimacy_flag = increased_vassalization_acceptance
			}
		}
		modifier = {
			desc = "HIGH_LEGITIMACY_REASON"
			add = 50
			scope:actor = {
				has_legitimacy_flag = very_increased_vassalization_acceptance
			}
		}
		modifier = {
			desc = "HIGH_LEGITIMACY_REASON"
			add = 75
			scope:actor = {
				has_legitimacy_flag = extra_increased_vassalization_acceptance
			}
		}

		# INFLUENCE
		modifier = {
			add = 25
			scope:influence_send_option = yes
			desc = INFLUENCE_INTERACTION_ACCEPTANCE_SEND_OPTION
		}

		#HISTORICALLY ADMIN PEOPLES WANT TO BE ADMIN
		modifier = {
			add = 30
			scope:actor = {
				government_has_flag = government_is_administrative
			}
			scope:recipient = {
				culture = {
					OR = {
						this = culture:greek
						any_parent_culture_or_above = {
							this = culture:greek
						}
						this = culture:han
						any_parent_culture_or_above = {
							this = culture:han
						}
					}
				}
			}

			desc = "HISTORICAL_ADMIN_REASON"
		}

		modifier = { # AI-only weights, keep the pope from vassalizing too fast
			trigger = {
				exists = faith:catholic.religious_head
				faith:catholic.religious_head = scope:actor
				scope:actor = { is_ai = yes }
			}
			add = -50
		}

		modifier = {
			trigger = {
				scope:actor = {
					has_variable = severed_head_vassalization
					var:severed_head_vassalization = {
						this = scope:recipient
					}
				}
			}
			add = 200
			desc = COWED_BY_SEVERED_HEAD_MODIFIER
		}

		modifier = { #You're distracted by another war
			desc = IS_AT_WAR_REASON
			trigger = {
				scope:actor = {
					is_at_war = yes
				}
			}
			add = -20
		}
		modifier = { #You're distracted by multiple wars
			desc = HAS_MULTIPLE_WARS_REASON
			trigger = {
				scope:actor = {
					any_character_war = {
						count >= 2
						exists = this
					}
				}
			}
			add = {
				value = 0
				scope:actor = {
					every_character_war = {
						add = -15
					}
				}
			}
		}
		modifier = { #You have waged terrifying wars of devastation...
			desc = WAGED_KHANS_TERROR_WARS_REASON
			trigger = {
				scope:actor = {
					has_variable = gok_terror_war_value
				}
			}
			add = scope:actor.var:gok_terror_war_value
		}
		#Swift initial spread with nomads for mongol invasion
		modifier = {
			scope:actor = {
				is_ai = yes
				realm_size < 50
				any_owned_story = {
					story_type = story_mongol_invasion
				}
			}
			scope:recipient = {
				is_ai = yes
				government_has_flag = government_is_nomadic
				realm_size < 10
				highest_held_title_tier < tier_kingdom
			}
			add = 100
		}
		modifier = { # Pacing needed for AI genghis
			trigger = {
				scope:actor = {
					is_ai = yes
				}
				scope:recipient = {
					is_ai = yes
					ai_boldness >= 0
					OR = {
						realm_size > 10
						is_confederation_member = yes
					}
				}
				#During genghis' initial expanding in Mongolia, nomads are exempt from this malus
				NAND = {
					scope:recipient = {
						government_has_flag = government_is_nomadic
						highest_held_title_tier < tier_kingdom
					}
					scope:actor = {
						realm_size < 100
						any_owned_story = {
							story_type = story_mongol_invasion
						}
					}
				}
			}
			add = -1000
		}
	}

	# Low starting obligations
	send_option = {
		is_shown = {
			scope:recipient = {
				NOT = {
					government_has_flag = government_is_true_herder
				}
			}
		}
		flag = low_obligations
		localization = lenient_obligations
	}

	#Normal obligations for normies
	send_option = {
		is_shown = {
			scope:recipient = {
				OR = {
					highest_held_title_tier < tier_duchy
					government_has_flag = government_is_true_herder
				}
			}
		}
		starts_enabled = { always = yes	}
		flag = normal_obligations
		localization = gok_normal_obligations
	}
	#Demand army
	send_option = {
		is_shown = {
			scope:recipient = {
				NOT = {
					government_has_flag = government_is_true_herder
				}
				highest_held_title_tier >= tier_duchy
			}
		}
		flag = send_army
		localization = send_army
		starts_enabled = {
			scope:recipient = {
				mpo_gok_auto_cultural_maa_trigger = yes
				highest_held_title_tier >= tier_duchy
			}
		}
	}
	#Demand siege weapons
	send_option = {
		is_shown = {
			scope:recipient = {
				NOR = {
					government_has_flag = government_is_true_herder
					government_has_flag = government_is_tribal
					government_has_flag = government_is_nomadic
				}
				highest_held_title_tier >= tier_duchy
			}
		}
		flag = send_siege_weapons
		localization = send_siege_weapons
		starts_enabled = {
			scope:recipient = {
				mpo_gok_auto_cultural_maa_trigger = no
				highest_held_title_tier >= tier_duchy
			}
		}
	}

	#Demand immediate tribute
	send_option = {
		is_shown = {
			scope:recipient = {
				NOT = {
					government_has_flag = government_is_true_herder
				}
			}
		}
		flag = send_tribute
		localization = send_tribute
	}

	send_option = { # EP3 Influence
		is_shown = {
			scope:actor = {
				government_has_flag = government_has_influence
			}
		}
		is_valid = {
			scope:actor = { influence >= medium_influence_value }
		}
		flag = influence_send_option
		localization = TRADE_INFLUENCE_FOR_BETTER_AI_ACCEPTANCE
	}

	send_options_exclusive = yes

	on_accept = {
		scope:actor = {
			save_scope_as = gok
		}
		mpo_gok_offer_submission_effect = yes

		scope:recipient = {
			add_character_flag = {
				flag = accepted_gok_submission
				years = 3
			}
		}

		scope:actor = {
			#If recipient isn't a big deal, fire a hidden event that just creates a feed notification (to minimize khan clicking)
			if = {
				limit = {
					scope:recipient = {
						NOR = {
							highest_held_title_tier >= tier_kingdom
							sub_realm_size >= 10
						}
					}
				}
				trigger_event = mpo_greatest_of_khans.0020
			}
			else = {
				trigger_event = mpo_greatest_of_khans.0021
			}

			## Remove bonus, it's been used
			if = {
				limit = { has_character_modifier = event_bonus_to_vassal_accept }
				remove_character_modifier = event_bonus_to_vassal_accept
			}

			if = { # FP3
				limit = { any_character_struggle = { has_struggle_phase_parameter = offer_vassalization_removes_disloyalty } }
				scope:recipient = { remove_trait = disloyal }
			}
		}
	}

	on_decline = {
		scope:recipient = {
			save_scope_as = gok_victim
			if = {
				limit = {
					is_tributary_of = scope:actor
				}
				end_tributary = yes
			}
		}
		scope:actor = {
			show_as_tooltip = {
				mpo_gok_offer_submission_refusal_effect = yes
			}

			trigger_event = mpo_greatest_of_khans.0022
		}
	}

	ai_potential = {
		any_owned_story = {
			OR = {
				story_type = story_greatest_of_khans
				story_type = story_mongol_invasion
			}
		}
		is_independent_ruler = yes
		#Not defending or losing an attacking war
		NOT = {
			any_character_war = {
				OR = {
					AND = {
						any_war_attacker = {
							this = root
						}
						attacker_war_score < 0
					}
					any_war_defender = {
						this = root
					}
				}
			}
		}
		#Already engaged in three wars
		any_character_war = {
			count >= 3
			exists = this
		}
	}

	ai_will_do = {
		base = 100

		# AI prefers to receive higher obligations from their vassals when possible.
		modifier = {
			factor = 2
			scope:low_obligations = yes
		}

		modifier = {
			factor = 3
			scope:normal_obligations = yes
		}

		modifier = {
			factor = 4
			scope:send_army = yes
		}
		modifier = {
			factor = 4
			scope:send_siege_weapons = yes
		}
		modifier = {
			factor = 5
			scope:send_tribute = yes
		}
		modifier = {
			factor = 3
			scope:recipient = {
				sub_realm_size < 3
			}
		}

		#really want to get of little realms we encircle
		modifier = {
			factor = 10
			scope:recipient = {
				realm_size <= 20
				NOT = {
					any_neighboring_top_liege_realm_owner = {
						NOT = {
							this = scope:actor
						}
					}
				}
			}
		}
		#Would rather just destroy someone they hate or distrust
		modifier = {
			factor = 0
			OR = {
				has_relation_rival = scope:recipient
				opinion = {
					target = scope:recipient
					value <= -90
				}
				scope:recipient = {
					has_trait = disloyal
				}
				scope:recipient = {
					has_trait = conqueror
				}
				scope:recipient = {
					has_trait = ambitious
				}
				scope:recipient = {
					ai_greed >= medium_positive_ai_value
					ai_honor <= medium_negative_ai_value
				}
			}
		}
		#Should only attack China when very strong
		modifier = {
			factor = 0.1
			scope:recipient = {
				primary_title = title:h_china
				current_military_strength > scope:actor.half_current_military_strength
			}
		}
		modifier = {
			factor = 0
			scope:recipient = {
				current_military_strength > 0
				scope:actor.current_military_strength > 0
				current_military_strength > scope:actor.current_military_strength
			}
		}
	}
}

### Negotiate Obedience
mpo_negotiate_obedience_interaction = {
	category = interaction_category_vassal
	icon = demand_obedience
	desc = mpo_negotiate_obedience_interaction_desc
	interface_priority = 80
	common_interaction = yes

	ai_frequency_by_tier = {
		barony = 0
		county = 24
		duchy = 6
		kingdom = 6
		empire = 6
		hegemony = 6
	}
	popup_on_receive = yes
	pause_on_receive = yes

	is_shown = {
		scope:actor = {
			government_allows = obedience
		}
		scope:recipient = {
			is_ai = yes
			obedience_target ?= scope:actor
			is_obedient = no
		}
	}

	cost = {
		prestige = {
			value = medium_prestige_value
			if = {
				limit = {
					scope:actor = {
						OR = {
							has_realm_law = nomadic_authority_2
							has_realm_law = meritocratic_bureaucracy_1
						}
					}
				}
				multiply = 1.25
			}
			else_if = {
				limit = {
					scope:actor = {
						OR = {
							has_realm_law = nomadic_authority_3
							has_realm_law = meritocratic_bureaucracy_2
						}
					}
				}
				multiply = 1.5
			}
			else_if = {
				limit = {
					scope:actor = {
						OR = {
							has_realm_law = nomadic_authority_4
							has_realm_law = meritocratic_bureaucracy_3
						}
					}
				}
				multiply = 1.75
			}
			else_if = {
				limit = {
					scope:actor = { has_realm_law = nomadic_authority_5 }
				}
				multiply = 2
			}
		}
	}

	is_valid_showing_failures_only = {
		scope:actor = {
			is_imprisoned = no
			NOT = {
				is_at_war_with = scope:recipient
			}
		}
		trigger_if = {
			limit = {
				scope:recipient = { is_landed = yes is_independent_ruler = no }
			}
			scope:recipient = { is_vassal_or_below_of = scope:actor }
		}
		trigger_else_if = {
			limit = {
				scope:recipient = { is_independent_ruler = yes }
			}
			scope:actor = {
				custom_tooltip = {
					text = mpo_interaction_not_neighbouring_tt
					any_land_neighboring_realm_with_tributaries_owner = {
						this = scope:recipient
					}
				}
			}
		}
		trigger_else = {}
	}

	ai_potential = {
		government_allows = obedience
		primary_title.tier >= tier_duchy
		prestige >= major_prestige_value
	}

	send_option = {
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		flag = hook
		localization = GENERIC_SPEND_A_HOOK
	}

	send_option = {
		is_valid = {
			scope:actor = {
				gold >= medium_gold_value
			}
		}
		flag = gold
		localization = OFFER_GOLD_FOR_BETTER_AI_ACCEPTANCE
	}

	send_option = {
		is_valid = {
			scope:actor = {
				trigger_if = {
					limit = { government_has_flag = government_is_nomadic }
					domicile ?= {
						herd >= medium_herd_value
					}
				}
				trigger_else = {
					government_has_flag = government_is_nomadic
				}
			}
		}
		flag = herd
		localization = OFFER_HERD_FOR_BETTER_AI_ACCEPTANCE
	}

	send_options_exclusive = no

	ai_accept = {
		base = -95
		modifier = {
			trigger = {
				scope:hook ?= yes
			}
			add = 100
			desc = MIGRATION_HOOK_USED
		}
		modifier = {
			trigger = {
				scope:gold ?= yes
			}
			add = 100
			desc = TRADE_GOLD_FOR_BETTER_AI_ACCEPTANCE_TT
		}
		modifier = {
			trigger = {
				scope:herd ?= yes
			}
			add = 100
			desc = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_TT
		}
		modifier = {
			add = 5
			scope:actor = {
				OR = {
					has_realm_law = nomadic_authority_2
					has_realm_law = meritocratic_bureaucracy_1
				}
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
		}
		modifier = {
			add = 10
			scope:actor = {
				OR = {
					has_realm_law = nomadic_authority_3
					has_realm_law = meritocratic_bureaucracy_2
				}
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
		}
		modifier = {
			add = 20
			scope:actor = {
				OR = {
					has_realm_law = nomadic_authority_4
					has_realm_law = meritocratic_bureaucracy_3
				}
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
		}
		modifier = {
			add = 100
			scope:actor = { has_realm_law = nomadic_authority_5 }
			desc = DEMAND_OBEDIENCE_INTERACTION_DOMINANCE_ACCEPTANCE
		}
		modifier = {
			add = -30
			scope:actor = { legitimacy_level = 1 }
			desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
		}
		modifier = {
			add = -20
			scope:actor = { legitimacy_level = 2 }
			desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
		}
		modifier = {
			add = 5
			scope:actor = { legitimacy_level = 3 }
			desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
		}
		modifier = {
			add = 15
			scope:actor = { legitimacy_level = 4 }
			desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
		}
		modifier = {
			add = 30
			scope:actor = { legitimacy_level = 5 }
			desc = DEMAND_OBEDIENCE_INTERACTION_LEGITIMACY_ACCEPTANCE
		}
		modifier = {
			add = {
				value = ai_boldness
				multiply = -1
				divide = 2
			}
			NOT = { ai_boldness = 0 }
			desc = ARTIFACT_BOLDNESS_REASON
		}
		modifier = {
			add = {
				value = ai_greed
				multiply = -1
				divide = 2
			}
			ai_greed > 0
			desc = ARTIFACT_GREED_REASON
		}
		modifier = {
			add = {
				value = ai_honor
				divide = 4
			}
			NOT = { ai_honor = 0 }
			desc = ARTIFACT_HONOR_REASON
		}
		modifier = {
			add = -20
			scope:recipient = {
				has_trait = brave
			}
			desc = BLACKMAIL_INTERACTION_BRAVE_ACCEPTANCE
		}
		modifier = {
			add = -50
			scope:recipient = {
				has_trait = arrogant
			}
			desc = BLACKMAIL_INTERACTION_ARROGANT_ACCEPTANCE
		}
		modifier = {
			add = 25
			scope:recipient = {
				has_trait = trusting
			}
			desc = BLACKMAIL_INTERACTION_TRUSTING_ACCEPTANCE
		}
		modifier = {
			add = -50
			scope:recipient = {
				has_trait = disloyal
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_DISLOYAL_ACCEPTANCE
		}
		modifier = {
			add = -500
			scope:actor = { government_has_flag = government_is_nomadic }
			scope:recipient = {
				exists = domicile
				domicile.herd >= 100
				domicile.herd > scope:actor.domicile.herd
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_HERD_ACCEPTANCE
		}
		modifier = {
			add = -500
			scope:recipient = {
				current_military_strength >= 100
				current_military_strength > scope:actor.current_military_strength
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_MILITARY_MIGHT_ACCEPTANCE
		}
		modifier = {
			add = 10
			scope:recipient = {
				has_trait = craven
			}
			desc = BLACKMAIL_INTERACTION_CRAVEN_ACCEPTANCE
		}
		modifier = {
			add = 10
			scope:recipient = {
				has_trait = content
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_CONTENT_ACCEPTANCE
		}
		modifier = {
			add = 25
			any_character_situation = {
				any_situation_sub_region = {
					has_sub_region_phase_parameter = the_great_steppe_easier_obedience
					any_situation_sub_region_participant_group = {
						participant_group_type = nomad_rulers_capital
						participant_group_has_character = scope:actor
					}
				}
			}
			desc = DEMAND_OBEDIENCE_INTERACTION_ZUD_ACCEPTANCE
		}
		bp2_hostage_dread_modifier = yes
	}

	ai_will_do = {
		base = 0
		modifier = {
			scope:herd ?= yes
			add = -1
		}
		modifier = {
			scope:gold ?= yes
			add = -1
		}
		modifier = {
			scope:hook ?= yes
			add = -1
		}
		modifier = {
			scope:recipient = {
				is_kurultai_trigger = yes
			}
			add = 100
		}
	}

	cooldown_against_recipient = { years = 10 }

	ai_targets = { # They will try to get a Stable Succession
		ai_recipients = councillors
	}

	on_accept = {
		scope:actor = {
			send_interface_toast = {
				type = event_toast_effect_good
				title = mpo_demand_obedience_interaction_toast
				left_icon = scope:recipient
				# Pay what you need to pay first
				if = {
					limit = { scope:hook = yes }
					use_hook = scope:recipient
				}
				if = {
					limit = { scope:gold = yes }
					pay_short_term_gold = {
						target = scope:recipient
						gold = medium_gold_value
					}
				}
				if = {
					limit = { scope:herd = yes }
					if = {
						limit = { exists = scope:recipient.domicile }
						pay_herd = {
							target = scope:recipient
							value = domicile.medium_herd_value
						}
					}
					else = { # For a nice tooltip
						show_as_tooltip = {
							pay_herd = {
								target = scope:recipient
								value = domicile.medium_herd_value
							}
						}
						hidden_effect = { domicile = { change_herd = medium_herd_loss } }
					}
				}
				scope:recipient = {
					add_opinion = {
						target = scope:actor
						modifier = obedience_opinion
					}
				}
			}
		}
	}
}

join_confederation_interaction = {
	category = interaction_category_diplomacy
	icon = offer_confederation_interaction

	desc = join_confederation_interaction_desc

	#ai_targets = {
	#	ai_recipients = neighboring_rulers_including_tributary_borders
	#}
	#ai_frequency = 0
	popup_on_receive = yes
	pause_on_receive = yes

	common_interaction = yes

	cooldown_against_recipient = { years = 3 }

	is_shown = {
		scope:actor = {
			is_playable_character = yes
			is_independent_ruler = yes
			OR = {
				government_has_flag = government_is_nomadic
				government_has_flag = government_is_tribal
			}
			highest_held_title_tier <= tier_duchy
			is_landed = yes
			is_confederation_member = no
		}
		scope:recipient.confederation ?= { is_house_based = no }
	}

	is_valid_showing_failures_only = {
		scope:actor = {
			valid_confederation_member_trigger = { CHARACTER = scope:recipient }
			is_imprisoned = no
			is_at_war = no
			NOR = {
				has_trait = conqueror
				has_trait = greatest_of_khans
			}
		}
	}

	cost = {
		prestige = {
			value = 0
			if = {
				limit = { scope:prestige_send_option = yes }
				add = scope:actor.minor_prestige_value
				desc = PRESTIGE_INTERACTION_ACCEPTANCE_SEND_OPTION
			}
		}
	}

	greeting = positive
	notification_text = OFFER_CONFEDERATION_INTERACTION_NOTIFICATION

	ai_accept = {
		base = -50

		modifier = { # Cultural Acceptance
			add = offer_vassalage_acceptance_value
			desc = cultural_acceptance_interaction_reason
			trigger = {
				scope:actor = {
					NOT = { has_same_culture_as = scope:recipient }
					culture = {
						cultural_acceptance = { target = scope:recipient.culture value <= 90 }
					}
				}
			}
		}

		modifier = { #Different faith, no pluralism.
			desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
			trigger = {
				scope:recipient = {
					NOR = { #Of two different faiths AND the potential vassal's faith is not pluralistic.
						faith = scope:actor.faith
						faith = { has_doctrine = doctrine_pluralism_pluralistic }
						government_has_flag = government_is_nomadic
						government_has_flag = government_is_true_herder
					}
				}
			}
			add = {
				value = -30
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_hostile_level
							}
						}
					}
					add = -30
				}
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_evil_level
							}
						}
					}
					add = -30
				}
			}
		}

		modifier = { #Different faith, pluralism.
			desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
			trigger = {
				scope:recipient = {
					NOR = {
						faith = scope:actor.faith
						scope:actor.faith = { has_doctrine = doctrine_pluralism_pluralistic }
						government_has_flag = government_is_nomadic
						government_has_flag = government_is_true_herder
					}
					faith = { has_doctrine = doctrine_pluralism_pluralistic }
				}
			}
			add = {
				value = -15
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_hostile_level
							}
						}
					}
					add = -15
				}
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_evil_level
							}
						}
					}
					add = -15
				}
			}
		}

		modifier = { #Different faith, both have pluralism.
			desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
			trigger = {
				scope:recipient = {
					NOR = {
						faith = scope:actor.faith
						government_has_flag = government_is_nomadic
						government_has_flag = government_is_true_herder
					}
					scope:actor.faith = { has_doctrine = doctrine_pluralism_pluralistic }
					faith = { has_doctrine = doctrine_pluralism_pluralistic }
				}
			}
			add = {
				value = -10
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_hostile_level
							}
						}
					}
					add = -10
				}
				if = {
					limit = {
						scope:recipient.faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value >= faith_evil_level
							}
						}
					}
					add = -10
				}
			}
		}
		modifier = { #We just fought against each other.
			desc = offer_vassalization_interaction_aibehavior_recent_war_tt
			trigger = {
				scope:recipient = {
					any_truce_holder = {
						this = scope:actor
					}
				}
				# Ensure the truce wasn't purchased and is indeed from a war
				scope:actor = {
					NOT = {
						has_purchased_truce_with_char = { TARGET = scope:recipient }
					}
				}
			}
			add = -40
		}
		modifier = { #You fought an independence war against me
			desc = offer_confederation_independence_war_reverse_tt
			trigger = {
				scope:actor = {
					exists = var:independence_war_former_liege
					var:independence_war_former_liege = scope:recipient.top_liege
				}
			}
			add = -100
		}
		modifier = { #I fought an independence war against you.
			desc = offer_confederation_independence_war_tt
			trigger = {
				scope:recipient = {
					exists = var:independence_war_former_liege
					var:independence_war_former_liege = scope:actor.top_liege
				}
			}
			add = -50
		}
		modifier = { #Bankrupt
			desc = bankrupt_reason
			trigger = {
				scope:actor.gold <= -1
			}
			add = -30
		}
		modifier = { #Wide difference in rank
			desc = offer_vassalization_interaction_aibehavior_widetitletier_tt
			trigger = {
				scope:actor = {
					tier_difference = {
						target = scope:recipient
						value > 1
					}
				}
			}
			add = 10
		}
		modifier = { # Allied
			desc = offer_vassalization_interaction_aibehavior_allied_tt
			trigger = {
				scope:recipient = {
					is_allied_to = scope:actor
				}
			}
			add = 50
		}
		modifier = { # Is the Rightful Liege of actor
			desc = offer_vassalization_interaction_aibehavior_rightfulvassaltitleholder_tt
			trigger = {
				scope:recipient = { is_rightful_liege_of = scope:actor }
			}
			add = -75
		}
		modifier = { # Is the Rightful Liege of recipient
			desc = offer_vassalization_interaction_aibehavior_rightfulliegetitleholder_tt
			trigger = {
				scope:actor = { is_rightful_liege_of = scope:recipient }
			}
			add = 20
		}
		modifier = { #No adjacency
			desc = offer_vassalization_interaction_aibehavior_unconnectedrealm_tt
			trigger = {
				scope:recipient = {
					NOT = {
						any_land_neighboring_realm_with_tributaries_owner = {
							OR = {
								this = scope:actor
								AND = {
									exists = scope:actor.confederation
									is_member_of_confederation = scope:actor.confederation
								}
								AND = {
									exists = scope:actor.confederation
									suzerain ?= {
										is_member_of_confederation = scope:actor.confederation
									}
								}
								suzerain ?= {
									this = scope:actor
								}
							}
						}
					}
				}
				scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value < 100000 } }
			}
			add = -25
		}
		modifier = { #Distant Realm
			desc = offer_vassalization_interaction_aibehavior_distantrealm_tt
			trigger = {
				scope:recipient = {
					NOT = {
						any_land_neighboring_realm_with_tributaries_owner = {
							OR = {
								this = scope:actor
								AND = {
									exists = scope:actor.confederation
									is_member_of_confederation = scope:actor.confederation
								}
								AND = {
									exists = scope:actor.confederation
									suzerain ?= {
										is_member_of_confederation = scope:actor.confederation
									}
								}
								suzerain ?= {
									this = scope:actor
								}
							}
						}
					}
				}
				scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value >= 100000 } }
			}
			add = -50
		}
		modifier = { #Remote Realm.
			desc = offer_vassalization_interaction_aibehavior_remoterealm_tt
			trigger = {
				scope:recipient = {
					NOT = {
						any_land_neighboring_realm_with_tributaries_owner = {
							OR = {
								this = scope:actor
								AND = {
									exists = scope:actor.confederation
									is_member_of_confederation = scope:actor.confederation
								}
								AND = {
									exists = scope:actor.confederation
									suzerain ?= {
										is_member_of_confederation = scope:actor.confederation
									}
								}
								suzerain ?= {
									this = scope:actor
								}
							}
						}
					}
				}
				scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value >= 200000 } }
			}
			add = -125
		}
		#Relative power
		modifier = {
			desc = offer_vassalization_interaction_aibehavior_power_tt
	  	  	add = {
				value = 1
				subtract = {
					value = scope:recipient.max_military_strength # Intended for recipient to use max, to avoid having vassalizations become too easy for weakened realms
					divide = { value = scope:actor.top_liege.current_military_strength min = 1 }
				}
				multiply = 5
				ceiling = yes
				min = -100
	  		}
		}

		#Powerful vassal opinion of you
		modifier = {
			desc = offer_confederation_offerer_vassal_opinion_tt
			trigger = {
				scope:actor.top_liege = {
				number_of_powerful_vassals >= 1
				}
			}

	  	  	add = {
				value = 0
				scope:actor.top_liege = {
					every_powerful_vassal = {
						if = {
							limit = {
								save_temporary_opinion_value_as = {
									name = vassal_opinion
									target = scope:actor.top_liege
								}
							}
							add = scope:vassal_opinion
						}
					}

					if = {
						limit = {
							number_of_powerful_vassals > 0
						}
						divide = number_of_powerful_vassals
					}
					else = {
						divide = 5
					}
				}

				divide = 10
	  		}
		}

		modifier = { #Friend modifier.
			desc = offer_vassalization_interaction_aibehavior_friend_tt
			trigger = {
				scope:recipient = {
					has_relation_friend = scope:actor
					NOT = { has_relation_best_friend = scope:actor }
				}
			}
			add = 25
		}
		modifier = { #Best Friend modifier.
			desc = offer_vassalization_interaction_aibehavior_best_friend_tt
			trigger = {
				scope:recipient = {
					has_relation_best_friend = scope:actor
				}
			}
			add = 50
		}
		modifier = { #Lover modifier.
			desc = interaction_lover
			trigger = {
				scope:recipient = {
					has_relation_lover = scope:actor
					NOT = { has_relation_soulmate = scope:actor }
				}
			}
			add = 25
		}
		modifier = { #Soulmate modifier.
			desc = interaction_soulmate
			trigger = {
				scope:recipient = {
					has_relation_soulmate = scope:actor
				}
			}
			add = 50
		}
		modifier = { #Rivalry modifier.
			desc = offer_vassalization_interaction_aibehavior_rival_tt
			trigger = {
				scope:recipient = {
					has_relation_rival = scope:actor
					NOT = { has_relation_nemesis = scope:actor }
				}
			}
			add = -200
		}
		modifier = { #Nemesis modifier.
			desc = offer_vassalization_interaction_aibehavior_nemesis_tt
			trigger = {
				scope:recipient = {
					has_relation_nemesis = scope:actor
				}
			}
			add = -1000
		}
		modifier = { #Rivalry modifier.
			desc = offer_vassalization_interaction_aibehavior_rival_confederation_tt
			trigger = {
				scope:recipient.confederation ?= {
					any_confederation_member = {
						NOT = { this = scope:recipient }
						has_relation_rival = scope:actor
						NOT = { has_relation_nemesis = scope:actor }
					}
				}
			}
			add = -100
		}
		modifier = { #Nemesis modifier.
			desc = offer_vassalization_interaction_aibehavior_nemesis_confederation_tt
			trigger = {
				scope:recipient.confederation ?= {
					any_confederation_member = {
						NOT = { this = scope:recipient }
						has_relation_nemesis = scope:actor
					}
				}
			}
			add = -500
		}

		modifier = { #Same Dynasty modifier.
			desc = offer_vassalization_interaction_aibehavior_dynasty_tt
			trigger = {
				exists = scope:actor.dynasty
				exists = scope:recipient.dynasty
				scope:recipient = {
					dynasty = scope:actor.dynasty
				}
			}
			add = 25
		}

		modifier = { #Same House modifier.
			desc = offer_vassalization_interaction_aibehavior_house_tt
			trigger = {
				exists = scope:actor.house
				exists = scope:recipient.house
				scope:recipient = {
					house = scope:actor.house
				}
			}
			add = 50
		}

		modifier = { # Same language
			add = 20
			desc = speaks_same_language_interaction_reason
			trigger = {
				scope:actor = {
					knows_language_of_culture = scope:recipient.culture
				}
			}
		}

		modifier = { #Ageism modifier vs kids.
			desc = offer_vassalization_interaction_aibehavior_child_tt
			trigger = {
				scope:actor = {
					age < 12
				}
				scope:recipient = {
					age > 16
				}
			}
			add = -5
		}

		modifier = { #Illegitimacy modifier.
			desc = confederation_offerer_illegitimate_tt
			trigger = {
				scope:actor.top_liege = {
					OR = {
						AND = {
							has_trait = bastard
							scope:recipient = {
								faith = { NOT = { has_doctrine = doctrine_bastardry_none } }
							}
						}
						has_trait = denounced
						has_trait = disinherited
					}
				}
			}
			add = -20
		}

		modifier = { #Claimant modifier.
			desc = confederation_interaction_aibehavior_claimant_tt
			trigger = {
				scope:actor = {
					any_held_title = {
						scope:recipient = {
							has_claim_on = prev
						}
					}
				}
			}
			add = -50
		}

		modifier = { # Ambitious
			desc = TAKE_THE_VOWS_AMBITIOUS
			trigger = {
				scope:recipient = {
					has_trait = ambitious
				}
			}
			add = -25
		}

		modifier = { # Paranoid
			desc = INTERACTION_PARANOID
			trigger = {
				scope:recipient = {
					has_trait = paranoid
				}
			}
			add = -25
		}

		modifier = { # Arrogant
			desc = INTERACTION_ARROGANT
			trigger = {
				scope:recipient = {
					has_trait = arrogant
				}
			}
			add = -25
		}

		modifier = { # Greedy
			desc = INTERACTION_GREEDY
			trigger = {
				scope:recipient = {
					has_trait = greedy
				}
			}
			add = -15
		}

		modifier = { # Trusting
			desc = TAKE_THE_VOWS_TRUSTING
			trigger = {
				scope:recipient = {
					has_trait = trusting
				}
			}
			add = 15
		}

		modifier = { # Craven
			desc = INTERACTION_CRAVEN
			trigger = {
				scope:recipient = {
					has_trait = craven
				}
			}
			add = 25
		}

		opinion_modifier = { #Compare Opinion modifier.
			who = scope:recipient
			opinion_target = scope:actor
			multiplier = 0.35
		}
		modifier = {
			add = intimidated_external_reason_value
			scope:recipient = {
				has_dread_level_towards = {
					target = scope:actor
					level = 1
				}
			}
			desc = INTIMIDATED_REASON
		}
		modifier = {
			add = cowed_external_reason_value
			scope:recipient = {
				has_dread_level_towards = {
					target = scope:actor
					level = 2
				}
			}
			desc = COWED_REASON
		}
		# DIPLOMATIC COURT GRANDEUR BONUS
		modifier = {
			trigger = {
				scope:actor.top_liege = {
					has_royal_court = yes
					has_dlc_feature = royal_court
					has_court_type = court_diplomatic
					court_grandeur_current_level >= 1
				}
			}
			add = {
				value = scope:actor.top_liege.court_grandeur_current
				if = {
					limit = { # Reduce the bonus if you are below your expected level
						scope:actor.top_liege = {
							court_grandeur_current_level < court_grandeur_minimum_expected_level
						}
					}
					multiply = 0.15
				}
				else = {
					multiply = 0.3
				}
			}
			desc = DIPLOMATIC_COURT_ACCEPTANCE_INCREASE_REASON
		}

		# LOW LEGITIMACY
		modifier = {
			desc = "LOW_LEGITIMACY_REASON"
			add = -10
			scope:actor = {
				has_legitimacy_flag = reduced_confederation_acceptance
			}
		}
		modifier = {
			desc = "LOW_LEGITIMACY_REASON"
			add = -25
			scope:actor = {
				has_legitimacy_flag = very_reduced_confederation_acceptance
			}
		}

		# HIGH LEGITIMACY
		modifier = {
			desc = "HIGH_LEGITIMACY_REASON"
			add = 15
			scope:actor = {
				has_legitimacy_flag = increased_confederation_acceptance
			}
		}
		modifier = {
			desc = "HIGH_LEGITIMACY_REASON"
			add = 40
			scope:actor = {
				has_legitimacy_flag = very_increased_confederation_acceptance
			}
		}

		modifier = {
			add = 50
			scope:actor = {
				culture = scope:recipient.culture
			}
			desc = "SAME_CULTURE_REASON"
		}
		modifier = {
			add = -20
			NOT = {
				scope:actor = {
					culture = scope:recipient.culture
				}
			}
			scope:actor = {
				NOR = {
					culture = {
						any_parent_culture_or_above = {
							this = scope:recipient.culture
						}
					}
					scope:recipient.culture = {
						any_parent_culture_or_above = {
							this = scope:actor.culture
						}
					}
					culture = {
						has_same_culture_heritage = scope:recipient.culture
					}
				}
			}
			desc = "DIFFERENT_CULTURE_REASON"
		}
		# Are you using a hook?
		modifier = {
			trigger = {
				scope:hook ?= yes
			}
			add = 100
			desc = LEGEND_HOOK_USED
		}
		# PRESTIGE
		modifier = {
			add = 40
			scope:prestige_send_option = yes
			desc = PRESTIGE_INTERACTION_ACCEPTANCE_SEND_OPTION
		}
		# HERD
		modifier = {
			add = 40
			scope:herd_send_option = yes
			desc = HERD_INTERACTION_ACCEPTANCE_SEND_OPTION
		}
		modifier = {
			add = 20
			desc = join_confederation_neighboring_foe_tt
			scope:recipient = {
				confederation_neighboring_foe_trigger = { CHARACTER = scope:recipient }
			}
		}
		#No neighbor scaring them
		modifier = {
			add = -30
			desc = NO_FRIGHTENING_NEIGHBOR_REASON
			NOT = {
				scope:recipient = {
					confederation_neighboring_foe_trigger = { CHARACTER = scope:recipient }
				}
			}
		}
		#Neighbor is TERRIFYING them
		modifier = {
			add = 50
			desc = TERRIFYING_NEIGHBOR_REASON
			scope:recipient = {
				save_temporary_scope_as = confederate
				any_land_neighboring_realm_with_tributaries_owner = {
					top_suzerain ?= {
						NOR = {
							this = scope:actor
							this = scope:actor.top_liege
						}
						confederation_worthy_foe_strength_ratio_value <= 0.25
						NOT = { is_allied_to = scope:recipient }
						OR = {
							highest_held_title_tier >= tier_kingdom
							faith = {
								faith_hostility_level = {
									target = scope:recipient.faith
									value >= faith_evil_level
								}
							}
							has_trait = conqueror
							has_trait = greatest_of_khans
							any_owned_story = {
								OR = {
									story_type = story_greatest_of_khans
									story_type = story_mongol_invasion
								}
							}
						}
					}
				}
			}
		}
		modifier = {
			add = 100
			desc = JOINING_CONFEDERATION_WAR_REASON
			scope:recipient.confederation ?= {
				any_confederation_member = {
					is_at_war_as_defender = yes
					any_character_war = {
						is_war_leader = prev
						is_defender = prev
						NOR = {
							any_war_attacker = {
								is_allied_to = scope:actor
							}
							any_war_attacker = {
								this = scope:actor
							}
							any_war_defender = {
								this = scope:actor
							}
						}
						defender_war_score < 80
					}
				}
			}
		}

		modifier = {
			add = -100
			desc = join_confederation_abandoned_confederation_tt
			scope:actor = {
				has_variable = left_confederation
				var:left_confederation ?= {
					this = scope:recipient.confederation
				}
			}
		}
		modifier = {
			add = -100
			desc = join_confederation_abandoned_confederation_tt
			scope:actor = {
				has_variable = left_confederation
				var:left_confederation ?= {
					this = scope:recipient.confederation
				}
			}
		}
		modifier = {
			add = duchy_confederation_vassals_value_recipient
			desc = TOO_MANY_CONFEDERATION_VASSALS_REASON
			scope:recipient.confederation ?= {
				any_confederation_member = {
					count >= 6
					highest_held_title_tier >= tier_county
				}
			}
		}

		modifier = {
			add =  50
			desc = join_confederation_loyal_tt
			scope:actor = {
				has_trait = loyal
			}
		}
		modifier = {
			add =  -50
			desc = join_confederation_disloyal_tt
			scope:actor = {
				has_trait = disloyal
			}
		}
	}

	send_option = {
		flag = hook
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		localization = GENERIC_SPEND_A_HOOK
	}

	send_option = { # Herd
		is_shown = {
			scope:actor = {
				government_has_flag = government_is_nomadic
				exists = domicile
			}
		}
		is_valid = {
			scope:recipient = {
				government_has_flag = government_is_nomadic
				exists = domicile
			}
			scope:actor.domicile = { herd >= minor_herd_value }
		}
		flag = herd_send_option
		localization = TRADE_HERD_FOR_BETTER_AI_ACCEPTANCE_CONFEDERATION
	}

	send_option = { # Prestige
		is_shown = {
			always = yes
		}
		is_valid = {
			scope:actor = { prestige >= minor_prestige_value }
		}
		flag = prestige_send_option
		localization = TRADE_PRESTIGE_FOR_BETTER_AI_ACCEPTANCE
	}

	send_options_exclusive = no

	on_accept = {
		if = {
			#checking that the delay hasn't made the character invalid
			limit = {
				scope:recipient = {
					is_playable_character = yes
				}
			}
			if = {
				limit = {
					scope:actor = {
						has_character_flag = forming_confederation
					}
				}
				scope:actor = { remove_character_flag = forming_confederation }
			}
			scope:recipient.confederation ?= {
				every_confederation_member = {
					limit = { is_at_war_as_defender = yes }
					every_character_war = {
						limit = {
							is_war_leader = prev
							is_defender = prev
							NOR = {
								any_war_attacker = {
									is_allied_to = scope:actor
								}
								any_war_attacker = {
									this = scope:actor
								}
								any_war_defender = {
									this = scope:actor
								}
							}
							defender_war_score < 80
						}
						add_to_list = recipient_wars
					}
				}
			}
			every_in_list = {
				list = recipient_wars
				save_scope_as = recipient_war
				primary_attacker = {
					save_scope_as = attacker
				}
				add_defender = scope:actor
			}
			scope:recipient = {
				save_scope_as = confederation_offerer
			}
			scope:actor = {
				save_scope_as = confederation_accepter
			}
			scope:recipient.confederation = {
				save_scope_as = confederation
			}
			show_as_tooltip = {
				#If actor is top liege and offering vassaldom
				scope:actor = {
					custom_tooltip = join_confederation_recipient_tt
					custom_tooltip = confederation_defensive_wars_tt
					custom_tooltip = unlock_leave_confederation_interaction_tt
				}
			}
			if = {
				limit = {
					scope:actor = {
						government_has_flag = government_is_nomadic
					}
				}
				scope:actor = {
					add_character_modifier = {
						modifier = mpo_confederation_member_modifier
						years = 5
					}
					capital_county ?= {
						change_county_fertility = major_county_fertility_level_gain
					}
				}
			}
			if = {
				limit = {
					scope:actor = {
						is_ai = no
					}
				}
				scope:actor = {
					custom_tooltip = confederation_raiding_attacking_tt
					if = {
						limit = {
							government_has_flag = government_is_nomadic
						}
						custom_tooltip = confederation_restrictions_warning_tt
					}
					else = {
						custom_tooltip = confederation_restrictions_tribe_warning_tt
					}
				}
			}
			scope:actor = {
				if = {
					limit = {
						government_has_flag = government_is_nomadic
					}
					custom_tooltip = confederation_migrating_leaving_warning_tt
				}
			}
			scope:actor = {
				#Event distributor event
				trigger_event = mpo_interactions_events.0030
			}
			if = {
				limit = {
					scope:prestige_send_option = yes
				}
				scope:recipient = {
					add_prestige = scope:actor.minor_prestige_value
				}
			}
			if = {
				limit = {
					scope:herd_send_option = yes
				}
				scope:actor = {
					pay_herd = {
						target = scope:recipient
						value = domicile.minor_herd_value
					}
				}
			}
		}
	}

	on_decline = {
		scope:actor = {
			#So that the right desc is used
			save_scope_as = asking_to_join
			#letter response
			trigger_event = mpo_interactions_events.0004
		}
	}

	#ai_potential = {
	#	#AI rely on the offer interaction, not this one
	#	always = no
	#}
	#
	#ai_will_do = {
	#	base = 0
	#}
}
