Interaction · Imprisonment actions
Pay Ransom
Offer to pay the ransom for an Imprisoned Vassal or Courtier
What you need
You
To send it
- The character you target:
If
- Has “imprisoned by diarch” (a variable the game's script sets)
scope:recipient.var:imprisoned_by_diarch:is_diarch_of_target = scope:recipient.liege
Then
- Cannot take any action that would release former Regent whilst current Regent is in office
To see it in the menu
If
- Is played by the AI
NOT = { puppeteer ?= { is_ai = no } }
Then
- You have 25
The other character
- Is imprisoned by the target
One of these
- Is a direct vassal of you
or
Is close family of youor
Their dynasty:this ?= scope:puppet_or_actor.dynasty
or
Any spouse:One of these
- Is close family of you
or
Their dynasty:this ?= scope:puppet_or_actor.dynasty
or
Has you as loveror
Has you as friend
Pay Ransom is an imprisonment character interaction in Crusader Kings III. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Clergy acting towards a secular Ruler (+20), They gets paid Gold (+50), They gets paid Gold (+25) and 15 more. Patch 1.20.1.2, from game/common/character_interactions/00_prison_interactions.txt.
Quick answers (1)
- How do I get the AI to accept Pay Ransom?
- Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Clergy acting towards a secular Ruler +20, Relative Level of Devotion, They gets paid Gold +50, They gets paid Gold +25, They gets paid Gold +25, They gets a Hook +50, They has no use for a Hook 0, They wants more Gold 0, The other character is the recipient's Rival -55, The other character is the recipient's Nemesis -300, You are at War -300, The other character is a Prisoner of War -300, The other character is at war with the recipient -300, Weak Hook used +100, Intimidated by you +40, Terrified of you +100, Spending Influence +25, Spending Herd +25 and Spending Herd +10.
Will they accept?
Accepted automatically when:
- They use their Hook on …
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 |
| Clergy acting towards a secular Ruler | +20 |
Relative Level of Devotionwhen
| varies |
They gets paid Goldwhen
| +50 |
They gets paid Goldwhen
| +25 |
They gets paid Goldwhen
| +25 |
They gets a Hookwhen
| +50 |
They has no use for a Hookwhen
| 0 |
They wants more Goldwhen
| 0 |
The other character is the recipient's Rivalwhen
| -55 |
The other character is the recipient's Nemesiswhen
| -300 |
You are at Warwhen
| -300 |
The other character is a Prisoner of Warwhen
| -300 |
The other character is at war with the recipientwhen
| -300 |
Weak Hook usedwhen
| +100 |
Intimidated by youwhen
| +40 |
Terrified of youwhen
| +100 |
Spending Influencewhen
| +25 |
Spending Herdwhen
| +25 |
Spending Herdwhen
| +10 |
Acceptance (ai_accept) (151 lines of game script)
base = 0
celestial_hierarchy_acceptance_modifier = {
ACTOR = scope:puppet_or_actor
RECIPIENT = scope:recipient
}
modifier = {
add = 50
OR = {
scope:gold = yes
scope:extortionate_gold = yes
}
desc = GOLD_POSITIVE_REASON
}
modifier = {
add = 25
scope:current_gold = yes
AND = {
scope:puppet_or_actor = {
gold >= scope:secondary_recipient.half_ransom_cost_value
}
NOT = {
scope:recipient.ai_greed >= medium_positive_ai_value
}
}
desc = GOLD_POSITIVE_REASON
}
modifier = {
add = 25
scope:extortionate_current_gold = yes
AND = {
scope:puppet_or_actor = {
gold >= scope:secondary_recipient.half_increased_ransom_cost_value
}
NOT = {
scope:recipient.ai_greed >= medium_positive_ai_value
}
}
desc = GOLD_POSITIVE_REASON
}
modifier = {
add = 50
scope:favor = yes
scope:recipient.top_liege = scope:puppet_or_actor.top_liege
desc = FAVOR_POSITIVE_REASON
}
modifier = {
add = 0
scope:favor = yes
scope:recipient.top_liege != scope:puppet_or_actor.top_liege
desc = NO_USE_FOR_A_FAVOR_REASON
}
modifier = {
add = 0
OR = {
scope:current_gold = yes
scope:extortionate_current_gold = yes
}
OR = {
scope:puppet_or_actor = {
gold < scope:secondary_recipient.half_ransom_cost_value
}
scope:recipient.ai_greed >= medium_positive_ai_value
}
desc = WANTS_MORE_GOLD
}
modifier = {
add = -55
scope:recipient = {
has_relation_rival = scope:secondary_recipient
}
desc = RIVAL_TO_ME_REASON
}
modifier = {
add = -300
scope:recipient = {
has_relation_nemesis = scope:secondary_recipient
}
desc = NEMESIS_TO_ME_REASON
}
modifier = {
add = -300
scope:recipient = {
is_at_war_with = scope:puppet_or_actor
}
desc = IS_AT_WAR_REASON
}
modifier = {
add = -300
scope:recipient = {
is_at_war = yes
any_primary_war_enemy = {
scope:secondary_recipient = {
liege ?= prev
}
}
}
desc = IS_POW_REASON
}
modifier = {
add = -300
scope:recipient = {
is_at_war_with = scope:secondary_recipient
}
desc = IS_AT_WAR_WITH_TARGET_REASON
}
modifier = {
scope:hook = yes
add = 100
desc = SCHEME_WEAK_HOOK_USED
}
modifier = {
add = 40
trigger = {
scope:recipient = {
target_is_liege_or_above = scope:puppet_or_actor
has_dread_level_towards = {
target = scope:puppet_or_actor
level = 1
}
}
}
desc = INTIMIDATED_REASON
}
modifier = {
add = 100
trigger = {
scope:recipient = {
target_is_liege_or_above = scope:puppet_or_actor
has_dread_level_towards = {
target = scope:puppet_or_actor
level = 2
}
}
}
desc = COWED_REASON
}
modifier = {
add = 25
scope:influence_send_option = yes
desc = INFLUENCE_INTERACTION_ACCEPTANCE_SEND_OPTION
}
modifier = {
add = 25
scope:herd_send_option = yes
desc = HERD_INTERACTION_ACCEPTANCE_SEND_OPTION
}
modifier = {
add = 10
scope:current_herd = yes
desc = HERD_INTERACTION_ACCEPTANCE_SEND_OPTION
}As written in game/common/character_interactions/00_prison_interactions.txt.
What happens
If they accept
If
- The other character: Is imprisoned by the target
Then
- The character you target:
If
- Employs a Man-Haggler
One of these
- The option “extortionate gold” is chosen
or
The option “extortionate current gold” is chosenor
The option “gold” is chosenor
The option “current gold” is chosen
Then
- … Man-Haggler Aptitude: +…
- You:
If
- Employs a Man-Haggler
One of these
- The option “extortionate gold” is chosen
or
The option “extortionate current gold” is chosenor
The option “gold” is chosenor
The option “current gold” is chosen
Then
- … Man-Haggler Aptitude: new ransom value
If
- The prisoner:
None of these
- Is a vassal of you
- Is your consort
- Is close family of you
- Their dynasty:
this ?= scope:puppet_or_actor.dynasty
- Any spouse:
One of these
- Is close family of you
or
Their dynasty:this ?= scope:puppet_or_actor.dynasty
- Has you as lover
- Has you as friend
Then
- Stress and fulfillment impact: by trait: Compassionate -15, Generous -30
Else if
- The prisoner:
One of these
- Is a vassal of you
or
Is your consortor
Is close family of youor
Their dynasty:this ?= scope:puppet_or_actor.dynasty
or
Any spouse:One of these
- Is close family of you
or
Their dynasty:this ?= scope:puppet_or_actor.dynasty
or
Has you as loveror
Has you as friend
Then
- Stress and fulfillment impact: by trait: Compassionate -30, Generous -15, Just -15
- The prisoner:
If
- The prisoner: Has you as lover
Then
- Stress and fulfillment impact: by trait: Lustful -65
If
- The prisoner:
One of these
- Has you as friend
or
Has you as lover
Then
- Stress and fulfillment impact: by trait: Loyal -65
- The prisoner:
If
- The prisoner: Is close family of the payer
Then
- Stress and fulfillment impact: by trait: Family Hierarch -5
- Event char_interaction.0140
- The imprisoner:
- The prisoner:
If
a check the game hides
Then
If
- The payer: Is played by a person
- The prisoner: Is played by the AI
Then
- Opinion: Ransomed Recently for 1 year
If
- Is played by the AI
- Ai honor at least 25
- Ai greed at most 0
Then
- The payer:
If
can_add_hook = { target = scope:prisoner type = favor_hook }
Then
- Gain a Indebted on the prisoner
Otherwise
- The payer:
progress_towards_hook_effect = { CHARACTER = scope:prisoner HOOK_TYPE = indebted_hook }
- The payer:
- Depending on always:
- When always is scope:extortionate gold:
- Pay gold to the imprisoner
- The imprisoner:
- Gain … Prestige
mandala_trickster_increment_gold_ransomed_effect = { GOLD_AMOUNT = scope:prisoner.increased_ransom_cost_value }
- When always is scope:extortionate current gold:
- Pay gold to the imprisoner
- The imprisoner:
- Gain … Prestige
mandala_trickster_increment_gold_ransomed_effect = { GOLD_AMOUNT = scope:ransom_saved_gold_value }
- When always is scope:gold:
- Pay gold to the imprisoner
- The imprisoner:
mandala_trickster_increment_gold_ransomed_effect = { GOLD_AMOUNT = scope:prisoner.normal_ransom_cost_value }
- When always is scope:current gold:
- Pay gold to the imprisoner
- The imprisoner:
mandala_trickster_increment_gold_ransomed_effect = { GOLD_AMOUNT = scope:ransom_saved_gold_value }
- When always is scope:extortionate gold:
If
- The option “favor” is chosen
Then
- The imprisoner: … (more in the script below)
- … (more in the script below)
- Depending on always:
- … (more in the script below)
- The prisoner:
- … (more in the script below)
- … (more in the script below)
If they refuse
- Event char_interaction.0141
Options when sending
- Owe a Hook
- Demand Influence
- Use a Hook
Events it fires: char_interaction.0140, char_interaction.0141
• 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) (37 lines of game script)
is_shown = exists = scope:recipient
exists = scope:puppet_or_actor
scope:puppet_or_actor ?= {
trigger_if = {
limit = {
is_ai = yes
NOT = {
puppeteer ?= {
is_ai = no
}
}
}
gold >= 25
}
}
scope:secondary_recipient ?= {
this != scope:puppet_or_actor
is_imprisoned_by = scope:recipient
OR = {
liege ?= scope:puppet_or_actor
is_close_family_of = scope:puppet_or_actor
dynasty ?= {
this ?= scope:puppet_or_actor.dynasty
}
any_spouse = {
OR = {
is_close_family_of = scope:puppet_or_actor
dynasty ?= {
this ?= scope:puppet_or_actor.dynasty
}
}
}
has_relation_lover = scope:puppet_or_actor
has_relation_friend = scope:puppet_or_actor
}
}
scope:puppet_or_actor != scope:recipientAs written in game/common/character_interactions/00_prison_interactions.txt.
Can be sent when (is_valid…) (12 lines of game script)
scope:secondary_recipient = {
custom_description = {
text = currently_being_tortured
NOT = {
has_character_flag = is_being_tortured
}
}
}
cannot_release_former_regent_whilst_old_regent_holds_power_trigger = {
PRISONER = scope:recipient
REGENT = scope:recipient.var:imprisoned_by_diarch
}As written in game/common/character_interactions/00_prison_interactions.txt.
Effects (on_send, on_accept, on_decline) (213 lines of game script)
on_accept = if = {
limit = {
scope:secondary_recipient = {
is_imprisoned_by = scope:recipient
}
}
scope:secondary_recipient = {
save_scope_as = prisoner
}
scope:recipient = {
save_scope_as = imprisoner
if = {
limit = {
employs_court_position = person_haggler_camp_officer
is_asking_for_gold_in_ransom_trigger = yes
}
random_court_position_holder = {
type = person_haggler_camp_officer
save_scope_as = haggler
}
custom_tooltip = has_person_haggler_increase_ransom_cost
}
}
scope:puppet_or_actor = {
save_scope_as = payer
if = {
limit = {
employs_court_position = person_haggler_camp_officer
is_asking_for_gold_in_ransom_trigger = yes
}
random_court_position_holder = {
type = person_haggler_camp_officer
save_scope_as = haggler
}
scope:prisoner = {
save_scope_value_as = {
name = new_ransom_value
value = haggler_ransom_cost_modifier
}
}
custom_tooltip = has_person_haggler_decrease_ransom_cost
}
if = {
limit = {
scope:prisoner = {
NOR = {
is_vassal_of = scope:puppet_or_actor
is_consort_of = scope:puppet_or_actor
is_close_family_of = scope:puppet_or_actor
dynasty ?= {
this ?= scope:puppet_or_actor.dynasty
}
any_spouse = {
OR = {
is_close_family_of = scope:puppet_or_actor
dynasty ?= {
this ?= scope:puppet_or_actor.dynasty
}
}
}
has_relation_lover = scope:puppet_or_actor
has_relation_friend = scope:puppet_or_actor
}
}
}
stress_and_fulfillment_impact = {
compassionate = minor_stress_impact_loss
generous = medium_stress_impact_loss
}
}
else_if = {
limit = {
scope:prisoner = {
OR = {
is_vassal_of = scope:puppet_or_actor
is_consort_of = scope:puppet_or_actor
is_close_family_of = scope:puppet_or_actor
dynasty ?= {
this ?= scope:puppet_or_actor.dynasty
}
any_spouse = {
OR = {
is_close_family_of = scope:puppet_or_actor
dynasty ?= {
this ?= scope:puppet_or_actor.dynasty
}
}
}
has_relation_lover = scope:puppet_or_actor
has_relation_friend = scope:puppet_or_actor
}
}
}
stress_and_fulfillment_impact = {
compassionate = medium_stress_impact_loss
generous = minor_stress_impact_loss
just = minor_stress_impact_loss
}
}
if = {
limit = {
scope:prisoner = {
has_relation_lover = scope:puppet_or_actor
}
}
stress_and_fulfillment_impact = {
lustful = major_stress_impact_loss
}
}
if = {
limit = {
scope:prisoner = {
OR = {
has_relation_friend = scope:puppet_or_actor
has_relation_lover = scope:puppet_or_actor
}
}
}
stress_and_fulfillment_impact = {
loyal = major_stress_impact_loss
}
}
if = {
limit = {
scope:prisoner = {
is_close_family_of = scope:payer
}
}
stress_and_fulfillment_impact = {
family_first = miniscule_stress_impact_loss
}
}
if = {
limit = {
OR = {
exists = scope:current_gold
exists = scope:extortionate_current_gold
}
}
save_scope_value_as = {
name = ransom_saved_gold_value
value = scope:payer.current_gold_value
}
}
trigger_event = char_interaction.0140
}
hidden_effect = {
scope:prisoner = {
send_interface_toast = {
type = event_toast_effect_good
title = ransomed_by_someone
left_icon = scope:payer
show_as_tooltip = {
scope:imprisoner = {
ransom_interaction_effect = yes
}
}
}
}
scope:prisoner = {
if = {
limit = {
liege ?= {
is_ai = no
NOR = {
this = scope:payer
this = scope:imprisoner
}
OR = {
is_close_or_extended_family_of = scope:prisoner
is_consort_of = scope:prisoner
has_relation_lover = scope:prisoner
has_relation_friend = scope:prisoner
}
}
}
liege = {
save_scope_as = prisoner_liege_scope
send_interface_toast = {
type = event_toast_effect_good
title = ransomed_by_someone_third_party
left_icon = scope:payer
right_icon = scope:prisoner
custom_tooltip = ransomed_by_someone_third_party_desc
}
}
}
}
}
scope:imprisoner = {
send_interface_message = {
type = interaction_prison_ransom
title = recipient_released_from_prison
right_icon = scope:prisoner
left_icon = scope:imprisoner
ransom_interaction_effect = yes
}
if = {
limit = {
any_character_struggle = {
involvement = involved
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_ransom_important
CHAR = scope:prisoner
}
}
}
every_character_struggle = {
involvement = involved
limit = {
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_ransom_impor
# … (cut here; the rest is in the file)As written in game/common/character_interactions/00_prison_interactions.txt.
- Category
- Imprisonment actions
- In the menu
- under More…
- ID
pay_ransom_interaction
Source: game/common/character_interactions/00_prison_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.