Interaction · Diplomatic actions
Call Follower to War
Call rulers who supporting you as Head of Faith to aid you in your Wars
What you need
You
To send it
- Your dynasty:
dynasty_prestige >= medium_dynasty_prestige_value
- The target: Is war leader in the war against you
If
- The target: Has you as the war's attacker
Then
- The target:
primary_defender = { save_temporary_scope_as = primary_enemy }
Otherwise
- The target:
primary_attacker = { save_temporary_scope_as = primary_enemy }
To see it in the menu
root.religious_head_or_challenger ?= scope:puppet_or_actor- Any character war:
- Is war leader in the war against you
If
- Has you as the war's attacker
Then
- Your faith’s head of faith:
target_is_same_character_or_above = prev.primary_defender
Otherwise
primary_attacker = { … }
liege != scope:recipientNOT = { is_character_interaction_valid = { recipient = scope:recipient interaction = call_house_member_to_war_interaction } }NOT = { is_character_interaction_valid = { recipient = scope:recipient interaction = call_ally_interaction } }
Call Follower to War is a diplomatic character interaction in Crusader Kings III. The character you target needs: Their government is not unplayable. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Conqueror (-1,000), Will not fight Heir (-1,000), Will not fight Spouse (-1,000) and 16 more. Patch 1.20.1.2, from game/common/character_interactions/00_alliance.txt.
Quick answers (2)
- What are the requirements for Call Follower to War in CK3?
- The character you target: Their government is not unplayable. (patch 1.20.1.2)
- How do I get the AI to accept Call Follower to War?
- Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Conqueror -1,000, Will not fight Heir -1,000, Will not fight Spouse -1,000, Will not fight Suzerain -1,000, Conqueror -100, … Opinion of …, Defensive War +50, You speak the … Language +5, The recipient's Realm is Foreign and shares your Court Language (you do not personally know …) +10, The recipient's Realm is Foreign and shares your Court Language (and you personally know …) +30, Entrenched Regent Protects Realm +50, Attack on Ally -50, War on another Ally -25, Will not fight Friend -50, Will not fight Best Friend -100, Will not fight Lover -100, Will not fight Soulmate -200, Won't partake in meaningless conflict -200, Wardens with my Hostages on opposing side, Mandala Guarantee +200 and Opposing Struggle Side -100.
Will they accept?
Accepted automatically when:
- The character you target: Is a member of the Clergy
Otherwise the AI adds these up and accepts above zero. Reasons in italics are the script's, with no label in the game.
| Reason | Amount |
|---|---|
| Base | +50 |
Conquerorwhen
| -1,000 |
Will not fight Heirwhen
| -1,000 |
Will not fight Spousewhen
| -1,000 |
Will not fight Suzerainwhen
| -1,000 |
Conquerorwhen
| -100 |
| … Opinion of … | varies |
| Their personality (AI values: honor 0.5, zeal 1) | varies |
Defensive Warwhen
| +50 |
You speak the … Languagewhen
| +5 |
The recipient's Realm is Foreign and shares your Court Language (you do not personally know …)when
| +10 |
The recipient's Realm is Foreign and shares your Court Language (and you personally know …)when
| +30 |
Entrenched Regent Protects Realmwhen
| +50 |
Attack on Allywhen
| -50 |
War on another Allywhen
| -25 |
Will not fight Friendwhen
| -50 |
Will not fight Best Friendwhen
| -100 |
Will not fight Loverwhen
| -100 |
Will not fight Soulmatewhen
| -200 |
Won't partake in meaningless conflictwhen
| -200 |
Wardens with my Hostages on opposing sidewhen
| varies |
Mandala Guaranteewhen
| +200 |
Opposing Struggle Sidewhen
| -100 |
Acceptance (ai_accept) (245 lines of game script)
base = 50
modifier = {
add = -1000
desc = NO_FRIVOLOUS_ACTIVITIES_REASON
scope:recipient = {
has_variable = conqueror
}
}
modifier = {
add = -1000
exists = scope:recipient.player_heir
trigger_if = {
limit = {
scope:target.casus_belli.primary_defender = scope:actor
}
scope:target.casus_belli.primary_attacker = scope:recipient.player_heir
}
trigger_else = {
scope:target.casus_belli.primary_defender = scope:recipient.player_heir
}
desc = WONT_FIGHT_HEIR_REASON
}
modifier = {
add = -1000
scope:recipient = {
trigger_if = {
limit = {
scope:target.casus_belli.primary_defender = scope:actor
}
any_spouse = {
this = scope:target.casus_belli.primary_attacker
}
}
trigger_else = {
any_spouse = {
this = scope:target.casus_belli.primary_defender
}
}
}
desc = WONT_FIGHT_SPOUSE_REASON
}
modifier = {
add = -1000
trigger_if = {
limit = {
exists = scope:recipient.suzerain
trigger_if = {
limit = {
scope:target.casus_belli.primary_defender = scope:actor
}
scope:recipient.suzerain = scope:target.casus_belli.primary_attacker
}
trigger_else = {
scope:recipient.suzerain = scope:target.casus_belli.primary_defender
}
scope:recipient = {
exists = obedience_target
is_obedient = yes
}
}
}
trigger_else = {
always = no
}
desc = WONT_FIGHT_OBEDIENT_REASON
}
modifier = {
add = -100
desc = NO_FRIVOLOUS_ACTIVITIES_REASON
scope:actor = {
is_ai = yes
primary_title.tier < scope:recipient.primary_title.tier
}
scope:target.casus_belli = {
primary_attacker = {
is_ai = yes
}
primary_defender = {
is_ai = yes
}
}
scope:recipient = {
ai_should_focus_on_building_in_their_capital = yes
}
}
opinion_modifier = {
who = scope:recipient
opinion_target = scope:actor
multiplier = 1.0
desc = AI_OPINION_REASON
}
ai_value_modifier = {
ai_honor = 0.5
ai_zeal = 1
min = 0
}
modifier = {
add = 50
scope:target.casus_belli.primary_defender = scope:actor
desc = DEFENSIVE_WAR_REASON
}
modifier = {
add = 5
desc = speaks_same_language_interaction_reason
trigger = {
scope:actor = {
knows_language_of_culture = scope:recipient.culture
}
}
}
modifier = {
add = 10
desc = foreign_realm_court_language_non_spoken_interaction_reason
trigger = {
scope:actor = {
has_royal_court = yes
has_dlc_feature = royal_court
NOT = {
knows_court_language_of = this
}
}
scope:actor.top_liege != scope:recipient.top_liege
OR = {
AND = {
scope:recipient = {
has_royal_court = yes
}
scope:actor = {
has_same_court_language = scope:recipient
}
}
scope:recipient = {
liege != this
has_royal_court = no
any_liege_or_above = {
has_royal_court = yes
has_same_court_language = scope:actor
save_temporary_scope_as = liege_temp
NOT = {
prev = {
any_liege_or_above = {
has_royal_court = yes
is_vassal_or_below_of = scope:liege_temp
}
}
}
}
}
}
}
}
modifier = {
add = 30
desc = foreign_realm_court_language_spoken_interaction_reason
trigger = {
scope:actor = {
has_royal_court = yes
has_dlc_feature = royal_court
knows_court_language_of = this
}
scope:actor.top_liege != scope:recipient.top_liege
OR = {
AND = {
scope:recipient = {
has_royal_court = yes
}
scope:actor = {
has_same_court_language = scope:recipient
}
}
scope:recipient = {
liege != this
has_royal_court = no
any_liege_or_above = {
has_royal_court = yes
has_same_court_language = scope:actor
save_temporary_scope_as = liege_temp
NOT = {
prev = {
any_liege_or_above = {
has_royal_court = yes
is_vassal_or_below_of = scope:liege_temp
}
}
}
}
}
}
}
}
modifier = {
add = 50
desc = ENTRENCHED_REGENT_WILL_SUPPORT_LIEGE
trigger_if = {
limit = {
scope:recipient ?= scope:actor.diarch
}
scope:actor = {
has_diarchy_parameter = diarchy_type_is_entrenched_regency
}
}
trigger_else = {
always = no
}
}
modifier = {
add = -50
scope:target.casus_belli.primary_attacker = scope:actor
scope:recipient = {
is_allied_to = scope:target.casus_belli.primary_defender
}
desc = ATTACK_ON_ALLY_REASON
}
modifier = {
add = -25
scope:target.casus_belli.primary_defender = scope:actor
scope:recipient = {
is_allied_to = scope:target.casus_belli.primary_attacker
}
desc = WAR_WITH_ALLY_REASON
}
modifier = {
add = -50
trigger_if = {
limit = {
scope:target.casus_belli.primary_defender = scope:actor
}
has_relation_friend = scope:target.casus_belli.primary_attacker
}
trigger_else = {
has_relation_friend = scope:target.casus_belli.primary_defender
}
desc = WONT_FIGHT_FRIEND_REASON
}
modifier = {
add = -100
trigger_if = {
limit = {
scope:target.casus_belli.primary_defender = scope:actor
}
has_relation_best_friend = scope:target.casus_belli.primary_attacker
}
trigger_else = {
has_relatio
# … (cut here; the rest is in the file)As written in game/common/character_interactions/00_alliance.txt.
What happens
If they accept
If
- The character you target:
NOT = { is_at_war_with = scope:target.primary_defender }NOT = { is_at_war_with = scope:target.primary_attacker }
Then
If
One of these
- You › Any home court hostage:
warden ?= { is_attacker_in_war = scope:target }
or
The target › Any war attacker › Any warden hostage:home_court ?= scope:actor
- You › Any home court hostage:
Then
- Wardens at War with Home Courts may freely execute Hostages
- The target:
If
is_attacker = scope:actor
Then
add_attacker = scope:recipient- You:
If
- Government uses the Mandala Capital Temple Complex Great Project and Great Building
- The character you target: Is a tributary of you
Then
If
scope:recipient.primary_title.tier = tier_barony
Then
add_piety = { add = minor_piety_loss multiply = 2 }
Else if
scope:recipient.primary_title.tier = tier_county
Then
add_piety = { add = medium_piety_loss multiply = 2 }
Else if
scope:recipient.primary_title.tier = tier_duchy
Then
add_piety = { add = major_piety_loss multiply = 2 }
Else if
scope:recipient.primary_title.tier = tier_kingdom
Then
add_piety = { add = massive_piety_loss multiply = 1.5 }
Else if
scope:recipient.primary_title.tier = tier_empire
Then
add_piety = { add = monumental_piety_loss multiply = 1.5 }
Else if
scope:recipient.primary_title.tier = tier_hegemony
Then
add_piety = { add = monumental_piety_loss multiply = 2.5 }
Otherwise
If
- Does not have the target as blood brother
Then
If
- You:
- Their faith is the same as that of recipient
- The Personal Tenets unlock tenet peace of god cheaper ally call
- Their faith:
faith_hostility_level = { target = scope:target.primary_defender.faith value >= faith_hostile_level }
Then
pam_peace_of_god_personal_tenet_cheaper_alliance_call_effect = { }
Otherwise
add_prestige = { value = 0 subtract = scope:recipient.tier_scaled_prestige_value }
- You:
Otherwise
add_defender = scope:recipient
- The character you target:
- Event call_ally.0100
- The target:
If
- The character you target › Any active accolade:
accolade_parameter = acclaimed_knight_piety_from_battle
Then
- The character you target: Gain +50 Piety
- The character you target › Any active accolade:
If
- The character you target › Any active accolade:
accolade_parameter = acclaimed_knight_piety_from_battle_high
Then
- The character you target: Gain +100 Piety
- The character you target › Any active accolade:
When it is accepted automatically
- The character you target: Event call_ally.0001
- The target:
If
- The character you target › Any active accolade:
accolade_parameter = acclaimed_knight_piety_from_battle
Then
- The character you target: Gain +25 Piety
- The character you target › Any active accolade:
If
- The character you target › Any active accolade:
accolade_parameter = acclaimed_knight_piety_from_battle_high
Then
- The character you target: Gain +50 Piety
- The character you target › Any active accolade:
If they refuse
If
a check the game hides
Then
- The target:
If
is_attacker = scope:actor
Then
- You: Opinion: Rejected Call to an Offensive War
- The character you target › If their government does not have the government is mandala flag: Gain -350 Fame Prestige
Otherwise
- You: Opinion: Rejected Call to a Defensive War
- The character you target:
- If government uses the Mandala Capital Temple Complex Great Project and Great Building:
- Gain -350 Fame Prestige
- Level of Devotion -1
- Otherwise: Gain -750 Fame Prestige
- If government uses the Mandala Capital Temple Complex Great Project and Great Building:
If
- You: Has the target as blood brother
Then
- The character you target:
- Gain -500 Devotion Piety
- Gains the modifier “Abandoned Blood Brotherhood” for 25 years
- General Opinion -15
remove_relation_blood_brother = scope:actor
- You: Gains a Rival
If
scope:recipient = scope:actor.suzerainis_defender = scope:actor- You:
subject_contract_has_flag = tributary_contract_suzerain_guarantee_override
Then
- You:
end_tributary = yes
- You: Event call_ally.0101
If
Then
- Your house:
add_unity_value = { … }
- Your house:
- The character you target:
If
If
a check the game hides
Then
- Their house: Has the house check as house head
Then
- Their house:
If
a check the game hides
Then
impact_house_relation = { target = scope:other_house steps = scope:steps description = house_relation_reason_ally_call_ignored_desc }
- The target:
Events it fires: call_ally.0100, call_ally.0101, call_ally.0001
• the game's own tooltip text · ◦ our reading of the script line · code the script where neither exists
Who can use it and sees it (is_available, is_shown) (41 lines of game script)
is_shown = scope:puppet_or_actor.religious_head_or_challenger ?= scope:puppet_or_actor
scope:recipient = {
religious_head_or_challenger ?= scope:puppet_or_actor
this != scope:puppet_or_actor
highest_held_title_tier >= tier_county
}
scope:puppet_or_actor ?= {
any_character_war = {
is_war_leader = scope:puppet_or_actor
trigger_if = {
limit = {
primary_attacker = scope:puppet_or_actor
}
scope:puppet_or_actor.faith.religious_head = {
target_is_same_character_or_above = prev.primary_defender
}
}
trigger_else = {
primary_attacker = {
OR = {
pam_is_antipope_trigger = yes
pam_is_antipope_sponsor_trigger = yes
}
faith.religious_head = scope:puppet_or_actor
}
}
}
liege != scope:recipient
}
scope:puppet_or_actor = {
NOR = {
is_character_interaction_valid = {
recipient = scope:recipient
interaction = call_house_member_to_war_interaction
}
is_character_interaction_valid = {
recipient = scope:recipient
interaction = call_ally_interaction
}
}
}As written in game/common/character_interactions/00_alliance.txt.
Can be sent when (is_valid…) (26 lines of game script)
scope:puppet_or_actor.dynasty = {
dynasty_prestige >= medium_dynasty_prestige_value
}
scope:recipient = {
NOT = {
government_has_flag = government_is_mercenary
}
NOT = {
government_has_flag = government_is_holy_order
}
}
custom_description = {
text = is_already_in_all_wars
scope:puppet_or_actor = {
any_character_war = {
NOR = {
is_participant = scope:recipient
was_called = scope:recipient
}
OR = {
primary_attacker = scope:puppet_or_actor
primary_defender = scope:puppet_or_actor
}
}
}
}As written in game/common/character_interactions/00_alliance.txt.
Effects (on_send, on_accept, on_decline) (207 lines of game script)
on_accept = call_ally_interaction_effect = yes
save_scope_value_as = {
name = call_ally_interaction
value = yes
}
scope:actor = {
hidden_effect = {
if = {
limit = {
NOR = {
has_relation_friend = scope:recipient
has_relation_potential_friend = scope:recipient
}
}
set_relation_potential_friend = scope:recipient
}
}
trigger_event = call_ally.0100
}
scope:target = {
if = {
limit = {
scope:recipient = {
any_active_accolade = {
accolade_parameter = acclaimed_knight_piety_from_battle
}
}
}
scope:recipient = {
add_piety = minor_piety_gain
}
}
if = {
limit = {
scope:recipient = {
any_active_accolade = {
accolade_parameter = acclaimed_knight_piety_from_battle_high
}
}
}
scope:recipient = {
add_piety = medium_piety_gain
}
}
}
on_decline = if = {
limit = {
exists = scope:target
}
scope:target = {
if = {
limit = {
is_attacker = scope:actor
}
scope:actor = {
add_opinion = {
modifier = rejected_call_to_offensive_war
target = scope:recipient
}
}
scope:recipient = {
if = {
limit = {
NOT = {
government_has_flag = government_is_mandala
}
}
add_prestige_experience = major_prestige_loss
}
}
}
else = {
scope:actor = {
add_opinion = {
modifier = rejected_call_to_defensive_war
target = scope:recipient
}
}
scope:recipient = {
if = {
limit = {
government_has_flag = government_is_mandala
}
add_prestige_experience = major_prestige_loss
add_piety_level = -1
}
else = {
add_prestige_experience = massive_prestige_loss
}
}
}
if = {
limit = {
scope:actor = {
has_relation_blood_brother = scope:recipient
}
}
scope:recipient = {
add_piety_experience = massive_piety_loss
add_character_modifier = {
modifier = broke_blood_brotherhood_modifier
desc = broke_blood_brotherhood_modifier_acceptance_tt
years = 25
}
remove_relation_blood_brother = scope:actor
}
scope:actor = {
set_relation_rival = {
target = scope:recipient
reason = rival_blood_brother_refused_call_reason
}
}
}
if = {
limit = {
scope:recipient = scope:actor.obedience_target
scope:actor = {
OR = {
subject_contract_has_flag = vassal_contract_liege_forced_war_override
subject_contract_has_flag = tributary_contract_suzerain_guarantee_override
}
}
}
scope:actor = {
set_variable = {
name = not_obedient_declined_call
value = scope:recipient
years = 5
}
}
}
if = {
limit = {
scope:recipient = scope:actor.suzerain
is_defender = scope:actor
scope:actor = {
subject_contract_has_flag = tributary_contract_suzerain_guarantee_override
}
}
scope:actor = {
end_tributary = yes
}
}
hidden_effect = {
if = {
limit = {
NOT = {
was_called = scope:recipient
}
}
set_called_to = scope:recipient
}
}
}
scope:actor = {
trigger_event = call_ally.0101
}
refuse_call_to_arms_add_clan_unity_effect = yes
scope:recipient = {
if = {
limit = {
exists = house
is_house_head = yes
exists = scope:actor.house
}
house = {
change_house_relation_effect = {
HOUSE = scope:actor.house
VALUE = house_relation_damage_medium_value
REASON = ally_call_ignored
CHAR = scope:recipient
TARGET_CHAR = scope:actor
TITLE = scope:dummy_gender
}
}
}
}
}
on_auto_accept = scope:recipient = {
trigger_event = call_ally.0001
}
scope:target = {
if = {
limit = {
scope:recipient = {
any_active_accolade = {
accolade_parameter = acclaimed_knight_piety_from_battle
}
}
}
scope:recipient = {
add_piety = miniscule_piety_gain
}
}
if = {
limit = {
scope:recipient = {
any_active_accolade = {
accolade_parameter = acclaimed_knight_piety_from_battle_high
}
}
}
scope:recipient = {
add_piety = minor_piety_gain
}
}
}As written in game/common/character_interactions/00_alliance.txt.
- Category
- Diplomatic actions
- In the menu
- under More…
- ID
religious_head_call_to_war_interaction
Source: game/common/character_interactions/00_alliance.txt and the English localisation, Crusader Kings III 1.20.1.2. “You” is the character who sends it (scope:actor, or a puppet acting for you); “the character you target” is the recipient.