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

Scripted trigger · Khans of the Steppe files

mpo_nomad_duchy_invasion_war_ai_trigger

mpo_nomad_duchy_invasion_war_ai_trigger = { NOMAD = … }

game/common/scripted_triggers/mpo_scripted_triggers.txt, line 2001 (55 lines). Parameters: $NOMAD$.

mpo_nomad_duchy_invasion_war_ai_trigger is a scripted trigger in Crusader Kings III, in the Khans of the Steppe files, written at line 2001 of its file. A call passes 1 parameter: NOMAD. The game's script calls it in 2 places, among them Overrun Kingdom (casus belli) and mpo_the_great_steppe_yearly_pulse_random (on action). Patch 1.20.1.2, from game/common/scripted_triggers/mpo_scripted_triggers.txt.

What it checks

  • Is an Independent Ruler
  • Is at not War
  • Gold more than 0
  • Does NOT have the Uncrowned Law
  • Has the Limited Dominance Law
  • One of these

    • All of these

      • Dynastic Cycle:
        • situation_current_phase = situation_dynastic_cycle_phase_chaos
      • NOT = { exists = title:h_china.holder }
    • or

      Their capital county › Any county situation sub region:
      • situation_sub_region_has_county = prev
      • sub_region_current_phase = situation_steppe_havsarsan_zud_season
    • or

      All of these

      • Is not landed
      • domicile.herd >= 4000
    • or

      All of these

      • Ai energy at least 0
      • is_gurkhan = no
      • Realm size (counties) at most 3
      • Their domicile:
        • herd <= two_thirds_max_herd_value
      • exists = $NOMAD$.house
      • Their primary title:
        • previous_holder ?= { house ?= $NOMAD$.house }
        • Past holder (at least 2):
          • this != $NOMAD$
          • house ?= $NOMAD$.house
          • One of these

            • is_alive = yes
            • or

              time_since_death = { years <= 120 }

• 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 (55 lines of game script)
mpo_nomad_duchy_invasion_war_ai_trigger = {
	is_independent_ruler = yes
	is_at_war = no
	gold > 0
	NOT = {
		has_realm_law = uncrowned
	}
	has_realm_law = nomadic_authority_2
	OR = {
		#China is in division
		AND = {
			situation:dynastic_cycle ?= { situation_current_phase = situation_dynastic_cycle_phase_chaos }
			NOT = {
				exists = title:h_china.holder
			}
		}
		# Havsaran zud? Leave the steppe!
		capital_county ?= {
			any_county_situation_sub_region = {
				situation_sub_region_has_county = prev
				sub_region_current_phase = situation_steppe_havsarsan_zud_season
			}
		}
		#Landless and heavily herded
		AND = {
			is_landed = no
			domicile.herd >= 4000
		}
		#Family has held title without ascendance for a while
		AND = {
			ai_energy >= 0
			is_gurkhan = no
			sub_realm_size <= 3
			domicile ?= { herd <= two_thirds_max_herd_value }
			
			exists = $NOMAD$.house
			primary_title = {
				previous_holder ?= {
					house ?= $NOMAD$.house
				}
				any_past_holder = {
					count >= 2
					this != $NOMAD$
					house ?= $NOMAD$.house
					OR = {
						is_alive = yes
						time_since_death = {
							years <= 120
						}
					}
				}
			}
		}
	}
}

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

Where it is used

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

Casus belli (1)

On actions (the game's own hooks) (1)

  • mpo_the_great_steppe_yearly_pulse_random

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