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

Ask for Military Assistance

No costThe AI weighs it (the answer is partly random)

Offer Gold to the recipient for joining in one of your Wars, since you are both Involved in the same Struggle.

What you need

You

To send it

  • You are already Assisting Militarily in a war
  • The target:
    • Is war leader in the war against you
    • If any war attacker:
      • None of these

        • Any war defender: Is allied to you
    • Otherwise:
      • None of these

        • Any war attacker: Is allied to you
  • If

    Then

    • Exiled

To see it in the menu

  • Is at War
  • Any character struggle:
    • involvement = involved
    • has_struggle_phase_parameter = unlocks_contract_assistance_interaction
  • If played by the AI:
    • gold >= ai_war_chest_desired_gold_value
    • Is at not War
    • Is not imprisoned
  • Is not at war with the target

The character you target

To send it

  • Is not allied to you
  • Not: Armies are raised

To see it in the menu

  • Any character struggle:
    • involvement = involved
    • has_struggle_phase_parameter = unlocks_contract_assistance_interaction

Which character you can pick

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

Ask for Military Assistance is a diplomatic character interaction in Crusader Kings III. You need: You are already Assisting Militarily in a war. The character you target needs: Is not allied to you and Not: Armies are raised. The AI weighs it (the answer is partly random). Reasons the AI weighs include The recipient is not interested in help for this war (-500) and You past failures as a contractor (-50). Patch 1.20.1.2, from game/common/character_interactions/03_fp2_interactions.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Ask for Military Assistance in CK3?
You: You are already Assisting Militarily in a war. The character you target: Is not allied to you and Not: Armies are raised. (patch 1.20.1.2)
How do I get the AI to accept Ask for Military Assistance?
The AI weighs it (the answer is partly random). Its reasons: Greed, The recipient has Gold to spend, The recipient is not interested in help for this war -500, The recipient finds your Martial Skill impressive, You past failures as a contractor -50, … Opinion of …, Greed, Boldness and Loyalty towards Ally.

Will they accept?

The AI adds these up and accepts above zero; near zero the answer is partly random (ai_maybe). Reasons in italics are the script's, with no label in the game.

ReasonAmount
Base0
Greedvaries
The recipient has Gold to spend
when
  • gold >= offer_assistance_interaction_gold_value
varies
The recipient is not interested in help for this war
when
  • The target:
    • One of these

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

        The war’s casus belli is Border Raid
-500
The recipient finds your Martial Skill impressive
when
  • Martial at least 12
your martial × 2
You past failures as a contractor-50
… Opinion of …varies
Greed
when
  • Ai greed at most 0.5
varies
Boldness
when
  • NOT = { ai_boldness = 0 }
varies
Loyalty towards Ally
when
  • The target:
    • If

      • is_attacker = scope:actor

      Then

      • The character you target:
        • is_allied_to = scope:target.primary_defender

      Otherwise

      • The character you target:
        • is_allied_to = scope:target.primary_attacker
