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

Negotiate Release

variesPrestigeAccepted automatically in some cases; otherwise the AI weighs it

Negotiate the release of the recipient from your Prison

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
  • … is currently being purged

To see it in the menu

  • If

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

    Then

    • has_prisoners = yes

The character you target

  • Is imprisoned by you

Negotiate Release 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 wants Freedom (+100), The recipient is Ambitious (-20) and 28 more. It costs Prestige (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 Negotiate Release?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Clergy acting towards a secular Ruler +20, Relative Level of Devotion, They wants Freedom +100, The recipient is Ambitious -20, The recipient … a Head of Rite -120, The recipient will never convert willingly -1,500, They is reluctant to Convert -20, They is reluctant to Convert, They will lose Claims -25, They will lose Claims -50, They will lose Claims -75, They will lose Claims -95, They will be stained by the trade of Execution -50, They fears Banishment -50, Legalistic Customs +20, Reluctant to give Hook, They is reluctant to become a Monk -30, They is Lustful -30, They is Rakish -30, They is a Fornicator -30, They is a Seducer -30, They is a Deviant -30, They has Sinful Traits, They is Cynical -30, They is reluctant to be Recruited -10, They doesn't want to become Difigured, They doesn't want to become Difigured -75, They doesn't want to become Blind -100, They doesn't want to become Blind -75, They doesn't want to be Castrated -75, They doesn't want to be Castrated -100, They has no Children and doesn't want to be Castrated -100, They is Lustful -100, They is reluctant to becoming Bureaucratic -20, They is reluctant to becoming Bureaucratic -50 and They is reluctant to becoming Bureaucratic -100.
How much does Negotiate Release cost?
Prestige (varies) (patch 1.20.1.2).

Will they accept?

Accepted automatically when:

  • The option “demand conversion” is not chosen
  • The option “renounce claims” is not chosen
  • The option “banish” is not chosen
  • The option “gain hook” is not chosen
  • The option “take vows” is not chosen
  • The option “recruit” is not chosen
  • The option “disfigure” is not chosen
  • The option “blind” is not chosen
  • The option “castrate” is not chosen
  • The option “demand admin” is not chosen
  • The option “become executioner” is not chosen
  • The option “change prison” is not chosen
  • The option “make puppet” is not chosen

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 wants Freedom+100
The recipient is Ambitious
when
-20
The recipient … a Head of Rite
when
  • The character you target:
    • rite.head_of_rite ?= this
-120
The recipient will never convert willingly
when
  • The option “demand conversion” is chosen
-1,500
They is reluctant to Convert
when
  • The option “demand conversion” is chosen
  • The character you target: Ai zeal at most 20
-20
They is reluctant to Convert
when
  • The option “demand conversion” is chosen
  • The character you target: Ai zeal more than 20
varies
They will lose Claims
when
  • The option “renounce claims” is chosen
  • Ai greed less than 0
-25
They will lose Claims
when
  • The option “renounce claims” is chosen
  • Ai greed at least 0
  • Ai greed less than 26
-50
They will lose Claims
when
  • The option “renounce claims” is chosen
  • Ai greed at least 26
  • Ai greed less than 51
-75
They will lose Claims
when
  • The option “renounce claims” is chosen
  • Ai greed at least 51
-95
They will be stained by the trade of Execution
when
-50
They fears Banishment
when
  • The option “banish” is chosen
  • None of these

    • You:
-50
Legalistic Customs
when
  • The option “banish” is chosen
  • has_imprisonment_reason = scope:recipient
  • Your culture: The Culture has the Vassal acceptance of rightful Criminal punishments: +20 Tradition
+20
Reluctant to give Hook
when
  • The option “gain hook” is chosen
varies
They is reluctant to become a Monk
when
  • The option “take vows” is chosen
-30
They is Lustful
when
  • The option “take vows” is chosen
  • Has the Trait: Lustful
-30
They is Rakish
when
  • The option “take vows” is chosen
  • Has the Trait: Rakish
-30
They is a Fornicator
when
-30
They is a Seducer
when
  • The option “take vows” is chosen
  • Has the Trait: Seducer
-30
They is a Deviant
when
  • The option “take vows” is chosen
  • Has the Trait: Deviant
-30
They has Sinful Traits
when
  • The option “take vows” is chosen
  • Num sinful traits more than 1
varies
They is Cynical
when
  • The option “take vows” is chosen
  • Has the Trait: Cynical
-30
They is reluctant to be Recruited
when
-10
They doesn't want to become Difigured
when
varies
They doesn't want to become Difigured
when
-75
They doesn't want to become Blind
when
-100
They doesn't want to become Blind
when
-75
They doesn't want to be Castrated
when
  • The option “castrate” is chosen
  • Child (more than 0):
  • Ai boldness less than -50
-75
They doesn't want to be Castrated
when
  • The option “castrate” is chosen
  • Child (more than 0):
  • Ai boldness at least -50
-100
They has no Children and doesn't want to be Castrated
when
  • The option “castrate” is chosen
  • Child (at most 0):
-100
They is Lustful
when
  • The option “castrate” is chosen
  • Has the Trait: Lustful
-100
They is reluctant to becoming Bureaucratic
when
  • The option “demand admin” is chosen
  • One of these

    • Your culture:
      • One of these

        • One of these

          • One of these

            • this = culture:greek
            • or

              Any parent culture or above:
              • this = culture:greek
          • or

            One of these

            • this = culture:han
            • or

              Any parent culture or above:
              • this = culture:han
          • or

            One of these

            • this = culture:baekje
            • or

              Any parent culture or above:
              • this = culture:baekje
          • or

            One of these

            • this = culture:goguryeo
            • or

              Any parent culture or above:
              • this = culture:goguryeo
          • or

            One of these

            • this = culture:silla
            • or

              Any parent culture or above:
              • this = culture:silla
          • or

            One of these

            • this = culture:viet
            • or

              Any parent culture or above:
              • this = culture:viet
        • or

          The Culture has the Bureaucratic Cultural Pillar
    • or

      you has administrative government mechanic
-20
They is reluctant to becoming Bureaucratic-50
They is reluctant to becoming Bureaucratic-100
A scripted reason
when
  • The option “demand conversion” is not chosen
  • The option “renounce claims” is not chosen
  • The option “banish” is not chosen
  • The option “gain hook” is not chosen
  • The option “take vows” is not chosen
  • The option “recruit” is not chosen
  • Any character struggle:
    • involvement = involved
  • The character you target › Any character struggle:
    • involvement = involved
varies
Acceptance (ai_accept) (321 lines of game script)
base = 0
celestial_hierarchy_acceptance_modifier = {
	ACTOR = scope:puppet_or_actor
	RECIPIENT = scope:recipient
}
modifier = {
	add = 100
	desc = WANTS_FREEDOM_REASON
}
modifier = {
	trigger = {
		has_trait = ambitious
	}
	add = -20
	desc = RECIPIENT_IS_AMBITIOUS
}
modifier = {
	trigger = {
		scope:recipient = {
			rite.head_of_rite ?= this
		}
	}
	add = -120
	desc = RECIPIENT_IS_HEAD_OF_RITE_REASON
}
modifier = {
	trigger = {
		scope:demand_conversion = yes
		scope:recipient = {
			has_character_flag = ai_will_not_convert
		}
	}
	add = -1500
	desc = ASK_FOR_CONVERSION_RECIPIENT_WILL_NOT_ACCEPT
}
modifier = {
	trigger = {
		scope:recipient = {
			ai_zeal <= 20
		}
		scope:demand_conversion = yes
	}
	add = -20
	desc = CONVERSION_NEGATIVE_REASON
}
modifier = {
	trigger = {
		scope:recipient = {
			ai_zeal > 20
		}
		scope:demand_conversion = yes
	}
	add = {
		value = ai_zeal
		if = {
			limit = {
				scope:recipient.faith = {
					faith_hostility_level = {
						target = scope:puppet_or_actor.faith
						value = faith_astray_level
					}
				}
			}
			multiply = -1
		}
		else = {
			multiply = -2
		}
	}
	desc = CONVERSION_NEGATIVE_REASON
}
modifier = {
	add = -25
	trigger = {
		scope:renounce_claims = yes
		ai_greed < 0
	}
	desc = RENOUNCE_CLAIMS_REASON
}
modifier = {
	add = -50
	trigger = {
		scope:renounce_claims = yes
		ai_greed >= 0
		ai_greed < 26
	}
	desc = RENOUNCE_CLAIMS_REASON
}
modifier = {
	add = -75
	trigger = {
		scope:renounce_claims = yes
		ai_greed >= 26
		ai_greed < 51
	}
	desc = RENOUNCE_CLAIMS_REASON
}
modifier = {
	add = -95
	trigger = {
		scope:renounce_claims = yes
		ai_greed >= 51
	}
	desc = RENOUNCE_CLAIMS_REASON
}
modifier = {
	add = -50
	trigger = {
		scope:become_executioner = yes
		NOR = {
			has_trait = sadistic
			has_trait = callous
		}
	}
	desc = BECOME_EXECUTIONER_REASON
}
modifier = {
	add = -50
	trigger = {
		scope:banish = yes
	}
	NOT = {
		scope:puppet_or_actor = {
			has_imprisonment_reason = scope:recipient
			culture = {
				has_cultural_parameter = vassals_more_likely_accept_punishments
			}
		}
	}
	desc = BANISH_NEGATIVE_REASON
}
modifier = {
	add = legalistic_vassal_punishment_acceptance
	trigger = {
		scope:banish = yes
	}
	scope:puppet_or_actor = {
		has_imprisonment_reason = scope:recipient
		culture = {
			has_cultural_parameter = vassals_more_likely_accept_punishments
		}
	}
	desc = tradition_legalistic_name
}
modifier = {
	add = {
		value = -50
		if = {
			limit = {
				scope:recipient = {
					ai_vengefulness > 0
				}
			}
			subtract = ai_vengefulness
		}
	}
	trigger = {
		scope:gain_hook = yes
	}
	desc = GAIN_HOOK_NEGATIVE_REASON
}
modifier = {
	add = -30
	trigger = {
		scope:take_vows = yes
	}
	desc = TAKE_VOWS_NEGATIVE_REASON
}
modifier = {
	add = -30
	trigger = {
		scope:take_vows = yes
		has_trait = lustful
	}
	desc = TAKE_VOWS_LUSTFUL_REASON
}
modifier = {
	add = -30
	trigger = {
		scope:take_vows = yes
		has_trait = rakish
	}
	desc = TAKE_VOWS_RAKISH_REASON
}
modifier = {
	add = -30
	trigger = {
		scope:take_vows = yes
		has_trait = fornicator
	}
	desc = TAKE_VOWS_FORNICATOR_REASON
}
modifier = {
	add = -30
	trigger = {
		scope:take_vows = yes
		has_trait = seducer
	}
	desc = TAKE_VOWS_SEDUCER_REASON
}
modifier = {
	add = -30
	trigger = {
		scope:take_vows = yes
		has_trait = deviant
	}
	desc = TAKE_VOWS_DEVIANT_REASON
}
modifier = {
	add = {
		value = -15
		multiply = num_sinful_traits
	}
	trigger = {
		scope:take_vows = yes
		num_sinful_traits > 1
	}
	desc = TAKE_VOWS_SINS_REASON
}
modifier = {
	add = -30
	trigger = {
		scope:take_vows = yes
		has_trait = cynical
	}
	desc = TAKE_VOWS_CYNICAL_REASON
}
modifier = {
	add = -10
	trigger = {
		scope:recruit = yes
		NOT = {
			scope:puppet_or_actor = {
				culture = {
					has_cultural_parameter = can_recruit_prisoners_easily
				}
			}
		}
	}
	desc = RECRUITMET_NEGATIVE_REASON
}
modifier = {
	add = {
		value = -100
		if = {
			limit = {
				has_trait = beauty_good
			}
			multiply = 2
		}
	}
	trigger = {
		scope:disfigure = yes
		OR = {
			NOR = {
				has_trait = maimed
				has_trait = beauty_bad
				ai_sociability < -75
			}
			has_trait = beauty_good
		}
	}
	desc = DISFIGURE_NEGATIVE_REASON
}
modifier = {
	add = -75
	trigger = {
		scope:disfigure = yes
		OR = {
			has_trait = maimed
			has_trait = beauty_bad
			ai_sociability < -75
		}
		NOT = {
			has_trait = beauty_good
		}
	}
	desc = DISFIGURE_NEGATIVE_REASON
}
modifier = {
	add = -100
	trigger = {
		scope:blind = yes
		NOR = {
			has_trait = one_eyed
			has_trait = infirm
			has_trait = clouded_eyes
		}
	}
	desc = BLIND_NEGATIVE_REASON
}
modifier = {
	add = -75
	trigger = {
		scope:blind = yes
		OR = {
			has_trait = one_eyed
			has_trait = infirm
			has_trait = clouded_eyes
		}
	}
	desc = BLIND_NEGATIVE_REASON
}
modifier = {
	add = -75
	trigger = {
		scope:castrate = yes
		any_child = {
			count > 0
		}
		ai_boldness < -50
	}
	desc = CASTRATE_NEGATIVE_REASON
}
modifier = {
	add = -100
	trigger = {
		scope:castrate = yes
		any_child = {
			count >
# … (cut here; the rest is in the file)

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

What happens

If they accept

  • If

    • The character you target: Has the Modifier: Allowed to go Outside

    Then

    • The character you target: Loses “Allowed to go Outside”
  • If

    • The character you target: Has the Modifier: Diet of Moldy Gruel

    Then

    • The character you target: Loses “Diet of Moldy Gruel”
  • If

    • The character you target: Is imprisoned by you

    Then

    • The character you target:
      • If

        • Is imprisoned
        • The option “disfigure” is not chosen
        • The option “blind” is not chosen
        • The option “castrate” is not chosen

        Then

        • release_from_prison = yes
      • If

        • The option “demand conversion” is chosen

        Then

        • If

          • You: Confession penalty var is scope:recipient

          Then

          • You: Loses “Confession Penalty”
        • You › If government uses the Mandala Capital Temple Complex Great Project and Great Building:
        • Every in list:
          • If

            • No
            • Their faith is the same as that of recipient

            Then

            • If

              a check the game hides

              Then

              • convert_to_rite_with_consequences_effect = { RITE = scope:conversion_rite }

              Otherwise

              • convert_to_rite_with_consequences_effect = { RITE = scope:puppet_or_actor.rite }
            • make_character_crypto_religionist_effect = { CRYPTO_RELIGION = scope:old_faith }
            • Every in list:
              • If

                • prev != this

                Then

                • The crypto religionist secret:
                  • reveal_to_without_events_effect = { CHARACTER = prev }

            Otherwise

            • If

              a check the game hides

              Then

              • convert_to_rite_with_consequences_effect = { RITE = scope:conversion_rite }

              Otherwise

              • convert_to_rite_with_consequences_effect = { RITE = scope:puppet_or_actor.rite }
        • The character you target:
          • bastard_to_wild_oat_conversion_interaction_effect = { }
        • If

          • The character you target:
            • is_important_or_vip_struggle_character = { }
          • You › Any character struggle:
            • involvement = involved
            • activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { CATALYST = catalyst_demanding_important_conversion CHAR = scope:recipient }

          Then

          • You › Every character struggle:
            • Where:
              • activate_struggle_catalyst_secondary_character_involvement_involved_trigger = { CATALYST = catalyst_demanding_important_conversion CHAR = scope:recipient }
            • involvement = involved
            • activate_struggle_catalyst = { catalyst = catalyst_demanding_important_conversion character = scope:puppet_or_actor }
        • Every in list:
          • If

            • Their faith is the same as that of recipient
            • NOT = { has_crypto_religionist_secret_known_by_character_trigger = { CHARACTER = scope:puppet_or_actor } }

            Then

            • … may continue to practice … in secret
        • The character you target: Event false_conversion.0900
        • Opinion: Demanded My Conversion
        • If

          • You › Any character struggle:
            • involvement = involved
            • phase_has_catalyst = catalyst_demanding_important_conversion
            • The character you target › Any character struggle:
              • involvement = involved

          Then

          • You › Every character struggle:
            • Where:
              • phase_has_catalyst = catalyst_demanding_important_conversion
              • The character you target › Any character struggle:
                • involvement = involved
            • involvement = involved
            • activate_struggle_catalyst = { catalyst = catalyst_demanding_important_conversion character = scope:puppet_or_actor }
      • If

        • The option “banish” is chosen
        • The character you target:
          • One of these

            • Is landed
            • or

              All of these

              • they has administrative government mechanic
              • Is not landed
              • is_house_head = { }
              • Has a domicile
            • or

              All of these

              • Their liege:
                • tgp_has_access_to_ministry_trigger = { }
              • tgp_has_minister_title = { }
            • or

              All of these

              • Is a ruler
              • Government is a Theocratic-type Government

        Then

        • banish = yes
        • If

          • The allow imprisoned landless:
            • If

              • Not all of these

                • … (more in the script below)
            • … (more in the script below)
        • … (more in the script below)
      • … (more in the script below)

If they refuse

Options when sending

  • Demand Conversion
  • Renounce ClaimsThe recipient loses all Claims on Titles in your Realm
  • Banish
  • Gain Weak Hook
  • Take the Vows
  • Move to Puppeteer's Prison
  • Make Puppet
  • Employ Executioner
  • Recruit
  • Disfigure
  • Blind
  • Castrate
  • Become …

Events it fires: false_conversion.0900, ep3_laamps.0021, lover.0101, char_interaction.0161

• 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) (17 lines of game script)
is_shown = exists = scope:puppet_or_actor
scope:puppet_or_actor ?= {
	trigger_if = {
		limit = {
			is_ai = yes
			NOT = {
				puppeteer ?= {
					is_ai = no
				}
			}
		}
		has_prisoners = yes
	}
}
scope:recipient = {
	is_imprisoned_by = scope:puppet_or_actor
}

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

Can be sent when (is_valid…) (20 lines of game script)
scope: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
}
custom_tooltip = {
	text = is_currently_being_purged_tt
	scope:recipient = {
		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) (259 lines of game script)
on_accept = if = {
	limit = {
		scope:recipient = {
			has_character_modifier = allowed_to_go_outside
		}
	}
	scope:recipient = {
		remove_character_modifier = allowed_to_go_outside
	}
}
if = {
	limit = {
		scope:recipient = {
			has_character_modifier = moldy_gruel_diet
		}
	}
	scope:recipient = {
		remove_character_modifier = moldy_gruel_diet
	}
}
if = {
	limit = {
		scope:recipient = {
			is_imprisoned_by = scope:puppet_or_actor
		}
	}
	scope:recipient = {
		if = {
			limit = {
				is_imprisoned = yes
				scope:disfigure = no
				scope:blind = no
				scope:castrate = no
			}
			release_from_prison = yes
		}
		if = {
			limit = {
				scope:demand_conversion = yes
			}
			demand_conversion_interaction_effect = yes
			add_opinion = {
				modifier = demanded_my_conversion_opinion
				target = scope:puppet_or_actor
			}
			if = {
				limit = {
					scope:puppet_or_actor = {
						any_character_struggle = {
							involvement = involved
							activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
								CATALYST = catalyst_demanding_important_conversion
								CHAR = scope:recipient
							}
						}
					}
				}
				scope:puppet_or_actor = {
					every_character_struggle = {
						involvement = involved
						limit = {
							activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
								CATALYST = catalyst_demanding_important_conversion
								CHAR = scope:recipient
							}
						}
						activate_struggle_catalyst = {
							catalyst = catalyst_demanding_important_conversion
							character = scope:puppet_or_actor
						}
					}
				}
			}
		}
		if = {
			limit = {
				scope:banish = yes
				scope:recipient = {
					is_landed_or_landless_administrative_or_theocratic = yes
				}
			}
			banish_effect = {
				BANISHER = scope:puppet_or_actor
			}
			if = {
				limit = {
					NOT = {
						scope:puppet_or_actor = {
							has_banish_reason = scope:recipient
						}
					}
				}
				scope:puppet_or_actor = {
					add_tyranny = banishment_tyranny_gain
				}
			}
			add_opinion = {
				modifier = banished_me
				target = scope:puppet_or_actor
			}
		}
		else_if = {
			limit = {
				AND = {
					scope:banish = yes
					scope:recipient = {
						is_landless_adventurer = no
						is_pool_character = no
					}
				}
			}
			if = {
				limit = {
					this.gold > 0
					has_none_of_variables = {
						name = realm_priest
						name = was_bookmaker
					}
				}
				pay_short_term_gold = {
					target = scope:puppet_or_actor
					gold = this.gold
				}
			}
			if = {
				limit = {
					has_any_artifact = yes
				}
				every_character_artifact = {
					limit = {
						NOT = {
							has_variable = artifact_prevent_transfer
						}
					}
					set_owner = {
						target = scope:puppet_or_actor
						history = {
							location = scope:recipient.location
							actor = scope:recipient
							recipient = scope:puppet_or_actor
							type = stolen
						}
					}
					scope:puppet_or_actor = {
						if = {
							limit = {
								NOT = {
									has_variable = stolen_artifact
								}
							}
							set_variable = {
								name = stolen_artifact
								value = 1
							}
						}
						else = {
							change_variable = {
								name = stolen_artifact
								add = 1
							}
						}
					}
				}
			}
			banish = yes
			add_opinion = {
				modifier = banished_me
				target = scope:puppet_or_actor
			}
		}
		else_if = {
			limit = {
				AND = {
					scope:banish = yes
					scope:recipient = {
						is_playable_character = no
						is_pool_character = yes
					}
				}
			}
			if = {
				limit = {
					this.gold > 0
				}
				pay_short_term_gold = {
					target = scope:puppet_or_actor
					gold = this.gold
				}
			}
			add_opinion = {
				modifier = banished_me
				target = scope:puppet_or_actor
			}
		}
		if = {
			limit = {
				scope:recruit = yes
			}
			if = {
				limit = {
					scope:puppet_or_actor = {
						culture = {
							has_cultural_parameter = can_recruit_prisoners_easily
						}
					}
				}
				add_opinion = {
					modifier = loyal_servant
					target = scope:puppet_or_actor
				}
				scope:puppet_or_actor = {
					if = {
						limit = {
							can_add_hook = {
								target = scope:recipient
								type = loyalty_hook
							}
						}
						add_hook = {
							type = loyalty_hook
							target = scope:recipient
						}
					}
				}
			}
			else = {
				add_opinion = {
					modifier = demanded_recruitment
					target = scope:puppet_or_actor
				}
			}
			scope:puppet_or_actor = {
				if = {
					limit = {
						AND = {
							scope:puppet_or_actor.rite = {
								rite_has_tenet = tenet_communal_possessions
							}
							scope:recipient = {
								has_trait = peasant_leader
							}
						}
					}
					scope:puppet_or_actor = {
						add_piety = medium_piety_gain
					}
				}
			}
			scope:puppet_or_actor = {
				add_courtier = scope:recipient
			}
		}
		if = {
			limit = {
				scope:renounce_claims = yes
			}
			add_opinion = {
				modifier = demand
# … (cut here; the rest is in the file)

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

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