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

Reassert Tributary

from 50PietyAccepted automatically in some cases; otherwise the AI weighs it

Attempt to coerce the recipient to remain your Tributary for another 12 months

What you need

You

To send it

  • Also needed: available (not imprisoned, not incapable)

To see it in the menu

The character you target

To send it

  • You recently tried to Reassert this Tributary
  • … has recently agreed to remain your Tributary and can be coerced again … at the earliest

To see it in the menu

  • Is a tributary of you
  • Is played by the AI
  • Cease tribute payments ai chance more than 0

Reassert Tributary is a vassal character interaction in Crusader Kings III. You need: Is available (not imprisoned, not incapable). The character you target needs: You recently tried to Reassert this Tributary. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include You … the recipient's Rival (-10), You … the recipient's Nemesis (-100), They belongs to the recipient's Dynasty (+10) and 6 more. It costs Piety (from 50). 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 Reassert Tributary in CK3?
You: Is available (not imprisoned, not incapable). The character you target: You recently tried to Reassert this Tributary. (patch 1.20.1.2)
How do I get the AI to accept Reassert Tributary?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Threat from held Claims, Similar Military Power (current), Relative Military Power, Relative Military Power, Military Power including Allies, Military Power including Allies, You … the recipient's Rival -10, You … the recipient's Nemesis -100, They belongs to the recipient's Dynasty +10, Mandala Overlord Radiance, Your Level of Devotion is … +10, The recipient's Realm Size, Ornate Temple Building +10, Majestic Temple Building +25, Temple Grounds Building +50, Grand Temple Complex Building +75 and Divine Temple Palace Building +100.
How much does Reassert Tributary cost?
Piety (from 50) (patch 1.20.1.2).

Will they accept?

Accepted automatically when:

  • Depending on always:
    • When always is scope:any hook: They use their Hook on …
    • When always is scope:dread: You leverage to make your case
    • When always is scope:pay piety: You spend to make your case
    • When always is scope:decrease tax obligation 1: You promise reduced obligations to make your argument
    • When always is scope:decrease tax obligation 2: You promise reduced obligations to make your argument
    • When always is scope:decrease tax obligation 3: You promise reduced obligations to make your argument
    • When always is scope:decrease tax obligation 4: You promise reduced obligations to make your argument
    • When always is scope:decrease tax obligation 5: You promise reduced obligations to make your argument
    • When always is scope:decrease piety obligation 1: You promise reduced obligations to make your argument
    • When always is scope:decrease piety obligation 2: You promise reduced obligations to make your argument
    • When always is scope:decrease levy obligation 1: You promise reduced obligations to make your argument
    • When always is scope:decrease levy obligation 2: You promise reduced obligations to make your argument
    • When always is scope:decrease levy obligation 3: You promise reduced obligations to make your argument
    • When always is scope:decrease levy obligation 4: You promise reduced obligations to make your argument
    • When always is scope:decrease levy obligation 5: You promise reduced obligations to make your argument

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-100
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:actor.military_power
  • scope:recipient.military_power > scope:actor.current_power_ninety_percent_value
varies
Relative Military Power
when
  • scope:recipient.current_power_ninety_percent_value > scope:actor.military_power
varies
Relative Military Power
when
  • scope:recipient.current_power_ninety_percent_value < scope:actor.military_power
varies
Military Power including Allies
when
  • scope:recipient.current_power_ninety_percent_value < scope:actor.military_power
  • scope:recipient.current_power_with_allies_value > scope: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:actor.military_power
  • scope:recipient.current_power_with_allies_value < scope:actor.current_power_with_allies_value
varies
You … the recipient's Rival
when
  • The character you target:
    • Has you as rival
    • Does not have you as nemesis
-10
You … the recipient's Nemesis
when
  • The character you target: Has you as nemesis
-100
They belongs to the recipient's Dynasty
when
  • The character you target: Is of the same dynasty as you
+10
Mandala Overlord Radiance
when
  • suzerain = { government_has_flag = government_is_mandala has_unruined_mandala_capital_trigger = yes mandala_radiance_value > 0 }
