﻿# character just about to die in root scope
# The death reason is set as scope:death_reason
# If a killer is known, it's set as scope:killer
# If an artifact was used to kill, it's set as scope:artifact
#Triggered by code

on_death = {
	effect = {
		play_music_cue = "mx_cue_death"

		add_character_flag = { flag = about_to_die_but_not_dead_yet_flag } # Used in perk calc

		# Legend inheritance
		if = {
			limit = {
				has_ce1_dlc_trigger = yes
				is_ai = no
				exists = promoted_legend
			}
			promoted_legend = {
				set_variable = ce1_neverending_story_achievement_possible_legend
			}
			player_heir ?= {
				set_variable = ce1_neverending_story_achievement_possible
			}
		}

		if = { # Inherit Flavorisation
			limit = {
				is_ruler = yes
				exists = primary_heir
				has_variable = {
					name = flavourise_camp_purpose_mercenaries
					name = flavourise_camp_purpose_wanderers
					name = flavourise_camp_purpose_scholars
					name = flavourise_camp_purpose_explorers
					name = flavourise_camp_purpose_brigands
					name = flavourise_camp_purpose_legitimists
				}
			}
			if = {
				limit = {
					has_variable = flavourise_camp_purpose_mercenaries
				}
				primary_heir ?= { set_variable = flavourise_camp_purpose_mercenaries }
			}
			else_if = {
				limit = {
					has_variable = flavourise_camp_purpose_wanderers
				}
				primary_heir ?= { set_variable = flavourise_camp_purpose_wanderers }
			}
			else_if = {
				limit = {
					has_variable = flavourise_camp_purpose_scholars
				}
				primary_heir ?= { set_variable = flavourise_camp_purpose_scholars }
			}
			else_if = {
				limit = {
					has_variable = flavourise_camp_purpose_explorers
				}
				primary_heir ?= { set_variable = flavourise_camp_purpose_explorers }
			}
			else_if = {
				limit = {
					has_variable = flavourise_camp_purpose_brigands
				}
				primary_heir ?= { set_variable = flavourise_camp_purpose_brigands }
			}
			else_if = {
				limit = {
					has_variable = flavourise_camp_purpose_legitimists
				}
				primary_heir ?= { set_variable = flavourise_camp_purpose_legitimists }
			}
		}

		if = { # Inherit Directives
			limit = {
				is_ruler = yes
				top_liege != this
				has_variable = {
					name = vassal_directive_improve_development
					name = vassal_directive_train_commanders
					name = vassal_directive_build_maa
					name = vassal_directive_convert_faith
					name = vassal_directive_convert_culture
					name = vassal_directive_improve_cultural_acceptance
					name = vassal_directive_building_focus_fortification
					name = vassal_directive_building_focus_military
					name = vassal_directive_building_focus_economy
				}
				primary_heir ?= {
					has_none_of_variables = {
						name = vassal_directive_improve_development
						name = vassal_directive_train_commanders
						name = vassal_directive_build_maa
						name = vassal_directive_convert_faith
						name = vassal_directive_convert_culture
						name = vassal_directive_improve_cultural_acceptance
						name = vassal_directive_building_focus_fortification
						name = vassal_directive_building_focus_military
						name = vassal_directive_building_focus_economy
					}
				}
			}
			if = {
				limit = {
					has_variable = vassal_directive_improve_development
				}
				primary_heir ?= { set_variable = vassal_directive_improve_development }
			}
			else_if = {
				limit = {
					has_variable = vassal_directive_train_commanders
				}
				primary_heir ?= { set_variable = vassal_directive_train_commanders }
			}
			else_if = {
				limit = {
					has_variable = vassal_directive_build_maa
				}
				primary_heir ?= { set_variable = vassal_directive_build_maa }
			}
			else_if = {
				limit = {
					has_variable = vassal_directive_convert_faith
				}
				primary_heir ?= { set_variable = vassal_directive_convert_faith }
			}
			else_if = {
				limit = {
					has_variable = vassal_directive_convert_culture
				}
				primary_heir ?= { set_variable = vassal_directive_convert_culture }
			}
			else_if = {
				limit = {
					has_variable = vassal_directive_improve_cultural_acceptance
				}
				primary_heir ?= { set_variable = vassal_directive_improve_cultural_acceptance }
			}
			else_if = {
				limit = {
					has_variable = vassal_directive_building_focus_fortification
				}
				primary_heir ?= { set_variable = vassal_directive_building_focus_fortification }
			}
			else_if = {
				limit = {
					has_variable = vassal_directive_building_focus_military
				}
				primary_heir ?= { set_variable = vassal_directive_building_focus_military }
			}
			else_if = {
				limit = {
					has_variable = vassal_directive_building_focus_economy
				}
				primary_heir ?= { set_variable = vassal_directive_building_focus_economy }
			}
		}

		if = {
			limit = {
				has_bp2_dlc_trigger = yes
				prestige_level >= 3 #Illustrious
				player_heir ?= {
					is_child_of = root
					age >= 6 #Can happen as a child, but also as an adult.
					NOT = {
						has_character_flag = bp2_prestige_piety_chain
					}
				}
				NOR = {
					has_character_flag = bp2_prestige_piety_chain
					prestige_level < piety_level #higher stat gives the chain
				}
			}
			save_scope_as = famous_parent
			player_heir = {
				set_variable = {
					name = parent_fame_lvl
					value = scope:famous_parent.prestige_level
				}
				create_character_memory = {
					type = famed_parent_became_very_famous
					participants = {
						famed_parent = scope:famous_parent
					}
				}
				trigger_event = {
					id = bp2_yearly.4010
					days = 5
				}
			}
		}
		if = {
			limit = {
				has_bp2_dlc_trigger = yes
				piety_level >= 3 #Illustrious
				player_heir ?= {
					is_child_of = root
					age >= 6 #Can happen as a child, but also as an adult.
					faith = root.faith
					NOT = {
						has_character_flag = bp2_prestige_piety_chain
					}
				}
				NOR = {
					has_character_flag = bp2_prestige_piety_chain
					piety_level < prestige_level #higher stat gives the chain
				}
				rite = {
					NOR = {
						trait_is_virtue_rite = humble
						trait_is_virtue_rite = content
					}
				}
			}
			save_scope_as = pious_parent
			player_heir = {
				set_variable = {
					name = parent_piety_lvl
					value = scope:pious_parent.piety_level
				}
				create_character_memory = {
					type = pious_parent_became_very_pious
					participants = {
						pious_parent = scope:pious_parent
					}
				}
				trigger_event = {
					id = bp2_yearly.4020
					days = 10
				}
			}
		}

		if = {
			limit = {
				is_ruler = yes
				exists = dynasty
				rite = { rite_has_parameter = tenet_ancestor_worship_renown_on_death }
				pam_ancestor_worship_death_renown_value > 0
			}
			dynasty = {
				add_dynasty_prestige = root.pam_ancestor_worship_death_renown_value
			}
		}

		if = {
			limit = {
				exists = player_heir
			}
			player_heir = {
				apply_hold_court_grace_effect = yes
			}
			if = {
				limit = {
					player_heir = { is_ai = no }
				}
				player_heir = {
					every_held_title = {
						limit = {
							is_nomad_title = yes
						}
						set_variable = player_domicile_title
					}
				}
			}
			if = {
				limit = {
					is_ai = no
				}
				every_held_title = {
					limit = {
						is_nomad_title = yes
					}
					set_variable = player_domicile_title
				}
				player_heir = {
					add_character_flag = {
						flag = tutorial_reactive_advice_succession
					}
				}
				if = {
					limit = {
						has_royal_court = yes
						any_sponsored_inspiration = { }
					}
					save_scope_as = old_ruler
					every_sponsored_inspiration = { add_to_list = inherited_inspiration_list }
					player_heir = {
						trigger_event = { id = fund_inspiration.9005 days = 5 }
					}
				}
			}
			if = {
				limit = { has_character_flag = undertaking_hungarian_migration }
				player_heir = {
					add_character_flag = {
						flag = undertaking_hungarian_migration
					}
				}
			}
			trigger_event = {
				id = fp3_yearly.2030
				days = 16
			}
		}

		if = { # Lower Grandeur a little bit on death
			limit = {
				has_royal_court = yes
				has_dlc_feature = royal_court
				primary_heir ?= {
					has_royal_court = no
				}
			}
			change_current_court_grandeur = grandeur_loss_on_succession_value

			if = { # Grandeur in elective realms
				limit = {
					primary_title = {
						has_order_of_succession = election
					}
				}
				primary_heir = {
					set_variable = {
						name = previous_holder_grandeur_value
						value = prev.court_grandeur_current
					}
				}
			}
		}

#		if = {
#			limit = {
#				exists = global_var:mongol_empire_was_broken_up
#				exists = global_var:handed_out_mongolia_in_mongol_succession # If Mongolia wasn't properly granted, something has gone wrong, and the primary_heir should receive the Mongol Empire as expected
#				any_held_title = {
#					this = title:e_mongol_empire
#				}
#			}
#			destroy_title = title:e_mongol_empire
#		}

		# Ludwig the Younger inherits East Francia and Karlmann Bavaria, as historically.
		if = {
			limit = {
				# Make sure we're looking at the right guy & that the circumstances haven't changed too much.
				this = character:90107
				highest_held_title_tier = tier_kingdom
				has_realm_law = confederate_partition_succession_law
				# Bavaria should be in a fit state for interfering with the handout order.
				title:k_bavaria = {
					OR = {
						is_title_created = no
						holder = root
					}
					any_in_de_jure_hierarchy = {
						tier = tier_county
						# More than 50%.
						count >= 22
						holder = {
							any_liege_or_above = { this = root }
						}
					}
				}
				NOT = { has_primary_title = title:k_bavaria }
				NOT = { exists = designated_heir }
				is_valid_designated_heir = character:42019
			}
			set_designated_heir = character:42019
		}
		else_if = {
			limit = {
				this = character:90107
				has_variable = ludwig_younger_designated_by_history
				designated_heir ?= character:42019
				NAND = {
					highest_held_title_tier = tier_kingdom
					has_realm_law = confederate_partition_succession_law
					title:k_bavaria = {
						OR = {
							is_title_created = no
							holder = root
						}
						any_in_de_jure_hierarchy = {
							tier = tier_county
							count >= 22
							holder = {
								any_liege_or_above = { this = root }
							}
						}
					}
					NOT = { has_primary_title = title:k_bavaria }
				}
			}
			clear_designated_heir = yes
		}
		# Salzburg sits outside any de jure kingdom, so it would follow Ludwig the Younger into East Francia instead of going to Bavaria with Karlmann
		if = {
			limit = {
				this = character:90107
				designated_heir ?= character:42019
				title:d_et_salzburg.holder ?= { is_vassal_of = root }
				character:42018 ?= {
					is_alive = yes
					is_vassal_of = root
				}
			}
			create_title_and_vassal_change = {
				type = granted
				save_scope_as = salzburg_change
				add_claim_on_loss = no
			}
			title:d_et_salzburg.holder = {
				change_liege = {
					liege = character:42018
					change = scope:salzburg_change
				}
			}
			resolve_title_and_vassal_change = scope:salzburg_change
		}

		# Diarchies
		## Handle regency loyalties.
		if = {
			limit = {
				# We only want to hand this to children.
				primary_heir ?= { is_adult = no }
				# Now, what type of regent are we checking?
				## An actual regency.
				trigger_if = {
					limit = {
						has_active_diarchy = yes
						has_diarchy_active_parameter = diarchy_is_regency
					}
					diarch = { regent_would_remain_loyal_after_death_trigger = yes }
				}
				## An organised would-be regency.
				trigger_else_if = {
					limit = { exists = designated_diarch }
					designated_diarch = { regent_would_remain_loyal_after_death_trigger = yes }
				}
				## Otherwise, stop the flow.
				trigger_else = { always = no }
			}
			# Nab our affected character.
			## Actual regents.
			if = {
				limit = {
					has_active_diarchy = yes
					has_diarchy_active_parameter = diarchy_is_regency
				}
				diarch = { save_scope_as = liege_loyalist }
			}
			## Designated regents.
			else = {
				designated_diarch = { save_scope_as = liege_loyalist }
			}
			# Now, give 'em a hook that'll last till their 20th birthday.
			primary_heir ?= {
				if = {
					limit = { is_alive = yes }

					add_hook = {
						type = predecessor_loyalty_hook
						target = scope:liege_loyalist
						years = regent_loyal_after_death_hook_duration_years_value
					}
					reverse_add_opinion = {
						target = scope:liege_loyalist
						modifier = promise_to_predecessor
						opinion = 50
					}
					# Plus remember who the promise was made to.
					set_variable = {
						name = promise_to_predecessor
						value = root
						years = regent_loyal_after_death_hook_duration_years_value
					}
				}
			}
		}
		## Transfer co-monarchies.
		if = {
			limit = {
				has_active_diarchy = yes
				has_diarchy_active_parameter = diarchy_is_co_rulership
				primary_heir ?= {
					highest_held_title_tier < root.highest_held_title_tier
					NOR = {
						this = root.diarch
						AND = {
							has_active_diarchy = yes
							has_diarchy_active_parameter = diarchy_is_co_rulership
						}
					}
				}
			}
			# Register our current diarch.
			diarch = { save_scope_as = co_ruler }
			# Register our current SoP swing, minus a little for the death.
			save_scope_value_as = {
				name = sop_swing
				value = {
					add = diarchy_swing
					add = -20
					min = 0
				}
			}
			# Aaaand check what type of diarchy we want.
			if = {
				limit = { has_diarchy_active_parameter = diarchy_type_is_junior_emperorship }
				save_scope_value_as = {
					name = diarchy_type
					value = flag:junior_emperorship
				}
			}
			else_if = {
				limit = { has_diarchy_active_parameter = diarchy_type_is_co_emperorship }
				save_scope_value_as = {
					name = diarchy_type
					value = flag:co_emperorship
				}
			}
			else = {
				save_scope_value_as = {
					name = diarchy_type
					value = flag:co_monarchy
				}
			}
			# Cue up our event.
			primary_heir ?= {
				trigger_event = {
					id = diarchy.0024
					delayed = yes
				}
			}
		}

		invalidate_claimant_factions_on_death_effect = yes

		# EP2 - Handle Grand Wedding betrothals
		if = {
			limit = { # You have promised someone else in a grand marriage
				has_variable = promised_grand_wedding_marriage_countdown
				var:promised_grand_wedding_marriage_countdown != this
			}
			if = { # Find a player heir or primary heir that hasn't ALSO promised a grand wedding
				limit = {
					player_heir ?= { NOT = { has_variable = promised_grand_wedding_marriage_countdown } }
				}
				player_heir = { save_scope_as = new_wedding_host }
			}
			else_if = {
				limit = {
					primary_heir ?= { NOT = { has_variable = promised_grand_wedding_marriage_countdown } }
				}
				primary_heir = { save_scope_as = new_wedding_host }
			}
			if = { # If such an heir exists, copy all involved scopes, clean up, and recreate the promise on all relevant characters
				limit = { 
					exists = scope:new_wedding_host
					has_variable = promised_grand_wedding_to
				}
				var:promised_grand_wedding_marriage_countdown = {
					save_scope_as = spouse_1
					betrothed = { save_scope_as = spouse_2 }
				}
				var:promised_grand_wedding_to = {
					save_scope_as = promisee
				}
				clean_grand_wedding_betrothal_variables = yes
				set_grand_wedding_betrothal_variables = {
					HOST = scope:new_wedding_host
					SPOUSE_1 = scope:spouse_1
					SPOUSE_2 = scope:spouse_2
					PROMISEE = scope:promisee
				}
			}
			else = { # Otherwise, clean up all variables on all characters (cancelling the Grand Wedding promise but retaining the betrothal)
				clean_grand_wedding_betrothal_variables = yes
			}
		}
		if = {
			limit = {
				# You are a spouse to be
				has_variable = promised_grand_wedding_by
				# your Grand Wedding has not been organized yet
				NOT = {
					involved_activity ?= {
						has_activity_type = activity_wedding
						OR = {
							special_guest:spouse_1 ?= root
							special_guest:spouse_2 ?= root
						}
					}
				}
			}
			save_scope_as = dead_spouse
			# Free the betrothed - the wedding promise can outlive the betrothal itself
			betrothed ?= {
				save_scope_as = alive_spouse
				trigger_event = ep2_wedding.0003
			}
			# Free the host if they were not the betrothed themselves
			if = {
				limit = {
					NOT = { betrothed ?= { has_variable = promised_grand_wedding_marriage_countdown } }
				}
				var:promised_grand_wedding_by = { trigger_event = ep2_wedding.0002 }
			}
		}

		# EP2 - Complete murder intents
		# Complete activity intent if relevant
		if = {
			limit = {
				exists = scope:killer
				exists = involved_activity
				scope:killer.involved_activity ?= root.involved_activity
				scope:killer = {
					has_activity_intent = murder_attendee_intent
					intent_target = root
				}
			}
			scope:killer = {
				save_scope_as = intent_completer
				send_interface_toast = {
					type = event_toast_effect_good
					title = activity_intent_complete_toast
					left_icon = root
					complete_activity_intent = yes
				}
				# Achievements.
				if = {
					limit = {
						is_ai = no
						exists = global_var:started_hunting_accident_achievement
					}
					set_global_variable = {
						name = finished_hunting_accident_achievement
						value = yes
					}
				}
			}
		}

		# EP2 - Death while traveling
		# Send relevant event to player heir
		if = {
			limit = {
				exists = player_heir
				exists = involved_activity
				is_travelling = yes
				# Tour has their own death invalidation event
				trigger_if = {
					limit = {
						involved_activity ?= {
							has_activity_type = activity_tour
						}
					}
				}
				# Hunt has their own death invalidation event at actual hunt
				NAND = {
					involved_activity ?= { has_activity_type = activity_hunt }
					location = involved_activity.activity_location
				}
			}
			# Save a couple things for loc
			save_scope_as = predecessor
			scope:predecessor.location = { save_scope_as = predecessor_location }
			involved_activity.activity_location = { save_scope_as = travel_destination }
			# Figure out if we were heading to or home from an activity
			if = {
				limit = { exists = involved_activity }
				if = {
					limit = {
						exists = scope:predecessor_location
						scope:predecessor_location = scope:travel_destination
					}
					save_scope_as = at_destination
				}
				else = {
					save_scope_as = to_activity
				}
			}
			# Fire event for player heir
			player_heir = {
				if = {
					limit = { is_available = yes }
					trigger_event = {
						id = travel_events.0010
						days = 1
					}
				}
				else_if = {
					limit = {
						NOT = { location ?= scope:predecessor_location }
					}
					trigger_event = {
						id = travel_events.0011
						days = 1
					}
				}
			}
		}

		#EP2 - Death on a Pilgrimage
		#Did we like our predecessor?
		player_heir ?= {
			if = {
				limit = {
					is_alive = yes #if the predecessor died during a murder feast/bloody wedding is quite likely that the heir would've died too
					OR = {
						opinion = {
							target = root
							value > 10
						}
						has_any_good_relationship_with_root_trigger = yes
					}
				}
				add_character_flag = pilgrimage_liked_my_predecessor
			}
		}

		# Event Setup
		## FP1: Rumoured Draugr - fp1_yearly.0051
		if = {
			limit = {
				#DLC check.
				has_fp1_dlc_trigger = yes
				#Must be within the player's court.
				is_knight = yes
				court_owner = { is_ai = no }
				#Must be an intimidating fighter.
				prowess >= extremely_high_skill_rating
				#Aaaaand must have a personality that makes people think they'd come back to harass the living.
				calc_true_if = {
					amount >= 2
					has_trait = wrathful
					has_trait = arrogant
					has_trait = deceitful
					has_trait = craven
					has_trait = ambitious
					has_trait = arbitrary
					has_trait = cynical
					has_trait = vengeful
					has_trait = sadistic
				}
			}
			save_scope_as = potential_draugr
			court_owner = {
				set_variable = {
					name = potential_draugr
					value = scope:potential_draugr
					years = 5
				}
			}
		}
		## EP1: Might later be rumored to haunt the location in a court event
		if = {
			limit = {
				OR = {
					AND = {
						exists = capital_province
						location = capital_province
						exists = player_heir
						OR = {
							any_close_family_member = { this = root.player_heir }
							any_spouse = { this = root.player_heir }
						}
					}
					AND = {
						court_owner ?= {
							is_ai = no
							exists = capital_province
						}
						location = court_owner.capital_province
						OR = {
							any_close_family_member = { this = root.court_owner }
							any_spouse = { this = root.court_owner }
						}
					}
				}
			}
			location = {
				set_variable = {
					name = possible_haunting
					value = prev
					years = 100
				}
			}
		}

		if = {
			limit = { has_royal_court = yes }
			# Clear pay homage once-per-liege grace
			every_vassal = {
				if = {
					limit = { has_variable = homage_type }
					remove_variable = homage_type
				}
			}
			# Check equipped artifacts
			every_equipped_character_artifact = {
				limit = { ep1_artifact_is_court_artifact_trigger = yes }
				set_variable = equipped_court_succession
			}
		}

		if = {
			limit = {
				any_relation = {
					type = best_friend
				}
			}
			# Ritual best friends have a bad, bad, *bad* time.
			if = {
				limit = {
					valid_ritualised_best_friendship_one_way_trigger = { ACTOR_FRIEND = root }
				}
				random_relation = {
					type = best_friend
					limit = { culture_valid_for_ritualised_best_friends_trigger = yes }
					# Save a flag for the death management event's ease.
					add_character_flag = dead_ritual_best_friend
				}
			}
			# Best friend loses synergy
			if = {
				limit = { has_any_best_friend_synergy_bonus_modifier_trigger = yes }
				remove_every_best_friend_synergy_bonus_modifier_effect = yes
			}
			random_relation = {
				type = best_friend
				if = {
					limit = { has_any_best_friend_synergy_bonus_modifier_trigger = yes }
					remove_every_best_friend_synergy_bonus_modifier_effect = yes
				}
			}
		}

#		# Struggle Catalysts
#		## Generic unnatural deaths.
#		if = {
#			limit = { exists = scope:killer }
#			if = { # FP2/Generic
#				limit = {
#					is_important_or_vip_struggle_character = yes
#					any_character_struggle = {
#						involvement = involved
#						phase_has_catalyst = catalyst_unnatural_death_important_character
#					}
#				}
#				every_character_struggle = {
#					involvement = involved
#					activate_struggle_catalyst = {
#						catalyst = catalyst_unnatural_death_important_character
#						character = root
#					}
#				}
#			}
#			if = {
#				limit = {
#					has_trait = fp3_struggle_supporter
#					any_character_struggle = {
#						involvement = involved
#						phase_has_catalyst = catalyst_unnatural_death_supporter
#					}
#				}
#				every_character_struggle = {
#					involvement = involved
#					activate_struggle_catalyst = {
#						catalyst = catalyst_unnatural_death_supporter
#						character = root
#					}
#					log_debug_variable_for_persian_struggle_effect = { VAR = unrest_catalyst_unnatural_death_supporter }
#				}
#			}
#			if = {
#				limit = {
#					has_trait = fp3_struggle_detractor
#					any_character_struggle = {
#						involvement = involved
#						phase_has_catalyst = catalyst_unnatural_death_detractor
#					}
#				}
#				every_character_struggle = {
#					involvement = involved
#					activate_struggle_catalyst = {
#						catalyst = catalyst_unnatural_death_detractor
#						character = root
#					}
#					log_debug_variable_for_persian_struggle_effect = { VAR = stabil_catalyst_unnatural_death_detractor }
#				}
#			}
#		}
#		## Caliphal deaths.
#		if = {
#			limit = { has_title = title:d_sunni }
#			## Did they die violently?
#			### Checked against the struggle directly: the caliph may, after all, be entirely unrelated & this catalyst is FP3-specific.
#			if = {
#				limit = {
#					exists = scope:killer
#					struggle:persian_struggle ?= {
#						phase_has_catalyst = catalyst_caliph_died_violently
#						NOT = { has_variable = significant_character_death_cooldown }
#					}
#				}
#				struggle:persian_struggle = {
#					activate_struggle_catalyst = {
#						catalyst = catalyst_caliph_died_violently
#						character = root
#					}
#					log_debug_variable_for_persian_struggle_effect = { VAR = concession_catalyst_caliph_died_violently }
#					set_variable = {
#						name = significant_character_death_cooldown
#						value = yes
#						years = catalyst_cooldown_between_significant_character_deaths_years_value
#					}
#				}
#			}
#			## If not, give the natural version.
#			### Checked against the struggle directly: the caliph may, after all, be entirely unrelated & this catalyst is FP3-specific.
#			else_if = {
#				limit = {
#					struggle:persian_struggle ?= {
#						phase_has_catalyst = catalyst_caliph_died_naturally
#						NOT = { has_variable = significant_character_death_cooldown }
#					}
#				}
#				struggle:persian_struggle = {
#					activate_struggle_catalyst = {
#						catalyst = catalyst_caliph_died_naturally
#						character = root
#					}
#					log_debug_variable_for_persian_struggle_effect = { VAR = concession_catalyst_caliph_died_naturally }
#					set_variable = {
#						name = significant_character_death_cooldown
#						value = yes
#						years = catalyst_cooldown_between_significant_character_deaths_years_value
#					}
#				}
#			}
#		}
#		# Other Struggle Stuff
#		## Caliphal deaths part 2: because people tend to remember stuff like that.
#		if = {
#			limit = {
#				has_title = title:d_sunni
#				# Check that scope:killer is in some way involved in the on-going disputes.
#				scope:killer ?= {
#					any_character_struggle = { this = struggle:persian_struggle }
#					# Inter-familial murders within the caliphate don't count, that's just politics.
#					exists = root.dynasty
#					NOT = { dynasty ?= root.dynasty }
#				}
#			}
#			# Cool, we've established you're involved enough to assign traits to and don't have extenuating circumstances.
#			scope:killer = {
#				# Are you a supporter? If so, invert.
#				if = {
#					limit = { has_trait = fp3_struggle_supporter }
#					send_interface_toast = {
#						type = event_toast_effect_neutral
#						title = persian_struggle.tt.supporter_killed_caliph
#						left_icon = root
#						hidden_effect = { remove_trait = fp3_struggle_supporter }
#						add_trait_force_tooltip = fp3_struggle_detractor
#					}
#				}
#				# Are you neutral? If so, become a detractor.
#				else_if = {
#					limit = {
#						NOR = {
#							has_trait = fp3_struggle_supporter
#							has_trait = fp3_struggle_detractor
#						}
#					}
#					send_interface_toast = {
#						type = event_toast_effect_neutral
#						title = persian_struggle.tt.neutral_killed_caliph
#						left_icon = root
#						add_trait = fp3_struggle_detractor
#					}
#				}
#				# Else you're a detractor? You're good, carry on as you are.
#			}
#		}

		every_close_family_member = {
			create_character_memory = {
				type = relative_died

				participants = {
					dead_relation = root
				}
			}
			if = {
				limit = {
					is_adult = no
				}
				scope:new_memory = {
					set_variable = {
						name = childhood_memory
					}
				}
			}
			if = {
				limit = {
					has_personal_tenet_flag = tenet_purgatory_prayers_for_the_dead
					root = { num_sinful_traits > 0 }
				}
				send_interface_toast = {
					type = event_toast_effect_good
					title = pam_purgatory_prayers_for_the_dead_toast
					left_icon = this
					right_icon = root
					add_piety = {
						value = minor_piety_value
						multiply = root.num_sinful_traits
					}
				}
			}
			# Separate if: Purgatory's block above can pay on the same death
			if = {
				limit = {
					has_personal_tenet_flag = tenet_khachkar_kin_death_stress_loss
				}
				send_interface_toast = {
					type = event_toast_effect_good
					title = pam_khachkar_grief_toast
					left_icon = this
					right_icon = root
					add_stress = medium_stress_loss
				}
			}
		}

		every_spouse = {
			limit = {
				NOR = {
					has_relation_friend = root
					has_relation_rival = root
					has_relation_lover = root
					is_close_family_of = root
				}
			}
			create_character_memory = {
				type = spouse_died

				participants = {
					dead_relation = root
				}
			}
		}

		# Tournament
		tournament_versus_qualifier_death_effect = yes

		# Travel invalidation for vassals heading here, in a single vassal pass rather than one per interaction
		every_vassal = {
			# Petition Liege invalidation
			if = {
				limit = { var:petition_liege_scope ?= root }
				trigger_event = { on_action = petition_liege_travel_planner_exit }
				current_travel_plan = {
					if = {
						limit = { can_cancel = yes }
						cancel_travel_plan = yes
					}
				}
			}
			# Pay Homage invalidation
			if = {
				limit = { var:homage_liege_scope ?= root }
				trigger_event = { on_action = pay_homage_travel_planner_exit }
				current_travel_plan = {
					if = {
						limit = { can_cancel = yes }
						cancel_travel_plan = yes
					}
				}
			}
			# Bow Before Liege invalidation
			if = {
				limit = { var:pledge_loyalty_to_liege_scope ?= root }
				trigger_event = { on_action = pledge_loyalty_to_liege_travel_planner_exit }
				current_travel_plan = {
					if = {
						limit = { can_cancel = yes }
						cancel_travel_plan = yes
					}
				}
			}
		}

		# Court position boon invalidation
		if = {
			limit = { exists = var:booner_target }
			employed_booner_invalidation_effect = { EMPLOYEE = root LIEGE = root.employer }
		}
		# Cleanup booner focus on dead courtiers
		employer ?= {
			every_court_position_holder = {
				limit = { var:booner_target ?= root }
				remove_variable = booner_target
			}
		}

		# Ward travel invalidation
		if = {
			limit = {
				exists = var:ward_travelling_to_guardian
				is_travelling = yes
			}
			save_scope_as = ward
			var:ward_travelling_to_guardian = {
				save_scope_as = guardian
				liege ?= { save_scope_as = guardian_liege }
			}
			var:character_making_education_request ?= { save_scope_as = ward_liege }
			# Inform Guardian
			scope:guardian ?= {
				send_interface_toast = {
					type = event_toast_effect_neutral
					title = ward_invalidated_during_travel_title
					left_icon = scope:ward
					right_icon = scope:ward_liege
					show_as_tooltip = {
						scope:ward = { death = { death_reason = death_fight } }
					}
				}
			}
			# Inform Liege
			scope:ward_liege ?= {
				send_interface_toast = {
					type = event_toast_effect_neutral
					title = ward_invalidated_during_travel_title
					left_icon = scope:ward
					right_icon = scope:guardian
					show_as_tooltip = {
						scope:ward = { death = { death_reason = death_fight } }
					}
				}
			}
			# Inform Guardian Liege
			if = {
				limit = {
					exists = scope:guardian_liege
					scope:guardian_liege != scope:guardian
				}
				scope:guardian_liege = {
					send_interface_toast = {
						type = event_toast_effect_neutral
						title = ward_invalidated_during_travel_title
						left_icon = scope:ward
						right_icon = scope:guardian
						show_as_tooltip = {
							scope:ward = { death = { death_reason = death_fight } }
						}
					}
				}
			}
		}
		# Guardian travel invalidation
		else_if = {
			limit = {
				exists = var:guardian_travelling_to_ward
				is_travelling = yes
			}
			save_scope_as = guardian
			liege ?= { save_scope_as = guardian_liege }
			var:guardian_travelling_to_ward = {
				save_scope_as = ward
				var:character_making_education_request ?= { save_scope_as = ward_liege }
			}
			scope:ward = {
				send_interface_toast = {
					type = event_toast_effect_neutral
					title = guardian_invalidated_during_travel_title
					left_icon = scope:guardian
					show_as_tooltip = {
						scope:guardian = { death = { death_reason = death_fight } }
					}
				}
			}
			if = {
				limit = {
					exists = scope:ward_liege
					scope:ward_liege != scope:ward
				}
				scope:ward_liege = {
					send_interface_toast = {
						type = event_toast_effect_neutral
						title = guardian_invalidated_during_travel_title
						left_icon = scope:guardian
						right_icon = scope:ward
						show_as_tooltip = {
							scope:guardian = { death = { death_reason = death_fight } }
						}
					}
				}
			}
			if = {
				limit = {
					exists = scope:guardian_liege
					scope:guardian_liege != scope:guardian
				}
				scope:guardian_liege = {
					send_interface_toast = {
						type = event_toast_effect_neutral
						title = guardian_invalidated_during_travel_title
						left_icon = scope:guardian
						right_icon = scope:ward
						show_as_tooltip = {
							scope:guardian = { death = { death_reason = death_fight } }
						}
					}
				}
			}
		}

		# BP2
		if = { # Hostage travel
			limit = {
				exists = var:hostage_travelling_to_warden
				is_travelling = yes
			}
			save_scope_as = hostage
			liege = {
				send_interface_toast = {
					type = event_toast_effect_neutral
					title = hostage_invalidated_during_travel_title
					left_icon = scope:hostage
					right_icon = scope:hostage.var:hostage_travelling_to_warden
					show_as_tooltip = {
						scope:hostage = {
							death = { death_reason = death_fight }
						}
					}
				}
			}
			var:hostage_travelling_to_warden = {
				save_scope_as = warden
				send_interface_toast = {
					type = event_toast_effect_neutral
					title = hostage_invalidated_during_travel_title
					left_icon = scope:hostage
					right_icon = scope:hostage.liege
					show_as_tooltip = {
						scope:hostage = {
							death = { death_reason = death_fight }
						}
					}
				}
			}
		}
		if = {
			limit = { is_hostage = yes }
			save_scope_as = hostage
			home_court = {
				save_scope_as = hostage_home_court
				set_variable = {
					name = let_my_hostage_die
					value = scope:hostage.warden
				}
			}
			warden = {
				set_variable = {
					name = hostage_died
					value = scope:hostage_home_court
				}
				save_scope_as = hostage_warden
				trigger_event = { id = bp2_hostage_system.0300 days = 1 }
				if = {
					limit = {
						NOT = { is_close_family_of = scope:hostage }
					}
					create_character_memory = {
						type = hostage_died

						participants = {
							home_court = scope:hostage.home_court
							hostage = scope:hostage
						}
					}
				}
			}
		}

		if = {
			limit = {
				government_has_flag = government_is_clan
				exists = house
			}
			# Clan Succession effects
			if = {
				limit = {
					house = {
						OR = {
							has_house_unity_stage = competitive
							has_house_unity_stage = antagonistic
						}
					}
				}
				every_vassal = {
					limit = { house ?= root.house }
					add_unpressed_claim = root.primary_title
				}
			}

			# When the house head of a clan dies, they have an impact on their house's unity
			# Effect of reducing the house unity has to be delayed in death_management.0100 so that your succession laws don't change from lowered house unity before the succession happens
			if = {
				limit = {
					house = {
						house_head = root
						NOT = { has_house_unity_stage = impassive }
					}
					primary_title.title_held_years >= 1
				}
				#calculate the unity value you should lose on this character and save it to pass it to the add_unity_value effect in the death_management.0100 event
				save_scope_value_as = {
					name = unity_change
					value = {
						value = 10
						add = root.primary_title.title_held_years
						multiply = -1
						min = -50
					}
				}
				save_scope_as = dead_house_head
				#trigger the death_management.0100 event that will remove the unity after succession happens
				if = {
					limit = {
						exists = player_heir
					}
					player_heir = {
						trigger_event = {
							id = death_management.0100
							delayed = yes
						}
					}
				}
			}
		}

		# If someone has set out a revenge quest on you, give them an event
		if = {
			limit = {
				exists = var:8180_marked_for_death
			}
			var:8180_marked_for_death = {
				trigger_event = {
					id = legend_spread_events.8181
					weeks = 1
				}
			}
		}

		# copy name of dog for funeral event
		if = {
			limit = {
				any_owned_story = {
					story_type = story_cycle_pet_dog
				}
				player_heir ?= {
					NOT = {
						any_owned_story = { story_type = story_cycle_pet_dog }
					}
				}
			}
			if = {
				limit = {
					any_owned_story = {
						story_type = story_cycle_pet_dog
						var:story_cycle_dog_name ?= flag:custom
					}
				}
				player_heir = {
					copy_localized_text = {
						key = story_cycle_dog_name
						target = root
					}
				}
			}
			trigger_event = {
				on_action = story_cycle_pet_dog_removal
				years = 5
			}
		}

		if = { # Add Legitimacy Legacy Level 2
			limit = {
				dynasty ?= {
					has_dynasty_perk = ce1_legitimacy_legacy_2
				}
				exists = player_heir
			}
			player_heir = {
				add_character_modifier = {
					modifier = ce1_lasting_line
					years = 10
				}
			}
		}

		# In Admin Realms, you inherit a portion of your predecessor's Influence on succession
		if = {
			limit = {
				government_has_flag = government_has_influence
				influence > 0
				exists = house
				player_heir ?= { # Let's make sure we don't give Influence to anyone that shouldn't get it
					house ?= root.house
				}
			}
			player_heir ?= {
				change_influence = {
					value = root.influence
					multiply = {
						value = 0.2 # Default value
						if = {
							limit = {
								root = { domicile ?= { has_domicile_parameter = estate_inherit_influence_large_bonus } }
							}
							add = influence_inherit_large_bonus_value
						}
						else_if = {
							limit = {
								root = { domicile ?= { has_domicile_parameter = estate_inherit_influence_medium_bonus } }
							}
							add = influence_inherit_medium_bonus_value
						}
						else_if = {
							limit = {
								root = { domicile ?= { has_domicile_parameter = estate_inherit_influence_small_bonus } }
							}
							add = influence_inherit_small_bonus_value
						}
					}
				}
			}
		}

		# EP3 - Become Adventurer - Succession
		# Pre-gated on the event's own trigger so the vast majority of deaths skip the dispatch
		if = {
			limit = {
				is_landed = yes
				exists = player_heir
			}
			trigger_event = ep3_laamps.0012
		}

		# EP3 - Adventurer support invalidation
		ep3_laamp_supporter_invalidated_effect = yes

		# EP3 - Varangian Palace Pillaging
#		if = {
#			limit = {
#				primary_title = title:e_byzantium
#				OR = {
#					"number_maa_regiments_of_type(varangian_guards)" >= 1
#					number_title_maa_regiments_of_type = {
#						target = varangian_guards
#						value >= 1
#					}
#					any_court_position_holder = {
#						type = akolouthos_court_position
#						ep3_varangian_trigger = yes
#					}
#				}
#			}
#			save_scope_as = dead_emperor
#			if = {
#				limit = {
#					number_maa_soldiers_of_type = {
#						target = varangian_guards
#						value > 0
#						value <= 100
#					}
#				}
#				primary_heir = {
#					set_variable = {
#						name = varangian_regiments
#						value = 1
#					}
#				}
#			}
#			else_if = {
#				limit = {
#					number_maa_soldiers_of_type = {
#						target = varangian_guards
#						value > 100
#						value <= 200
#					}
#				}
#				primary_heir = {
#					set_variable = {
#						name = varangian_regiments
#						value = 2
#					}
#				}
#			}
#			else_if = {
#				limit = {
#					number_maa_soldiers_of_type = {
#						target = varangian_guards
#						value > 200
#						value <= 300
#					}
#				}
#				primary_heir = {
#					set_variable = {
#						name = varangian_regiments
#						value = 3
#					}
#				}
#			}
#			else_if = {
#				limit = {
#					number_maa_soldiers_of_type = {
#						target = varangian_guards
#						value > 300
#						value <= 400
#					}
#				}
#				primary_heir = {
#					set_variable = {
#						name = varangian_regiments
#						value = 4
#					}
#				}
#			}
#			else_if = {
#				limit = {
#					number_maa_soldiers_of_type = {
#						target = varangian_guards
#						value > 400
#						value <= 500
#					}
#				}
#				primary_heir = {
#					set_variable = {
#						name = varangian_regiments
#						value = 5
#					}
#				}
#			}
#			else_if = {
#				limit = {
#					number_maa_soldiers_of_type = {
#						target = varangian_guards
#						value > 500
#						value <= 600
#					}
#				}
#				primary_heir = {
#					set_variable = {
#						name = varangian_regiments
#						value = 6
#					}
#				}
#			}
#			else_if = {
#				limit = {
#					number_maa_soldiers_of_type = {
#						target = varangian_guards
#						value > 600
#						value <= 700
#					}
#				}
#				primary_heir = {
#					set_variable = {
#						name = varangian_regiments
#						value = 7
#					}
#				}
#			}
#			else_if = {
#				limit = {
#					number_maa_soldiers_of_type = {
#						target = varangian_guards
#						value > 700
#						value <= 800
#					}
#				}
#				primary_heir = {
#					set_variable = {
#						name = varangian_regiments
#						value = 8
#					}
#				}
#			}
#			else_if = {
#				limit = {
#					number_maa_soldiers_of_type = {
#						target = varangian_guards
#						value > 800
#						value <= 900
#					}
#				}
#				primary_heir = {
#					set_variable = {
#						name = varangian_regiments
#						value = 9
#					}
#				}
#			}
#			else = {
#				primary_heir = {
#					set_variable = {
#						name = varangian_regiments
#						value = 10
#					}
#				}
#			}
#			primary_heir = {
#				trigger_event = {
#					id = ep3_emperor_yearly.3000
#					days = { 10 20 }
#				}
#			}
#		}

		# EP3 - Grand Ambitions Story Cycle
		# Get the scope of the story owner
		random_targeting_scheme = {
			limit = {
				scheme_type = depose
				scheme_owner = {
					any_owned_story = {
						type = grand_ambitions_story_cycle
						var:target_char ?= root
					}
				}
			}
			root = { save_scope_as = previous_story_target }
			# Fire an event to the story owner letting them know that their target is dead and letting them choose if they should continue their story and start a new scheme against the heir
			scheme_owner = { trigger_event = grand_ambitions.0500 }
		}

		# EP3, Hasan story cycle stuff
#		if = {
#			limit = {
#				root = character:3096
#			}
#			save_scope_as = ismaili_caliph
#			character:41702 ?= {
#				trigger_event = {
#					id = hasan_sabbah.1030
#					days = 1
#				}
#			}
#		}
#		if = {
#			limit = {
#				character:41702 ?= {
#					any_owned_story = {
#						type = story_hasan
#						var:ultimate_foe ?= root
#					}
#				}
#			}
#			character:41702 = {
#				random_owned_story = {
#					type = story_hasan
#					if = {
#						limit = {
#							scope:killer = character:41702
#						}
#						hasan_sabbah_end_war = {
#							HASAN = character:41702
#							SELJUK = root
#						}
#					}
#					else = {
#						set_variable = {
#							name = ultimate_foe
#							value = root.player_heir
#						}
#					}
#				}
#			}
#		}

		if = {
			limit = {
				is_diarch = yes
				liege = { has_diarchy_active_parameter = diarchy_is_co_rulership }
			}
			end_diarchy = yes
		}

#		# EP3, Wallada transfers possessions to her heir
#		if = {
#			limit = {
#				root = character:andalusian_0003
#				exists = player_heir
#			}
#			# save Wallada's scope
#			save_scope_as = wallada
#			random_character_artifact = {
#				limit = {
#					has_artifact_modifier = double_moon_modifier
#				}
#				set_owner = scope:wallada.primary_heir
#				save_scope_as = double_moon_book
#			}
#			primary_heir = {
#				trigger_event = {
#					id = ep3_story_cycle_violet_poet.0004
#					days = 1
#				}
#			}
#		}

		# Populate new contracts for laamp heirs.
		player_heir ?= {
			trigger_event = {
				id = ep3_laamps.9982
				days = 1
			}
		}

		# EP3, Legitimist supporter payment inheritance
		if = {
			limit = {
				has_variable_list = legitimist_supporters
			}
			every_in_list = {
				variable = legitimist_supporters
				limit = {
					NOT = {
						is_target_in_variable_list = {
							name = legitimist_payed_supporters
							target = this
						}
					}
					is_alive = yes
					has_variable = legitimist_obligations_left
				}
				save_scope_as = petitioned_ruler
				root = {
					save_scope_as = previous_ruler
					player_heir ?= {
						trigger_event = {
							id = ep3_laamps.8109
							months = { 1 6 }
						}
					}
				}
			}
		}

		if = { # Nomadic - Add claim to vassals
			limit = {
				government_has_flag = "government_is_nomadic"
			}
			every_vassal = {
				if = {
					limit = {
						is_kurultai_trigger = yes
					}
					add_pressed_claim = root.primary_title
				}
				else = {
					add_unpressed_claim = root.primary_title
				}
			}
		}



		# Additional Flavor Titles
		additional_flavor_check_death_effect = yes

		#Removes special modifiers for blood bros
		mpo_remove_blood_brother_modifiers_effect = yes

		#Tracking whether Genghis is dead or not
#		if = {
#			limit =	{
#				this = character:125501
#			}
#			set_global_variable = genghis_died
#			if = {
#				limit = {
#					NOT = {
#						any_held_title = {
#							this = title:e_mongol_empire
#						}
#					}
#				}
#				set_global_variable = {
#					name = temujin_failed
#					value = yes
#					years = 50
#				}
#			}
#		}
		#Greatest of khans stuff should pass to heir during initial war phase
		if = {
			limit = {
				any_character_war = {
					using_cb = mpo_great_war_of_defiance_cb
					primary_defender = root
				}
				primary_heir = player_heir
			}
			gok_war_of_defiance_heir_transfer_effect = yes
		}

		# MPO: Summon Wealthy Visitors notification event
		if = {
			limit = { has_variable = merchant_var }
			save_scope_as = merchant
			var:merchant_employer = {
				send_interface_toast = {
					title = mpo_call_for_merchants_dead_merchant_toast
					right_icon = scope:merchant
					custom_tooltip = mpo_call_for_merchants_dead_merchant_desc
				}
			}
		}
		if = {
			limit = {
				any_held_title = {
					has_variable = guaranteed_disastrous_succession
				}
			}
			primary_heir = {
				add_character_flag = had_mongolia_split
				save_scope_as = mongol_heir
			}
			every_held_title = {
				limit = {
					has_variable = guaranteed_disastrous_succession
				}
				remove_variable = guaranteed_disastrous_succession
			}
			break_up_mongol_empire_effect = yes
			scope:mongol_heir = {
				if = {
					limit = {
						has_character_flag = had_mongolia_split
					}
					trigger_event = {
						id = mpo_chaotic_kurultai_succession.1000
						days = 1
					}
				}
			}
		}

		#ACH Officiator death during a coronation_advocate_domain

		if = {
			limit = {
				has_character_flag = coronation_officiator
				involved_activity ?= {
					has_activity_type = activity_coronation
				}
			}
			involved_activity ?= {
				save_scope_as = activity
				activity_host = {
					trigger_event = {
						id = coronation_events.0301
						days = 1
					}
				}
			}
		}

		#ACH Crowned laws reset. If an heir is already crowned, their laws will be reset after the inheritance.

		if = {
			limit = {
				coronation_trigger = yes
				NOT = { has_game_rule = coronation_laws_off }
			}
			if = {
				limit = {
					has_realm_law = crowned_king
				}
				remove_realm_law = crowned_king
				add_realm_law_skip_effects = uncrowned
			}
			else_if = {
				limit = {
					has_realm_law = crowned_emperor
				}
				remove_realm_law = crowned_emperor
				add_realm_law_skip_effects = uncrowned
			}
		}

		### TGP ###
		## China ##
		# Imperial murder catalyst
		if = {
			limit = {
				exists = scope:killer
				exists = title:h_china.holder
				house ?= title:h_china.holder.house
			}
			save_scope_as = imperial_death
			situation:dynastic_cycle = {
				if = {
					limit = {
						scope:imperial_death = title:h_china.holder
						situation_top_has_catalyst = catalyst_hegemon_murdered
					}
					trigger_situation_catalyst = {
						catalyst = catalyst_hegemon_murdered
						character = scope:imperial_death
					}
				}
				else_if = {
					limit = {
						situation_top_has_catalyst = catalyst_imperial_family_member_murdered
					}
					trigger_situation_catalyst = {
						catalyst = catalyst_imperial_family_member_murdered
						character = scope:imperial_death
					}
				}
			}
		}

		# Merit based governments
		if = {
			limit = {
				government_allows = merit
			}
			# If you have the aspriation to allow heirs to inherit some merit - give them merit
			if = {
				limit = {
					house ?= {
						OR = {
							has_house_aspiration_parameter = inherit_merit_bonus_1
							has_house_aspiration_parameter = inherit_merit_bonus_2
							has_house_aspiration_parameter = inherit_merit_bonus_3
							has_house_aspiration_parameter = inherit_merit_bonus_4
						}
					}
				}
				save_scope_as = meritorious_parent
				save_scope_value_as = { name = meritorious_parent_merit value = merit }
				every_child = {
					limit = {
						trigger_if = {
							limit = {
								root.top_liege ?= {
									OR = {
										has_realm_law = male_only_law
										has_realm_law = male_preference_law
									}
								}
							}
							is_female = no
						}
						trigger_else_if = {
							limit = {
								root.top_liege ?= {
									OR = {
										has_realm_law = female_only_law
										has_realm_law = female_preference_law
									}
								}
							}
							is_female = yes
						}
						trigger_else = {
							always = yes
						}
					}
					# We fire the effect in a delayed event to enable a notification
					trigger_event = { id = tgp_china_career.0020 delayed = yes }
				}
			}
		}

		## Concubine Management on Imperial Demise ##

		if = {
			limit = {
				government_has_flag = government_has_merit
				is_independent_ruler = yes
				highest_held_title_tier >= tier_empire
			}
			every_concubine = {
				limit = {
					NOT = {
						has_trait = celibate
					}
				}
				add_trait = celibate # Once an imperial concubine, always an imperial concubine
			}
		}

		## Mandala ##
		if = {
			limit = {
				government_has_flag = government_is_mandala
				exists = player_heir
			}
			if = {
				limit = { has_variable = has_picked_mandala_decree }
				player_heir = {
					set_variable = {
						name = has_picked_mandala_decree
						value = flag:yes
					}
				}
			}
			if = {
				limit = {
					OR = {
						NOT = { 
							player_heir = { has_variable = not_subject_to_succession_trials }
						}
						primary_title.tier > player_heir.primary_title.tier
					}
				}
				#You're a kid Mandala who inherited a succession but then died before reaching adulthood
				if = {
					limit = { has_variable = mandala_succession_waiting_on_adulthood }
					#The old adult
					var:mandala_succession_waiting_on_adulthood = { save_scope_as = deceased_mandala_ruler }
					#The dead kid
					save_scope_as = deceased_kid_mandala_ruler
					save_scope_value_as = {
						name = deceased_kid_mandala_ruler_piety
						value = piety
					}
					save_scope_value_as = {
						name = deceased_kid_mandala_ruler_piety_level
						value = piety_level
					}
					#You do _not_ get any progress towards Godlike
					player_heir = {
						trigger_event = {
							id = tgp_east_asia_mandala_events.0102
							delayed = yes
						}
					}
				}
				else = {
					save_scope_as = deceased_mandala_ruler
					save_scope_value_as = {
						name = deceased_mandala_ruler_piety_level
						value = piety_level
					}
					#If you don't get any effective piety level
					if = {
						limit = { scope:deceased_mandala_ruler_piety_level <= player_heir.piety_level }
						#Have some piety instead
						save_scope_value_as = {
							name = deceased_mandala_ruler_piety
							value = {
								add = piety
								multiply = 0.3
								min = minor_piety_value
							}
						}
					}
					#Set up the scopes in case we should level up the heir's Piety Level cap
					if = {
						limit = {
							#Bloodline
							player_heir ?= {
								house = prev.house
								is_close_or_extended_family_of = prev
							}
							#Needs to be at least Religious Icon
							piety_level >= max_piety_level
						}
						if = {
							limit = {
								OR = {
									has_character_modifier = budding_deity_modifier
									has_character_modifier = budding_godhood_modifier
								}
							}
							save_scope_as = apply_godlike
						}
						else_if = {
							limit = { has_character_modifier = budding_divinity_modifier }
							save_scope_as = apply_budding_deity
						}
						else = { save_scope_as = apply_budding_divinity }
					}
					#Get some piety -- and maybe a Piety Level cap increase, depending on predecessor's Piety Level
					player_heir = {
						trigger_event = {
							id = tgp_east_asia_mandala_events.0100
							delayed = yes
						}
					}
				}
			}
			#Lose Mandala if you change to a monotheist faith
			mandala_no_longer_polytheist_effect = yes
		}


		# ACH Purge Pretenders Oath reward

		if = {
			limit = {
				has_variable = purge_oath_previous_law
			}
			switch = {
				trigger = var:purge_oath_previous_law
				flag:confederate_partition_succession_law = {
					add_realm_law_skip_effects = confederate_partition_succession_law
				}
				flag:partition_succession_law = {
					add_realm_law_skip_effects = partition_succession_law
				}
				flag:high_partition_succession_law = {
					add_realm_law_skip_effects = high_partition_succession_law
				}
				flag:clan_antagonistic_partition_succession_law = {
					add_realm_law_skip_effects = clan_antagonistic_partition_succession_law
				}
				flag:clan_competitive_partition_succession_law = {
					add_realm_law_skip_effects = clan_competitive_partition_succession_law
				}
				flag:clan_impassive_partition_succession_law = {
					add_realm_law_skip_effects = clan_impassive_partition_succession_law
				}
				flag:clan_friendly_partition_succession_law = {
					add_realm_law_skip_effects = clan_friendly_partition_succession_law
				}
			}

			if = {
				limit = {
					has_character_flag = ach_purge_oath_administrative
				}
				house ?= {
					remove_house_modifier = oath_of_purge_pretenders_house
				}
			}
		}
		if = {
			limit = {
				has_global_variable = the_maitreya_has_descended
				has_character_modifier = claimed_mantle_of_maitreya_modifier
			}
			remove_global_variable = the_maitreya_has_descended
		}
		# Ceremonial liege family
		if = {
			limit = {
				player_heir ?= { is_ai = no }
				tgp_is_in_ceremonial_house_trigger = yes
				any_held_title = { is_noble_family_title = yes }
			}
			if = {
				limit = { is_playable_character = no }
				set_player_character = top_liege.primary_title.var:administrative_ui_special_title.holder
			}
			create_title_and_vassal_change = {
				type = appointment
				save_scope_as = change
			}
			random_held_title = {
				limit = { is_noble_family_title = yes }
				change_title_holder = {
					holder = top_liege.primary_title.var:administrative_ui_special_title.holder
					change = scope:change
				}
			}
			resolve_title_and_vassal_change = scope:change
		}
		every_relation = {
			type = disciple
			limit = {
				is_ai = no
			}
			random_relation = {
				type = fellow_disciple
				limit = {
					merit_level > prev.merit_level
					is_ai = yes
				}
				save_scope_as = superior_fellow_disciple
			}
			every_relation = {
				type = fellow_disciple
				limit = {
					merit_level < prev.merit_level
					is_ai = yes
				}
				add_to_list = potential_new_disciples
			}
			root = { save_scope_as = deceased_elder }
			if = {
				limit = {
					is_available_adult = yes
				}
				trigger_event = {
					id = tgp_china_career.0030
				}
			}
		}
		#Beatify dead order founders
		if = {
			limit = {
				has_pam_dlc_trigger = yes
				has_variable = founding_monastic
				rite = {
					OR = {
						rite_has_tenet = tenet_dulia
						has_tenet_status = {
							tenet = tenet_dulia
							status = permitted
						}
					}
				}
				OR = {
					piety_level >= 3
					AND = {
						has_trait = devoted
						has_trait_xp = {
							trait = devoted
							value >= 65
						}
					}
				}
			}
			pam_pick_founder_burial_province_effect = yes
			#Want to send notifications to players that are patron, founder or family members
			if = {
				limit = {
					faith = {
						any_faith_holy_order = {
							leader = root
							holy_order_patron ?= {
								is_ai = no
							}
						}
					}
				}
				faith = {
					random_faith_holy_order = {
						limit = {
							leader = root
							holy_order_patron ?= {
								is_ai = no
							}
						}
						holy_order_patron = {
							add_to_list = dead_monastic_notified
						}
					}
				}
			}
			if = {
				limit = {
					primary_title = {
						has_variable = founder
						var:founder = {
							is_alive = yes
							is_ai = no
						}
					}
				}
				primary_title = {
					var:founder = {
						add_to_list = dead_monastic_notified
					}
				}
			}
			if = {
				limit = {
					exists = dynasty
				}
				dynasty = {
					every_dynasty_member = {
						limit = {
							is_ai = no
						}
						add_to_list = dead_monastic_notified
					}
				}
			}
			every_in_list = {
				list = dead_monastic_notified
				send_interface_message = {
					type = msg_monastic_leader_beatified
					title = monastic_founder_beatified_t
					desc = monastic_founder_beatified_desc
					left_icon = root
					right_icon = root.primary_title
					show_as_tooltip = {
						if = {
							limit = { exists = scope:consecration_province }
							pam_canonize_saint_effect = {
								CANONIZER = root
								CANDIDATE = root
								CONSECRATION_PROVINCE = scope:consecration_province
								PRESET = no
							}
						}
						else = {
							root = { add_trait = saint }
						}
					}
				}
			}
			if = {
				limit = { exists = scope:consecration_province }
				pam_canonize_saint_effect = {
					CANONIZER = root
					CANDIDATE = root
					CONSECRATION_PROVINCE = scope:consecration_province
					PRESET = no
				}
			}
			# Every burial site in the faith is taken; beatify anyway rather than drop the founder
			else = {
				add_trait = saint
			}
		}
		#PAM - Holy Myron: the herb-gathering chaplain dies en route; inform whoever sent them
		if = {
			limit = {
				has_variable = pam_holy_myron_journey_tier
				exists = var:pam_holy_myron_liege
				var:pam_holy_myron_liege = { is_alive = yes }
			}
			save_scope_as = myron_chaplain
			var:pam_holy_myron_liege = {
				trigger_event = pam_holy_myron.0020
			}
		}
		# CE3 achievement: Where There's a Will — the succession demander killed the cleric
		if = {
			limit = {
				exists = var:ce3_will_demander
				exists = scope:killer
				scope:killer = var:ce3_will_demander
				var:ce3_will_demander = { is_alive = yes }
			}
			var:ce3_will_demander = {
				set_variable = {
					name = ce3_will_victim
					value = root
				}
			}
		}
		# CE3 achievement: The Father, the Son, and the Holy Grandson - pass the theocrat dynasty chain to the player's same-dynasty heir
		if = {
			limit = {
				is_ai = no
				has_variable = ce3_theocrat_dynasty_chain
				exists = dynasty
				player_heir ?= { dynasty ?= root.dynasty }
			}
			save_scope_value_as = {
				name = ce3_theocrat_dynasty_chain_predecessor
				value = var:ce3_theocrat_dynasty_chain
			}
			player_heir = {
				trigger_event = {
					on_action = ce3_theocrat_dynasty_chain_succession
					days = 1
				}
			}
		}
		#If you are a Christian ruler who does not take pam_decision_last_rites their will have their legitimacy and vassal opinion lowered
		if = {
			limit = {
				is_adult = yes
				has_pam_dlc_trigger = yes
				NOT = {
					has_character_flag = did_last_rites_flag
				}
				health <= death_chance_dying_health
				has_spiritual_fulfillment_type = christian_fulfillment
				root.rite = {
					has_at_least_tenet_status = {
						tenet = tenet_communion
						status = permitted
					}
					has_at_least_tenet_status = {
						tenet = tenet_confession
						status = permitted
					}
				}
			}
			every_vassal_or_below = {
				vassal_stance = zealot
				custom = every_zealot_vassal
				add_opinion = {
					modifier = no_last_rites_opinion
					target = root
					opinion = -30
				}
			}
			if = {
			  limit = { is_valid_for_legitimacy_change = yes }
			  add_legitimacy = massive_legitimacy_loss
			}
		}
#		# PAM - Catalysts
#		if = {
#			limit = {
#				pam_head_of_rite_had_short_reign_trigger = yes
#				situation:the_christian_church ?= {
#					situation_top_has_catalyst = catalyst_clergy_hor_short_reign
#				}
#			}
#			situation:the_christian_church = {
#				trigger_situation_catalyst = catalyst_clergy_hor_short_reign
#			}
#		}

		#Piety loss when someone kills them, but not in battle, and not if execution already applied it
		if = {
			limit = {
				exists = scope:killer
				scope:killer != root
				scope:killer = { is_alive = yes }
				NOT = { has_character_flag = clerical_kill_consequences_applied_on_execution }
				NAND = {
					is_in_army = yes
					scope:killer = { is_in_army = yes }
				}
			}
			scope:killer = {
				clerical_kill_piety_effect = {
					VICTIM = root
					KILLER = scope:killer
				}
			}
		}

		# Only the highest-ranking office contributes a kill catalyst
#		if = {
#			limit = {
#				pam_the_christian_church_head_of_faith_murdered_catalyst_trigger = yes
#			}
#			if = {
#				limit = {
#					situation:the_christian_church ?= {
#						situation_top_has_catalyst = catalyst_the_christian_church_head_of_faith_murdered
#					}
#				}
#				situation:the_christian_church = {
#					trigger_situation_catalyst = catalyst_the_christian_church_head_of_faith_murdered
#				}
#			}
#		}
#		else_if = {
#			limit = {
#				pam_clergy_cardinal_murdered_catalyst_trigger = yes
#			}
#			if = {
#				limit = {
#					situation:the_christian_church ?= {
#						situation_top_has_catalyst = catalyst_clergy_cardinal_murdered
#					}
#				}
#				situation:the_christian_church = {
#					trigger_situation_catalyst = catalyst_clergy_cardinal_murdered
#				}
#			}
#		}
#		else_if = {
#			limit = {
#				pam_clergy_head_of_rite_murdered_catalyst_trigger = yes
#			}
#			if = {
#				limit = {
#					situation:the_christian_church ?= {
#						situation_top_has_catalyst = catalyst_clergy_head_of_rite_murdered
#					}
#				}
#				situation:the_christian_church = {
#					trigger_situation_catalyst = catalyst_clergy_head_of_rite_murdered
#				}
#			}
#		}
#		else_if = {
#			limit = {
#				pam_clergy_archbishop_murdered_catalyst_trigger = yes
#			}
#			if = {
#				limit = {
#					situation:the_christian_church ?= {
#						situation_top_has_catalyst = catalyst_clergy_archbishop_murdered
#					}
#				}
#				situation:the_christian_church = {
#					trigger_situation_catalyst = catalyst_clergy_archbishop_murdered
#				}
#			}
#		}
#		else_if = {
#			limit = {
#				pam_clergy_court_chaplain_murdered_catalyst_trigger = yes
#			}
#			if = {
#				limit = {
#					situation:the_christian_church ?= {
#						situation_top_has_catalyst = catalyst_clergy_court_chaplain_murdered
#					}
#				}
#				situation:the_christian_church = {
#					trigger_situation_catalyst = catalyst_clergy_court_chaplain_murdered
#				}
#			}
#		}
		if = { # Murder of a schism-rite head by the opposing rite feeds Great Schism progress
			limit = {
				has_pam_dlc_trigger = yes
				pam_died_from_murder_reason_trigger = yes
				exists = scope:killer
				pam_schism_head_of_rite_and_opposing_character_trigger = {
					HEAD = root
					OTHER = scope:killer
				}
			}
			pam_change_great_schism_progress_effect = {
				VALUE = pam_great_schism_progress_head_of_rite_murdered_value
				TT = pam_great_schism_progress_head_of_rite_murdered_tt
			}
		}
#		if = {
#			limit = {
#				pam_the_christian_church_ruler_died_in_battle_against_non_christian_catalyst_trigger = yes
#			}
#			situation:the_christian_church = {
#				trigger_situation_catalyst = catalyst_the_christian_church_ruler_died_in_battle_against_non_christian
#			}
#		}
		pam_cardinal_vacancy_on_death_effect = yes
		if = {
			limit = { has_variable = pam_propagate_word_of_my_sainthood }
			trigger_event = {
				on_action = pam_propagate_word_of_my_sainthood_convert
				days = 1
			}
		}
		if = {
			limit = { has_personal_tenet_flag = tenet_dulia_personal_sainthood_chance }
			trigger_event = {
				on_action = pam_dulia_personal_sainthood_convert
				days = 1
			}
		}
		#Clean up puppet modifiers
		# puppet:X asserts on characters without playable data (e.g. easter eggs); only playable chars can own puppets.
		if = {
			limit = {
				is_landed = yes
				highest_held_title_tier >= tier_county
				OR = {
					has_theological_agent_puppet_trigger = yes
					exists = puppet:external_ruler_puppet
				}
			}
			puppet:external_ruler_puppet ?= {
				remove_puppet_modifiers_effect = yes
			}
			puppet:external_theological_agent_puppet ?= {
				remove_puppet_modifiers_effect = yes
			}
			puppet:theological_agent_puppet ?= {
				remove_puppet_modifiers_effect = yes
			}
		}
	}

	events = {
		death_management.0096	# Updates marriage opinions of other spouses if relevant.
		death_management.0097	# Sets a flag if the dead one was someone you loved (to make suicide available)
		death_management.0099 	# If spouse is pregnant, save as variable
		death_management.0001 	# Finds characters which would care about death for notifications etc.
		intrigue_dread.4012		# Interrupts this event chain for the imprisoner when their prisoner dies.
		stewardship_duty.1065 	# Removes the patron buff from their employer when this character dies.
		stewardship_duty.1067 	# When you die removes your clients fron your court.
		great_holy_war.0024		# Replace recipient for ongoing GHW.
		great_holy_war.0028 	# Beneficiary died, reset and replace.
		great_holy_war.0080 	# ghw_sponsor died, replace.
		great_holy_war.0083		# ghw fallback beneficiary dies.
		religious_decision.0301 # ancestor died and needs to be buried.
		religious_decision.0311 # Dynasty member has died and you can raise a runestone
		pam_decision_events.0016	# PAM: Heir may raise a Khachkar to an ancestor
		game_rule.2				# Exclave Independence
		martial_authority.2057	# Right-Hand Person Dies
		martial_authority.2055  # Right-handed Person (person with right-hand) Died
		fp1_yearly.0052			# FP1: Rumoured Draugr
		fp1_yearly.1061			# FP1: Ship Burial
		fp1_other_decisions.0062	# FP1: someone intending to HumSac you has died
		fp1_other_decisions.0063	# FP1: designated HumSac has died
		fp1_other_decisions.0064	# FP1: remove counties offended by HumSac modifier
		bp1_house_feud.9000 	# BP1: save rivals on death and fire inheritance on action
#		ep3_frankokratia_events.0021 #EP3 keep frankokratia leaders in the plot
		mpo_nomad_events.1090 #Nomad widow-marrying event
		death_management.0123 # House Relations
	}
}

