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 to War

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

Call your Ally to aid you in your Wars

What you need

You

To send it

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

    • Is not allied to the target
    • suzerain = scope:recipient
    • subject_contract_has_flag = tributary_contract_suzerain_guarantee_override

    Then

    • The target: Has you as the war's defender
  • 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

  • Is at War
  • If played by the AI:
    • scope:recipient.current_military_strength >= 100
  • If

    • Is a direct vassal of the target

    Then

    • subject_contract_has_flag = vassal_contract_liege_forced_war_override
  • If

    • The character you target:
      • Is a tributary of you
      • Is not allied to you

    Then

    • has_realm_law_flag = can_call_tributaries_for_piety
    • You have 50 Piety
  • NOT = { is_character_interaction_valid = { recipient = scope:recipient interaction = call_house_member_to_war_interaction } }

The character you target

To send it

To see it in the menu

  • One of these

    • Is allied to you
    • or

      All of these

      • this ?= scope:actor.diarch
      • You › Any character war:
        • One of these

          • The war’s casus belli is Peasant War
          • or

            The war’s casus belli is Rebellion
          • or

            primary_attacker = { … }
    • or

      You:
      • is_vassal_of = prev
      • subject_contract_has_flag = vassal_contract_liege_forced_war_override
    • or

      You:
      • is_tributary_of = prev
      • subject_contract_has_flag = tributary_contract_suzerain_guarantee_override
    • or

      All of these

      • Is a tributary of you
      • You:
        • You have 50 Piety
        • has_realm_law_flag = can_call_tributaries_for_piety

Which character you can pick

  • The target:
    • Is war leader in the war against you
    • Diarchs can only be called in internal defensive Wars
  • If

    • scope:target.casus_belli.primary_defender = scope:actor
    • The target’s casus belli’s primary attacker: Is a tributary of the target or of the target’s suzerains

    Then

    • None of these

      • The target’s casus belli’s primary attacker: Is a tributary of the target or of the target’s suzerains

    Else if

    • scope:target.casus_belli.primary_attacker = scope:actor
    • The target’s casus belli’s primary defender: Is a tributary of the target or of the target’s suzerains

    Then

    • None of these

      • The target’s casus belli’s primary defender: Is a tributary of the target or of the target’s suzerains
  • If

    • scope:target.casus_belli.primary_defender = scope:actor
    • The character you target:
      • is_tributary_of_suzerain_or_above = scope:target.casus_belli.primary_attacker

    Then

    • None of these

      • The character you target:
        • is_tributary_of_suzerain_or_above = scope:target.casus_belli.primary_attacker

    Else if

    • scope:target.casus_belli.primary_attacker = scope:actor
    • The character you target:
      • is_tributary_of_suzerain_or_above = scope:target.casus_belli.primary_defender

    Then

    • None of these

      • The character you target:
        • is_tributary_of_suzerain_or_above = scope:target.casus_belli.primary_defender

Call to War is a diplomatic character interaction in Crusader Kings III. The character you target needs: Is a ruler and You have to be of Emperor Rank or above to call a Hegemon into Wars. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Conqueror (-1,000), Conqueror (-1,000), Won't partake in meaningless conflict (-1,000) and 19 more. Patch 1.20.1.2, from game/common/character_interactions/00_alliance.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Call to War in CK3?
The character you target: Is a ruler and You have to be of Emperor Rank or above to call a Hegemon into Wars. (patch 1.20.1.2)
How do I get the AI to accept Call to War?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Conqueror -1,000, Conqueror -1,000, Won't partake in meaningless conflict -1,000, Will not fight Heir -1,000, Will not fight Spouse -1,000, Will not fight Suzerain -1,000, … Opinion of …, Defensive War +50, You speak the … Language +5, The recipient's Realm is Foreign and shares your Court Language (you do not personally know …) +10, The recipient's Realm is Foreign and shares your Court Language (and you personally know …) +30, Entrenched Regent Protects Realm +50, Zeal against Infidels, Attack on Ally -50, War on another Ally -25, Attack on Religious Brethren -50, Will not fight Friend -50, Will not fight Best Friend -100, Will not fight Lover -100, Will not fight Soulmate -200, Won't partake in meaningless conflict -200, Wardens with my Hostages on opposing side, War is against my Bloc member -100, Mandala Guarantee +200 and Opposing Struggle Side -100.