varies
Your Level of Devotion is …
when
+10
The recipient's Realm Size
when
varies
Ornate Temple Building
when
+10
Majestic Temple Building
when
+25
Temple Grounds Building
when
+50
Grand Temple Complex Building
when
+75
Divine Temple Palace Building
when
+100
Their opinion of youvaries
Acceptance (ai_accept) (64 lines of game script)
base = -100
ai_military_threat_modifier = {
	SENDER = scope:recipient
	RECEIVER = scope:actor
	MULTIPLIER = 1
}
modifier = {
	desc = embrace_tributarization_interaction_aibehavior_rival_tt
	trigger = {
		scope:recipient = {
			has_relation_rival = scope:actor
			NOT = {
				has_relation_nemesis = scope:actor
			}
		}
	}
	add = -10
}
modifier = {
	desc = embrace_tributarization_interaction_aibehavior_nemesis_tt
	trigger = {
		scope:recipient = {
			has_relation_nemesis = scope:actor
		}
	}
	add = -100
}
modifier = {
	desc = embrace_tributarization_interaction_aibehavior_dynasty_tt
	trigger = {
		scope:recipient = {
			dynasty = scope:actor.dynasty
		}
	}
	add = 10
}
modifier = {
	suzerain = {
		government_has_flag = government_is_mandala
		has_unruined_mandala_capital_trigger = yes
		mandala_radiance_value > 0
	}
	add = {
		value = suzerain.mandala_radiance_value
		multiply = 2
	}
	desc = devaraja_overlord_radiance
}
mandala_devaraja_piety_level_add_weight_modifier = {
	DEVARAJA = scope:actor
}
subject_realm_size_lose_weight_modifier = {
	DEVARAJA = scope:actor
	SUBJECT = scope:recipient
}
mandala_devaraja_capital_add_weight_modifier = {
	DEVARAJA = scope:actor
	TRIBUTARY = scope:recipient
}
opinion_modifier = {
	who = scope:recipient
	opinion_target = scope:actor
	multiplier = 1
}

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

What happens

If they accept

  • The character you target: … will be unable to Cease Paying Tribute for the next 12 months
  • If

    • One of these

      • The option “decrease tax obligation 1” is chosen
      • or

        The option “decrease tax obligation 2” is chosen
      • or

        The option “decrease tax obligation 3” is chosen
      • or

        The option “decrease tax obligation 4” is chosen
      • or

        The option “decrease tax obligation 5” is chosen

    Then

    • The character you target:
      • If

        • vassal_contract_obligation_level:mandala_government_taxes = 5

        Then

        • tributary_contract_set_obligation_level = { type = mandala_government_taxes level = 4 }

        Else if

        • vassal_contract_obligation_level:mandala_government_taxes = 4

        Then

        • tributary_contract_set_obligation_level = { type = mandala_government_taxes level = 3 }

        Else if

        • vassal_contract_obligation_level:mandala_government_taxes = 3

        Then

        • tributary_contract_set_obligation_level = { type = mandala_government_taxes level = 2 }

        Else if

        • vassal_contract_obligation_level:mandala_government_taxes = 2

        Then

        • tributary_contract_set_obligation_level = { type = mandala_government_taxes level = 1 }

        Otherwise

        • tributary_contract_set_obligation_level = { type = mandala_government_taxes level = 0 }
  • If

    • One of these

      • The option “decrease piety obligation 1” is chosen
      • or

        The option “decrease piety obligation 2” is chosen

    Then

    • The character you target:
      • If

        • vassal_contract_obligation_level:mandala_government_piety = 2

        Then

        • tributary_contract_set_obligation_level = { type = mandala_government_piety level = 1 }

        Otherwise

        • tributary_contract_set_obligation_level = { type = mandala_government_piety level = 0 }
  • If

    • One of these

      • The option “decrease prestige obligation 1” is chosen
      • or

        The option “decrease prestige obligation 2” is chosen

    Then

    • The character you target:
      • If

        • vassal_contract_obligation_level:mandala_government_prestige = 2

        Then

        • tributary_contract_set_obligation_level = { type = mandala_government_prestige level = 1 }

        Otherwise

        • tributary_contract_set_obligation_level = { type = mandala_government_prestige level = 0 }
  • If

    • One of these

      • The option “decrease levy obligation 1” is chosen
      • or

        The option “decrease levy obligation 2” is chosen
      • or

        The option “decrease levy obligation 3” is chosen
      • or

        The option “decrease levy obligation 4” is chosen
      • or

        The option “decrease levy obligation 5” is chosen

    Then

    • The character you target:
      • If

        • vassal_contract_obligation_level:mandala_government_levies = 5

        Then

        • tributary_contract_set_obligation_level = { type = mandala_government_levies level = 4 }

        Else if

        • vassal_contract_obligation_level:mandala_government_levies = 4

        Then

        • tributary_contract_set_obligation_level = { type = mandala_government_levies level = 3 }

        Else if

        • vassal_contract_obligation_level:mandala_government_levies = 3

        Then

        • tributary_contract_set_obligation_level = { type = mandala_government_levies level = 2 }

        Else if

        • vassal_contract_obligation_level:mandala_government_levies = 2

        Then

        • tributary_contract_set_obligation_level = { type = mandala_government_levies level = 1 }

        Otherwise

        • tributary_contract_set_obligation_level = { type = mandala_government_levies level = 0 }
  • If

    • You use a Hook
    • You:
      • has_strong_usable_hook = scope:recipient

    Then

    • You: Use a Hook on the target
  • If

    • The option “any hook” is chosen
    • You: Has a usable Hook on the target

    Then

    • You: Use a Hook on the target
  • If

    • The option “dread” is chosen

    Then

    • You: Gain -50 Piety
    • The character you target: Opinion: Intimidated Me (-20)
  • If

    • The option “pay piety” is chosen

    Then

    • You:
      • add_piety = { … }
    • The character you target: Gain … Piety
  • If

    • NOT = { scope:decrease_tax_obligation_1 = yes }
    • NOT = { scope:decrease_tax_obligation_2 = yes }
    • NOT = { scope:decrease_tax_obligation_3 = yes }
    • NOT = { scope:decrease_tax_obligation_4 = yes }
    • NOT = { scope:decrease_tax_obligation_5 = yes }
    • NOT = { scope:decrease_piety_obligation_1 = yes }
    • NOT = { scope:decrease_piety_obligation_2 = yes }
    • NOT = { scope:decrease_prestige_obligation_1 = yes }
    • NOT = { scope:decrease_prestige_obligation_2 = yes }
    • NOT = { scope:decrease_levy_obligation_1 = yes }
    • NOT = { scope:decrease_levy_obligation_2 = yes }
    • NOT = { scope:decrease_levy_obligation_3 = yes }
    • … (more in the script below)
  • … (more in the script below)

