N3OW/common/on_action/title_on_actions.txt
2025-04-13 14:34:59 -04:00

2518 lines
63 KiB
Text

#On actions about titles
# All on-actions in this file provide scope:transfer_type unless otherwise noted
# scope:transfer_type has the following permutations:
# flag:conquest
# flag:conquest_holy_war
# flag:conquest_claim
# flag:conquest_populist
# flag:inheritance
# flag:abdication
# flag:destroyed
# flag:created
# flag:usurped
# flag:granted
# flag:revoked
# flag:election
# flag:independency
# flag:returned
# flag:leased_out
# flag:lease_revoked
# flag:faction_demand
# flag:swear_fealty
# flag:stepped_down
# A title is destroyed
# root = the holder before destruction
# scope:landed_title = the title that is being destroyed
# Does *not* provide scope:transfer_type
on_title_destroyed = {
events = {
british_isles.1031 # Danelaw-England partition calc.
}
effect = {
scope:landed_title = {
every_claimant = { remove_claim = prev } # remove existing claims
}
# Adjust the size of the laamps tally.
if = {
limit = {
# Pre-filter out anything higher or lower.
scope:landed_title = { tier = tier_duchy }
has_global_variable_list = laamps_tally
}
# We don't need to check the list twice, since if they're not in it then removing them from it won't do anything.
remove_list_global_variable = {
name = laamps_tally
target = scope:landed_title
}
}
#Notify folks the latin empire has fallen
if = {
limit = { scope:landed_title = title:e_latin_empire }
frankokratia_latin_emp_end_msg_effect = yes
}
#Create byz collapse variable that defines anarchy period
if = {
limit = {
scope:landed_title = {
this = title:e_byzantium
}
}
if = {
limit = {
exists = global_var:byz_collapse_counter
}
remove_global_variable = byz_collapse_counter
}
set_global_variable = {
name = byz_collapse_counter
value = {
value = current_year
add = 100
}
}
}
# If the title of an independent admin ruler is destroyed, let's make sure we handle any stray admin vassals
if = {
limit = {
government_allows = administrative
is_independent_ruler = yes
NOT = {
any_held_title = {
tier > tier_duchy
NOT = { this = scope:landed_title }
is_noble_family_title = no
}
}
}
admin_change_government_effect = yes
}
}
}
# A title is transferred to a new character
# root = the new holder
# scope:title = the title that changes hands
# scope:previous_holder = previous holder. Might be dead
on_title_gain = {
effect = {
# EP3 ADVENTURERS BECOMING LANDED
if = {
limit = {
scope:title = { is_titular = no }
any_held_title = { has_variable = adventurer_creation_reason }
}
save_scope_as = adventurer
if = {
limit = {
NOT = { has_trait = adventurer }
}
add_trait = adventurer
}
every_courtier = {
set_variable = {
name = former_camp_leader
value = scope:adventurer
}
add_trait = adventurer_follower
}
destroy_laamp_effect = { ADVENTURER = scope:adventurer }
# EP3 - Ensure NF holders are Admin
if = {
limit = {
scope:title = { is_noble_family_title = yes }
NOT = { government_has_flag = government_is_administrative }
}
change_government = administrative_government
}
}
# Note: anything that should be run after creation can go in on_noble_family_title_created
if = {
limit = {
government_allows = administrative
is_house_head = yes
highest_held_title_tier >= tier_duchy
liege = {
is_independent_ruler = yes
government_allows = administrative
}
NOR = {
any_held_title = { is_noble_family_title = yes }
house = {
any_house_member = {
any_held_title = { is_noble_family_title = yes }
}
}
}
}
create_noble_family_effect = yes
domicile ?= { set_up_domicile_estate_effect = yes }
}
# EP3 - Ensure Emperor keeps old realm capital in admin realms & apply unique domicile building bonus if appropriate
if = {
limit = {
government_allows = administrative
is_independent_ruler = yes
highest_held_title_tier >= tier_empire
}
if = { # Ensure we keep the old realm capital
limit = {
scope:title = {
tier = tier_empire
NOT = { title_capital_county = root.capital_county }
# Constantinople must have been inherited
title_capital_county.holder = root
}
}
set_realm_capital = scope:title.title_capital_county
}
if = { # Get legitimacy from Reception Hall House Bonus
limit = {
house = { has_variable = ep3_legacy_legitimacy_counter }
primary_title = scope:title
}
trigger_event = {
id = ep3_admin_events.0010
days = 1
}
}
}
# EP3 - Fire a became governor event
else_if = {
limit = {
government_allows = administrative
is_independent_ruler = no
is_governor = yes
any_held_title = {
count < 1
NOT = { this = scope:title }
tier >= scope:title.tier
is_landless_type_title = no
is_noble_family_title = no
}
}
trigger_event = {
id = ep3_admin_events.0002
delayed = yes
}
}
scope:title = { update_dynamic_coa = yes }
if = {
limit = {
scope:title = { is_holy_order = yes }
NOT = { has_trait = order_member }
government_has_flag = government_is_holy_order
}
add_trait = order_member
}
if = {
limit = {
has_character_flag = peasant_outfit
}
remove_character_flag = peasant_outfit
}
# Did I receive a title from my sibling?
if = {
limit = {
exists = scope:previous_holder
scope:previous_holder = {
is_alive = yes
exists = var:sibling_waiting_for_land
any_sibling = {
this = root
this = scope:previous_holder.var:sibling_waiting_for_land
}
}
}
add_character_flag = {
flag = got_title_from_sibling
years = 4
}
}
# Grandeur in elective realms
if = {
limit = {
exists = var:previous_holder_grandeur_value
has_royal_court = yes
has_dlc_feature = royal_court
}
hidden_effect = {
change_current_court_grandeur = -100 # Reset to 0
change_current_court_grandeur = var:previous_holder_grandeur_value
remove_variable = previous_holder_grandeur_value
}
}
# Petition allowed again
if = {
limit = { has_variable = petition_title_cooldown }
remove_variable = petition_title_cooldown
}
# If a player is on their way to pay homage, invalidate.
if = {
limit = {
exists = scope:previous_holder
any_player = { var:homage_liege_scope ?= scope:previous_holder }
}
every_player = {
limit = {
var:homage_liege_scope ?= scope:previous_holder
NOT = { has_character_flag = currently_invalidating_petition_liege_travel }
}
current_travel_plan = { cancel_travel_plan = yes }
trigger_event = pay_homage.0601
add_character_flag = {
flag = currently_invalidating_petition_liege_travel
days = 1
}
}
}
if = {
limit = {
exists = scope:previous_holder
scope:previous_holder = {
any_character_artifact = {
has_variable = artifact_succession_title #Is this an artifact that should follow a title?
var:artifact_succession_title = { is_title_created = yes } #Does the title the artifact should follow exist?
var:artifact_succession_title = scope:title #Scope title is the artifact title
}
}
}
scope:previous_holder = {
every_character_artifact = {
limit = {
has_variable = artifact_succession_title #Is this an artifact that should follow a title?
var:artifact_succession_title = { is_title_created = yes } #Does the title the artifact should follow exist?
var:artifact_succession_title = scope:title #Scope title is the artifact title
}
if = {
limit = {
OR = {
scope:transfer_type = flag:conquest
scope:transfer_type = flag:conquest_holy_war
scope:transfer_type = flag:conquest_claim
scope:transfer_type = flag:conquest_populist
scope:transfer_type = flag:abdication
scope:transfer_type = flag:usurped
scope:transfer_type = flag:revoked
scope:transfer_type = flag:faction_demand
}
}
set_owner = {
target = root
history = {
type = conquest
actor = scope:previous_holder
recipient = root
location = scope:previous_holder.location
}
}
}
else = {
set_owner = {
target = root
history = {
type = inherited
recipient = root
}
}
}
}
}
}
# FP3 Title Transfer Notification
if = {
limit = {
exists = struggle:persian_struggle
OR = {
scope:title = title:d_sunni
scope:title = title:e_arabia
}
}
struggle:persian_struggle = { # Wet script
every_involved_ruler = {
send_interface_toast = {
type = event_toast_effect_bad
title = persian_struggle_central_title_transfer.t
left_icon = scope:previous_holder
right_icon = scope:title.holder
custom_tooltip = persian_struggle_central_title_transfer.desc
}
}
every_interloper_ruler = {
send_interface_toast = {
type = event_toast_effect_bad
title = persian_struggle_central_title_transfer.t
left_icon = scope:previous_holder
right_icon = scope:title.holder
custom_tooltip = persian_struggle_central_title_transfer.desc
}
}
}
}
#Struggle Catalyst
if = {
limit = {
scope:title.tier >= tier_county
title:e_persia = {
any_in_de_jure_hierarchy = {
this = scope:title
}
}
NOR = {
scope:transfer_type = flag:created
scope:transfer_type = flag:inheritance
}
fp3_character_uninvolved_in_struggle_trigger = yes
scope:previous_holder ?= {
fp3_character_involved_in_struggle_trigger = yes
any_character_struggle = {
phase_has_catalyst = catalyst_interloper_uninvolved_gain_struggle_titles
}
}
}
scope:previous_holder ?= {
every_character_struggle = {
limit = { phase_has_catalyst = catalyst_interloper_uninvolved_gain_struggle_titles }
activate_struggle_catalyst = {
catalyst = catalyst_interloper_uninvolved_gain_struggle_titles
character = root
}
log_debug_variable_for_persian_struggle_effect = { VAR = concession_catalyst_interloper_uninvolved_gain_struggle_titles }
}
}
}
if = {
limit = {
scope:title.tier >= tier_county
title:e_persia = {
any_in_de_jure_hierarchy = {
this = scope:title
}
}
NOR = {
scope:transfer_type = flag:created
scope:transfer_type = flag:inheritance
}
fp3_character_involved_in_struggle_trigger = yes
any_character_struggle = {
phase_has_catalyst = catalyst_gain_struggle_titles_from_interlopers_uninvolved
# Stop catalyst from affecting those who are only just now uninvolved due to losing this title
OR = {
NOT = { is_culture_involved_in_struggle = scope:previous_holder.culture }
NOT = { is_faith_involved_in_struggle = scope:previous_holder.faith }
}
}
scope:previous_holder ?= {
OR = {
fp3_character_uninvolved_in_struggle_trigger = yes
fp3_character_interloper_in_struggle_trigger = yes
}
}
}
every_character_struggle = {
limit = { phase_has_catalyst = catalyst_gain_struggle_titles_from_interlopers_uninvolved }
activate_struggle_catalyst = {
catalyst = catalyst_gain_struggle_titles_from_interlopers_uninvolved
character = root
}
log_debug_variable_for_persian_struggle_effect = { VAR = stabil_catalyst_gain_struggle_titles_from_interlopers_uninvolved }
}
}
# Achievements
if = { # FP2 El Cid
limit = {
scope:title = title:k_valencia
has_character_flag = fp2_el_cid_blood_relation_legacy
}
set_global_variable = { # DO. NOT. USE. add_achievement_global_variable_effect. IT BREAKS THE ACHIEVEMENT.
name = fp2_el_cid_achievement_unlocked
value = yes
}
}
# Am I The Chad?
if = {
limit = { root = character:easteregg_chad_uhl }
set_house = house:house_chad_uhl
}
if = {
limit = {
scope:transfer_type = flag:created
is_alive = yes
}
every_vassal = {
limit = {
has_vassal_stance = courtly
}
if = {
limit = {
scope:title.tier = tier_duchy
}
add_opinion = {
target = root
modifier = courtly_title_creation_opinion
opinion = 10
}
}
else = {
add_opinion = {
target = root
modifier = courtly_title_creation_opinion
opinion = 30
}
}
}
}
if = {
limit = {
scope:title = title:c_jerusalem
# Samaritan HoF exists
exists = title:d_samaritan.holder
# Samaritan HoF is not independent
title:d_samaritan.holder = { exists = liege }
# Samaritan HoF is not Samaritan
title:d_samaritan.holder = { NOT = { faith = faith:samaritan } }
# root is at least a king, or their liege is, or their liege's liege is
OR = {
highest_held_title_tier >= tier_kingdom
liege ?= { highest_held_title_tier >= tier_kingdom }
liege.liege ?= { highest_held_title_tier >= tier_kingdom }
}
}
create_title_and_vassal_change = {
type = created
save_scope_as = title_change
add_claim_on_loss = no
}
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
title:d_samaritan.holder = {
change_liege = {
liege = root
change = scope:title_change
}
}
}
else_if = {
limit = {
exists = liege
liege = { highest_held_title_tier >= tier_kingdom }
}
title:d_samaritan.holder = {
change_liege = {
liege = root.liege
change = scope:title_change
}
}
}
else_if = {
limit = {
exists = liege.liege
liege.liege = { highest_held_title_tier >= tier_kingdom }
}
title:d_samaritan.holder = {
change_liege = {
liege = root.liege.liege
change = scope:title_change
}
}
}
resolve_title_and_vassal_change = scope:title_change
}
# FP3 Struggle special cases
## Convert detractors to supporters if they inherit either of the titles they're detracting against.
if = {
limit = {
exists = struggle:persian_struggle
NOT = { has_trait = fp3_struggle_supporter }
OR = {
scope:title = title:d_sunni
scope:title = title:e_arabia
}
}
if = {
limit = { has_trait = fp3_struggle_detractor }
remove_trait = fp3_struggle_detractor
}
add_trait = fp3_struggle_supporter
}
# Special Legitimacy gain for being elected
if = {
limit = {
scope:title = {
has_order_of_succession = election
}
has_legitimacy = yes
}
save_scope_value_as = {
name = title_tier_minus_2
value = {
value = scope:title.tier
subtract = 2
}
}
send_interface_toast = {
type = msg_legitimacy_gain
title = legitimacy_gain_toast
left_icon = root
right_icon = scope:title
add_legitimacy = {
value = {
value = major_legitimacy_gain
multiply = scope:title_tier_minus_2
}
}
}
}
# Did I conquer a place with holy order leases not of my faith?
if = {
limit = {
scope:title = {
any_in_de_jure_hierarchy = {
tier = tier_barony
is_under_holy_order_lease = yes
county.holder = {
any_liege_or_above = { this = root }
}
lessee = {
NAND = { # Only for leases of people who are not of your faith or the holder's faith
faith = root.faith
faith = prev.county.holder.faith
}
}
}
}
}
scope:title = {
every_in_de_jure_hierarchy = {
limit = {
tier = tier_barony
is_under_holy_order_lease = yes
county.holder = {
any_liege_or_above = { this = root }
}
lessee = {
NAND = { # Only for leases of people who are not of your faith or the holder's faith
faith = root.faith
faith = prev.county.holder.faith
}
}
}
revoke_lease = yes
}
}
}
# EP3 ADVENTURERS TELEPORT TO THEIR CAMP
trigger_event = {
id = title_event.9911
days = 1
}
current_travel_plan ?= {
if = {
limit = { is_travel_with_domicile = yes }
abort_travel_plan = yes
}
}
# EP3 ADVENTURER BEING INHERITED BY LANDED
if = {
limit = {
scope:title = {
has_variable = adventurer_creation_reason
}
any_held_title = {
NOT = { has_variable = adventurer_creation_reason }
}
}
every_held_title = {
limit = { has_variable = adventurer_creation_reason }
save_scope_as = landless_adventurer_title
root = { destroy_title = scope:landless_adventurer_title }
}
}
# EP3 LAAMP SUPPORTER INVALIDATION
if = {
limit = {
exists = var:adventurer_invasion_supporter
NOT = { government_has_flag = government_is_landless_adventurer }
}
ep3_laamp_supporter_invalidated_effect = yes
}
### EP3 Admin Emperor Flavor ###
if = {
limit = {
has_ep3_dlc_trigger = yes
# You didn't just create the title
scope:title = {
tier >= tier_empire
any_past_holder = {
count >= 1
}
# Your predecessor wasn't from your same house - not much to celebrate if you got the title from dad!
previous_holder ?= {
NOT = { house = root.house }
}
}
# Admin only
government_allows = administrative
}
trigger_event = {
id = ep3_emperor_yearly.2050
days = 5
}
}
# Admin vassals get the Governor trait when they first become a governor
if = {
limit = {
is_governor = yes
NOT = { has_trait = governor }
scope:title = {
tier >= tier_duchy
}
}
add_trait = governor
}
# Additional Flavor Titles
root = { additional_flavor_check_effect = yes }
#Admin imperial succession notification event (it's a big deal)
if = {
limit = {
has_ep3_dlc_trigger = yes
government_allows = administrative
is_independent_ruler = yes
highest_held_title_tier >= tier_kingdom
scope:title = {
this = root.primary_title
}
#Checks so this event doesn't fire after character creation, although it's not really a problem if it does
trigger_if = {
limit = {
game_start_date = 867.1.1
}
current_date >= 867.1.4
}
trigger_if = {
limit = {
game_start_date = 1066.9.15
}
current_date >= 1066.9.18
}
trigger_if = {
limit = {
game_start_date = 1178.10.1
}
current_date >= 1178.10.4
}
}
save_scope_as = emperor
#Should trigger special event during fourth crusade!
if = {
limit = {
exists = global_var:byz_claimant_champion
global_var:byz_claimant_champion = {
any_owned_story = {
story_type = frankokratia_story
exists = var:byz_claimant
var:byz_claimant = {
this = root
}
}
}
}
every_vassal_or_below = {
limit = {
is_playable_character = yes
}
trigger_event = ep3_frankokratia_events.0110
}
}
else = {
if = {
limit = {
exists = root.house
}
#normal triggering
every_vassal_or_below = {
limit = {
is_playable_character = yes
exists = scope:previous_holder
government_allows = administrative
OR = {
highest_held_title_tier >= tier_duchy
liege = root
}
}
trigger_event = {
id = ep3_governor_yearly.3060
days = 1
}
}
}
}
}
# Reset raid remit
if = {
limit = {
this = top_liege
any_noble_family = { count > 0 }
}
every_noble_family = {
holder = { remove_variable = raid_estate_permission }
}
}
#Admin event about rewarding person who helped you get title
if = {
limit = {
has_ep3_dlc_trigger = yes
government_allows = administrative
has_succession_appointment_investors = scope:title
scope:title = {
any_succession_appointment_investors = {
count >= 1
candidate = root
value >= 20
NOT = {
house ?= root.house
}
is_alive = yes
is_imprisoned = no
NOR = {
has_relation_rival = root
is_at_war_with = root
}
}
}
}
save_scope_as = new_landed_admin
trigger_event = {
id = ep3_interactions_events.0600
days = { 5 10 }
}
}
# Have we been given a fair shake as a laamp, but we're sucking?
if = {
limit = {
is_landless_adventurer = yes
is_ai = yes
scope:previous_holder = { is_ai = yes }
primary_title = {
any_past_holder = { count >= 4 }
}
NOR = {
# If the heir is sufficiently impressive, then we'll keep 'em around.
prestige_level >= 2
# Legitimists are always worthwhile.
has_realm_law = camp_purpose_legitimists
# Reserve successful mercenary outfits.
AND = {
max_military_strength >= 1500
# Allow absolute decimations to destroy mercs from time to time.
current_military_strength <= 150
}
# Or those currently fighting alongside/against players.
AND = {
is_at_war = yes
OR = {
any_war_ally = { is_ai = no }
any_war_enemy = { is_ai = no }
}
}
# Depending on camp purpose, we want various skills.
AND = {
has_realm_law = camp_purpose_wanderers
OR = {
highest_skill_value >= very_high_skill_rating
prowess >= very_high_skill_rating
}
}
AND = {
has_realm_law = camp_purpose_mercenaries
OR = {
martial >= high_skill_rating
prowess >= high_skill_rating
}
}
AND = {
has_realm_law = camp_purpose_scholars
OR = {
learning >= high_skill_rating
diplomacy >= high_skill_rating
}
}
AND = {
has_realm_law = camp_purpose_explorers
OR = {
diplomacy >= high_skill_rating
stewardship >= high_skill_rating
}
}
AND = {
has_realm_law = camp_purpose_brigands
OR = {
intrigue >= high_skill_rating
prowess >= high_skill_rating
}
}
# Finally, keep anyone who's important to the player.
any_player = {
OR = {
root.dynasty ?= dynasty
is_consort_of = root
has_important_relationship_with_character_trigger = { CHARACTER = root }
any_pinned_character = { this = root }
any_pinned_character = { this = scope:previous_holder }
}
}
}
}
destroy_laamp_effect = { ADVENTURER = root }
}
#Notification for house members of title holder
if = {
limit = {
scope:title.tier > tier_barony
primary_title.tier <= scope:title.tier
government_allows = administrative
NOT = { has_character_flag = admin_title_gain_notification_sent }
house ?= {
any_house_member = {
is_ai = no
top_liege = root.top_liege
government_allows = administrative
NOT = { this = root }
}
}
}
add_character_flag = {
flag = admin_title_gain_notification_sent
days = 10
}
save_scope_as = title_gainer
house = {
every_house_member = {
limit = {
is_ai = no
top_liege = root.top_liege
government_allows = administrative
NOT = { this = scope:title_gainer }
}
send_interface_message = {
type = msg_admin_title_gained
title = msg_admin_title_gained_house.tt
desc = msg_admin_title_gained.desc
left_icon = scope:title_gainer
right_icon = scope:title
}
}
}
}
#Notification for admin investors in new title holder
if = {
limit = {
NOT = { has_character_flag = admin_title_gain_notification_sent }
scope:title = {
tier > tier_barony
any_succession_appointment_investors = {
candidate = root
is_ai = no
trigger_if = {
limit = { exists = root.house }
NOT = { house ?= root.house }
}
}
}
}
add_character_flag = {
flag = admin_title_gain_notification_sent
days = 10
}
save_scope_as = title_gainer
scope:title = {
every_succession_appointment_investors = {
candidate = root
value > 0
limit = {
is_ai = no
trigger_if = {
limit = { exists = root.house }
NOT = { house ?= root.house }
}
}
send_interface_message = {
type = msg_admin_title_gained
title = msg_admin_title_gained_investor.tt
desc = msg_admin_title_gained.desc
left_icon = scope:title_gainer
right_icon = scope:title
}
}
every_succession_appointment_investors = {
candidate = root
value < 0
limit = {
is_ai = no
trigger_if = {
limit = { exists = root.house }
NOT = { house ?= root.house }
}
}
send_interface_message = {
type = msg_admin_title_gained_foe
title = msg_admin_title_gained_foe.tt
desc = msg_admin_title_gained.desc
left_icon = scope:title_gainer
right_icon = scope:title
}
}
}
}
#Byzantium is reborn!
if = {
limit = {
scope:title = {
this = title:e_byzantium
}
exists = global_var:byz_collapse_counter
}
save_scope_as = byz_emperor
title:e_byzantium = {
every_in_de_jure_hierarchy = {
limit = {
tier <= tier_kingdom
tier >= tier_county
is_title_created = yes
exists = holder
}
if = {
limit = {
exists = holder
holder = {
is_alive = yes
NOR = {
is_in_list = byz_return_notify
any_held_title = {
this = title:e_byzantium
}
}
}
}
holder = {
add_to_list = byz_return_notify
}
}
}
}
title:e_latin_empire = {
every_in_de_jure_hierarchy = {
limit = {
tier <= tier_kingdom
tier >= tier_county
is_title_created = yes
exists = holder
}
if = {
limit = {
holder = {
is_alive = yes
NOR = {
is_in_list = byz_return_notify
any_held_title = {
this = title:e_byzantium
}
}
}
}
holder = {
add_to_list = byz_return_notify
}
}
}
}
every_in_list = {
list = byz_return_notify
trigger_event = ep3_frankokratia_events.0130
}
remove_global_variable = byz_collapse_counter
}
# Lil Johnny Lackland changes his nickname.
if = {
limit = {
has_nickname = nick_lackland_young
highest_held_title_tier >= tier_duchy
}
give_nickname = nick_lackland_ironic
}
# BP3 - Inspector perks cleanup effect
landless_inspector_cleanup_modifier = yes
### NEOW ###
## Carolingian Name Changes
# Benelux -> Lotharingia
if = {
limit = {
scope:title = { tier = tier_empire }
has_title = title:e_benelux
root = {
faith = faith:carolingian
}
}
trigger_event = {
id = NEOW_dynamic_titles.0009
}
}
if = {
limit = {
scope:title = { tier = tier_empire }
has_title = title:e_benelux
NOT = {
root = {
faith = faith:carolingian
}
}
}
trigger_event = {
id = NEOW_dynamic_titles.0010
}
}
# Netherlands -> Teisterbant
if = {
limit = {
scope:title = { tier = tier_kingdom }
has_title = title:k_frisia
root = {
faith = faith:carolingian
}
}
trigger_event = {
id = NEOW_dynamic_titles.0007
}
}
if = {
limit = {
scope:title = { tier = tier_kingdom }
has_title = title:k_frisia
NOT = {
root = {
faith = faith:carolingian
}
}
}
trigger_event = {
id = NEOW_dynamic_titles.0008
}
}
# Luxembourg -> Moselle
if = {
limit = {
scope:title = { tier = tier_kingdom }
has_title = title:k_lotharingia
root = {
faith = faith:carolingian
}
}
trigger_event = {
id = NEOW_dynamic_titles.0005
}
}
if = {
limit = {
scope:title = { tier = tier_kingdom }
has_title = title:k_lotharingia
NOT = {
root = {
faith = faith:carolingian
}
}
}
trigger_event = {
id = NEOW_dynamic_titles.0006
}
}
# Belgium -> Austrasia
if = {
limit = {
scope:title = { tier = tier_kingdom }
has_title = title:k_belgium
root = {
faith = faith:carolingian
}
}
trigger_event = {
id = NEOW_dynamic_titles.0003
}
}
if = {
limit = {
scope:title = { tier = tier_kingdom }
has_title = title:k_belgium
NOT = {
root = {
faith = faith:carolingian
}
}
}
trigger_event = {
id = NEOW_dynamic_titles.0004
}
}
## Numenorian Name Changes
# Empire of France -> Numenor
if = {
limit = {
scope:title = { tier = tier_empire }
has_title = title:e_france
root = {
faith = faith:numenorian
}
}
trigger_event = {
id = NEOW_dynamic_titles.0011
}
}
if = {
limit = {
scope:title = { tier = tier_empire}
has_title = title:e_france
NOT = {
root = {
faith = faith:numenorian
}
}
}
trigger_event = {
id = NEOW_dynamic_titles.0012
}
}
# France -> Gondor
if = {
limit = {
scope:title = { tier = tier_kingdom }
has_title = title:k_france
root = {
faith = faith:numenorian
}
}
trigger_event = {
id = NEOW_dynamic_titles.0001
}
}
if = {
limit = {
scope:title = { tier = tier_kingdom }
has_title = title:k_france
NOT = {
root = {
faith = faith:numenorian
}
}
}
trigger_event = {
id = NEOW_dynamic_titles.0002
}
}
### NEOW End
### MEMORIES - SHOULD STAY AT BOTTOM ###
# Ascended to the throne
if = {
limit = {
OR = {
is_ruler = no
highest_held_title_tier <= scope:title.tier
government_has_flag = government_is_landless_adventurer
government_allows = administrative
}
}
if = {
limit = { exists = scope:title.var:adventurer_flavor_char }
create_character_memory = {
type = became_landless_adventurer_memory
participants = {
flavor_character = scope:title.var:adventurer_flavor_char
}
}
#Only children should get childhood memories
if = {
limit = { is_adult = no }
scope:new_memory = { set_variable = childhood_memory }
}
scope:new_memory = {
save_scope_as = became_landless_adventurer_memory
set_variable = {
name = landless_title
value = scope:title
}
set_variable = {
name = reason
value = scope:transfer_type
}
set_variable = {
name = adventurer_creation_reason
value = scope:title.var:adventurer_creation_reason
}
if = {
limit = { exists = scope:lost_primary_title }
set_variable = {
name = old_primary_title
value = scope:lost_primary_title
}
}
if = { # Error suppression
limit = { exists = var:landless_title }
}
}
}
else = {
# Overwrite if there is a more specific Reason
if = {
limit = { exists = root.var:ascended_throne_reason }
root.var:ascended_throne_reason = { save_scope_as = real_transfer_type }
root = { remove_variable = ascended_throne_reason }
}
else = {
scope:transfer_type = { save_scope_as = real_transfer_type }
}
root = {
add_to_variable_list = {
name = new_titles
target = scope:title
}
trigger_event = {
id = title_event.9900
delayed = yes
}
}
}
}
### MEMORIES - SHOULD STAY AT BOTTOM ###
}
events = {
roman_restoration.0005 #New Roman Emperor gets Augustus trait. (old holder, if still alive, loses it)
roman_restoration.0199 #Restoring the Pentarchy.
religious_decision.0312 # Base game: new holder of a county with a runestone
fp1_other_decisions.0113 # FP1: new holder of a county with a runestone
delay = { days = 1 }
realm_maintenance.2001 #Big notification about inheriting emperor tier title
british_isles.1032 # Danelaw-England partition calc.
fp1_major_decisions.1011 # Harald Tanglehair becomes Harald Fairhair.
fp1_major_decisions.1012 # If Norway has just been created for the first time, flag that.
title_event.0001 # Rename West Francia to France
title_event.0002 # Rename East Francia to Germany
title_event.0011 # Asturias becomes Leon upon emergence of Castille
# If we weren't already in a diarchy but should be, put us in one.
diarchy.0011
ep3_emperor_yearly.2020 # EP3: The Patriarch refuses to crown you as new emperor because you have a criminal trait
}
}
# A title is inherited by a character
# root = the new holder
# scope:title = the title that changes hands
# scope:previous_holder = previous holder. Should be dead
on_title_gain_inheritance = {
events = {
delay = { days = 1 }
# Try to end inherited entrenched regencies automatically — we need to launder this by a day to make sure the AI realises they've inherited a diarchy.
diarchy.0113
}
effect = {
if = {
limit = {
scope:title = title:e_mongol_empire
has_character_flag = gain_mongol_succession_dread
}
add_dread = 50
}
if = {
limit = { scope:title = title:e_roman_empire }
set_variable = uses_custom_caesar_flavourization
}
# Additional Flavor Title
additional_flavor_check_effect = yes
# BP3 - Inspector perks cleanup effect
landless_inspector_cleanup_modifier = yes
}
}
# A title is usurped by a character
# root = the new holder
# scope:title = the title that changes hands
# scope:previous_holder = previous holder. Shouldn't be dead
on_title_gain_usurpation = {
events = {
}
effect = {
# Struggle Catalysts
if = {
limit = { # FP2
# We are only interested in the title within the Struggle Region
title:e_spain = {
any_in_de_jure_hierarchy = {
this = scope:title
}
}
# Only for usurpation
scope:transfer_type = flag:usurped
root = {
any_character_struggle = {
involvement = involved
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_usurp_title_fp2
CHAR = root
}
}
}
}
root = {
every_character_struggle = {
involvement = involved
limit = {
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_usurp_title_fp2
CHAR = root
}
}
activate_struggle_catalyst = {
catalyst = catalyst_usurp_title_fp2
character = root
}
}
}
}
if = {
limit = { # FP3
title:e_persia = { any_in_de_jure_hierarchy = { this = scope:title } }
scope:transfer_type = flag:usurped
root = {
any_character_struggle = {
involvement = involved
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_usurp_title_fp3
CHAR = root
}
}
}
}
root = {
every_character_struggle = {
involvement = involved
limit = {
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_usurp_title_fp3
CHAR = root
}
}
activate_struggle_catalyst = {
catalyst = catalyst_usurp_title_fp3
character = root
}
log_debug_variable_for_persian_struggle_effect = { VAR = unrest_catalyst_usurp_title_fp3 }
}
}
}
# Additional Flavor Titles
additional_flavor_check_effect = yes
# BP3 - Inspector perks cleanup effect
landless_inspector_cleanup_modifier = yes
}
}
# A title is lost by a character
# root = the old holder
# scope:title = the title that changes hands
# scope:new_holder = new holder.
on_title_lost = {
events = {
british_isles.1033 # Danelaw-England partition calc.
}
effect = {
#Make sure nobody ever has only the Kingdom of Fashion
if = {
limit = {
scope:title = { tier = tier_kingdom }
has_title = title:k_fashion
NOT = {
any_held_title = { # Only trigger if you don't have any kingdom titles other than Fashion and the kingdom you just lost. Double negative is confusing but it's the only way I could think to script it
tier = tier_kingdom
NOT = { this = title:k_fashion }
NOT = { this = scope:title }
}
}
}
destroy_title = title:k_fashion
}
#Earmark landless Scandinavians for adventuring.
if = {
limit = {
#We only want to grab tribal cultures.
culture = {
NOT = { has_cultural_era_or_later = culture_era_early_medieval }
}
#Must have lost their last piece of land.
is_playable_character = no
#If they've ventured far outside Europe, they're unlikely to come back, so we don't #want them.
scope:title = {
tier = tier_county
title_province = {
OR = {
geographical_region = world_europe
geographical_region = world_asia_minor
}
}
}
}
#Norse, Norwegians, & Danes go into the western adventurer list.
if = {
limit = {
OR = {
has_culture = culture:norse
has_culture = culture:norwegian
has_culture = culture:danish
}
}
add_to_global_variable_list = {
name = western_scandinavian_adventurer_list
target = this
}
}
#Norse & Swedes go into the eastern adventurer list.
if = {
limit = {
OR = {
has_culture = culture:norse
has_culture = culture:swedish
}
}
add_to_global_variable_list = {
name = eastern_scandinavian_adventurer_list
target = this
}
}
}
#To remove concubines if a character becomes unlanded
if = {
limit = {
is_playable_character = no
any_concubine = { count >= 1 }
}
every_concubine = { root = { remove_concubine = prev } }
}
# Transfer co-monarchies.
if = {
limit = {
OR = {
scope:transfer_type = flag:inheritance
scope:transfer_type = flag:abdication
scope:transfer_type = flag:usurped
scope:transfer_type = flag:election
scope:transfer_type = flag:faction_demand
scope:transfer_type = flag:stepped_down
}
}
save_scope_as = old_holder
trigger_event = {
id = diarchy.0025
days = 1
}
}
#Apply loss of stress to the Rivals
if = {
limit = {
scope:title.tier >= tier_county
OR = {
scope:transfer_type = flag:conquest
scope:transfer_type = flag:conquest_holy_war
scope:transfer_type = flag:conquest_claim
scope:transfer_type = flag:conquest_populist
scope:transfer_type = flag:abdication
scope:transfer_type = flag:usurped
scope:transfer_type = flag:revoked
scope:transfer_type = flag:faction_demand
}
}
root = {
save_scope_as = actor
}
every_relation ={
type = rival
send_interface_message = {
type = event_generic_neutral
title = msg_rival_dethroned
left_icon = scope:actor
right_icon = scope:title
custom_tooltip = msg_rival_dethroned_desc
stress_impact = {
base = medium_stress_loss
vengeful = medium_stress_loss
}
}
}
}
# Struggle catalyst
if = {
limit = {
any_character_struggle = {
involvement = involved
phase_has_catalyst = catalyst_revoke_title
}
OR = {
scope:transfer_type = flag:revoked
scope:transfer_type = flag:lease_revoked
}
}
every_character_struggle = {
activate_struggle_catalyst = {
catalyst = catalyst_revoke_title
character = scope:new_holder
}
}
}
# Memories
# Lost a significant title
if = {
limit = {
scope:title.tier >= highest_held_title_tier
exists = scope:new_holder
}
if = {
limit = { exists = root.var:lost_title_reason }
root.var:lost_title_reason = { save_scope_as = real_transfer_type }
root = { remove_variable = lost_title_reason }
}
else = {
scope:transfer_type = { save_scope_as = real_transfer_type }
}
root = {
add_to_variable_list = {
name = lost_titles
target = scope:title
}
trigger_event = {
id = title_event.9901
delayed = yes
}
}
}
# LEGITIMACY LOSS FROM USURPATION
if = {
limit = {
scope:transfer_type ?= flag:usurped
has_legitimacy = yes
NOT = { exists = scope:suppress_legitimacy_loss }
}
# Minus 2, since we want Duchy to be 1, and it's normally 3
save_scope_value_as = {
name = title_tier_minus_2
value = {
value = scope:title.tier
subtract = 2
}
}
send_interface_toast = {
type = msg_legitimacy_loss
title = legitimacy_loss_toast
left_icon = root
right_icon = scope:title
custom_tooltip = legitimacy_loss_usurpation_tt
add_legitimacy = {
value = {
value = miniscule_legitimacy_loss
multiply = scope:title_tier_minus_2
}
}
}
}
# EP3 LAAMP SUPPORTER INVALIDATION
ep3_laamp_supporter_invalidated_effect = yes
# EP3 - Handle admin estates when they end up outside the realm
if = {
limit = {
scope:new_holder = {
any_sub_realm_barony = {
title_province = {
any_province_domicile = {
is_domicile_type = estate
owner = {
NOT = { top_liege = scope:new_holder.top_liege }
}
}
}
}
}
}
scope:new_holder = {
every_sub_realm_barony = {
limit = {
title_province = {
any_province_domicile = {
is_domicile_type = estate
owner = {
NOT = { top_liege = scope:new_holder.top_liege }
}
}
}
}
title_province = {
every_province_domicile = {
limit = {
is_domicile_type = estate
owner = {
NOT = { top_liege = scope:new_holder.top_liege }
}
}
# First, let's do some damage to the estate - We randomize the level of damage taken
random_list = {
40 = { # Damage 1
trigger = {
num_domicile_buildings <= 6
}
set_variable = {
name = domicile_damage_count
value = 1
}
}
35 = { # Damage 2
trigger = {
num_domicile_buildings > 2
}
set_variable = {
name = domicile_damage_count
value = 2
}
}
30 = { # Damage 3
trigger = {
num_domicile_buildings > 4
}
set_variable = {
name = domicile_damage_count
value = 3
}
}
25 = { # Damage 4
trigger = {
num_domicile_buildings > 6
}
set_variable = {
name = domicile_damage_count
value = 4
}
}
20 = { # Damage 5
trigger = {
num_domicile_buildings > 8
}
set_variable = {
name = domicile_damage_count
value = 5
}
}
15 = { # Damage 6
trigger = {
num_domicile_buildings > 10
}
set_variable = {
name = domicile_damage_count
value = 6
}
}
}
while = {
count = var:domicile_damage_count
destroy_random_estate_building_variable_effect = yes
destroy_random_estate_building_effect = yes
}
# Clear the variable
if = {
limit = { has_variable = domicile_damage_count }
remove_variable = domicile_damage_count
}
# Then we'll move the estate to keep it within the realm's borders
if = { # If you have a capital (i.e. you are a governor) let's move the estate there
limit = {
owner = {
is_landed = yes
exists = capital_province
}
}
move_domicile = owner.capital_province
}
else_if = { # If not, let's move it to a landed house member in the realm, if you have one
limit = {
owner = {
top_liege ?= { save_temporary_scope_as = owner_top_liege }
house ?= {
any_house_member = {
is_governor = yes
top_liege = scope:owner_top_liege
}
}
}
}
owner = {
house = {
random_house_member = {
limit = {
is_governor = yes
exists = capital_province
top_liege = scope:owner_top_liege
}
capital_province = { save_temporary_scope_as = house_member_location }
}
}
}
move_domicile = scope:house_member_location
}
else_if = { # Otherwise move it to the realm capital
limit = {
exists = owner.top_liege.capital_province
}
move_domicile = owner.top_liege.capital_province
}
# Save the new estate location for msg
domicile_location.barony = {
save_scope_as = new_estate_location
}
# Finally, let's make sure the owner moves to the new estate location
owner = {
if = {
limit = {
is_alive = yes
is_imprisoned = no
is_travelling = no
NOT = {
exists = involved_activity
}
is_commanding_army = no
}
set_location_to_default = yes
}
# And notify the owner that all of this just happened
if = {
limit = { is_ai = no }
send_interface_message = {
type = msg_domicile_damaged
title = msg_estate_damaged.title
desc = msg_estate_damaged.desc
right_icon = scope:new_estate_location
}
}
}
}
}
}
}
}
# Additional Flavor Title
additional_flavor_check_effect = yes
if = {
limit = { scope:title = title:e_roman_empire }
remove_variable = uses_custom_caesar_flavourization
}
#Notification for house members of loser
if = {
limit = {
scope:title.tier > tier_barony
trigger_if = { # Prevent msg spam when rulers give away or lose lower tier titles
limit = {
is_landed = yes
}
primary_title.tier <= scope:title.tier
}
is_alive = yes
NOT = { has_character_flag = admin_title_loss_notification_sent }
government_allows = administrative
house ?= {
any_house_member = {
is_ai = no
trigger_if = {
limit = { exists = root.top_liege }
top_liege = root.top_liege
}
government_allows = administrative
NOT = { this = root }
}
}
}
add_character_flag = {
flag = admin_title_loss_notification_sent
days = 10
}
save_scope_as = title_loser
house = {
every_house_member = {
limit = {
is_ai = no
trigger_if = {
limit = { exists = root.top_liege }
top_liege = root.top_liege
}
government_allows = administrative
NOT = { this = scope:title_loser }
}
send_interface_message = {
type = msg_admin_title_lost
title = msg_admin_title_lost_house.tt
desc = msg_admin_title_lost.desc
left_icon = scope:title_loser
right_icon = scope:title
}
}
}
}
#Notification for admin investors in loser
if = {
limit = {
is_alive = yes
NOT = { has_character_flag = admin_title_loss_notification_sent }
scope:title = {
tier > tier_barony
any_succession_appointment_investors = {
candidate = root
is_ai = no
trigger_if = {
limit = { exists = root.house }
NOT = { house ?= root.house }
}
}
}
}
add_character_flag = {
flag = admin_title_loss_notification_sent
days = 10
}
save_scope_as = title_loser
scope:title = {
every_succession_appointment_investors = {
candidate = root
value > 0
limit = {
is_ai = no
trigger_if = {
limit = { exists = root.house }
NOT = { house ?= root.house }
}
}
send_interface_message = {
type = msg_admin_title_lost
title = msg_admin_title_lost_investor.tt
desc = msg_admin_title_lost.desc
left_icon = scope:title_loser
right_icon = scope:title
}
}
every_succession_appointment_investors = {
candidate = root
value < 0
limit = {
is_ai = no
trigger_if = {
limit = { exists = root.house }
NOT = { house ?= root.house }
}
}
send_interface_message = {
type = msg_admin_title_lost_foe
title = msg_admin_title_lost_foe.tt
desc = msg_admin_title_lost.desc
left_icon = scope:title_loser
right_icon = scope:title
}
}
}
}
# Lil Johnny Lackland changes his nickname.
if = {
limit = {
has_nickname = nick_lackland_ironic
scope:title.tier >= tier_duchy
}
give_nickname = nick_lackland_old
}
# BP3 - Inspector perks cleanup effect
landless_inspector_cleanup_modifier = yes
}
}
# A claim is gained by a character
# root = the claimant
# scope:title = the title that is claimed
# scope:transfer_type = flag:inheritance or none
on_explicit_claim_gain = {
effect = {
if = {
limit = {
title:k_england.holder = root
}
title:k_england = {
update_dynamic_coa = yes
}
}
# Struggle Catalyst
if = { # FP2
limit = {
NOT = { scope:transfer_type = flag:inheritance }
root = {
any_character_struggle = {
is_struggle_type = iberian_struggle
involvement = involved
}
}
title:e_spain = { any_in_de_jure_hierarchy = { this = scope:title } }
}
root = {
every_character_struggle = {
involvement = involved
limit = {
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_gain_claim_on_title_fp2
CHAR = root
}
}
activate_struggle_catalyst = {
catalyst = catalyst_gain_claim_on_title_fp2
character = root
}
}
}
}
else_if = { # FP3
limit = {
NOT = { scope:transfer_type = flag:inheritance }
root = {
any_character_struggle = {
is_struggle_type = persian_struggle
involvement = involved
}
}
title:e_persia = { any_in_de_jure_hierarchy = { this = scope:title } }
}
root = {
every_character_struggle = {
involvement = involved
limit = {
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_gain_claim_on_title_fp3
CHAR = root
}
}
activate_struggle_catalyst = {
catalyst = catalyst_gain_claim_on_title_fp3
character = root
}
log_debug_variable_for_persian_struggle_effect = { VAR = unrest_catalyst_gain_claim_on_title_fp3 }
}
}
}
}
}
# A claim is lost by a character
# root = the claimant
# scope:title = the title that was claimed
on_explicit_claim_lost = {
effect = {
if = {
limit = {
title:k_england.holder = root
}
title:k_england = {
update_dynamic_coa = yes
}
}
}
}
# A title change makes the character rank up in the landed tiers (eg Duke -> King)
# root = character ranking up
# scope:title = old primary title
on_rank_up = { # Will not fire during history execution or for dying characters
events = {
}
effect = {
if = {
limit = { is_landed = yes }
add_achievement_flag_effect = { FLAG = achievement_moving_up_in_the_world_flag }
}
if = {
limit = {
is_ai = no
is_landed = yes
highest_held_title_tier = tier_empire
}
add_achievement_global_variable_effect = {
VARIABLE = rags_to_riches_to_rags_to_riches_first_empire
VALUE = yes
}
}
if = {
limit = {
is_ai = no
is_landed = yes
highest_held_title_tier = tier_empire
exists = global_var:rags_to_riches_to_rags_to_riches_adventurer
}
add_achievement_global_variable_effect = {
VARIABLE = finished_rags_to_riches_to_rags_to_riches_achievement
VALUE = yes
}
}
update_embassies_effect = yes
every_ally = {
update_embassies_effect = yes
}
if = {
limit = { is_independent_ruler = yes }
remove_variable = use_co_ruler_title
}
# Make a note of ranking up for stele purposes.
if = {
limit = {
# DLC check.
has_fp1_dlc_trigger = yes
# Is the culture eligible?
fp1_can_raise_stele_trigger = yes
# Aaaaand, for balance reasons, were they landed already?
exists = scope:title
}
set_variable = {
name = recent_rank_increase
value = root.primary_title
years = 5
}
}
# Remove any rank-inappropriate modifiers (e.g., baron buffs).
remove_character_modifier = mandate_baronial_troops_trained_modifier
remove_character_modifier = mandate_baronial_troops_half_trained_modifier
# Additional Flavor Title
additional_flavor_check_effect = yes
#Admin kings becoming emperors need their MAA transferred to new primary title
if = {
limit = {
is_independent_ruler = yes
government_has_flag = government_is_administrative
scope:title = {
any_title_maa_regiment = {
count >= 1
}
}
}
scope:title = {
transfer_title_maa_ownership = root.primary_title
}
}
}
}
# A title change makes the character rank down in the landed tiers (eg King -> Duke)
# root = character ranking down
# scope:title = old primary title
on_rank_down = { # Will not fire during history execution or for dying characters
events = {
}
effect = {
if = {
limit = {
NOR = {
has_trait = humble
has_trait = content
has_trait = generous
}
}
add_character_flag = {
flag = make_suicide_available
years = 5
}
set_variable = {
name = rank_demoted
value = yes
}
}
update_embassies_effect = yes
every_ally = {
update_embassies_effect = yes
}
# Inform hostage havers
if = {
limit = {
any_home_court_hostage = { count >= 1 }
}
save_scope_as = home_court
every_home_court_hostage = {
save_scope_as = hostage
warden = {
save_scope_as = warden
trigger_event = { id = bp2_hostage_system.0410 days = 5 }
}
}
}
# Additional Flavor Title
additional_flavor_check_effect = yes
}
}
# A character gains a vassal
# root = character gaining vassal
# scope:vassal = vassal being gained
# scope:old_liege = the previous liege of the vassal. Might be the null character (vassal used to be a non-ruler or independent), so make sure to use "exists" checks where relevant
on_vassal_gained = {
events = {
realm_maintenance.1000 # Notify vassals of new liege
}
effect = {
# EP3 LANDLESS CANNOT HAVE VASSALS
if = {
limit = { has_any_landed_title_trigger = no }
save_scope_as = new_liege
if = {
limit = { is_independent_ruler = no }
create_title_and_vassal_change = {
type = swear_fealty
save_scope_as = change
add_claim_on_loss = no
}
change_liege = {
liege = scope:new_liege.liege
change = scope:change
}
resolve_title_and_vassal_change = scope:change
}
else = {
create_title_and_vassal_change = {
type = independency
save_scope_as = change
add_claim_on_loss = no
}
scope:vassal = {
becomes_independent = { change = scope:change }
}
resolve_title_and_vassal_change = scope:change
}
}
# Additional Flavor Title
scope:vassal = {
additional_flavor_check_effect = yes
}
}
}
# A vassal changes their liege
# root = vassal changing their status
# scope:old_liege = the previous liege of the vassal
# It is also fired for rulers gaining independence, those can be identified by checking current liege
on_vassal_change = {
effect = {
if = {
limit = {
OR = {
liege ?= {
NOT = { government_allows = administrative }
}
AND = {
is_independent_ruler = yes
primary_title.tier <= tier_duchy
}
}
any_held_title = { is_noble_family_title = yes }
}
every_held_title = {
limit = { is_noble_family_title = yes }
save_scope_as = title_to_destroy
root = { destroy_title = scope:title_to_destroy }
}
}
### GOVERNORS CHANGE GOVERNMENT IF NEW LIEGE IS NOT ADMINISTRATIVE
if = {
limit = {
exists = top_liege
government_has_flag = government_is_administrative
NOT = {
top_liege = { government_has_flag = government_is_administrative }
}
}
top_liege = { save_scope_as = new_liege }
send_interface_message = {
type = msg_government_changed
title = new_liege_government_changed_title
desc = new_liege_government_changed_desc
right_icon = scope:new_liege
admin_change_government_effect = yes
}
hidden_effect = {
# VASSALS AND BELOW
every_vassal_or_below = {
limit = { government_has_flag = government_is_administrative }
send_interface_message = {
type = msg_government_changed
title = new_liege_government_changed_title
desc = new_liege_government_changed_desc
right_icon = scope:new_liege
admin_change_government_effect = yes
}
}
}
}
### If a admin duke-tier character becomes the top-liege's direct vassal, ensure that they have a noble family title
if = {
limit = {
government_allows = administrative
is_house_head = yes
highest_held_title_tier >= tier_duchy
liege = {
is_independent_ruler = yes
government_allows = administrative
}
NOR = {
any_held_title = { is_noble_family_title = yes }
house = {
any_house_member = {
any_held_title = { is_noble_family_title = yes }
}
}
}
}
create_noble_family_effect = yes
domicile ?= { set_up_domicile_estate_effect = yes }
}
### If an admin ruler becomes independent, who are not of a high enough rank, changes government
if = {
limit = {
liege = root # I.e. root is independent
government_has_flag = government_is_administrative
highest_held_title_tier < tier_kingdom
}
admin_change_government_effect = yes
}
# Additional Flavor Title
additional_flavor_check_effect = yes
}
}
# A baron is found or created for a title, E.G., due to the player using the "Give to Low Noble" action
# No transfer type here; it's always a grant
# root = the baron
# scope:liege = the person who wanted them created
# scope:title = the barony
on_baron_found_or_created_for_title = {
effect = {
add_opinion = {
target = scope:liege
modifier = received_title_barony
}
}
}
# Called when realm capital changes. It can be manual move, loss in conquest, move after inheritance,
# move when granted a better title, becoming landed for the first time
# root: New realm capital barony
# scope:old_capital - previous capital barony. Can be empty, can be owned by someone else
on_realm_capital_change = {
effect = {
holder = {
# Do we need to refresh their vizier's modifiers?
if = {
limit = { has_diarchy_parameter = diarchy_is_vizierate }
diarch = {
# What we're doing here is regenerating loc on the diarchs that might refer to a specific place which they no longer have access to.
## This is gonna get real gross, folks, so my apologies.
if = {
limit = { has_character_modifier = vizier_extravagance_t1_treasure_modifier }
remove_character_modifier = vizier_extravagance_t1_treasure_modifier
add_character_modifier = {
modifier = vizier_extravagance_t1_treasure_modifier
desc = vizier_extravagance_t1_treasure_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t1_activities_modifier }
remove_character_modifier = vizier_extravagance_t1_activities_modifier
add_character_modifier = {
modifier = vizier_extravagance_t1_activities_modifier
desc = vizier_extravagance_t1_activities_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t1_property_modifier }
remove_character_modifier = vizier_extravagance_t1_property_modifier
add_character_modifier = {
modifier = vizier_extravagance_t1_property_modifier
desc = vizier_extravagance_t1_property_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t1_charity_modifier }
remove_character_modifier = vizier_extravagance_t1_charity_modifier
add_character_modifier = {
modifier = vizier_extravagance_t1_charity_modifier
desc = vizier_extravagance_t1_charity_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t2_treasure_modifier }
remove_character_modifier = vizier_extravagance_t2_treasure_modifier
add_character_modifier = {
modifier = vizier_extravagance_t2_treasure_modifier
desc = vizier_extravagance_t2_treasure_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t2_activities_modifier }
remove_character_modifier = vizier_extravagance_t2_activities_modifier
add_character_modifier = {
modifier = vizier_extravagance_t2_activities_modifier
desc = vizier_extravagance_t2_activities_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t2_property_modifier }
remove_character_modifier = vizier_extravagance_t2_property_modifier
add_character_modifier = {
modifier = vizier_extravagance_t2_property_modifier
desc = vizier_extravagance_t2_property_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t2_charity_modifier }
remove_character_modifier = vizier_extravagance_t2_charity_modifier
add_character_modifier = {
modifier = vizier_extravagance_t2_charity_modifier
desc = vizier_extravagance_t2_charity_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t3_treasure_modifier }
remove_character_modifier = vizier_extravagance_t3_treasure_modifier
add_character_modifier = {
modifier = vizier_extravagance_t3_treasure_modifier
desc = vizier_extravagance_t3_treasure_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t3_activities_modifier }
remove_character_modifier = vizier_extravagance_t3_activities_modifier
add_character_modifier = {
modifier = vizier_extravagance_t3_activities_modifier
desc = vizier_extravagance_t3_activities_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t3_property_modifier }
remove_character_modifier = vizier_extravagance_t3_property_modifier
add_character_modifier = {
modifier = vizier_extravagance_t3_property_modifier
desc = vizier_extravagance_t3_property_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t3_charity_modifier }
remove_character_modifier = vizier_extravagance_t3_charity_modifier
add_character_modifier = {
modifier = vizier_extravagance_t3_charity_modifier
desc = vizier_extravagance_t3_charity_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t4_treasure_modifier }
remove_character_modifier = vizier_extravagance_t4_treasure_modifier
add_character_modifier = {
modifier = vizier_extravagance_t4_treasure_modifier
desc = vizier_extravagance_t4_treasure_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t4_activities_modifier }
remove_character_modifier = vizier_extravagance_t4_activities_modifier
add_character_modifier = {
modifier = vizier_extravagance_t4_activities_modifier
desc = vizier_extravagance_t4_activities_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t4_property_modifier }
remove_character_modifier = vizier_extravagance_t4_property_modifier
add_character_modifier = {
modifier = vizier_extravagance_t4_property_modifier
desc = vizier_extravagance_t4_property_modifier_custom_desc.on_action
}
}
if = {
limit = { has_character_modifier = vizier_extravagance_t4_charity_modifier }
remove_character_modifier = vizier_extravagance_t4_charity_modifier
add_character_modifier = {
modifier = vizier_extravagance_t4_charity_modifier
desc = vizier_extravagance_t4_charity_modifier_custom_desc.on_action
}
}
}
}
}
}
}