N3OW/common/factions/00_factions.txt
2026-04-25 10:02:11 +02:00

1558 lines
36 KiB
Text

independence_faction = {
casus_belli = independence_faction_war
short_effect_desc = independence_faction_short_effect_desc
sort_order = 2
is_shown = {
NAND = {
tgp_is_ceremonial_liege_trigger = yes
tgp_is_ceremonial_regent_trigger = no
}
}
discontent_progress = {
base = 0
common_discontent_progress_modifier = yes
}
power_threshold = {
base = 80
modifier = {
add = 20
faction_target = {
has_perk = hard_rule_perk
}
desc = "FACTION_POWER_HARD_RULE"
}
dynamic_power_threshold_scripted_modifier = {
FACTION_TYPE1 = claimant_faction
FACTION_TYPE2 = liberty_faction
FACTION_TYPE3 = populist_faction
}
}
demand = {
save_scope_as = faction
faction_leader = {
save_scope_as = faction_leader
}
faction_target = {
save_scope_as = faction_target
}
# Let the human players in the faction know that the demand will be sent
every_faction_member = {
limit = {
is_ai = no
this != scope:faction.faction_leader
}
trigger_event = faction_demand.0005
}
# Send the actual demand in 5 days
faction_target = {
trigger_event = {
id = faction_demand.0001
days = 5
}
}
}
ai_demand_chance = {
base = 0
# 40% base chance at minimum power (80%), increasing linearly
compare_modifier = {
value = faction_power
multiplier = 0.5
}
# Once the faction has a good chance to win (10% stronger than liege) demand chance increases much more rapidly.
compare_modifier = {
trigger = { faction_power > 110 }
value = faction_power
multiplier = 1
}
modifier = {
add = 100
faction_target = {
is_at_war = yes # Independence Factions are opportunistic bastards!
}
}
modifier = {
add = -1000
faction_target = {
involved_activity ?= {
has_activity_type = activity_coronation
activity_host = prev
}
}
}
}
ai_create_score = {
base = -175 # Base reluctance value we must overcome to start an Independence Faction.
############
# BLOCKERS #
common_create_faction_blockers = {
FACTION_TARGET = scope:target
FLAG = recent_independence_faction_war
}
independence_faction_create_blockers = {
FACTION_TARGET = scope:target
}
#######################
# Standard AI Weights #
common_faction_modifiers = {
FACTION_TARGET = scope:target
OPINION_MULTIPLIER = -0.4
MAX_OPINION = 100
POWER = 0
THRESHOLD = 80
}
independence_faction_modifiers = {
FACTION_TARGET = scope:target
}
#House Hostility from Armenian tradition
modifier = {
desc = "FACTION_REASON_HOUSE_HOSTILITY"
scope:target.house ?= {
this != root.house
}
culture = { has_cultural_parameter = house_hostility_more_common }
factor = 1.25
}
# EP3 - Grand Ambitions Story Cycle
modifier = {
desc = "EP3_GRAND_AMBITIONS_STORY"
any_owned_story = {
type = grand_ambitions_story_cycle
var:target_char ?= scope:target
}
factor = 1.5
}
# TGP Dynastic Cycle in Instability phase
modifier = {
desc = "FACTION_REASON_DYNASTIC_CYCLE_INSTABILITY"
add = 25
scope:target = {
top_participant_group:dynastic_cycle ?= {
has_participant_group_parameter = dynastic_cycle_external_tributaries_vassals_increased_independence_desire
}
}
}
modifier = {
scope:target = { has_character_modifier = disbelieved_mandala_modifier }
add = 15
desc = is_disbelieved_mandala
}
}
ai_join_score = {
base = -150 # Base reluctance value we must overcome to join an Independence Faction.
############
# BLOCKERS #
common_join_faction_blockers = {
FACTION_TARGET = scope:faction.faction_target
}
#######################
# Standard AI Weights #
common_faction_modifiers = {
FACTION_TARGET = scope:faction.faction_target
OPINION_MULTIPLIER = -0.4
MAX_OPINION = 100
POWER = scope:faction.faction_power
THRESHOLD = scope:faction.faction_power_threshold
}
independence_faction_modifiers = {
FACTION_TARGET = scope:faction.faction_target
}
# Small multiplier for my neighbors already in the Faction
modifier = {
desc = "FACTION_REASON_NEIGHBORS"
scope:faction = {
any_faction_member = { #suppress the description printout if factor is 1
any_neighboring_realm_same_rank_owner = {
this = root
}
}
}
factor = {
value = 1
scope:faction = {
every_faction_member = {
if = {
limit = {
any_neighboring_realm_same_rank_owner = {
this = root
}
}
add = 0.25
}
}
}
}
}
modifier = {
desc = "FACTION_REASON_POWERFUL_VASSAL"
factor = 2
is_powerful_vassal_of = scope:faction.faction_target
}
struggle_faction_modifiers = yes
#House Hostility from Armenian tradition
modifier = {
desc = "FACTION_REASON_HOUSE_HOSTILITY"
scope:faction.faction_target.house ?= {
this != root.house
}
culture = { has_cultural_parameter = house_hostility_more_common }
factor = 1.25
}
#EP3 admin legitimacy event
modifier = {
desc = "FACTION_REASON_LOW_LEGITIMACY_CHALLENGER"
add = 25
scope:faction = {
any_faction_member = {
has_character_flag = low_legitimacy_admin_factions_flag
}
}
}
# TGP Dynastic Cycle in Instability phase
modifier = {
desc = "FACTION_REASON_DYNASTIC_CYCLE_INSTABILITY"
add = 25
scope:faction.faction_target = {
top_participant_group:dynastic_cycle ?= {
has_participant_group_parameter = dynastic_cycle_external_tributaries_vassals_increased_independence_desire
}
}
}
}
is_character_valid = {
common_character_validity_trigger = {
FACTION_TARGET = scope:faction.faction_target
}
has_valid_faction_members_trigger = yes
}
can_character_create_ui = {
base_faction_trigger = { FACTION_TYPE = independence_faction }
common_can_character_create_trigger = {
FACTION_TARGET = scope:target
}
# Bloc Cohesion requirement
japan_faction_cohesion_trigger = yes
liege = {
top_liege = this
}
trigger_if = {
limit = {
faith.religion = religion:islam_religion
liege = { has_title = title:d_sunni }
title:d_sunni = {
has_variable = dar_al_islam
}
}
liege = {
NOT = {
has_title = title:d_sunni
}
}
}
#PROPPA CONFEDERATION VASSALS
trigger_if = {
limit = {
liege = {
is_confederation_member = yes
}
}
#Confederations block most faction types
custom_tooltip = {
text = confederaton_blocks_faction
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_tribal
}
}
}
# The emperor does not want to leave his empire
tgp_is_ceremonial_liege_trigger = no
# Ministers cannot join this faction
custom_description = {
text = target_is_a_minister_desc
subject = this
tgp_is_any_minister = no
}
}
can_character_create = {
common_can_character_create_trigger = {
FACTION_TARGET = scope:target
}
# Bloc Cohesion requirement
japan_faction_cohesion_trigger = yes
liege = {
top_liege = this
}
custom_description = {
text = character_blocked_from_joining # will never be displayed but without it, errors are triggered
OR = {
is_ai = no
culture != scope:target.culture
faith != scope:target.faith
NOT = {
scope:target = {
is_rightful_liege_of = root
}
}
any_sub_realm_county = {
percent <= 0.5
save_temporary_scope_as = current_county
scope:target.primary_title = {
any_in_de_jure_hierarchy = { this = scope:current_county }
}
}
government_has_flag = government_is_nomadic
}
}
trigger_if = {
limit = {
faith.religion = religion:islam_religion
liege = { has_title = title:d_sunni }
title:d_sunni = {
has_variable = dar_al_islam
}
}
liege = {
NOT = {
has_title = title:d_sunni
}
}
}
#PROPPA CONFEDERATION VASSALS
trigger_if = {
limit = {
liege = {
is_confederation_member = yes
}
}
#Confederations block most faction types
custom_tooltip = {
text = confederaton_blocks_faction
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_tribal
}
}
}
# The emperor does not want to leave his empire
tgp_is_ceremonial_liege_trigger = no
# Ministers cannot join this faction
custom_description = {
text = target_is_a_minister_desc
subject = this
tgp_is_any_minister = no
}
}
can_character_join = {
common_can_character_join_trigger = {
FACTION_TARGET = scope:faction.faction_target
}
trigger_if = {
limit = {
faith.religion = religion:islam_religion
liege = { has_title = title:d_sunni }
title:d_sunni = {
has_variable = dar_al_islam
}
}
liege = {
NOT = {
has_title = title:d_sunni
}
}
}
#PROPPA CONFEDERATION VASSALS
trigger_if = {
limit = {
liege = {
is_confederation_member = yes
}
}
#Confederations block most faction types
custom_tooltip = {
text = confederaton_blocks_faction
NOR = {
government_has_flag = government_is_nomadic
government_has_flag = government_is_tribal
}
}
}
# The emperor does not want to leave his empire
tgp_is_ceremonial_liege_trigger = no
# Ministers cannot join this faction
custom_description = {
text = target_is_a_minister_desc
subject = this
tgp_is_any_minister = no
}
}
can_character_become_leader = {
can_become_leader_of_faction_trigger = yes
}
on_creation = {
save_scope_as = faction
tgp_bloc_members_join_faction_effect = yes
if = {
limit = {
any_player = {
has_government = landless_adventurer_government
is_within_diplo_range = { CHARACTER = scope:faction.faction_target }
OR = {
has_contact = scope:faction.faction_leader
NOT = { has_contact = scope:faction.faction_target }
}
any_character_task_contract = {
task_contract_type = laamp_join_faction_contract
count <= 3
}
can_create_task_contract = {
type_name = laamp_join_faction_contract
employer = scope:faction.faction_leader
}
save_temporary_scope_as = player_laamp
}
}
scope:player_laamp = {
create_task_contract = {
task_contract_type = laamp_join_faction_contract
task_contract_tier = scope:faction.faction_leader.task_contract_tier_value
location = scope:faction.faction_leader.primary_title.title_province
task_contract_employer = scope:faction.faction_leader
target = scope:faction.faction_target
}
}
}
}
county_allow_join = no
county_allow_create = no
}
liberty_faction = {
casus_belli = liberty_faction_war
desc = {
first_valid = {
triggered_desc = {
trigger = {
faction_target = { government_has_flag = government_is_administrative }
}
desc = liberty_faction_desc_admin
}
triggered_desc = {
trigger = {
faction_target = { government_has_flag = government_is_tribal }
}
desc = liberty_faction_desc_tribal
}
triggered_desc = {
trigger = {
faction_target = { government_has_flag = government_is_feudal }
}
desc = liberty_faction_desc_feudal
}
desc = liberty_faction_desc
}
}
short_effect_desc = {
first_valid = {
triggered_desc = {
trigger = {
faction_target = { government_has_flag = government_is_administrative }
}
desc = liberty_faction_short_effect_desc_admin
}
triggered_desc = {
trigger = {
faction_target = { government_has_flag = government_is_tribal }
}
desc = liberty_faction_short_effect_desc_tribal
}
desc = liberty_faction_short_effect_desc
}
}
sort_order = 4
is_shown = {
NAND = {
tgp_is_ceremonial_liege_trigger = yes
tgp_is_ceremonial_regent_trigger = no
}
}
discontent_progress = {
base = 0
common_discontent_progress_modifier = yes
}
power_threshold = {
base = 80
modifier = {
add = 20
faction_target = {
has_perk = hard_rule_perk
}
desc = "FACTION_POWER_HARD_RULE"
}
#Lower the threshold depending on the state of other factions
dynamic_power_threshold_scripted_modifier = {
FACTION_TYPE1 = claimant_faction
FACTION_TYPE2 = independence_faction
FACTION_TYPE3 = populist_faction
}
}
demand = {
save_scope_as = faction
faction_leader = {
save_scope_as = faction_leader
}
faction_target = {
save_scope_as = faction_target
}
# Let the human players in the faction know that the demand will be sent
every_faction_member = {
limit = {
is_ai = no
this != scope:faction.faction_leader
}
trigger_event = faction_demand.0105
}
# Send the actual demand in 5 days
faction_target = {
trigger_event = {
id = faction_demand.0101
days = 5
}
}
}
ai_demand_chance = {
base = 0
# 30% base chance at minimum power (80%), increasing linearly
compare_modifier = {
value = faction_power
multiplier = 0.375
}
# Once the faction has a good chance to win (10% stronger than liege) demand chance increases much more rapidly.
compare_modifier = {
trigger = { faction_power > 110 }
value = faction_power
multiplier = 0.75
}
# Less likely if already in a war with an external ruler - the Liberty Faction is pretty sporting
modifier = {
add = -75
faction_target = {
any_war_enemy = {
NOT = {
target_is_liege_or_above = root.faction_target
}
}
}
}
modifier = {
add = -1000
faction_target = {
involved_activity ?= {
has_activity_type = activity_coronation
activity_host = prev
}
}
}
}
on_war_start = {
every_faction_member = {
limit = {
has_variable = gathered_support_for_faction
var:gathered_support_for_faction = root
}
spawn_army = {
name = gathered_support_for_faction_army
levies = {
value = this.massive_influence_value
multiply = 3
}
men_at_arms = {
type = light_footmen
stacks = 2
}
location = this.location
war = root.faction_war
inheritable = yes
}
}
}
is_character_valid = {
common_character_validity_trigger = {
FACTION_TARGET = scope:faction.faction_target
}
has_valid_faction_members_trigger = yes
}
can_character_create_ui = {
base_faction_trigger = { FACTION_TYPE = liberty_faction }
common_can_character_create_trigger = {
FACTION_TARGET = scope:target
}
# Bloc Cohesion requirement
japan_faction_cohesion_trigger = yes
trigger_if = {
limit = { scope:target = { realm_law_use_imperial_bureaucracy = yes } }
custom_description = {
text = has_lowest_imperial_bureaucracy
subject = scope:target
scope:target = {
OR = {
has_realm_law = imperial_bureaucracy_1
has_realm_law = imperial_bureaucracy_2
has_realm_law = imperial_bureaucracy_3
}
}
}
}
trigger_else_if = {
limit = { scope:target = { government_has_flag = government_is_tribal } }
custom_description = {
text = has_lowest_tribal_authority
subject = scope:target
scope:target = {
OR = {
has_realm_law = tribal_authority_1
has_realm_law = tribal_authority_2
has_realm_law = tribal_authority_3
}
}
}
}
trigger_else_if = {
limit = { scope:target = { realm_law_use_celestial_bureaucracy = yes } }
custom_description = {
text = has_lowest_celestial_bureaucracy
subject = scope:target
scope:target = {
OR = {
has_realm_law = celestial_bureaucracy_1
has_realm_law = celestial_bureaucracy_2
has_realm_law = celestial_bureaucracy_3
}
}
}
}
trigger_else_if = {
limit = { scope:target = { realm_law_use_meritocratic_bureaucracy = yes } }
custom_description = {
text = has_lowest_meritocratic_bureaucracy
subject = scope:target
scope:target = {
OR = {
has_realm_law = meritocratic_bureaucracy_1
has_realm_law = meritocratic_bureaucracy_2
has_realm_law = meritocratic_bureaucracy_3
}
}
}
}
trigger_else_if = {
limit = { scope:target = { realm_law_use_japanese_bureaucracy = yes } }
custom_description = {
text = has_lowest_japanese_bureaucracy
subject = scope:target
scope:target = {
OR = {
has_realm_law = japanese_bureaucracy_1
has_realm_law = japanese_bureaucracy_2
has_realm_law = japanese_bureaucracy_3
}
}
}
}
trigger_else = {
custom_description = {
text = has_lowest_crown_authority
subject = scope:target
scope:target = {
OR = {
has_realm_law = crown_authority_1
has_realm_law = crown_authority_2
has_realm_law = crown_authority_3
}
}
}
}
trigger_if = {
limit = {
scope:target = { government_has_flag = government_is_administrative }
}
scope:target = {
top_liege = this
}
}
}
can_character_create = {
common_can_character_create_trigger = {
FACTION_TARGET = scope:target
}
# Bloc Cohesion requirement
japan_faction_cohesion_trigger = yes
has_valid_realm_laws_for_liberty_faction_trigger = {
TARGET = scope:target
}
trigger_if = {
limit = {
scope:target = { government_allows = administrative }
}
scope:target = {
top_liege = this
}
}
}
can_character_join = {
common_can_character_join_trigger = {
FACTION_TARGET = scope:faction.faction_target
}
OR = {
is_ai = no
has_valid_realm_laws_for_liberty_faction_trigger = {
TARGET = scope:faction.faction_target
}
}
trigger_if = {
limit = {
scope:faction.faction_target = { government_allows = administrative }
}
scope:faction.faction_target = {
top_liege = this
}
}
}
can_character_become_leader = {
can_become_leader_of_faction_trigger = yes
}
ai_create_score = {
base = 0 # Join Weight is set primarily based on what Crown Laws a realm has.
############
# BLOCKERS #
############
common_create_faction_blockers = {
FACTION_TARGET = scope:target
FLAG = recent_liberty_faction_war
}
#######################
# Standard AI Weights #
#
# Modifiers for Liberty Factions are inherently small.
# This is because Liberty is the 'Default Faction' that vassals are join if they don't want/can't join any other faction.
# 'Base Join Weight' depends on the current Crown Authority level.
common_faction_modifiers = {
FACTION_TARGET = scope:target
OPINION_MULTIPLIER = -1
MAX_OPINION = 0
POWER = 0
THRESHOLD = 80
}
liberty_faction_modifiers = {
FACTION_TARGET = scope:target
}
#House Hostility from Armenian tradition
modifier = {
desc = "FACTION_REASON_HOUSE_HOSTILITY"
scope:target.house ?= {
this != root.house
}
culture = { has_cultural_parameter = house_hostility_more_common }
factor = 1.25
}
}
ai_join_score = {
base = 0 # Join Weight is set primarily based on what Crown Laws a realm has.
############
# BLOCKERS #
common_join_faction_blockers = {
FACTION_TARGET = scope:faction.faction_target
}
#######################
# Standard AI Weights #
#AI
# Modifiers for Liberty Factions are inherently small.
# This is because Liberty is the 'Default Faction' that vassals are join if they don't want/can't join any other faction.
common_faction_modifiers = {
FACTION_TARGET = scope:faction.faction_target
OPINION_MULTIPLIER = -1
MAX_OPINION = 0
POWER = scope:faction.faction_power
THRESHOLD = scope:faction.faction_power_threshold
}
liberty_faction_modifiers = {
FACTION_TARGET = scope:faction.faction_target
}
struggle_faction_modifiers = yes
#House Hostility from Armenian tradition
modifier = {
desc = "FACTION_REASON_HOUSE_HOSTILITY"
scope:faction.faction_target.house ?= {
this != root.house
}
culture = { has_cultural_parameter = house_hostility_more_common }
factor = 1.25
}
#EP3 admin legitimacy event
modifier = {
desc = "FACTION_REASON_LOW_LEGITIMACY_CHALLENGER"
add = 25
scope:faction = {
any_faction_member = {
has_character_flag = low_legitimacy_admin_factions_flag
}
}
}
}
on_creation = {
save_scope_as = faction
tgp_bloc_members_join_faction_effect = yes
if = {
limit = {
any_player = {
has_government = landless_adventurer_government
is_within_diplo_range = { CHARACTER = scope:faction.faction_target }
OR = {
has_contact = scope:faction.faction_leader
NOT = { has_contact = scope:faction.faction_target }
}
any_character_task_contract = {
task_contract_type = laamp_join_faction_contract
count <= 3
}
can_create_task_contract = {
type_name = laamp_join_faction_contract
employer = scope:faction.faction_leader
}
save_temporary_scope_as = player_laamp
}
}
scope:player_laamp = {
create_task_contract = {
task_contract_type = laamp_join_faction_contract
task_contract_tier = scope:faction.faction_leader.task_contract_tier_value
location = scope:faction.faction_leader.primary_title.title_province
task_contract_employer = scope:faction.faction_leader
target = scope:faction.faction_target
}
}
}
}
county_allow_join = no
county_allow_create = no
}
claimant_faction = {
casus_belli = claimant_faction_war
short_effect_desc = claimant_faction_short_effect_desc
sort_order = 1
show_special_title = yes
name = FACTION_CLAMAINT_DYNAMIC_NAME
character_interaction = create_claimant_faction_against_interaction
claimant = yes
is_shown = {
NAND = {
tgp_is_ceremonial_liege_trigger = yes
tgp_is_ceremonial_regent_trigger = no
}
}
discontent_progress = {
base = 0
common_discontent_progress_modifier = yes
}
power_threshold = {
base = 80
modifier = {
add = 20
faction_target = {
has_perk = hard_rule_perk
}
desc = "FACTION_POWER_HARD_RULE"
}
#Lower the threshold depending on the state of other factions
dynamic_power_threshold_scripted_modifier = {
FACTION_TYPE1 = liberty_faction
FACTION_TYPE2 = independence_faction
FACTION_TYPE3 = populist_faction
}
}
is_valid = { # If the FACTION itself is valid
# see also invalidate_claimant_factions_on_death_effect for what happens when the claimant dies
trigger_if = {
limit = {
OR = {
exists = special_character
exists = faction_war
}
}
special_title.holder ?= faction_target
special_title.holder ?= { tgp_is_ceremonial_regent_trigger = no }
OR = {
special_character ?= {
is_alive = yes
#has_claim_on = root.special_title
NOR = {
has_trait = incapable
this = root.faction_target
}
# Under Byzantine law, a ruler must be unblemished
trigger_if = {
limit = {
root.special_title.holder.culture ?= { has_cultural_parameter = physical_disfigurement_blocks_inheritance }
}
custom_description = {
text = "byzantine_claimant_is_disfigured"
object = this
valid_for_byz_succession_trigger = yes
}
}
trigger_if = { #If they're imprisoned by the faction target they can only be so for five years before invalidating
limit = {
is_imprisoned_by = root.faction_target
}
time_in_prison_type = {
years < 5
}
}
# Ministers cannot be claimants unless we are targeting h_china
trigger_if = {
limit = {
OR = {
has_title = title:e_minister_chancellor
has_title = title:e_minister_censor
has_title = title:e_minister_grand_marshal
has_title = title:e_minister_of_personnel
has_title = title:e_minister_of_revenue
has_title = title:e_minister_of_rites
has_title = title:e_minister_of_war
has_title = title:e_minister_of_justice
has_title = title:e_minister_of_works
}
}
custom_description = {
text = target_is_a_minister_desc
subject = this
root.special_title = { this = title:h_china }
}
}
}
exists = faction_war
}
}
}
demand = { # The effect of pressing demand
save_scope_as = faction
faction_leader = {
save_scope_as = faction_leader
}
faction_target = {
save_scope_as = faction_target
}
special_character = {
save_scope_as = faction_claimant
}
special_title = {
save_scope_as = faction_targeted_title
}
# Let the human players in the faction know that the demand will be sent
every_faction_member = {
limit = {
is_ai = no
this != scope:faction.faction_leader
}
trigger_event = faction_demand.2005
}
# Send the actual demand in 5 days
faction_target = {
trigger_event = {
id = faction_demand.2001
days = 5
}
}
}
ai_demand_chance = {
base = 0
#Won't send ultimatum if the claimant is imprisoned by the faction-target!
modifier = {
add = -500
faction_target = {
any_prisoner = {
this = root.special_character
}
}
}
# Won't start a war is the Realm is fighting against a Dissolution faction or Independent factions: you want to get the best realm possible. Better wait a bit longer
modifier = {
add = -1000
faction_target = {
any_character_war = {
OR = {
using_cb = independence_faction_war
using_cb = independence_war
using_cb = nation_fracturing_faction_war
}
}
}
}
# 40% base chance at minimum power (80%), increasing linearly
compare_modifier = {
value = faction_power
multiplier = 0.5
}
# Once the faction has a good chance to win (10% stronger than liege) demand chance increases much more rapidly.
compare_modifier = {
trigger = { faction_power > 110 }
value = faction_power
multiplier = 1
}
# Less likely if already in a war with an external ruler
modifier = {
add = -50
faction_target = {
any_war_enemy = {
NOT = {
target_is_liege_or_above = root.faction_target
}
}
}
}
modifier = {
add = -1000
faction_target = {
involved_activity ?= {
has_activity_type = activity_coronation
activity_host = prev
}
}
}
}
on_war_start = {
every_faction_member = {
limit = {
has_variable = gathered_support_for_faction
var:gathered_support_for_faction = root
}
spawn_army = {
name = gathered_support_for_faction_army
levies = {
value = this.massive_influence_value
multiply = 3
}
men_at_arms = {
type = light_footmen
stacks = 2
}
location = this.location
war = root.faction_war
inheritable = yes
}
}
}
is_character_valid = { # Is the character valid to stay in the faction? This is also checked when creating it...
common_character_validity_trigger = {
FACTION_TARGET = scope:faction.faction_target
}
trigger_if = {
limit = {
government_allows = administrative
}
scope:faction.faction_target ?= {
OR = {
top_liege ?= this
NOT = { government_allows = administrative }
}
}
}
# TGP - Use Coup against Kampaku instead
trigger_if = {
limit = {
scope:faction.faction_target ?= top_liege
}
scope:faction.faction_target ?= {
tgp_is_ceremonial_regent_trigger = no
}
}
has_valid_faction_members_trigger = yes
}
can_character_create_ui = {
is_character_interaction_valid = {
recipient = scope:target
interaction = create_claimant_faction_against_interaction
}
# Bloc Cohesion requirement
japan_faction_cohesion_trigger = yes
# TGP - Use Coup against Kampaku instead
custom_tooltip = {
text = cannot_create_claimant_faction_against_kampaku_tooltip
scope:target = {
# TGP - Use Coup against Kampaku instead
tgp_is_ceremonial_regent_trigger = no
}
}
}
can_character_create = { # If a character is allowed to create the faction. The 'is_character_valid' block is also checked in conjunction with this when creating a faction.
common_can_character_create_trigger = {
FACTION_TARGET = scope:target
}
# Bloc Cohesion requirement
japan_faction_cohesion_trigger = yes
# TGP - Use Coup against Kampaku instead
trigger_if = {
limit = {
exists = joined_faction
joined_faction.special_title.holder ?= {
this = scope:target
}
}
joined_faction.special_title.holder ?= {
tgp_is_ceremonial_regent_trigger = no
}
}
# TGP - Use Coup against Kampaku instead
trigger_else_if = {
limit = {
has_variable = claiming_title
var:claiming_title.holder ?= {
this = scope:target
}
}
var:claiming_title.holder ?= {
tgp_is_ceremonial_regent_trigger = no
}
}
trigger_else = {
always = no
}
}
can_character_join = { # Can a character join an existing faction?
common_can_character_join_trigger = {
FACTION_TARGET = scope:faction.faction_target
}
}
can_character_become_leader = {
can_become_leader_of_faction_trigger = yes
}
ai_create_score = { # How likely is an AI to create a faction?
base = -25
####
# BLOCKERS
####
common_create_faction_blockers = {
FACTION_TARGET = scope:target
FLAG = none
}
claimant_faction_blockers = {
FACTION_TARGET = scope:target
FACTION_CLAIMANT = scope:claimant
}
####
# AI modifiers
####
common_faction_modifiers = {
FACTION_TARGET = scope:target
OPINION_MULTIPLIER = -1.5
MAX_OPINION = 150
POWER = 0
THRESHOLD = 80
}
claimant_faction_modifiers = {
FACTION_TARGET = scope:target
FACTION_CLAIMANT = scope:claimant
FACTION_TITLE = scope:title
}
admin_faction_modifiers = {
FACTION_TARGET = scope:target
FACTION_TYPE = claimant_faction
}
admin_claimant_faction_modifiers = {
FACTION_TARGET = scope:target
FACTION_CLAIMANT = scope:claimant
}
}
ai_join_score = { # How likely is an AI to join an existing faction?
base = -25
common_join_faction_blockers = {
FACTION_TARGET = scope:faction.faction_target
}
claimant_faction_blockers = {
FACTION_TARGET = scope:faction.faction_target
FACTION_CLAIMANT = scope:faction.special_character
}
common_faction_modifiers = {
FACTION_TARGET = scope:faction.faction_target
OPINION_MULTIPLIER = -1
MAX_OPINION = 100
POWER = scope:faction.faction_power
THRESHOLD = scope:faction.faction_power_threshold
}
claimant_faction_modifiers = {
FACTION_TARGET = scope:faction.faction_target
FACTION_CLAIMANT = scope:faction.special_character
FACTION_TITLE = scope:faction.special_title
}
admin_faction_modifiers = {
FACTION_TARGET = scope:faction.faction_target
FACTION_TYPE = claimant_faction
}
admin_claimant_faction_modifiers = {
FACTION_TARGET = scope:faction.faction_target
FACTION_CLAIMANT = scope:faction.special_character
}
# Faction 'Stacking' Factors, attempts to cluster AI rulers into several powerful factions instead of many weak ones.
join_faction_stacking_modifiers = yes
modifier = { # CE1 Divine Mandate perk
desc = "FACTION_REASON_LEGITIMACY_LEGACY_4"
liege.dynasty = { has_dynasty_perk = ce1_legitimacy_legacy_4 }
add = -10
}
struggle_faction_modifiers = yes
#EP3 admin legitimacy event
modifier = {
desc = "FACTION_REASON_LOW_LEGITIMACY_CHALLENGER"
add = 25
scope:faction = {
any_faction_member = {
has_character_flag = low_legitimacy_admin_factions_flag
}
}
}
#EP3 King of England disgruntled vassals/life threatened modifiers
modifier = {
desc = "FACTION_REASON_CLAIMANT_DISGRUNTLED_VASSALS"
add = 25
liege = {
has_character_modifier = ep3_disgruntled_vassals_modifier
}
}
modifier = {
desc = "FACTION_REASON_CLAIMANT_DISGRUNTLED_VASSALS"
add = 25
liege = {
has_character_modifier = ep3_life_threatened_modifier
}
}
}
is_county_valid = {
scope:faction.faction_target = holder
}
can_county_join = {
# Counties can only join if the De Jure belong to the title being claimed.
exists = scope:faction.special_title
target_is_de_jure_liege_or_above = scope:faction.special_title
}
county_join_score = {
base = -80 # Needs to be less than the weight set in 00_populist_faction.txt, or counties will never join a claimant faction over a populist faction.
# Up to +3 join score per negative opinion (+80 at -27 opinion) if different culture.
compare_modifier = {
desc = "FACTION_REASON_CLAIMANT_COUNTY_SHARED_CULTURE"
trigger = {
scope:faction.faction_target.culture != this.title_province.culture
scope:faction.special_character.culture = this.title_province.culture
}
value = county_opinion
multiplier = -2.0
}
compare_modifier = {
desc = "FACTION_REASON_CLAIMANT_COUNTY_SHARED_HERITAGE"
trigger = {
NOT = { this.title_province.culture = { has_same_culture_heritage = scope:faction.faction_target.culture } }
this.title_province.culture = { has_same_culture_heritage = scope:faction.special_character.culture }
}
value = county_opinion
multiplier = -2.0
}
# If we have better relations with the claimant's faith than our current liege's, gain up to +5 join score per negative opinion (at Righteous) down to +1 join score per negative opinion (at Hostile).
compare_modifier = {
desc = "FACTION_REASON_LIKE_CLAIMANT_FAITH"
trigger = {
faith = {
faith_hostility_level_comparison = {
scope:faction.faction_target.faith > scope:faction.special_character.faith
}
}
}
value = county_opinion
multiplier = {
value = 0.0
if = {
limit = {
faith = {
faith_hostility_level = {
target = scope:faction.special_character.faith
value = faith_hostile_level
}
}
}
value = -1.0 # Hostile
}
else_if = {
limit = {
faith = {
faith_hostility_level = {
target = scope:faction.special_character.faith
value = faith_astray_level
}
}
}
value = -3.0 # Astray
}
else = {
value = -5.0 # Righteous
}
}
}
legalism_virtue_and_sin_modifier = {
TARGET = scope:faction.faction_target
SCORE_PER_TRAIT = 50 # Worth ~12 opinion per virtue.
}
# Greatly reduced chance for a character's capital county to form a faction against them (extra -25 opinion needed).
modifier = {
desc = "FACTION_REASON_CAPITAL_COUNTY"
add = -200
this.title_province = scope:faction.faction_target.capital_province
}
# More likely to support adult claimants when a child is on the throne.
modifier = {
desc = "FACTION_REASON_ADULT_CLAIMANT_CHILD_RULER"
add = 10
exists = scope:faction.faction_target
exists = scope:faction.special_character
scope:faction.faction_target = { is_adult = no }
scope:faction.special_character = { is_adult = yes }
}
# Peasants perfer magnanimous rulers over harsh or cruel ones.
compare_modifier = {
desc = "FACTION_REASON_CLAIMANT_KINDNESS"
factor = {
# Gets a value between 0 (max greedy/dishonorable/vengeful/cruel) and 800 (max honorable/compassionate/generous/forgiving).
value = 400
add = scope:faction.special_character.ai_honor
add = scope:faction.special_character.ai_compassion
subtract = scope:faction.special_character.ai_greed
subtract = scope:faction.special_character.ai_vengefulness
# Converts the personality score into a percentage between 0% (will never support) and 100% (really wants to support)
divide = 800
}
# How big the factor is for supporting this claimant over other factions at max support.
multiplier = 2
}
}
on_creation = {
save_scope_as = faction
tgp_bloc_members_join_faction_effect = yes
if = {
limit = {
any_player = {
has_government = landless_adventurer_government
is_within_diplo_range = { CHARACTER = scope:faction.faction_target }
OR = {
has_contact = scope:faction.faction_leader
has_contact = scope:faction.special_character
NOT = { has_contact = scope:faction.faction_target }
}
any_character_task_contract = {
task_contract_type = laamp_join_faction_contract
count <= 3
}
can_create_task_contract = {
type_name = laamp_join_faction_contract
employer = scope:faction.faction_leader
}
save_temporary_scope_as = player_laamp
}
}
scope:player_laamp = {
create_task_contract = {
task_contract_type = laamp_join_faction_contract
task_contract_tier = scope:faction.faction_leader.task_contract_tier_value
location = scope:faction.faction_leader.primary_title.title_province
task_contract_employer = scope:faction.faction_leader
target = scope:faction.faction_target
}
}
}
}
county_allow_join = yes
county_allow_create = no
county_power = county_levies_to_raise
character_allow_create = yes
character_allow_join = yes
multiple_targeting = yes
special_character_title = "FACTIONS_WINDOW_CLAIMANT"
ignore_soft_block = yes
}