varies
Acceptance (ai_accept) (106 lines of game script)
base = 0
modifier = {
	add = {
		value = 25
		if = {
			limit = {
				gold < 0
			}
			add = {
				value = 25
				multiply = debt_level
			}
		}
		if = {
			limit = {
				OR = {
					ai_greed <= -50
					ai_vengefulness >= 50
				}
			}
			multiply = 0.5
		}
	}
	desc = AI_VALUE_MODIFIER_GREED
}
modifier = {
	add = {
		value = -25
		if = {
			limit = {
				gold >= {
					value = offer_assistance_interaction_gold_value
					multiply = 2
				}
			}
			add = -50
		}
		if = {
			limit = {
				gold >= {
					value = offer_assistance_interaction_gold_value
					multiply = 3
				}
			}
			add = -50
		}
	}
	gold >= offer_assistance_interaction_gold_value
	desc = OA_AI_EXTRA_GOLD_REASON
}
modifier = {
	add = -500
	exists = scope:target
	scope:target = {
		OR = {
			using_cb = peasant_war
			using_cb = fp2_border_raid
		}
	}
	desc = OA_AI_UNINTERESTED_WAR_REASON
}
modifier = {
	add = {
		value = scope:actor.martial
		multiply = 2
	}
	scope:actor = {
		martial >= 12
	}
	desc = OA_AI_MARTIAL_REASON
}
modifier = {
	add = -50
	scope:recipient = {
		has_character_flag = fp2_contract_assistance_failure
	}
	desc = OA_AI_FAILURE_REASON
}
opinion_modifier = {
	who = scope:recipient
	opinion_target = scope:actor
	multiplier = 0.25
	desc = AI_OPINION_REASON
}
modifier = {
	add = {
		value = ai_greed
		multiply = 0.2
	}
	ai_greed <= 0.5
	desc = AI_VALUE_MODIFIER_GREED
}
modifier = {
	add = {
		value = ai_boldness
		multiply = 0.2
	}
	NOT = {
		ai_boldness = 0
	}
	desc = AI_VALUE_MODIFIER_BOLDNESS
}
fp2_contracting_ally_modifier = {
	WARMONGER = scope:actor
	WARJOINER = scope:recipient
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

What happens

If they accept

  • The target:
    • If

      • is_attacker = scope:actor

      Then

      • add_attacker = scope:recipient

      Otherwise

      • add_defender = scope:recipient
  • The character you target:
    • Stress and fulfillment impact: by trait: Craven +40, Shy +20
    • If

      • Any character struggle:
        • involvement = involved
        • phase_has_catalyst = catalyst_join_war_as_assisant
        • The character you target › Any character struggle:
          • involvement = involved

      Then

      • Every character struggle:
        • Where:
          • phase_has_catalyst = catalyst_join_war_as_assisant
          • The character you target › Any character struggle:
            • involvement = involved
        • involvement = involved
        • activate_struggle_catalyst = { catalyst = catalyst_join_war_as_assisant character = scope:recipient }
  • Stress and fulfillment impact: by trait: Greedy +40, Arrogant +40
  • If … War Contribution is at least … when the War ends:
  • Pay 0 gold to the target
  • 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 = { … }

If they refuse

  • Event char_interaction.0236
  • If

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

      • You are not the target

      Then

      • The target is not you

    Then

    • The target’s house:
      • add_unity_value = { … }

    Else if

    • No
    • The character you target: Government is Clan
    • The target’s house: Has the target as house head
    • One of these

      • All of these

        • exists = scope:actor.house
        • The target’s house is not your
      • or

        You: Is Lowborn

    Then

    • The target’s house:
      • add_unity_value = { … }

Events it fires: char_interaction.0236

• 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) (25 lines of game script)
is_available = is_at_war = yes
any_character_struggle = {
	involvement = involved
	has_struggle_phase_parameter = unlocks_contract_assistance_interaction
}
trigger_if = {
	limit = {
		is_ai = yes
	}
	gold >= ai_war_chest_desired_gold_value
	is_at_war = no
	is_imprisoned = no
}
is_shown = scope:actor = {
	NOR = {
		this = scope:recipient
		is_at_war_with = scope:recipient
	}
}
scope:recipient = {
	any_character_struggle = {
		involvement = involved
		has_struggle_phase_parameter = unlocks_contract_assistance_interaction
	}
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

Can be sent when (is_valid…) (32 lines of game script)
scope:recipient = {
	NOT = {
		is_allied_to = scope:actor
	}
}
trigger_if = {
	limit = {
		exists = scope:recipient.liege
	}
	custom_description = {
		text = join_war_interaction_recipient_warring_with_my_liege
		subject = scope:actor
		scope:recipient = {
			NOT = {
				any_liege_or_above = {
					is_at_war_with = scope:actor
				}
			}
		}
	}
}
scope:recipient = {
	has_raised_armies = no
}
custom_tooltip = {
	text = contract_assistance_war_already_contracted_tt
	scope:recipient = {
		NOT = {
			has_variable = owed_contract_assistance_war
		}
	}
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

Effects (on_send, on_accept, on_decline) (91 lines of game script)
on_accept = scope:target = {
	hidden_effect = {
		set_called_to = scope:recipient
	}
	if = {
		limit = {
			is_attacker = scope:actor
		}
		add_attacker = scope:recipient
	}
	else = {
		add_defender = scope:recipient
	}
}
scope:recipient = {
	save_scope_as = contract_assistance_helper
	set_variable = {
		name = owed_contract_assistance_war
		value = scope:target
	}
	set_variable = {
		name = owed_contract_assistance_contribution
		value = offer_assistance_interaction_war_contribution_value
	}
	set_variable = {
		name = owed_contract_assistance_gold
		value = offer_assistance_interaction_gold_value
	}
	stress_and_fulfillment_impact = {
		craven = medium_stress_impact_gain
		shy = minor_stress_impact_gain
	}
	if = {
		limit = {
			any_character_struggle = {
				involvement = involved
				activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
					CATALYST = catalyst_join_war_as_assisant
					CHAR = scope:recipient
				}
			}
		}
		every_character_struggle = {
			involvement = involved
			limit = {
				activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
					CATALYST = catalyst_join_war_as_assisant
					CHAR = scope:recipient
				}
			}
			activate_struggle_catalyst = {
				catalyst = catalyst_join_war_as_assisant
				character = scope:recipient
			}
		}
	}
}
scope:actor = {
	stress_and_fulfillment_impact = {
		greedy = medium_stress_impact_gain
		arrogant = medium_stress_impact_gain
	}
	custom_description_no_bullet = {
		text = contract_assistance_interaction_condition_tt
		subject = scope:actor
		object = scope:recipient
	}
	show_as_tooltip = {
		pay_short_term_gold = {
			target = scope:recipient
			gold = offer_assistance_interaction_gold_value
		}
	}
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:actor
	TARGET = scope:recipient
	VALUE = medium_unity_loss
	DESC = clan_unity_request_assistance.desc
	REVERSE_NON_HOUSE_TARGET = no
}
on_decline = scope:actor = {
	trigger_event = char_interaction.0236
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:recipient
	TARGET = scope:actor
	VALUE = minor_unity_gain
	DESC = clan_unity_request_assistance_decline.desc
	REVERSE_NON_HOUSE_TARGET = no
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

Category
Diplomatic actions
Again on the same character
after 5 years
In the menu
main list
ID
request_contract_assistance_interaction

Source: game/common/character_interactions/03_fp2_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?