CK3 DatabaseCrusader Kings III · 1.20.1.2 “Crozier” · unofficial
Silk & Silverout Tue, Nov 17What's free, what needs the DLC, price →

Interaction · Vassal actions

Offer Vassalage

variesInfluencevariesPietyThe AI weighs it

Ask the recipient to become your Vassal

What you need

You

To send it

  • If holds China › Dynastic Cycle:
    • NOT = { situation_current_phase = situation_dynastic_cycle_phase_instability }
    • If

      • situation_current_phase = situation_dynastic_cycle_phase_stability_advancement

      Then

      • The character you target: … is not Celestial

To see it in the menu

  • Is landed
  • If played by the AI:
  • None of these

    • You:
      • Has “had mpo temujin flavor 0010” (a variable the game's script sets)
      • Had mpo temujin flavor 0010 is scope:recipient

The character you target

To send it

To see it in the menu

  • Is a ruler
  • One of these

    • Cannot play landless rulers without having an Estate
    • or

      If

      • One of these

        • Is landed
        • or

          Government is a Theocratic-type Government

      Then

    • or

      All of these

      • Their liege:
        • All of these

          • Holds China
          • Government is Celestial
          • Their government has the government uses ministry budget flag
      • One of these

    • or

      Has “laamp transition” (a variable the game's script sets)
  • One of these

  • If

    • You: Your government does not have the government is mandala flag

    Then

    • Highest held Title is less than scope:actor.highest held title tier Rank
  • Their government does not have the cannot be vassal or liege flag
  • Their government is not unplayable

Offer Vassalage is a vassal character interaction in Crusader Kings III. The character you target needs: Is at not War and Is not a member of a Confederation. The AI weighs it. Reasons the AI weighs include Your claim is illegitimate (-10), You have True Ruler (+20), Virtuoso Arbitrator (+25) and 61 more. It costs Influence (varies), Piety (varies). Patch 1.20.1.2, from game/common/character_interactions/00_character_interactions.txt.

for a guide, post or blog
Quick answers (3)
What are the requirements for Offer Vassalage in CK3?
The character you target: Is at not War and Is not a member of a Confederation. (patch 1.20.1.2)
How do I get the AI to accept Offer Vassalage?
The AI weighs it. Its reasons: Your claim is illegitimate -10, You have True Ruler +20, Virtuoso Arbitrator +25, You have a reputation as a fair ruler +20, Previously swayed during the Iranian Intermezzo +20, You have the flame of persia Modifier +20, The recipient is impressed by the Court Grandeur of your Diplomatic Court, Your Level of Devotion, Inspection Bonus +5, Inspection Bonus +10, Successful Inspection +10, Inspection Focus: Vassal Acceptance +10, Your low Legitimacy -25, Your low Legitimacy -50, Your low Legitimacy -75, Your high Legitimacy +25, Your high Legitimacy +50, Your high Legitimacy +75, You were crowned by the Clergy +25, Their Head of Faith thinks well of you, Cultural Acceptance, They is part of an Isolationist Culture -20, You are of a different Faith, You are of a different Faith, You are of a different Faith, Intimidated by you, Terrified of you, They is your Friend +10, They is your Best Friend +20, They is your Lover +10, They is your Soulmate +20, They is your Rival -100, They is your Nemesis -1,000, They belongs to your Dynasty +5, You speak the … Language +5, The recipient … of the … Tier, You recently Waged War -50, They fought for Independence against me -200, Their realm is distant from yours -100, Their realm is distant from yours -250, Their realm is remote from yours -500, They is part of the Iberian Struggle and you are not -35, They is a Claimant to … -20, Major difference in our Tiers, You … a Hegemony Tier Ruler +10, You are Allies +20, You are their Rightful Liege +20, You are not their Rightful Liege -20, Encircled by your Realm, Your Powerful Vassals Opinion of you (max +20), You are just a child -5, Spending Influence +25, You are Bankrupt -100, Historical … ties to Bureaucratic Government +30, Head of Faith -500, Cowed by predecessor's beheading +200, The recipient is Obedient to you +20, Love Thy Neighbour +15, You are at or above your Vassal Limit -1,000, You are not Tribal -20, You are Tribal -20, The recipient is Nomadic -50, You are not Nomadic -75, You are Nomadic -75, Difference in your Military Strength (max +20), Ambitious -20, Paranoid -20, Arrogant -20, Fickle -10, Stubborn -10, Trusting +5, Content +5, Religious Exemption +60, Religious Exemption +30, Low Feudal Obligations +30, High Feudal Obligations -40, Is already a Tributary -35, Mandalas prefer to be Tributaries -25, Your Mandala Radiance (max +200) and The recipient's Realm Size.
How much does Offer Vassalage cost?
Influence (varies), Piety (varies) (patch 1.20.1.2).

Will they accept?

The AI adds these up and accepts above zero. Reasons in italics are the script's, with no label in the game.

ReasonAmount
Base-50
Your claim is illegitimate
when
-10
You have True Ruler
when
+20
Virtuoso Arbitrator
when
  • Has the trait Virtuoso Arbitrator
+25
You have a reputation as a fair ruler
when
  • Has the Modifier: Masterful Negotiator
+20
Previously swayed during the Iranian Intermezzo
when
  • The character you target: Has the opinion “Influenced” of you
+20
You have the flame of persia Modifier
when
  • You › Your dynasty:
    • has_dynasty_modifier = fp3_rekindler_of_iran_modifier
  • The character you target › Their culture: The Culture has the Iranian Cultural Pillar
+20
The recipient is impressed by the Court Grandeur of your Diplomatic Court
when
  • Have a Royal Court
  • has_court_type = court_diplomatic
  • Court grandeur current level at least 1
varies
Your Level of Devotion
when
  • Any character struggle:
    • has_struggle_phase_parameter = piety_level_affects_vassalage_acceptance
varies
Inspection Bonus
when
  • The character you target:
    • is_target_in_variable_list = { name = lesser_inspection_bonus target = scope:actor }
+5
Inspection Bonus
when
  • The character you target:
    • is_target_in_variable_list = { name = inspection_bonus target = scope:actor }
+10
Successful Inspection
when
  • The character you target:
    • is_target_in_variable_list = { name = inspection_reward target = scope:actor }
+10
Inspection Focus: Vassal Acceptance
when
+10
Your low Legitimacy
when
  • has_legitimacy_flag = reduced_vassalization_acceptance
-25
Your low Legitimacy
when
  • has_legitimacy_flag = very_reduced_vassalization_acceptance
-50
Your low Legitimacy
when
  • has_legitimacy_flag = massively_reduced_vassalization_acceptance
-75
Your high Legitimacy
when
  • has_legitimacy_flag = increased_vassalization_acceptance
+25
Your high Legitimacy
when
  • has_legitimacy_flag = very_increased_vassalization_acceptance
+50
Your high Legitimacy
when
  • has_legitimacy_flag = extra_increased_vassalization_acceptance
+75
You were crowned by the Clergy
when
  • One of these

    • Has the Modifier: First of Consecrated Monarchs
  • The character you target: Their faith is the same as that of actor
+25
Their Head of Faith thinks well of you
when
  • You are not the Head of Faith
  • One of these

    • Has the Modifier: First of Consecrated Monarchs
  • The character you target: Their faith is the same as that of actor
varies
Cultural Acceptance
when
  • NOT = { has_same_culture_as = scope:recipient }
  • Your government is not Nomadic
  • Does not have the Trait: Way of the Nomad
  • Your culture:
    • cultural_acceptance = { target = scope:recipient.culture value <= 90 }
offer_vassalage_acceptance_value
They is part of an Isolationist Culture
when
  • Your culture is not the target’s
  • The target’s culture: Their culture has the tradition Isolationist
-20
You are of a different Faith
when
  • Your government is not Nomadic
  • Does not have the Trait: Way of the Nomad
  • The character you target:
    • None of these

      • Their faith is the same as that of actor
      • Their rite: Has the Pluralist Doctrine
varies
You are of a different Faith
when
  • Your government is not Nomadic
  • Does not have the Trait: Way of the Nomad
  • The character you target:
    • Their faith is the same as that of actor
    • None of these

      • Your rite: Has the Pluralist Doctrine
    • Their rite: Has the Pluralist Doctrine
varies
You are of a different Faith
when
  • Your government is not Nomadic
  • Does not have the Trait: Way of the Nomad
  • The character you target:
    • Their faith is the same as that of actor
    • Your rite: Has the Pluralist Doctrine
    • Their rite: Has the Pluralist Doctrine
varies
Intimidated by you
when
  • The character you target:
    • has_dread_level_towards = { target = scope:actor level = 1 }
intimidated_external_reason_value
Terrified of you
when
  • The character you target:
    • has_dread_level_towards = { target = scope:actor level = 2 }
cowed_external_reason_value
Their opinion of you × 0.7
when
varies
Their opinion of you × 0.35
when
varies
They is your Friend
when
  • The character you target:
    • Has you as friend
    • Does not have you as best friend
+10
They is your Best Friend
when
  • The character you target: Has you as best friend
+20
They is your Lover
when
  • The character you target:
    • Has you as lover
    • Does not have you as soulmate
+10
They is your Soulmate
when
  • The character you target: Has you as soulmate
+20
They is your Rival
when
  • The character you target:
    • Has you as rival
    • Does not have you as nemesis
-100
They is your Nemesis
when
  • The character you target: Has you as nemesis
-1,000
They belongs to your Dynasty
when
  • The character you target: Is of the same dynasty as you
+5
You speak the … Language
when
  • knows_language_of_culture = scope:recipient.culture
+5
The recipient … of the … Tier
when
varies
You recently Waged War
when
  • No in list:
  • The character you target:
    • Any truce holder:
    • No in list:
-50
They fought for Independence against me
when
  • The character you target: Independence war former liege is scope:actor
-200
Their realm is distant from yours
when
  • character_is_realm_neighbor = scope:recipient
  • None of these

    • character_is_land_realm_neighbor = scope:recipient
    • You:
      • is_rightful_liege_of = scope:recipient
-100
Their realm is distant from yours
when
  • NOT = { character_is_realm_neighbor = scope:recipient }
  • The character you target:
    • If is not landed:
      • None of these

        • Their capital county’s holder: Is you or your liege
    • Their capital province:
      • squared_distance = { target = scope:actor.capital_province value < 200000 }
-250
Their realm is remote from yours
when
  • NOT = { character_is_realm_neighbor = scope:recipient }
  • The character you target:
    • If is not landed:
      • None of these

        • Their capital county’s holder: Is you or your liege
    • Their capital province:
      • squared_distance = { target = scope:actor.capital_province value >= 200000 }
-500
They is part of the Iberian Struggle and you are not
when
  • None of these

    • Any character struggle:
      • is_struggle_type = iberian_struggle
  • The character you target › Any character struggle:
    • is_struggle_type = iberian_struggle
-35
They is a Claimant to …
when
  • Your primary title › The character you target:
    • has_claim_on = prev
-20
Major difference in our Tiers
when
  • tier_difference = { target = scope:recipient value > 1 }
varies
You … a Hegemony Tier Ruler
when
+10
You are Allies
when
  • The character you target: Is allied to you
+20
You are their Rightful Liege
when
  • If government allows: government ignores rightful liege penalties › The target’s primary title › Any this title or de jure above:
    • holder ?= scope:actor
  • Otherwise:
    • is_rightful_liege_of = scope:recipient
+20
You are not their Rightful Liege
when
  • None of these

    • You:
      • is_rightful_liege_of = scope:recipient
  • None of these

    • The send tribute:
      • always = yes
-20
Encircled by your Realm
when
  • The character you target:
    • No neighboring top liege realm owner:
    • None of these

      • Any realm county: Is coastal County
varies
Your Powerful Vassals Opinion of you (max +20)
when
  • Number of powerful vassals at least 1
varies
You are just a child
when
  • Is under 12 years old
  • The character you target: Age more than 16
-5
Spending Influence
when
  • The option “influence send option” is chosen
+25
You are Bankrupt
when
  • root.gold <= -1
-100
Historical … ties to Bureaucratic Government
when
  • you has administrative government mechanic
  • The character you target › Their culture:
    • One of these

      • One of these

        • this = culture:greek
        • or

          Any parent culture or above:
          • this = culture:greek
      • or

        One of these

        • this = culture:han
        • or

          Any parent culture or above:
          • this = culture:han
      • or

        One of these

        • this = culture:baekje
        • or

          Any parent culture or above:
          • this = culture:baekje
      • or

        One of these

        • this = culture:goguryeo
        • or

          Any parent culture or above:
          • this = culture:goguryeo
      • or

        One of these

        • this = culture:silla
        • or

          Any parent culture or above:
          • this = culture:silla
      • or

        One of these

        • this = culture:viet
        • or

          Any parent culture or above:
          • this = culture:viet
+30
A scripted reason
when
  • faith:catholic.religious_head = scope:actor
  • Is played by the AI
-50
Head of Faith
when
-500
Cowed by predecessor's beheading
when
  • Has “severed head vassalization” (a variable the game's script sets)
+200
The recipient is Obedient to you
when
  • Is obedient to you
+20
Love Thy Neighbour
when
  • Your Personal Tenets unlock tenet love thy neighbour vassalage acceptance
+15
You are at or above your Vassal Limit
when
  • Vassal limit available less than 1
-1,000
You are not Tribal
when
  • Your government is not a Tribal-type Government
  • The character you target: Government is a Tribal-type Government
-20
You are Tribal
when
  • Your Government is a Tribal-type Government
  • The character you target: Their government is not a Tribal-type Government
-20
The recipient is Nomadic
when
-50
You are not Nomadic
when
  • Your government is not Nomadic
  • The character you target: Government is Nomadic
-75
You are Nomadic
when
-75
Difference in your Military Strength (max +20)varies
Ambitious
when
-20
Paranoid
when
-20
Arrogant
when
-20
Fickle
when
-10
Stubborn
when
-10
Trusting
when
+5
Content
when
+5
Religious Exemption
when
  • The option “religious exemption” is chosen
  • The character you target: Government is Feudal
+60
Religious Exemption
when
  • The option “religious exemption clan” is chosen
  • The character you target: Government is Clan
+30
Low Feudal Obligations
when
  • The option “low obligations” is chosen
  • The character you target: Government is Feudal
+30
High Feudal Obligations
when
  • The option “high obligations” is chosen
  • The character you target: Government is Feudal
-40
Is already a Tributary
when
-35
Mandalas prefer to be Tributaries
when
-25
Your Mandala Radiance (max +200)
when
  • Your capital province:
    • has_building_with_flag = mandala_capital_building
scope:actor.mandala_radiance_value
The recipient's Realm Size
when
varies
Their opinion of you
when
varies
Acceptance (ai_accept) (248 lines of game script)
base = -50
offer_vassalization_interaction_ai_acceptance_general = yes
modifier = {
	desc = obedient_interaction_reason
	trigger = {
		is_obedient_to = scope:actor
	}
	add = 20
}
modifier = {
	desc = tenet_love_thy_neighbour_boon_reason
	trigger = {
		scope:actor = {
			has_personal_tenet_flag = tenet_love_thy_neighbour_vassalage_acceptance
		}
	}
	add = 15
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_vassal_limit_tt
	trigger = {
		scope:actor = {
			vassal_limit_available < 1
		}
	}
	add = {
		value = -1000
	}
}
modifier = {
	desc = interaction_tribal_vs_nontribal
	trigger = {
		scope:recipient = {
			government_has_flag = government_is_tribal
		}
		scope:actor = {
			NOT = {
				government_has_flag = government_is_tribal
			}
		}
	}
	add = -20
}
modifier = {
	desc = interaction_nontribal_vs_tribal
	trigger = {
		scope:actor = {
			government_has_flag = government_is_tribal
		}
		scope:recipient = {
			NOT = {
				government_has_flag = government_is_tribal
			}
		}
	}
	add = -20
}
modifier = {
	desc = interaction_is_nomadic
	trigger = {
		scope:recipient = {
			government_has_flag = government_is_nomadic
		}
		scope:actor = {
			government_has_flag = government_is_nomadic
		}
	}
	add = -50
}
modifier = {
	desc = interaction_nomadic_vs_nonnomadic
	trigger = {
		scope:recipient = {
			government_has_flag = government_is_nomadic
		}
		scope:actor = {
			NOT = {
				government_has_flag = government_is_nomadic
			}
		}
	}
	add = -75
}
modifier = {
	desc = interaction_nonnomadic_vs_nomadic
	trigger = {
		scope:actor = {
			government_has_flag = government_is_nomadic
		}
		scope:recipient = {
			NOT = {
				government_has_flag = government_is_nomadic
			}
		}
	}
	add = -75
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_power_tt
	add = {
		value = 1
		subtract = {
			value = scope:recipient.max_military_strength
			divide = {
				value = scope:actor.current_military_strength
				min = 1
			}
		}
		multiply = 20
		ceiling = yes
	}
}
modifier = {
	desc = TAKE_THE_VOWS_AMBITIOUS
	trigger = {
		scope:recipient = {
			has_trait = ambitious
		}
	}
	add = -20
}
modifier = {
	desc = INTERACTION_PARANOID
	trigger = {
		scope:recipient = {
			has_trait = paranoid
		}
	}
	add = -20
}
modifier = {
	desc = INTERACTION_ARROGANT
	trigger = {
		scope:recipient = {
			has_trait = arrogant
		}
	}
	add = -20
}
modifier = {
	desc = INTERACTION_FICKLE
	trigger = {
		scope:recipient = {
			has_trait = fickle
		}
	}
	add = -10
}
modifier = {
	desc = INTERACTION_STUBBORN
	trigger = {
		scope:recipient = {
			has_trait = stubborn
		}
	}
	add = -10
}
modifier = {
	desc = TAKE_THE_VOWS_TRUSTING
	trigger = {
		scope:recipient = {
			has_trait = trusting
		}
	}
	add = 5
}
modifier = {
	desc = INTERACTION_CONTENT
	trigger = {
		scope:recipient = {
			has_trait = content
		}
	}
	add = 5
}
modifier = {
	add = 60
	scope:recipient = {
		government_has_flag = government_is_feudal
	}
	scope:religious_exemption = yes
	desc = CONTRACT_RELIGIOUS_EXEMPTION_REASON
}
modifier = {
	add = 30
	scope:recipient = {
		government_has_flag = government_is_clan
	}
	scope:religious_exemption_clan = yes
	desc = CONTRACT_RELIGIOUS_EXEMPTION_REASON
}
modifier = {
	add = 30
	scope:recipient = {
		government_has_flag = government_is_feudal
	}
	scope:low_obligations = yes
	desc = CONTRACT_LOW_TAXES_REASON
}
modifier = {
	add = -40
	scope:recipient = {
		government_has_flag = government_is_feudal
	}
	scope:high_obligations = yes
	desc = CONTRACT_HIGH_TAXES_REASON
}
modifier = {
	scope:recipient = {
		is_tributary_of = scope:actor
	}
	scope:actor = {
		government_has_flag = government_is_mandala
	}
	add = -35
	desc = is_tributary_of_me_mandala
}
modifier = {
	scope:recipient = {
		government_has_flag = government_is_mandala
	}
	scope:actor = {
		government_has_flag = government_is_mandala
	}
	add = -25
	desc = is_mandala_government
}
modifier = {
	scope:actor = {
		has_mandala_capital_trigger = yes
	}
	add = scope:actor.mandala_radiance_value
	desc = actor_positive_mandala_radiance
}
subject_realm_size_lose_weight_modifier = {
	DEVARAJA = scope:actor
	SUBJECT = scope:recipient
}
opinion_modifier = {
	trigger = {
		scope:actor = {
			government_has_flag = government_is_mandala
		}
	}
	who = scope:recipient
	opinion_target = scope:actor
	multiplier = 1
}

As written in game/common/character_interactions/00_character_interactions.txt.

What happens

If they accept

If they refuse

Options when sending

  • Low Feudal Obligations
  • Normal Feudal Obligations
  • High Feudal Obligations
  • Religious Exemption
  • Religious Exemption
  • No Exemption
  • Offer Influence
  • Offer nothing

Events it fires: char_interaction.0001, char_interaction.0002

• 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) (41 lines of game script)
is_available = is_landed = yes
trigger_if = {
	limit = {
		is_ai = yes
	}
	highest_held_title_tier > tier_county
	this = top_liege
	vassal_limit_available > 1
	is_adult = yes
}
is_shown = scope:recipient = {
	this != scope:actor
	is_playable_character = yes
	OR = {
		AND = {
			top_liege ?= this
			is_tributary = no
		}
		is_tributary_of_suzerain_or_above = scope:actor
	}
	trigger_if = {
		limit = {
			scope:actor = {
				NOT = {
					government_has_flag = government_is_mandala
				}
			}
		}
		highest_held_title_tier < scope:actor.highest_held_title_tier
	}
	NOR = {
		government_has_flag = cannot_be_vassal_or_liege
		government_has_flag = government_is_herder
	}
}
NOT = {
	scope:actor = {
		has_variable = had_mpo_temujin_flavor_0010
		var:had_mpo_temujin_flavor_0010 ?= scope:recipient
	}
}

As written in game/common/character_interactions/00_character_interactions.txt.

Can be sent when (is_valid…) (59 lines of game script)
scope:actor = {
	trigger_if = {
		limit = {
			is_confederation_member = yes
		}
		exists = house.house_confederation
	}
	trigger_if = {
		limit = {
			has_title = title:h_china
		}
		situation:dynastic_cycle ?= {
			NOT = {
				situation_current_phase = situation_dynastic_cycle_phase_instability
			}
			trigger_if = {
				limit = {
					situation_current_phase = situation_dynastic_cycle_phase_stability_advancement
				}
				scope:recipient = {
					custom_tooltip = {
						text = recipient_is_not_celestial_desc
						government_has_flag = government_is_celestial
					}
				}
			}
		}
	}
}
scope:recipient = {
	is_at_war = no
	is_confederation_member = no
	custom_description = {
		text = was_recently_granted_independence
		NOT = {
			has_opinion_modifier = {
				modifier = granted_independence_opinion
				target = scope:actor
			}
		}
	}
	trigger_if = {
		limit = {
			is_tributary = yes
		}
		custom_tooltip = {
			text = was_recently_granted_independence
			scope:recipient.suzerain = scope:actor
		}
	}
	trigger_if = {
		limit = {
			scope:actor = {
				government_has_flag = government_is_mandala
			}
		}
		highest_held_title_tier < scope:actor.highest_held_title_tier
	}
}

As written in game/common/character_interactions/00_character_interactions.txt.

Effects (on_send, on_accept, on_decline) (23 lines of game script)
on_accept = offer_vassalization_interaction_effect = yes
scope:actor = {
	trigger_event = char_interaction.0001
	if = {
		limit = {
			has_character_modifier = event_bonus_to_vassal_accept
		}
		remove_character_modifier = event_bonus_to_vassal_accept
	}
	if = {
		limit = {
			any_character_struggle = {
				has_struggle_phase_parameter = offer_vassalization_removes_disloyalty
			}
		}
		scope:recipient = {
			remove_trait = disloyal
		}
	}
}
on_decline = scope:actor = {
	trigger_event = char_interaction.0002
}

As written in game/common/character_interactions/00_character_interactions.txt.

Category
Vassal actions
Cost: Influence
varies
Cost: Piety
varies
In the menu
under More…
ID
offer_vassalization_interaction

Source: game/common/character_interactions/00_character_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.

Spotted a mistake on this page?