CK3 DatabaseCrusader Kings III · 1.20.1.2 “Crozier” · unofficial
Silk & Silverout Tue, Nov 17What's free, what needs the DLC, price →

Interaction · Imprisonment actions

Ransom Yourself

No costAccepted automatically in some cases; otherwise the AI weighs it

Pay Gold or a Hook for your release from Prison

What you need

You

To send it

  • You:
    • If

      • Has “imprisoned by diarch” (a variable the game's script sets)
      • scope:puppet_or_actor.var:imprisoned_by_diarch:
        • is_diarch_of_target = scope:puppet_or_actor.liege

      Then

      • Cannot take any action that would release former Regent whilst current Regent is in office
  • … is currently being purged

To see it in the menu

  • Is imprisoned by the target

Ransom Yourself 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 12 more. Patch 1.20.1.2, from game/common/character_interactions/00_prison_interactions.txt.

for a guide, post or blog
Quick answers (1)
How do I get the AI to accept Ransom Yourself?
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 -50, They wants more Gold 0, The recipient is your Rival -55, The recipient is your Nemesis -300, You are at War -300, Weak Hook used +100, Intimidated by you, Terrified of you, The recipient's House is feuding with your -50, 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.

ReasonAmount
Base0
Clergy acting towards a secular Ruler
when
+20
Relative Level of Devotion
when
  • Your Personal Tenets unlock tenet celestial hierarchy interaction acceptance
  • Your faith is the same as that of recipient
varies
They gets paid Gold
when
  • One of these

    • The option “gold” is chosen
    • or

      The option “extortionate gold” is chosen
+50
They gets paid Gold
when
  • The option “current gold” is chosen
  • You:
    • gold >= half_ransom_cost_value
  • NOT = { scope:recipient.ai_greed >= medium_positive_ai_value }
+25
They gets paid Gold
when
  • The option “extortionate current gold” is chosen
  • You:
    • gold >= half_increased_ransom_cost_value
  • NOT = { scope:recipient.ai_greed >= medium_positive_ai_value }
+25
They gets a Hook
when
  • The option “favor” is chosen
  • The target’s top liege is your
+50
They has no use for a Hook
when
  • The option “favor” is chosen
  • NOT = { scope:gold = yes }
  • NOT = { scope:extortionate_gold = yes }
  • One of these

    • The target’s top liege is not your
    • or

      scope:recipient.ai_greed >= medium_positive_ai_value
-50
They wants more Gold
when
  • One of these

    • The option “current gold” is chosen
    • or

      The option “extortionate current gold” is chosen
  • One of these

    • You:
      • gold < half_ransom_cost_value
    • or

      scope:recipient.ai_greed >= medium_positive_ai_value
0
The recipient is your Rival
when
  • The character you target: Has you as rival
-55
The recipient is your Nemesis
when
  • The character you target: Has you as nemesis
-300
You are at War
when
  • The character you target: Is at war with you
-300
Weak Hook used
when
+100
Intimidated by you
when
  • The character you target:
    • Is a vassal (or below) of you
    • has_dread_level_towards = { target = scope:puppet_or_actor level = 1 }
intimidated_reason_value
Terrified of you
when
  • The character you target:
    • Is a vassal (or below) of you
    • has_dread_level_towards = { target = scope:puppet_or_actor level = 2 }
cowed_reason_value
The recipient's House is feuding with your
when
  • The character you target:
    • One of these

      • Their house:
        • this != scope:puppet_or_actor.house
        • has_house_relation_with = scope:puppet_or_actor.house
        • Any house relation:
          • has_house_relation_level = feud
          • Any relation house:
            • scope:puppet_or_actor.house = this
      • or

        exists = scope:return_feud_as_true_for_debug
-50
Spending Influence
when
  • The option “influence send option” is chosen
+25
Spending Herd
when
  • The option “herd send option” is chosen
+25
Spending Herd
when
  • The option “current herd” is chosen
+10
Acceptance (ai_accept) (150 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 >= 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 >= 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 = -50
	scope:favor = yes
	NOR = {
		scope:gold = yes
		scope:extortionate_gold = yes
	}
	OR = {
		scope:recipient.top_liege != scope:puppet_or_actor.top_liege
		scope:recipient.ai_greed >= medium_positive_ai_value
	}
	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 < 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:puppet_or_actor
	}
	desc = ACTOR_RIVAL_TO_ME_REASON
}
modifier = {
	add = -300
	scope:recipient = {
		has_relation_nemesis = scope:puppet_or_actor
	}
	desc = ACTOR_NEMESIS_TO_ME_REASON
}
modifier = {
	add = -300
	scope:recipient = {
		is_at_war_with = scope:puppet_or_actor
	}
	desc = IS_AT_WAR_REASON
}
modifier = {
	scope:hook = yes
	add = 100
	desc = SCHEME_WEAK_HOOK_USED
}
modifier = {
	add = intimidated_reason_value
	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 = cowed_reason_value
	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 = -50
	trigger = {
		scope:recipient = {
			house_has_feud_relation_with_trigger = {
				TARGET = scope:puppet_or_actor
			}
		}
	}
	desc = INTERACTION_FAMILY_FEUD_REVERSE_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

    • You: Is imprisoned by the target

    Then

    • You:
      • If

        • Employs a Man-Haggler
        • One of these

          • The option “extortionate gold” is chosen
          • or

            The option “extortionate current gold” is chosen
          • or

            The option “gold” is chosen
          • or

            The option “current gold” is chosen

        Then

        • … Man-Haggler Aptitude: new ransom value
      • Event char_interaction.0150
    • The imprisoner:
      • If

        • Employs a Man-Haggler
        • One of these

          • The option “extortionate gold” is chosen
          • or

            The option “extortionate current gold” is chosen
          • or

            The option “gold” is chosen
          • or

            The option “current gold” is chosen

        Then

      • 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 }
        • If

          • The option “favor” is chosen

          Then

          • If

            • The payer is the prisoner

            Then

            • Opinion: Demanded a Hook
          • The imprisoner: Gain a Favor on the payer
        • If

          • The option “influence send option” is chosen

          Then

          • The payer:
            • change_influence = { … }
          • The imprisoner: Influence changes
        • If

          • The option “herd send option” is chosen

          Then

          • The payer:
            • pay_herd = { target = scope:imprisoner value = scope:prisoner.ransom_herd_value }

          Else if

          • The option “current herd” is chosen

          Then

          • The payer:
            • pay_herd = { target = scope:imprisoner value = domicile.herd }
      • The payer:
        • If

          • The Personal Tenets unlock tenet philanthropia ransom captives
          • Philanthropia ransom gold more than 0

          Then

          • Gain … Piety
          • Spiritual fulfillment changes
      • The prisoner:
        • release_from_prison = yes
      • If

        • Any character struggle:
          • involvement = involved
          • phase_has_catalyst = catalyst_ransom_important
          • The prisoner › Any character struggle:
            • involvement = involved

        Then

        • Every character struggle:
          • Where:
            • phase_has_catalyst = catalyst_ransom_important
            • The prisoner › Any character struggle:
              • involvement = involved
          • involvement = involved
          • activate_struggle_catalyst = { catalyst = catalyst_ransom_important character = scope:imprisoner }
    • If

      Then

      • You: Use a Hook on the target

