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

Scripted trigger · By God Alone files

incite_holy_war_ai_invalidation_trigger

incite_holy_war_ai_invalidation_trigger = { RECIPIENT = … SECONDARY = … }

game/common/scripted_triggers/pam_scripted_triggers.txt, line 4872 (111 lines). Parameters: $RECIPIENT$, $SECONDARY$.

incite_holy_war_ai_invalidation_trigger is a scripted trigger in Crusader Kings III, in the By God Alone files, written at line 4872 of its file. A call passes 2 parameters: RECIPIENT and SECONDARY. The game's script calls it in 3 places, among them Incite Claim War (interaction), Incite Holy War (interaction) and pam_christian_situation_hof_incite_holy_war_effect (scripted effect). Patch 1.20.1.2, from game/common/scripted_triggers/pam_scripted_triggers.txt.

What it checks

  • One of these

    • $SECONDARY$ = { ai_zeal >= 80 }
    • or

      $SECONDARY$ = { ai_boldness >= 100 }
    • or

      scope:use_hook ?= yes
    • or

      If

      a check the game hides

      Then

      • All of these

        • scope:fund_war ?= yes
        • scope:puppet_or_actor.major_gold_value >= $SECONDARY$.monumental_gold_value
    • or

      All of these

      • scope:join_war ?= yes
      • scope:puppet_or_actor.current_military_strength >= $RECIPIENT$.half_current_military_strength
    • or

      If

      a check the game hides

      Then

      • current_military_strength <= $SECONDARY$.seventy_percent_of_current_military_strength
    • or

      scope:puppet_or_actor:
      • is_allied_to = $SECONDARY$
    • or

      All of these

      • scope:puppet_or_actor.house.house_head ?= scope:puppet_or_actor
      • $SECONDARY$.house ?= scope:puppet_or_actor.house
    • or

      $SECONDARY$ = { has_relation_best_friend = scope:puppet_or_actor }
    • or

      $SECONDARY$ = { … }
  • $SECONDARY$ = { … }

• 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 (111 lines of game script)
incite_holy_war_ai_invalidation_trigger = {
	#One condition must be true, and none of the NOR true
	OR = {
		$SECONDARY$ = { ai_zeal >= 80 }
		$SECONDARY$ = { ai_boldness >= 100 }
		#Being forced to (despite having precariously comparable mil strength)
		scope:use_hook ?= yes
		trigger_if = {
			limit = {
				exists = $SECONDARY$
			}
			AND = {
				scope:fund_war ?= yes
				scope:puppet_or_actor.major_gold_value >= $SECONDARY$.monumental_gold_value
			}
		}
		AND = {
			scope:join_war ?= yes
			scope:puppet_or_actor.current_military_strength >= $RECIPIENT$.half_current_military_strength
		}
		#Can probably win
		trigger_if = {
			limit = {
				exists = $SECONDARY$
			}
			current_military_strength <= $SECONDARY$.seventy_percent_of_current_military_strength
		}
		scope:puppet_or_actor = { is_allied_to = $SECONDARY$ }
		AND = {
			scope:puppet_or_actor.house.house_head ?= scope:puppet_or_actor
			$SECONDARY$.house ?= scope:puppet_or_actor.house
		}
		$SECONDARY$ = {
			has_relation_best_friend = scope:puppet_or_actor
		}
		AND = {
			$SECONDARY$ = {
				target_is_liege_or_above = scope:puppet_or_actor
				has_dread_level_towards = {
					target = scope:puppet_or_actor
					level >= 2
				}
			}
		}
	}
	$SECONDARY$ = {
		NOR = {
			ai_zeal < -80
			opinion = {
				target = scope:puppet_or_actor
				value <= -90
			}
			opinion = {
				target = $RECIPIENT$
				value >= 75
			}
			has_any_good_relationship_with_character_trigger = { CHARACTER = $RECIPIENT$ }
			rite = { rite_has_parameter = holy_wars_forbidden }
			any_personal_tenet = {
				OR = {
					this = tenet:tenet_pacifism
					this = tenet:tenet_dharmic_pacifism
				}
			}
			AND = {
				scope:puppet_or_actor = {
					NOT = { rite = $SECONDARY$.rite }
				}
				any_tenet = {
					scope:puppet_or_actor.rite = {
						has_tenet_status = {
							tenet = prev
							status = core
						}
					}
					$SECONDARY$.rite = {
						has_tenet_status = {
							tenet = prev
							status = prohibited
						}
					}
				}
			}
			$RECIPIENT$ = {
				has_trait = greatest_of_khans
			}
			scope:target ?= {
				NOT = {
					tier = tier_county
				}
				any_de_jure_county = {
					count >= 4
					holder = {
						target_is_same_character_or_above = $RECIPIENT$
					}
					any_county_province = {
						is_county_capital = yes
						OR = {
							has_holding_type = nomad_holding
							has_holding_type = herder_holding
						}
					}
				}
			}
			has_dread_level_towards = {
				target = $RECIPIENT$
				level >= 2
			}
		}
	}
}

As written in game/common/scripted_triggers/pam_scripted_triggers.txt.

Where it is used

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

Source: game/common/scripted_triggers/pam_scripted_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?