Interaction · Diarch
… Imprison
Attempt to Imprison the recipient, despite not being … Liege This will incur Strife with your fellow Vassals
What you need
You
To send it
- The character you target:
- Is not imprisoned
- Is not at war with the allowed imprisoner
- Does not have a Strong Hook on the allowed imprisoner
- … is traveling to become a Hostage
If
- Has a Adventurer Government
- Is a ruler
Then
- The allowed imprisoner: Is landed
reverse_has_opinion_modifier = { target = scope:allowed_imprisoner modifier = eviction_ignored_opinion }domicile.domicile_location.county ?= { target_is_de_facto_liege_or_above = scope:allowed_imprisoner.primary_title }
- Your liege:
- You: Is not imprisoned
- They … too preoccupied to act as … right now
- Your Liege is not in a Regency
If
- You:
is_diarch = yes
Then
- Your liege:
has_diarchy_active_parameter = unlock_diarch_imprison_interaction
- Your liege:
If
has_realm_law_flag = imprisonment_toggle_enable
Then
has_realm_law_flag = imprisonment_toggle_on
- You:
None of these
- You:
is_at_war_with = scope:actor.liege
- You:
To see it in the menu
One of these
is_designated_diarch = yesor
All of these
is_diarch_of_target = liegeexists = liege
One of these
- Is landed
or
All of these
- you has administrative government mechanic
- Is not landed
If
a check the game hides
Then
- Your house: Has the house check as house head
- You have a domicile
or
All of these
- Your liege:
All of these
- Holds China
- Government is Celestial
- Their government has the government uses ministry budget flag
- Your liege:
or
All of these
- Is a ruler
- Your Government is a Theocratic-type Government
- Your liege:
has_diarchy_parameter = unlock_diarch_imprison_interaction
If
- The character you target:
is_courtier = yes
Then
None of these
- The target’s host › Any foreign court guest: Is the target
- The character you target:
- Your liege › The character you target:
One of these
All of these
- Is a vassal (or below) of the allowed imprisoner
If
is_foreign_court_guest = yes
Then
- Their host: Is a vassal (or below) of the allowed imprisoner
or
Is a guest at the allowed imprisoner’s courtor
All of these
- Has a Adventurer Government
reverse_has_opinion_modifier = { target = scope:allowed_imprisoner modifier = eviction_ignored_opinion }
- Is not imprisoned by the allowed imprisoner
None of these
All of these
- The character you target:
One of these
All of these
- Is a vassal (or below) of the allowed imprisoner
If
is_foreign_court_guest = yes
Then
- Their host: Is a vassal (or below) of the allowed imprisoner
or
Is a guest at the allowed imprisoner’s courtor
All of these
- Has a Adventurer Government
reverse_has_opinion_modifier = { target = scope:allowed_imprisoner modifier = eviction_ignored_opinion }
- Is not imprisoned by the allowed imprisoner
- The character you target:
The character you target
- Is not imprisoned
… Imprison is a diarch character interaction in Crusader Kings III. You need: They … too preoccupied to act as … right now and Your Liege is not in a Regency. The AI weighs it (the answer is partly random). Reasons the AI weighs include Hook used (+30), Refusal is Treason (+20), Prison-Feudal Complex (+50) and 9 more. Patch 1.20.1.2, from game/common/character_interactions/00_diarch_interactions.txt.
Quick answers (2)
- What are the requirements for … Imprison in CK3?
- You: They … too preoccupied to act as … right now and Your Liege is not in a Regency. (patch 1.20.1.2)
- How do I get the AI to accept … Imprison?
- The AI weighs it (the answer is partly random). Its reasons: Your Intrigue, The recipient's Intrigue, Hook used +30, … Opinion of …, Refusal is Treason +20, Prison-Feudal Complex +50, The recipient … of the … Tier -40, The recipient is not a Ruler +50, The recipient is your Child +200, The recipient is backed by a faction -70, Rank Difference, Intimidated by you, Terrified of you, Difference in your Military Strength (max +20), They is your Rival -50, They is your Nemesis -100, Your Court Grandeur +10, Your Court Grandeur +20 and Legalistic Customs +20.
Will they accept?
The AI adds these up and accepts above zero; near zero the answer is partly random (ai_maybe). Reasons in italics are the script's, with no label in the game.
| Reason | Amount |
|---|---|
| Base | 0 |
| Your Intrigue | your intrigue × 1 |
| The recipient's Intrigue | their intrigue × -2 |
Hook usedwhen
| +30 |
| … Opinion of … | varies |
| Their personality (AI values: boldness (scripted)) | varies |
Refusal is Treasonwhen
| +20 |
Prison-Feudal Complexwhen
| +50 |
| The recipient … of the … Tier | -40 |
The recipient is not a Rulerwhen
| +50 |
The recipient is your Childwhen
| +200 |
The recipient is backed by a factionwhen
| -70 |
| Rank Difference | varies |
Intimidated by youwhen
| intimidated_external_reason_value |
Terrified of youwhen
| cowed_external_reason_value |
Difference in your Military Strength (max +20)when
| varies |
They is your Rivalwhen
| -50 |
They is your Nemesiswhen
| -100 |
Your Court Grandeurwhen
| +10 |
Your Court Grandeurwhen
| +20 |
| Legalistic Customs | +20 |
Acceptance (ai_accept) (241 lines of game script)
base = 0
modifier = {
add = {
value = scope:actor.intrigue
multiply = 1
}
desc = IMPRISON_INTRIGUE_ACTOR
}
modifier = {
add = {
value = scope:recipient.intrigue
multiply = -2
}
desc = IMPRISON_INTRIGUE_RECIPIENT
}
modifier = {
add = 30
desc = SCHEME_HOOK_USED
scope:hook = yes
}
opinion_modifier = {
who = scope:recipient
opinion_target = scope:actor
multiplier = 0.5
desc = AI_OPINION_REASON
}
ai_value_modifier = {
who = scope:recipient
ai_boldness = {
if = {
limit = {
scope:recipient = {
NOT = {
ai_boldness = 0
}
}
}
value = -0.5
}
}
}
modifier = {
add = 20
desc = AI_REFUSAL_IS_TREASON
scope:actor = {
any_vassal_or_below = {
this = scope:recipient
}
has_realm_law_flag = vassal_refusal_is_treason
}
}
modifier = {
add = 50
desc = AI_PRISON_FEUDAL_COMPLEX_PERK
scope:actor = {
has_perk = prison_feudal_complex_perk
}
}
modifier = {
add = -40
desc = offer_vassalization_interaction_aibehavior_hightier_tt
scope:recipient = {
highest_held_title_tier = tier_kingdom
}
}
modifier = {
add = 50
desc = AI_REFUSAL_COURTIER
scope:recipient = {
is_ruler = no
}
}
modifier = {
add = 200
desc = AI_REFUSAL_YOUNG_CHILD
scope:recipient = {
is_child_of = scope:actor
is_courtier_of = scope:actor
is_adult = no
}
}
modifier = {
add = -70
desc = AI_CLAIMANT_PENALTY
scope:actor = {
OR = {
any_targeting_faction = {
faction_type = claimant_faction
faction_is_at_war = yes
special_character ?= scope:recipient
}
AND = {
exists = var:claimant_faction_sent_demand
var:claimant_faction_sent_demand = scope:recipient
}
}
}
}
modifier = {
add = {
value = -15
if = {
limit = {
scope:actor = {
tier_difference = {
target = scope:recipient
value >= 2
}
}
}
add = 5
}
if = {
limit = {
scope:actor = {
tier_difference = {
target = scope:recipient
value >= 3
}
}
}
add = 5
}
if = {
limit = {
scope:actor = {
tier_difference = {
target = scope:recipient
value >= 4
}
}
}
add = 10
}
}
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:recipient = {
is_ruler = yes
highest_held_title_tier < tier_kingdom
}
}
modifier = {
add = intimidated_external_reason_value
desc = INTIMIDATED_REASON
scope:recipient = {
NOT = {
target_is_liege_or_above = scope:actor
}
has_dread_level_towards = {
target = scope:actor
level = 1
}
}
}
modifier = {
add = cowed_external_reason_value
desc = COWED_REASON
scope:recipient = {
NOT = {
target_is_liege_or_above = scope:actor
}
has_dread_level_towards = {
target = scope:actor
level = 2
}
}
}
modifier = {
add = {
value = 1
subtract = {
value = scope:recipient.max_military_strength
divide = {
value = scope:actor.max_military_strength
min = 1
}
}
multiply = 100
min = -1000
max = 20
}
desc = offer_vassalization_interaction_aibehavior_power_tt
scope:actor = {
is_ruler = yes
}
scope:recipient = {
is_ruler = yes
}
}
modifier = {
add = -50
desc = offer_vassalization_interaction_aibehavior_rival_tt
scope:recipient = {
has_relation_rival = scope:actor
NOT = {
has_relation_nemesis = scope:actor
}
}
}
modifier = {
add = -100
desc = offer_vassalization_interaction_aibehavior_nemesis_tt
scope:recipient = {
has_relation_nemesis = scope:actor
}
}
modifier = {
add = 10
desc = GRANDEUR_REASON
scope:recipient = {
has_royal_court = no
}
scope:actor = {
has_royal_court = yes
has_dlc_feature = royal_court
court_grandeur_current_level >= 7
court_grandeur_current_level < 9
}
}
modifier = {
add = 20
desc = GRANDEUR_REASON
scope:recipient = {
has_royal_court = no
}
scope:actor = {
has_royal_court = yes
has_dlc_feature = royal_court
court_grandeur_current_level >= 9
}
}
modifier = {
add = legalistic_vassal_punishment_acceptance
desc = tradition_legalistic_name
scope:actor = {
has_imprisonment_reason = scope:recipient
culture = {
has_cultural_parameter = vassals_more_likely_accept_punishments
}
}
}As written in game/common/character_interactions/00_diarch_interactions.txt.
What happens
If they accept
- Event char_interaction.0282
- You:
If
NOT = { has_imprisonment_reason = scope:recipient }
Then
If
One of these
- Is the target’s spouse
or
Is close family of the targetor
The character you target:tier_or_related_liege_tier_greater_or_equal_trigger = { TIER = tier_kingdom }
Then
- Dread +20
Else if
One of these
- The character you target:
tier_or_related_liege_tier_equal_trigger = { TIER = tier_duchy }
or
The character you target:tier_or_related_liege_tier_equal_trigger = { TIER = tier_county }
- The character you target:
Then
- Dread +10
If
- The imprisonment performer:
NOT = { has_imprisonment_reason = scope:recipient }faith.religious_head = scope:recipient
Then
- The imprisonment performer:
- Level of Devotion -1
- Gain -100 Piety
- The imprisonment performer:
- You:
If
has_imprisonment_reason = scope:recipient
Then
- Stress and fulfillment impact: by trait: Compassionate +20, Forgiving +20
Otherwise
- Stress and fulfillment impact: by trait: Just +40, Compassionate +40
If
title:h_china.holder ?= scope:puppet_or_actor.top_liege- Any character situation:
situation:dynastic_cycle ?= this- The current phase counts “Grand Secretariat's Autonomy Dynastic Cycle Catalyst”
Then
- Dynastic Cycle: Counts toward the situation's next phase: “Grand Secretariat's Autonomy Dynastic Cycle Catalyst”
- The imprisonment target:
If
Then
If
Then
If
- Does not have the target char as grudge
Then
Otherwise
- Opinion: Grudge Exacerbated (-20)
Else if
Then
Otherwise
If
can_set_relation_potential_rival_trigger = { CHARACTER = scope:target_char }
Then
set_relation_potential_rival = scope:target_char
If
NOT = { scope:rival_opinion = 0 }
Then
If
- The target char: Is played by the AI
Then
- The target char gains the opinion “Hatred” of them
- Opinion: Hatred
- Opinion: In Prison
- The imprisonment target:
If
- The imprisoner: Is not a landless ruler
- The imprisonment target:
One of these
All of these
- Is a ruler
One of these
- Cannot play landless rulers without having an Estate
or
… (more in the script below)
or
… (more in the script below)
- … (more in the script below)
When it is accepted automatically
- Event char_interaction.0281
- You:
If
NOT = { has_imprisonment_reason = scope:recipient }
Then
If
One of these
- Is the target’s spouse
or
Is close family of the targetor
The character you target:tier_or_related_liege_tier_greater_or_equal_trigger = { TIER = tier_kingdom }
Then
- Dread +20
Else if
One of these
- The character you target:
tier_or_related_liege_tier_equal_trigger = { TIER = tier_duchy }
or
The character you target:tier_or_related_liege_tier_equal_trigger = { TIER = tier_county }
- The character you target:
Then
- Dread +10
If
- The imprisonment performer:
NOT = { has_imprisonment_reason = scope:recipient }faith.religious_head = scope:recipient
Then
- The imprisonment performer:
- Level of Devotion -1
- Gain -100 Piety
- The imprisonment performer:
- You:
If
has_imprisonment_reason = scope:recipient
Then
- Stress and fulfillment impact: by trait: Compassionate +20, Forgiving +20
Otherwise
- Stress and fulfillment impact: by trait: Just +40, Compassionate +40
If
title:h_china.holder ?= scope:puppet_or_actor.top_liege- Any character situation:
situation:dynastic_cycle ?= this- The current phase counts “Grand Secretariat's Autonomy Dynastic Cycle Catalyst”
Then
- Dynastic Cycle: Counts toward the situation's next phase: “Grand Secretariat's Autonomy Dynastic Cycle Catalyst”
- The imprisonment target:
If
Then
If
Then
If
- Does not have the target char as grudge
Then
Otherwise
- Opinion: Grudge Exacerbated (-20)
Else if
Then
Otherwise
If
can_set_relation_potential_rival_trigger = { CHARACTER = scope:target_char }
Then
set_relation_potential_rival = scope:target_char
If
NOT = { scope:rival_opinion = 0 }
Then
If
- The target char: Is played by the AI
Then
- The target char gains the opinion “Hatred” of them
- Opinion: Hatred
- Opinion: In Prison
- The imprisonment target:
If
- The imprisoner: Is not a landless ruler
- The imprisonment target:
One of these
All of these
- Is a ruler
One of these
- Cannot play landless rulers without having an Estate
or
or
… (more in the script below)
or
… (more in the script below)
- … (more in the script below)
If they refuse
If
- The imprisonment performer:
NOT = { has_imprisonment_reason = scope:recipient }faith.religious_head = scope:recipient
Then
- The imprisonment performer:
- Level of Devotion -1
- Gain -100 Piety
- The imprisonment performer:
If
a check the game hides
Then
If
has_imprisonment_reason = scope:recipient
Then
consume_imprisonment_reasons = scope:recipient
Otherwise
change_strife_opinion = medium_strife_gain
Else if
has_imprisonment_reason = scope:recipient
Then
Else if
One of these
NOT = { exists = scope:recipient }or
Is at war with the target
Then
- As … … a fair reason, no one will think … a Tyrant
Otherwise
- Tyranny changes
- The character you target:
- Opinion: Attempted Imprisonment
If
One of these
- Is landed
or
All of these
- they has administrative government mechanic
- Is not landed
If
a check the game hides
Then
- Their house: Has the house check as house head
- Has a domicile
or
All of these
- Their liege:
All of these
- Holds China
- Government is Celestial
- Their government has the government uses ministry budget flag
- Their liege:
or
All of these
- Is a ruler
- Government is a Theocratic-type Government
- Highest held Title is at least County Rank
Then
- You: Event char_interaction.0283
- 1 of 2 things will happen:
- 50% – If … … down › You:
- If played by a person: Crime — You are allowed to rightfully imprison …, if the opportunity presents itself
- Otherwise: Opinion: Refused Borrowed Power Demand
- Their liege:
- If played by a person: Crime — You are allowed to rightfully imprison …
- Otherwise: Opinion: Refused Borrowed Power Demand
- 50% – If … … the claim › The character you target:
start_war = { casus_belli = remove_regent_cb target = scope:actor }
- 50% – If … … down › You:
Otherwise
If
One of these
- Is landed
or
All of these
- they has administrative government mechanic
- Is not landed
If
a check the game hides
Then
- Their house: Has the house check as house head
- Has a domicile
or
or
All of these
- Is a ruler
- Government is a Theocratic-type Government
Then
depose = yesIf
If
Not all of these
- Is played by a person
- they has administrative government mechanic
- Is an Independent Ruler
- Is not landed
Then
- Must not be House Head of a Noble Family
- Is not a landless ruler
If
tgp_realm_has_ceremonial_liege_trigger = { }
Then
- You are not in the Ceremonial Monarch's Line of Succession
- If played by the AI:
If a check the game hides passes: the same again (1 line)
- … (more in the script below)
- … (more in the script below)
- … (more in the script below)
- … (more in the script below)
- … (more in the script below)
Options when sending
- Use a Hook
Events it fires: char_interaction.0282, lover.0101, char_interaction.0283, ep3_laamps.0002, char_interaction.0281
• 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) (41 lines of game script)
is_available = OR = {
is_designated_diarch = yes
AND = {
is_diarch_of_target = liege
exists = liege
}
}
is_landed_or_landless_administrative_or_theocratic = yes
liege ?= {
has_diarchy_parameter = unlock_diarch_imprison_interaction
}
is_shown = scope:actor != scope:recipient
scope:recipient = {
is_imprisoned = no
}
trigger_if = {
limit = {
scope:recipient = {
is_courtier = yes
}
}
NOT = {
scope:recipient.host = {
any_foreign_court_guest = {
this = scope:recipient
}
}
}
}
scope:actor = {
liege ?= {
basic_allowed_to_imprison_character_trigger = {
CHARACTER = scope:recipient
}
}
NOT = {
basic_allowed_to_imprison_character_trigger = {
CHARACTER = scope:recipient
}
}
}As written in game/common/character_interactions/00_diarch_interactions.txt.
Can be sent when (is_valid…) (47 lines of game script)
scope:actor = {
advanced_allowed_to_imprison_character_trigger = {
CHARACTER = scope:recipient
}
}
imprison_neutral_is_valid_showing_failures_only_triggers_trigger = yes
diarch_cannot_be_disabled_trigger = {
DIARCH = scope:actor
}
custom_tooltip = {
text = diarch_interactions.tt.you_must_be_in_a_regency_to_access
scope:actor = {
is_diarch = yes
}
}
trigger_if = {
limit = {
scope:actor = {
is_diarch = yes
}
}
scope:actor.liege = {
has_diarchy_active_parameter = unlock_diarch_imprison_interaction
}
scope:actor.liege = {
trigger_if = {
limit = {
has_realm_law_flag = imprisonment_toggle_enable
}
has_realm_law_flag = imprisonment_toggle_on
}
}
}
NOT = {
scope:actor = {
is_at_war_with = scope:actor.liege
}
}
scope:actor != scope:intermediary
scope:actor = {
custom_description = {
text = character_interactions_hostile_actions_disabled_delay
NOT = {
has_character_flag = flag_hostile_actions_disabled_delay
}
}
}As written in game/common/character_interactions/00_diarch_interactions.txt.
Effects (on_send, on_accept, on_decline) (237 lines of game script)
on_send = scope:actor = {
add_character_flag = {
flag = flag_hostile_actions_disabled_delay
days = 10
}
}
on_accept = if = {
limit = {
scope:hook = yes
}
scope:actor = {
use_hook = scope:recipient
}
}
scope:actor = {
trigger_event = char_interaction.0282
}
save_scope_value_as = {
name = use_strife_not_tyranny
value = yes
}
diarch_imprison_general_accept_effect = yes
debug_log = debug_log.diarch_imprison.accepted
scope:actor = {
diarch_interaction_set_or_update_global_variable_effect = {
VARIABLE = di_track_imprison_accept
}
diarch_interaction_add_to_global_list_effect = {
VARIABLE_LIST = di_track_imprison_accept_actor_list
}
}
scope:recipient = {
diarch_interaction_add_to_global_list_effect = {
VARIABLE_LIST = di_track_imprison_accept_recipient_list
}
}
scope:intermediary = {
diarch_interaction_add_to_global_list_effect = {
VARIABLE_LIST = di_track_imprison_accept_intermediary_list
}
}
on_decline = scope:actor = {
save_scope_as = use_strife_not_tyranny
imprison_HoF_consequences_effect = yes
imprison_tyranny_effect = yes
}
scope:recipient = {
add_opinion = {
target = scope:actor
modifier = attempted_imprisonment_opinion
}
if = {
limit = {
is_landed_or_landless_administrative_or_theocratic = yes
highest_held_title_tier >= tier_county
}
scope:actor = {
trigger_event = char_interaction.0283
}
show_as_tooltip = {
random_list = {
50 = {
show_chance = no
desc = char_interaction.0263.result.criminal
diarch_declare_recipient_criminal_effect = yes
}
50 = {
trigger = {
scope:actor = {
is_landed = yes
}
}
show_chance = no
desc = char_interaction.0263.result.war
scope:recipient = {
start_war = {
casus_belli = remove_regent_cb
target = scope:actor
}
}
}
}
}
}
else = {
if = {
limit = {
is_councillor_of = scope:actor
can_be_fired_from_council_trigger = {
COURT_OWNER = scope:actor
}
}
set_variable = {
name = escaped_imprisonment_from
value = scope:actor
years = 20
}
}
if = {
limit = {
is_landed_or_landless_administrative_or_theocratic = yes
}
depose_effect = {
DEPOSER = scope:actor
}
}
if = {
limit = {
is_playable_character = no
trigger_if = {
limit = {
is_councillor = yes
}
can_be_fired_from_council_trigger = {
COURT_OWNER = scope:recipient.liege
}
}
trigger_if = {
limit = {
exists = scope:actor.faith.religious_head
}
scope:actor.faith.religious_head != scope:recipient
}
}
custom_tooltip = deposed_and_become_wanderer
select_and_move_to_pool_effect = yes
}
add_opinion = {
target = scope:actor
modifier = attempted_imprisonment_opinion
}
}
}
scope:actor = {
if = {
limit = {
any_courtier = {
has_relation_guardian = scope:recipient
}
}
every_courtier = {
limit = {
has_relation_guardian = scope:recipient
}
save_scope_as = ward
remove_guardian_effect = {
GUARDIAN = scope:recipient
WARD = scope:ward
RETURN_WARD = yes
HIDE_OPINION = no
}
add_to_list = ward_children
}
}
if = {
limit = {
any_courtier = {
has_relation_ward = scope:recipient
}
}
random_courtier = {
limit = {
has_relation_ward = scope:recipient
}
save_scope_as = guardian
show_as_tooltip = {
remove_guardian_effect = {
GUARDIAN = scope:guardian
WARD = scope:recipient
RETURN_WARD = yes
HIDE_OPINION = no
}
}
add_to_list = guardian_list
}
hidden_effect = {
scope:guardian = {
send_interface_message = {
type = event_childhood_neutral
title = remove_guardian_interaction_notification
left_icon = scope:recipient
right_icon = scope:guardian
remove_guardian_effect = {
GUARDIAN = scope:guardian
WARD = scope:recipient
RETURN_WARD = yes
HIDE_OPINION = no
}
}
}
}
}
}
scope:actor = {
if = {
limit = {
scope:recipient = {
OR = {
is_playable_character = no
AND = {
is_landed_or_landless_administrative_or_theocratic = yes
primary_title.tier = tier_barony
}
}
}
}
trigger_event = char_interaction.0230
}
}
if = {
limit = {
scope:actor = {
has_character_flag = flag_hostile_actions_disabled_delay
}
}
scope:actor = {
remove_character_flag = flag_hostile_actions_disabled_delay
}
}
debug_log = debug_log.diarch_imprison.rejected
scope:actor = {
diarch_interaction_set_or_update_global_variable_effect = {
VARIABLE = di_track_imprison_decline
}
diarch_interaction_add_to_global_list_effect = {
VARIABLE_LIST = di_track_imprison_decline_actor_list
}
}
scope:recipient = {
diarch_interaction_add_to_global_list_effect = {
VARIABLE_LIST = di_track_imprison_decline_recipient_list
}
}
scope:intermediary = {
diarch_interaction_add_to_global_list_effect = {
VARIABLE_LIST = di_track_imprison_decline_int
# … (cut here; the rest is in the file)As written in game/common/character_interactions/00_diarch_interactions.txt.
- Category
- Diarch
- Cooldown
- 1 year
- Again on the same character
- after 3 years
- In the menu
- under More…
- ID
diarch_imprison_interaction
Source: game/common/character_interactions/00_diarch_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. “…” marks words the game fills in at play time (a name, a title).