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_overrunning_vassal_title_distribution_effect

mpo_overrunning_vassal_title_distribution_effect = yes

game/common/scripted_effects/09_dlc_mpo_scripted_effects.txt, line 3139 (535 lines). No parameters.

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

What it does

  • while = { … }
  • Every vassal:
    • Where:
      • Highest held Title is exactly County Rank
      • Their primary title:
        • kingdom = scope:target
        • Any this title or de jure above:
          • Title tier exactly Duchy
          • NOT = { holder = scope:attacker }
          • holder.top_liege = scope:attacker
    • change_liege = { liege = primary_title.duchy.holder change = scope:change }
  • Every held title:
    • Where:
      • Title tier exactly County
      • kingdom = scope:target
      • Any this title or de jure above:
        • Title tier exactly Duchy
        • NOT = { holder = scope:attacker }
        • Their holder:
          • is_vassal_or_below_of = scope:attacker
    • Gains the … Title (duchy.holder)

• 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_overrunning_vassal_title_distribution_effect = {
	every_held_title = {
		limit = {
			tier = tier_county
			any_this_title_or_de_jure_above = {
				tier = tier_duchy
				NOT = {
					this = scope:new_capital_duchy
				}
			}
		}
		add_to_list = overrun_counties
	}
	scope:target = {
		every_direct_de_jure_vassal_title = {
			limit = {
				tier = tier_duchy
				NOT = {
					this = scope:new_capital_duchy
				}
				any_de_jure_county = {
					count >= 2
					holder = scope:attacker
				}
				OR = {
					NOT = { exists = holder }
					holder.top_liege = scope:defender
					holder.top_liege = scope:attacker
				}
			}
			add_to_list = overrun_duchies
		}
	}
	#Distribute all counties
	while = {
		limit = {
			any_in_list = {
				list = overrun_counties
				holder = scope:attacker
			}
			any_in_list = {
				list = potential_overrunning_vassals
				NOT = {
					has_character_flag = got_overrun_title
				}
			}
		}
		#Is a duchy available?
		if = {
			limit = {
				any_in_list = {
					list = overrun_duchies
					any_de_jure_county = {
						holder = scope:attacker
					}
				}
			}
			#Grant biggest duchy available
			if = {
				limit = {
					any_in_list = {
						list = overrun_duchies
						#Forgive me for how stupid this is
						any_de_jure_county = {
							count >= 5
							holder = scope:attacker
						}
					}
				}
				random_in_list = {
					list = overrun_duchies
					limit = {
						any_de_jure_county = {
							count >= 5
							holder = scope:attacker
						}
					}
					save_scope_as = duchy_to_grant
				}
			}
			else_if = {
				limit = {
					any_in_list = {
						list = overrun_duchies
						#Forgive me for how stupid this is
						any_de_jure_county = {
							count >= 4
							holder = scope:attacker
						}
					}
				}
				random_in_list = {
					list = overrun_duchies
					limit = {
						any_de_jure_county = {
							count >= 4
							holder = scope:attacker
						}
					}
					save_scope_as = duchy_to_grant
				}
			}
			else_if = {
				limit = {
					any_in_list = {
						list = overrun_duchies
						#Forgive me for how stupid this is
						any_de_jure_county = {
							count >= 3
							holder = scope:attacker
						}
					}
				}
				random_in_list = {
					list = overrun_duchies
					limit = {
						any_de_jure_county = {
							count >= 3
							holder = scope:attacker
						}

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

The first 120 of its 535 lines; the rest is in game/common/scripted_effects/09_dlc_mpo_scripted_effects.txt from line 3139.

Where it is used

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

Casus belli (1)

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