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

Submit to Suzerain

No costAccepted automatically in some cases; otherwise the AI weighs it

Ask to become a Tributary of the recipient

What you need

You

To send it

  • If

    • The character you target:
      • primary_title.tier = tier_hegemony

    Then

    • … are NOT Independent or non-Tributary and neighboring the …
  • If

    Then

    • always = yes

    Otherwise

    • You outrank …
  • You are not a member of a Confederation
  • Is at not War
  • Also needed: available (not imprisoned, not incapable, not in an army) · none of the traits Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux · not busy in an Activity · not planning another Activity · not busy in a Mandala succession

To see it in the menu

  • Is landed
  • Is an Independent Ruler
  • You are not a member of a Confederation
  • Your government does not have the cannot be vassal or liege flag
  • If played by the AI:
    • current_military_strength < scope:recipient.one_and_a_half_times_current_military_strength
    • primary_title.tier < scope:recipient.primary_title.tier

The character you target

  • Is an Independent Ruler
  • Does not have you as top suzerain
  • has_realm_law_flag = can_have_tributaries
  • Their government is not unplayable

Submit to Suzerain is a vassal character interaction in Crusader Kings III. You need: Is available (not imprisoned, not incapable, not in an army), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, You are currently busy … and 4 more. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include The recipient is Nomadic (+100), Conqueror (-1,000), Major difference in our Tiers (+20) and 7 more. Patch 1.20.1.2, from game/common/character_interactions/00_tributary_interactions.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Submit to Suzerain in CK3?
You: Is available (not imprisoned, not incapable, not in an army), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, You are currently busy …, You are already planning another Activity, You are currently busy in a Mandala succession, You are not a member of a Confederation and Is at not War. (patch 1.20.1.2)
How do I get the AI to accept Submit to Suzerain?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: The recipient is Nomadic +100, Conqueror -1,000, Major difference in our Tiers +20, Their realm is distant from yours -15, Their realm is remote from yours -25, They is your Rival -10, They is your Nemesis -100, They belongs to your Dynasty +10, Low Tributary Obligations -25 and High Tributary Obligations +25.

Will they accept?

Accepted automatically when:

Otherwise 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
The recipient is Nomadic
when
  • The character you target: Government is Nomadic