story_cycle_pet_dog_removal = {
	effect = {
		every_owned_story = {
			limit = { story_type = story_cycle_pet_dog }
			end_story = yes
		}
	}
}

pam_propagate_word_of_my_sainthood_convert = {
	effect = {
		set_dead_character_variable = {
			name = pam_propagate_word_of_my_sainthood
			years = 100
		}
	}
}

pam_dulia_personal_sainthood_convert = {
	effect = {
		set_dead_character_variable = {
			name = pam_dulia_personal_sainthood
			years = 100
		}
	}
}

# Root = the player's heir, one day after the player's same-dynasty predecessor died
# scope:ce3_theocrat_dynasty_chain_predecessor = the predecessor's chain length
ce3_theocrat_dynasty_chain_succession = {
	trigger = {
		is_ai = no
		exists = scope:ce3_theocrat_dynasty_chain_predecessor
		government_has_flag = government_is_theocracy
		any_held_title = { has_clerical_region = yes }
	}
	effect = {
		set_variable = {
			name = ce3_theocrat_dynasty_chain
			value = {
				add = scope:ce3_theocrat_dynasty_chain_predecessor
				add = 1
			}
		}
		if = {
			limit = { var:ce3_theocrat_dynasty_chain >= 3 }
			add_achievement_global_variable_effect = {
				VARIABLE = ce3_07_the_father_the_son_and_the_holy_grandson_achievement_unlocked
				VALUE = yes
			}
		}
	}
}

# Root = character
# Triggered when someone is about to die from a natural death but is given a second chance by meeting
# the has_natural_death_second_chance scripted rule
on_natural_death_second_chance = {
	effect = {
		add_character_flag = {
			flag = know_thyself_perk_delay_period
			days = 390
		}
		add_character_flag = know_thyself_has_triggered_delay
		trigger_event = death_management.9998
		trigger_event = {
			id = death_management.9999
			days = { 340 380 }
		}
	}
}
