N3OW/common/on_action/yearly_on_actions.txt
2026-03-10 01:56:26 +00:00

4054 lines
121 KiB
Text

# Called every Jan 1st
# Root does not exist
yearly_global_pulse = {
effect = {
# Historical character spawner
if = {
limit = {
NOT = {
has_game_rule = no_historical_characters
}
}
spawn_historical_characters_effect = yes
}
# Visigothic culture split
## Deprecated; to reenable, remove always = no line & decomment the trigger_event section.
if = {
limit = {
always = no
current_date <= 920.1.1 # No need to check this in later starts
NOT = { has_global_variable = visigothic_culture_split }
current_date >= 850.1.1
}
random = {
chance = 0 # No chance the first year of play if starting in 867
modifier = {
add = 10
current_date >= 868.1.1
}
modifier = {
add = 10 # 20% chance
current_date >= 875.1.1
}
modifier = {
add = 10 # 30% chance
current_date >= 890.1.1
}
set_global_variable = {
name = visigothic_culture_split
value = yes
}
#trigger_event = {
#id = global_culture.0001
#days = { 60 300 }
#}
}
}
# Norse culture split.
if = {
limit = {
current_date < 990.1.1
NOT = { has_global_variable = norse_culture_split }
current_date >= 950.1.1
}
random = {
chance = 10
modifier = {
add = 20 # 30% chance
current_date >= 960.1.1
}
modifier = {
add = 30 # 60% chance
current_date >= 970.1.1
}
modifier = {
add = 40 # 100% chance
current_date >= 980.1.1
}
set_global_variable = {
name = norse_culture_split
value = yes
}
trigger_event = {
id = global_culture.0011
days = { 60 300 }
}
}
}
# Anglo-Saxon -> Scottish Culture Shift
if = {
limit = {
current_date <= 1066.1.1 # No need to check this in later starts
NOT = { has_global_variable = scottish_culture_creation }
current_date >= 867.1.1
}
random = {
chance = 0 # No chance the first year of play if starting in 867
modifier = {
add = 2 # 2% chance per year
current_date >= 900.1.1
}
modifier = {
add = 8 # 10% chance per year
current_date >= 950.1.1
}
modifier = {
add = 15 # 25% chance per year
current_date >= 1000.1.1
}
set_global_variable = {
name = scottish_culture_creation
value = yes
}
trigger_event = {
id = global_culture.0031
days = { 60 300 }
}
}
}
# Mongol Invasion
if = { limit = { has_game_rule = never_mongol_invasion } }
else_if = {
limit = {
has_game_rule = random_mongol_invasion
NOT = { has_global_variable = mongols_have_appeared }
#Greatest of khans hasn't come along
NOT = { has_global_variable = greatest_of_khans_title }
#Someone's not currently trying to be greatest of khans
NOT = { has_global_variable = mpo_gok_war_ongoing }
#Temujin dying prevents Mongol invasion for at least 50 years
NOT = {
has_global_variable = temujin_failed
}
}
random = {
chance = temujin_appearance_base_chance
modifier = {
factor = 0.25
current_date < 1180.1.1
}
modifier = {
add = 3
current_date > 1200.1.1
}
modifier = {
add = 5
current_date > 1220.1.1
}
modifier = {
add = 5
current_date > 1235.1.1
}
set_global_variable = {
name = mongols_have_appeared
value = yes
}
debug_log = "Attempting to spawn mongol invasion within 240 days"
trigger_event = {
id = mongol_invasion.0001
days = { 2 240 }
}
}
}
else = {
if = {
limit = {
current_date > 1180.1.1
current_date < 1250.1.1
NOT = { has_global_variable = mongols_have_appeared }
#Greatest of khans hasn't come along
NOT = { has_global_variable = greatest_of_khans_title }
#Someone's not currently trying to be greatest of khans
NOT = { has_global_variable = mpo_gok_war_ongoing }
trigger_if = {
limit = {
game_start_date = 1178.10.1
}
years_from_game_start >= 20
}
#Temujin dying prevents Mongol invasion for at least 50 years
NOT = {
has_global_variable = temujin_failed
}
}
debug_log = "Checking for chance of spawning mongols under historical settings"
random = {
chance = temujin_appearance_base_chance
modifier = {
add = 9
current_date > 1200.1.1
}
modifier = {
add = 10
current_date > 1220.1.1
}
modifier = {
add = 20
current_date > 1235.1.1
}
modifier = {
add = 30
exists = character:125501 # Temüjin
character:125501 = {
is_physically_able_ai_adult = yes
}
}
set_global_variable = {
name = mongols_have_appeared
value = yes
}
debug_log = "Attempting to spawn mongol invasion within 240 days"
trigger_event = {
id = mongol_invasion.0001
days = { 2 240 }
}
}
}
}
# Almohad Invasion
if = {
limit = {
current_date >= 1110.1.1
current_date < 1150.1.1
NOT = { has_global_variable = spawned_almohads }
}
random = {
chance = almohad_appearance_base_chance
modifier = {
add = 3
current_date >= 1130.1.1
}
modifier = {
add = 3
current_date >= 1140.1.1
}
debug_log = "Attempting to spawn Almohads within 240 days"
trigger_event = {
id = almohad.0001
days = { 2 240 }
}
}
}
# Jomsvikings form autonomously.
if = {
limit = {
# Do we have the correct flavour pack?
has_fp1_dlc_trigger = yes
# Must be within the 10th century.
current_date >= 900.1.1
current_date < 1000.1.1
# The Jomsvikings cannot have already formed for any reason & by any method.
fp1_jomsvikings_have_not_existed_trigger = yes
# Must be a valid target somewhere in the appropriate region.
any_county_in_region = {
region = dlc_fp1_region_non_scandinavian_southern_baltic
holder = { fp1_ruler_eligible_for_jomsviking_coup = yes }
}
}
random = {
# Low initial chance, to give the player time.
chance = 5
# Add 5% every decade for the first half of the century.
modifier = {
add = 5
current_date >= 910.1.1
}
modifier = {
add = 5
current_date >= 920.1.1
}
modifier = {
add = 5
current_date >= 930.1.1
}
modifier = {
add = 5
current_date >= 940.1.1
}
modifier = {
add = 5
current_date >= 950.1.1
}
# And then add another 25% solid chance for the whole of the latter half of the century.
modifier = {
add = 25
current_date >= 960.1.1
}
# Fire the event.
trigger_event = {
id = fp1_jomsvikings.1011
days = { 30 300 }
}
}
}
# A wandering French monk appears.
if = {
limit = {
# Do we have the correct flavour pack?
has_fp2_dlc_trigger = yes
# Must be before the monk would likely die.
current_date <= 880.1.1
# The monk hasn't already tried to turn up somewhere.
NOT = {
is_target_in_global_variable_list = {
name = unavailable_unique_events
target = flag:lyonese_monk_event
}
}
}
# If there's a player in this region, we wait for one to become eligible.
if = {
limit = {
any_player = {
capital_province = { geographical_region = dlc_fp2_lyonese_monk_region }
}
}
if = {
limit = {
OR = {
any_player = {
capital_province = { geographical_region = dlc_fp2_lyonese_monk_region }
fp2_lyonese_monk_0002_valid_character_configuration_trigger = yes
}
current_date = 880.1.1
}
}
# Fire the event.
trigger_event = {
id = fp2_lyonese_monk.0002
days = { 30 90 }
}
}
}
# Otherwise, we roll randomly per year immediately.
else_if = {
limit = {
any_county_in_region = {
region = dlc_fp2_lyonese_monk_region
holder = { fp2_lyonese_monk_0002_valid_court_trigger = yes }
}
}
random = {
# Low initial chance, to give the player time.
chance = 5
# Slowly ramp up the chance till *someone* is selected, assuming we have any valid candidates.
modifier = {
add = 20
current_date >= 870.1.1
}
modifier = {
add = 25
current_date >= 873.1.1
}
modifier = {
add = 25
current_date >= 876.1.1
}
modifier = {
add = 25
current_date = 880.1.1
}
# Fire the event.
trigger_event = {
id = fp2_lyonese_monk.0002
days = { 30 90 }
}
}
}
}
# Rabbinicism becomes Monogamous
if = {
limit = {
# Rabbi Gershom bans polygamy sometime in the 11th century
current_date > "1000.01.01"
# Make sure this hasn't happened already
faith:rabbinism = {
has_doctrine = doctrine_polygamy
NOT = {
has_variable = rabbinicism_accepted_monogamy
has_variable = rabbinicism_rejected_monogamy
}
}
}
religion:judaism_religion = {
every_faith = {
limit = {
has_doctrine = doctrine_polygamy
has_doctrine = temple_authority_rabbinic_doctrine
}
if = {
limit = {
exists = religious_head
}
if = {
limit = {
religious_head = { top_liege != this }
religious_head.top_liege.faith = this
}
religious_head.top_liege = { trigger_event = jewish_events.0001 }
}
else_if = {
limit = {
religious_head = { top_liege != this }
religious_head.liege.faith = this
}
religious_head.liege = { trigger_event = jewish_events.0001 }
}
else = {
religious_head = { trigger_event = jewish_events.0001 }
}
}
else_if = {
limit = {
any_player = { # Checking players is more performant than checking faith characters and limiting it to players
faith = prev
}
}
random_player = {
limit = { faith = prev }
trigger_event = jewish_events.0001
}
}
else = {
random_faith_character = {
trigger_event = jewish_events.0001
}
}
}
}
}
# The Rise of the Seljuk
if = { limit = { has_game_rule = never_seljuk_invasion } }
else_if = { # Random Seljuk Invasion
limit = {
has_game_rule = random_seljuk_invasion
NOR = {
exists = global_var:seljuk_invasion_happened
exists = struggle:persian_struggle # We don't allow it during the struggle (not that it can happen in 930)
}
}
random = {
chance = fp3_seljuk_chance_of_appearance
modifier = {
add = 5
current_date > 965.1.1
}
modifier = {
add = 5
current_date > 985.1.1
}
modifier = {
add = 5
current_date > 1005.1.1
}
modifier = {
factor = 0.25
OR = {
culture:turkish = { culture_number_of_counties = 0 }
faith:ashari = { has_followers_trigger = no }
}
}
set_global_variable = {
name = seljuk_invasion_happened
value = yes
}
debug_log = "Attempting to spawn seljuk invasion within 240 days"
trigger_event = {
id = fp3_story_cycle_seljuks_invasion_events.0001
days = { 2 240 }
}
}
}
else_if = { # Historical Seljuk Invasion
limit = {
current_date < 1066.1.1
current_date >= 945.1.1
NOR = {
exists = global_var:seljuk_invasion_happened
exists = struggle:persian_struggle # We don't allow it during the struggle (not that it can happen in 930)
}
}
random = {
chance = fp3_seljuk_chance_of_appearance
modifier = {
add = 5
current_date > 965.1.1
}
modifier = {
add = 5
current_date > 985.1.1
}
modifier = {
add = 5
current_date > 1005.1.1
}
modifier = {
factor = 0.25
OR = {
culture:turkish = { culture_number_of_counties = 0 }
faith:ashari = { has_followers_trigger = no }
}
}
set_global_variable = {
name = seljuk_invasion_happened
value = yes
}
debug_log = "Attempting to spawn seljuk invasion within 240 days"
trigger_event = {
id = fp3_story_cycle_seljuks_invasion_events.0001
days = { 2 240 }
}
}
}
# Zanj Rebellion
if = {
limit = {
current_date = 868.1.2
NOT = { exists = global_var:zanj_rebellion_happened }
}
debug_log = "Zanj Rebellion Story Cycle Started"
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0001
days = { 100 5000 }
}
set_global_variable = {
name = zanj_rebellion_happened
value = yes
}
}
#Grant latin emperor a de jure kingdom after 100 years, if they've failed to grab any de jure lands yet
if = {
limit = {
exists = global_var:byz_collapse_counter
current_year >= global_var:byz_collapse_counter
exists = title:e_latin_empire.holder
title:e_latin_empire.holder = {
is_alive = yes
primary_title = title:e_latin_empire
capital_county.kingdom = {
empire = title:e_byzantium
any_de_jure_county = {
percent >= 0.5
holder.top_liege = {
this = title:e_latin_empire.holder
}
}
}
}
NOT = {
title:e_latin_empire = {
any_in_de_jure_hierarchy = {
tier <= tier_kingdom
}
}
}
}
title:e_latin_empire.holder = {
trigger_event = ep3_frankokratia_events.0140
}
}
#Greek anarchy CB becomes unavailable when things are settled
if = {
limit = {
exists = global_var:byz_collapse_counter
current_year >= global_var:byz_collapse_counter
OR = {
NOT = {
exists = title:e_latin_empire.holder
}
title:e_latin_empire.holder ?= {
NOT = {
any_realm_county = {
OR = {
empire = title:e_latin_empire
empire = title:e_byzantium
}
}
}
}
title:e_latin_empire.holder ?= {
any_held_title = {
this = title:e_byzantium
}
}
}
}
remove_global_variable = byz_collapse_counter
#Send notification out to everyone in de jure latin empire
if = {
limit = {
title:e_latin_empire = {
any_in_de_jure_hierarchy = {
holder ?= {
is_ai = no
}
}
}
}
title:e_latin_empire = {
every_in_de_jure_hierarchy = {
limit = {
holder ?= {
is_ai = no
}
}
if = {
limit = {
holder ?= {
NOT = { is_in_list = latin_byz_notify }
}
}
holder = {
add_to_list = latin_byz_notify
}
}
}
}
}
if = {
limit = {
title:e_byzantium = {
any_in_de_jure_hierarchy = {
holder ?= {
is_ai = no
}
}
}
}
title:e_byzantium = {
every_in_de_jure_hierarchy = {
limit = {
holder ?= {
is_ai = no
}
}
if = {
limit = {
holder = {
NOT = { is_in_list = latin_byz_notify }
}
}
holder = {
add_to_list = latin_byz_notify
}
}
}
}
}
title:e_latin_empire.holder = {
if = {
limit = {
is_ai = no
NOT = { is_in_list = latin_byz_notify }
}
add_to_list = latin_byz_notify
}
trigger_event = ep3_frankokratia_events.0081
}
title:e_byzantium.holder = {
if = {
limit = {
is_ai = no
NOT = { is_in_list = latin_byz_notify }
}
add_to_list = latin_byz_notify
}
}
title:e_byzantium = {
save_scope_as = byzantium
}
if = {
limit = {
any_in_list = {
list = latin_byz_notify
count > 0
}
}
every_in_list = {
list = latin_byz_notify
send_interface_message = {
type = msg_frankokratia_anarchy_end
title = msg_greek_anarchy_cb_loss.t
desc = msg_greek_anarchy_cb_loss.desc
right_icon = scope:byzantium
custom_tooltip = lose_greek_anarchy_cb_tt
}
}
}
}
# TGP House Relations tracking
every_active_dynasty = {
every_dynasty_house = {
every_house_relation = {
if = {
limit = {
has_variable = house_relation_duration_years
}
change_variable = {
name = house_relation_duration_years
add = 1
}
}
else = {
set_variable = {
name = house_relation_duration_years
value = 1
}
}
}
}
}
if = {
limit = {
title:h_china.holder ?= {
can_have_tributaries_trigger = yes
any_tributary = {
count < 20 # hol' up with this if China already has 20 tributaries or more
}
}
}
random_county_in_region = {
region = tgp_china_tributary_region
limit = {
holder.top_overlord = {
is_ai = yes
is_independent_ruler = yes
any_county_in_region = {
region = tgp_china_tributary_region
this = prev.primary_title
}
NOR = {
any_owned_story = {
OR = {
story_type = story_mongol_invasion
story_type = story_greatest_of_khans
}
}
mpo_has_gok_mongol_empire_trigger = yes
has_trait = conqueror
has_trait = greatest_of_khans
is_gurkhan = yes
}
}
}
holder.top_overlord = {
set_variable = {
name = wants_to_become_tributary_of_china
years = 10 # if they haven't completed a tribute mission within 10 years we stop trying
}
}
}
}
}
on_actions = {
inspiration_maintenance_global_pulse
natural_disaster_maintenance_global_pulse
}
}
# Called from code once a year for "playable" (count+) characters.
# Root is the character
yearly_playable_pulse = {
effect = {
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
save_scope_as = scoped_farmer
create_nomad_title = {
name = domicile_farmstead
holder = scope:scoped_farmer
government = peasantrepublic_government
save_scope_as = new_title
}
scope:new_title ?= {
add_title_law = single_heir_dynasty_house
}
}
if = {
limit = {
government_has_flag = government_is_prepublic
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
if = {
limit = {
has_title = title:k_papal_state
}
if = {
limit = {
roman_calculations >= 89
faith:roman_catholic = {
NOT = {
has_doctrine = doctrine_roman_dominion_9
}
}
}
faith:roman_catholic = {
remove_doctrine = doctrine_roman_dominion_1
remove_doctrine = doctrine_roman_dominion_2
remove_doctrine = doctrine_roman_dominion_3
remove_doctrine = doctrine_roman_dominion_4
remove_doctrine = doctrine_roman_dominion_5
remove_doctrine = doctrine_roman_dominion_6
remove_doctrine = doctrine_roman_dominion_7
remove_doctrine = doctrine_roman_dominion_8
add_doctrine = doctrine_roman_dominion_9
}
}
else_if = {
limit = {
roman_calculations >= 78
faith:roman_catholic = {
NOT = {
has_doctrine = doctrine_roman_dominion_8
}
}
}
faith:roman_catholic = {
remove_doctrine = doctrine_roman_dominion_1
remove_doctrine = doctrine_roman_dominion_2
remove_doctrine = doctrine_roman_dominion_3
remove_doctrine = doctrine_roman_dominion_4
remove_doctrine = doctrine_roman_dominion_5
remove_doctrine = doctrine_roman_dominion_6
remove_doctrine = doctrine_roman_dominion_7
remove_doctrine = doctrine_roman_dominion_9
add_doctrine = doctrine_roman_dominion_8
}
}
else_if = {
limit = {
roman_calculations >= 67
faith:roman_catholic = {
NOT = {
has_doctrine = doctrine_roman_dominion_7
}
}
}
faith:roman_catholic = {
remove_doctrine = doctrine_roman_dominion_1
remove_doctrine = doctrine_roman_dominion_2
remove_doctrine = doctrine_roman_dominion_3
remove_doctrine = doctrine_roman_dominion_4
remove_doctrine = doctrine_roman_dominion_5
remove_doctrine = doctrine_roman_dominion_6
remove_doctrine = doctrine_roman_dominion_8
remove_doctrine = doctrine_roman_dominion_9
add_doctrine = doctrine_roman_dominion_7
}
}
else_if = {
limit = {
roman_calculations >= 56
faith:roman_catholic = {
NOT = {
has_doctrine = doctrine_roman_dominion_6
}
}
}
faith:roman_catholic = {
remove_doctrine = doctrine_roman_dominion_1
remove_doctrine = doctrine_roman_dominion_2
remove_doctrine = doctrine_roman_dominion_3
remove_doctrine = doctrine_roman_dominion_4
remove_doctrine = doctrine_roman_dominion_5
remove_doctrine = doctrine_roman_dominion_7
remove_doctrine = doctrine_roman_dominion_8
remove_doctrine = doctrine_roman_dominion_9
add_doctrine = doctrine_roman_dominion_6
}
}
else_if = {
limit = {
roman_calculations >= 45
faith:roman_catholic = {
NOT = {
has_doctrine = doctrine_roman_dominion_5
}
}
}
faith:roman_catholic = {
remove_doctrine = doctrine_roman_dominion_1
remove_doctrine = doctrine_roman_dominion_2
remove_doctrine = doctrine_roman_dominion_3
remove_doctrine = doctrine_roman_dominion_4
remove_doctrine = doctrine_roman_dominion_6
remove_doctrine = doctrine_roman_dominion_7
remove_doctrine = doctrine_roman_dominion_8
remove_doctrine = doctrine_roman_dominion_9
add_doctrine = doctrine_roman_dominion_5
}
}
else_if = {
limit = {
roman_calculations >= 34
faith:roman_catholic = {
NOT = {
has_doctrine = doctrine_roman_dominion_4
}
}
}
faith:roman_catholic = {
remove_doctrine = doctrine_roman_dominion_1
remove_doctrine = doctrine_roman_dominion_2
remove_doctrine = doctrine_roman_dominion_3
remove_doctrine = doctrine_roman_dominion_5
remove_doctrine = doctrine_roman_dominion_6
remove_doctrine = doctrine_roman_dominion_7
remove_doctrine = doctrine_roman_dominion_8
remove_doctrine = doctrine_roman_dominion_9
add_doctrine = doctrine_roman_dominion_4
}
}
else_if = {
limit = {
roman_calculations >= 23
faith:roman_catholic = {
NOT = {
has_doctrine = doctrine_roman_dominion_3
}
}
}
faith:roman_catholic = {
remove_doctrine = doctrine_roman_dominion_1
remove_doctrine = doctrine_roman_dominion_2
remove_doctrine = doctrine_roman_dominion_4
remove_doctrine = doctrine_roman_dominion_5
remove_doctrine = doctrine_roman_dominion_6
remove_doctrine = doctrine_roman_dominion_7
remove_doctrine = doctrine_roman_dominion_8
remove_doctrine = doctrine_roman_dominion_9
add_doctrine = doctrine_roman_dominion_3
}
}
else_if = {
limit = {
roman_calculations >= 12
faith:roman_catholic = {
NOT = {
has_doctrine = doctrine_roman_dominion_2
}
}
}
faith:roman_catholic = {
remove_doctrine = doctrine_roman_dominion_1
remove_doctrine = doctrine_roman_dominion_3
remove_doctrine = doctrine_roman_dominion_4
remove_doctrine = doctrine_roman_dominion_5
remove_doctrine = doctrine_roman_dominion_6
remove_doctrine = doctrine_roman_dominion_7
remove_doctrine = doctrine_roman_dominion_8
remove_doctrine = doctrine_roman_dominion_9
add_doctrine = doctrine_roman_dominion_2
}
}
else = {
faith:roman_catholic = {
remove_doctrine = doctrine_roman_dominion_2
remove_doctrine = doctrine_roman_dominion_3
remove_doctrine = doctrine_roman_dominion_4
remove_doctrine = doctrine_roman_dominion_5
remove_doctrine = doctrine_roman_dominion_6
remove_doctrine = doctrine_roman_dominion_7
remove_doctrine = doctrine_roman_dominion_8
remove_doctrine = doctrine_roman_dominion_9
add_doctrine = doctrine_roman_dominion_1
}
}
}
if = {
limit = {
has_title = title:k_sevillian_papacy
}
if = {
limit = {
sevillian_calculations >= 89
faith:sevillian = {
NOT = {
has_doctrine = doctrine_sevillian_dominion_9
}
}
}
faith:sevillian = {
remove_doctrine = doctrine_sevillian_dominion_1
remove_doctrine = doctrine_sevillian_dominion_2
remove_doctrine = doctrine_sevillian_dominion_3
remove_doctrine = doctrine_sevillian_dominion_4
remove_doctrine = doctrine_sevillian_dominion_5
remove_doctrine = doctrine_sevillian_dominion_6
remove_doctrine = doctrine_sevillian_dominion_7
remove_doctrine = doctrine_sevillian_dominion_8
add_doctrine = doctrine_sevillian_dominion_9
}
}
else_if = {
limit = {
sevillian_calculations >= 78
faith:sevillian = {
NOT = {
has_doctrine = doctrine_sevillian_dominion_8
}
}
}
faith:sevillian = {
remove_doctrine = doctrine_sevillian_dominion_1
remove_doctrine = doctrine_sevillian_dominion_2
remove_doctrine = doctrine_sevillian_dominion_3
remove_doctrine = doctrine_sevillian_dominion_4
remove_doctrine = doctrine_sevillian_dominion_5
remove_doctrine = doctrine_sevillian_dominion_6
remove_doctrine = doctrine_sevillian_dominion_7
remove_doctrine = doctrine_sevillian_dominion_9
add_doctrine = doctrine_sevillian_dominion_8
}
}
else_if = {
limit = {
sevillian_calculations >= 67
faith:sevillian = {
NOT = {
has_doctrine = doctrine_sevillian_dominion_7
}
}
}
faith:sevillian = {
remove_doctrine = doctrine_sevillian_dominion_1
remove_doctrine = doctrine_sevillian_dominion_2
remove_doctrine = doctrine_sevillian_dominion_3
remove_doctrine = doctrine_sevillian_dominion_4
remove_doctrine = doctrine_sevillian_dominion_5
remove_doctrine = doctrine_sevillian_dominion_6
remove_doctrine = doctrine_sevillian_dominion_8
remove_doctrine = doctrine_sevillian_dominion_9
add_doctrine = doctrine_sevillian_dominion_7
}
}
else_if = {
limit = {
sevillian_calculations >= 56
faith:sevillian = {
NOT = {
has_doctrine = doctrine_sevillian_dominion_6
}
}
}
faith:sevillian = {
remove_doctrine = doctrine_sevillian_dominion_1
remove_doctrine = doctrine_sevillian_dominion_2
remove_doctrine = doctrine_sevillian_dominion_3
remove_doctrine = doctrine_sevillian_dominion_4
remove_doctrine = doctrine_sevillian_dominion_5
remove_doctrine = doctrine_sevillian_dominion_7
remove_doctrine = doctrine_sevillian_dominion_8
remove_doctrine = doctrine_sevillian_dominion_9
add_doctrine = doctrine_sevillian_dominion_6
}
}
else_if = {
limit = {
sevillian_calculations >= 45
faith:sevillian = {
NOT = {
has_doctrine = doctrine_sevillian_dominion_5
}
}
}
faith:sevillian = {
remove_doctrine = doctrine_sevillian_dominion_1
remove_doctrine = doctrine_sevillian_dominion_2
remove_doctrine = doctrine_sevillian_dominion_3
remove_doctrine = doctrine_sevillian_dominion_4
remove_doctrine = doctrine_sevillian_dominion_6
remove_doctrine = doctrine_sevillian_dominion_7
remove_doctrine = doctrine_sevillian_dominion_8
remove_doctrine = doctrine_sevillian_dominion_9
add_doctrine = doctrine_sevillian_dominion_5
}
}
else_if = {
limit = {
sevillian_calculations >= 34
faith:sevillian = {
NOT = {
has_doctrine = doctrine_sevillian_dominion_4
}
}
}
faith:sevillian = {
remove_doctrine = doctrine_sevillian_dominion_1
remove_doctrine = doctrine_sevillian_dominion_2
remove_doctrine = doctrine_sevillian_dominion_3
remove_doctrine = doctrine_sevillian_dominion_5
remove_doctrine = doctrine_sevillian_dominion_6
remove_doctrine = doctrine_sevillian_dominion_7
remove_doctrine = doctrine_sevillian_dominion_8
remove_doctrine = doctrine_sevillian_dominion_9
add_doctrine = doctrine_sevillian_dominion_4
}
}
else_if = {
limit = {
sevillian_calculations >= 23
faith:sevillian = {
NOT = {
has_doctrine = doctrine_sevillian_dominion_3
}
}
}
faith:sevillian = {
remove_doctrine = doctrine_sevillian_dominion_1
remove_doctrine = doctrine_sevillian_dominion_2
remove_doctrine = doctrine_sevillian_dominion_4
remove_doctrine = doctrine_sevillian_dominion_5
remove_doctrine = doctrine_sevillian_dominion_6
remove_doctrine = doctrine_sevillian_dominion_7
remove_doctrine = doctrine_sevillian_dominion_8
remove_doctrine = doctrine_sevillian_dominion_9
add_doctrine = doctrine_sevillian_dominion_3
}
}
else_if = {
limit = {
sevillian_calculations >= 12
faith:sevillian = {
NOT = {
has_doctrine = doctrine_sevillian_dominion_2
}
}
}
faith:sevillian = {
remove_doctrine = doctrine_sevillian_dominion_1
remove_doctrine = doctrine_sevillian_dominion_3
remove_doctrine = doctrine_sevillian_dominion_4
remove_doctrine = doctrine_sevillian_dominion_5
remove_doctrine = doctrine_sevillian_dominion_6
remove_doctrine = doctrine_sevillian_dominion_7
remove_doctrine = doctrine_sevillian_dominion_8
remove_doctrine = doctrine_sevillian_dominion_9
add_doctrine = doctrine_sevillian_dominion_2
}
}
else = {
faith:sevillian = {
remove_doctrine = doctrine_sevillian_dominion_2
remove_doctrine = doctrine_sevillian_dominion_3
remove_doctrine = doctrine_sevillian_dominion_4
remove_doctrine = doctrine_sevillian_dominion_5
remove_doctrine = doctrine_sevillian_dominion_6
remove_doctrine = doctrine_sevillian_dominion_7
remove_doctrine = doctrine_sevillian_dominion_8
remove_doctrine = doctrine_sevillian_dominion_9
add_doctrine = doctrine_sevillian_dominion_1
}
}
}
if = {
limit = {
government = landless_minority_government
domicile ?= {
OR = {
has_domicile_building_or_higher = village_rice_field_05
has_domicile_building_or_higher = village_grain_fields_05
}
}
}
domicile ?= {
change_provisions = {
value = 600
}
}
}
else_if = {
limit = {
government = landless_minority_government
domicile ?= {
OR = {
has_domicile_building_or_higher = village_rice_field_03
has_domicile_building_or_higher = village_grain_fields_03
}
}
}
domicile ?= {
change_provisions = {
value = 400
}
}
}
else_if = {
limit = {
government = landless_minority_government
domicile ?= {
OR = {
has_domicile_building_or_higher = village_rice_field_01
has_domicile_building_or_higher = village_grain_fields_01
}
}
}
domicile ?= {
change_provisions = {
value = 200
}
}
}
else = {
}
if = {
limit = {
government = landless_minority_government
domicile ?= {
has_domicile_building_or_higher = village_grazing_land_05
}
}
domicile ?= {
change_provisions = {
value = 600
}
}
}
else_if = {
limit = {
government = landless_minority_government
domicile ?= {
has_domicile_building_or_higher = village_grazing_land_03
}
}
domicile ?= {
change_provisions = {
value = 400
}
}
}
else_if = {
limit = {
government = landless_minority_government
domicile ?= {
has_domicile_building_or_higher = village_grazing_land_01
}
}
domicile ?= {
change_provisions = {
value = 200
}
}
}
else = {
}
if = {
limit = {
government = landless_minority_government
domicile ?= {
has_domicile_building_or_higher = communal_gardens_fruit_05
}
}
domicile ?= {
change_provisions = {
value = 600
}
}
}
else_if = {
limit = {
government = landless_minority_government
domicile ?= {
has_domicile_building_or_higher = communal_gardens_03
}
}
domicile ?= {
change_provisions = {
value = 400
}
}
}
else_if = {
limit = {
government = landless_minority_government
domicile ?= {
has_domicile_building_or_higher = communal_gardens_01
}
}
domicile ?= {
change_provisions = {
value = 200
}
}
}
else = {
}
ai_budget_manipulation_effect = yes
#Mandala
if = {
limit = {
government_has_flag = government_is_mandala
primary_title.tier >= tier_county
has_mandala_aspect_trigger = yes
house.house_head ?= root
is_adult = yes
is_at_war = no
}
ai_chance_to_become_mandala_godking_effect = yes
# Mandala Contracts
if = {
limit = {
trigger_if = {
limit = { is_ai = yes }
is_available = yes
}
trigger_else = { always = yes }
}
if = { # Spawn up to three rituals
limit = {
trigger_if = {
limit = { exists = var:available_mandala_rituals }
var:available_mandala_rituals < mandala_max_available_rituals_value
}
trigger_else = { always = yes }
}
random = {
chance = {
value = 75
if = {
limit = {
is_ai = no
capital_province = {
NOT = {
has_building_with_flag = mandala_capital_building
}
}
}
add = 25
}
if = {
limit = { is_at_war = yes }
add = -50
}
if = {
limit = { is_travelling = yes }
add = -50
}
if = {
limit = {
is_ai = yes
OR = {
is_tributary = yes
top_liege != this
}
}
add = -50
}
}
spawn_mandala_realm_task_contract_effect = yes
}
}
else_if = {
limit = {
is_travelling = no
is_at_war = no
is_ai = no
}
send_interface_message = {
type = msg_mandala_bad
title = mandala_followers_doubting
add_piety = {
value = mandala_contract_piety
multiply = -2.5
}
add_piety_experience = {
value = mandala_contract_piety
multiply = -2.5
}
add_legitimacy = {
value = mandala_contract_legitimacy
multiply = -2.5
}
}
}
}
}
# Mercenary cultrad
else_if = {
limit = {
government_has_flag = government_is_mercenary
culture = {
has_cultural_parameter = mercenary_courtiers_gain_extra_skills
}
}
knight_increase_prowess_chance_effect = yes
every_courtier = {
limit = {
is_knight = yes
}
knight_increase_prowess_chance_effect = yes
}
}
# Independent rulers
if = {
limit = {
this = top_liege
}
# Treasury update for governments with a treasury
if = {
limit = {
has_treasury = yes
}
trigger_event = tgp_china_ministry.0100
}
}
# Assign or level up court type trait for courtiers in a royal court
if = {
limit = {
has_royal_court = yes
has_dlc_feature = royal_court
}
assign_court_type_traits_to_courtiers_effect = yes
}
# Yurt domicile bonuses distribution
if = {
limit = {
government_has_flag = government_is_nomadic
exists = domicile
}
#Dynasty of Many Khans
mpo_yearly_dynasty_of_many_khans_effect = yes
#Yearly yurt rewards
domicile ?= {
if = {
limit = {
OR = {
has_domicile_building_or_higher = family_yurt_01
has_domicile_building_or_higher = mystical_yurt_01
has_domicile_building_or_higher = court_yurt_01
}
}
mpo_yearly_yurt_rewards_effect = yes
}
}
}
# Yearly house head opinion update: to change into only one log maybe?
if = {
limit = {
government_has_flag = government_is_clan
exists = house
is_house_head = yes
}
save_scope_as = unity_target
if = {
limit = {
OR = {
has_character_flag = steer_unity_towards_harmonious_passive_gain
has_character_flag = steer_unity_towards_antagonistic_passive_loss
}
}
house = {
add_unity_value = {
value = {
if = {
limit = { root = { has_character_flag = steer_unity_towards_harmonious_passive_gain } }
add = medium_unity_gain
}
else = {
add = medium_unity_loss
}
}
character = root
desc = clan_unity_steer_direction_passive_change.desc
}
}
}
else = {
house = {
set_variable = {
name = house_opinion_unity_impact
value = 0
}
every_house_member = {
limit = {
is_house_head = no
is_adult = yes
}
if = {
limit = {
opinion = {
target = scope:unity_target
value >= low_positive_opinion
}
}
prev = {
change_variable = {
name = house_opinion_unity_impact
add = miniscule_unity_value
}
}
if = {
limit = {
opinion = {
target = scope:unity_target
value >= high_positive_opinion
}
}
prev = {
change_variable = {
name = house_opinion_unity_impact
add = minor_unity_value
}
}
}
}
else = {
prev = {
change_variable = {
name = house_opinion_unity_impact
subtract = miniscule_unity_value
}
}
if = {
limit = {
opinion = {
target = scope:unity_target
value <= high_negative_opinion
}
}
prev = {
change_variable = {
name = house_opinion_unity_impact
subtract = minor_unity_value
}
}
}
}
}
if = {
limit = { var:house_opinion_unity_impact != 0 }
add_unity_value = {
value = {
if = {
limit = { var:house_opinion_unity_impact > 0 }
add = minor_unity_gain
}
else = {
add = minor_unity_loss
}
}
character = root
desc = clan_unity_generic_average_yearly_opinion_house_head.desc
}
}
}
}
}
# ADMINISTRATIVE GOVERNMENT
# Governor contract generation
if = {
limit = {
is_governor = yes
trigger_if = {
limit = { is_ai = yes }
is_available = yes
}
NOT = { has_government = celestial_government }
}
random = {
chance = {
value = 70
if = {
limit = { has_character_flag = admin_governance_frequency_cooldown }
subtract = 50
}
}
spawn_governance_contract_effect = yes
}
}
# CELESTIAL GOVERNMENT
if = {
limit = {
government_has_flag = government_is_celestial
}
# Governor contract generation
if = {
limit = {
trigger_if = {
limit = { is_ai = no }
is_governor_or_admin_count = yes
}
trigger_else = { # The AI only gets contracts if available and of higher tiers
is_governor = yes
is_available = yes
}
}
random = {
chance = {
value = 75
if = {
limit = { has_character_flag = admin_governance_frequency_cooldown }
subtract = 40
}
}
spawn_celestial_governance_contract_effect = yes
}
}
# Yearly check to see if the hegemon is above the limit for any administration types
if = {
limit = {
is_independent_ruler = yes
OR = {
any_vassal = {
count > celestial_province_protectorate_max_value
vassal_contract_has_flag = celestial_province_protectorate
}
any_vassal = {
count > celestial_province_metropolitan_max_value
vassal_contract_has_flag = celestial_province_metropolitan
}
}
}
# If true, this will cost legitimacy
send_interface_message = {
type = msg_legitimacy_loss
title = celestial_province_above_limit_title
left_icon = root
add_legitimacy = minor_legitimacy_loss
}
}
if = {
limit = {
highest_held_title_tier >= tier_empire
is_independent_ruler = yes
allowed_concubines = yes
is_ai = yes
number_of_concubines < tgp_ai_concubine_soft_cap
}
create_character = {
template = tgp_concubine_template
location = root.location
save_scope_as = new_concubine
}
make_concubine = scope:new_concubine
}
}
if = { # Is Admin
limit = {
government_has_flag = government_is_administrative
is_landed = yes
}
# Failsafe to ensure we don't get independent admin rulers of too low a rank (i.e. below king)
# Failsafe to ensure we don't have a noble family holding land without other titles - Give any held land to liege
else_if = {
limit = {
# They are a Vassal
is_independent_ruler = no
# They have a Noble Family Title
any_held_title = {
is_noble_family_title = yes
save_temporary_scope_as = nf_title_temp
}
# And no other high tier Titles
trigger_if = {
limit = { has_government = japan_administrative_government }
NOT = {
any_held_title = {
tier >= tier_county
is_noble_family_title = no
is_landless_type_title = no
}
}
}
trigger_else = {
NOT = {
any_held_title = {
tier >= tier_duchy
is_noble_family_title = no
is_landless_type_title = no
}
}
}
}
create_title_and_vassal_change = {
type = stepped_down
save_scope_as = change
add_claim_on_loss = no
}
every_held_title = {
limit = {
is_landless_type_title = no
is_noble_family_title = no
}
add_to_list = revoked_titles
}
every_in_list = {
list = revoked_titles
change_title_holder_include_vassals = {
holder = root.liege
change = scope:change
}
}
resolve_title_and_vassal_change = scope:change
}
}
if = {
limit = {
has_character_flag = tournament_ai_override
}
ai_attempt_to_host_activity = activity_tournament
}
else_if = {
limit = {
has_character_flag = feast_ai_override
}
ai_attempt_to_host_activity = activity_feast
}
else_if = {
limit = {
has_character_flag = examinations_ai_override
}
ai_attempt_to_host_activity = activity_imperial_examination
}
# Scalable Modifiers which needs to be reapplied
hidden_effect = {
if = {
limit = {
has_character_modifier = church_investment_modifier
}
remove_character_modifier = church_investment_modifier
add_character_modifier = church_investment_modifier
}
}
if = {
limit = {
has_perk = learn_on_the_job_perk
has_government = landless_adventurer_government
}
every_courtier = {
limit = {
is_physically_able_adult = yes
NOT = { exists = inspiration }
}
random = {
chance = {
value = 0
add = {
value = book_inspiration_average_skill_value
if = {
limit = {
has_trait = lazy
}
multiply = 0.5
}
if = {
limit = {
root = {
any_courtier = {
exists = inspiration
}
}
}
multiply = 0.5
}
}
}
create_inspiration = book_inspiration
save_scope_as = inspired_follower
root = {
send_interface_message = {
type = send_interface_message_good
title = adventurers_gather_inspiration_option.title
left_icon = scope:inspired_follower
scope:inspired_follower = {
custom_tooltip = {
text = adventurers_gather_inspiration_option.effect
}
}
}
}
}
}
}
# AI Adventurer contract logic setup
if = {
limit = {
ep3_adventurer_ai_logic_valid_trigger = yes
NOT = { owns_story_of_type = story_adventurer_ai }
}
create_story = { type = story_adventurer_ai }
}
if = { # If a player adventurer manages to glitch in place, save them by moving them to the domicile location
limit = {
is_ai = no
has_government = landless_adventurer_government
location != domicile.domicile_location
is_imprisoned = no
is_travelling = no
NOT = {
exists = involved_activity
}
num_taken_task_contracts <= 0
is_commanding_army = no
}
set_location_to_default = yes
}
if = { # If courtiers get lost between governorship assignments, move them home
limit = {
government_allows = merit
}
if = {
limit = {
is_landed = yes
}
every_courtier = {
limit = {
location != root.capital_province
is_imprisoned = no
is_travelling = no
is_commanding_army = no
NOR = {
exists = involved_activity
exists = knight_army
}
}
set_location_to_default = yes
}
}
else_if = {
limit = {
exists = domicile.domicile_location
}
every_courtier = {
limit = {
location != root.domicile.domicile_location
is_imprisoned = no
is_travelling = no
is_commanding_army = no
NOR = {
exists = involved_activity
exists = knight_army
}
}
set_location_to_default = yes
}
}
}
if = {
limit = {
NOT = {
top_liege ?= {
is_confederation_member = yes
}
}
has_character_modifier = mpo_confederation_member_modifier
}
remove_character_modifier = mpo_confederation_member_modifier
}
# Stray player Herders get turned into Nomads
if = {
limit = {
is_ai = no
government_has_flag = government_is_herder
}
every_held_title = {
limit = {
tier = tier_county
title_province = {
has_holding_type = herder_holding
}
}
title_province = {
set_holding_type = nomad_holding
}
}
change_government = nomad_government
}
######################
# Various safeguarding against realm setups with landless participants
######################
if = {
limit = {
is_landed = no
}
save_scope_as = scoped_ruler
######################
# Fix Adventurers that end up with a Liege or Noble Family title
######################
if = {
limit = {
government_has_flag = government_is_landless_adventurer
}
if = {
limit = {
this != top_liege
}
create_title_and_vassal_change = {
type = independency
save_scope_as = change
add_claim_on_loss = no
}
scope:scoped_ruler = {
becomes_independent = { change = scope:change }
}
resolve_title_and_vassal_change = scope:change
}
if = {
limit = {
any_held_title = {
is_noble_family_title = yes
}
}
every_held_title = {
limit = {
is_noble_family_title = yes
}
scope:scoped_ruler = {
destroy_title = prev
}
}
}
}
######################
# Repair realms with Landless participants having vassals
######################
if = {
limit = {
any_sub_realm_county = {
is_landless_type_title = no
}
}
######################
# Landless Lieges with Landed Vassals should take a County from a Vassal
######################
if = {
limit = { # Make sure we repair realms in the right order
OR = {
this = top_liege
liege ?= {
is_landed = yes
}
}
}
create_title_and_vassal_change = {
type = revoked
save_scope_as = change
}
random_sub_realm_county = {
limit = {
is_landless_type_title = no
}
weight = {
modifier = {
add = 100
this = scope:scoped_ruler.primary_title.title_capital_county
}
modifier = {
add = -100
holder = {
is_ai = no
}
}
}
change_title_holder = {
holder = scope:scoped_ruler
change = scope:change
}
}
resolve_title_and_vassal_change = scope:change
######################
# Landless vassals with Landed vassals should take something and become landed
######################
every_vassal = {
limit = {
is_landed = no
any_sub_realm_county = {
is_landless_type_title = no
}
}
save_scope_as = vassal_ruler
create_title_and_vassal_change = {
type = revoked
save_scope_as = change
}
random_sub_realm_county = {
limit = {
is_landless_type_title = no
}
weight = {
modifier = {
add = 100
this = scope:vassal_ruler.primary_title.title_capital_county
}
modifier = {
add = -100
holder = {
is_ai = no
}
}
}
change_title_holder = {
holder = scope:vassal_ruler
change = scope:change
}
}
resolve_title_and_vassal_change = scope:change
}
}
}
######################
# Destroy the AI's landless nomad vassals, as they'll just bloat the game for no gain
######################
else_if = {
limit = {
is_ai = yes
top_liege != this
government_has_flag = government_is_nomadic
is_landed = no
liege = { is_ai = yes }
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
}
every_held_title = {
limit = {
is_nomad_title = yes
}
scope:scoped_ruler = {
destroy_title = prev
}
}
}
# Players become independent so they can migrate
else_if = {
limit = {
is_ai = no
top_liege != this
government_has_flag = government_is_nomadic
is_landed = no
liege = { is_ai = yes }
}
create_title_and_vassal_change = {
type = independency
save_scope_as = change
add_claim_on_loss = no
}
becomes_independent = { change = scope:change }
resolve_title_and_vassal_change = scope:change
}
######################
# AI's with a Nomadic Camp title that somehow end up with the wrong government and landless should be purged
######################
if = {
limit = {
NOT = { government_has_flag = government_is_nomadic }
any_held_title = {
is_nomad_title = yes
}
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
}
save_scope_as = scoped_ruler
if = {
limit = {
is_ai = yes
}
every_held_title = {
limit = {
is_nomad_title = yes
}
scope:scoped_ruler = {
destroy_title = prev
}
}
}
# Players are saved
else_if = {
limit = {
is_ai = no
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
}
change_government = nomad_government
}
}
######################
# Landless nomads outside any migration area? Cleanup.
######################
if = {
limit = {
is_ai = yes
top_liege = this
NOT = {
any_character_situation = {
any_participant_group = {
participant_group_type = nomad_rulers_capital
participant_group_has_character = scope:scoped_ruler
}
}
}
any_held_title = {
is_nomad_title = yes
}
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
}
every_held_title = {
limit = {
is_nomad_title = yes
}
scope:scoped_ruler = {
destroy_title = prev
}
}
}
}
# ACH AI vibe checks
if = {
limit = {
has_realm_law = uncrowned
is_ai = yes
}
# Why are you like this, get rid of the crowned variables
if = {
limit = {
has_variable = crowned_king_var
}
remove_variable = crowned_king_var
}
else_if = {
limit = {
has_variable = crowned_emperor_var
}
remove_variable = crowned_emperor_var
}
#Try removing them from their army to make them available
if = {
limit = {
is_in_army = yes
martial <= medium_skill_rating
location ?= {
any_army_in_location = {
is_army_in_combat = no
}
}
NOR = {
any_war_enemy = {
is_ai = no
}
any_war_ally = {
is_ai = no
}
}
}
location = {
random_army_in_location = {
limit = {
army_commander = root
}
remove_commander = yes
}
}
}
#Do you need an artifact?
if = {
limit = {
can_host_activity = activity_coronation
coronation_has_proper_artifact_trigger = no
}
random = {
chance = coronation_artifact_ai_instant_creation_chance
coronation_create_artifact_yearly_effect = yes
}
}
#If you need to be anointed...
#First step is being un-excommunicated
if = {
limit = {
highest_held_title_tier >= tier_empire
has_trait = excommunicated
faith = {
has_doctrine = doctrine_spiritual_head
has_doctrine = doctrine_imperial_anointment
}
custom_tooltip = {
text = anointment_request_already_supported
NOT = {
is_target_in_variable_list = {
name = supported_anointments
target = scope:actor
}
}
}
is_character_interaction_valid = {
recipient = faith.religious_head
interaction = declaration_of_repentance_interaction
}
}
run_interaction = {
interaction = declaration_of_repentance_interaction
actor = this
recipient = faith.religious_head
execute_threshold = maybe
}
}
#Next step is getting approval
else_if = {
limit = {
exists = faith.religious_head
is_character_interaction_valid = {
recipient = faith.religious_head
interaction = coronation_anointment_request
}
faith = {
has_doctrine = doctrine_spiritual_head
has_doctrine = doctrine_imperial_anointment
}
}
run_interaction = {
interaction = coronation_anointment_request
actor = this
recipient = faith.religious_head
execute_threshold = maybe
}
}
#Next step is hosting the dang coronation
else = {
ai_attempt_to_host_activity = activity_coronation
debug_log = "AI attempted to host a coronation"
debug_log_scopes = yes
}
}
}
events = {
court_maintenance.0012 # Dynasty banner improves with renown
court_maintenance.0013 # Remove duplicate dynasty banners
}
on_actions = {
ai_character_pulse
delay = { days = 75 }
pagan_conversion_pulse
}
}
# Called from code once every three years for "playable" (count+) characters.
# Root is the character
three_year_playable_pulse = {
events = {
adultery.0001 #Suspected spouse/soulmate of cheating (increased chance when there is a lover, but can also trigger otherwise)
}
random_events = {
800 = 0
200 = global_culture.3011
600 = global_culture.3012
}
effect = {
if = { # Nomadic herd starves if you're landless
limit = {
is_landed = no
government_has_flag = government_is_nomadic
exists = domicile
is_migrating = no
is_at_war = no
}
if = {
limit = {
domicile.herd > 500
}
change_current_weight = -25
every_courtier = {
change_current_weight = -25
}
send_interface_toast = {
type = event_toast_effect_bad
title = herd_starvation_title
left_icon = root
custom_tooltip = herd_starvation_custom_tooltip
domicile ?= {
change_herd = {
value = root.domicile.herd
divide = 3
min = 500
if = {
limit = {
root = { is_ai = yes }
}
min = 1000
}
multiply = -1
}
}
}
}
clean_up_ai_nomad_effect = yes
}
if = { # Various nomadic safeguards
limit = {
is_landed = yes
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
}
}
save_scope_as = scoped_ruler
######################
# Nomadic titles that end up with non-nomadic holders are destroyed
######################
if = {
limit = {
any_held_title = {
is_nomad_title = yes
}
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
}
every_held_title = {
limit = {
is_nomad_title = yes
}
scope:scoped_ruler = {
destroy_title = prev
}
}
}
######################
# Anyone who *only* holds Nomadic lands should become Nomadic
######################
if = {
limit = {
highest_held_title_tier >= tier_county
capital_province = {
OR = {
has_holding_type = nomad_holding
has_holding_type = herder_holding
}
}
NOT = {
any_held_title = {
tier = tier_county
is_landless_type_title = no
title_province = {
NOR = {
has_holding_type = nomad_holding
has_holding_type = herder_holding
}
}
}
}
}
every_held_title = {
limit = {
tier = tier_county
title_province = {
has_holding_type = herder_holding
}
}
title_province = {
set_holding_type = nomad_holding
}
}
change_government = nomad_government
# We don't want overly-funky nomad camps to spring up, so set an appropriate culture/faith
if = {
limit = {
domicile.domicile_culture != capital_county.culture
}
domicile = {
set_domicile_culture = scope:scoped_ruler.capital_county.culture
}
}
if = {
limit = {
domicile.domicile_faith != capital_county.faith
}
domicile = {
set_domicile_faith = scope:scoped_ruler.capital_county.faith
}
}
}
}
else_if = {
limit = {
government_has_flag = government_is_nomadic
is_ruler = yes
}
save_scope_as = scoped_ruler
######################
# If you end up losing your Nomadic Capital, get a new one
######################
if = {
limit = {
NOT = { government_has_flag = government_allows_nomad_domicile_titles }
NOT = {
any_held_title = {
is_nomad_title = yes
}
}
}
create_nomad_title = {
name = nomad_title_name
holder = scope:scoped_ruler
government = nomad_government
save_scope_as = new_nomad_title
}
domicile ?= {
add_domicile_building = yurt_main_02
add_domicile_building = yurt_main_03
add_random_yurt_external_building_effect = yes
add_random_yurt_external_building_effect = yes
upgrade_random_yurt_external_building_effect = yes
upgrade_random_yurt_external_building_effect = yes
}
}
######################
# If your nomadic capital domicile somehow gets lost, move it to your capital province
######################
if = {
limit = {
is_at_war = no
exists = domicile
domicile.domicile_location != capital_province
}
domicile = { move_domicile = scope:scoped_ruler.capital_province }
}
}
if = { # Inspirations for courtiers of Advancement Movement rulers
limit = {
has_dlc_feature = all_under_heaven
top_participant_group:dynastic_cycle ?= {
participant_group_type = advancement_movement
}
any_courtier_or_guest = {
is_physically_able_adult = yes
ep1_is_valid_character_for_inspiration_trigger = yes
save_temporary_scope_as = inspired_courtier
}
}
grant_inspiration_to_character_no_court_artifacts_effect = {
CHARACTER = scope:inspired_courtier
}
send_interface_toast = {
type = msg_court_inspiration
left_icon = scope:inspired_courtier
title = courtier_inspired_message
desc = courtier_inspired_effect
}
}
}
}
# Called from code once every five years for "playable" (count+) characters.
# Root is the character
five_year_playable_pulse = {
effect = {
ai_chance_to_become_conqueror_effect = yes
# Special Holy Seeds drops
if = {
limit = {
has_dlc_feature = legends
piety_level >= very_high_piety_level
NOT = { has_variable = saintly_deed_var }
NOR = {
has_game_rule = historical_legends_only
has_personal_legend_seed = holy
}
}
random = {
chance = 10
send_interface_toast = {
title = holy_seed_toast_traits
left_icon = root
set_variable = saintly_deed_var
create_legend_seed = {
type = holy
quality = famed
chronicle = saintly_life
properties = {
religion = root.religion
}
}
}
}
}
chance_for_random_nickname_effect = yes
ai_chance_to_switch_to_travel_focus_effect = yes
if = {
limit = {
has_royal_court = yes
has_dlc_feature = royal_court
}
every_courtier = {
limit = {
is_available_ai = yes
age > 6
NOT = {
knows_court_language_of = host
}
}
random = {
chance = {
value = -4
add = learning
if = {
limit = {
is_adult = no
}
add = 4
}
if = {
limit = {
host = {
employs_court_position = court_tutor_court_position
}
}
add = 2
}
if = {
limit = {
host = {
employs_court_position = court_guru_court_position
}
}
add = 2
}
if = {
limit = {
host = {
has_court_type = court_diplomatic
}
}
add = 2
}
if = {
limit = {
host = {
has_court_type = court_scholarly
}
}
add = 4
}
}
learn_court_language_of = host
}
}
if = {
limit = {
employs_court_position = court_poet_court_position
}
every_court_position_holder = {
type = court_poet_court_position
limit = {
is_physically_able_adult = yes
ep1_is_valid_character_for_inspiration_trigger = yes
}
random = {
chance = {
value = 5
add = {
value = this.aptitude:court_poet_court_position
multiply = 5
if = {
limit = {
has_trait = lazy
}
multiply = 0.5
}
}
}
grant_inspiration_to_character_effect = { CHARACTER = this }
save_scope_as = inspired_poet
root = {
send_interface_toast = {
type = msg_court_inspiration
left_icon = scope:inspired_poet
title = poet_inspired_message
desc = poet_inspired_effect
}
}
}
}
}
if = {
limit = {
employs_court_position = court_artificer_court_position
}
every_court_position_holder = {
type = court_artificer_court_position
limit = {
is_physically_able_adult = yes
ep1_is_valid_character_for_inspiration_trigger = yes
NOT = { has_character_flag = regular_inspiration_block }
}
random = {
chance = {
value = 5
add = {
value = this.aptitude:court_artificer_court_position
multiply = 5
if = {
limit = {
has_trait = lazy
}
multiply = 0.5
}
}
}
grant_inspiration_to_character_effect = { CHARACTER = this }
save_scope_as = artificer
root = {
send_interface_toast = {
type = msg_court_inspiration
left_icon = scope:artificer
title = poet_inspired_message
desc = court_artificer_inspired_effect
}
}
}
}
}
}
if = {
limit = {
cp:councillor_court_chaplain ?= {
is_theocratic_lessee = yes
NOT = {
knows_language_of_culture = root.culture
}
}
}
cp:councillor_court_chaplain = {
random_list = {
10 = {
modifier = {
add = learning
}
learn_language_of_culture = root.culture
}
5 = {
trigger = {
can_start_scheme = { type = learn_language target_character = root }
}
start_scheme = {
type = learn_language
target_character = root
}
}
}
}
}
}
events = {
courtier_guest_management.3001 # Courtiers and guests getting relationships & secrets
game_rule.1 # De Jure Requirement Game Rule
game_rule.4 # Empire Obscurity Game Rule
culture_tradition_events.3000 # Bear Sightings
}
on_actions = {
delay = { days = { 45 75 } }
culture_hybridization_emergence_events
delay = { days = { 45 75 } }
culture_divergence_emergence_events
}
}
# Called from code once a quarter for "playable" (count+) characters.
# Root is the character
# scope:quarter is which quarter it's for, from 1 to 4. Note that scope:quarter = 1 isn't necessarily in Q1 by calendar time
quarterly_playable_pulse = {
effect = {
if = {
limit = {
government_has_flag = government_is_prepublic
NOT = {
exists = domicile
}
}
save_scope_as = scoped_farmer
create_nomad_title = {
name = domicile_farmstead
holder = scope:scoped_farmer
government = peasantrepublic_government
save_scope_as = new_title
}
scope:new_title ?= {
add_title_law = single_heir_dynasty_house
}
}
if = {
limit = {
government_has_flag = government_is_prepublic
primary_title = {
NOT = {
has_title_law = saxon_elective_succession_law
}
}
}
primary_title = {
add_title_law = saxon_elective_succession_law
}
}
}
on_actions = {
realm_maintenance_quarterly_pulse
# Event pools
stewardship_lifestyle_progress_pulse
intrigue_lifestyle_progress_pulse
diplomacy_lifestyle_progress_pulse
martial_lifestyle_progress_pulse
learning_lifestyle_progress_pulse
wanderer_lifestyle_progress_pulse
# Relation pulses are spread out across the four quarterly pulses a year
lover_quarterly_pulse
friendship_quarterly_pulse
rival_quarterly_pulse
mentor_student_quarterly_pulse
# EP1 maintenance pulses
inspiration_maintenance_quarterly_pulse
# MPO
mpo_tributary_check_pulse
}
random_on_action = {
chance_to_happen = 75
chance_of_no_event = { # Fewer events for the AI
value = 0
if = {
limit = {
is_ai = yes
}
add = 95
}
}
100 = ep3_yearly_events_laamps
}
}
# Called from code once a year for all "playable" characters, at a random point that year (individually for each character). Different time from the random_yearly_everyone_pulse (coincides by random 1 time out of 365)
# Root is the character
random_yearly_playable_pulse = {
trigger = {
basic_is_valid_for_yearly_events_trigger = yes
}
random_on_action = {
chance_of_no_event = {
value = 0
if = {
limit = {
is_ai = yes
highest_held_title_tier >= tier_kingdom
}
add = 30 # No need to waste performance here
}
else_if = {
limit = {
is_ai = yes
highest_held_title_tier >= tier_duchy
}
add = 70 # No need to waste performance here
}
else_if = {
limit = {
is_ai = yes
}
add = 95 # AI counts aren't particularly important
}
}
6 = on_yearly_events
5 = fp1_yearly_events
4 = fp2_yearly_events
4 = fp3_yearly_events
2 = bp1_yearly_events
6 = ep3_yearly_events_byzantium
6 = ep3_yearly_events_admin
6 = tgp_japan_yearly_events
6 = tgp_china_yearly_events
6 = tgp_mandala_yearly_events
6 = ongoing_house_feud_events
10 = mpo_yearly_events_nomads
}
effect = {
# Special Holy Seeds drops
if = {
limit = {
has_dlc_feature = legends
OR = {
has_trait = theologian
has_trait = sayyid
}
NOR = {
has_game_rule = historical_legends_only
has_personal_legend_seed = holy
}
}
random = {
chance = 15
send_interface_toast = {
type = msg_legend_seed_created
title = holy_seed_toast_traits
left_icon = root
create_legend_seed = {
type = holy
quality = famed
chronicle = saintly_life
properties = {
religion = root.religion
}
}
}
}
}
# Commander Trait Leveling for AI
if = {
limit = {
is_ai = yes
OR = {
has_commander_trait_trigger = yes
any_knight = {
has_commander_trait_trigger = yes
}
}
}
commander_trait_lvling_ai_effect = yes
every_knight = {
limit = {
is_ai = yes
has_commander_trait_trigger = yes
}
commander_trait_lvling_ai_effect = yes
}
}
if = {
limit = { has_tgp_dlc_trigger = yes }
develop_celestial_tributaries = yes
}
# Fallback for AI budgeting (primarily handled in `tgp_china_ministry.0100`)
if = {
limit = {
is_ai = yes
is_independent_ruler = yes
has_treasury = yes
OR = {
# In big treasury debt
treasury <= -200
# We're due a budget
treasury_years_since_budget_enact_date > 3
# We have a lot of new budget capacity
character_treasury_new_budget_capacity > {
value = character_treasury_budget_capacity
multiply = 2.0
}
}
can_afford_enact_treasury_budget_costs = yes
}
enact_treasury_budgets = yes
}
}
on_actions = {
delay = { days = { 45 75 } }
on_yearly_common_events
delay = { days = { 50 80 } }
on_yearly_invisible_events
delay = { days = { 85 165 } }
bishop_ongoing
delay = { days = { 166 185 } }
wet_nurse_pulse
delay = { days = { 51 180 } }
childhood_ongoing
delay = { days = { 51 180 } }
hunt_sighting_on_action
delay = { days = { 181 240 } }
bp2_child_pulse
delay = { days = { 181 240 } }
bp2_parent_guardian_hostage_taker_pulse
delay = { days = { 241 290 } }
bp2_adult_followups
delay = { days = { 291 310 } }
court_scholar_ongoing
delay = { days = { 25 44 } }
clan_events_on_action
ep3_akolouthos_on_action
delay = { days = { 25 44 } }
mpo_migration_contract
delay = { days = { 1 180 } }
mpo_migration_contract
delay = { days = { 181 360 } }
mpo_de_jure_shift
delay = { days = { 1 30 } }
# on_yearly_tutorial_events # TODO[Ruler Objectives]: Make generally available once ready for it
}
}
# Called from code once a year for all characters, at a random point that year (individually for each character)
# Root is the character
random_yearly_everyone_pulse = {
effect = {
}
on_actions = {
yearly_health_pulse
stress_pulse
prison_maintenance_pulse
house_feud_ai_scheme_pulse
}
random_on_action = {
chance_of_no_event = {
value = 95
}
1 = assign_trait_events
}
events = {
holy_order.0206 #To increment the years passed since loan
marriage_interaction.0007 #One of the betrothed became part of clergy that doesn't allow marriage
tgp_silk_road_events.0100 #Culture adopts controlled Silk Road market innovation
}
random_events = {
500 = 0
100 = holy_order.0202 #Holy order demands payment
}
}
# Called from code once every five years for all characters.
# Root is the character
five_year_everyone_pulse = {
effect = {
# Herders may become Seasoned Pastoralists
root = {
if = {
limit = {
government_has_flag = government_is_herder
NOT = { has_trait = lifestyle_seasoned_pastor }
age >= 30
}
random = {
chance = 20
add_trait = lifestyle_seasoned_pastor
}
}
if = { # Non-lowborn Barons should marry and produce a family
limit = {
primary_title.tier ?= tier_barony
is_adult = yes
is_married = no
is_lowborn = no
NOT = {
government_has_flag = government_is_republic
}
can_marry_trigger = yes
}
if = {
limit = {
exists = location
any_pool_character = {
province = root.location
can_have_children_with = { CHARACTER = root }
is_physically_able_adult = yes
age <= 40
is_married = no
can_marry_trigger = yes
is_concubine = no
is_claimant = no
}
}
random_pool_character = {
province = root.location
limit = {
can_have_children_with = { CHARACTER = root }
is_physically_able_adult = yes
age <= 40
is_married = no
can_marry_trigger = yes
is_concubine = no
is_claimant = no
}
save_temporary_scope_as = spouse
}
}
else = {
create_character = {
location = root.location
template = mediocre_spouse
save_temporary_scope_as = spouse
}
}
if = {
limit = {
is_female = yes
scope:spouse = {
is_lowborn = yes
}
}
marry_matrilineal = scope:spouse
}
else = {
marry = scope:spouse
}
}
}
if = { # Long term gold is pointless for Barons - add it to short term instead
limit = {
is_ai = yes
highest_held_title_tier = tier_barony
gold > 0
long_term_gold > 0
}
move_budget_gold = { gold = long_term_gold from = budget_long_term to = budget_short_term }
}
# FP2 - Checks to start El Cid's Travels
if = {
limit = { # Am I El Cid?
has_fp2_dlc_trigger = yes
has_ep3_dlc_trigger = no
this = character:107590
NOT = { has_character_flag = has_already_begun_travelling } # Separate first check, for performance
NOT = { # Start date employer is either dead or gone
OR = {
top_liege = character:107500
liege = character:107500
employer = character:107500
}
}
is_available_healthy_ai_adult = yes # Am I ready to go on an adventure?
}
trigger_event = fp2_struggle.2045
}
#young nobodies getting castrated
if = {
limit = {
ep3_ai_castration_target_trigger = yes
}
trigger_event = ep3_yearly.3000
}
}
on_actions = {
disease_outbreak_pulse # moved from health_on_actions.txt
}
events = {
murder_scheme_maintenance.1 # Murder schemes for the AI, including unlanded characters
}
}
# Called from code once every 3 years for pool characters
# root = the character
three_year_pool_pulse = {
trigger = {
is_pool_character = yes # Can cease to be in the pool between it queuing and executing
}
events = {
courtier_guest_management.2001 #"Develops" the character and gives those without location a location
}
random_events = {
chance_to_happen = 25
chance_of_no_event = { # throttle wanderer Adventurers because they're simply less interesting
if = {
limit = {
has_global_variable_list = laamps_tally
global_variable_list_size = {
name = laamps_tally
value > seventyfive_percent_of_max_desired_laamps_value
}
}
value = 100
}
}
100 = courtier_guest_management.4001 # Wanderer becomes an adventurer
100 = courtier_guest_management.4002
}
}
#Only triggered if you actually have prisoners
prison_maintenance_pulse = {
trigger = {
any_prisoner = { }
}
on_actions = {
#Set up quarterly pulses
delay = { days = 45 }
quarterly_prison_maintenance_pulse
delay = { days = 135 }
quarterly_prison_maintenance_pulse
delay = { days = 225 }
quarterly_prison_maintenance_pulse
delay = { days = 315 }
quarterly_prison_maintenance_pulse
}
}
#Pulse for various AI stuff
ai_character_pulse = {
trigger = {
is_ai = yes
}
random_events = {
chance_to_happen = 25
500 = 0
100 = learn_commander_trait.0001
100 = holy_order.0100 #Give pilgrim trait to holy order members
}
}
culture_hybridization_emergence_events = {
random_events = {
95 = 0
5 = culture_emergence_events.0001 # Create a hybrid culture with your capital culture
}
}
culture_divergence_emergence_events = {
random_events = {
199 = 0
1 = culture_emergence_events.0002 # Create a divergent culture
}
}
on_yearly_common_events = {
random_events = {
chance_to_happen = 50
1000 = 0
300 = lover.0003 #Too many lovers - break up with one?
90 = language_events.0001 #Too many known languages - forget one?
10 = language_events.0010 #Owl version of Too many known languages - forget one?
200 = parent.0001 #parent_meddling_value_effect decreases over time
200 = childhood.2010 # Convince ward they owe you
50 = relation_upgrade.3000 # Vengeful character gains a rival, also for Cultural Tradition more rivals
#Adultery events
50 = adultery.2001 #Is the father suspicious of child or not?
10 = adultery.3001 #Mother tells child the secret about them
10 = culture_tradition_events.2000 # Vassal Gain Loyal Trait
10 = culture_tradition_events.2001 # Vassal Gain Disloyal Trait
100 = culture_tradition_events.2100 # Storytelling cultural tradition
}
}
# Accolades yearly events
three_year_playable_pulse = {
events = {
ep2_accolade_events.0100 #Huntsmaster gives you or heir Hunter trait event
ep2_accolade_events.0200 #Blademaster gives you or heir Blademaster trait event
ep2_accolade_events.0300 #Master of Revels gives you or heir Reveler trait event
ach_maintenance_events.0002 # ACH Oath synergy culture rewards
}
}
on_yearly_invisible_events = {
random_events = {
chance_to_happen = 5
150 = 0
100 = secrets.1004 #Courtier learns another courtier's minor secret
50 = secrets.1005 #A Courtier learns another courtier's major secret
}
}
on_yearly_events = {
random_events = {
chance_to_happen = 25
200 = 0
50 = yearly.0001 #Skill Tutoring
100 = yearly.0002 #Indiscreet Councillor
10 = yearly.0003 #Forbidden Love
25 = yearly.0011 #Comet Sighted!
75 = yearly.1001 #Someone else's spouse makes a move at you
50 = yearly.1010 #Person you care about is abducted by rival
15 = yearly.1020 #High-up ruler wants you to deal with pesky enemy
100 = yearly.1030 #Someone you have hooked offers up other character's secret
50 = yearly.1040 #Courtier is hiding a letter - surprise or secret?
100 = yearly.1050 #Heir fancies themselves a duelist
100 = yearly.1060 #The oldest joke in the book
100 = yearly.1070 #Someone is your potential soulmate
100 = yearly.1080 #You are being paranoid
100 = yearly.1090 #Foreign guests
80 = yearly.3001 #Dedication to Loyalty
100 = yearly.3011 #An Impression Twice Made
100 = yearly.3021 #On Their Deathbed
100 = yearly.3031 #Getting Ahead
50 = yearly.3040 #A Good FaithPracticioner
100 = yearly.3041 #Chafing Under Secular Laws
100 = yearly.3051 #By Right
50 = yearly.3061 #Cagots
5 = yearly.3071 #A terrible nightmare
5 = party_baron.0001 # Start the Party Baron story cycle
100 = yearly.4001 #A powerful vassal has angered neighboring ruler
100 = yearly.4011 #Heir is spending a lot of time with one of your powerful vassals
10 = yearly.4021 #Mamaaaa, just killed a child
10 = yearly.4031 #Who keeps leaving dead bodies all around the castle?!
20 = yearly.4051 #Get a gift from a neighboring ruler (triggered here so you can't know for sure if someone has a scheme towards you)
100 = yearly.5001 #Catching Lover and Spouse fighting.
100 = yearly.5010 #Vassal shows compassion to stressed/sick ruler, incurs in the jealousy of another vassal
100 = yearly.5020 #Councilor offers to teach heir
100 = yearly.5030 #Powerful Vassal offers to reveal secret of other Powerful Vassal to liege.
100 = yearly.5040 #Two unimportant courtiers caught talking about powerful vassal.
100 = yearly.5050 #Spouse feels slighted by courtier.
10 = stress_trait_coping_decisions.2002 #Your stuff got stolen by a person in a brothel!
100 = yearly.7001 #Faction attempts a coup or kidnapping
10 = yearly.7010 #Opportunity to participate in a football game
10 = yearly.7050 #Foggy Hill
200 = major_decisions.2011 #Gain a scholar character if you have a University in your sub-realm
#'Nice' events (positive effects)
100 = yearly.8000 # Vassal offers liege a gift
100 = yearly.8100 # The peasantry of a Domain province gives you a gift
100 = yearly.8200 # Your realm priest offers you part of a large donation
100 = yearly.8300 # A group of vassals collectively wish to contribute to your war effort
20 = yearly.8400 # Discover a guest's Deviant secret (Strong Hook), and get the potential to send them to a rival's court
300 = yearly.8500 # Your Head of Faith sends you a gift if you're fighting heathens
#Ai value events
100 = trait_specific_ongoing.2010 # Positive zeal: which god/saint is talking to me?
100 = witch.4001 # Negative zeal: annoying clergy
# Stress Events
100 = stress_trait_ongoing.0501 # A relaxing evening with some hashish cakes.
100 = stress_trait_ongoing.0506 # Self-medicating pain away with hashish.
100 = stress_trait_ongoing.0511 # An elderly person laments the follies of hashish-consuming youth.
100 = stress_trait_ongoing.0516 # You zone out whilst eating hashish in an important meeting.
100 = stress_trait_ongoing.1501 # Rake fantasizes about courtier.
100 = stress_trait_ongoing.4501 # Comfort Eater runs out of favorite food.
100 = stress_trait_ongoing.4502 # Cannibal needs to satisfy their craving!
100 = stress_trait_ongoing.5001 # Inappetetic has a important character prepare a feast for them.
#Elephant events for India
300 = yearly.9020 # A Mighty Elephant
# Tribal events
100 = tribal.1101 #Holmgang with a rival
100 = tribal.1201 #Horse Racing
100 = tribal.1301 #Crocodile Encounter
100 = tribal.1303 #Irrigate Oasis
#Clan events
150 = clan.1001 #Powerful vassal requests marriage
150 = clan.1011 #A vassal asks for a perk
150 = clan.1101 #Vassal Resents Nepotism
100 = clan.1201 #Culture seeks Representation
#Muslim-specific events (mostly about Islamic centers of learning)
200 = yearly.4061 #A wise man visits your court
200 = yearly.4071 #You're very educated!
200 = yearly.4081 #Sponsor the translation of a book from Greek
200 = yearly.4091 #Your ward and you visit scholars
# Saharan regional flavour events.
## Marginally bumped some weightings for regional effect.
500 = yearly_saharan.0001 # An organised faith's merchants try to convert a pagan county in your domain.
500 = yearly_saharan.0021 # Desert nomads wish to move to one of your non-nomadic Saharan counties.
300 = yearly_saharan.0031 # Local slave raids intensify (aggressor).
300 = yearly_saharan.0032 # Local slave raids intensify (defender).
# Persion regional flavor events
400 = yearly_persian.1001 # Nowruz, or Persian New Year
400 = yearly_persian.1101 # Shu'ubiyya, or Persian Nationalism (From the foreign side)
# Varangian Guard
400 = varangian.0001 # A Courtier wants to join the Varangian Guard
#Pet story cycles
20 = pet_animal.5001 # Rival has cat...
20 = pet_animal.5002 # Rival has dog...
#Holy Order
100 = holy_order.2001 # Child wishes to join Holy Order
100 = holy_order.2002 # Sibling wants to join a Holy Order
200 = holy_order.2003 # Holy Order suggests you send them a child
1000 = holy_order.2004 # Child returns to pick up the mantle
100 = holy_order.2005 # A - Possibly Undesirable - Child Returns Home
1000 = fp1_jomsvikings.0011 # FP1 - Jomsvikings terrorise their neighbours
#Relationship Upgrade Events
75 = relation_upgrade.0001
75 = relation_upgrade.1001
75 = relation_upgrade.2001
75 = relation_upgrade.2101
#lunatic
100 = trait_specific_ongoing.1001 # You're developing 'glass delusion'
100 = trait_specific_ongoing.1003 # Collecting animals
100 = trait_specific_ongoing.1005 # Talk to dead people
100 = trait_specific_ongoing.1007 # A lunatic dreams of glass (enables the lunatic_building_decision decision)
50 = trait_specific_ongoing.1008 # You kill a friend :(
100 = trait_specific_ongoing.1009 # Grandiose delusions
100 = trait_specific_ongoing.1010 # You love your warhorse
100 = trait_specific_ongoing.1011 # Force your court to be naked
20 = trait_specific_ongoing.1012 # Ravings
100 = trait_specific_ongoing.1015 # Paranoid delusions
#possessed
100 = trait_specific_ongoing.2001 # Witchy or divine visions?
100 = trait_specific_ongoing.2009 # Which god/saint is talking to me?
100 = trait_specific_ongoing.2015 # Court physician wants to treat you
100 = trait_specific_ongoing.2025 # Seizure surrounded by people
#depressed
100 = trait_specific_ongoing.3001 # You bond with a fellow depressed character
100 = trait_specific_ongoing.3002 # Your court physician tries to treat you
100 = trait_specific_ongoing.3009 # You're exhausted
100 = trait_specific_ongoing.3015 # Someone calls you lazy
#cannibal
100 = trait_specific_ongoing.5001 # Private conversation with a vassal or courtier
100 = trait_specific_ongoing.5003 # Eat someone from the staff
100 = trait_specific_ongoing.5004 # Eat an old lady
100 = trait_specific_ongoing.5005 # Eat a courtier
#deviant
100 = trait_specific_ongoing.6001 # Convert a lover to the freaky side of things
100 = trait_specific_ongoing.6002 # You walk in on your deviant liege
#drunkard
#100 = trait_specific_ongoing.7001
#incestuous
#100 = trait_specific_ongoing.8001
#Witch
100 = witch.4000 #Annoying clergy
100 = witch.4010 #Personal witch ritual
100 = witch.4020 #Pray with potential friends
25 = witch.4030 #Rare book
# Friend Events
10 = friendship.0003 #Friend might become Lover
100 = friendship.1001 #Send Friend a gift
500 = friendship.1006 # Receive wartime support from Friend
100 = friendship.1008 #Send a good courtier to your Friend
100 = friendship.2001 #Confess a secret to your Friend
30 = friendship.2004 #Confess a Major secret to your Friend
100 = friendship.2007 #Try to improve a character's impression of your Friend
25 = friendship.3001 #Get along with your spouse's friend
25 = friendship.3003 #You hate your spouse's friend
100 = friendship.3006 #A Friend gets you a favor hook on one of your Councillors
300 = friendship.3007 # Hanging out with your Friend reduces Stress
# Rival Events
200 = rivalry.2001 #Hinder the progress of rival's Befriend scheme
100 = rivalry.1001 #Rival adds stress
100 = rivalry.1010 #Spiteful Acts ( my rival's aggravating behavior has gone on long enough)
100 = rivalry.1030 #Meddling in Marriage
100 = rivalry.3001 #Rival insults you
100 = rivalry.3002 #You like the Rival of a Friend less
100 = rivalry.3004 #Decrease opinion of rival because of opposing personality trait
# Vassal Events
100 = vassal.1001 # Religious liege wants you to build temple
100 = vassal.1101 # Religious vassal wants you to build temple
100 = vassal.2001 # Vassal wants liege to educate their child
100 = vassal.2101 # No feast in a while, vassal requests it
200 = vassal.2201 # You lend money from a vassal
400 = vassal.2205 # Vassal reminds you of the money you owe them
100 = vassal.2301 # Highly skilled vassal progresses development in province
100 = vassal.2401 # Vassal wants gold, offers territory/better Vassal Contract
100 = vassal.2451 # Vassal wants better contract, offers territory/gold
100 = vassal.2501 # Peaceful vassal complains about ongoing war
100 = vassal.2601 # Warmongering vassal complains about peace
100 = vassal.2701 # Ask vassal to teach you CT
100 = vassal.2801 # Liege complains abut no province improvement
100 = vassal.2901 # Vassal requesting land they have claim on
100 = vassal.3001 # You have no heir, ask a vassal for help
100 = vassal.5010 # Zealous vassal wants liege to fight religious enemies
100 = vassal.5050 # Vassal wants liege to fight war over his claim
# Spouse Events
75 = spouse.0001 #Increase opinion of spouse because of common personality
75 = spouse.0003 #Increase opinion of spouse because of common lifestyle or education
75 = spouse.0005 #Decrease opinion of spouse because of opposite personality
75 = spouse.0007 #Increase opinion of spouse because of common friend
75 = spouse.1001 #Increase opinion of an ambivalent spouse
75 = spouse.1003 #Decrease opinion of an ambivalent spouse
75 = spouse.2001 #Lose stress thanks to a loving spouse
75 = spouse.2002 #An opportunity to speak highly of your spouse!
75 = spouse.2012 #Share a secret with spouse
75 = spouse.2014 #You suspect a plot against your spouse
75 = spouse.3001 #Spouse adds stress
75 = spouse.3002 #Spread rumours about your spouse
75 = spouse.3012 #Pretend there is a plot against your spouse
100 = intrigue_scheme_ongoing.5021 #Spouse/parent is plotting against someone!
# Parent Events
75 = parent.1001 #Parent aids with Martial
75 = parent.1002 #Parent aids with Diplomacy
75 = parent.1003 #Parent aids with Intrigue
75 = parent.1004 #Parent aids with Stewardship
75 = parent.1005 #Parent aids with Learning
50 = parent.1006 #Parent helps administrate one of your counties
75 = parent.1007 #Parent helps with courtier opinion
50 = parent.1009 #Parent gives you a new courtier
75 = parent.1010 #Parent gives stress_loss
# Secret Events
100 = secrets.1001 #Randomly learn a courtier's secrets
100 = secrets.1002 #Courtier randomly learns one of court owner's minor secrets
50 = secrets.1003 #Courtier randomly learns one of court owner's major secrets
300 = secrets.1011 #A Friend discovers your secret lover
100 = secrets.1100 #Discover a sibling's Bastard secret
200 = secrets.2001 #A Just or Compassionate relation does not like your murder secret
150 = secrets.3001 #A close relation disrupts a Scheme against you
#Blackmail events
100 = blackmail.1001 #Blackmailing a vassal causes Dread with the others
100 = blackmail.1002 #Gain Stress from being under Blackmail
# Lover Events
50 = lover.1001 #A Lover shares someone's secret with you
50 = lover.1002 #A Lover aids a diplomatic scheme
100 = lover.3203 #Go to your spouse or your lover
100 = lover.3206 #You're forced to wage war against your lover
50 = lover.1003 #Lover helps you lose stress
50 = lover.1004 #Travel somewhere with your lover
200 = lover.1006 #Liege lover granting council position
200 = lover.1007 #Liege lover granting better contract
200 = lover.1008 #Liege lover granting county modifier
100 = lover.2001 #Having a secret lover causes stress
100 = lover.2002 #High stress damages your relationship to your Lover
100 = lover.2004 #Question exclusive partner about spouse
20 = lover.3002 #Start Love Letter chain
50 = lover.0300 #Ask lover to be exclusive
50 = lover.3201 #Leave lover_object_of_importance for lover to find
100 = lover.3204 #Your lover is far far away
100 = lover.3207 #Write letter to beloved!
100 = lover.3211 # Send lover a painting
100 = lover.3215 #Send a troubadour to lover's court
100 = lover.3219 # Send a personal object to lover
100 = lover.7001 #Chance that a good friend becomes a potential lover
100 = lover.7003 #Chance that a rival becomes a potential lover
50 = lover.7005 #Chance that a close family member becomes a potential lover
#TGP Elder/Disciple events
100 = chinese_students.001 #Rivalry between two students
100 = chinese_students.010 #Disciple writes a scroll
100 = chinese_students.020 #Disciple performs divination
100 = chinese_students.030 #Disciple displays talent or requests improvement
#FP1 Events (These ones do not explicitly need you to be norse, but should be more likely if you are - present in both this and fp1_yearly_events)
200 = fp1_yearly.2100 # Two lovers duel for your love
200 = fp1_yearly.0521 # Blood on the Snow - your child wishes to snowball fight.
200 = fp1_yearly.0531 # [Dynasty] on Ice - your child wants to learn how to ice skate.
200 = fp1_yearly.0591 # Raised Voices at the Thing - two of your counties are fighting at a regional thing.
200 = fp1_yearly.0601 # The Hardest Part of Ruling - you're incredibly bored in a protracted thing session.
200 = fp1_yearly.0651 # Leviathan - you spot a whale whilst sailing.
200 = fp1_yearly.0661 # A Novel Challenge - a knight challenges you to skiing.
200 = fp1_yearly.0671 # A Slippery Slope - your child wants to go sledding.
200 = fp1_yearly.0071 # In the Deep Places of the World - locals in your Scandi capital report a troll.
15 = fp1_yearly.2000 # A Child wants to run away to marry their beloved
#EP1 Flavor Events
50 = ep1_flavor.0001 # A neighbouring court has a secret child
100 = ep1_flavor.0011 # Diplomats from nearby realms have trashed your favourite hall.
100 = ep1_flavor.0021 # You compete with another realm that shares your court language for grandeur.
100 = ep1_flavor.0031 # Several fresh young scholars are newly arrived at court & need guidance.
100 = ep1_flavor.1000 # A visiting eunuch offers their services
100 = ep1_flavor.1200 # A learned eunuch wishes to sell various tips & tricks
25 = ep1_flavor.2000 # Invest in sports for your men-at-arms
25 = ep1_flavor.2010 # Too many plots at court, which one is real?!
25 = ep1_flavor.2020 # Two men-at-arms don't like each other
25 = ep1_flavor.2030 # Rule on a dispute between two provincial characters
100 = ep1_flavor.2041 # A trader offers an exotic weapon from a faraway land
25 = ep1_flavor.2060 # Local merchant outed by local policeman
25 = ep1_flavor.2070 # Interfere in a debate with a gifted visting scholar
100 = language_events.0002 # Vassal who speak the language lauds your efforts
#Flavor Events
200 = yearly.9100 # Trouble in the Garden
200 = yearly.9110 # The Flower Thief
200 = yearly.9120 # The Seed Merchant
#Artifact Modifiers
50 = artifact.4000 # Cursed Rumors
80 = artifact.4002 # A Dark Fame
100 = artifact.4010 # A Killing Weapon of Fame
100 = artifact.4020 # A Renowned Armor
100 = artifact.4030 # The Crown of Our People
80 = artifact.4040 # The Eye of the Expert
100 = artifact.4050 # Anger Burst
50 = artifact.4060 # The Blessed Sword of God
100 = artifact.4070 # A Relic Desecrated
100 = artifact.4080 # A Master Dueler's Weapon
100 = artifact.4090 # A Relic and Weapon Combined
#EP1 Courtly Events
100 = court_yearly.1000 # Growing Debauchery
100 = court_yearly.2001 # Competitive Cronying
100 = court_yearly.6040 # Scrounger Life
100 = court_yearly.1020 # Long Arm of the Law
100 = court_yearly.5001 # Lonely Days
100 = court_yearly.5010 # The Haunting
100 = court_yearly.5020 # Pillow Talk
100 = court_yearly.6030 # The Ballad of the Garlic King
100 = court_yearly.7100 # Exotic Animal at Court
100 = court_yearly.7200 # Loud and Proud
100 = court_yearly.7030 # Foreign Merchants wish to establish a merchant quarter
100 = court_yearly.7040 # Courtier on a pillar
100 = court_yearly.4350 # Your caravans are attacked by rampaging Christian nobles!
100 = court_yearly.4355 # one of our nobles attacked a trading caravan!
100 = court_yearly.4800 # Spread Your Wings
100 = court_yearly.0101 # Random Criminal Appears
100 = court_yearly.0102 # Executioner feels lonely
100 = court_yearly.0103 # Executioner selling items from prisoners
100 = court_yearly.0104 # An Unhealthy Obsession
100 = court_yearly.0106 # Dark Theatres for Dark Deeds
100 = court_yearly.0110 # A Lecture on Lustfulness
100 = court_yearly.8100 # Questionable Concoction
100 = court_yearly.8120 # Novel Perspectives
#Culture Events
## Mendicant Mystics
100 = culture_tradition_events.0101 # A mendicant mystic offers to teach your court's children for coin.
100 = culture_tradition_events.0111 # A mendicant mystic seeks to teach you a lesson about HighGodName.
100 = culture_tradition_events.0121 # A mendicant wishes to join your court.
100 = culture_tradition_events.0131 # A mendicant is repulsed by your sins, and invokes the wrath of HighGodName against you.
100 = culture_tradition_events.0141 # A mendicant of your culture, but not your faith, offers tutelage if you'll convert.
#Trait Events
100 = trait_specific.8501 # Someone mocks your lisp
# FP2 - Fate of Iberia Events
180 = fp2_yearly.2020 # Horchata colonialism event
160 = fp2_yearly.8000 # Burning the Vineyards
180 = fp2_yearly.8001 # Assembling the Cortes
180 = fp2_yearly.8002 # A Dietary Dilemma
180 = fp2_yearly.8003 # Flight of Fancy
180 = fp2_yearly.8004 # Translation School
180 = fp2_yearly.8005 # Under the Stone Pine
180 = fp2_yearly.8006 # Saqaliba Settlers
180 = fp2_struggle.1002 # Xenophilic Advancment
160 = fp2_struggle.1050 # Dreams of Destruction
150 = fp2_struggle.2000 # Disorderly Market
140 = fp2_struggle.2008 # Misdeeds of the Councillor
300 = fp2_struggle.2013 # The Secret to Freedom
130 = fp2_struggle.2015 # Letter on the Back
180 = fp2_yearly.2025 # Suffering from Success
150 = fp2_yearly.4001 # You fancy a little siesta
150 = fp2_yearly.4002 # A county is increasingly religiously intertwined
150 = fp2_yearly.4003 # The road to Santiago is under threat from bandits
150 = fp2_yearly.4007 # Finding a shell on the road to Santiago
150 = fp2_yearly.4008 # Folk stories around the fireside
300 = fp2_yearly.4009 # Visiting the Malato Tree
150 = fp2_yearly.4010 # Finding a Verraco
300 = fp2_yearly.3000 # Neighboring Muslims are growing rice, adopt the practice yourself?
150 = fp2_yearly.3001 # Choosing your epitaph
150 = fp2_yearly.3002 # And They Were Roommates
150 = fp2_yearly.3003 # A Flavorful Evening
180 = fp2_struggle.2003 # Band of Lost Birds
#BP1 - Bontent Pack One Events
100 = bp1_yearly.1000 # Best friend introduces you to a new hobby
200 = bp1_yearly.1010 # A friend offers to mediate with your HoF who has excommunicated you
500 = bp1_yearly.1020 # A friend visits you on your dying bed
500 = bp1_yearly.1021 # You visit a friend on their dying bed
500 = bp1_yearly.1030 # A rival visits you on your dying bed
500 = bp1_yearly.1031 # You visit a rival on their dying bed
100 = bp1_yearly.1040 # You make a new friend at the bathhouse
50 = bp1_yearly.1050 # You make a new rival at the bathhouse
100 = bp1_yearly.1060 # React to a superstitious friend
150 = bp1_yearly.1061 # Make someone superstitious - hidden
100 = bp1_yearly.1070 # Rival is superstitious - take advantage?
100 = bp1_yearly.1080 # Married off relative writes home
400 = bp1_yearly.1082 # Married off relative writes home to share a secret
100 = bp1_yearly.2000 # Spoil your partner(s), learn a secret/hook followup
400 = bp1_yearly.2010 # Two of your spouses/concubines are lovers!
100 = bp1_yearly.2020 # A consort attempts to influence you into changing your heir
100 = bp1_yearly.2030 # Mopey consort wants some guidance
100 = bp1_yearly.2040 # Consort is upset with other consort
100 = bp1_yearly.2050 # Friendly consorts wants to start a study circle
200 = bp1_yearly.2060 # Friendly consorts want to tutor other consort's child
100 = bp1_yearly.2070 # Childless older soulmate spouse ponders your relationship
500 = bp1_yearly.3001 # Friend spots you some cash
500 = bp1_yearly.3002 # You spot your friend some cash
100 = bp1_yearly.3007 # Spouse's family member wants you to sponsor their inspiration
100 = bp1_yearly.3100 # Your vassal/friend/family member offers you a skilled courtier
20 = bp1_yearly.3101 # Friend offers to sell you a county you have a claim on
100 = bp1_yearly.3201 #Fake feast invite from rival/nemesis
100 = bp1_yearly.3300 # Remembering a pilgrimage
200 = bp1_yearly.3301 # Remembering a pilgrimage w/ a friend
100 = bp1_yearly.4000 # Reflect over a family memory
100 = bp1_yearly.4010 # Spouse demands their child gets a better guardian
100 = bp1_yearly.4020 # Friend writes poetry about a war memory
250 = bp1_yearly.4030 # Rival nestles their way into marrying one of your vassals, turns them disloyal
10 = bp1_yearly.4040 # Kindly grandmother won't stop feeding you snacks; suffer the consequences of overeating, or break her heart?
50 = bp1_yearly.5301 # Your friend is concerned about your physique
150 = bp1_yearly.5100 # Chadsplaining to a plain courtier
150 = bp1_yearly.5701 # Your Friend's Spouse Is Keeping Them Away From You
100 = bp1_yearly.5702 # You ask a friend for help with skill
200 = bp1_yearly.5703 # Your lover/rival threatens you in bed
100 = bp1_yearly.5704 # Your rival seems strangely... attractive?
200 = bp1_yearly.5705 # Your friend tries to talk you out of a bad relationship
100 = bp1_yearly.5706 # You sleep with your rival's offspring
400 = bp1_yearly.5707 # Your rival catches you sleeping with their offspring
200 = bp1_yearly.5708 #You empathise with a friend's faith
100 = bp1_yearly.5709 #Tempers flare between you and your rival
100 = bp1_yearly.5713 #Your lover asks for money
100 = bp1_yearly.5715 #You and a friend argue about pronunciation
100 = bp1_yearly.5716 #Your zealous wife burns books
100 = bp1_yearly.5717 #Your rival and your friend get into a drunken brawl
100 = bp1_yearly.5719 #Your disloyal vassal is trying to embezzle
100 = bp1_yearly.5720 #You and your rival armwrestle
200 = bp1_yearly.5722 #Your nemesis launches your pet out of a catapult
100 = bp1_yearly.5725 #You search for Khutulun
100 = bp1_yearly.5728 #Rival steals and burns one of your artifacts
10 = bp1_yearly.5740 #Scrambling for Answers
80 = bp1_yearly.5800 #You make a perfume
125 = bp1_yearly.6000 #Attacked by Rival's Child / Family Feud
100 = bp1_yearly.7000 #Go on a picnic
100 = bp1_yearly.7001 #Go fishing
10 = bp1_yearly.7002 #Throw chamberpot at rival
25 = bp1_yearly.7003 #Orgy Tapestry
100 = bp1_yearly.7004 #Friend offers to talk about bad memory
100 = bp1_yearly.7010 #Loyalty test
100 = bp1_yearly.7050 #Memory of a war
100 = bp1_yearly.7051 #Memory of Battle
100 = bp1_yearly.7052 #Telling a story of a memory
100 = bp1_yearly.7053 #A memory of revenge
100 = bp1_yearly.7054 #Forgetting a memory
100 = bp1_yearly.7055 #Recording a memory
100 = bp1_yearly.7056 #Intimidating someone
150 = bp1_yearly.7057 #Yearning
100 = bp1_yearly.7058 #Friend eats all your food
100 = bp1_yearly.8000 #Claimant moving towards rivalry
200 = bp1_yearly.8010 #Best friend offers you a negotiated alliance
100 = bp1_yearly.8020 #Rival of your rival offers friendship
100 = bp1_yearly.8040 #Friend with conflicting personality falls out with you
25 = bp1_yearly.8100 #Sycophant/favoritism chain start
100 = bp1_yearly.9001 #Bully/guardian destroys your favourite toy
100 = bp1_yearly.9005 #You get revenge for your destroyed toy
100 = bp1_yearly.9006 #Becoming friends over a common sin
10 = bp1_yearly.9007 #You find a peasant who looks exactly like you
50 = bp1_yearly.9016 #Uppity second-in-line wants the throne
50 = bp1_yearly.9017 #Uppity child is insecure about culture
200 = bp1_yearly.9018 #Illegitimate child feels excluded
100 = bp1_yearly.9019 #Spouse proposes a gay threesome
200 = bp1_yearly.9020 #Spouse wants to do something kinky
100 = bp1_yearly.9021 #Rival spouse is good in the bedroom
100 = bp1_yearly.9022 #Friend holds an intervention
200 = bp1_yearly.9023 #You realise you don't speak the same language
100 = bp1_yearly.9024 #A friend visits you while you're sick
150 = bp1_yearly.9025 #You realise you hate your friend
100 = bp1_yearly.9026 #You're haunted by an old friend who convinces you to make ammends before you die
100 = bp1_yearly.9034 # You find a terrifying bog witch
100 = bp1_yearly.9037 # You find a bog corpse
100 = bp1_yearly.9040 # The ghost of your dead lover wants to have sex again
100 = bp1_yearly.9042 # Your chaplain finds a dessert that looks like HealthGodName
100 = bp1_yearly.9043 # Your chaplain admits to being a deviant and a cannibal who eats babies
10 = bp1_yearly.9046 # Your child poops themselves during their baptism
100 = bp1_yearly.9047 # Lover wants you to wear their hair
100 = bp1_yearly.9048 # Nemesis wants to end your rivalry by wrestling
100 = bp1_yearly.9050 # You and a friend share war stories
20 = bp1_yearly.7100 # Excreta incident, gain Nemesis
# Family Feud
250 = bp1_house_feud.0001 # Consider starting feud against own rival's house
250 = bp1_house_feud.0002 # Consider starting feud against house family member rivals
250 = bp1_house_feud.0003 # Consider starting feud against house who killed close family
250 = bp1_house_feud.0006 # Consider starting feud against house with competing claims
250 = bp1_house_feud.0007 # Consider starting feud against house who imprisoned you a while
250 = bp1_house_feud.0008 # Consider starting feud against house who imprisoned family a while
250 = bp1_house_feud.0012 # Consider starting feud against house who cuckolded you
# FP3 - Frontier Events
250 = fp3_yearly.8000 # Ghazi Gone Bad
250 = fp3_yearly.8001 # Frontier Fortress Benefactor
250 = fp3_yearly.8002 # Faith at the Frontier
350 = fp3_yearly.8003 # Exotic Espand
350 = fp3_yearly.8004 # The Frontier Beckons
350 = fp3_yearly.8009 # Caliphal Concerns
250 = fp3_yearly.8010 # Abode of War
250 = fp3_yearly.8014 # Secrets of the Teapot
250 = fp3_yearly.8016 # Forgotten Stones & Hyrcanian Havoc
500 = fp3_yearly.8018 # Heavenly Horses
100 = fp3_yearly.8888 #A Grazing Grievance (start of the Nomads Story Cycle)
# FP3 - Heritage Events
250 = fp3_yearly.8019 # Refuge of Light
250 = fp3_yearly.8020 # The Lady of the Land
350 = fp3_yearly.8021 # An Acidic Accident
500 = fp3_yearly.8024 # The Return to the Sky
350 = fp3_yearly.8027 # Nine-Hundred Ninety Chapters of Gold
250 = fp3_yearly.8033 # Frozen Delights
550 = fp3_yearly.8034 # The Hephthalite Hoard
250 = fp3_yearly.8035 # The Heart and the Creator
250 = fp3_yearly.8036 # The City of the Mouthless
500 = fp3_yearly.8037 # A Cure for Acedia (the Melancholia Chain)
300 = fp3_scholarship.1000 # Request Indian mathematician courtiers
200 = fp3_scholarship.8500
200 = fp3_scholarship.8600
#FP3 - Extra Yearly Events
150 = fp3_yearly.8045 #The Mysterious Bundle (the Buzina Chain)
500 = false_conversion.2000 # A Moment of Weakness
# FP3 - Zoroastrian Events
200 = fp3_yearly.8050 #The Fate of the Dead
200 = fp3_yearly.8051 # The Purest Fire
# Guardianship Events
200 = childhood.2400 # Ward approaches guardian with theological doubts
# Hunt
50 = hunt.2000 # Dog salesman
50 = hunt.2001 # Falcon salesman
# Pilgrimage / Hajj
50 = pilgrimage.0500 # Promise your dying religious relative to go on a Pilgrimage
50 = hajj.0500 # Promise your dying Hajjaj relative to go on the Hajj
#BP2 - Bontent Pack Two Events
50 = pet_rock.0001 #You find a neat-looking rock
10 = destiny_child.0001 #Destiny Child Story Cycle
100 = bp2_yearly_extra.0001 #My favorite councilor
200 = bp2_yearly.0601 # Ruling Rightly - Regent tries to teach you about state.
100 = bp2_yearly.0611 # PrimaryTitle's Second Capital - Far away regent never seems to visit.
200 = bp2_yearly.0621 # AuntUncle RegentFirstName - Nearby regents visits often.
200 = bp2_yearly.0631 # Courtier-regent turns you against a rival for the regency.
100 = bp2_yearly.0641 # Regent offers special present in exchange for your agreement on some documents.
100 = bp2_yearly.0651 # Regent makes time for your interests, be they play or poetry.
200 = bp2_yearly.0661 # Regent quarrels with your family about access to you.
100 = bp2_yearly.1000 # Parent/Guardian: Your child/ward walks in on you performing your stress trait
100 = bp2_yearly.1005 # Child: You notice your parent/guardian performing a stress trait
100 = bp2_yearly.1010 # Parent/Guardian: Your child gives you a hug
100 = bp2_yearly.1015 # Parent/Guardian: Your child/ward found a pouch of gold while exploring
100 = bp2_yearly.1020 # Parent/Guardian: Your child/ward has found a secret in court
100 = bp2_yearly.1030 # Parent: Your child does not have the same educational orientation as you. Change?
100 = bp2_yearly.1035 # Parent/Guardian: Your child/ward has a rock collection
100 = bp2_yearly.1040 # Parent/Guardian: Your child/ward has a text about martial arts
100 = bp2_yearly.1045 # Parent/Guardian: There is a brawl among some children
100 = bp2_yearly.2000 # You (a kid) learn about your house founder and can gain one of their traits (or the opposite)
100 = bp2_yearly.2001 # You (a kid) learn about an ancestor and can gain one of their traits (or the opposite)
100 = bp2_yearly.2100 # Build something with another child
# The following are upweighted for non-ai characters because we don't want the ai to start getting these traits at an inordinate rate
10 = bp2_yearly.2110 # Gain Humble or Arrogant
10 = bp2_yearly.2120 # Gain Temperate or Gluttonous
10 = bp2_yearly.2130 # Gain Generous or Greedy
10 = bp2_yearly.2140 # Gain Honest or Deceitful
10 = bp2_yearly.2150 # Gain Loyal or Disloyal
10 = bp2_yearly.2160 # Gain Compassionate or Sadistic
100 = bp2_yearly.3000 # Child bored of lesson
150 = bp2_yearly.5000 # You have a chance to imprison the young prince/ss
300 = bp2_yearly.5009 # You promise?
100 = bp2_yearly.5050 # You learn a language off a guest or courtier
150 = bp2_yearly.5051 # Child interacts with baby sibling
300 = bp2_yearly.5052 # Child spends time with their grandparent
300 = bp2_yearly.5053 # Host's child gets jealous of ward
300 = bp2_yearly.5054 # Hostage and child are becoming friends
100 = bp2_yearly.6000 # a same-culture ward or hostage doesn't know how to behave like one of you
100 = bp2_yearly.6010 # a ward or hostage is sad and wants their family to send monies
100 = bp2_yearly.6020 # hostage might reveal a family secret to you
100 = bp2_yearly.6130 # hostage and a family member are becoming friends
100 = bp2_yearly.6140 # hostage and a family member are becoming rivals
100 = bp2_yearly.6150 # hostage is reticent to keep taking their place next to you during court appearances
100 = bp2_yearly.6160 # your kid and your hostage snuck out of the palace to see your capital
150 = bp2_yearly.6170 # your family mad that you sent a hostage to an uncivilized court
100 = bp2_yearly.7000 # Wet nurse has a disease and can pass it down to a child
100 = bp2_yearly.7001 # Spouse is jealous about wet nurse
100 = bp2_yearly.7002 # Court Chaplain informs You that your marraige is incestuous, due to you having same wet nurse as your spouse
10 = bp2_yearly.7003 # Wet Nurse informs you about first words of your child
10 = bp2_yearly.7004 # Wet Nurse informs you about first steps of your child
10 = bp2_yearly.7005 # Wet Nurse informs you about first fallen teeth of your child
10 = bp2_yearly.7006 # Wet Nurse informs you about first independent dress up of your child
500 = bp2_yearly.7029 # You, a tribal ruler after completing Rites of Passage, can enourage or not next child doing the rites
500 = bp2_yearly.7014 # Child and Wet Nurse connect over same faith/culture
100 = bp2_yearly.8000 # Your hostage learns your court language!
100 = bp2_yearly.8010 # A kid makes fun of your stupid accent
100 = bp2_yearly.8020 # Childhood event, play with toys :D
400 = bp2_yearly.8071 # 8070 follow-up - higher weight because it requires specific childhood event
100 = bp2_yearly.8100 # You develop feelings for another kid, is this a crush?
400 = bp2_yearly.8110 # Sacred childbirth, people want to pamper you
200 = bp2_yearly.8120 # Sacred childbirth, offer to take care of your pregnant spouse
50 = pet_rock.0001 #You find a neat-looking rock
10 = destiny_child.0001 #Destiny Child Story Cycle
25 = bp2_yearly.2010 # Imaginary Friend Story Cycle Start
100 = bp2_yearly_extra.0001 #My favorite councilor
#FP3 - Clan Events
250 = fp3_clan.8000 # Usury against Unity, by Ola Jentzsch
250 = fp3_clan.8001 # Clan Quarrel, by Ola Jentzsch
250 = fp3_clan.8002 # Bonds of Faith, by Ola Jentzsch
250 = fp3_clan.8003 # The Power of a Name, by Ola Jentzsch
250 = fp3_clan.8004 # Bonds of Fear, by Ola Jentzsch
250 = fp3_clan.8005 # A Proper Position, by Ola Jentzsch
250 = fp3_clan.8006 # Small Spies, by Ola Jentzsch
250 = fp3_clan.8008 # Bleeding them Dry, by Ola Jentzsch
250 = fp3_clan.8009 # Popular with the People, by Ola Jentzsch
250 = fp3_clan.8010 # Competent Qadis / More Magistrates, by Ola Jentzsch
250 = fp3_clan.8011 # A Proper Paymaster, by Ola Jentzsch
250 = fp3_clan.8012 # Auspicious Avarice, by Ola Jentzsch
240 = fp3_clan.8013 # The Burden of Tax Farming, by Ola Jentzsch
250 = fp3_clan.8015 # Scandalous Scion, by Ola Jentzsch
250 = fp3_clan.8016 # Hammam Havoc, by Ola Jentzsch
250 = fp3_clan.8017 # A Questionable Position, by Ola Jentzsch
175 = fp3_clan.3000 # Ravaged Tulips, by Hugo Cortell
# FP3 - Eren Events
250 = fp3_yearly.2000 # Daylight Censors
250 = fp3_yearly.2001 # Public Intoxication
100 = fp3_yearly.2011 # Maunds of Wheat no royal court
250 = fp3_yearly.2020 # Set the Scale, Vassal Version
250 = fp3_yearly.2021 # Set the Scale, Liege Version
500 = fp3_yearly.2040 # Commander of the Faithful
# EP3 - Byzantine Events
500 = ep3_emperor_yearly.2010 # Courtiers grumble about you sending an imperial prince/princess to marry abroad among barbarians
250 = ep3_emperor_yearly.2140 # Plunder imperial graves if in debt
250 = ep3_emperor_yearly.2150 # Stylite saint: is he for real or just faking it?
250 = ep3_emperor_yearly.2160 # Pressure from bordering nomads
250 = ep3_emperor_yearly.2170 # Use or disband the tunnels from a low-control county?
200 = ep3_emperor_yearly.2190 # Landowner (estate owner) has been hoarding grain
250 = ep3_emperor_yearly.2200 # Governor can embezzle taxes
250 = ep3_emperor_yearly.2210 # Landless vassal present a prophecy to increase succession score
200 = ep3_emperor_yearly.2220 # Monks complain about roaming shepherds
250 = ep3_emperor_yearly.2230 # Riots against foreign merchants
250 = ep3_emperor_yearly.2240 # Annoying "scholar" keeps quoting the Classics out of place
250 = ep3_emperor_yearly.2320 # HoF helps you change state faith
250 = ep3_emperor_yearly.8000 # Shortage of people in imperial capital
250 = ep3_emperor_yearly.8010 # Fake imperial letter of introduction
250 = ep3_emperor_yearly.8020 # Selling purple rights
25 = ep3_emperor_yearly.8030 # Porphyrios strikes back - rare
150 = ep3_emperor_yearly.8040 # Embrace Iconoclasm
250 = ep3_emperor_yearly.8050 # Northern raider ransom
250 = ep3_emperor_yearly.8060 # Border governor defects
# EP3 - Governor Events
250 = ep3_governor_yearly.8010 # Governor wants to swap a favor with you
250 = ep3_governor_yearly.8020 # Extort an estate in your province
250 = ep3_governor_yearly.8030 # Estate brings unexpected local benefits
250 = ep3_governor_yearly.8040 # Estate is taking too much of your time
500 = ep3_governor_yearly.8050 # Offer liege help in war targeting your province
250 = ep3_governor_yearly.8060 # Embezzle from provincial treasury
50 = ep3_governor_yearly.8070 # Overwhelmed by provincial bureaucracy
250 = ep3_governor_yearly.8080 # Local magistrate accused of corruption
250 = ep3_governor_yearly.8090 # Family that governed your province is jealous
250 = ep3_governor_yearly.8100 # Neighboring governor wants your province
250 = ep3_governor_yearly.8110 # Two neighboring governors falling out
250 = ep3_governor_yearly.8120 # Support disaster victims in your governorship
250 = ep3_governor_yearly.8130 # Raise arbitrary taxes on your province
250 = ep3_governor_yearly.8140 # Stand up to an estate in your province
250 = ep3_governor_yearly.8150 # Response to rebels in your province
250 = ep3_governor_yearly.8160 # Minority access to governor bureaucracy
250 = ep3_governor_yearly.8170 # Prepare defense against nearby raiders
# EP3 - Laamp Events
250 = ep3_laamps.0050 # Close family members wants to become an adventurer
# EP3 - Powerfam events
250 = ep3_powerful_families.8000
250 = ep3_powerful_families.8010
250 = ep3_powerful_families.8030
250 = ep3_powerful_families.8040
250 = ep3_powerful_families.8060
250 = ep3_powerful_families.8070
# EP3 - Landless Admin Events
250 = ep3_landless_admin.1000 # This guy could be a cool councillor
250 = ep3_landless_admin.1010 # You have upgraded your estate a bunch, locals are impressed
250 = ep3_landless_admin.1020 # Upgrade a building in your estate
250 = ep3_landless_admin.1030 # You get offered a hook on your liege
250 = ep3_landless_admin.1040 # Lie about a rival candidate
250 = ep3_landless_admin.1050 # There's something in your basement
# EP3 - Eparch events
500 = ep3_eparch_event.0001
500 = ep3_eparch_event.0005
500 = ep3_eparch_event.0010
500 = ep3_eparch_event.0015
500 = ep3_eparch_event.0020
# MPO - Nomadic Rulers Events
100 = nomad_events.0001 # Starts the Achmach Fanakiti event chain
250 = mpo_nomad_events.1030 # You choose a sport for your son to tryhard
200 = mpo_nomad_events.1020 # Your kin wants to break off from your tribe
250 = court_astrologer_events.0002 # Your Astrologer suggest a better place to migrate to
250 = nomad_events.0100 # Two vassals have a herd dispute
250 = nomad_events.0120 # You take an evening ride with someone
250 = nomad_events.0130 # A merchant offers you some herd
150 = nomad_events.0140 # A foreign merchant passes by your capital and asks to stay
250 = nomad_events.0150 # You share a drink with a courtier
300 = nomad_events.0160 # Your spouse tells you they admire you
300 = nomad_events.0170 # Your spouse is scared of your high dread
250 = nomad_events.0180 # Random courtier laughs at your child low prowess
250 = nomad_events.0190 # Reminisce of a past memory
250 = nomad_events.0200 # Someone tells you of a dream they had
250 = nomad_events.0220 # Spouse scolds you for your low Prowess
250 = nomad_events.0230 # Spouse is feeling homesick
250 = nomad_events.0240 # Neighbouring Nomad's herd shows up in your capital
100 = nomad_events.0250 # Enthusiastic priest asks you to convert
150 = nomad_events.0260 # Distant priest arrives at your court
150 = mpo_nomad_events.1050 # A neighboring herder is salty at you
300 = mpo_nomad_events.1060 # You trade with non-nomad neighbors
100 = mpo_nomad_events.1070 #You wake up after having ridden off alone
200 = mpo_nomad_events.1080 #Neighbor is intruding on your land hunting a criminal
200 = mpo_nomad_events.1100 #You adapt your herds to the local terrain
200 = mpo_nomad_events.1110 #Your capital is by a place you can fish
250 = mpo_events_tova.0025 # You are invited to a knucklebone shooting game
250 = mpo_events_tova.0030 # No astrologer? Someone comes to you with a vision
250 = mpo_events_tova.0035 # Anda comes to you with marital concerns
250 = mpo_events_tova.0045 # A Treasured Friend
250 = nomad_events_oltner.0001 # Hunt sighting in your lands
250 = nomad_events_oltner.0002 # Bird sighting in your lands
250 = nomad_events_oltner.0003 # Dangerous Hunt sighting in your lands
150 = nomad_events_oltner.0004 # Zud - Dangerous animals eat your herd
250 = nomad_events_oltner.0005 # Good season! Animals aplenty.
250 = nomad_events_oltner.0006 # You are offered a skilled Master of the Chase from a tributary
250 = nomad_events_oltner.0007 # You are offered a falcon from a tributary
50 = mpo_bb_events.0001 # blood brother comes by for a wrestling match
100 = mpo_events_anna.0001 #Train Them Young - teach a child how to ride a horse
250 = mpo_events_anna.0005 #Stories from the Past - choose a story to be told
250 = mpo_events_anna.0010 #Whistle Like an Arrow - being taught how to whistle as a child
250 = mpo_events_ariana.0001 # Nest Sighting
50 = mpo_events_ariana.0010 # Your Heir wants to convert to a different faith
250 = mpo_events_ariana.0020 # A spouse is suspicious of a councillor
250 = mpo_events_ariana.0050 # A family member risks being branded
150 = mpo_events_ariana.0060 # A child in your family spots an eagles nest with treasure
250 = mpo_events_ariana.0080 # Someone tells you about a magical tree
150 = pet_animal.3050 # Your rival has an eagle
250 = mpo_events_ariana.0090 # Your child wants to be a herder
250 = mpo_events_ariana.0100 # A non-martial gender family member is very skilled
150 = mpo_events_ariana.0110 # Your court astrologer wants you to move your capital
# MPO - Season Specific Events
500 = mpo_nomads_season_events.0001 # Herders robbed during drought
500 = mpo_nomads_season_events.0005 # A hungry neighbour asks for herd
500 = mpo_nomads_season_events.0010 # A well-to-do neighbor offers herd
500 = mpo_nomads_season_events.0015 # Two Kurultai members fight over food
200 = nomad_events.0110 # A snow wolf attacks a child (weighted up during white zud/cold zud)
500 = nomad_events.0210 # Spouse/Child is worried about low herd
200 = mpo_nomad_events.1120 #It's winter. wolves are hungry for your herd (weighted up during white zud/cold zud)
# MPO - Settled Rulers Events
500 = mpo_flavor_events_settled.0010 # Horse Lord at your door
# TGP - Movement Events
200 = tgp_movement_events.0001 # Marshal urges you to prepare for Expansion
200 = tgp_movement_events.0010 # Try to convince an undecided ruler to join your movement
200 = tgp_movement_events.0020 # Another Advancement member wants to focus on innovations
200 = tgp_movement_events.0030 # Movement member sends you a letter asking for support
200 = tgp_movement_events.0040 # Hegemon sends envoy thanking you for being Pro-Song
200 = tgp_movement_events.0050 # Elder takes interest in you
200 = tgp_movement_events.0060 # Antagonize another movement
200 = tgp_movement_events.0070 # Councillor of your highest skill helps you study
200 = tgp_movement_events.0080 # Family member asks you to focus on your family
200 = tgp_movement_events.0090 # Movement member wants to make amends
200 = tgp_movement_events.0100 # Ask a Movement Leader to abandon their Movement
200 = tgp_movement_events.0110 # Movement member sends you some books
# tgp_movement_events.0120 # Feast event - Movement member teaches you Confucianism
200 = tgp_movement_events.0130 # Movement member teaches you the language of the capital
200 = tgp_movement_events.0140 # Disciple brings you a gift
200 = tgp_movement_events.0150 # Shinto visitor at court
200 = tgp_movement_events.0160 # Promise Movement leader to not scheme against each other
# TGP - Dynastic Cycle Events
200 = tgp_dynastic_cycle_events.0001 # Tilt the scales towards Advancement
200 = tgp_dynastic_cycle_events.0010 # Disciple has a mental breakdown in Instability
200 = tgp_dynastic_cycle_events.0020 # Rowdy peasants steal food during Instability
200 = tgp_dynastic_cycle_events.0030 # In this time of Expansion you should become a Military Governor
200 = tgp_dynastic_cycle_events.0040 # Steward is interested in the Silk Road
200 = tgp_dynastic_cycle_events.0050 # Debate the Favoured Movement and get ahead of them
# TGP - Confucianism Events
250 = tgp_china_yearly.0001 # Charitable Acts
250 = tgp_china_yearly.0005 # Child mourns the loss of a father
250 = tgp_china_yearly.0010 # Hack poet peddles "lucky" poems
250 = tgp_china_yearly.0015 # Settle merchant dispute
250 = tgp_china_yearly.0020 # County has unpaid back-taxes
# TGP- Mandala Events
100 = tgp_east_asia_mandala_events.9000 #Freak accident makes you seem inclined to divinity
100 = devaraja.0002
100 = devaraja.0003
100 = devaraja.0004
100 = devaraja.0005
100 = devaraja.0006
100 = devaraja.0007
100 = devaraja.0008
# Missionary no longer
250 = devaraja.0009
250 = devaraja.0010
# ACH - yearly councillor events
25 = ach_yearly_events.1001
25 = ach_yearly_events.1002
25 = ach_yearly_events.1003
25 = ach_yearly_events.1004
# TGP - Ceremonial Liege Events
100 = tgp_ceremonial_liege_events.0001 # A councillor sends out documents with both seals (Liege/Regent)
75 = tgp_ceremonial_liege_events.0010 # You are extremely stressed, a spouse mentions giving power to the regent (Liege)
100 = tgp_ceremonial_liege_events.0020 # The liege/regent is in an activity which you were not invited to (Liege/Regent)
50 = tgp_ceremonial_liege_events.0030 # A scholar writes about you two and the liege is clearly favored (Liege/Regent)
75 = tgp_ceremonial_liege_events.0040 # Someone is questioning why you are even ruled over by your vassal at all (Regent)
}
}
on_yearly_tutorial_events = {
trigger = {
always = no # TODO[Ruler Objectives]: Make generally available once ready for it
is_ai = no
has_global_variable = tutorial_completed
}
random_events = {
chance_to_happen = 100
1 = tutorial.1001
}
}