Interaction · Vassal actions
Modify … Administration
Change the administration for the recipient's Province
What you need
You
- Is not at war with the target
- … are the Ceremonial Monarch
If
- The character you target:
subject_contract_is_blocked_from_modification = yes
Then
- The character you target:
subject_contract_is_blocked_from_modification = no
Otherwise
If
- The character you target: Has “admin contract cooldown” (a variable the game's script sets)
Then
- Province Administration can only be changed once every 5 years - Can be changed again after …
- The character you target:
The character you target
- Is a direct vassal of you
One of these
- Is landed
or
is_councillor_of = scope:puppet_or_actor.top_liege
- Is not a Tributary
- Is a ruler
vassal_contract_has_modifiable_obligations = yes- they has administrative government mechanic
- Any held title:
One of these
- Title tier at least holder.main administrative tier
or
Title tier at least holder.min title maa tier
- The … is not a Noble Family Title
Modify … Administration is a vassal character interaction in Crusader Kings III. You need: Is not at war with the target. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/00_modifiy_vassal_contract.txt.
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)
- Will the AI accept Modify … Administration?
- Yes: it is accepted automatically.
Will they accept?
The other character has no choice: the game accepts it automatically.
What happens
Effects
- Every in list › The character you target:
vassal_contract_set_obligation_level = { type = scope:obligation.vassal_contract_type level = scope:obligation }If
- Government is Celestial
scope:obligation.vassal_contract_type = vassal_contract:celestial_provinces
Then
If
vassal_contract_has_flag = celestial_military_appointment- Does NOT have the Celestial Commander Succession Law
Then
- Adopts the Celestial Commander Succession Law
Else if
vassal_contract_has_flag = celestial_civil_appointment- Does NOT have the Celestial Appointment Succession Law
Then
- Adopts the Celestial Appointment Succession Law
Else if
One of these
- Government is Meritocratic
or
Government is Meritocratic Khanate
scope:obligation.vassal_contract_type = vassal_contract:meritocratic_provinces
Then
If
vassal_contract_has_flag = meritocratic_military_appointment- Does NOT have the Meritocratic Commander Succession Law
Then
- Adopts the Meritocratic Commander Succession Law
Else if
vassal_contract_has_flag = meritocratic_civil_appointment- Does NOT have the Meritocratic Appointment Succession Law
Then
- Adopts the Meritocratic Appointment Succession Law
Else if
- Government is Ritsuryō
scope:obligation.vassal_contract_type = vassal_contract:japan_administrative_provinces
Then
If
NOT = { vassal_contract_has_flag = japan_administrative_military_appointment }- Does NOT have the Ritsuryō Appointment Succession Law
Then
- Adopts the Ritsuryō Appointment Succession Law
Else if
vassal_contract_has_flag = japan_administrative_military_appointment- Does NOT have the Ritsuryō Military Succession Law
Then
- Adopts the Ritsuryō Military Succession Law
• 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) (19 lines of game script)
is_shown = scope:recipient = {
this != scope:puppet_or_actor
liege ?= scope:puppet_or_actor
OR = {
is_landed = yes
is_councillor_of = scope:puppet_or_actor.top_liege
}
is_tributary = no
is_ruler = yes
vassal_contract_has_modifiable_obligations = yes
government_has_mechanic = administrative
any_held_title = {
OR = {
tier >= holder.main_administrative_tier
tier >= holder.min_title_maa_tier
}
is_noble_family_title = no
}
}As written in game/common/character_interactions/00_modifiy_vassal_contract.txt.
Can be sent when (is_valid…) (38 lines of game script)
scope:puppet_or_actor = {
NOT = {
is_at_war_with = scope:recipient
}
tgp_is_ceremonial_liege_trigger = no
}
trigger_if = {
limit = {
scope:recipient = {
subject_contract_is_blocked_from_modification = yes
}
}
scope:recipient = {
subject_contract_is_blocked_from_modification = no
}
}
trigger_else = {
trigger_if = {
limit = {
scope:recipient = {
has_variable = admin_contract_cooldown
}
}
custom_tooltip = {
text = admin_contract_cooldown_desc
scope:recipient = {
NOT = {
has_variable = admin_contract_cooldown
}
}
}
}
trigger_else = {
scope:puppet_or_actor = {
has_changed_contract_obligation_trigger = yes
}
}
}As written in game/common/character_interactions/00_modifiy_vassal_contract.txt.
Effects (on_send, on_accept, on_decline) (173 lines of game script)
on_accept = hidden_effect = {
if = {
limit = {
catalyst_granted_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = {
CHAR = scope:recipient
}
scope:puppet_or_actor = {
any_character_struggle = {
involvement = involved
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_granted_powerful_diff_faith_vassal_religious_protection
CHAR = scope:recipient
}
}
}
}
scope:puppet_or_actor = {
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:recipient
}
}
activate_struggle_catalyst = {
catalyst = catalyst_granted_powerful_diff_faith_vassal_religious_protection
character = scope:puppet_or_actor
}
}
}
}
if = {
limit = {
catalyst_revoked_powerful_diff_faith_vassal_religious_protection_preliminary_trigger = {
CHAR = scope:recipient
}
scope:puppet_or_actor = {
any_character_struggle = {
involvement = involved
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection
CHAR = scope:recipient
}
}
}
}
scope:puppet_or_actor = {
every_character_struggle = {
involvement = involved
limit = {
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_revoked_powerful_diff_faith_vassal_religious_protection
CHAR = scope:recipient
}
}
activate_struggle_catalyst = {
catalyst = catalyst_revoked_powerful_diff_faith_vassal_religious_protection
character = scope:puppet_or_actor
}
}
}
}
if = {
limit = {
scope:recipient.count_obligation_improvements_for_vassal > 0
scope:puppet_or_actor = {
is_diff_faith_or_culture_trigger = {
CHAR = scope:recipient
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:recipient
}
}
}
}
scope:puppet_or_actor = {
every_character_struggle = {
involvement = involved
limit = {
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_grant_privilege_to_diff_faith_culture_vassal
CHAR = scope:recipient
}
}
activate_struggle_catalyst = {
catalyst = catalyst_grant_privilege_to_diff_faith_culture_vassal
character = scope:puppet_or_actor
}
}
}
}
}
scope:puppet_or_actor = {
send_interface_message = {
type = msg_vassal_contract_change
title = modify_vassal_contract_interaction_notification
right_icon = scope:recipient
scope:recipient = {
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:recipient = {
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 = {
li
# … (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_liege_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).