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

Interaction · Diplomatic actions

Return Hostage

No costAccepted automatically

Send one of the recipient's Hostages home

What you need

You

To send it

  • None of these

    • The character you target: Is at war with you
    • You:
    • The character you target:
  • None of these

    • You: Is at war with the target

To see it in the menu

  • If played by the AI: Warden hostage (at least 1):
  • The target is not you
  • One of these

    • You › Any warden hostage:
      • home_court ?= scope:recipient
    • or

      scope:recipient.warden ?= scope:puppet_or_actor

Return Hostage is a diplomatic character interaction in Crusader Kings III. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/05_bp2_interactions.txt.

for a guide, post or blog
Quick answers (1)
Will the AI accept Return Hostage?
Yes: it is accepted automatically.

Will they accept?

The other character has no choice: the game accepts it automatically.

What happens

Effects

  • The warden:
    • The hostage:
      • return_hostage = yes
    • The hostage’s warden:
      • If

        • One of these

          • bp2_warden_title_tier_lower_trigger = { WARDEN = scope:hostage.warden HOME_COURT = scope:hostage.home_court }
          • or

            bp2_warden_dynasty_renown_lower_trigger = { WARDEN = scope:hostage.warden HOME_COURT = scope:hostage.home_court }

        Then

        • If

          • The hostage’s warden’s faith:
            • faith_hostility_level = { target = scope:hostage.home_court.faith value >= faith_hostile_level }

          Then

          Otherwise

        Otherwise

      • If

        • The hostage’s home court:
          • None of these

            • Any warden hostage:
              • home_court = scope:hostage.warden
            • One of these

              • has_truce = scope:hostage.warden
              • or

                is_allied_to = scope:hostage.warden

        Then

        • … and … may freely attack one another
  • The home court: Event char_interaction.0320

Events it fires: char_interaction.0320

• 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) (18 lines of game script)
is_available = trigger_if = {
	limit = {
		is_ai = yes
	}
	any_warden_hostage = {
		count >= 1
	}
}
is_shown = exists = scope:puppet_or_actor
scope:recipient != scope:puppet_or_actor
OR = {
	scope:puppet_or_actor ?= {
		any_warden_hostage = {
			home_court ?= scope:recipient
		}
	}
	scope:recipient.warden ?= scope:puppet_or_actor
}

As written in game/common/character_interactions/05_bp2_interactions.txt.

Can be sent when (is_valid…) (22 lines of game script)
NOR = {
	scope:recipient = {
		is_at_war_with = scope:puppet_or_actor
	}
	scope:puppet_or_actor = {
		OR = {
			government_has_flag = government_is_theocracy
			government_has_flag = government_is_landless_adventurer
		}
	}
	scope:recipient = {
		OR = {
			government_has_flag = government_is_theocracy
			government_has_flag = government_is_landless_adventurer
		}
	}
}
NOT = {
	scope:puppet_or_actor = {
		is_at_war_with = scope:recipient
	}
}

As written in game/common/character_interactions/05_bp2_interactions.txt.

Effects (on_send, on_accept, on_decline) (49 lines of game script)
on_send = 
on_accept = scope:puppet_or_actor = {
	save_scope_as = warden
}
scope:recipient = {
	save_scope_as = home_court
}
scope:secondary_recipient = {
	save_scope_as = hostage
}
scope:home_court = {
	hidden_effect = {
		send_interface_toast = {
			type = event_toast_effect_good
			title = return_hostage_interaction_notification
			left_icon = scope:hostage
			right_icon = scope:warden
			show_as_tooltip = {
				bp2_return_hostage_effect = {
					HOSTAGE = scope:hostage
				}
			}
		}
	}
}
scope:warden = {
	send_interface_toast = {
		type = event_toast_effect_neutral
		title = return_hostage_interaction_notification
		left_icon = scope:hostage
		right_icon = scope:home_court
		show_as_tooltip = {
			bp2_return_hostage_effect = {
				HOSTAGE = scope:hostage
			}
		}
	}
	if = {
		limit = {
			has_character_flag = flag_hostile_actions_disabled_delay
		}
		remove_character_flag = flag_hostile_actions_disabled_delay
	}
}
scope:home_court = {
	trigger_event = {
		id = char_interaction.0320
	}
}

As written in game/common/character_interactions/05_bp2_interactions.txt.

Category
Diplomatic actions
In the menu
under More…
ID
return_hostage_interaction

Source: game/common/character_interactions/05_bp2_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?