If they refuse

Options when sending

  • For a Hook
  • Demand Influence
  • Use a Hook

Events it fires: char_interaction.0150, char_interaction.0151

• 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) (3 lines of game script)
is_shown = scope:puppet_or_actor = {
	is_imprisoned_by = scope:recipient
}

As written in game/common/character_interactions/00_prison_interactions.txt.

Can be sent when (is_valid…) (20 lines of game script)
scope:puppet_or_actor = {
	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:puppet_or_actor
	REGENT = scope:puppet_or_actor.var:imprisoned_by_diarch
}
custom_tooltip = {
	text = is_currently_being_purged_tt
	scope:puppet_or_actor = {
		NOT = {
			has_character_flag = is_currently_being_purged
		}
	}
}

As written in game/common/character_interactions/00_prison_interactions.txt.

Effects (on_send, on_accept, on_decline) (114 lines of game script)
on_accept = if = {
	limit = {
		scope:puppet_or_actor = {
			is_imprisoned_by = scope:recipient
		}
	}
	scope:puppet_or_actor = {
		save_scope_as = prisoner
	}
	scope:recipient = {
		save_scope_as = imprisoner
	}
	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
			}
			save_scope_value_as = {
				name = new_ransom_value
				value = haggler_ransom_cost_modifier
			}
			custom_tooltip = has_person_haggler_decrease_ransom_cost
		}
		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.0150
	}
	scope: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
			}
			scope:puppet_or_actor = {
				custom_tooltip = has_person_haggler_increase_ransom_cost
			}
		}
		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_important
						CHAR = scope:prisoner
					}
				}
				activate_struggle_catalyst = {
					catalyst = catalyst_ransom_important
					character = scope:imprisoner
				}
			}
		}
	}
	if = {
		limit = {
			always = scope:hook
		}
		scope:puppet_or_actor = {
			use_hook = scope:recipient
		}
	}
}
on_decline = if = {
	limit = {
		scope:recipient = {
			is_ai = no
		}
	}
	scope:puppet_or_actor = {
		add_character_flag = {
			flag = character_ransom_refused_by_player
			years = 10
		}
	}
}
scope:puppet_or_actor = {
	trigger_event = char_interaction.0151
}

As written in game/common/character_interactions/00_prison_interactions.txt.

Category
Imprisonment actions
In the menu
main list
ID
ransom_me_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.

Spotted a mistake on this page?