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

Interaction · Diplomatic actions

Call House Member To War

No costAccepted automatically in some cases; otherwise the AI weighs it

House Head Interaction Call on the recipient to serve their House in war

What you need

You

To send it

  • The target: Is war leader in the war against you
  • If

    • The target: Has you as the war's attacker

    Then

    • The target:
      • primary_defender = { save_temporary_scope_as = primary_enemy }

    Otherwise

    • The target:
      • primary_attacker = { save_temporary_scope_as = primary_enemy }

To see it in the menu

  • One of these

    • If

      a check the game hides

      Then

      • Your house: Has the house check as house head
    • or

      All of these

      • exists = dynasty
      • Your dynasty: The Dynasty has the Unity Legacy
  • The target is not you
  • Your religion is the same as that of recipient
  • Is of the same house as the target
  • Any character war: Is war leader in the war against you

The character you target

  • Is a ruler
  • One of these

    • Cannot play landless rulers without having an Estate
    • or

      If

      • One of these

        • Is landed
        • or

          Government is a Theocratic-type Government

      Then

    • or

      All of these

      • Their liege:
        • All of these

          • Holds China
          • Government is Celestial
          • Their government has the government uses ministry budget flag
      • One of these

    • or

      Has “laamp transition” (a variable the game's script sets)
  • Is not a vassal (or below) of you

Call House Member To War is a diplomatic character interaction in Crusader Kings III. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Won't partake in meaningless conflict (-1,000), Will not fight Heir (-1,000), Will not fight Spouse (-1,000) and 6 more. Patch 1.20.1.2, from game/common/character_interactions/00_house_head_interactions.txt.

for a guide, post or blog
Quick answers (1)
How do I get the AI to accept Call House Member To War?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Won't partake in meaningless conflict -1,000, Will not fight Heir -1,000, Will not fight Spouse -1,000, … Opinion of …, Defensive War +50, Zeal against Infidels, Attack on Ally -50, War on another Ally -25, Attack on Religious Brethren -50, Unity +50 and Opposing Struggle Side -100.

Will they accept?

Accepted automatically when:

  • They use their Hook on …

Otherwise the AI adds these up and accepts above zero. Reasons in italics are the script's, with no label in the game.

ReasonAmount
Base+20
Won't partake in meaningless conflict
when
  • If

    a check the game hides

    Then

    Otherwise

    • Never
-1,000
Will not fight Heir
when
  • If

    • scope:target.casus_belli.primary_defender = scope:actor

    Then

    • scope:target.casus_belli.primary_attacker = scope:recipient.player_heir

    Otherwise

    • scope:target.casus_belli.primary_defender = scope:recipient.player_heir
-1,000
Will not fight Spouse
when
  • The character you target:
    • If

      • scope:target.casus_belli.primary_defender = scope:actor

      Then

      • Any spouse:

      Otherwise

      • Any spouse:
-1,000
… Opinion of …varies
Their personality (AI values: honor 1)varies
Defensive War
when
  • scope:target.casus_belli.primary_defender = scope:actor
+50
Zeal against Infidels
when
  • The target’s faith is your
  • One of these

    • The target’s casus belli’s primary attacker:
      • Is you
      • Their faith:
        • faith_hostility_level = { target = scope:target.casus_belli.primary_defender.faith value >= religious_cb_enabled_hostility_level }
    • or

      The target’s casus belli’s primary defender:
      • Is you
      • Their faith:
        • faith_hostility_level = { target = scope:target.casus_belli.primary_attacker.faith value >= religious_cb_enabled_hostility_level }
  • min = 0
ai_zeal
Attack on Ally
when
  • scope:target.casus_belli.primary_attacker = scope:actor
  • The character you target:
    • is_allied_to = scope:target.casus_belli.primary_defender
-50
War on another Ally
when
  • scope:target.casus_belli.primary_defender = scope:actor
  • The character you target:
    • is_allied_to = scope:target.casus_belli.primary_attacker
-25
Attack on Religious Brethren
when
  • The target’s faith is not your
  • scope:target.casus_belli.primary_attacker = scope:actor
  • scope:target.casus_belli.primary_defender.faith = scope:recipient.faith
  • The target’s casus belli’s war:
-50
Unity
when
+50
Opposing Struggle Side
when
-100
Acceptance (ai_accept) (144 lines of game script)
base = 20
modifier = {
	add = -1000
	desc = WONT_FIGHT_MEANINGLESS_REASON
	trigger_if = {
		limit = {
			exists = scope:target
		}
		scope:target = {
			using_cb = fp2_border_raid
		}
		scope:recipient = {
			NOR = {
				has_trait = viking
				has_trait = reaver
			}
		}
	}
	trigger_else = {
		always = no
	}
}
modifier = {
	add = -1000
	exists = scope:recipient.player_heir
	trigger_if = {
		limit = {
			scope:target.casus_belli.primary_defender = scope:actor
		}
		scope:target.casus_belli.primary_attacker = scope:recipient.player_heir
	}
	trigger_else = {
		scope:target.casus_belli.primary_defender = scope:recipient.player_heir
	}
	desc = WONT_FIGHT_HEIR_REASON
}
modifier = {
	add = -1000
	scope:recipient = {
		trigger_if = {
			limit = {
				scope:target.casus_belli.primary_defender = scope:actor
			}
			any_spouse = {
				this = scope:target.casus_belli.primary_attacker
			}
		}
		trigger_else = {
			any_spouse = {
				this = scope:target.casus_belli.primary_defender
			}
		}
	}
	desc = WONT_FIGHT_SPOUSE_REASON
}
opinion_modifier = {
	who = scope:recipient
	opinion_target = scope:actor
	multiplier = 1.0
	desc = AI_OPINION_REASON
}
ai_value_modifier = {
	ai_honor = 1
	min = 0
}
modifier = {
	add = 50
	scope:target.casus_belli.primary_defender = scope:actor
	desc = DEFENSIVE_WAR_REASON
}
compare_modifier = {
	trigger = {
		scope:recipient.faith = scope:actor.faith
		OR = {
			AND = {
				scope:target.casus_belli.primary_attacker = {
					this = scope:actor
					faith = {
						faith_hostility_level = {
							target = scope:target.casus_belli.primary_defender.faith
							value >= religious_cb_enabled_hostility_level
						}
					}
				}
			}
			AND = {
				scope:target.casus_belli.primary_defender = {
					this = scope:actor
					faith = {
						faith_hostility_level = {
							target = scope:target.casus_belli.primary_attacker.faith
							value >= religious_cb_enabled_hostility_level
						}
					}
				}
			}
		}
	}
	target = scope:recipient
	value = ai_zeal
	desc = ZEAL_AGAINST_INFIDELS
	min = 0
	multiplier = 0.5
}
modifier = {
	add = -50
	scope:target.casus_belli.primary_attacker = scope:actor
	scope:recipient = {
		is_allied_to = scope:target.casus_belli.primary_defender
	}
	desc = ATTACK_ON_ALLY_REASON
}
modifier = {
	add = -25
	scope:target.casus_belli.primary_defender = scope:actor
	scope:recipient = {
		is_allied_to = scope:target.casus_belli.primary_attacker
	}
	desc = WAR_WITH_ALLY_REASON
}
modifier = {
	add = -50
	scope:recipient.faith != scope:actor.faith
	scope:target.casus_belli.primary_attacker = scope:actor
	scope:target.casus_belli.primary_defender.faith = scope:recipient.faith
	scope:target.casus_belli.war = {
		OR = {
			using_cb = minor_religious_war
			using_cb = religious_war
			using_cb = major_religious_war
			using_cb = undirected_great_holy_war
			using_cb = directed_great_holy_war
		}
	}
	desc = WONT_ATTACK_RELIGIOUS_BRETHREN_REASON
}
modifier = {
	add = 50
	dynasty = {
		has_dynasty_perk = fp2_coterie_legacy_3
	}
	desc = UNITY_PERK_BONUS
}
fp3_struggle_resist_allied_wars_modifier = yes

As written in game/common/character_interactions/00_house_head_interactions.txt.

What happens

If they accept

  • If

    a check the game hides

    Then

    • The target:
      • If

        • is_attacker = scope:puppet_or_actor

        Then

        • add_attacker = scope:recipient

        Otherwise

        • add_defender = scope:recipient
  • If never › You: Use a Hook on the target
  • If

    a check the game hides

    Then

  • If

    • None of these

      • If

        a check the game hides

        Then

        • Your house: Has the house check as house head

    Then

  • If

    Then

    • The character you target: Gain +150 Prestige

When it is accepted automatically

If they refuse

  • If

    a check the game hides

    Then

    • The target:
      • If

        • is_attacker = scope:actor

        Then

        Otherwise

        • You: Opinion: Rejected Call to a Defensive War
      • You: Event call_ally.0101
    • If

      • You: Government is Clan
      • The character you target: Government is Clan
      • Your house is the target’s
      • If

        • You are not the target

        Then

        • You are not the target

      Then

      • Your house:
        • add_unity_value = { … }

      Else if

      • No
      • You: Government is Clan
      • Your house: Has you as house head
      • One of these

        • All of these

          • exists = scope:recipient.house
          • Your house is not the target’s
        • or

          The character you target: Is Lowborn

      Then

      • Your house:
        • add_unity_value = { … }

Options when sending

  • Use a Hook

Events it fires: call_ally.0100, call_ally.0101, call_ally.0001

• the game's own tooltip text · ◦ our reading of the script line · code the script where neither exists

Who can use it and sees it (is_available, is_shown) (26 lines of game script)
is_available = OR = {
	is_house_head = yes
	AND = {
		exists = dynasty
		dynasty ?= {
			has_dynasty_perk = fp2_coterie_legacy_3
		}
		has_fp2_dlc_trigger = yes
	}
}
is_shown = scope:recipient != scope:actor
scope:actor = {
	religion ?= scope:recipient.religion
	house ?= scope:recipient.house
	any_character_war = {
		is_war_leader = scope:actor
	}
}
scope:recipient = {
	is_playable_character = yes
}
scope:recipient = {
	NOT = {
		target_is_liege_or_above = scope:actor
	}
}

As written in game/common/character_interactions/00_house_head_interactions.txt.

Can be sent when (is_valid…) (15 lines of game script)
custom_description = {
	text = is_already_in_all_wars
	scope:actor = {
		any_character_war = {
			NOR = {
				is_participant = scope:recipient
				was_called = scope:recipient
			}
			OR = {
				primary_attacker = scope:actor
				primary_defender = scope:actor
			}
		}
	}
}

As written in game/common/character_interactions/00_house_head_interactions.txt.

Effects (on_send, on_accept, on_decline) (66 lines of game script)
on_accept = call_house_member_to_war_interaction_effect = yes
save_scope_value_as = {
	name = call_house_member_to_war_interaction
	value = yes
}
if = {
	limit = {
		exists = scope:target
	}
	scope:actor = {
		trigger_event = call_ally.0100
	}
}
scope:actor = {
	if = {
		limit = {
			NOT = {
				is_house_head = yes
			}
		}
		add_prestige = medium_prestige_loss
	}
}
if = {
	limit = {
		scope:actor.dynasty = {
			has_dynasty_perk = fp2_coterie_legacy_3
		}
	}
	scope:recipient = {
		add_prestige = medium_prestige_gain
	}
}
on_decline = if = {
	limit = {
		exists = scope:target
	}
	scope:target = {
		if = {
			limit = {
				is_attacker = scope:actor
			}
			scope:actor = {
				add_opinion = {
					modifier = rejected_call_to_offensive_war
					target = scope:recipient
				}
			}
		}
		else = {
			scope:actor = {
				add_opinion = {
					modifier = rejected_call_to_defensive_war
					target = scope:recipient
				}
			}
		}
		scope:actor = {
			trigger_event = call_ally.0101
		}
	}
	refuse_call_to_arms_add_clan_unity_effect = yes
}
on_auto_accept = scope:recipient = {
	trigger_event = call_ally.0001
}

As written in game/common/character_interactions/00_house_head_interactions.txt.

Category
Diplomatic actions
In the menu
under More…
ID
call_house_member_to_war_interaction

Source: game/common/character_interactions/00_house_head_interactions.txt and the English localisation, Crusader Kings III 1.20.1.2. “You” is the character who sends it (scope:actor, or a puppet acting for you); “the character you target” is the recipient.

Spotted a mistake on this page?