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

Interaction · Vassal actions

Modify … Administration

No costAccepted automatically in some cases; otherwise the AI weighs it

Ask your liege to change the Administration of your Province

What you need

You

To send it

  • … … not hold a Province.
  • Is not at war with the target
  • If

    • You:
      • subject_contract_is_blocked_from_modification = yes

    Then

    • You:
      • subject_contract_is_blocked_from_modification = no

    Otherwise

    • If

      • You: Has “admin contract cooldown” (a variable the game's script sets)

      Then

      Otherwise

      • … can not make another request until …
    • If

      • NOT = { scope:hook = yes }
      • NOT = { scope:dominant_family = yes }

      Then

      • You: Influence at least 100

To see it in the menu

Modify … Administration is a vassal character interaction in Crusader Kings III. You need: Is not at war with the target. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include You belong… to a Powerful Family (+50) and You … a member of the recipient's House (+60). Patch 1.20.1.2, from game/common/character_interactions/00_modifiy_vassal_contract.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Modify … Administration in CK3?
You: Is not at war with the target. (patch 1.20.1.2)
How do I get the AI to accept Modify … Administration?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: … Opinion of …, Your Governor Efficiency, You belong… to a Powerful Family +50 and You … a member of the recipient's House +60.

Will they accept?

Accepted automatically when:

  • … is forced to accept

Otherwise the AI adds these up and accepts above zero. Reasons in italics are the script's, with no label in the game.

ReasonAmount
Base-25
… Opinion of …varies
Your Governor Efficiencyscope:puppet_or_actor.governor_efficiency_presented
You belong… to a Powerful Family
when
  • Your house:
    • is_powerful_family = yes
  • Is not of the same house as the target
+50
You … a member of the recipient's House
when
  • Is of the same house as the target
+60
Acceptance (ai_accept) (30 lines of game script)
base = -25
opinion_modifier = {
	who = scope:recipient
	opinion_target = scope:puppet_or_actor
	multiplier = 1
	desc = AI_OPINION_REASON
}
modifier = {
	add = scope:puppet_or_actor.governor_efficiency_presented
	desc = AI_GOVERNOR_EFFICIENCY
}
modifier = {
	scope:puppet_or_actor = {
		house ?= {
			is_powerful_family = yes
		}
		NOT = {
			house ?= scope:recipient.house
		}
	}
	add = 50
	desc = AI_POWERFUL_FAMILY
}
modifier = {
	scope:puppet_or_actor = {
		house ?= scope:recipient.house
	}
	add = 60
	desc = AI_SAME_HOUSE
}

As written in game/common/character_interactions/00_modifiy_vassal_contract.txt.

What happens

If they accept

Options when sending

  • Use a Hook
  • Leverage position of Dominant Family
  • Use Borrowed Powers

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

Who can use it and sees it (is_available, is_shown) (9 lines of game script)
is_shown = scope:puppet_or_actor = {
	government_has_mechanic = administrative
	vassal_contract_has_modifiable_obligations = yes
	tgp_is_ceremonial_liege_trigger = no
	top_liege != this
	is_tributary = no
	this != scope:recipient
	liege ?= scope:recipient
}

As written in game/common/character_interactions/00_modifiy_vassal_contract.txt.

Can be sent when (is_valid…) (66 lines of game script)
scope:puppet_or_actor = {
	custom_tooltip = {
		text = admin_vassal_not_holding_a_theme_desc
		any_held_title = {
			OR = {
				tier >= holder.main_administrative_tier
				tier >= holder.min_title_maa_tier
			}
			is_noble_family_title = no
		}
	}
	NOT = {
		is_at_war_with = scope:recipient
	}
}
trigger_if = {
	limit = {
		scope:puppet_or_actor = {
			subject_contract_is_blocked_from_modification = yes
		}
	}
	scope:puppet_or_actor = {
		subject_contract_is_blocked_from_modification = no
	}
}
trigger_else = {
	trigger_if = {
		limit = {
			scope:puppet_or_actor = {
				has_variable = admin_contract_cooldown
			}
		}
		custom_tooltip = {
			text = admin_contract_cooldown_desc_vassal
			scope:puppet_or_actor = {
				NOT = {
					has_variable = admin_contract_cooldown
				}
			}
		}
	}
	trigger_else = {
		custom_tooltip = {
			text = admin_contract_request_cooldown_desc
			scope:puppet_or_actor = {
				NOT = {
					has_variable = admin_contract_request_cooldown
				}
			}
		}
		scope:puppet_or_actor = {
			has_changed_contract_obligation_trigger = yes
		}
	}
	trigger_if = {
		limit = {
			NOR = {
				scope:hook = yes
				scope:dominant_family = yes
			}
		}
		scope:puppet_or_actor = {
			influence >= major_influence_value
		}
	}
}

As written in game/common/character_interactions/00_modifiy_vassal_contract.txt.

Effects (on_send, on_accept, on_decline) (179 lines of game script)
on_accept = scope:puppet_or_actor = {
	send_interface_message = {
		type = msg_vassal_contract_change
		title = modify_vassal_contract_interaction_notification
		right_icon = scope:recipient
		if = {
			limit = {
				always = scope:hook
			}
			use_hook = scope:recipient
			add_achievement_flag_effect = {
				FLAG = achievement_fine_print_flag
			}
		}
		if = {
			limit = {
				has_changed_contract_obligation_trigger = yes
				NOR = {
					scope:hook = yes
					scope:dominant_family = yes
					scope:diarch = yes
				}
			}
			scope:puppet_or_actor = {
				change_influence = major_influence_loss
			}
		}
		hidden_effect = {
			set_variable = {
				name = admin_contract_cooldown
				value = yes
				years = admin_contract_cooldown_value
			}
		}
		every_in_list = {
			list = changed_obligations
			save_scope_as = obligation
			scope:puppet_or_actor = {
				vassal_contract_set_obligation_level = {
					type = scope:obligation.vassal_contract_type
					level = scope:obligation
				}
				if = {
					limit = {
						government_has_flag = government_is_celestial
						scope:obligation.vassal_contract_type = vassal_contract:celestial_provinces
					}
					if = {
						limit = {
							vassal_contract_has_flag = celestial_military_appointment
							NOT = {
								has_realm_law = celestial_military_appointment_succession_law
							}
						}
						add_realm_law_skip_effects = celestial_military_appointment_succession_law
					}
					else_if = {
						limit = {
							vassal_contract_has_flag = celestial_civil_appointment
							NOT = {
								has_realm_law = celestial_appointment_succession_law
							}
						}
						add_realm_law_skip_effects = celestial_appointment_succession_law
					}
				}
				else_if = {
					limit = {
						OR = {
							government_has_flag = government_is_meritocratic
							government_has_flag = government_is_steppe_admin
						}
						scope:obligation.vassal_contract_type = vassal_contract:meritocratic_provinces
					}
					if = {
						limit = {
							vassal_contract_has_flag = meritocratic_military_appointment
							NOT = {
								has_realm_law = meritocratic_military_appointment_succession_law
							}
						}
						add_realm_law_skip_effects = meritocratic_military_appointment_succession_law
					}
					else_if = {
						limit = {
							vassal_contract_has_flag = meritocratic_civil_appointment
							NOT = {
								has_realm_law = meritocratic_appointment_succession_law
							}
						}
						add_realm_law_skip_effects = meritocratic_appointment_succession_law
					}
				}
				else_if = {
					limit = {
						government_has_flag = government_is_japan_administrative
						scope:obligation.vassal_contract_type = vassal_contract:japan_administrative_provinces
					}
					if = {
						limit = {
							NOT = {
								vassal_contract_has_flag = japan_administrative_military_appointment
							}
							NOT = {
								has_realm_law = japanese_appointment_succession_law
							}
						}
						add_realm_law_skip_effects = japanese_appointment_succession_law
					}
					else_if = {
						limit = {
							vassal_contract_has_flag = japan_administrative_military_appointment
							NOT = {
								has_realm_law = japanese_military_appointment_succession_law
							}
						}
						add_realm_law_skip_effects = japanese_military_appointment_succession_law
					}
				}
			}
		}
	}
}
diarch_changed_own_contract_effect = yes
hidden_effect = {
	if = {
		limit = {
			catalyst_granted_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = {
				CHAR = scope:recipient
			}
			scope:recipient = {
				any_character_struggle = {
					involvement = involved
					activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
						CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection
						CHAR = scope:puppet_or_actor
					}
				}
			}
		}
		scope:recipient = {
			every_character_struggle = {
				involvement = involved
				limit = {
					activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
						CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection
						CHAR = scope:puppet_or_actor
					}
				}
				activate_struggle_catalyst = {
					catalyst = catalyst_granted_powerful_diff_faith_vassal_religious_protection
					character = scope:recipient
				}
			}
		}
	}
	if = {
		limit = {
			scope:puppet_or_actor.count_obligation_improvements_for_vassal > 0
			scope:recipient = {
				is_diff_faith_or_culture_trigger = {
					CHAR = scope:puppet_or_actor
					STATUS = involved
				}
				any_character_struggle = {
					involvement = involved
					activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
						CATALYST = catalyst_grant_privilege_to_diff_faith_culture_vassal
						CHAR = scope:puppet_or_actor
					}
				}
			}
		}
		scope:recipient = {
			every_character_struggle = {
				involvement = involved
				limit = {
					activate_struggle_catalyst_secondary_character_involvement_involved_t
# … (cut here; the rest is in the file)

As written in game/common/character_interactions/00_modifiy_vassal_contract.txt.

Category
Vassal actions
In the menu
main list
ID
admin_vassal_modify_vassal_contract_interaction

Source: game/common/character_interactions/00_modifiy_vassal_contract.txt and the English localisation, Crusader Kings III 1.20.1.2. “You” is the character who sends it (scope:actor, or a puppet acting for you); “the character you target” is the recipient. “…” marks words the game fills in at play time (a name, a title).

Spotted a mistake on this page?