+100
Conqueror
when
  • Has “conqueror” (a variable the game's script sets)
-1,000
Major difference in our Tiers
when
  • tier_difference = { target = scope:recipient value > 1 }
+20
Their realm is distant from yours
when
  • No neighboring top liege realm owner:
  • Your capital province:
    • squared_distance = { target = scope:recipient.capital_province value < squared_distance_major }
-15
Their realm is remote from yours
when
  • No neighboring top liege realm owner:
  • Your capital province:
    • squared_distance = { target = scope:recipient.capital_province value >= squared_distance_major }
-25
They is your Rival
when
  • The character you target:
    • Has you as rival
    • Does not have you as nemesis
-10
They is your Nemesis
when
  • The character you target: Has you as nemesis
-100
They belongs to your Dynasty
when
  • The character you target: Is of the same dynasty as you
+10
Their personality (AI values: greed 0.75)varies
Their opinion of you
when
varies
Low Tributary Obligations
when
  • The option “low obligations” is chosen
-25
High Tributary Obligations
when
  • The option “high obligations” is chosen
+25
Acceptance (ai_accept) (121 lines of game script)
base = 50
modifier = {
	desc = interaction_is_nomadic
	scope:recipient = {
		government_has_flag = government_is_nomadic
	}
	add = 100
}
modifier = {
	add = -1000
	desc = NO_FRIVOLOUS_ACTIVITIES_REASON
	scope:actor = {
		has_variable = conqueror
	}
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_widetitletier_tt
	trigger = {
		scope:actor = {
			tier_difference = {
				target = scope:recipient
				value > 1
			}
		}
	}
	add = 20
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_distantrealm_tt
	trigger = {
		scope:actor = {
			NOT = {
				any_neighboring_top_liege_realm_owner = {
					this = scope:recipient
				}
			}
		}
		scope:actor.capital_province = {
			squared_distance = {
				target = scope:recipient.capital_province
				value < squared_distance_major
			}
		}
	}
	add = -15
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_remoterealm_tt
	trigger = {
		scope:actor = {
			NOT = {
				any_neighboring_top_liege_realm_owner = {
					this = scope:recipient
				}
			}
		}
		scope:actor.capital_province = {
			squared_distance = {
				target = scope:recipient.capital_province
				value >= squared_distance_major
			}
		}
	}
	add = -25
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_rival_tt
	trigger = {
		scope:recipient = {
			has_relation_rival = scope:actor
			NOT = {
				has_relation_nemesis = scope:actor
			}
		}
	}
	add = -10
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_nemesis_tt
	trigger = {
		scope:recipient = {
			has_relation_nemesis = scope:actor
		}
	}
	add = -100
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_dynasty_tt
	trigger = {
		scope:recipient = {
			dynasty = scope:actor.dynasty
		}
	}
	add = 10
}
ai_value_modifier = {
	ai_greed = 0.75
	min = 0
}
opinion_modifier = {
	trigger = {
		NOT = {
			scope:recipient = {
				government_has_flag = government_is_mandala
			}
		}
	}
	who = scope:recipient
	opinion_target = scope:actor
	multiplier = 1
}
modifier = {
	add = -25
	scope:low_obligations = yes
	desc = CONTRACT_LOW_TRIBUTARY_TAXES_REASON
}
modifier = {
	add = 25
	scope:high_obligations = yes
	desc = CONTRACT_HIGH_TRIBUTARY_TAXES_REASON
}

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

What happens

If they accept

If they refuse

Options when sending

  • Meager Tribute
  • Expected Tribute
  • Rich Tribute

Events it fires: char_interaction.0360, char_interaction.0361

• 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) (24 lines of game script)
is_available = is_landed = yes
top_liege ?= this
is_confederation_member = no
NOT = {
	government_has_flag = cannot_be_vassal_or_liege
}
is_shown = scope:recipient = {
	is_independent_ruler = yes
	NOR = {
		this = scope:actor
		this = scope:actor.suzerain
		top_suzerain ?= scope:actor
	}
	can_have_tributaries_trigger = yes
}
scope:actor = {
	trigger_if = {
		limit = {
			is_ai = yes
		}
		current_military_strength < scope:recipient.one_and_a_half_times_current_military_strength
		primary_title.tier < scope:recipient.primary_title.tier
	}
}

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

Can be sent when (is_valid…) (54 lines of game script)
trigger_if = {
	limit = {
		scope:recipient = {
			primary_title.tier = tier_hegemony
		}
	}
	custom_tooltip = {
		text = become_tributary_interaction_hegemony_not_neighbor_tt
		scope:actor = {
			OR = {
				is_tributary_or_independent_neighbor_of_hegemon_trigger = {
					HEGEMON = h_china
				}
				is_tributary_or_independent_neighbor_of_hegemon_trigger = {
					HEGEMON = h_roman_empire
				}
				is_tributary_or_independent_neighbor_of_hegemon_trigger = {
					HEGEMON = h_eastern_roman_empire
				}
				is_tributary_or_independent_neighbor_of_hegemon_trigger = {
					HEGEMON = h_dar_al_islam
				}
				is_tributary_or_independent_neighbor_of_hegemon_trigger = {
					HEGEMON = h_india
				}
			}
		}
	}
}
trigger_if = {
	limit = {
		scope:recipient = {
			government_has_flag = government_is_mandala
		}
		scope:actor = {
			OR = {
				government_has_flag = government_is_tribal
				government_has_flag = government_is_mandala
			}
		}
	}
	always = yes
}
trigger_else = {
	custom_tooltip = {
		text = offer_tributarization_interaction_aibehavior_not_higher_rank
		scope:recipient.highest_held_title_tier >= scope:actor.highest_held_title_tier
	}
}
scope:actor = {
	is_available_allow_travelling = yes
	is_confederation_member = no
	is_at_war = no
}

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