Will they accept?

Accepted automatically when:

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
Conqueror
when
  • The character you target: Has “conqueror” (a variable the game's script sets)
-1,000
Conqueror
when
  • Is played by the AI
  • primary_title.tier < scope:recipient.primary_title.tier
  • The target’s casus belli:
    • primary_attacker = { is_ai = yes }
    • primary_defender = { is_ai = yes }
  • The character you target:
    • Is landed
    • Highest held Title is at least County Rank
    • Does not have “conqueror” (a variable the game's script sets)
    • Their government is not Nomadic
    • One of these

      • capital_county.title_province.free_building_slots > 0
      • or

        All of these

        • Their culture:
          • has_innovation = innovation_ledger
        • capital_county.title_province.combined_building_level <= 4
      • or

        All of these

        • Their culture:
          • has_innovation = innovation_baliffs
        • capital_county.title_province.combined_building_level <= 6
      • or

        All of these

        • Their culture:
          • has_innovation = innovation_guilds
        • capital_county.title_province.combined_building_level <= 9
      • or

        All of these

        • Their culture:
          • has_innovation = innovation_cranes
        • capital_county.title_province.combined_building_level <= 12
-1,000
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
Will not fight Suzerain
when
  • Otherwise: Never
-1,000
… Opinion of …varies
Their personality (AI values: honor 1)varies
Defensive War
when
  • scope:target.casus_belli.primary_defender = scope:actor
+50
You speak the … Language
when
  • knows_language_of_culture = scope:recipient.culture
+5
The recipient's Realm is Foreign and shares your Court Language (you do not personally know …)
when
  • Have a Royal Court
  • NOT = { knows_court_language_of = this }
  • Your top liege is not the target’s
  • One of these

    • All of these

      • The character you target: Have a Royal Court
      • You:
        • has_same_court_language = scope:recipient
    • or

      The character you target:
      • liege != this
      • Doesn't have a Royal Court
      • Any liege or above:
        • Have a Royal Court
        • has_same_court_language = scope:actor
        • None of these

          • prev › Any liege or above:
            • Have a Royal Court
            • Is a vassal (or below) of the liege temp
+10
The recipient's Realm is Foreign and shares your Court Language (and you personally know …)
when
  • Have a Royal Court
  • knows_court_language_of = this
  • Your top liege is not the target’s
  • One of these

    • All of these

      • The character you target: Have a Royal Court
      • You:
        • has_same_court_language = scope:recipient
    • or

      The character you target:
      • liege != this
      • Doesn't have a Royal Court
      • Any liege or above:
        • Have a Royal Court
        • has_same_court_language = scope:actor
        • None of these

          • prev › Any liege or above:
            • Have a Royal Court
            • Is a vassal (or below) of the liege temp
+30
Entrenched Regent Protects Realm
when
  • If

    • scope:recipient ?= scope:actor.diarch

    Then

    • You:
      • has_diarchy_parameter = diarchy_type_is_entrenched_regency

    Otherwise

    • Never
+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_defender.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
Will not fight Friend
when
  • If

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

    Then

    • has_relation_friend = scope:target.casus_belli.primary_attacker

    Otherwise

    • has_relation_friend = scope:target.casus_belli.primary_defender
-50
Will not fight Best Friend
when
  • If

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

    Then

    • has_relation_best_friend = scope:target.casus_belli.primary_attacker

    Otherwise

    • has_relation_best_friend = scope:target.casus_belli.primary_defender
-100
Will not fight Lover
when
  • If

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

    Then

    • has_relation_lover = scope:target.casus_belli.primary_attacker

    Otherwise

    • has_relation_lover = scope:target.casus_belli.primary_defender
-100
Will not fight Soulmate
when
  • If

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

    Then

    • has_relation_soulmate = scope:target.casus_belli.primary_attacker

    Otherwise

    • has_relation_soulmate = scope:target.casus_belli.primary_defender
-200
Won't partake in meaningless conflict
when
  • Is a tributary of the target
  • NOT = { subject_contract_has_flag = tributary_contract_suzerain_guarantee_override }
  • The character you target:
    • Does not have you as lover
    • Does not have you as friend
    • Is not allied to you
-200
Wardens with my Hostages on opposing side
when
  • Any home court hostage:
    • warden = { … }
varies
War is against my Bloc member-100
Mandala Guarantee
when
  • Is a tributary of the target
  • subject_contract_has_flag = tributary_contract_suzerain_guarantee_override
+200
Opposing Struggle Side
when
-100
Acceptance (ai_accept) (251 lines of game script)
base = 20
modifier = {
	add = -1000
	desc = NO_FRIVOLOUS_ACTIVITIES_REASON
	scope:recipient = {
		has_variable = conqueror
	}
}
modifier = {
	add = -1000
	desc = NO_FRIVOLOUS_ACTIVITIES_REASON
	scope:actor = {
		is_ai = yes
		primary_title.tier < scope:recipient.primary_title.tier
	}
	scope:target.casus_belli = {
		primary_attacker = {
			is_ai = yes
		}
		primary_defender = {
			is_ai = yes
		}
	}
	scope:recipient = {
		ai_should_focus_on_building_in_their_capital = yes
	}
}
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
}
modifier = {
	add = -1000
	trigger_if = {
		limit = {
			exists = scope:recipient.suzerain
			trigger_if = {
				limit = {
					scope:target.casus_belli.primary_defender = scope:actor
				}
				scope:recipient.suzerain = scope:target.casus_belli.primary_attacker
			}
			trigger_else = {
				scope:recipient.suzerain = scope:target.casus_belli.primary_defender
			}
			scope:recipient = {
				exists = obedience_target
				is_obedient = yes
			}
		}
	}
	trigger_else = {
		always = no
	}
	desc = WONT_FIGHT_OBEDIENT_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
}
modifier = {
	add = 5
	desc = speaks_same_language_interaction_reason
	trigger = {
		scope:actor = {
			knows_language_of_culture = scope:recipient.culture
		}
	}
}
modifier = {
	add = 10
	desc = foreign_realm_court_language_non_spoken_interaction_reason
	trigger = {
		scope:actor = {
			has_royal_court = yes
			has_dlc_feature = royal_court
			NOT = {
				knows_court_language_of = this
			}
		}
		scope:actor.top_liege != scope:recipient.top_liege
		OR = {
			AND = {
				scope:recipient = {
					has_royal_court = yes
				}
				scope:actor = {
					has_same_court_language = scope:recipient
				}
			}
			scope:recipient = {
				liege != this
				has_royal_court = no
				any_liege_or_above = {
					has_royal_court = yes
					has_same_court_language = scope:actor
					save_temporary_scope_as = liege_temp
					NOT = {
						prev = {
							any_liege_or_above = {
								has_royal_court = yes
								is_vassal_or_below_of = scope:liege_temp
							}
						}
					}
				}
			}
		}
	}
}
modifier = {
	add = 30
	desc = foreign_realm_court_language_spoken_interaction_reason
	trigger = {
		scope:actor = {
			has_royal_court = yes
			has_dlc_feature = royal_court
			knows_court_language_of = this
		}
		scope:actor.top_liege != scope:recipient.top_liege
		OR = {
			AND = {
				scope:recipient = {
					has_royal_court = yes
				}
				scope:actor = {
					has_same_court_language = scope:recipient
				}
			}
			scope:recipient = {
				liege != this
				has_royal_court = no
				any_liege_or_above = {
					has_royal_court = yes
					has_same_court_language = scope:actor
					save_temporary_scope_as = liege_temp
					NOT = {
						prev = {
							any_liege_or_above = {
								has_royal_court = yes
								is_vassal_or_below_of = scope:liege_temp
							}
						}
					}
				}
			}
		}
	}
}
modifier = {
	add = 50
	desc = ENTRENCHED_REGENT_WILL_SUPPORT_LIEGE
	trigger_if = {
		limit = {
			scope:recipient ?= scope:actor.diarch
		}
		scope:actor = {
			has_diarchy_parameter = diarchy_type_is_entrenched_regency
		}
	}
	trigger_else = {
		always = no
	}
}
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_defender.faith
							value >= religious_cb_enabled_hostility_level
						}
					}
				