If they refuse

Options when sending

  • Decrease Tax Obligation
  • Decrease Tax Obligation
  • Decrease Tax Obligation
  • Decrease Tax Obligation
  • Decrease Tax Obligation
  • Decrease Piety Obligation
  • Decrease Piety Obligation
  • Decrease Prestige Obligation
  • Decrease Prestige Obligation
  • Decrease Levy Obligation
  • Decrease Levy Obligation
  • Decrease Levy Obligation
  • Decrease Levy Obligation
  • Decrease Levy Obligation
  • Leverage Dread
  • Use a Strong Hook
  • Use a Hook
  • Leverage PietySpend … Piety to convince the recipient

Events it fires: tgp_east_asia_interaction_events.0020, tgp_east_asia_interaction_events.0025

• 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) (6 lines of game script)
is_available = government_has_flag = government_is_mandala
is_shown = scope:recipient = {
	is_tributary_of = scope:actor
	is_ai = yes
	cease_tribute_payments_ai_chance > 0
}

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

Can be sent when (is_valid…) (20 lines of game script)
scope:actor = {
	is_physically_able = yes
}
scope:recipient = {
	custom_tooltip = {
		text = reassert_tributary_interaction_cooldown_active_tt
		NOT = {
			has_opinion_modifier = {
				modifier = reassertion_request_denied_opinion
				target = scope:actor
			}
		}
	}
	custom_tooltip = {
		text = reassert_tributary_interaction_reasserted_recently_tt
		NOT = {
			has_variable = tributary_has_been_reasserted_recently
		}
	}
}

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

