Interaction · Vassal actions
Request Re-Appointment
Demand that your Liege reassigns to you a Title you have a Claim on that was appointed to the recipient
What you need
You
To send it
If
a check the game hides
Then
- The succession of the Realm's Capital is tied to its highest Title
- The candidate temp:
If
- The top liege temp: … has a Ceremonial Monarch
- … is a member of the Ceremonial House (…)
Then
If
- The title temp: Has “administrative ui special title” (a variable the game's script sets)
Then
- The Ceremonial Monarch's Player Heir is the only member of the Ceremonial House who may become Ruler via Influence
Otherwise
- Governorships may not be given to the Ceremonial Monarch
If
a check the game hides
Then
- The … Title must have any Appointment Succession Law
- Candidates cannot compete for Titles that will automatically follow a Title of a higher Tier
- If held title (at least 1):
- … must be a Dominant, Equal, or Clerical Gender within your Faith (⟨faith⟩)
- … Government does not allow Bureaucratic appointments (…)
- Is not a member of the Clergy
- The target:
- Title tier at least holder.main administrative tier
- The … is not a Noble Family Title
To see it in the menu
- If played by the AI:
- you has administrative government mechanic
- Is not landed
If
a check the game hides
Then
- Your house: Has the house check as house head
- You have a domicile
- Your liege:
has_realm_law_flag = title_revocation_allowed
- You are not the target
- You are not the go-between
- The target is not the go-between
- you has administrative government mechanic
- Is not landed
If a check the game hides passes: the same again (1 line)
- Your house: Has the house check as house head
- You have a domicile
The character you target
- they has administrative government mechanic
top_liege ?= scope:actor.top_liege- Highest held Title is at least main administrative tier Rank
- Any held title:
- Title tier at least holder.main administrative tier
- You:
has_claim_on = prev
- Is not contested in a War.
NOT = { recent_history = { type = granted years = 1 } }- … controls a Faith
- … must not be a Clerical Title
- … must not be a Cardinalate
- … must not be a Challenger Head of Faith Title
- This is a special Title and cannot be revoked
The go-between
To send it
- Influence at least 60
To see it in the menu
- they has administrative government mechanic
Which title you can pick
- The target:
- Is not contested in a War.
NOT = { recent_history = { type = granted years = 1 } }- … controls a Faith
- … must not be a Clerical Title
- … must not be a Cardinalate
- … must not be a Challenger Head of Faith Title
- This is a special Title and cannot be revoked
Request Re-Appointment is a vassal character interaction in Crusader Kings III. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Weak Hook used (+40), Refusal is Treason (+20), The recipient … of the … Tier (-20) and 1 more. It costs Influence (from 100). Patch 1.20.1.2, from game/common/character_interactions/06_ep3_interactions.txt.
Quick answers (2)
- How do I get the AI to accept Request Re-Appointment?
- Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Weak Hook used +40, … Opinion of …, Refusal is Treason +20, The recipient … of the … Tier -20, Intimidated by you, Terrified of you, Intimidated by you, Terrified of you, Difference in Level of Influence and Legalistic Customs +20.
- How much does Request Re-Appointment cost?
- Influence (from 100) (patch 1.20.1.2).
Will they accept?
Accepted automatically when:
- The character you target:
2 of these 3
- Prisoners in your Dungeon cannot refuse Revocation
- They use their Hook on …
- … cannot refuse Revocation while Imprisoned by someone else
Otherwise the AI adds these up and accepts above zero; near zero the answer is partly random (ai_maybe). Reasons in italics are the script's, with no label in the game.
| Reason | Amount |
|---|---|
| Base | 0 |
Weak Hook usedwhen
| +40 |
| … Opinion of … | varies |
| Refusal is Treason | +20 |
| The recipient … of the … Tier | -20 |
Intimidated by youwhen
| intimidated_halved_reason_value |
Terrified of youwhen
| cowed_halved_reason_value |
Intimidated by youwhen
| intimidated_halved_reason_value |
Terrified of youwhen
| cowed_halved_reason_value |
Difference in Level of Influencewhen
| varies |
| Legalistic Customs | +20 |
| Their personality (AI values: greed (scripted), honor (scripted)) | varies |
Acceptance (ai_accept) (107 lines of game script)
base = 0
modifier = {
add = 40
desc = SCHEME_WEAK_HOOK_USED
scope:hook = yes
}
opinion_modifier = {
who = scope:recipient
opinion_target = scope:actor
multiplier = 0.5
desc = AI_OPINION_REASON
}
modifier = {
add = 20
desc = AI_REFUSAL_IS_TREASON
}
modifier = {
add = -20
desc = offer_vassalization_interaction_aibehavior_hightier_tt
scope:recipient = {
highest_held_title_tier = tier_kingdom
}
}
modifier = {
add = intimidated_halved_reason_value
desc = INTIMIDATED_REASON
scope:recipient = {
has_dread_level_towards = {
target = scope:actor
level = 1
}
}
}
modifier = {
add = cowed_halved_reason_value
desc = COWED_REASON
scope:recipient = {
has_dread_level_towards = {
target = scope:actor
level = 2
}
}
}
modifier = {
add = intimidated_halved_reason_value
desc = INTIMIDATED_REASON
scope:recipient = {
has_dread_level_towards = {
target = scope:intermediary
level = 1
}
}
}
modifier = {
add = cowed_halved_reason_value
desc = COWED_REASON
scope:recipient = {
has_dread_level_towards = {
target = scope:intermediary
level = 2
}
}
}
modifier = {
scope:actor.influence_level != scope:recipient.influence_level
add = {
value = scope:actor.influence_level
subtract = scope:recipient.influence_level
multiply = 20
}
desc = difference_in_influence_level_reason
}
modifier = {
add = legalistic_vassal_punishment_acceptance
desc = tradition_legalistic_name
scope:actor = {
has_revoke_title_reason = scope:recipient
culture = {
has_cultural_parameter = vassals_more_likely_accept_punishments
}
}
}
ai_value_modifier = {
who = scope:recipient
ai_greed = {
if = {
limit = {
scope:recipient = {
NOT = {
ai_greed = 0
}
}
}
value = -0.75
}
}
ai_honor = {
if = {
limit = {
scope:recipient = {
ai_honor > 0
}
}
value = 0.5
}
}
}As written in game/common/character_interactions/06_ep3_interactions.txt.
What happens
If they accept
- The character you target: Event ep3_interactions_events.0010
- Event ep3_interactions_events.0011
If
title:h_china.holder ?= scope:recipient- Any character situation:
situation:dynastic_cycle ?= this- The current phase counts “Son of Heaven Influenced Dynastic Cycle Catalyst”
Then
- Dynastic Cycle: Counts toward the situation's next phase: “Son of Heaven Influenced Dynastic Cycle Catalyst”
- The go-between:
- Influence -60
If
- The option “influence bribe” is chosen
Then
- Influence +100
- The character you target › Every held title:
- Where: The … is not a Noble Family Title · Any this title or de jure above:
title_tier >= county
- Every in list:
change_title_holder_include_vassals = { holder = scope:actor change = scope:change }
If
scope:intermediary != scope:actor.liege
Then
- You:
change_liege = { liege = scope:intermediary change = scope:change }
When it is accepted automatically
- The character you target: Event ep3_interactions_events.0010
- Event ep3_interactions_events.0011
- The target:
change_title_holder_include_vassals = { holder = scope:actor change = scope:change }
If
scope:intermediary != scope:actor.liege
Then
- You:
change_liege = { liege = scope:intermediary change = scope:change }
If they refuse
- The go-between:
- Event ep3_interactions_events.0013
- If played by a person: Crime — You are allowed to rightfully imprison …
- Otherwise: Opinion: Refused Revocation of Title
- Event ep3_interactions_events.0014
- The character you target: Opinion: Revoked My Title
- Opinion: Refused Revocation of Title
Options when sending
- Use a Hook
- Use a Hook
- Offer Influence to persuade your Liege to support you
Events it fires: ep3_interactions_events.0010, ep3_interactions_events.0011, ep3_interactions_events.0013, ep3_interactions_events.0014
• 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) (34 lines of game script)
is_available = trigger_if = {
limit = {
is_ai = yes
}
is_landless_administrative = yes
liege ?= {
has_realm_law_flag = title_revocation_allowed
}
}
is_shown = NOR = {
scope:actor = scope:recipient
scope:actor = scope:intermediary
scope:recipient = scope:intermediary
}
scope:actor = {
is_landless_administrative = yes
}
scope:recipient = {
government_has_mechanic = administrative
}
scope:intermediary ?= {
government_has_mechanic = administrative
}
scope:recipient = {
top_liege ?= scope:actor.top_liege
highest_held_title_tier >= main_administrative_tier
any_held_title = {
tier >= holder.main_administrative_tier
scope:actor = {
has_claim_on = prev
}
title_revocation_standard_can_pick_title_trigger = yes
}
}As written in game/common/character_interactions/06_ep3_interactions.txt.
Can be sent when (is_valid…) (49 lines of game script)
trigger_if = {
limit = {
scope:actor = {
is_ai = yes
}
}
NOT = {
scope:intermediary ?= {
has_character_flag = contest_appointment_liege_cooldown
}
}
}
trigger_if = {
limit = {
scope:recipient = {
vassal_contract_has_flag = vassal_contract_cannot_revoke_titles
}
}
custom_description = {
text = liege_vassal_contract_forbids_revocation
object = scope:recipient
scope:recipient = {
NOT = {
vassal_contract_has_flag = vassal_contract_cannot_revoke_titles
}
}
}
}
scope:intermediary = {
influence >= medium_influence_value
}
scope:actor = {
custom_description = {
text = character_interactions_hostile_actions_disabled_delay
NOT = {
has_character_flag = flag_hostile_actions_disabled_delay
}
}
}
trigger_if = {
limit = {
exists = scope:target
}
is_appointment_valid_trigger = {
TITLE = scope:target
CANDIDATE = scope:actor
TOP_LIEGE = scope:intermediary
}
}As written in game/common/character_interactions/06_ep3_interactions.txt.
Effects (on_send, on_accept, on_decline) (139 lines of game script)
on_send = scope:actor = {
add_character_flag = {
flag = flag_hostile_actions_disabled_delay
days = 10
}
}
scope:intermediary ?= {
add_character_flag = {
flag = contest_appointment_liege_cooldown
years = 1
}
}
on_accept = scope:recipient = {
trigger_event = ep3_interactions_events.0010
}
scope:actor = {
trigger_event = ep3_interactions_events.0011
tgp_activate_catalyst_against_hegemon_effect = {
HEGEMON = scope:recipient
CATALYST = catalyst_hegemon_influenced_by_interaction
}
}
scope:intermediary = {
change_influence = medium_influence_loss
if = {
limit = {
scope:influence_bribe = yes
}
change_influence = major_influence_gain
}
}
scope:actor = {
clear_hostile_actions_lock_flag_effect = yes
}
scope:recipient = {
every_held_title = {
title_tier >= county
limit = {
is_noble_family_title = no
any_this_title_or_de_jure_above = {
this = scope:target
}
}
add_to_list = transfer_titles
}
}
create_title_and_vassal_change = {
type = revoked
save_scope_as = change
add_claim_on_loss = yes
}
every_in_list = {
list = transfer_titles
change_title_holder_include_vassals = {
holder = scope:actor
change = scope:change
}
}
if = {
limit = {
scope:intermediary != scope:actor.liege
}
scope:actor = {
change_liege = {
liege = scope:intermediary
change = scope:change
}
}
}
resolve_title_and_vassal_change = scope:change
on_decline = scope:intermediary = {
trigger_event = ep3_interactions_events.0013
if = {
limit = {
is_ai = no
}
custom_tooltip = ADD_OPINION_EFFECT_I_HAVE_IMPRISONMENT_REASON_UNUSABLE
hidden_effect = {
add_opinion = {
target = scope:recipient
modifier = treasonous_revoke_refusal
}
}
}
else = {
add_opinion = {
target = scope:recipient
modifier = treasonous_revoke_refusal
}
}
}
scope:actor = {
trigger_event = ep3_interactions_events.0014
clear_hostile_actions_lock_flag_effect = yes
}
scope:recipient = {
add_opinion = {
target = scope:actor
modifier = revoked_title
}
}
scope:actor = {
add_opinion = {
target = scope:recipient
modifier = treasonous_revoke_refusal
}
}
on_auto_accept = scope:recipient = {
trigger_event = ep3_interactions_events.0010
}
scope:actor = {
trigger_event = ep3_interactions_events.0011
}
scope:actor = {
clear_hostile_actions_lock_flag_effect = yes
}
create_title_and_vassal_change = {
type = revoked
save_scope_as = change
add_claim_on_loss = yes
}
scope:target = {
change_title_holder_include_vassals = {
holder = scope:actor
change = scope:change
}
}
if = {
limit = {
scope:intermediary != scope:actor.liege
}
scope:actor = {
change_liege = {
liege = scope:intermediary
change = scope:change
}
}
}
resolve_title_and_vassal_change = scope:changeAs written in game/common/character_interactions/06_ep3_interactions.txt.
- Category
- Vassal actions
- Cost: Influence
- from 100
- Again on the same character
- after 10 years
- In the menu
- main list
- ID
contest_appointment_interaction
Source: game/common/character_interactions/06_ep3_interactions.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.