# … (cut here; the rest is in the file)

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

What happens

If they accept

  • If

    • The character you target:
      • NOT = { is_at_war_with = scope:target.primary_defender }
      • NOT = { is_at_war_with = scope:target.primary_attacker }

    Then

    • If

      • One of these

        • You › Any home court hostage:
          • warden ?= { is_attacker_in_war = scope:target }
        • or

          The target › Any war attacker › Any warden hostage:
          • home_court ?= scope:actor

      Then

    • The target:
      • If

        • is_attacker = scope:actor

        Then

        • add_attacker = scope:recipient
        • You:
          • If

            Then

            • If

              • scope:recipient.primary_title.tier = tier_barony

              Then

              • add_piety = { add = minor_piety_loss multiply = 2 }

              Else if

              • scope:recipient.primary_title.tier = tier_county

              Then

              • add_piety = { add = medium_piety_loss multiply = 2 }

              Else if

              • scope:recipient.primary_title.tier = tier_duchy

              Then

              • add_piety = { add = major_piety_loss multiply = 2 }

              Else if

              • scope:recipient.primary_title.tier = tier_kingdom

              Then

              • add_piety = { add = massive_piety_loss multiply = 1.5 }

              Else if

              • scope:recipient.primary_title.tier = tier_empire

              Then

              • add_piety = { add = monumental_piety_loss multiply = 1.5 }

              Else if

              • scope:recipient.primary_title.tier = tier_hegemony

              Then

              • add_piety = { add = monumental_piety_loss multiply = 2.5 }

            Otherwise

            • If

              • Does not have the target as blood brother

              Then

              • If

                • You:
                  • Their faith is the same as that of recipient
                  • The Personal Tenets unlock tenet peace of god cheaper ally call
                  • Their faith:
                    • faith_hostility_level = { target = scope:target.primary_defender.faith value >= faith_hostile_level }

                Then

                • pam_peace_of_god_personal_tenet_cheaper_alliance_call_effect = { }

                Otherwise

                • add_prestige = { value = 0 subtract = scope:recipient.tier_scaled_prestige_value }

        Otherwise

        • add_defender = scope:recipient
  • Event call_ally.0100
  • The target:
    • If

      • One of these

      • The character you target › Any active accolade:
        • accolade_parameter = acclaimed_knight_piety_from_battle

      Then

      • The character you target: Gain +50 Piety
    • If

      • One of these

      • The character you target › Any active accolade:
        • accolade_parameter = acclaimed_knight_piety_from_battle_high

      Then

      • The character you target: Gain +100 Piety

