Interaction · Vassal actions
Grant Appointment
Appoint the recipient as Governor of a Province
What you need
You
To send it
- … hold… no Landed Titles … can grant as Governorships
The character you target
To send it
- Is an Adult
- Is not at war with you
is_hostage = no- … is traveling to become a Hostage
- Already under negotiation to become someone's Ward
- Already under negotiation to become someone's Guardian
- If is not a ruler: Is not imprisoned
- they has administrative government mechanic
If
- You:
One of these
- Has the Male Only Law
or
Has the Male Preference Law
- Is not landed
Then
- … is ineligible for Appointment Succession due to Gender Laws
- You:
If
- You:
One of these
- Has the Female Only Law
or
Has the Female Preference Law
- Is not landed
Then
- … is ineligible for Appointment Succession due to Gender Laws
- You:
- Is not a member of the Clergy
- Does not have the Trait: Gallivanter
- … is a Minister
- … already has the …
If
- Is a landless ruler
- Any held title: The … is a Noble Family Title
scope:target.tier < min_appointment_tier
Then
primary_title.tier <= scope:target.tier
- … is the Ceremonial Monarch
To see it in the menu
One of these
- Is a vassal (or below) of you
or
is_pool_guest_of = scope:puppet_or_actor
Which title you can pick
- The target:
is_leased_out = no- The character you target:
If
- Is a landless ruler
- Any held title: The … is a Noble Family Title
scope:target.tier < min_appointment_tier
Then
primary_title.tier <= scope:target.tier
- … is the Ceremonial Monarch
- … cannot give away … primary Governorship
- If the … is a Noble Family Title: … cannot give away … Noble Family Title
If
scope:target = title:k_fashion
Then
NOT = { scope:target = title:k_fashion }
Grant Appointment is a vassal character interaction in Crusader Kings III. The character you target needs: Is an Adult, Is not at war with you, Already under negotiation to become someone's Ward and 4 more. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/00_grant_titles_interaction.txt.
Quick answers (2)
- What are the requirements for Grant Appointment in CK3?
- The character you target: Is an Adult, Is not at war with you, Already under negotiation to become someone's Ward, Already under negotiation to become someone's Guardian, they has administrative government mechanic, Is not a member of the Clergy and Does not have the Trait: Gallivanter. (patch 1.20.1.2)
- Will the AI accept Grant Appointment?
- Yes: it is accepted automatically.
Will they accept?
The other character has no choice: the game accepts it automatically.
What happens
Effects
If
- The character you target:
is_acclaimed = yes
Then
- Granting a title above Barony-rank will invalidate this Acclaimed Knight
- The character you target:
If
- You › Any patroned holy order:
leader.capital_county ?= { … }
- The character you target:
One of these
- Highest held Title is at least Duchy Rank
or
All of these
- Any in list: Title tier at least Duchy
One of these
- The ho capital temp’s holder: Is the target or the target’s liege
or
Any in list: Is the ho capital tempor
All of these
scope:ho_capital_temp.holder.highest_held_title_tier = tier_county- Any in list:
- Title tier at least Duchy
- Any de jure county: Is the ho capital temp
Then
- … will lose Holy Order Patronage of one or more Holy Orders
- You › Any patroned holy order:
If
- You › Any patroned holy order:
leader.capital_county ?= { save_temporary_scope_as = ho_capital_temp is_in_list = target_titles }
Then
- If … gains any higher-Tier Titles, you will lose Holy Order Patronage of a local Holy Order
If
- Any in list:
- Title tier at least Duchy
title_capital_county = { culture != scope:puppet_or_actor.culture culture = scope:recipient.culture }NOT = { recent_history = { type = granted years = 10 } }
Then
- The target’s culture:
change_cultural_acceptance = { target = scope:puppet_or_actor.culture value = grant_title_cultural_acceptance_impact desc = cultural_acceptance_gain_granted_title }
- Any in list:
- Every in list:
If
a check the game hides
Then
If
- You: Was promised title is scope:recipient
Then
If
scope:landed_title = scope:recipient.var:promised_title
Then
- You: Event vassal.2910 (after 7–14 days)
- The character you target › If a faction member:
add_joined_faction_discontent = grant_title_opinion_sum_discontent_calc
If
- The character you target: Is a faction member
Then
- … (more in the script below)
- … (more in the script below)
When it is accepted automatically
- The character you target: Event char_interaction.0111
Events it fires: vassal.2910, bp1_yearly.8070, pam_interactions_events.0040, char_interaction.0111
• 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) (25 lines of game script)
is_shown = scope:puppet_or_actor != scope:recipient
scope:recipient = {
OR = {
target_is_liege_or_above = scope:puppet_or_actor
is_pool_guest_of = scope:puppet_or_actor
}
}
scope:puppet_or_actor ?= {
government_has_mechanic = administrative
highest_held_title_tier >= tier_county
}
trigger_if = {
limit = {
scope:actor = {
is_ai = yes
}
}
scope:recipient = {
NOT = {
any_parent = {
is_ai = no
}
}
}
}As written in game/common/character_interactions/00_grant_titles_interaction.txt.
Can be sent when (is_valid…) (179 lines of game script)
scope:puppet_or_actor = {
custom_tooltip = {
text = grant_governorship_interaction_no_title_tt
any_held_title = {
tier >= tier_county
is_noble_family_title = no
is_landless_type_title = no
NOR = {
this = scope:puppet_or_actor.capital_county
this = scope:puppet_or_actor.primary_title
}
}
}
}
scope:recipient = {
is_adult = yes
NOT = {
is_at_war_with = scope:puppet_or_actor
}
bp2_valid_for_standard_interactions_trigger = yes
trigger_if = {
limit = {
is_ruler = no
}
is_imprisoned = no
}
government_has_mechanic = administrative
trigger_if = {
limit = {
scope:puppet_or_actor = {
OR = {
has_realm_law = male_only_law
has_realm_law = male_preference_law
}
}
is_landed = no
}
custom_tooltip = {
text = recipient_cannot_be_appointed_gender_laws_tt
is_female = no
}
}
trigger_if = {
limit = {
scope:puppet_or_actor = {
OR = {
has_realm_law = female_only_law
has_realm_law = female_preference_law
}
}
is_landed = no
}
custom_tooltip = {
text = recipient_cannot_be_appointed_gender_laws_tt
is_female = yes
}
}
custom_description = {
text = grant_title_stealing_acclaimed_knight
subject = scope:recipient
NOR = {
AND = {
is_acclaimed = yes
liege ?= {
is_ai = no
this != scope:puppet_or_actor
}
}
AND = {
is_acclaimed = yes
scope:actor = {
is_ai = yes
}
}
}
}
is_clergy = no
NOT = {
has_trait = gallivanter
}
tgp_japan_grant_titles_restriction_trigger = {
GRANTER = scope:puppet_or_actor
GRANTEE = scope:recipient
}
custom_tooltip = {
text = recipient_is_a_minister_desc
tgp_is_any_minister = no
}
}
scope:recipient = {
custom_tooltip = {
text = promote_candidate_interaction_existing_holder_tt
this != scope:target.holder
}
trigger_if = {
limit = {
is_governor = yes
scope:target = {
is_noble_family_title = no
}
}
custom_tooltip = {
text = only_one_province_of_highest_rank_tt
NAND = {
highest_held_title_tier = scope:target.tier
scope:target.tier >= tier_duchy
scope:target = {
any_de_jure_county = {
count < 1
OR = {
holder = scope:recipient
holder = {
is_vassal_or_below_of = scope:recipient
}
}
}
}
}
}
custom_tooltip = {
text = admin_must_be_de_jure_or_neighboring
any_held_title = {
OR = {
is_de_jure_liege_or_above_target = scope:target
target_is_de_jure_liege_or_above = scope:target
AND = {
NOT = {
tier = tier_barony
}
any_title_to_title_neighboring_county = {
this = scope:target
}
scope:target = {
tier = tier_county
duchy = {
OR = {
NOT = {
exists = holder
}
holder = {
NOR = {
is_vassal_or_below_of = scope:puppet_or_actor
this = scope:puppet_or_actor
}
}
}
}
}
}
}
}
}
}
trigger_if = {
limit = {
is_landless_ruler = yes
any_held_title = {
is_noble_family_title = yes
}
scope:target.tier < min_appointment_tier
}
primary_title.tier <= scope:target.tier
}
trigger_if = {
limit = {
highest_held_title_tier = tier_county
main_administrative_tier > tier_county
is_landed = yes
scope:target.tier = tier_county
}
custom_tooltip = {
text = admin_count_grant_only_counties
any_held_title = {
duchy = scope:target.duchy
}
}
}
tgp_is_ceremonial_liege_trigger = no
}As written in game/common/character_interactions/00_grant_titles_interaction.txt.
Effects (on_send, on_accept, on_decline) (244 lines of game script)
on_accept = if = {
limit = {
scope:recipient = {
is_acclaimed = yes
liege = {
this = scope:puppet_or_actor
}
}
}
custom_tooltip = grant_title_landing_acclaimed_knight_warning
}
grant_title_holy_order_patronage_warning_effect = yes
if = {
limit = {
any_in_list = {
list = target_titles
tier >= tier_duchy
title_capital_county = {
culture != scope:puppet_or_actor.culture
culture = scope:recipient.culture
}
NOT = {
recent_history = {
type = granted
years = 10
}
}
}
}
scope:recipient.culture = {
change_cultural_acceptance = {
target = scope:puppet_or_actor.culture
value = grant_title_cultural_acceptance_impact
desc = cultural_acceptance_gain_granted_title
}
}
}
if = {
limit = {
any_in_list = {
list = target_titles
tier >= tier_county
}
scope:puppet_or_actor.culture = {
has_cultural_parameter = landing_house_members_give_prestige
}
exists = scope:puppet_or_actor.house
exists = scope:recipient.house
scope:puppet_or_actor.house = scope:recipient.house
}
scope:puppet_or_actor = {
add_prestige = {
value = 0
every_in_list = {
list = target_titles
limit = {
tier = tier_hegemony
}
add = monumental_prestige_gain
}
every_in_list = {
list = target_titles
limit = {
tier = tier_empire
}
add = massive_prestige_gain
}
every_in_list = {
list = target_titles
limit = {
tier = tier_kingdom
}
add = major_prestige_gain
}
every_in_list = {
list = target_titles
limit = {
tier = tier_duchy
}
add = medium_prestige_gain
}
}
}
}
if = {
limit = {
any_in_list = {
list = target_titles
tier >= tier_county
}
scope:puppet_or_actor.culture = {
has_cultural_parameter = landing_house_members_gives_renown
}
exists = scope:puppet_or_actor.house
exists = scope:recipient.house
scope:puppet_or_actor.house = scope:recipient.house
}
scope:puppet_or_actor.dynasty = {
add_dynasty_prestige = {
value = 0
every_in_list = {
list = target_titles
limit = {
tier = tier_kingdom
}
add = scope:puppet_or_actor.dynasty.major_dynasty_prestige_gain
}
every_in_list = {
list = target_titles
limit = {
tier = tier_duchy
}
add = scope:puppet_or_actor.dynasty.medium_dynasty_prestige_gain
}
}
}
}
every_in_list = {
list = target_titles
save_temporary_scope_as = this_title
if = {
limit = {
exists = scope:landed_title
}
scope:recipient = {
if = {
limit = {
scope:this_title.tier = tier_county
}
hidden_effect = {
add_opinion = {
target = scope:puppet_or_actor
modifier = received_title_county
}
}
scope:this_title = {
add_to_temporary_list = titles_to_grant
}
}
else_if = {
limit = {
scope:this_title.tier = tier_duchy
}
hidden_effect = {
add_opinion = {
target = scope:puppet_or_actor
modifier = received_title_duchy
}
if = {
limit = {
is_lowborn = yes
}
scope:puppet_or_actor = {
every_vassal = {
vassal_stance = courtly
add_opinion = {
target = scope:puppet_or_actor
modifier = courtly_lowborn_grant_opinion
opinion = -10
}
}
}
}
}
scope:this_title = {
add_to_temporary_list = titles_to_grant
}
}
else_if = {
limit = {
scope:this_title.tier = tier_kingdom
}
hidden_effect = {
add_opinion = {
target = scope:puppet_or_actor
modifier = received_title_kingdom
}
if = {
limit = {
is_lowborn = yes
}
scope:puppet_or_actor = {
every_vassal = {
vassal_stance = courtly
add_opinion = {
target = scope:puppet_or_actor
modifier = courtly_lowborn_grant_opinion
opinion = -30
}
}
}
}
}
scope:this_title = {
add_to_temporary_list = titles_to_grant
}
}
else_if = {
limit = {
scope:this_title.tier >= tier_empire
}
hidden_effect = {
add_opinion = {
target = scope:puppet_or_actor
modifier = received_title_empire
}
if = {
limit = {
is_lowborn = yes
}
scope:puppet_or_actor = {
every_vassal = {
vassal_stance = courtly
add_opinion = {
target = scope:puppet_or_actor
modifier = courtly_lowborn_grant_opinion
opinion = -30
}
}
}
}
}
scope:this_title = {
add_to_temporary_list = titles_to_grant
}
}
}
if = {
limit = {
scope:puppet_or_actor = {
exists = var:was_promised_title
var:was_promised_title = scope:recipient
}
}
if = {
limit = {
scope:recipient = {
exists = var:promised_title
}
scope:landed_title = scope:recipient.var:promised_title
}
scope:puppet_or_actor = {
trigger_event = {
# … (cut here; the rest is in the file)As written in game/common/character_interactions/00_grant_titles_interaction.txt.
- Category
- Vassal actions
- In the menu
- main list
- ID
grant_governorship_interaction
Source: game/common/character_interactions/00_grant_titles_interaction.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.