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_can_be_blood_brothers_trigger

mpo_can_be_blood_brothers_trigger = { CHARACTER_1 = … CHARACTER_2 = … }

game/common/scripted_triggers/mpo_scripted_triggers.txt, line 937 (141 lines). Parameters: $CHARACTER_1$, $CHARACTER_2$.

mpo_can_be_blood_brothers_trigger is a scripted trigger in Crusader Kings III, in the Khans of the Steppe files, written at line 937 of its file. A call passes 2 parameters: CHARACTER_1 and CHARACTER_2. The game's script calls it in 1 place, among them Swear Blood Brotherhood (interaction). Its body carries 6 texts of the game's own for the player. Patch 1.20.1.2, from game/common/scripted_triggers/mpo_scripted_triggers.txt.

What it checks

  • If

    • $CHARACTER_1$ = { is_adult = no }

    Then

    • $CHARACTER_1$ = { is_adult = yes }
  • If

    • $CHARACTER_2$ = { is_adult = no }

    Then

    • $CHARACTER_2$ = { is_adult = yes }
  • NOT = { $CHARACTER_1$ = { is_spouse_of = $CHARACTER_2$ } }
  • NOT = { $CHARACTER_1$ = { is_parent_of = $CHARACTER_2$ } }
  • NOT = { $CHARACTER_1$ = { is_grandparent_of = $CHARACTER_2$ } }
  • NOT = { $CHARACTER_1$ = { is_great_grandparent_of = $CHARACTER_2$ } }
  • NOT = { $CHARACTER_1$ = { is_child_of = $CHARACTER_2$ } }
  • NOT = { $CHARACTER_1$ = { is_grandchild_of = $CHARACTER_2$ } }
  • NOT = { $CHARACTER_1$ = { is_great_grandchild_of = $CHARACTER_2$ } }
  • NOT = { $CHARACTER_1$ = { is_uncle_or_aunt_of = $CHARACTER_2$ } }
  • NOT = { $CHARACTER_1$ = { is_nibling_of = $CHARACTER_2$ } }
  • NOT = { $CHARACTER_1$ = { is_sibling_of = $CHARACTER_2$ } }
  • You are already blood brothers.
  • If

    • NOT = { $CHARACTER_1$ = { has_relation_blood_brother = $CHARACTER_2$ } }

    Then

    • You already have a blood brother!
  • If

    • NOT = { $CHARACTER_2$ = { has_relation_blood_brother = $CHARACTER_1$ } }

    Then

    • … already has a blood brother
  • If

    • $CHARACTER_1$ = { is_at_war = yes }

    Then

    • $CHARACTER_1$ = { … }
  • If

    • $CHARACTER_2$ = { is_at_war = yes }

    Then

    • $CHARACTER_2$ = { … }
  • If

    • One of these

      • All of these

        • $CHARACTER_1$ = { is_male = yes }
        • $CHARACTER_2$ = { is_female = yes }
      • or

        All of these

        • $CHARACTER_2$ = { is_male = yes }
        • $CHARACTER_1$ = { is_female = yes }
    • $CHARACTER_1$.rite = { … }

    Then

• 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)
mpo_can_be_blood_brothers_trigger = {
	#If one is a child, the other must be a child
	trigger_if = {
		limit = {
			$CHARACTER_1$ = {
				is_adult = no
			}
		}
		$CHARACTER_1$ = {
			is_adult = yes
		}
	}
	trigger_if = {
		limit = {
			$CHARACTER_2$ = {
				is_adult = no
			}
		}
		$CHARACTER_2$ = {
			is_adult = yes
		}
	}
	#They can't be related enough to be allies
	NOR = {
		#Ruler is married to other ruler.
		$CHARACTER_1$ = { is_spouse_of = $CHARACTER_2$ }
		#Ruler is relative of other ruler
		$CHARACTER_1$ = { is_parent_of = $CHARACTER_2$ }
		$CHARACTER_1$ = { is_grandparent_of = $CHARACTER_2$ }
		$CHARACTER_1$ = { is_great_grandparent_of = $CHARACTER_2$ }
		$CHARACTER_1$ = { is_child_of = $CHARACTER_2$ }
		$CHARACTER_1$ = { is_grandchild_of = $CHARACTER_2$ }
		$CHARACTER_1$ = { is_great_grandchild_of = $CHARACTER_2$ }
		$CHARACTER_1$ = { is_uncle_or_aunt_of = $CHARACTER_2$ }
		$CHARACTER_1$ = { is_nibling_of = $CHARACTER_2$ }
		$CHARACTER_1$ = { is_sibling_of = $CHARACTER_2$ }
	}

	# We can't do most of the standard checks for can_set_relation_best_friend_trigger, but we do the relevant ones individually.
	custom_tooltip = {
		text = make_blood_brother_interaction.tt.already_blood_brothers
		$CHARACTER_1$ = {
			NOT = { has_relation_blood_brother = $CHARACTER_2$ }
		}
	}
	trigger_if = {
		limit = {
			NOT = {
				$CHARACTER_1$ = { has_relation_blood_brother = $CHARACTER_2$ }
			}
		}
		custom_tooltip = {
			text =  make_blood_brother_interaction.tt.actor_has_blood_brother
			$CHARACTER_1$ = { num_of_relation_blood_brother = 0 }
		}
	}
	trigger_if = {
		limit = {
			NOT = {
				$CHARACTER_2$ = { has_relation_blood_brother = $CHARACTER_1$ }
			}
		}
		custom_tooltip = {
			text =  make_blood_brother_interaction.tt.recipient_has_blood_brother
			$CHARACTER_2$ = { num_of_relation_blood_brother = 0 }
		}
	}
	trigger_if = {
		limit = {
			$CHARACTER_1$ = {
				is_at_war = yes
			}
		}
		$CHARACTER_1$ = {
			NOR = {
				is_at_war_with = $CHARACTER_2$
				custom_tooltip = {
					text = make_blood_brother_at_war_with_recipient_ally
					any_war_enemy = {
						is_allied_to = $CHARACTER_2$
					}
				}
			}
		}
	}
	trigger_if = {
		limit = {
			$CHARACTER_2$ = {
				is_at_war = yes
			}
		}
		$CHARACTER_2$ = {
			NOR = {
				is_at_war_with = $CHARACTER_1$
				custom_tooltip = {
					text = make_blood_brother_at_war_with_actor_ally
					any_war_enemy = {
						is_allied_to = $CHARACTER_1$
					}
				}
			}
		}
	}
	#Can only do intergender if gender laws are equal or both are rulers
	trigger_if = {
		limit = {
			OR = {
				AND = {
					$CHARACTER_1$ = {
						is_male = yes
					}
					$CHARACTER_2$ = {
						is_female = yes
					}
				}
				AND = {
					$CHARACTER_2$ = {
						is_male = yes
					}
					$CHARACTER_1$ = {

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

The first 120 of its 141 lines; the rest is in game/common/scripted_triggers/mpo_scripted_triggers.txt from line 937.

Where it is used

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

Character interactions (1)

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?