Scripted effect
start_tributary_interaction_effect
start_tributary_interaction_effect = { SUZERAIN = … TRIBUTARY = … }game/common/scripted_effects/00_interaction_effects.txt, line 2325 (693 lines). Parameters: $SUZERAIN$, $TRIBUTARY$.
start_tributary_interaction_effect is a scripted effect in Crusader Kings III, written at line 2325 of its file. A call passes 2 parameters: SUZERAIN and TRIBUTARY. The game's script calls it in 42 places, among them Adopt Meritocratic Government (decision), Become a Meritocratic Khanate (decision) and Forsake Nomadism (decision). Its body carries 83 texts of the game's own for the player. Patch 1.20.1.2, from game/common/scripted_effects/00_interaction_effects.txt.
The comment above it in the file
Effect to start a tributary relationship, can be called directly without a war or from start_tributary_from_war_effect $TRIBUTARY$ = the new tributary $SUZERAIN$ = their suzerain
What it does
If
should_be_mandala_tributary_trigger = { SUZERAIN = $SUZERAIN$ TRIBUTARY = $TRIBUTARY$ }If
a check the game hides
Then
$SUZERAIN$ = { … }
Then
$TRIBUTARY$ = { … }
Else if
should_be_wanua_tributary_trigger = { SUZERAIN = $SUZERAIN$ TRIBUTARY = $TRIBUTARY$ }
Then
$TRIBUTARY$ = { … }
Else if
$SUZERAIN$ = { has_government = nomad_government }
Then
$TRIBUTARY$ = { … }
Else if
$SUZERAIN$ = { has_government = steppe_admin_government }
Then
$TRIBUTARY$ = { … }
Else if
$SUZERAIN$ = { has_government = celestial_government highest_held_title_tier >= tier_hegemony }
Then
$TRIBUTARY$ = { … }
Else if
$SUZERAIN$ = { highest_held_title_tier = tier_hegemony }
Then
$TRIBUTARY$ = { … }
Otherwise
$TRIBUTARY$ = { … }
setup_tributary_truces_effect = { SUZERAIN = $SUZERAIN$ TRIBUTARY = $TRIBUTARY$ }
• the game's own tooltip text · ◦ our reading of the script line · code the script where neither exists
“They” is whatever it runs on (the scope it is called in). The scripted triggers and effects it calls link to their own pages; $PARAMETERS$ stay as written: each call fills them in.
The script as written (120 lines of game script)
start_tributary_interaction_effect = {
# Setup truces depending on how the tributary relationship was created
$TRIBUTARY$ = { save_scope_as = tributary_loc }
$SUZERAIN$ = { save_scope_as = suzerain_loc }
#Mandala Tributaries
if = {
limit = {
should_be_mandala_tributary_trigger = {
SUZERAIN = $SUZERAIN$
TRIBUTARY = $TRIBUTARY$
}
trigger_if = {
limit = { exists = scope:tributary_war }
$SUZERAIN$ = {
AND = {
house = { has_house_head_parameter = can_make_mandala_tributaries_via_war }
is_house_head = yes
}
}
}
}
$TRIBUTARY$ = {
if = {
limit = { government_has_flag = government_is_tribal }
start_tributary = {
contract_group = tributary_mandala_tribal
suzerain = $SUZERAIN$
}
if = {
limit = {
OR = {
scope:high_obligations ?= yes
exists = scope:tributary_war
}
}
if = {
limit = { is_tributary = yes } # suppress error logging
hidden_effect = {
tributary_contract_set_obligation_level = {
type = mandala_government_taxes
level = 3
}
tributary_contract_set_obligation_level = {
type = mandala_government_prestige
level = 2
}
tributary_contract_set_obligation_level = {
type = mandala_government_levies
level = 3
}
}
}
custom_tooltip = high_mandala_tribute_taxes
custom_tooltip = high_mandala_tribute_prestige
custom_tooltip = high_mandala_tribute_levies
}
else_if = {
limit = { scope:low_obligations ?= yes }
if = {
limit = { is_tributary = yes } # suppress error logging
hidden_effect = {
tributary_contract_set_obligation_level = {
type = mandala_government_taxes
level = 0
}
tributary_contract_set_obligation_level = {
type = mandala_government_prestige
level = 0
}
tributary_contract_set_obligation_level = {
type = mandala_government_levies
level = 0
}
}
}
custom_tooltip = exempt_mandala_tribute_taxes
custom_tooltip = low_mandala_tribute_prestige
custom_tooltip = exempt_mandala_tribute_levies
}
else = {
if = {
limit = { is_tributary = yes } # suppress error logging
hidden_effect = {
tributary_contract_set_obligation_level = {
type = mandala_government_taxes
level = 2
}
tributary_contract_set_obligation_level = {
type = mandala_government_prestige
level = 2
}
tributary_contract_set_obligation_level = {
type = mandala_government_levies
level = 1
}
}
}
custom_tooltip = normal_mandala_tribute_taxes
custom_tooltip = normal_mandala_tribute_prestige
custom_tooltip = low_mandala_tribute_levies
}
if = {
limit = { is_tributary = yes } # suppress error logging
tributary_contract_set_obligation_level = {
type = mandala_suzerain_war_participation_guarantee
level = 1
}
}
}
else = {
start_tributary = {
contract_group = tributary_mandala
suzerain = $SUZERAIN$
}
if = {
limit = {
OR = {
scope:high_obligations ?= yesAs written in game/common/scripted_effects/00_interaction_effects.txt.
The first 120 of its 693 lines; the rest is in game/common/scripted_effects/00_interaction_effects.txt from line 2325.
Where it is used
Every place in common/, events/ and history/ that calls start_tributary_interaction_effect.
Decisions (5)
Character interactions (4)
Casus belli (3)
Events (22)
- …: Success
scheme_critical_moments.1222 - …: Win Some, Lose Some
scheme_critical_moments.1226 - A Lesson in Impermanence
coronation_events.1040 - A Master for Shepherds
migration_events.1020 - A Place to Call Home
migration_events.0001 - Chaotic Succession: Tributary Usurpation
mpo_chaotic_kurultai_succession.0002
16 more
- char_interaction.0360
- char_interaction.0362
- Friends Everywhere
coronation_events.1024 - Grasping at the Universe
mpo_greatest_of_khans.0102 - Migration: Taken Land
migration_events.0002 - mongol_invasion.3000
- mpo_greatest_of_khans.0100
- mpo_misc.0002
- New Horizons
tgp_east_asia_decision_events.0010 - tgp_east_asia_decision_events.0021
- The … Intercessor
coronation_events.6150 - The Horse Lord
mpo_flavor_events_settled.0010 - The Way of the Nomad
mpo_decisions_events.0120 - Tribute Mission: Ongoing Tribute
tribute_mission.1008 - Tribute Mission: Ongoing Tribute
tribute_mission.3008 - War for the Earth and Heavens
mpo_greatest_of_khans.0101
On actions (the game's own hooks) (3)
- mpo_the_great_steppe_yearly_pulse_random
- on_become_independent_after_grant_title_at_vassal_limit
- on_game_start_after_lobby
Source: game/common/scripted_effects/00_interaction_effects.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.