Interaction · Diplomatic actions
Recall Hostage
Ask the recipient's to return one of your Hostages
What you need
You
To send it
None of these
- The character you target: Is at war with you
- You: Your Government is a Theocratic-type Government
- The character you target: Government is a Theocratic-type Government
None of these
- You: Is at war with the target
To see it in the menu
- Is played by a person
- The target is not you
One of these
- You › Any home court hostage:
warden ?= scope:recipient
or
scope:recipient.home_court ?= scope:actor
- You › Any home court hostage:
Recall Hostage is a diplomatic character interaction in Crusader Kings III. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include … Equitable Tradition (+25), … Esteemed Hospitality Tradition (+25), … Loyal Subjects Tradition (+25) and 32 more. Patch 1.20.1.2, from game/common/character_interactions/05_bp2_interactions.txt.
Quick answers (1)
- How do I get the AI to accept Recall Hostage?
- Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: The recipient's Boldness, The recipient's Compassion, The recipient's Greed, The recipient's Honor, The recipient's Rationality, The recipient's Zeal, … Equitable Tradition +25, … Esteemed Hospitality Tradition +25, … Loyal Subjects Tradition +25, … Opinion of …, … Opinion of …, They is your Friend +15, They is your Best Friend +30, They is your Lover +15, They is your Soulmate +30, They is your Rival -25, They is your Nemesis -50, Intimidated by you, Terrified of you, The other character's value as a Hostage, Hostage is an adult +25, Held Hostage for less than a year -25, Years spent as a Hostage, Difference in Rank, Difference in Rank, Not neighboring Realms +20, Distant realm +20, Has Casus Bellis against you -15, Has Claims on your Titles, Protected by their Liege +50, You are a mere Vassal, Similar Military Strength +10, Relative Military Strength (…: … vs. …: …), Relative Military Strength (…: … vs. …: …), Allies Military Strength (…: … vs. …: …), Twice as strong and valid Casus Belli against the recipient -25, … Cultural Acceptance of … -5, … Cultural Acceptance of … -10, … Cultural Acceptance of … -15, … consider … Evil -15, … consider … Hostile -10, … consider … Astray -5, … Equitable Tradition +25, … Esteemed Hospitality Tradition +25, … Loyal Subjects Tradition +25, Allowed a Hostage to die -25, Allowed my Hostage to die -100, Killed my Hostage -200, You already made a Truce with the recipient +20, Fighting a War -25, Attacked Home Court -50, Weak Hook used +40, Has my Hostage -50 and Crusader War for Imperial Claim -5,000.
Will they accept?
Accepted automatically when:
Otherwise
- Never
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 | 0 |
The recipient's Boldnesswhen
| their ai boldness × -0.25 |
The recipient's Compassionwhen
| their ai compassion × 0.25 |
The recipient's Greedwhen
| varies |
The recipient's Honorwhen
| their ai honor × 0.25 |
The recipient's Rationalitywhen
| their ai rationality × 0.25 |
The recipient's Zealwhen
| varies |
… Equitable Traditionwhen
| +25 |
… Esteemed Hospitality Traditionwhen
| +25 |
… Loyal Subjects Traditionwhen
| +25 |
| … Opinion of … | varies |
| … Opinion of … | varies |
They is your Friendwhen
| +15 |
They is your Best Friendwhen
| +30 |
They is your Loverwhen
| +15 |
They is your Soulmatewhen
| +30 |
They is your Rivalwhen
| -25 |
They is your Nemesiswhen
| -50 |
Intimidated by youwhen
| intimidated_halved_reason_value |
Terrified of youwhen
| cowed_halved_reason_value |
| The other character's value as a Hostage | interaction_recipient_hostage_value |
Hostage is an adultwhen
| +25 |
Held Hostage for less than a yearwhen
| -25 |
Years spent as a Hostagewhen
| varies |
Difference in Rankwhen
| varies |
Difference in Rankwhen
| varies |
Not neighboring Realmswhen
| +20 |
Distant realmwhen
| +20 |
Has Casus Bellis against youwhen
| -15 |
Has Claims on your Titleswhen
| varies |
Protected by their Liegewhen
| +50 |
You are a mere Vassalwhen
| varies |
Similar Military Strengthwhen
| +10 |
Relative Military Strength (…: … vs. …: …)when
| varies |
Relative Military Strength (…: … vs. …: …)when
| varies |
Allies Military Strength (…: … vs. …: …)when
| varies |
Twice as strong and valid Casus Belli against the recipientwhen
| -25 |
… Cultural Acceptance of …when
| -5 |
… Cultural Acceptance of …when
| -10 |
… Cultural Acceptance of …when
| -15 |
… consider … Evilwhen
| -15 |
… consider … Hostilewhen
| -10 |
… consider … Astraywhen
| -5 |
… Equitable Traditionwhen
| +25 |
… Esteemed Hospitality Traditionwhen
| +25 |
… Loyal Subjects Traditionwhen
| +25 |
Allowed a Hostage to diewhen
| -25 |
Allowed my Hostage to diewhen
| -100 |
Killed my Hostagewhen
| -200 |
You already made a Truce with the recipientwhen
| +20 |
Fighting a Warwhen
| -25 |
Attacked Home Courtwhen
| -50 |
Weak Hook usedwhen
| +40 |
Has my Hostagewhen
| -50 |
| Crusader War for Imperial Claim | -5,000 |
Acceptance (ai_accept) (292 lines of game script)
base = 0
bp2_hostage_return_personality_modifier = {
HOME_COURT = scope:actor
WARDEN = scope:recipient
}
opinion_modifier = {
who = scope:recipient
opinion_target = scope:actor
multiplier = 0.5
desc = AI_OPINION_REASON
}
opinion_modifier = {
who = scope:recipient
opinion_target = scope:secondary_recipient
multiplier = -0.1
desc = AI_OPINION_REASON
}
bp2_hostage_relation_modifier = yes
modifier = {
add = intimidated_halved_reason_value
scope:recipient = {
has_dread_level_towards = {
target = scope:actor
level = 1
}
}
desc = INTIMIDATED_REASON
}
modifier = {
add = cowed_halved_reason_value
scope:recipient = {
has_dread_level_towards = {
target = scope:actor
level = 2
}
}
desc = COWED_REASON
}
modifier = {
exists = scope:secondary_recipient
add = interaction_recipient_hostage_value
desc = HOSTAGE_VALUE_RECIPIENT_REASON
}
modifier = {
add = 25
scope:secondary_recipient = {
is_adult = yes
}
desc = HOSTAGE_ADULT_REASON
}
modifier = {
add = -25
scope:secondary_recipient = {
hostage_duration = {
years < 1
}
}
desc = HOSTAGE_MINIMUM_STAY_REASON
}
modifier = {
add = {
value = 10
scope:secondary_recipient = {
if = {
limit = {
hostage_duration = {
years >= 3
}
}
add = 10
}
if = {
limit = {
hostage_duration = {
years >= 4
}
}
add = 10
}
if = {
limit = {
hostage_duration = {
years >= 5
}
}
add = 10
}
if = {
limit = {
hostage_duration = {
years >= 6
}
}
add = 10
}
if = {
limit = {
hostage_duration = {
years >= 7
}
}
add = 10
}
if = {
limit = {
hostage_duration = {
years >= 8
}
}
add = 10
}
if = {
limit = {
hostage_duration = {
years >= 9
}
}
add = 10
}
if = {
limit = {
hostage_duration = {
years >= 10
}
}
add = 10
}
}
}
scope:secondary_recipient = {
hostage_duration = {
years >= 2
}
}
desc = HOSTAGE_DURATION_REASON
}
bp2_hostage_recall_tier_neighbor_modifier = {
RECALLER = scope:actor
WARDEN = scope:recipient
}
bp2_hostage_claims_casus_bellis_modifier = {
SENDER = scope:actor
RECEIVER = scope:recipient
}
bp2_hostage_recall_vassals_lieges_modifier = {
RECALLER = scope:actor
WARDEN = scope:recipient
}
bp2_hostage_relative_strength_modifier = {
SENDER = scope:recipient
RECEIVER = scope:actor
}
modifier = {
desc = HOSTAGE_IMMINENT_THREAT_REASON
scope:actor = {
has_any_cb_on = scope:recipient
}
scope:actor.current_strength_with_allies_fifty_percent_value > scope:recipient.current_strength_with_allies_value
add = -25
}
bp2_hostage_culture_faith_modifier = {
SENDER = scope:actor
RECEIVER = scope:recipient
}
modifier = {
scope:recipient = {
culture = {
has_cultural_tradition = tradition_equitable
}
NOT = {
any_home_court_hostage = {
warden = scope:actor
}
}
}
scope:secondary_recipient = {
hostage_duration = {
years >= 2
}
}
add = 25
desc = HOSTAGE_EQUITABLE_TRADITION_REASON
}
modifier = {
scope:recipient = {
culture = {
has_cultural_tradition = tradition_esteemed_hospitality
}
NOT = {
any_home_court_hostage = {
warden = scope:actor
}
}
}
scope:secondary_recipient = {
hostage_duration = {
years >= 2
}
}
add = 25
desc = HOSTAGE_ESTEEMED_HOSPITALITY_TRADITION_REASON
}
modifier = {
scope:recipient = {
is_vassal_of = scope:actor
culture = {
has_cultural_tradition = tradition_loyal_soldiers
}
}
scope:secondary_recipient = {
hostage_duration = {
years >= 2
}
}
add = 25
desc = HOSTAGE_LOYAL_SUBJECTS_TRADITION_REASON
}
modifier = {
exists = scope:actor.var:hostage_died
scope:recipient = {
NOR = {
var:let_my_hostage_die ?= scope:actor
has_opinion_modifier = {
target = scope:actor
modifier = killed_hostage_opinion
}
}
}
desc = HOSTAGE_PREVIOUSLY_DIED_REASON
add = -25
}
modifier = {
scope:recipient = {
var:let_my_hostage_die ?= scope:actor
NOT = {
has_opinion_modifier = {
target = scope:actor
modifier = killed_hostage_opinion
}
}
}
desc = HOSTAGE_PREVIOUSLY_DIED_HOME_COURT_REASON
add = -100
}
modifier = {
scope:recipient = {
has_opinion_modifier = {
target = scope:actor
modifier = killed_hostage_opinion
}
}
desc = HOSTAGE_KILLED_REASON
add = -200
}
modifier = {
scope:actor ?= {
has_truce = scope:recipient
}
desc = HOSTAGE_ACTOR_EXISTING_TRUCE_REASON
add = 20
}
modifier = {
scope:recipient ?= {
is_at_war = yes
}
desc = HOSTAGE_AT_WAR_REASON
add = -25
}
modifier = {
add = -50
scope:actor = {
has_character_modifier = attacked_home_court
}
desc = attacked_home_court
}
modifier = {
scope:hook = yes
add = 40
desc = SCHEME_WEAK_HOOK_USED
}
modifier = {
add = -50
scope:recipient = {
any_home_court_hostage = {
warden = scope:actor
}
}
desc = HOSTAGE_HAS_MINE_REASON
}
modifier = {
desc = crusading_claim_cb_rea
# … (cut here; the rest is in the file)As written in game/common/character_interactions/05_bp2_interactions.txt.
What happens
If they accept
- The home court:
- The hostage:
return_hostage = yes
- The hostage’s warden:
If
One of these
bp2_warden_title_tier_lower_trigger = { WARDEN = scope:hostage.warden HOME_COURT = scope:hostage.home_court }or
bp2_warden_dynasty_renown_lower_trigger = { WARDEN = scope:hostage.warden HOME_COURT = scope:hostage.home_court }
Then
Otherwise
- Loses Prestige income
If
- The hostage’s home court:
None of these
- Any warden hostage:
home_court = scope:hostage.warden
One of these
has_truce = scope:hostage.wardenor
is_allied_to = scope:hostage.warden
- Any warden hostage:
Then
- … and … may freely attack one another
- The hostage’s home court:
- The hostage:
- The home court: Event char_interaction.0340
If they refuse
- Event char_interaction.0341
Options when sending
- Use a Hook
Events it fires: char_interaction.0340, char_interaction.0341
• 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) (12 lines of game script)
is_shown = scope:actor = {
is_ai = no
}
scope:recipient != scope:actor
OR = {
scope:actor = {
any_home_court_hostage = {
warden ?= scope:recipient
}
}
scope:recipient.home_court ?= scope:actor
}As written in game/common/character_interactions/05_bp2_interactions.txt.
Can be sent when (is_valid…) (16 lines of game script)
NOR = {
scope:recipient = {
is_at_war_with = scope:actor
}
scope:actor = {
government_has_flag = government_is_theocracy
}
scope:recipient = {
government_has_flag = government_is_theocracy
}
}
NOT = {
scope:actor = {
is_at_war_with = scope:recipient
}
}As written in game/common/character_interactions/05_bp2_interactions.txt.
Effects (on_send, on_accept, on_decline) (50 lines of game script)
on_send =
on_accept = scope:actor = {
save_scope_as = home_court
}
scope:recipient = {
save_scope_as = warden
}
scope:secondary_recipient = {
save_scope_as = hostage
}
scope:warden = {
hidden_effect = {
send_interface_toast = {
type = event_toast_effect_neutral
title = recall_hostage_interaction_notification
left_icon = scope:hostage
right_icon = scope:home_court
show_as_tooltip = {
bp2_return_hostage_effect = {
HOSTAGE = scope:hostage
}
}
}
}
}
scope:home_court = {
send_interface_toast = {
type = event_toast_effect_good
title = recall_hostage_interaction_notification
left_icon = scope:hostage
right_icon = scope:warden
show_as_tooltip = {
bp2_return_hostage_effect = {
HOSTAGE = scope:hostage
}
}
}
if = {
limit = {
has_character_flag = flag_hostile_actions_disabled_delay
}
remove_character_flag = flag_hostile_actions_disabled_delay
}
}
scope:home_court = {
trigger_event = char_interaction.0340
}
on_decline = scope:actor = {
trigger_event = char_interaction.0341
}As written in game/common/character_interactions/05_bp2_interactions.txt.
- Category
- Diplomatic actions
- In the menu
- under More…
- ID
recall_hostage_interaction
Source: game/common/character_interactions/05_bp2_interactions.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.