Interaction · Vassal actions
Grant Titles
Grant one or more of your personally held Titles to the recipient
What you need
You
To send it
- Held title (more than 1):
To see it in the menu
- Your government does not have the cannot be vassal or liege flag
If
- You: you has administrative government mechanic
Then
- The character you target: Their government does not have the administrative mechanic
The character you target
To send it
- … must be a Dominant, Equal, or Clerical Gender within … Faith (⟨faith⟩)
- Is not at war with you
One of these
- Does not have the Trait: Monk
or
You: Your Government is a Theocratic-type Government
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
- Does not have the Trait: Gallivanter
To see it in the menu
One of these
- Is a vassal (or below) of you
or
is_pool_guest_of = scope:puppet_or_actoror
All of these
root.faith.religious_head ?= scope:recipient- Is an Independent Ruler
Which title you can pick
- The target:
is_leased_out = no- If the … is a Noble Family Title: … cannot give away … Noble Family Title
If
- You: You do not have Nomadic Government
- Their province:
One of these
has_holding_type = nomad_holdingor
has_holding_type = herder_holding
- The character you target: Is not a ruler
Then
If
- Is the Head of Faith
scope:recipient.faith.religious_head != scope:puppet_or_actor.faith.religious_head
Then
- … cannot grant Head of Faith Titles to characters who do not share … Head of Faith
If
scope:target = title:k_fashion
Then
NOT = { scope:target = title:k_fashion }
- Ceremonial Monarch Title may not be granted
- If a Clerical Title: … cannot grant Clerical Titles
- If has “antipope office” (a variable the game's script sets): … cannot grant a Challenger Head of Faith Title
Grant Titles is a vassal character interaction in Crusader Kings III. You need: Held title (more than 1). The character you target needs: Is not at war with you, Already under negotiation to become someone's Ward, Already under negotiation to become someone's Guardian and 1 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 Titles in CK3?
- You: Held title (more than 1). The character you target: Is not at war with you, Already under negotiation to become someone's Ward, Already under negotiation to become someone's Guardian and Does not have the Trait: Gallivanter. (patch 1.20.1.2)
- Will the AI accept Grant Titles?
- Yes: it is accepted automatically.
Will they accept?
The other character has no choice: the game accepts it automatically.
What happens
Effects
If
- You:
- Your Government is Nomadic
- Vassal limit available at most 0
- Is an Independent Ruler
- The character you target: Is not a vassal of you
Then
- At Vassal Limit! Granting a title to this Character will turn them into a Tributary!
- You:
If
- The character you target:
is_acclaimed = yes
- The target: Title tier more than Barony
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
- The character you target:
If
- Does not have you as friend
Then
If
Not all of these
- Their culture is the same as that of puppet or actor
- Their faith is the same as that of puppet or actor
- You › Any character struggle:
involvement = involved
- Any character struggle:
involvement = involvedhas_struggle_phase_parameter = struggle_grant_titles_diff_faith_culture_to_leads_to_friendship
Then
If
- Has the target char as potential friend
- Does not have the target char as friend
- Does not have the target char as best friend
- Does not have the target char as rival
- Does not have the target char as nemesis
Then
If
has_activity_intent = befriend_attendee_intentintent_target ?= scope:target_charintent_target.involved_activity ?= this.involved_activity
Then
complete_activity_intent = yes
Otherwise
If
- Does not have the target char as potential friend
can_set_relation_friend_trigger = { CHARACTER = scope:target_char }If
- Is played by the AI
- The target char: Is played by the AI
Then
- The target char: Opinion of prev at least -25
Otherwise
always = yes
Then
set_relation_potential_friend = scope:target_char
If
scope:friend_opinion != 0
Then
If
- The target char: Is played by the AI
Then
- The target char gains the opinion “Friendly” of them
- Opinion: Friendly
If
One of these
- Any in list:
- Title tier exactly County
- Their culture is the same as that of recipient
- Their culture is not the same as that of puppet or actor
NOT = { recent_history = { type = granted years = 10 } }
or
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 } }
- Any in list:
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 }
If
- Any in list: … (more in the script below)
- … (more in the script below)
- … (more in the script below)
When it is accepted automatically
- The character you target: Event char_interaction.0110
Events it fires: vassal.2910, bp1_yearly.8070, char_interaction.0110
• 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) (40 lines of game script)
is_shown = scope:puppet_or_actor != scope:recipient
scope:puppet_or_actor ?= {
NOT = {
government_has_flag = cannot_be_vassal_or_liege
}
}
scope:recipient = {
OR = {
target_is_liege_or_above = scope:puppet_or_actor
is_pool_guest_of = scope:puppet_or_actor
AND = {
scope:puppet_or_actor.faith.religious_head ?= scope:recipient
top_liege ?= this
}
}
}
trigger_if = {
limit = {
scope:puppet_or_actor = {
government_has_mechanic = administrative
}
}
scope:recipient = {
NOT = {
government_has_mechanic = administrative
}
}
}
trigger_if = {
limit = {
scope:puppet_or_actor = {
government_has_flag = government_is_nomadic
}
}
scope:recipient = {
NOT = {
government_has_flag = government_is_herder
}
}
}As written in game/common/character_interactions/00_grant_titles_interaction.txt.
Can be sent when (is_valid…) (105 lines of game script)
scope:recipient = {
custom_tooltip = {
text = can_be_granted_titles_interaction_tt
OR = {
can_be_granted_titles_by = {
RULER = scope:puppet_or_actor
}
can_be_granted_theocratic_titles_by = {
RULER = scope:puppet_or_actor
}
AND = {
is_diarch_of_target = scope:puppet_or_actor
scope:puppet_or_actor = {
has_diarchy_active_parameter = diarchy_is_co_rulership
}
}
}
}
NOT = {
is_at_war_with = scope:puppet_or_actor
}
OR = {
NOT = {
has_trait = devoted
}
scope:puppet_or_actor = {
government_has_flag = government_is_theocracy
}
}
bp2_valid_for_standard_interactions_trigger = yes
trigger_if = {
limit = {
is_ruler = no
}
is_imprisoned = no
}
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
}
}
}
}
NOT = {
has_trait = gallivanter
}
tgp_japan_grant_titles_restriction_trigger = {
GRANTER = scope:puppet_or_actor
GRANTEE = scope:recipient
}
}
custom_description = {
text = is_not_theocratic_court_chaplain
subject = scope:recipient
NAND = {
scope:puppet_or_actor.rite = {
rite_has_doctrine = doctrine_theocracy_temporal
}
scope:puppet_or_actor = {
NOT = {
government_has_flag = government_is_theocracy
}
}
scope:recipient = {
rite = {
rite_has_doctrine = doctrine_theocracy_temporal
}
has_council_position = councillor_court_chaplain
}
scope:puppet_or_actor.faith.religious_head != scope:recipient
}
}
scope:puppet_or_actor = {
any_held_title = {
count > 1
}
}
trigger_if = {
limit = {
scope:puppet_or_actor = {
highest_held_title_tier >= tier_kingdom
has_diarchy_active_parameter = primeminister_requires_duchy
diarch = scope:recipient
}
}
custom_tooltip = {
text = primeminister_requires_duchy.tt.blocked_grant
any_in_list = {
list = target_titles
tier >= tier_duchy
}
}
}As written in game/common/character_interactions/00_grant_titles_interaction.txt.
Effects (on_send, on_accept, on_decline) (253 lines of game script)
on_accept = if = {
limit = {
scope:puppet_or_actor = {
government_has_flag = government_is_nomadic
vassal_limit_available <= 0
is_independent_ruler = yes
scope:recipient = {
NOT = {
is_vassal_of = scope:puppet_or_actor
}
}
}
}
custom_tooltip = grant_title_nomad_and_at_vassal_limit
}
scope:recipient = {
add_character_flag = {
flag = domicile_culture_and_faith_check
days = 1
}
}
if = {
limit = {
scope:recipient = {
is_acclaimed = yes
liege = {
this = scope:puppet_or_actor
}
}
scope:target = {
tier > tier_barony
}
}
custom_tooltip = grant_title_landing_acclaimed_knight_warning
}
grant_title_holy_order_patronage_warning_effect = yes
scope:recipient = {
if = {
limit = {
top_liege = this
save_temporary_scope_as = recipient_is_independent
}
}
if = {
limit = {
NOT = {
has_relation_friend = scope:puppet_or_actor
}
}
if = {
limit = {
is_diff_faith_or_culture_trigger = {
CHAR = scope:puppet_or_actor
STATUS = involved
}
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = struggle_grant_titles_diff_faith_culture_to_leads_to_friendship
}
}
progress_towards_friend_effect = {
REASON = friend_granted_title
CHARACTER = scope:puppet_or_actor
OPINION = 0
}
}
}
}
if = {
limit = {
OR = {
any_in_list = {
list = target_titles
tier = tier_county
culture = scope:recipient.culture
NOR = {
culture = scope:puppet_or_actor.culture
recent_history = {
type = granted
years = 10
}
}
}
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 = grants_to_lowborns_bonuses
}
scope:recipient = {
is_lowborn = yes
}
}
every_in_list = {
list = target_titles
limit = {
tier = tier_county
}
change_county_control = 30
}
scope:recipient = {
add_trait = peasant_leader
}
}
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
}
every_in_list = {
list = target_titles
limit = {
tier = tier_county
}
add = minor_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_hegemony
}
add = scope:puppet_or_actor.dynasty.monumental_dynasty_prestige_gain
}
every_in_list = {
list = target_titles
limit = {
tier = tier_empire
}
add = scope:puppet_or_actor.dynasty.massive_dynasty_prestige_gain
}
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
limit = {
tier = tier_county
}
add = scope:puppet_or_actor.dynasty.minor_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_barony
}
hidde
# … (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_titles_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.