Effects (on_send, on_accept, on_decline) (244 lines of game script)
on_accept = scope:recipient = {
	custom_tooltip = {
		text = reassert_tributary_interaction_effect_tt
		set_variable = {
			name = tributary_has_been_reasserted_recently
			value = flag:yes
			months = reassert_stickiness_months
		}
	}
}
if = {
	limit = {
		OR = {
			scope:decrease_tax_obligation_1 = yes
			scope:decrease_tax_obligation_2 = yes
			scope:decrease_tax_obligation_3 = yes
			scope:decrease_tax_obligation_4 = yes
			scope:decrease_tax_obligation_5 = yes
		}
	}
	scope:recipient = {
		if = {
			limit = {
				vassal_contract_obligation_level:mandala_government_taxes = 5
			}
			tributary_contract_set_obligation_level = {
				type = mandala_government_taxes
				level = 4
			}
		}
		else_if = {
			limit = {
				vassal_contract_obligation_level:mandala_government_taxes = 4
			}
			tributary_contract_set_obligation_level = {
				type = mandala_government_taxes
				level = 3
			}
		}
		else_if = {
			limit = {
				vassal_contract_obligation_level:mandala_government_taxes = 3
			}
			tributary_contract_set_obligation_level = {
				type = mandala_government_taxes
				level = 2
			}
		}
		else_if = {
			limit = {
				vassal_contract_obligation_level:mandala_government_taxes = 2
			}
			tributary_contract_set_obligation_level = {
				type = mandala_government_taxes
				level = 1
			}
		}
		else = {
			tributary_contract_set_obligation_level = {
				type = mandala_government_taxes
				level = 0
			}
		}
	}
}
if = {
	limit = {
		OR = {
			scope:decrease_piety_obligation_1 = yes
			scope:decrease_piety_obligation_2 = yes
		}
	}
	scope:recipient = {
		if = {
			limit = {
				vassal_contract_obligation_level:mandala_government_piety = 2
			}
			tributary_contract_set_obligation_level = {
				type = mandala_government_piety
				level = 1
			}
		}
		else = {
			tributary_contract_set_obligation_level = {
				type = mandala_government_piety
				level = 0
			}
		}
	}
}
if = {
	limit = {
		OR = {
			scope:decrease_prestige_obligation_1 = yes
			scope:decrease_prestige_obligation_2 = yes
		}
	}
	scope:recipient = {
		if = {
			limit = {
				vassal_contract_obligation_level:mandala_government_prestige = 2
			}
			tributary_contract_set_obligation_level = {
				type = mandala_government_prestige
				level = 1
			}
		}
		else = {
			tributary_contract_set_obligation_level = {
				type = mandala_government_prestige
				level = 0
			}
		}
	}
}
if = {
	limit = {
		OR = {
			scope:decrease_levy_obligation_1 = yes
			scope:decrease_levy_obligation_2 = yes
			scope:decrease_levy_obligation_3 = yes
			scope:decrease_levy_obligation_4 = yes
			scope:decrease_levy_obligation_5 = yes
		}
	}
	scope:recipient = {
		if = {
			limit = {
				vassal_contract_obligation_level:mandala_government_levies = 5
			}
			tributary_contract_set_obligation_level = {
				type = mandala_government_levies
				level = 4
			}
		}
		else_if = {
			limit = {
				vassal_contract_obligation_level:mandala_government_levies = 4
			}
			tributary_contract_set_obligation_level = {
				type = mandala_government_levies
				level = 3
			}
		}
		else_if = {
			limit = {
				vassal_contract_obligation_level:mandala_government_levies = 3
			}
			tributary_contract_set_obligation_level = {
				type = mandala_government_levies
				level = 2
			}
		}
		else_if = {
			limit = {
				vassal_contract_obligation_level:mandala_government_levies = 2
			}
			tributary_contract_set_obligation_level = {
				type = mandala_government_levies
				level = 1
			}
		}
		else = {
			tributary_contract_set_obligation_level = {
				type = mandala_government_levies
				level = 0
			}
		}
	}
}
if = {
	limit = {
		scope:hook = yes
		scope:actor = {
			has_strong_usable_hook = scope:recipient
		}
	}
	scope:actor = {
		use_hook = scope:recipient
	}
}
if = {
	limit = {
		scope:any_hook = yes
		scope:actor = {
			has_usable_hook = scope:recipient
		}
	}
	scope:actor = {
		use_hook = scope:recipient
	}
}
if = {
	limit = {
		scope:dread = yes
	}
	scope:actor = {
		add_piety = minor_piety_loss
	}
	scope:recipient = {
		add_opinion = {
			modifier = intimidated_tributary_opinion
			target = scope:actor
			opinion = -20
		}
	}
}
if = {
	limit = {
		scope:pay_piety = yes
	}
	scope:actor = {
		add_piety = {
			value = {
				add = piety_bribe_half_value
				multiply = -1
			}
		}
	}
	scope:recipient = {
		add_piety = piety_bribe_half_value
	}
}
if = {
	limit = {
		NOR = {
			scope:decrease_tax_obligation_1 = yes
			scope:decrease_tax_obligation_2 = yes
			scope:decrease_tax_obligation_3 = yes
			scope:decrease_tax_obligation_4 = yes
			scope:decrease_tax_obligation_5 = yes
			scope:decrease_piety_obligation_1 = yes
			scope:decrease_piety_obligation_2 = yes
			scope:decrease_prestige_obligation_1 = yes
			scope:decrease_prestige_obligation_2 = yes
			scope:decrease_levy_obligation_1 = yes
			scope:decrease_levy_obligation_2 = yes
			scope:decrease_levy_obligation_3 = yes
			scope:decrease_levy_obligation_4 = yes
			scope:decrease_levy_obligation_5 = yes
			scope:hook = yes
			scope:dread = yes
			scope
# … (cut here; the rest is in the file)

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

Category
Vassal actions
Cost: Piety
from 50
In the menu
main list
ID
reassert_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?