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

Interaction · Diplomatic actions

Demand as Tributary

from 75PrestigeAccepted automatically in some cases; otherwise the AI weighs it

Demand that the recipient becomes your Tributary

What you need

You

To send it

  • NOT = { has_truce = scope:recipient }
  • Must be a Neighboring Ruler (excluding disconnected Tributaries)
  • In some cases (on a condition the game doesn't show) › You: You have 75
  • 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

The character you target

To send it

To see it in the menu

  • Highest held Title is at least County Rank
  • Is landed
  • Is an Independent Ruler
  • Their government does not have the cannot be vassal or liege flag
  • Their government does not have the government is mandala flag
  • Their government is not unplayable

Demand as Tributary is a diplomatic 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 3 more. The character you target needs: Is not a Tributary, Is at not War and Is not a member of a Confederation. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include You hold… the … (+100), The recipient … a … Government (+25), You have True Ruler (+20) and 24 more. It costs Prestige (from 75). Patch 1.20.1.2, from game/common/character_interactions/00_tributary_interactions.txt.

for a guide, post or blog
Quick answers (3)
What are the requirements for Demand as Tributary 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 and Must be a Neighboring Ruler (excluding disconnected Tributaries). The character you target: Is not a Tributary, 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 Demand as Tributary?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: You hold… the … +100, The recipient … a … Government +25, You have True Ruler +20, Prostrating Rags +5, Prostrating Rags +10, Prostrating Rags +15, The recipient's Boldness, The recipient's Greed, The recipient is Obedient to you +40, You … the Gurkhan +20, The Steppe Season is a Zud +25, Holds no Casus Belli -200, Threat from held Claims, Similar Military Power (current), Relative Military Power, Relative Military Power, Military Power including Allies, Military Power including Allies, The recipient … of the the recipient Tier -100, The recipient … of the the recipient Tier -200, Difference in Dominance -20, Difference in Dominance +20, You are a Meritocratic Khanate +60, You … a filthy Nomadic Horse Lord, They is your Rival -100, They is your Nemesis -200, They belongs to your Dynasty +10, You are of a different Faith, Encircled by your Realm +30, Cultural Acceptance, You speak the … Language +5, Your low Legitimacy -15, Your low Legitimacy -25, Your low Legitimacy -50, Your low Legitimacy -75, Your high Legitimacy +25, Your high Legitimacy +50 and Your high Legitimacy +75.
How much does Demand as Tributary cost?
Prestige (from 75) (patch 1.20.1.2).

Will they accept?

Accepted automatically when:

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.

ReasonAmount
Base-60
You hold… the …
when
+100
The recipient … a … Government
when
+25
You have True Ruler
when
+20
Prostrating Rags
when
  • Your domicile:
    • has_domicile_parameter = nomad_yurt_increased_tributary_acceptance_lvl_1
+5
Prostrating Rags
when
  • Your domicile:
    • has_domicile_parameter = nomad_yurt_increased_tributary_acceptance_lvl_2
+10
Prostrating Rags
when
  • Your domicile:
    • has_domicile_parameter = nomad_yurt_increased_tributary_acceptance_lvl_3
+15
The recipient's Boldness
when
  • NOT = { ai_boldness = 0 }
varies
The recipient's Greed
when
  • Ai greed more than 0
varies
The recipient is Obedient to you
when
  • Is obedient to you
+40
You … the Gurkhan
when
  • The character you target: Government is Nomadic
+20
The Steppe Season is a Zud
when
  • Any character situation › Any situation sub region:
    • has_sub_region_phase_parameter = the_great_steppe_easier_tributaries
    • Any situation sub region participant group:
      • participant_group_type = nomad_rulers_capital
      • participant_group_has_character = scope:puppet_or_actor
  • The character you target: Government is Nomadic
+25
Holds no Casus Belli
when
  • NOT = { has_any_cb_on = scope:recipient }
  • The character you target: Does not have a Herder Government
-200
Threat from held Claims
when
  • has_claim_on = scope:title_temp
  • The character you target › Any held title: Title tier at least County
varies
Similar Military Power (current)
when
  • scope:recipient.current_power_ninety_percent_value < scope:puppet_or_actor.military_power
  • scope:recipient.military_power > scope:puppet_or_actor.current_power_ninety_percent_value
varies
Relative Military Power
when
  • scope:recipient.current_power_ninety_percent_value > scope:puppet_or_actor.military_power
varies
Relative Military Power
when
  • scope:recipient.current_power_ninety_percent_value < scope:puppet_or_actor.military_power
varies
Military Power including Allies
when
  • scope:recipient.current_power_ninety_percent_value < scope:puppet_or_actor.military_power
  • scope:recipient.current_power_with_allies_value > scope:puppet_or_actor.current_power_with_allies_value
  • The character you target: Any ally:
varies
Military Power including Allies
when
  • Any ally:
  • scope:recipient.current_power_ninety_percent_value > scope:puppet_or_actor.military_power
  • scope:recipient.current_power_with_allies_value < scope:puppet_or_actor.current_power_with_allies_value
varies
The recipient … of the the recipient Tier
when
-100
The recipient … of the the recipient Tier
when
-200
Difference in Dominance
when
  • Your Government is Nomadic
  • scope:recipient.dominance_value > scope:puppet_or_actor.dominance_value
  • The character you target: Government is Nomadic
-20
Difference in Dominance
when
  • Your Government is Nomadic
  • root.dominance_value > scope:recipient.dominance_value
  • The character you target: Government is Nomadic
+20
You are a Meritocratic Khanate
when
+60
You … a filthy Nomadic Horse Lord
when
varies
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
-200
They belongs to your Dynasty
when
  • The character you target: Is of the same dynasty as you
+10
You are of a different Faith
when
varies
Encircled by your Realm
when
  • The character you target:
    • No neighboring top suzerain realm owner:
    • None of these

      • Any realm county: Is coastal County
+30
Cultural Acceptance
when
  • None of these

  • NOT = { has_same_culture_as = scope:recipient }
  • Your culture:
    • cultural_acceptance = { target = scope:recipient.culture value < 50 }
varies
You speak the … Language
when
  • knows_language_of_culture = scope:recipient.culture
+5
Your low Legitimacy
when
  • has_legitimacy_flag = slightly_reduced_tributarization_acceptance
-15
Your low Legitimacy
when
  • has_legitimacy_flag = reduced_tributarization_acceptance
-25
Your low Legitimacy
when
  • has_legitimacy_flag = very_reduced_tributarization_acceptance
-50
Your low Legitimacy
when
  • has_legitimacy_flag = massively_reduced_tributarization_acceptance
-75
Your high Legitimacy
when
  • has_legitimacy_flag = increased_tributarization_acceptance
+25
Your high Legitimacy
when
  • has_legitimacy_flag = very_increased_tributarization_acceptance
+50
Your high Legitimacy
when
  • has_legitimacy_flag = extra_increased_tributarization_acceptance
+75
Their opinion of youvaries
A scripted reason
when
  • Has “severed head vassalization” (a variable the game's script sets)
+200
Acceptance (ai_accept) (240 lines of game script)
base = -60
modifier = {
	trigger = {
		scope:puppet_or_actor ?= {
			highest_held_title_tier >= tier_hegemony
		}
	}
	add = 100
	desc = tributary_interaction_aibehavior_actor_hegemon_tier_tt
}
modifier = {
	scope:puppet_or_actor ?= {
		primary_title = title:h_china
	}
	government_has_flag = government_is_meritocratic
	add = 25
	desc = tributary_interaction_aibehavior_recipient_confucian_government_tt
}
modifier = {
	desc = offer_vassalization_true_ruler_perk_tt
	trigger = {
		scope:puppet_or_actor ?= {
			has_perk = true_ruler_perk
		}
	}
	add = true_ruler_value
}
modifier = {
	desc = tributary_yurt_02_domicile_building
	trigger = {
		scope:puppet_or_actor.domicile ?= {
			has_domicile_parameter = nomad_yurt_increased_tributary_acceptance_lvl_1
		}
	}
	add = 5
}
modifier = {
	desc = tributary_yurt_02_domicile_building
	trigger = {
		scope:puppet_or_actor.domicile ?= {
			has_domicile_parameter = nomad_yurt_increased_tributary_acceptance_lvl_2
		}
	}
	add = 10
}
modifier = {
	desc = tributary_yurt_02_domicile_building
	trigger = {
		scope:puppet_or_actor.domicile ?= {
			has_domicile_parameter = nomad_yurt_increased_tributary_acceptance_lvl_3
		}
	}
	add = 15
}
modifier = {
	NOT = {
		ai_boldness = 0
	}
	add = {
		value = ai_boldness
		multiply = -1
		divide = 2
	}
	desc = TRIBUTARY_BOLDNESS_REASON
}
modifier = {
	ai_greed > 0
	add = {
		value = ai_greed
		multiply = -1
		divide = 4
	}
	desc = TRIBUTARY_GREED_REASON
}
modifier = {
	exists = scope:puppet_or_actor
	is_obedient_to = scope:puppet_or_actor
	add = 40
	desc = obedient_interaction_reason
}
modifier = {
	scope:puppet_or_actor ?= {
		is_gurkhan = yes
	}
	scope:recipient = {
		government_has_flag = government_is_nomadic
	}
	add = 20
	desc = gurkhan_interaction_reason
}
modifier = {
	exists = scope:puppet_or_actor
	any_character_situation = {
		any_situation_sub_region = {
			has_sub_region_phase_parameter = the_great_steppe_easier_tributaries
			any_situation_sub_region_participant_group = {
				participant_group_type = nomad_rulers_capital
				participant_group_has_character = scope:puppet_or_actor
			}
		}
	}
	scope:recipient = {
		government_has_flag = government_is_nomadic
	}
	add = 25
	desc = zud_season_reason
}
ai_military_threat_modifier_with_cbs = {
	SENDER = scope:recipient
	RECEIVER = scope:puppet_or_actor
	MULTIPLIER = 1
}
modifier = {
	desc = tributary_interaction_aibehavior_recipient_tier_tt
	trigger = {
		scope:recipient = {
			highest_held_title_tier = tier_kingdom
		}
	}
	add = -100
}
modifier = {
	desc = tributary_interaction_aibehavior_recipient_tier_tt
	trigger = {
		scope:recipient = {
			highest_held_title_tier >= tier_empire
		}
	}
	add = -200
}
modifier = {
	desc = demand_tributary_interaction_aibehavior_dominance_tt
	trigger = {
		scope:puppet_or_actor ?= {
			government_has_flag = government_is_nomadic
		}
		scope:recipient = {
			government_has_flag = government_is_nomadic
		}
		scope:recipient.dominance_value > scope:puppet_or_actor.dominance_value
	}
	add = -20
}
modifier = {
	desc = demand_tributary_interaction_aibehavior_dominance_tt
	trigger = {
		scope:puppet_or_actor ?= {
			government_has_flag = government_is_nomadic
		}
		scope:recipient = {
			government_has_flag = government_is_nomadic
		}
		scope:puppet_or_actor.dominance_value > scope:recipient.dominance_value
	}
	add = 20
}
modifier = {
	desc = demand_tributary_interaction_steppe_admin
	trigger = {
		scope:puppet_or_actor ?= {
			government_has_flag = government_is_steppe_admin
		}
		scope:recipient = {
			government_has_flag = government_is_nomadic
		}
	}
	add = 60
}
modifier = {
	desc = AI_FILTHY_HORSE_LORD_REASON
	trigger = {
		scope:puppet_or_actor ?= {
			government_has_flag = government_is_nomadic
		}
		scope:recipient = {
			NOT = {
				government_has_flag = government_is_nomadic
			}
		}
	}
	add = {
		value = -50
		if = {
			limit = {
				scope:recipient = {
					government_has_flag = government_is_tribal
				}
			}
			multiply = 0.5
		}
	}
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_rival_tt
	trigger = {
		exists = scope:puppet_or_actor
		scope:recipient = {
			has_relation_rival = scope:puppet_or_actor
			NOT = {
				has_relation_nemesis = scope:puppet_or_actor
			}
		}
	}
	add = -100
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_nemesis_tt
	trigger = {
		exists = scope:puppet_or_actor
		scope:recipient = {
			has_relation_nemesis = scope:puppet_or_actor
		}
	}
	add = -200
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_dynasty_tt
	trigger = {
		exists = scope:puppet_or_actor
		scope:recipient = {
			dynasty = scope:puppet_or_actor.dynasty
		}
	}
	add = 10
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
	trigger = {
		scope:puppet_or_actor ?= {
			NOT = {
				has_trait = nomadic_philosophy
				scope:recipient = {
					has_trait = nomadic_philosophy
				}
			}
			NOR = {
				faith = scope:recipient.faith
				rite = {
					rite_has_doctrine = doctrine_pluralism
# … (cut here; the rest is in the file)

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

What happens

If they accept

If they refuse

Events it fires: char_interaction.0362, char_interaction.0363

• 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) (58 lines of game script)
is_available = trigger_if = {
	limit = {
		is_ai = yes
	}
	highest_held_title_tier > 1
	is_independent_ruler = yes
	NOT = {
		highest_held_title_tier >= tier_hegemony
	}
}
is_shown = scope:puppet_or_actor ?= {
	can_get_tributaries_peacefully_trigger = yes
	is_landed = yes
	trigger_if = {
		limit = {
			scope:puppet_or_actor ?= {
				government_has_flag = government_is_mandala
			}
		}
		always = no
	}
	trigger_else = {
		can_get_tributaries_peacefully_trigger = yes
	}
	highest_held_title_tier < tier_hegemony
	NOT = {
		this = scope:recipient
		top_suzerain ?= scope:recipient.top_suzerain
	}
	any_land_neighboring_realm_with_tributaries_owner = {
		this = scope:recipient
	}
	trigger_if = {
		limit = {
			scope:actor = {
				is_ai = yes
			}
		}
		current_military_strength >= scope:recipient.one_and_a_half_times_current_military_strength
		primary_title.tier >= scope:recipient.primary_title.tier
	}
}
scope:recipient = {
	highest_held_title_tier >= tier_county
	is_landed = yes
	is_independent_ruler = yes
	NOR = {
		government_has_flag = cannot_be_vassal_or_liege
		government_has_flag = government_is_mandala
		government_has_flag = government_is_holy_order
	}
}
NOT = {
	scope:puppet_or_actor ?= {
		has_variable = had_mpo_temujin_flavor_0010
		var:had_mpo_temujin_flavor_0010 ?= scope:recipient
	}
}

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

Can be sent when (is_valid…) (36 lines of game script)
scope:puppet_or_actor = {
	NOT = {
		has_truce = scope:recipient
	}
	is_available_allow_travelling = yes
}
scope:recipient = {
	is_tributary = no
	is_at_war = no
	custom_tooltip = {
		text = demand_tributary_interaction_cooldown_active_tt
		NOT = {
			has_opinion_modifier = {
				modifier = tributary_demanded_opinion
				target = scope:puppet_or_actor
			}
		}
	}
	is_confederation_member = no
}
scope:puppet_or_actor = {
	custom_tooltip = {
		text = mpo_interaction_not_neighbouring_tt
		any_land_neighboring_realm_with_tributaries_owner = {
			this = scope:recipient
		}
	}
}
trigger_if = {
	limit = {
		scope:is_puppet_action ?= yes
	}
	scope:puppet_or_actor = {
		prestige >= minor_prestige_value
	}
}

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

Effects (on_send, on_accept, on_decline) (47 lines of game script)
on_accept = if = {
	limit = {
		scope:is_puppet_action ?= yes
	}
	scope:puppet_or_actor = {
		add_prestige = {
			value = {
				add = minor_prestige_value
				max = prestige
				multiply = -1
			}
		}
	}
}
start_tributary_interaction_effect = {
	TRIBUTARY = scope:recipient
	SUZERAIN = scope:puppet_or_actor
}
scope:puppet_or_actor = {
	trigger_event = char_interaction.0362
}
scope:recipient = {
	add_opinion = {
		modifier = tributary_demanded_opinion
		target = scope:puppet_or_actor
	}
}
consume_all_criminal_reasons_effect = {
	LIEGE = scope:puppet_or_actor
	CRIMINAL = scope:recipient
}
on_decline = scope:recipient = {
	add_opinion = {
		modifier = tributary_demanded_opinion
		target = scope:puppet_or_actor
	}
	custom_tooltip = demand_tributary_interaction_cooldown_tt
}
scope:puppet_or_actor = {
	trigger_event = char_interaction.0363
	if = {
		limit = {
			highest_held_title_tier >= tier_hegemony
		}
		add_legitimacy = -50
	}
}

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

Category
Diplomatic actions
Cost: Prestige
from 75
In the menu
main list
ID
demand_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?