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

Interaction · Hostile actions

Imprison

variesPrestigevariesTreasuryAccepted automatically in some cases; otherwise the AI weighs it

Attempt to Imprison the recipient

What you need

You

To send it

  • If

    • Holds Ministry of Justice
    • The character you target:
      • Not all of these

        • Their liege:
          • Holds China
          • Government is Celestial
          • Their government has the government uses ministry budget flag
        • One of these

    • None of these

      • All of these

        • All of these

          • 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

              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 }
        • 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 court
              • or

                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

    Then

    • Your top liege:
      • 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

          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 }
      • 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 court
          • or

            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

    Otherwise

    • 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

        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 }
    • 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 court
        • or

          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
  • If your Government is Nomadic: Does NOT have the Unruly Nomads Law
  • If holds Ministry of Justice › The character you target:
    • NOT = { is_close_or_extended_family_of = scope:puppet_or_actor.top_liege }
  • Your liege:
  • You: Is not imprisoned
  • If

    • You are you

    Then

    • … cannot take overt hostile actions against … Diarch

    Otherwise

    • … cannot take overt hostile actions against … Diarch
  • In some cases (on a condition the game doesn't show): … (more in the script below)
  • … (more in the script below)

To see it in the menu

  • One of these

    • All of these

      • Holds Ministry of Justice
      • The character you target:
        • Not all of these

          • Their liege:
            • All of these

              • Holds China
              • Government is Celestial
              • Their government has the government uses ministry budget flag
          • One of these

        • Their liege:
          • 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 court
                • or

                  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
    • or

      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 court
          • or

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

    • Is played by the AI
    • NOT = { puppeteer ?= { is_ai = no } }

    Then

    • If

      • has_realm_law_flag = imprisonment_toggle_enable

      Then

      • has_realm_law_flag = imprisonment_toggle_on
    • Is not imprisoned
  • If

    • The character you target: Is a courtier of you

    Then

    • None of these

      • The target’s host › Any foreign court guest: Is the target

Imprison is a hostile character interaction in Crusader Kings III. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include The recipient has a Personal Tenet that makes them harder to imprison (-25), Legalism (+25), Clergy acting towards a secular Ruler (+20) and 17 more. It costs Prestige (varies), Treasury (varies). Patch 1.20.1.2, from game/common/character_interactions/00_prison_interactions.txt.

for a guide, post or blog
Quick answers (2)
How do I get the AI to accept Imprison?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: The recipient has a Personal Tenet that makes them harder to imprison -25, Legalism +25, Clergy acting towards a secular Ruler +20, Relative Level of Devotion, Your Learning and Personal Tenet, 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, You seek… sacrificial victims +25, The recipient is your Child +200, The recipient is backed by a faction -70, Rank Difference, Intimidated by you, Terrified of you, 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, Legalistic Customs +20, Your Acclaimed Knight is intimidating +15, Your Acclaimed Knight is very intimidating +25, Wants to decrease House Unity, Indomitable Azatani -25 and Cowed Detractor: Imprisonment +10.
How much does Imprison cost?
Prestige (varies), Treasury (varies) (patch 1.20.1.2).

Will they accept?

Accepted automatically when:

  • If

    Then

    Else if

    • The character you target:

    Then

    • They are not Landed and are powerless before your inexolerable authority

    Otherwise

    • Never

Otherwise 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.

ReasonAmount
Base0
The recipient has a Personal Tenet that makes them harder to imprison
when
  • The character you target: The Personal Tenets unlock tenet false conversion sanction elusive
-25
Legalism
when
+25
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
Your Learning and Personal Tenet
when
  • Your Personal Tenets unlock tenet religious law imprisonment bonus
  • has_imprisonment_reason = scope:recipient
your learning × 2
Your Intrigueyour intrigue × 1
The recipient's Intriguetheir intrigue × -2
Hook used
when
+30
… Opinion of …varies
Their personality (AI values: boldness (scripted), honor (scripted))varies
Refusal is Treason
when
  • Any vassal or below:
  • has_realm_law_flag = vassal_refusal_is_treason
+20
Prison-Feudal Complex
when
+50
The recipient … of the … Tier
when
-40
The recipient is not a Ruler
when
  • The character you target: Is not a ruler
+50
You seek… sacrificial victims
when
  • Your Personal Tenets unlock tenet human sacrifice courtier imprisonment chance
  • The character you target: Is not a ruler
+25
The recipient is your Child
when
  • The character you target:
    • Is a child of you
    • Is a courtier of you
    • Is a child
+200
The recipient is backed by a faction
when
  • One of these

    • Any targeting faction:
      • faction_type = claimant_faction
      • faction_is_at_war = yes
      • special_character ?= scope:recipient
    • or

      All of these

      • exists = var:claimant_faction_sent_demand
      • Claimant faction sent demand is scope:recipient
-70
Rank Difference
when
  • The character you target:
varies
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_halved_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_halved_reason_value
Intimidated by you
when
  • The character you target:
    • Is not a vassal (or below) of you
    • has_dread_level_towards = { target = scope:puppet_or_actor level = 1 }
intimidated_external_reason_value
Terrified of you
when
  • The character you target:
    • Is not a vassal (or below) of you
    • has_dread_level_towards = { target = scope:puppet_or_actor level = 2 }
cowed_external_reason_value
Difference in your Military Strength (max +20)
when
  • Is a ruler
  • The character you target: Is a ruler
varies
They is your Rival
when
  • The character you target:
    • Has you as rival
    • Does not have you as nemesis
-50
They is your Nemesis
when
  • The character you target: Has you as nemesis
-100
Your Court Grandeur
when
  • Have a Royal Court
  • is_liege_or_above_of = scope:recipient
  • Court grandeur current level at least 7
  • Court grandeur current level less than 9
+10
Your Court Grandeur
when
  • Have a Royal Court
  • is_liege_or_above_of = scope:recipient
  • Court grandeur current level at least 9
+20
Legalistic Customs
when
+20
A scripted reason
when
  • Is played by the AI
  • One of these

  • The character you target: Is played by the AI
+500
Your Acclaimed Knight is intimidating
when
  • Any active accolade:
    • accolade_parameter = accolade_imprisonment_chance
+15
Your Acclaimed Knight is very intimidating
when
  • Any active accolade:
    • accolade_parameter = accolade_imprisonment_chance_high
+25
Wants to decrease House Unity
when
varies
Indomitable Azatani
when
-25
Cowed Detractor: Imprisonment
when
+10
Acceptance (ai_accept) (269 lines of game script)
base = 0
modifier = {
	add = -25
	scope:recipient = {
		has_personal_tenet_flag = tenet_false_conversion_sanction_elusive
	}
	desc = SANCTIONED_FALSE_CONVERSION_IMPRISONMENT_RESISTANCE
}
legalism_lawful_authority_acceptance_modifier = {
	ACTOR = scope:puppet_or_actor
}
celestial_hierarchy_acceptance_modifier = {
	ACTOR = scope:puppet_or_actor
	RECIPIENT = scope:recipient
}
modifier = {
	add = {
		value = scope:puppet_or_actor.learning
		multiply = 2
	}
	scope:puppet_or_actor = {
		has_personal_tenet_flag = tenet_religious_law_imprisonment_bonus
		has_imprisonment_reason = scope:recipient
	}
	desc = RELIGIOUS_LAW_IMPRISONMENT_LEARNING_REASON
}
modifier = {
	add = {
		value = scope:puppet_or_actor.intrigue
		multiply = 1
	}
	desc = IMPRISON_INTRIGUE_ACTOR
}
modifier = {
	add = {
		value = scope:recipient.intrigue
		multiply = -2
	}
	desc = IMPRISON_INTRIGUE_RECIPIENT
}
modifier = {
	add = 30
	scope:hook = yes
	desc = SCHEME_HOOK_USED
}
opinion_modifier = {
	who = scope:recipient
	opinion_target = scope:puppet_or_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
		}
	}
	ai_honor = {
		if = {
			limit = {
				scope:recipient = {
					ai_honor > 0
				}
				scope:puppet_or_actor = {
					has_imprisonment_reason = scope:recipient
					has_realm_law_flag = vassal_refusal_is_treason
				}
			}
			value = 0.75
		}
	}
}
modifier = {
	add = 20
	scope:puppet_or_actor = {
		any_vassal_or_below = {
			this = scope:recipient
		}
		has_realm_law_flag = vassal_refusal_is_treason
	}
	desc = AI_REFUSAL_IS_TREASON
}
modifier = {
	add = 50
	scope:puppet_or_actor = {
		has_perk = prison_feudal_complex_perk
	}
	desc = AI_PRISON_FEUDAL_COMPLEX_PERK
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_hightier_tt
	scope:recipient = {
		highest_held_title_tier = tier_kingdom
	}
	add = -40
}
modifier = {
	desc = AI_REFUSAL_COURTIER
	scope:recipient = {
		is_ruler = no
	}
	add = 50
}
modifier = {
	desc = AI_REFUSAL_HUMAN_SACRIFICE_COURTIER
	scope:puppet_or_actor = {
		has_personal_tenet_flag = tenet_human_sacrifice_courtier_imprisonment_chance
	}
	scope:recipient = {
		is_ruler = no
	}
	add = 25
}
modifier = {
	desc = AI_REFUSAL_YOUNG_CHILD
	scope:recipient = {
		is_child_of = scope:puppet_or_actor
		is_courtier_of = scope:puppet_or_actor
		is_adult = no
	}
	add = 200
}
modifier = {
	desc = AI_CLAIMANT_PENALTY
	scope:puppet_or_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
			}
		}
	}
	add = -70
}
modifier = {
	desc = AI_REFUSAL_RANK_DIFFERENCE
	scope:recipient = {
		is_ruler = yes
		is_landed = yes
		highest_held_title_tier < tier_kingdom
	}
	add = {
		value = -15
		if = {
			limit = {
				scope:puppet_or_actor = {
					tier_difference = {
						target = scope:recipient
						value >= 2
					}
				}
			}
			add = 5
		}
		if = {
			limit = {
				scope:puppet_or_actor = {
					tier_difference = {
						target = scope:recipient
						value >= 3
					}
				}
			}
			add = 5
		}
		if = {
			limit = {
				scope:puppet_or_actor = {
					tier_difference = {
						target = scope:recipient
						value >= 4
					}
				}
			}
			add = 10
		}
	}
}
modifier = {
	add = intimidated_halved_reason_value
	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_halved_reason_value
	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 = intimidated_external_reason_value
	scope:recipient = {
		NOT = {
			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_external_reason_value
	scope:recipient = {
		NOT = {
			target_is_liege_or_above = scope:puppet_or_actor
		}
		has_dread_level_towards = {
			target = scope:puppet_or_actor
			level = 2
		}
	}
	desc = COWED_REASON
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_power_tt
	trigger = {
		scope:puppet_or_actor = {
			is_ruler = yes
		}
		scope:recipient = {
			is_ruler = yes
		}
	}
	add = {
		value = 1
		subtract = {
			value = scope:recipient.current_military_strength
			divide = {
				value = scope:puppet_or_actor.current_military_strength
				min = 1
			}
		}
		multiply = 100
		min = -1000
		max = 20
	}
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_rival_tt
	trigger = {
		scope:recipient = {
			has_relation_rival = scope:puppet_or_a
# … (cut here; the rest is in the file)

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

What happens

If they accept

  • In some cases (on a condition the game doesn't show) › You:
    • If liege diarchy surcharge interaction imprison interaction more than 0:
      • add_prestige = { … }
    • If

      • Holds Ministry of Justice
      • The character you target: Is not a courtier of you

      Then

      • remove_treasury = scope:puppet_or_actor.major_treasury_value
  • If holds Ministry of Justice:
    • If

      • None of these

        • has_imprisonment_reason = scope:recipient
        • The target’s liege:
          • has_imprisonment_reason = scope:recipient
        • You use a Hook
      • Any character situation:

      Then

    • If government allows: merit:
      • change_merit = { value = minor_merit_gain multiply = scope:recipient.highest_held_title_tier }
    • If your Government uses Influence:
      • change_influence = { value = minor_influence_gain multiply = scope:recipient.highest_held_title_tier }
    • The target’s liege:
      • If

        • has_imprisonment_reason = scope:recipient

        Then

        • consume_imprisonment_reasons = scope:recipient
  • If

    Then

    • You: Use a Hook on the target
  • You:
    • If

      • NOT = { has_imprisonment_reason = scope:recipient }

      Then

      • If

        • One of these

          • Is the target’s spouse
          • or

            Is close family of the target
          • or

            The character you target:
            • One of these

              • Highest held Title is at least Kingdom Rank
              • or

                All of these

                • Their liege: Highest held Title is at least Kingdom Rank
                • One of these

                  • is_close_family_of = this.liege
                  • or

                    is_spouse_of = this.liege

        Then

        • Dread +20

        Else if

        • One of these

          • The character you target:
            • One of these

              • Highest held Title is exactly Duchy Rank
              • or

                All of these

                • Their liege: Highest held Title is exactly Duchy Rank
                • One of these

                  • is_close_family_of = this.liege
                  • or

                    is_spouse_of = this.liege
          • or

            The character you target:
            • One of these

              • Highest held Title is exactly County Rank
              • or

                All of these

                • Their liege: Highest held Title is exactly County Rank
                • One of these

                  • is_close_family_of = this.liege
                  • or

                    is_spouse_of = this.liege

        Then

        • Dread +10
  • If

    • The imprisonment performer:
      • NOT = { has_imprisonment_reason = scope:recipient }
    • The character you target:
      • has_council_position = councillor_court_chaplain

    Then

    • If

      • The character you target:
        • They can be fired from … Council
        • If

          • has_council_position = councillor_court_chaplain
          • Their liege:
            • tgp_has_access_to_ministry_trigger = { }

          Then

      Then

      • The imprisonment performer:
        • fire_councillor = scope:recipient
    • The imprisonment performer: Level of Devotion -1
    • If

      a check the game hides

      Then

      • The imprisonment performer’s faith’s religious head: Opinion: Respect (-30)
  • If

    • The imprisonment performer:
      • NOT = { has_imprisonment_reason = scope:recipient }
      • faith.religious_head = scope:recipient

    Then

  • The imprisonment target:
    • If

      Then

      • If

        • The target char: Highest held Title is more than Barony Rank
        • One of these

          • Highest held Title is at most Barony Rank
          • or

            highest_held_title_tier <= { value = scope:target_char.highest_held_title_tier subtract = 3 }
        • … (more in the script below)
      • … (more in the script below)
    • … (more in the script below)
  • … (more in the script below)

When it is accepted automatically

If they refuse

  • If

    • The character you target: Is close family of you
    • If

      • You:
        • has_imprisonment_reason = scope:recipient

      Then

      • The character you target:

      Otherwise

    Then

    • The character you target:
      • If

        • The target char: Highest held Title is more than Barony Rank
        • One of these

          • Highest held Title is at most Barony Rank
          • or

            highest_held_title_tier <= { value = scope:target_char.highest_held_title_tier subtract = 3 }
        • None of these

          • Is family of the target char
          • Is the target char’s consort
          • Any heir title:
            • tier >= { value = scope:target_char.highest_held_title_tier subtract = 2 }

        Then

        • If

          • Does not have the target char as grudge

          Then

          • If a check the game hides passes: the same again (1 line)
            Else if a check the game hides passes: the same again (1 line)
            Else if a check the game hides passes: the same again (1 line)

            Otherwise

          Otherwise

          • Opinion: Grudge Exacerbated (-20)

        Else if

        • Has the target char as potential rival
        • Is an Adult
        • The target char: Is an Adult
        • Does not have the target char as friend
        • Does not have the target char as best friend
        • Does not have the target char as rival
        • Does not have the target char as nemesis

        Then

        • If a check the game hides passes: the same again (1 line)
          Else if a check the game hides passes: the same again (1 line)
          Else if a check the game hides passes: the same again (1 line)

          Otherwise

        Otherwise

        • If

          • Does not have the target char as friend
          • Does not have the target char as best friend
          • Does not have the target char as rival
          • Does not have the target char as nemesis
          • Does not have the target char as potential rival

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

    • You: Does not hold Ministry of Justice

    Then

    • If

      Then

      • The character you target:
        • If current military strength at least 100:
          • start_war = { cb = ep3_laamp_apprehend_adventurer_cb target = scope:puppet_or_actor }
        • Otherwise:
          • If

            • The province effect’s county’s holder:
              • is_laamp_exiled_from_holder_or_liege_trigger = { LAAMP = scope:laamp_effect }

            Then

            • The laamp effect:
              • domicile.domicile_location.county.holder = { … }
              • If a check the game hides passes: the same again (1 line)
                • domicile.domicile_location.county.holder = { … }
              • If played by the AI:
              • Sets out on a journey (a travel plan)

      Otherwise

      • You:
        • If

          • The imprisonment performer:
            • NOT = { has_imprisonment_reason = scope:recipient }
            • faith.religious_head = scope:recipient

          Then

        • 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

          • … … a known Criminal (…), allowing … to imprison … without being viewed as a Tyrant

          Else if

          • One of these

            • NOT = { exists = scope:recipient }
            • or

              Is at war with the target
        • … (more in the script below)
      • … (more in the script below)
    • … (more in the script below)

Options when sending

  • Use a Hook

Events it fires: lover.0101, char_interaction.0231, faction_demand.9001, char_interaction.0232, ep3_laamps.0002, bp2_hostage_system.0400, bp2_hostage_system.0401, char_interaction.0233

• 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) (50 lines of game script)
is_shown = scope:puppet_or_actor ?= {
	this != scope:recipient
	OR = {
		AND = {
			has_title = title:e_minister_of_justice
			scope:recipient = {
				tgp_is_any_minister = no
				liege ?= {
					basic_allowed_to_imprison_character_trigger = {
						CHARACTER = scope:recipient
					}
				}
			}
		}
		basic_allowed_to_imprison_character_trigger = {
			CHARACTER = scope:recipient
		}
	}
	trigger_if = {
		limit = {
			is_ai = yes
			NOT = {
				puppeteer ?= {
					is_ai = no
				}
			}
		}
		trigger_if = {
			limit = {
				has_realm_law_flag = imprisonment_toggle_enable
			}
			has_realm_law_flag = imprisonment_toggle_on
		}
		is_imprisoned = no
	}
}
trigger_if = {
	limit = {
		scope:recipient = {
			is_courtier_of = scope:puppet_or_actor
		}
	}
	NOT = {
		scope:recipient.host = {
			any_foreign_court_guest = {
				this = scope:recipient
			}
		}
	}
}

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

Can be sent when (is_valid…) (129 lines of game script)
scope:puppet_or_actor = {
	trigger_if = {
		limit = {
			has_title = title:e_minister_of_justice
			scope:recipient = {
				tgp_is_any_minister = no
			}
			NOT = {
				allowed_to_imprison_character_trigger = {
					CHARACTER = scope:recipient
				}
			}
		}
		top_liege = {
			allowed_to_imprison_character_trigger = {
				CHARACTER = scope:recipient
			}
		}
	}
	trigger_else = {
		allowed_to_imprison_character_trigger = {
			CHARACTER = scope:recipient
		}
	}
	trigger_if = {
		limit = {
			government_has_flag = government_is_nomadic
		}
		NOT = {
			has_realm_law = nomadic_authority_1
		}
	}
	trigger_if = {
		limit = {
			has_title = title:e_minister_of_justice
		}
		scope:recipient = {
			NOT = {
				is_close_or_extended_family_of = scope:puppet_or_actor.top_liege
			}
		}
	}
}
imprison_neutral_is_valid_showing_failures_only_triggers_trigger = yes
trigger_if = {
	limit = {
		scope:actor = scope:puppet_or_actor
	}
	custom_tooltip = {
		text = cannot_take_overt_hostile_actions_against_diarch.tt
		NOT = {
			scope:recipient ?= scope:puppet_or_actor.diarch
		}
	}
}
trigger_else = {
	custom_tooltip = {
		text = cannot_take_overt_hostile_actions_against_diarch.tt_puppeteer
		NOT = {
			scope:recipient ?= scope:puppet_or_actor.diarch
		}
	}
}
trigger_if = {
	limit = {
		scope:is_puppet_action ?= yes
	}
	scope:puppet_or_actor = {
		prestige >= liege_diarchy_surcharge_interaction_imprison_interaction_value
	}
}
trigger_if = {
	limit = {
		scope:is_puppet_action ?= yes
	}
	scope:puppet_or_actor = {
		treasury >= {
			value = 0
			if = {
				limit = {
					scope:puppet_or_actor = {
						has_title = title:e_minister_of_justice
					}
					scope:recipient = {
						NOT = {
							is_courtier_of = scope:puppet_or_actor
						}
					}
				}
				add = scope:puppet_or_actor.major_treasury_value
			}
		}
	}
}
scope:puppet_or_actor = {
	custom_description = {
		text = character_interactions_hostile_actions_disabled_delay
		NOT = {
			has_character_flag = flag_hostile_actions_disabled_delay
		}
	}
	trigger_if = {
		limit = {
			scope:actor = {
				is_ai = no
			}
		}
		scope:recipient = {
			trigger_if = {
				limit = {
					has_government = landless_adventurer_government
					reverse_has_opinion_modifier = {
						target = scope:puppet_or_actor
						modifier = eviction_ignored_opinion
					}
				}
				is_travelling = no
			}
		}
	}
	trigger_else = {
		OR = {
			has_imprisonment_reason = scope:recipient
			any_character_struggle = {
				involvement = involved
			}
		}
	}
}

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

Effects (on_send, on_accept, on_decline) (232 lines of game script)
on_send = scope:puppet_or_actor = {
	add_character_flag = {
		flag = flag_hostile_actions_disabled_delay
		days = 10
	}
}
on_accept = if = {
	limit = {
		scope:is_puppet_action ?= yes
	}
	scope:puppet_or_actor = {
		if = {
			limit = {
				liege_diarchy_surcharge_interaction_imprison_interaction_value > 0
			}
			add_prestige = {
				value = {
					add = liege_diarchy_surcharge_interaction_imprison_interaction_value
					max = prestige
					multiply = -1
				}
			}
		}
		if = {
			limit = {
				has_title = title:e_minister_of_justice
				scope:recipient = {
					NOT = {
						is_courtier_of = scope:puppet_or_actor
					}
				}
			}
			remove_treasury = scope:puppet_or_actor.major_treasury_value
		}
	}
}
scope:puppet_or_actor = {
	if = {
		limit = {
			has_title = title:e_minister_of_justice
		}
		if = {
			limit = {
				NOR = {
					has_imprisonment_reason = scope:recipient
					scope:recipient.liege = {
						has_imprisonment_reason = scope:recipient
					}
					scope:hook = yes
				}
				any_character_situation = {
					situation_type = dynastic_cycle
					situation_top_has_catalyst = catalyst_minister_imprison
				}
			}
			save_scope_value_as = {
				name = use_strife_not_tyranny
				value = yes
			}
			situation:dynastic_cycle = {
				trigger_situation_catalyst = {
					catalyst = catalyst_minister_imprison
					character = scope:recipient
				}
			}
		}
		if = {
			limit = {
				government_allows = merit
			}
			change_merit = {
				value = minor_merit_gain
				multiply = scope:recipient.highest_held_title_tier
			}
		}
		if = {
			limit = {
				government_has_flag = government_has_influence
			}
			change_influence = {
				value = minor_influence_gain
				multiply = scope:recipient.highest_held_title_tier
			}
		}
		scope:recipient.liege = {
			if = {
				limit = {
					has_imprisonment_reason = scope:recipient
				}
				consume_imprisonment_reasons = scope:recipient
			}
		}
	}
}
if = {
	limit = {
		scope:hook = yes
	}
	scope:puppet_or_actor = {
		use_hook = scope:recipient
	}
}
illegal_imprisonment_dread_effect = yes
imprison_court_chaplain_consequences_effect = yes
imprison_HoF_consequences_effect = yes
scope:recipient = {
	if = {
		limit = {
			is_a_faction_member = yes
			liege = scope:puppet_or_actor
		}
		joined_faction = {
			save_scope_as = retaliating_faction
		}
	}
}
imprison_character_effect = {
	TARGET = scope:recipient
	IMPRISONER = scope:puppet_or_actor
}
imprison_attempt_escalates_rivalry_effect = yes
scope:puppet_or_actor = {
	trigger_event = char_interaction.0231
	if = {
		limit = {
			has_imprisonment_reason = scope:recipient
		}
		stress_and_fulfillment_impact = {
			compassionate = minor_stress_impact_gain
			forgiving = minor_stress_impact_gain
		}
	}
	else = {
		stress_and_fulfillment_impact = {
			just = medium_stress_impact_gain
			compassionate = medium_stress_impact_gain
		}
		if = {
			limit = {
				exists = scope:retaliating_faction
			}
			scope:retaliating_faction = {
				imprisonment_retribution_start_faction_war_if_valid = yes
			}
		}
	}
}
if = {
	limit = {
		scope:puppet_or_actor = {
			has_character_flag = flag_hostile_actions_disabled_delay
		}
	}
	scope:puppet_or_actor = {
		remove_character_flag = flag_hostile_actions_disabled_delay
	}
}
if = {
	limit = {
		NOT = {
			scope:puppet_or_actor = {
				has_imprisonment_reason = scope:recipient
			}
		}
		scope:recipient = {
			is_landed_or_landless_administrative_or_theocratic = yes
		}
	}
	add_clan_unity_interaction_effect = {
		CHARACTER = scope:puppet_or_actor
		TARGET = scope:recipient
		VALUE = major_unity_loss
		DESC = clan_unity_imprison.desc
		REVERSE_NON_HOUSE_TARGET = no
	}
}
else_if = {
	limit = {
		NOT = {
			scope:puppet_or_actor = {
				has_imprisonment_reason = scope:recipient
			}
		}
		scope:recipient = {
			is_landed_or_landless_administrative_or_theocratic = no
		}
	}
	add_clan_unity_interaction_effect = {
		CHARACTER = scope:puppet_or_actor
		TARGET = scope:recipient
		VALUE = medium_unity_loss
		DESC = clan_unity_imprison.desc
		REVERSE_NON_HOUSE_TARGET = no
	}
}
else = {
	add_clan_unity_interaction_effect = {
		CHARACTER = scope:puppet_or_actor
		TARGET = scope:recipient
		VALUE = minor_unity_loss
		DESC = clan_unity_imprison.desc
		REVERSE_NON_HOUSE_TARGET = no
	}
}
scope:puppet_or_actor = {
	if = {
		limit = {
			character_is_valid_for_harrying_of_the_north_trigger = yes
			scope:recipient = {
				character_is_valid_for_harrying_of_the_north_trigger = yes
				is_important_or_vip_struggle_character = yes
			}
			culture != scope:recipient.culture
		}
		global_var:harrying_of_the_north = {
			save_scope_as = story
		}
		if = {
			limit = {
				character_is_valid_norman_for_harrying_of_the_north_trigger = yes
				scope:recipient = {
					character_is_valid_anglo_saxon_for_harrying_of_the_north_trigger = yes
				}
			}
			ep3_increase_pacification_effect = {
				AMOUNT = harrying_minor_increase_value
			}
		}
		else_if = {
			limit = {
				character_is_valid_anglo_saxon_for_harrying_of_the_north_t
# … (cut here; the rest is in the file)

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

Category
Hostile actions
Cost: Prestige
varies
Cost: Treasury
varies
In the menu
main list
ID
imprison_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?