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

Scripted trigger · Wards and Wardens files

bp2_valid_hostage_offer_action_trigger

bp2_valid_hostage_offer_action_trigger = yes

game/common/scripted_triggers/05_bp2_hostage_triggers.txt, line 117 (48 lines). No parameters.

bp2_valid_hostage_offer_action_trigger is a scripted trigger in Crusader Kings III, in the Wards and Wardens files, written at line 117 of its file. It takes no parameters: bp2_valid_hostage_offer_action_trigger = yes (or no). The game's script calls it in 1 place, among them You can Offer a Hostage (important action). Patch 1.20.1.2, from game/common/scripted_triggers/05_bp2_hostage_triggers.txt.

What it checks

  • bp2_valid_hostage_action_shared_trigger = yes
  • has_any_cb_on = root
  • None of these

    • Any warden hostage:
      • home_court = root
  • You:
    • Close family member (at least 1):
    • is_character_interaction_potentially_accepted = { interaction = offer_hostage_interaction recipient = scope:warden secondary_actor = scope:my_hostage }
  • If

    Then

    • None of these

      • You:
        • is_character_interaction_potentially_accepted = { … }

• the game's own tooltip text · ◦ our reading of the script line · code the script where neither exists

“They” is whatever it runs on (the scope it is called in). The scripted triggers and effects it calls link to their own pages; $PARAMETERS$ stay as written: each call fills them in.

The script as written (48 lines of game script)
bp2_valid_hostage_offer_action_trigger = {
	# Context checks, e.g. alliance
	bp2_valid_hostage_action_shared_trigger = yes
	# Only care about actual threats
	has_any_cb_on = root
	save_temporary_scope_as = warden
	# Does not already have your hostage
	NOT = {
		any_warden_hostage = { home_court = root }
	}
	root = {
		# You have a hostage to offer
		any_close_family_member = {
			count >= 1
			bp2_valid_to_offer_as_hostage_trigger = { SENDER = root }
			save_temporary_scope_as = my_hostage
		}
		# Ensure Offer might be accepted
		is_character_interaction_potentially_accepted = {
			interaction = offer_hostage_interaction
			recipient = scope:warden
			secondary_actor = scope:my_hostage
		}
	}
	# Why Offer when you could Exchange?
	trigger_if = {
		limit = {
			# Only if they don't have your hostage already
			NOT = {
				any_home_court_hostage = { warden = root }
			}
			any_close_family_member = {
				bp2_valid_to_offer_as_hostage_trigger = { SENDER = scope:warden }
				save_temporary_scope_as = their_hostage
			}
		}
		NOT = {
			root = {
				is_character_interaction_potentially_accepted = {
					interaction = exchange_hostage_interaction
					recipient = scope:warden
					secondary_recipient = scope:their_hostage
					secondary_actor = scope:my_hostage
				}
			}
		}
	}
}

As written in game/common/scripted_triggers/05_bp2_hostage_triggers.txt.

Where it is used

Every place in common/, events/ and history/ that calls bp2_valid_hostage_offer_action_trigger.

Important actions (1)

  • You can Offer a Hostage

Source: game/common/scripted_triggers/05_bp2_hostage_triggers.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.

Spotted a mistake on this page?