Interaction · Vassal actions
Modify … Administration
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
- Province Administration can only be changed once every 5 years - Can be changed again after …
Otherwise
- … can not make another request until …
If
NOT = { scope:hook = yes }NOT = { scope:dominant_family = yes }
Then
- You: Influence at least 100
- You:
To see it in the menu
- you has administrative government mechanic
vassal_contract_has_modifiable_obligations = yes- … are the Ceremonial Monarch
- Is an Independent Ruler
- You are not a Tributary
- Is a direct vassal of the target
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.
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.
| Reason | Amount |
|---|---|
| Base | -25 |
| … Opinion of … | varies |
| Your Governor Efficiency | scope:puppet_or_actor.governor_efficiency_presented |
You belong… to a Powerful Familywhen
| +50 |
You … a member of the recipient's Housewhen
| +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
If
NOT = { scope:hook = yes }NOT = { scope:dominant_family = yes }NOT = { scope:diarch = yes }
Then
- You: Influence -100
- Every in list › You:
vassal_contract_set_obligation_level = { type = scope:obligation.vassal_contract_type level = scope:obligation }If
- Your 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
- You adopt the Celestial Commander Succession Law
Else if
vassal_contract_has_flag = celestial_civil_appointment- Does NOT have the Celestial Appointment Succession Law
Then
- You adopt the Celestial Appointment Succession Law
Else if
One of these
- Your Government is Meritocratic
or
Your 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
- You adopt the Meritocratic Commander Succession Law
Else if
vassal_contract_has_flag = meritocratic_civil_appointment- Does NOT have the Meritocratic Appointment Succession Law
Then
- You adopt the Meritocratic Appointment Succession Law
Else if
- Your 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
- You adopt the Ritsuryō Appointment Succession Law
Else if
vassal_contract_has_flag = japan_administrative_military_appointment- Does NOT have the Ritsuryō Military Succession Law
Then
- You adopt the Ritsuryō Military Succession Law
- If never:
If
a check the game hides
Then
- The diarch:
- … use your status as Diarch to countersign some of … own changes
If
diarch ?= scope:liegehas_diarchy_active_parameter = diarchy_is_co_rulership
Then
- Opinion: Abused Position of Trust (-10)
Otherwise
- Opinion: Abused Position of Trust (-40)
- The diarch:
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).