Interaction · Diplomatic actions
Protect Vassal
Join a War on the side of your Vassal to protect your land and titles
What you need
The character you target
One of these
All of these
- Is a tributary of you
subject_contract_has_flag = tributary_contract_suzerain_guarantee_override- You: Has the Conditional Join Law
or
All of these
- Is a vassal (or below) of you
- Any liege or above: Has the Conditional Join Law
- Is at War
- Is not at war with you
- Any character war:
primary_attacker = { … }
Which character you can pick
- The target:
- The War is between your own Vassals
- Has the target as the war's defender
Else if
- The character you target: Is a tributary of you or of your suzerains
Then
- … does not have Suzerain Guarantee Tributary Contract Privilege
Otherwise
always = yes
- The War is ongoing for less than 3 years
Protect Vassal is a diplomatic character interaction in Crusader Kings III. You need: Is at not War. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/00_alliance.txt.
Quick answers (2)
- What are the requirements for Protect Vassal in CK3?
- You: Is at not War. (patch 1.20.1.2)
- Will the AI accept Protect Vassal?
- 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:
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
- You: Stress and fulfillment impact: by trait: Craven +40
If
- The target:
- 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) (35 lines of game script)
is_available = trigger_if = {
limit = {
is_ai = yes
}
is_at_war = no
}
is_shown = scope:recipient = {
OR = {
AND = {
is_tributary_of = scope:actor
subject_contract_has_flag = tributary_contract_suzerain_guarantee_override
scope:actor = {
has_realm_law = top_liege_not_redirected_to_border_wars_law
}
}
AND = {
is_vassal_or_below_of = scope:actor
any_liege_or_above = {
has_realm_law = top_liege_not_redirected_to_border_wars_law
}
}
}
is_at_war = yes
NOR = {
this = scope:actor
is_at_war_with = scope:actor
}
any_character_war = {
primary_attacker = {
NOT = {
is_vassal_or_below_of = scope:actor
}
}
}
}As written in game/common/character_interactions/00_alliance.txt.
Can be sent when (is_valid…) (3 lines of game script)
scope:actor = {
is_at_war = no
}As written in game/common/character_interactions/00_alliance.txt.
Effects (on_send, on_accept, on_decline) (84 lines of game script)
on_accept = scope:target ?= {
hidden_effect = {
set_called_to = scope:actor
}
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
}
}
}
if = {
limit = {
exists = scope:target
scope:target = {
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
- main list
- ID
join_vassal_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.