Professional Documents
Culture Documents
Faction Demands
Faction Demands
namespace = faction_demand
trigger = {
exists = scope:faction # May have ceased to exist by the time this
triggers
}
option = {
name = "FACTION_DEMAND_ACCEPT"
root = {
save_scope_as = faction_target
add_dread = medium_dread_loss
}
create_title_and_vassal_change = {
type = independency
save_scope_as = change
add_claim_on_loss = no
}
scope:faction = {
every_faction_member = {
change_liege_or_become_independent = {
CHANGE = scope:change
VASSAL = this
}
hidden_effect = {
save_scope_as = recipient # Ensuring it localizes
correctly
add_truce_both_ways = {
character = root
days = 1825
name = TRUCE_GRANT_INDEPENDENCE
}
}
trigger_event = faction_demand.0002
}
}
resolve_title_and_vassal_change = scope:change
add_prestige = {
value = medium_prestige_value
multiply = -1
}
ai_chance = {
base = 1
modifier = {
add = 99
scope:faction = { faction_power >= 100 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 125 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 150 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 200 }
}
modifier = {
factor = 0.1
any_ally = {
NOR = {
target_is_liege_or_above = root
target_is_vassal_or_below = root
}
max_military_strength > root.max_military_strength
}
}
compare_modifier = {
value = debt_level
multiplier = 25
}
modifier = {
add = -50
scope:faction_target = {
is_at_war = no
primary_title.tier >= tier_kingdom
}
}
modifier = {
add = -150
scope:faction_target = {
is_at_war = no
primary_title.tier >= tier_empire
}
}
}
}
option = {
name = "FACTION_DEMAND_REFUSE"
show_as_tooltip = {
scope:faction = {
faction_start_war = {}
}
}
root = {
save_scope_as = faction_target
}
scope:faction_leader = {
trigger_event = faction_demand.0003
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 4.0
}
modifier = {
add = 50
scope:faction = { faction_power < 80 }
}
modifier = {
add = 100
scope:faction = { faction_power < 60 }
}
modifier = {
add = 1000
scope:faction = { faction_power < 40 }
}
compare_modifier = {
value = debt_level
multiplier = -25
}
}
}
}
option = {
name = "FACTION_DEMAND_ACCEPTED_OPT"
custom_tooltip = faction_demand.0002.tt
}
}
every_faction_member = {
limit = { NOT = { this = scope:faction.faction_leader } }
trigger_event = faction_demand.0004
}
}
}
}
option = {
name = "FACTION_DEMAND_REFUSED_OPT"
}
}
option = {
name = "FACTION_DEMAND_SEND_DEMAND_NOTIFICATION_OPT"
}
}
trigger = {
exists = scope:faction
}
option = {
name = "FACTION_DEMAND_ACCEPT"
add_dread = medium_dread_loss
if = {
limit = { has_realm_law = crown_authority_1 }
add_realm_law = crown_authority_0
}
if = {
limit = { has_realm_law = crown_authority_2 }
add_realm_law = crown_authority_1
}
if = {
limit = { has_realm_law = crown_authority_3 }
add_realm_law = crown_authority_2
}
add_prestige = -200
add_character_flag = {
flag = recent_liberty_faction_war
years = 10
}
scope:faction_leader = {
trigger_event = {
id = faction_demand.0102
}
}
scope:faction = {
destroy_faction = yes
}
ai_chance = {
base = 10
modifier = {
add = 90
scope:faction = { faction_power >= 100 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 125 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 150 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 200 }
}
modifier = {
add = 50
any_character_war = {
is_war_leader = root
is_defender = root
}
}
modifier = {
factor = 0.1
any_ally = {
NOR = {
target_is_liege_or_above = root
target_is_vassal_or_below = root
}
max_military_strength > root.max_military_strength
}
}
}
}
option = {
name = "FACTION_DEMAND_REFUSE"
show_as_tooltip = {
scope:faction = {
faction_start_war = {}
}
}
scope:faction_leader = {
trigger_event = {
id = faction_demand.0103
days = 1
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 4.0
}
modifier = {
add = 50
scope:faction = { faction_power < 80 }
}
modifier = {
add = 100
scope:faction = { faction_power < 60 }
}
modifier = {
add = 1000
scope:faction = { faction_power < 40 }
}
}
}
}
option = {
name = "FACTION_DEMAND_REFUSED_OPT"
scope:faction = {
faction_start_war = {}
every_faction_member = {
limit = { NOT = { this = scope:faction.faction_leader } }
trigger_event = faction_demand.0104
}
}
}
}
option = {
name = "FACTION_DEMAND_REFUSED_OPT"
}
}
option = {
name = "FACTION_DEMAND_SEND_DEMAND_NOTIFICATION_OPT"
}
}
# Populist Faction Demand
# by Henrik Fåhraeus and Sean Hughes
faction_demand.1001 = {
type = letter_event
sender = scope:peasant_leader
opening = {
desc = "FACTION_DEMAND_POPULIST"
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
NOT = { culture = scope:peasant_leader.culture }
faith = scope:peasant_leader.faith
}
desc = "FACTION_DEMAND_POPULIST_DESC_CULTURE"
}
triggered_desc = {
trigger = {
NOT = { faith = scope:peasant_leader.faith }
culture = scope:peasant_leader.culture
}
desc = "FACTION_DEMAND_POPULIST_DESC_FAITH"
}
desc = "FACTION_DEMAND_POPULIST_DESC"
}
}
trigger = {
exists = scope:faction
exists = scope:peasant_leader
scope:peasant_leader.joined_faction = scope:faction
}
on_trigger_fail = {
debug_log = "Popular Faction tried to press claim (probably) without
existing peasant_leader"
debug_log_scopes = yes
debug_log = "Popular Faction error reporting complete"
}
immediate = {
every_realm_province = {
county = { add_to_list = remaining_counties_list }
}
scope:faction = {
every_faction_county_member = { remove_from_list =
remaining_counties_list }
}
}
trigger = {
# If more than 30% of your realm belongs to the revolting culture
or faith, you get the option to switch to it.
OR = {
culture = scope:peasant_leader.culture
any_realm_province = {
percent >= 0.30
culture = scope:peasant_leader.culture
}
}
OR = {
faith = scope:peasant_leader.faith
any_realm_province = {
percent >= 0.30
faith = scope:peasant_leader.faith
}
}
if = {
limit = {
NOT = { culture = scope:peasant_leader.culture }
}
set_culture = scope:peasant_leader.culture
add_prestige_level = -2
}
else = {
add_prestige_level = -1
}
if = {
limit = {
NOT = { faith = scope:peasant_leader.faith }
}
set_character_faith = scope:peasant_leader.faith
add_piety_level = -1
}
add_dread = medium_dread_loss
hidden_effect = {
scope:faction = {
destroy_faction = yes
}
}
ai_chance = {
base = 50
ai_value_modifier = {
trigger = {
NOT = { faith = scope:peasant_leader.faith }
}
ai_zeal = -1
min = 0
}
add_prestige_level = -1
add_dread = medium_dread_loss
successful_popular_revolt_outcome_effect = {
FACTION_LEADER = scope:peasant_leader
TARGET_TITLE = scope:target_title
SOURCE_GOVERNMENT = root
}
# If the faction includes ALL of our counties, notify the player that
it will leave them landless!
if = {
limit = {
any_in_list = {
list = remaining_counties_list
count < 1
}
}
custom_tooltip =
FACTION_DEMAND_POPULIST_ACCEPT_GRANT_INDEPENCE_TT
}
hidden_effect = {
if = {
limit = {
exists = scope:faction
}
scope:faction = {
destroy_faction = yes
}
}
}
ai_chance = {
base = 0
compare_modifier = { # Stronger factions increase the chance of
an AI ruler capitulating; at 200% ruler army strength, this maxes out at +50%
chance to accept demands.
value = {
value = scope:faction.faction_power
subtract = 100
multiply = 0.5
}
max = 50
}
compare_modifier = { # Craven rulers can get up to +37% chance to
accept demands.
value = ai_boldness
multiplier = -0.5
}
modifier = {
factor = 0.1
any_ally = {
NOR = {
target_is_liege_or_above = root
target_is_vassal_or_below = root
}
max_military_strength > root.max_military_strength
}
}
compare_modifier = {
value = debt_level
multiplier = 25
}
modifier = {
add = -50
scope:faction_target = {
is_at_war = no
primary_title.tier >= tier_kingdom
}
}
modifier = {
add = -150
scope:faction_target = {
is_at_war = no
primary_title.tier >= tier_empire
}
}
}
}
option = {
name = "FACTION_DEMAND_POPULIST_REFUSE"
scope:faction = {
faction_start_war = {
title = scope:target_title
}
}
ai_chance = {
base = 100
compare_modifier = { # Weaker factions increase the chance of an
AI ruler refusing; at 80% army strength (minimum), this will be +20; at 200% army
strength, this will max out at -50.
value = {
value = scope:faction.faction_power
subtract = 100
multiply = -1
}
min = -50
}
compare_modifier = { # Brave rulers get up to a 50% bonus chance
to refuse.
value = ai_boldness
multiplier = -0.5
min = -50
}
modifier = {
factor = 1.5
any_ally = {
NOR = {
target_is_liege_or_above = root
target_is_vassal_or_below = root
}
max_military_strength > root.max_military_strength
}
}
compare_modifier = {
value = debt_level
multiplier = -25
}
}
}
}
trigger = {
has_variable = rebel_leader_peasants
joined_faction = var:rebel_leader_peasants
exists = scope:war
scope:war = {
primary_defender = scope:previous_controller
}
OR = {
scope:county.culture = root.culture
scope:county.religion = root.religion
}
}
immediate = {
# Determine how many rebel reinforcements we need to spawn, based on
the total number of provinces captured.
set_variable = {
name = number_rebel_reinforcements
value = {
add = {
every_in_list = {
list = occupied_baronies
add = building_levies
}
}
multiply = { # Only spawns between 25% and 50% of the total
county's levies (otherwise could get too overwhelming).
add = 0.25
add = {
scope:county = {
add = development_level
multiply = 0.0025
}
}
}
}
}
after = {
remove_variable = number_rebel_reinforcements
}
}
faction_demand.1101 = {
type = letter_event
sender = scope:peasant_leader
opening = "FACTION_DEMAND_PEASANT"
desc = FACTION_DEMAND_PEASANT_DESC
trigger = {
exists = scope:faction
exists = scope:peasant_leader
scope:peasant_leader.joined_faction = scope:faction
}
on_trigger_fail = {
debug_log = "Peasant Faction tried to press claim (probably) without
existing peasant_leader"
debug_log_scopes = yes
debug_log = "Peasant Faction error reporting complete"
}
option = {
name = "FACTION_DEMAND_PEASANT_ACCEPT"
peasant_faction_demands_enforced = {FACTION = scope:faction}
ai_chance = {
base = 0
ai_value_modifier = {
ai_boldness = -4
}
modifier = {
add = 50
scope:faction = { faction_power >= 100 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 110 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 120 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 130 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 140 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 150 }
}
modifier = {
add = -50
scope:faction.faction_target = {
is_at_war = no
primary_title.tier >= tier_kingdom
}
}
modifier = {
add = -150
scope:faction.faction_target = {
is_at_war = no
primary_title.tier >= tier_empire
}
}
}
}
option = {
name = "FACTION_DEMAND_PEASANT_REFUSE"
scope:faction = {
faction_start_war = {}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 4
}
modifier = {
add = 50
scope:faction = { faction_power < 90 }
}
modifier = {
add = 50
scope:faction = { faction_power < 80 }
}
}
}
}
faction_demand.1102 = {
hidden = yes
trigger = {
is_imprisoned = no
}
immediate = {
death = {
death_reason = death_vanished
}
}
}
faction_demand.1110 = {
hidden = yes
trigger = {
has_variable = rebel_leader_peasants
joined_faction = var:rebel_leader_peasants
exists = scope:war
scope:war = {
primary_defender = scope:previous_controller
}
}
immediate = {
# Determine how many rebel reinforcements we need to spawn, based on
the total number of provinces captured.
set_variable = {
name = number_rebel_reinforcements
value = {
add = {
every_in_list = {
list = occupied_baronies
add = building_levies
}
}
multiply = { # Spawns between 50% and 100% of the total
county's levies
add = 0.5
add = {
scope:county = {
add = development_level
multiply = 0.005
}
}
}
}
}
after = {
remove_variable = number_rebel_reinforcements
}
}
trigger = {
exists = scope:faction
}
immediate = {
set_variable = {
name = claimant_faction_sent_demand
value = scope:faction_claimant
}
}
option = {
name = "FACTION_DEMAND_ACCEPT"
add_dread = medium_dread_loss
scope:faction = {
every_faction_member = {
trigger_event = faction_demand.2002
}
special_title = {
add_to_list = target_titles
}
}
on_claimant_faction_war_win_common = {
TARGET_TITLES = target_titles
ATTACKER = scope:faction.faction_leader
DEFENDER = root
CLAIMANT = scope:faction.special_character
# ATTACKER_PRESTIGE = 0
# DEFENDER_PRESTIGE = 0
}
ai_chance = {
base = 10
modifier = {
add = 50
scope:faction = { faction_power >= 125 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 150 }
}
modifier = {
add = 50
scope:faction = { faction_power >= 200 }
}
modifier = {
factor = 0
any_ally = {
NOR = {
target_is_liege_or_above = root
target_is_vassal_or_below = root
}
max_military_strength > root.max_military_strength
}
}
modifier = {
add = -25
scope:faction_target = {
is_at_war = no
primary_title.tier >= tier_kingdom
}
}
modifier = {
add = -50
scope:faction_target = {
is_at_war = no
primary_title.tier >= tier_empire
}
}
}
}
option = {
name = "FACTION_DEMAND_REFUSE"
root = {
save_scope_as = faction_target
}
show_as_tooltip = {
scope:faction = {
faction_start_war = {
title = scope:target_title
}
faction_spawn_member_county_armies_effect = {
FACTION = scope:faction
ARMY_OWNER = scope:faction_leader
PEASANT_ARMY_NAME = claimant_faction_event_troops
}
}
}
scope:faction_leader = {
trigger_event = faction_demand.2003
}
ai_chance = {
base = 100
compare_modifier = {
trigger = {
ai_boldness > 0
}
value = ai_boldness
multiplier = 3
}
compare_modifier = {
trigger = {
ai_boldness < 0
}
value = ai_boldness
}
modifier = {
add = 50
scope:faction = { faction_power < 80 }
}
modifier = {
add = 100
scope:faction = { faction_power < 60 }
}
modifier = {
add = 1000
scope:faction = { faction_power < 40 }
}
}
}
after = {
remove_variable = claimant_faction_sent_demand
}
}
option = {
name = "FACTION_DEMAND_ACCEPTED_OPT"
}
}
# Claimant Faction Demand Refused
# by Ismael Serrano
faction_demand.2003 = {
type = letter_event
sender = scope:faction_target
opening = {
desc = "FACTION_DEMAND_CLAIMANT_REFUSED"
}
desc = "FACTION_DEMAND_CLAIMANT_REFUSED_DESC"
option = {
name = "FACTION_DEMAND_REFUSED_OPT"
scope:faction = {
every_faction_member = {
limit = {
NOT = { this = root } # i.e. not faction leader, even
when the war disbands the faction
}
trigger_event = faction_demand.2004
}
faction_start_war = {
title = special_title
}
# This needs to occur after the war begins, or the troops can't
spawn correctly.
faction_spawn_member_county_armies_effect = {
FACTION = scope:faction
ARMY_OWNER = scope:faction_leader
PEASANT_ARMY_NAME = claimant_faction_event_troops
}
}
}
}
option = {
name = "FACTION_DEMAND_REFUSED_OPT"
custom_tooltip = faction_demand.2004.opt_tt
}
}
option = {
name = "FACTION_DEMAND_SEND_DEMAND_NOTIFICATION_OPT"
}
}
trigger = {
exists = scope:retaliating_faction
}
immediate = {
show_as_tooltip = {
scope:retaliating_faction = {
faction_start_war = {}
}
}
}
option = {
name = FACTION_IMPRISONMENT_RETALIATION_OPT
}
}