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

Scripted trigger · Khans of the Steppe files

mpo_blood_brother_common_enemy_sub_trigger

mpo_blood_brother_common_enemy_sub_trigger = yes

game/common/scripted_triggers/mpo_scripted_triggers.txt, line 1079 (68 lines). No parameters.

mpo_blood_brother_common_enemy_sub_trigger is a scripted trigger in Crusader Kings III, in the Khans of the Steppe files, written at line 1079 of its file. It takes no parameters: mpo_blood_brother_common_enemy_sub_trigger = yes (or no). The game's script calls it in 2 places, among them make_blood_brother_save_common_enemy_effect (scripted effect) and mpo_blood_brother_common_enemy_trigger (scripted trigger). Patch 1.20.1.2, from game/common/scripted_triggers/mpo_scripted_triggers.txt.

What it checks

  • One of these

    • has_relation_rival = scope:recipient
    • or

      All of these

      • Does not have “rebel leader peasants” (a variable the game's script sets)
      • save_temporary_scope_as = root_temp
      • Any character war:
        • is_war_leader = scope:root_temp
        • is_war_leader = scope:recipient
    • or

      Any targeting faction › Any faction member:
      • this = scope:recipient
    • or

      All of these

      • Is not an Independent Ruler
      • save_temporary_scope_as = rival_temp
      • Their liege › Any targeting faction › Any faction member:
        • this = scope:rival_temp
    • or

      Any held title:
      • save_temporary_scope_as = title_temp
      • scope:recipient:
        • has_claim_on = scope:title_temp
      • None of these

        • scope:actor:
          • has_claim_on = scope:title_temp
    • or

      Any claim:
      • save_temporary_scope_as = claim_temp
      • holder ?= scope:recipient
      • None of these

        • scope:actor:
          • has_claim_on = scope:claim_temp
    • or

      All of these

      • exists = house.house_head
      • exists = scope:recipient.house
      • exists = scope:actor.house
      • NOT = { house = scope:actor.house }
      • NOT = { house = scope:recipient.house }
      • NOT = { scope:actor.house = scope:recipient.house }
      • Their house › Any house relation:
        • has_house_relation_level = feud
        • Any relation house:
          • this = scope:recipient.house

• 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 (68 lines of game script)
mpo_blood_brother_common_enemy_sub_trigger = {
	NOR = {
		this = scope:recipient
		this = scope:actor
	}
	OR = {
		#Rival of common foe
		has_relation_rival = scope:recipient
		#Is at war with common foe, you're not involved
		AND = {
			NOT = { has_variable = rebel_leader_peasants }
			save_temporary_scope_as = root_temp
			any_character_war = {
				is_war_leader = scope:root_temp
				is_war_leader = scope:recipient
			}
		}
		#Is in a faction against common foe
		any_targeting_faction = {
			any_faction_member = {
				this = scope:recipient
			}
		}
		#common foe is in a faction against recipient
		AND = {
			is_independent_ruler = no
			save_temporary_scope_as = rival_temp
			liege ?= {
				any_targeting_faction = {
					any_faction_member = { this = scope:rival_temp }
				}
			}
		}
		#Recipient is title claimant against common foe
		any_held_title = {
			save_temporary_scope_as = title_temp
			scope:recipient = { has_claim_on = scope:title_temp }
			NOT = {
				scope:actor = { has_claim_on = scope:title_temp }
			}
		}
		#common foe is title claimant against recipient
		any_claim = {
			save_temporary_scope_as = claim_temp
			holder ?= scope:recipient
			NOT = {
				scope:actor = { has_claim_on = scope:claim_temp }
			}
		}
		#Has house feud with common foe's house
		AND = {
			exists = house.house_head
			exists = scope:recipient.house
			exists = scope:actor.house
			NOR = {
				house = scope:actor.house
				house = scope:recipient.house
				scope:actor.house = scope:recipient.house
			}
			house = {
				any_house_relation = {
					has_house_relation_level = feud
					any_relation_house = { this = scope:recipient.house }
				}
			}
		}
	}
}

As written in game/common/scripted_triggers/mpo_scripted_triggers.txt.

Where it is used

Every place in common/, events/ and history/ that calls mpo_blood_brother_common_enemy_sub_trigger.

Source: game/common/scripted_triggers/mpo_scripted_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?