Interaction · Diplomatic actions
Call to War
Call your Ally to aid you in your Wars
What you need
You
To send it
- The target: Is war leader in the war against you
If
- Is not allied to the target
suzerain = scope:recipientsubject_contract_has_flag = tributary_contract_suzerain_guarantee_override
Then
- The target: Has you as the war's defender
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
- Is at War
- If played by the AI:
scope:recipient.current_military_strength >= 100
If
- Is a direct vassal of the target
Then
subject_contract_has_flag = vassal_contract_liege_forced_war_override
If
- The character you target:
- Is a tributary of you
- Is not allied to you
Then
has_realm_law_flag = can_call_tributaries_for_piety- You have 50 Piety
- The character you target:
NOT = { is_character_interaction_valid = { recipient = scope:recipient interaction = call_house_member_to_war_interaction } }
The character you target
To see it in the menu
One of these
- Is allied to you
or
All of these
this ?= scope:actor.diarch- You › Any character war:
One of these
- The war’s casus belli is Peasant War
or
The war’s casus belli is Rebellionor
primary_attacker = { … }
or
You:is_vassal_of = prevsubject_contract_has_flag = vassal_contract_liege_forced_war_override
or
You:is_tributary_of = prevsubject_contract_has_flag = tributary_contract_suzerain_guarantee_override
or
All of these
- Is a tributary of you
- You:
- You have 50 Piety
has_realm_law_flag = can_call_tributaries_for_piety
Which character you can pick
- The target:
- Is war leader in the war against you
- Diarchs can only be called in internal defensive Wars
If
scope:target.casus_belli.primary_defender = scope:actor- The target’s casus belli’s primary attacker: Is a tributary of the target or of the target’s suzerains
Then
None of these
- The target’s casus belli’s primary attacker: Is a tributary of the target or of the target’s suzerains
Else if
scope:target.casus_belli.primary_attacker = scope:actor- The target’s casus belli’s primary defender: Is a tributary of the target or of the target’s suzerains
Then
None of these
- The target’s casus belli’s primary defender: Is a tributary of the target or of the target’s suzerains
If
scope:target.casus_belli.primary_defender = scope:actor- The character you target:
is_tributary_of_suzerain_or_above = scope:target.casus_belli.primary_attacker
Then
None of these
- The character you target:
is_tributary_of_suzerain_or_above = scope:target.casus_belli.primary_attacker
- The character you target:
Else if
scope:target.casus_belli.primary_attacker = scope:actor- The character you target:
is_tributary_of_suzerain_or_above = scope:target.casus_belli.primary_defender
Then
None of these
- The character you target:
is_tributary_of_suzerain_or_above = scope:target.casus_belli.primary_defender
- The character you target:
Call to War is a diplomatic character interaction in Crusader Kings III. The character you target needs: Is a ruler and You have to be of Emperor Rank or above to call a Hegemon into Wars. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Conqueror (-1,000), Conqueror (-1,000), Won't partake in meaningless conflict (-1,000) and 19 more. Patch 1.20.1.2, from game/common/character_interactions/00_alliance.txt.
Quick answers (2)
- What are the requirements for Call to War in CK3?
- The character you target: Is a ruler and You have to be of Emperor Rank or above to call a Hegemon into Wars. (patch 1.20.1.2)
- How do I get the AI to accept Call to War?
- Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Conqueror -1,000, Conqueror -1,000, Won't partake in meaningless conflict -1,000, Will not fight Heir -1,000, Will not fight Spouse -1,000, Will not fight Suzerain -1,000, … 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, Zeal against Infidels, Attack on Ally -50, War on another Ally -25, Attack on Religious Brethren -50, 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, War is against my Bloc member -100, Mandala Guarantee +200 and Opposing Struggle Side -100.
Will they accept?
Accepted automatically when:
One of these
- … is their Spouse
or
They is the Player Heir of …or
They is … Player Heir
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 | +20 |
Conquerorwhen
| -1,000 |
Conquerorwhen
| -1,000 |
Won't partake in meaningless conflictwhen
| -1,000 |
Will not fight Heirwhen
| -1,000 |
Will not fight Spousewhen
| -1,000 |
Will not fight Suzerainwhen
| -1,000 |
| … Opinion of … | varies |
| Their personality (AI values: honor 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 |
Zeal against Infidelswhen
| ai_zeal |
Attack on Allywhen
| -50 |
War on another Allywhen
| -25 |
Attack on Religious Brethrenwhen
| -50 |
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 |
| War is against my Bloc member | -100 |
Mandala Guaranteewhen
| +200 |
Opposing Struggle Sidewhen
| -100 |
Acceptance (ai_accept) (251 lines of game script)
base = 20
modifier = {
add = -1000
desc = NO_FRIVOLOUS_ACTIVITIES_REASON
scope:recipient = {
has_variable = conqueror
}
}
modifier = {
add = -1000
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
}
}
modifier = {
add = -1000
desc = WONT_FIGHT_MEANINGLESS_REASON
trigger_if = {
limit = {
exists = scope:target
}
scope:target = {
using_cb = fp2_border_raid
}
scope:recipient = {
NOR = {
has_trait = viking
has_trait = reaver
}
}
}
trigger_else = {
always = no
}
}
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
}
opinion_modifier = {
who = scope:recipient
opinion_target = scope:actor
multiplier = 1.0
desc = AI_OPINION_REASON
}
ai_value_modifier = {
ai_honor = 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
}
}
compare_modifier = {
trigger = {
scope:recipient.faith = scope:actor.faith
OR = {
AND = {
scope:target.casus_belli.primary_attacker = {
this = scope:actor
faith = {
faith_hostility_level = {
target = scope:target.casus_belli.primary_defender.faith
value >= religious_cb_enabled_hostility_level
}
}
}
}
AND = {
scope:target.casus_belli.primary_defender = {
this = scope:actor
faith = {
faith_hostility_level = {
target = scope:target.casus_belli.primary_defender.faith
value >= religious_cb_enabled_hostility_level
}
}
# … (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
One of these
- The war’s casus belli is Minor Holy
or
The war’s casus belli is Holyor
The war’s casus belli is Major Holyor
The war’s casus belli is Excommunicationor
The war’s casus belli is Great Holy Waror
The war’s casus belli is Great Holy War
- The character you target › Any active accolade:
accolade_parameter = acclaimed_knight_piety_from_battle
Then
- The character you target: Gain +50 Piety
If
One of these
- The war’s casus belli is Minor Holy
or
The war’s casus belli is Holyor
The war’s casus belli is Major Holyor
The war’s casus belli is Excommunicationor
The war’s casus belli is Great Holy Waror
The war’s casus belli is Great Holy War
- The character you target › Any active accolade:
accolade_parameter = acclaimed_knight_piety_from_battle_high
Then
- The character you target: Gain +100 Piety
When it is accepted automatically
- The character you target: Event call_ally.0001
- The target:
If
One of these
- The war’s casus belli is Minor Holy
or
The war’s casus belli is Holyor
The war’s casus belli is Major Holyor
The war’s casus belli is Excommunicationor
The war’s casus belli is Great Holy Waror
The war’s casus belli is Great Holy War
- The character you target › Any active accolade:
accolade_parameter = acclaimed_knight_piety_from_battle
Then
- The character you target: Gain +25 Piety
If
One of these
- The war’s casus belli is Minor Holy
or
The war’s casus belli is Holyor
The war’s casus belli is Major Holyor
The war’s casus belli is Excommunicationor
The war’s casus belli is Great Holy Waror
The war’s casus belli is Great Holy War
- The character you target › Any active accolade:
accolade_parameter = acclaimed_knight_piety_from_battle_high
Then
- The character you target: Gain +50 Piety
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) (63 lines of game script)
is_available = is_at_war = yes
is_shown = scope:actor = {
trigger_if = {
limit = {
is_ai = yes
}
scope:recipient.current_military_strength >= 100
}
trigger_if = {
limit = {
liege = scope:recipient
}
subject_contract_has_flag = vassal_contract_liege_forced_war_override
}
trigger_if = {
limit = {
scope:recipient = {
is_tributary_of = scope:actor
NOT = {
is_allied_to = scope:actor
}
}
}
has_realm_law_flag = can_call_tributaries_for_piety
piety >= 50
}
}
scope:recipient = {
OR = {
is_allied_to = scope:actor
AND = {
this ?= scope:actor.diarch
scope:actor = {
any_character_war = {
diarch_callable_in_internal_war_trigger = yes
}
}
}
scope:actor = {
is_vassal_of = prev
subject_contract_has_flag = vassal_contract_liege_forced_war_override
}
scope:actor = {
is_tributary_of = prev
subject_contract_has_flag = tributary_contract_suzerain_guarantee_override
}
AND = {
is_tributary_of = scope:actor
scope:actor = {
piety >= 50
has_realm_law_flag = can_call_tributaries_for_piety
}
}
}
}
scope:actor = {
NOT = {
is_character_interaction_valid = {
recipient = scope:recipient
interaction = call_house_member_to_war_interaction
}
}
}As written in game/common/character_interactions/00_alliance.txt.
Can be sent when (is_valid…) (52 lines of game script)
scope:recipient = {
is_ruler = yes
custom_tooltip = {
text = too_low_rank_to_call_hegemon
trigger_if = {
limit = {
highest_held_title_tier = tier_hegemony
}
scope:actor = {
highest_held_title_tier >= tier_empire
}
}
}
}
scope:actor = {
custom_description = {
text = must_be_war_leader
any_character_war = {
is_war_leader = scope:actor
}
}
custom_description = {
text = cannot_call_same_character_multiple_times
object = scope:recipient
any_character_war = {
ALL_FALSE = {
was_called = scope:recipient
is_participant = scope:recipient
}
}
}
trigger_if = {
limit = {
faith != scope:recipient.faith
}
custom_description = {
text = is_of_wrong_faith_for_holy_war
subject = scope:actor
object = scope:recipient
any_character_war = {
NOR = {
using_cb = undirected_great_holy_war
using_cb = directed_great_holy_war
}
}
}
}
}
can_potentially_call_ally_trigger = {
WARRIOR = scope:actor
JOINER = scope:recipient
}As written in game/common/character_interactions/00_alliance.txt.
Effects (on_send, on_accept, on_decline) (211 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 = {
is_religious_war = yes
scope:recipient = {
any_active_accolade = {
accolade_parameter = acclaimed_knight_piety_from_battle
}
}
}
scope:recipient = {
add_piety = minor_piety_gain
}
}
if = {
limit = {
is_religious_war = yes
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 = {
is_religious_war = yes
scope:recipient = {
any_active_accolade = {
accolade_parameter = acclaimed_knight_piety_from_battle
}
}
}
scope:recipient = {
add_piety = miniscule_piety_gain
}
}
if = {
limit = {
is_religious_war = yes
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
call_ally_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.