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

Scripted effect · Khans of the Steppe files

mpo_gok_onslaught_admin_vassal_reorganization

mpo_gok_onslaught_admin_vassal_reorganization = yes

game/common/scripted_effects/09_mpo_greatest_of_khans_effects.txt, line 8481 (188 lines). No parameters.

mpo_gok_onslaught_admin_vassal_reorganization is a scripted effect in Crusader Kings III, in the Khans of the Steppe files, written at line 8481 of its file. It takes no parameters: mpo_gok_onslaught_admin_vassal_reorganization = yes. The game's script calls it in 1 place, among them Greatest of Khans' Onslaught (casus belli). Patch 1.20.1.2, from game/common/scripted_effects/09_mpo_greatest_of_khans_effects.txt.

What it does

  • Every in list:
    • If a check the game hides passes: the same again (2 lines)
      • change_liege = { liege = scope:landless_admin_liege change = scope:change }
      • remove_from_list = vulnerable_admin_vassals
    • If a check the game hides passes: the same again (2 lines)
      • change_liege = { liege = scope:landless_admin_liege change = scope:change }
      • remove_from_list = vulnerable_admin_vassals
    • If a check the game hides passes: the same again (2 lines)
      • change_liege = { liege = scope:landless_admin_liege change = scope:change }
      • remove_from_list = vulnerable_admin_vassals

      Else if

      • Is landed
      • Any sub realm county › Any neighboring county › Their holder:
        • One of these

          • is_in_list = top_protected_admins
          • or

            Any liege or above:
            • is_in_list = top_protected_admins

      Then

      • change_liege = { liege = scope:landless_admin_liege change = scope:change }
      • remove_from_list = vulnerable_admin_vassals

      Else if

      Then

      • change_liege = { liege = scope:landless_admin_liege change = scope:change }
      • remove_from_list = vulnerable_admin_vassals

• 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 (120 lines of game script)
mpo_gok_onslaught_admin_vassal_reorganization = {
	#Make a list of admin vassals high enough tier to survive
	every_vassal_or_below = {
		limit = {
			is_landed = yes
			#This should be duke or count based on gov type
			highest_held_title_tier >= main_administrative_tier
			government_has_mechanic = administrative
		}
		add_to_list = protected_admin_vassals
	}
	#Make a list of admin vassals that must be moved or purged
	every_vassal_or_below = {
		limit = {
			is_landed = yes
			highest_held_title_tier < main_administrative_tier
			government_has_mechanic = administrative
			highest_held_title_tier > tier_barony
			NOT = {
				any_liege_or_above = {
					is_in_list = protected_admin_vassals
				}
			}
		}
		add_to_list = vulnerable_admin_vassals
	}
	#Make a list of the highest surviving admin in their vassalship chain
	every_in_list = {
		list = protected_admin_vassals
		limit = {
			OR = {
				liege = scope:defender
				liege = {
					NOT = {
						government_has_mechanic = administrative
					}
				}
			}
		}
		add_to_list = top_protected_admins
	}
	#Find a liege for every vulnerable we can
	every_in_list = {
		list = vulnerable_admin_vassals
		#Move de jure vulnerable vassals to empires
		if = {
			limit = {
				capital_county.empire.holder ?= {
					is_in_list = top_protected_admins
				}
			}
			capital_county.empire.holder = {
				save_scope_as = landless_admin_liege
			}
			create_title_and_vassal_change = {
				type = swear_fealty
				save_scope_as = change
				add_claim_on_loss = yes
			}
			change_liege = {
				liege = scope:landless_admin_liege
				change = scope:change
			}
			resolve_title_and_vassal_change = scope:change
			remove_from_list = vulnerable_admin_vassals
		}
		#Move de jure vulnerable vassals to kingdoms
		if = {
			limit = {
				capital_county.kingdom.holder ?= {
					is_in_list = top_protected_admins
				}
			}
			capital_county.kingdom.holder = {
				save_scope_as = landless_admin_liege
			}
			create_title_and_vassal_change = {
				type = swear_fealty
				save_scope_as = change
				add_claim_on_loss = yes
			}
			change_liege = {
				liege = scope:landless_admin_liege
				change = scope:change
			}
			resolve_title_and_vassal_change = scope:change
			remove_from_list = vulnerable_admin_vassals
		}
		#Move de jure vulnerable vassals to duchies
		if = {
			limit = {
				capital_county.duchy.holder ?= {
					is_in_list = top_protected_admins
				}
			}
			capital_county.duchy.holder = {
				save_scope_as = landless_admin_liege
			}
			create_title_and_vassal_change = {
				type = swear_fealty
				save_scope_as = change
				add_claim_on_loss = yes
			}
			change_liege = {
				liege = scope:landless_admin_liege
				change = scope:change
			}
			resolve_title_and_vassal_change = scope:change
			remove_from_list = vulnerable_admin_vassals
		}
		#Move landed vulnerable neighbors
		else_if = {
			limit = {
				is_landed = yes
				any_sub_realm_county = {
					any_neighboring_county = {
						holder = {
							OR = {
								is_in_list = top_protected_admins
								any_liege_or_above = {

As written in game/common/scripted_effects/09_mpo_greatest_of_khans_effects.txt.

The first 120 of its 188 lines; the rest is in game/common/scripted_effects/09_mpo_greatest_of_khans_effects.txt from line 8481.

Where it is used

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

Source: game/common/scripted_effects/09_mpo_greatest_of_khans_effects.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?