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

Scripted trigger

herders_and_tributary_constraints

herders_and_tributary_constraints = yes

game/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:defender
        • If

          • suzerain != this
          • scope:defender: Is a member of a Confederation
          • suzerain = { is_confederation_member = yes }

          Then

          • scope:defender.confederation = suzerain.confederation
    • If

      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.

Spotted a mistake on this page?