Interaction · Diplomatic actions
Offer to Join War
Offer to come to the aid of an Ally, your Overlord or Tributary, a defender of your Faith in a Holy War, or help a Vassal put down a Peasant Revolt
What you need
You
- Else, if all of these hold:
- Conditions › You: Is not a vassal (or below) of the target
- Then:
If
- You: You have a Adventurer Government
Then
- The character you target › If any character war: You decided to leave this War
Else if
- You:
is_member_of_confederation = scope:recipient.confederation
Then
- You:
is_member_of_confederation = scope:recipient.confederation
Else if
- The character you target: Is a tributary of you or of your suzerains
Then
- … Tributary … has no defensive wars
- If you have a Adventurer Government: You must have a Men-at-Arms Regiment
- Exiled
The character you target
- Is at War
- Is not at war with you
Which character you can pick
- The target:
- Is war leader in the war against the target
If
One of these
- You: Is a tributary of the target or of the target’s suzerains
or
The character you target: Is a tributary of you
Then
If
- The character you target: Is a tributary of you
Then
- … is not the primary defender in this war
Otherwise
always = yes
Else 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
Then
casus_belli = { … }
Else if
None of these
- The war’s casus belli is Minor Holy
- The war’s casus belli is Holy
- The war’s casus belli is Major Holy
- The war’s casus belli is Excommunication
- The war’s casus belli is Great Holy War
- The war’s casus belli is Great Holy War
- You: Is the liege (or above) of the target
- Has the target as the war's defender
primary_attacker = { is_leading_faction_type = peasant_faction }Not all of these
- Has “struggle conciliation ending” (a variable the game's script sets)
- Your capital province: Is in the Iberia region
- The target’s capital province: Is in the Iberia region
One of these
- Any in global list:
this = scope:actor.faith
or
Any in global list:this = scope:actor.culture
- Any in global list:
One of these
- Any in global list:
this = scope:recipient.faith
or
Any in global list:this = scope:recipient.culture
- Any in global list:
None of these
All of these
- Has “struggle conciliation ending” (a variable the game's script sets)
One of these
None of these
- Any in global list:
this = scope:target.primary_attacker.faith
- Any in global list:
this = scope:target.primary_attacker.culture
- Any in global list:
or
None of these
- The target’s primary attacker’s capital province: Is in the Iberia region
Then
always = yes
Else if
- You: Is not allied to the target
- Has the target as the war's attacker
Then
- You:
is_member_of_confederation = scope:recipient.confederation
Otherwise
always = yes
If
- The target: Has the target 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 }
Offer to Join War is a diplomatic character interaction in Crusader Kings III. You need: Exiled. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/00_alliance.txt.
Quick answers (2)
- What are the requirements for Offer to Join War in CK3?
- You: Exiled. (patch 1.20.1.2)
- Will the AI accept Offer to Join War?
- Yes: it is accepted automatically.
Will they accept?
The other character has no choice: the game accepts it automatically.
Acceptance (ai_accept) (1 line of game script)
base = 100
As written in game/common/character_interactions/00_alliance.txt.
What happens
Effects
- The target:
If
is_attacker = scope:recipient
Then
add_attacker = scope:actorIf
One of these
- You › Any home court hostage:
warden ?= { is_defender_in_war = scope:target }
or
The target › Any war defender › Any warden hostage:home_court ?= scope:actor
- You › Any home court hostage:
Then
- Wardens at War with Home Courts may freely execute Hostages
Otherwise
add_defender = scope:actorIf
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
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
- You › Any active accolade:
accolade_parameter = acclaimed_knight_piety_from_battle
Then
- You: Gain +100 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
- You › Any active accolade:
accolade_parameter = acclaimed_knight_piety_from_battle_high
Then
- You: Gain +250 Piety
- Stress and fulfillment impact: by trait: Craven +40
- The character you target › If played by the AI:
If
- Has the target char as potential friend
- Does not have the target char as friend
- Does not have the target char as best friend
- Does not have the target char as rival
- Does not have the target char as nemesis
Then
If
has_activity_intent = befriend_attendee_intentintent_target ?= scope:target_charintent_target.involved_activity ?= this.involved_activity
Then
complete_activity_intent = yes
Otherwise
If
- Does not have the target char as potential friend
can_set_relation_friend_trigger = { CHARACTER = scope:target_char }If
- Is played by the AI
- The target char: Is played by the AI
Then
- The target char: Opinion of prev at least -25
Otherwise
always = yes
Then
set_relation_potential_friend = scope:target_char
If
scope:friend_opinion != 0
Then
If
- The target char: Is played by the AI
Then
- The target char gains the opinion “Friendly” of them
- Opinion: Friendly
If
- The target:
One of these
All of these
- Has the target as the war's attacker
- The target’s house is your
primary_defender = { house != scope:actor.house }
or
All of these
- Has the target as the war's defender
- The target’s house is your
primary_attacker = { house != scope:actor.house }
Then
- The target:
If they refuse
- Event char_interaction.0236
Events it fires: char_interaction.0236
• 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) (7 lines of game script)
is_shown = scope:recipient = {
is_at_war = yes
NOR = {
this = scope:actor
is_at_war_with = scope:actor
}
}As written in game/common/character_interactions/00_alliance.txt.
Can be sent when (is_valid…) (213 lines of game script)
trigger_if = {
limit = {
exists = scope:actor.liege
}
custom_description = {
text = join_war_interaction_recipient_warring_with_my_liege
subject = scope:recipient
scope:actor = {
NOT = {
any_liege_or_above = {
is_at_war_with = scope:recipient
}
}
}
}
}
trigger_if = {
limit = {
scope:actor = {
target_is_vassal_or_below = scope:recipient
}
}
custom_description = {
text = join_war_interaction_recipient_not_fighting_peasant_faction
subject = scope:recipient
scope:recipient = {
any_war_enemy = {
is_leading_faction_type = peasant_faction
}
}
}
}
trigger_else_if = {
limit = {
scope:actor.faith = scope:recipient.faith
scope:recipient = {
any_character_war = {
OR = {
using_cb = pam_challenge_hof_cb
AND = {
using_cb = pam_antiking_cb
scope:actor.religious_head_or_challenger ?= scope:recipient
}
}
}
}
}
}
trigger_else_if = {
limit = {
scope:actor = {
NOT = {
target_is_liege_or_above = scope:recipient
}
}
}
trigger_if = {
limit = {
scope:actor = {
has_government = landless_adventurer_government
}
}
scope:recipient = {
trigger_if = {
limit = {
any_character_war = {
has_variable_list = left_voluntarily
}
}
custom_tooltip = {
text = laamp_war_change_sides_interaction.left_voluntarily
is_target_in_variable_list = {
name = left_voluntarily
target = scope:actor
}
}
}
}
}
trigger_else_if = {
limit = {
scope:recipient = {
any_character_war = {
OR = {
scope:recipient.faith = scope:actor.faith
AND = {
scope:recipient.faith.religion = scope:actor.faith.religion
scope:actor.faith = {
faith_hostility_level = {
target = scope:recipient.faith
value < religious_cb_enabled_hostility_level
}
}
}
AND = {
scope:recipient = {
target_is_liege_or_above = scope:actor
}
casus_belli = {
any_target_title = {
holder = {
OR = {
this = scope:actor
is_vassal_or_below_of = scope:actor
}
}
}
}
}
}
any_war_defender = {
this = scope:recipient
}
}
}
}
}
trigger_else_if = {
limit = {
fp2_struggle_conciliation_recipient_actor_involved_trigger = yes
scope:recipient = {
any_character_war = {
primary_defender = scope:recipient
primary_attacker = {
save_temporary_scope_as = attacker_temp
}
fp2_struggle_conciliation_scope_uninvolved_trigger = {
SCOPE = scope:attacker_temp
}
}
}
}
}
trigger_else_if = {
limit = {
exists = scope:recipient.confederation
scope:actor = {
is_member_of_confederation = scope:recipient.confederation
}
}
scope:actor = {
is_member_of_confederation = scope:recipient.confederation
}
}
trigger_else_if = {
limit = {
scope:recipient = {
is_tributary_of_suzerain_or_above = scope:actor
}
}
custom_tooltip = {
text = join_war_interaction_recipient_tributary_no_defensive_war
scope:recipient = {
any_character_war = {
primary_defender = scope:recipient
}
}
}
}
trigger_else_if = {
limit = {
scope:actor = {
is_tributary_of = scope:recipient
}
}
custom_tooltip = {
text = join_war_interaction_recipient_tributary_no_defensive_war
scope:recipient = {
any_character_war = {
primary_defender = scope:recipient
}
}
}
}
trigger_else = {
custom_description = {
text = join_war_interaction_recipient_not_ally
subject = scope:recipient
scope:recipient = {
is_allied_to = scope:actor
}
}
}
}
trigger_else = {
custom_description = {
text = join_war_interaction_recipient_not_liege
subject = scope:recipient
scope:actor = {
target_is_liege_or_above = scope:recipient
}
}
}
scope:actor = {
trigger_if = {
limit = {
has_government = landless_adventurer_government
}
custom_tooltip = {
text = reinforce_soldiers_any_regiment_tt
maa_regiments_count >= 1
}
}
}
custom_tooltip = {
text = the_wake_1
NOT = {
is_laamp_exiled_from_province_trigger = {
PROVINCE = scope:recipient.capital_province
LAAMP = scope:actor
}
}
}As written in game/common/character_interactions/00_alliance.txt.
Effects (on_send, on_accept, on_decline) (151 lines of game script)
on_accept = scope:target ?= {
hidden_effect = {
set_called_to = scope:actor
}
if = {
limit = {
is_attacker = scope:recipient
}
add_attacker = scope:actor
if = {
limit = {
OR = {
scope:actor = {
any_home_court_hostage = {
warden ?= {
is_defender_in_war = scope:target
}
}
}
scope:target = {
any_war_defender = {
any_warden_hostage = {
home_court ?= scope:actor
}
}
}
}
}
custom_tooltip = hostage_execution_warning_tt
}
}
else = {
add_defender = scope:actor
if = {
limit = {
OR = {
scope:actor = {
any_home_court_hostage = {
warden ?= {
is_attacker_in_war = scope:target
}
}
}
scope:target = {
any_war_attacker = {
any_warden_hostage = {
home_court ?= scope:actor
}
}
}
}
}
custom_tooltip = hostage_execution_warning_tt
}
}
if = {
limit = {
is_religious_war = yes
scope:actor = {
any_active_accolade = {
accolade_parameter = acclaimed_knight_piety_from_battle
}
}
}
scope:actor = {
add_piety = medium_piety_gain
}
}
if = {
limit = {
is_religious_war = yes
scope:actor = {
any_active_accolade = {
accolade_parameter = acclaimed_knight_piety_from_battle_high
}
}
}
scope:actor = {
add_piety = major_piety_gain
}
}
}
scope:actor = {
stress_and_fulfillment_impact = {
craven = medium_stress_impact_gain
}
add_to_variable_list = {
name = joined_as_ally
target = scope:target
}
}
scope:recipient = {
show_as_tooltip = {
if = {
limit = {
is_ai = yes
}
progress_towards_friend_effect = {
CHARACTER = scope:actor
OPINION = 0
REASON = friend_alliance
}
}
else = {
hidden_effect = {
if = {
limit = {
NOR = {
has_relation_friend = scope:actor
has_relation_potential_friend = scope:actor
}
}
set_relation_potential_friend = scope:actor
}
}
}
}
}
if = {
limit = {
exists = scope:target
scope:target = {
OR = {
AND = {
primary_attacker = scope:recipient
scope:recipient.house = scope:actor.house
primary_defender = {
house != scope:actor.house
}
}
AND = {
primary_defender = scope:recipient
scope:recipient.house = scope:actor.house
primary_attacker = {
house != scope:actor.house
}
}
}
}
}
add_clan_unity_interaction_effect = {
CHARACTER = scope:actor
TARGET = scope:recipient
VALUE = medium_unity_gain
DESC = clan_unity_join_war.desc
REVERSE_NON_HOUSE_TARGET = no
}
}
on_decline = scope:actor = {
trigger_event = char_interaction.0236
}As written in game/common/character_interactions/00_alliance.txt.
- Category
- Diplomatic actions
- In the menu
- under More…
- ID
join_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.