When it is accepted automatically

  • The character you target: Event call_ally.0001
  • The target:
    • If

      • One of these

      • The character you target › Any active accolade:
        • accolade_parameter = acclaimed_knight_piety_from_battle

      Then

      • The character you target: Gain +25 Piety
    • If

      • One of these

      • The character you target › Any active accolade:
        • accolade_parameter = acclaimed_knight_piety_from_battle_high

      Then

      • The character you target: Gain +50 Piety

If they refuse

  • If

    a check the game hides

    Then

    • The target:
      • If

        • is_attacker = scope:actor

        Then

        • You: Opinion: Rejected Call to an Offensive War
        • The character you target › If their government does not have the government is mandala flag: Gain -350 Fame Prestige

        Otherwise

      • If

        • You: Has the target as blood brother

        Then

      • If

        • scope:recipient = scope:actor.suzerain
        • is_defender = scope:actor
        • You:
          • subject_contract_has_flag = tributary_contract_suzerain_guarantee_override

        Then

        • You:
          • end_tributary = yes
    • 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 = { … }
    • The character you target:
      • If

        • If

          a check the game hides

          Then

          • Their house: Has the house check as house head

        Then

        • Their house:
          • If

            a check the game hides

            Then

            • impact_house_relation = { target = scope:other_house steps = scope:steps description = house_relation_reason_ally_call_ignored_desc }

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) (63 lines of game script)
is_available = is_at_war = yes
is_shown = scope:actor = {
	trigger_if = {
		limit = {
			is_ai = yes
		}
		scope:recipient.current_military_strength >= 100
	}
	trigger_if = {
		limit = {
			liege = scope:recipient
		}
		subject_contract_has_flag = vassal_contract_liege_forced_war_override
	}
	trigger_if = {
		limit = {
			scope:recipient = {
				is_tributary_of = scope:actor
				NOT = {
					is_allied_to = scope:actor
				}
			}
		}
		has_realm_law_flag = can_call_tributaries_for_piety
		piety >= 50
	}
}
scope:recipient = {
	OR = {
		is_allied_to = scope:actor
		AND = {
			this ?= scope:actor.diarch
			scope:actor = {
				any_character_war = {
					diarch_callable_in_internal_war_trigger = yes
				}
			}
		}
		scope:actor = {
			is_vassal_of = prev
			subject_contract_has_flag = vassal_contract_liege_forced_war_override
		}
		scope:actor = {
			is_tributary_of = prev
			subject_contract_has_flag = tributary_contract_suzerain_guarantee_override
		}
		AND = {
			is_tributary_of = scope:actor
			scope:actor = {
				piety >= 50
				has_realm_law_flag = can_call_tributaries_for_piety
			}
		}
	}
}
scope:actor = {
	NOT = {
		is_character_interaction_valid = {
			recipient = scope:recipient
			interaction = call_house_member_to_war_interaction
		}
	}
}

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