Effects (on_send, on_accept, on_decline) (172 lines of game script)
on_send = if = {
	limit = {
		scope:recipient = {
			highest_held_title_tier >= tier_hegemony
		}
	}
	scope:actor = {
		if = {
			limit = {
				scope:recipient.primary_title = title:h_china
			}
			open_view_data = {
				view = decision_detail
				data = decision:tribute_mission_decision_china
				player = scope:actor
			}
		}
		else_if = {
			limit = {
				scope:recipient.primary_title = title:h_roman_empire
			}
			open_view_data = {
				view = decision_detail
				data = decision:tribute_mission_decision_roman_empire
				player = scope:actor
			}
		}
		else_if = {
			limit = {
				scope:recipient.primary_title = title:h_eastern_roman_empire
			}
			open_view_data = {
				view = decision_detail
				data = decision:tribute_mission_decision_eastern_roman_empire
				player = scope:actor
			}
		}
		else_if = {
			limit = {
				scope:recipient.primary_title = title:h_dar_al_islam
			}
			open_view_data = {
				view = decision_detail
				data = decision:tribute_mission_decision_dar_al_islam
				player = scope:actor
			}
		}
		else_if = {
			limit = {
				scope:recipient.primary_title = title:h_india
			}
			open_view_data = {
				view = decision_detail
				data = decision:tribute_mission_decision_india
				player = scope:actor
			}
		}
	}
}
on_accept = if = {
	limit = {
		scope:actor.suzerain ?= {
			NOR = {
				government_has_flag = government_is_mandala
				this = scope:actor
			}
		}
	}
	scope:actor.suzerain = {
		if = {
			limit = {
				has_relation_rival = scope:actor
			}
			scope:actor = {
				set_relation_nemesis = {
					reason = rival_disloyal_tributary
					target = scope:actor.suzerain
				}
			}
		}
		else = {
			scope:actor = {
				set_relation_rival = {
					reason = rival_disloyal_tributary
					target = scope:actor.suzerain
				}
			}
		}
		add_opinion = {
			modifier = betrayal_opinion
			target = scope:actor
			opinion = -75
		}
		if = {
			limit = {
				NOT = {
					any_claim = {
						this = scope:actor.primary_title
					}
				}
			}
			add_unpressed_claim = scope:actor.primary_title
		}
	}
}
else_if = {
	limit = {
		scope:actor.suzerain ?= {
			NOT = {
				this = scope:actor
			}
		}
	}
	scope:actor.suzerain = {
		add_opinion = {
			modifier = betrayal_opinion
			target = scope:actor
			opinion = -30
		}
	}
}
if = {
	limit = {
		scope:recipient = {
			highest_held_title_tier < tier_hegemony
		}
	}
	scope:actor = {
		if = {
			limit = {
				is_tributary = yes
			}
			mandala_end_tributary_with_notification_effect = yes
		}
	}
	start_tributary_interaction_effect = {
		TRIBUTARY = scope:actor
		SUZERAIN = scope:recipient
	}
	scope:actor = {
		trigger_event = char_interaction.0360
	}
	scope:recipient = {
		if = {
			limit = {
				scope:high_obligations = yes
			}
			add_opinion = {
				modifier = tributary_volunteered_opinion
				target = scope:actor
				opinion = 20
			}
		}
		else_if = {
			limit = {
				scope:normal_obligations = yes
			}
			add_opinion = {
				modifier = tributary_volunteered_opinion
				target = scope:actor
			}
		}
		consume_all_criminal_reasons_effect = {
			LIEGE = scope:recipient
			CRIMINAL = scope:actor
		}
	}
}
else = { }
on_decline = scope:actor = {
	trigger_event = char_interaction.0361
}

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

Category
Vassal actions
In the menu
under More…
ID
become_tributary_interaction

Source: game/common/character_interactions/00_tributary_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?