Scripted trigger
herders_and_tributary_constraints
herders_and_tributary_constraints = yesgame/common/scripted_triggers/00_war_and_peace_triggers.txt, line 1144 (52 lines). No parameters.
herders_and_tributary_constraints is a scripted trigger in Crusader Kings III, written at line 1144 of its file. It takes no parameters: herders_and_tributary_constraints = yes (or no). The game's script calls it in 17 places, among them artifact (casus belli groups), celestial (casus belli groups) and civil_war (casus belli groups). Its body carries 1 text of the game's own for the player. Patch 1.20.1.2, from game/common/scripted_triggers/00_war_and_peace_triggers.txt.
What it checks
If
a check the game hides
Then
scope:defender:- … is a Herder and cannot be attacked. To get their lands you can either: Use the Demand Pastureland Interaction · Attack their Suzerain to transfer them as a Tributary
NOT = { is_tributary_of_suzerain_or_above = scope:attacker }If
suzerain != this- scope:attacker: Is a member of a Confederation
suzerain = { is_confederation_member = yes }
Then
NOT = { scope:attacker.confederation = suzerain.confederation }
scope:attacker:None of these
is_tributary_of_suzerain_or_above = scope:defenderIf
suzerain != this- scope:defender: Is a member of a Confederation
suzerain = { is_confederation_member = yes }
Then
scope:defender.confederation = suzerain.confederation
If
scope:attacker:- Is not an Independent Ruler
- Their liege: Government uses the Mandala Capital Temple Complex Great Project and Great Building
Then
None of these
scope:defender:is_tributary_of = scope:attacker.liege
• 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 (52 lines of game script)
herders_and_tributary_constraints = {
trigger_if = {
limit = { exists = scope:defender }
scope:defender = {
save_temporary_scope_as = recipient # done for is_a_herder_defender_tt
NOR = {
custom_tooltip = {
text = is_a_herder_defender_tt # herders can't fight
government_has_flag = government_is_herder
}
is_tributary_of_suzerain_or_above = scope:attacker # can't fight your tributaries or your tributaries' tributaries
}
# You cannot attack your Confederation buddies tributaries
trigger_if = {
limit = {
exists = suzerain
suzerain != this
scope:attacker = { is_confederation_member = yes }
suzerain = { is_confederation_member = yes }
}
NOT = { scope:attacker.confederation = suzerain.confederation }
}
}
scope:attacker = { # Tributaries cannot attack their Suzerain or Suzerain's Confederation buddies
NOR = {
is_tributary_of_suzerain_or_above = scope:defender # can't attack your own suzerain
trigger_if = {
limit = {
exists = suzerain
suzerain != this
scope:defender = { is_confederation_member = yes }
suzerain = { is_confederation_member = yes }
}
# if you have a suzerain who's part of a confederation, you may not attack any of its members
scope:defender.confederation = suzerain.confederation
}
}
}
#Mandala Vassals shouldn't attack their Liege's Tributaries
trigger_if = {
limit = {
scope:attacker = {
is_independent_ruler = no
liege ?= { government_has_flag = government_is_mandala }
}
}
NOT = {
scope:defender = { is_tributary_of = scope:attacker.liege }
}
}
}
}As written in game/common/scripted_triggers/00_war_and_peace_triggers.txt.
Where it is used
Every place in common/, events/ and history/ that calls herders_and_tributary_constraints.
Casus belli groups (17)
- artifact
- celestial
- civil_war
- claim
- Conquered
- de_jure
11 more
- event
- humiliation
- invasion
- Involvement
- Mandala
- religious
- religious_disorganised
- religious_script_only
- subjugation
- vassalization
- debug
Source: game/common/scripted_triggers/00_war_and_peace_triggers.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.