Can be sent when (is_valid…) (52 lines of game script)
scope:recipient = {
	is_ruler = yes
	custom_tooltip = {
		text = too_low_rank_to_call_hegemon
		trigger_if = {
			limit = {
				highest_held_title_tier = tier_hegemony
			}
			scope:actor = {
				highest_held_title_tier >= tier_empire
			}
		}
	}
}
scope:actor = {
	custom_description = {
		text = must_be_war_leader
		any_character_war = {
			is_war_leader = scope:actor
		}
	}
	custom_description = {
		text = cannot_call_same_character_multiple_times
		object = scope:recipient
		any_character_war = {
			ALL_FALSE = {
				was_called = scope:recipient
				is_participant = scope:recipient
			}
		}
	}
	trigger_if = {
		limit = {
			faith != scope:recipient.faith
		}
		custom_description = {
			text = is_of_wrong_faith_for_holy_war
			subject = scope:actor
			object = scope:recipient
			any_character_war = {
				NOR = {
					using_cb = undirected_great_holy_war
					using_cb = directed_great_holy_war
				}
			}
		}
	}
}
can_potentially_call_ally_trigger = {
	WARRIOR = scope:actor
	JOINER = scope:recipient
}

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

Effects (on_send, on_accept, on_decline) (211 lines of game script)
on_accept = call_ally_interaction_effect = yes
save_scope_value_as = {
	name = call_ally_interaction
	value = yes
}
scope:actor = {
	hidden_effect = {
		if = {
			limit = {
				NOR = {
					has_relation_friend = scope:recipient
					has_relation_potential_friend = scope:recipient
				}
			}
			set_relation_potential_friend = scope:recipient
		}
	}
	trigger_event = call_ally.0100
}
scope:target = {
	if = {
		limit = {
			is_religious_war = yes
			scope:recipient = {
				any_active_accolade = {
					accolade_parameter = acclaimed_knight_piety_from_battle
				}
			}
		}
		scope:recipient = {
			add_piety = minor_piety_gain
		}
	}
	if = {
		limit = {
			is_religious_war = yes
			scope:recipient = {
				any_active_accolade = {
					accolade_parameter = acclaimed_knight_piety_from_battle_high
				}
			}
		}
		scope:recipient = {
			add_piety = medium_piety_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
				}
			}
			scope:recipient = {
				if = {
					limit = {
						NOT = {
							government_has_flag = government_is_mandala
						}
					}
					add_prestige_experience = major_prestige_loss
				}
			}
		}
		else = {
			scope:actor = {
				add_opinion = {
					modifier = rejected_call_to_defensive_war
					target = scope:recipient
				}
			}
			scope:recipient = {
				if = {
					limit = {
						government_has_flag = government_is_mandala
					}
					add_prestige_experience = major_prestige_loss
					add_piety_level = -1
				}
				else = {
					add_prestige_experience = massive_prestige_loss
				}
			}
		}
		if = {
			limit = {
				scope:actor = {
					has_relation_blood_brother = scope:recipient
				}
			}
			scope:recipient = {
				add_piety_experience = massive_piety_loss
				add_character_modifier = {
					modifier = broke_blood_brotherhood_modifier
					desc = broke_blood_brotherhood_modifier_acceptance_tt
					years = 25
				}
				remove_relation_blood_brother = scope:actor
			}
			scope:actor = {
				set_relation_rival = {
					target = scope:recipient
					reason = rival_blood_brother_refused_call_reason
				}
			}
		}
		if = {
			limit = {
				scope:recipient = scope:actor.obedience_target
				scope:actor = {
					OR = {
						subject_contract_has_flag = vassal_contract_liege_forced_war_override
						subject_contract_has_flag = tributary_contract_suzerain_guarantee_override
					}
				}
			}
			scope:actor = {
				set_variable = {
					name = not_obedient_declined_call
					value = scope:recipient
					years = 5
				}
			}
		}
		if = {
			limit = {
				scope:recipient = scope:actor.suzerain
				is_defender = scope:actor
				scope:actor = {
					subject_contract_has_flag = tributary_contract_suzerain_guarantee_override
				}
			}
			scope:actor = {
				end_tributary = yes
			}
		}
		hidden_effect = {
			if = {
				limit = {
					NOT = {
						was_called = scope:recipient
					}
				}
				set_called_to = scope:recipient
			}
		}
	}
	scope:actor = {
		trigger_event = call_ally.0101
	}
	refuse_call_to_arms_add_clan_unity_effect = yes
	scope:recipient = {
		if = {
			limit = {
				exists = house
				is_house_head = yes
				exists = scope:actor.house
			}
			house = {
				change_house_relation_effect = {
					HOUSE = scope:actor.house
					VALUE = house_relation_damage_medium_value
					REASON = ally_call_ignored
					CHAR = scope:recipient
					TARGET_CHAR = scope:actor
					TITLE = scope:dummy_gender
				}
			}
		}
	}
}
on_auto_accept = scope:recipient = {
	trigger_event = call_ally.0001
}
scope:target = {
	if = {
		limit = {
			is_religious_war = yes
			scope:recipient = {
				any_active_accolade = {
					accolade_parameter = acclaimed_knight_piety_from_battle
				}
			}
		}
		scope:recipient = {
			add_piety = miniscule_piety_gain
		}
	}
	if = {
		limit = {
			is_religious_war = yes
			scope:recipient = {
				any_active_accolade = {
					accolade_parameter = acclaimed_knight_piety_from_battle_high
				}
			}
		}
		scope:recipient = {
			add_piety = minor_piety_gain
		}
	}
}

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

Category
Diplomatic actions
In the menu
under More…
ID
call_ally_interaction

Source: game/common/character_interactions/00_alliance.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?