Interaction · Vassal actions
Request Military Aid
Make a formal request to have the recipient issue an order for a Military Governor to join your War
What you need
You
To send it
- There are no Military Governors within the Realm
- There are no Military Governors available that may join your Wars
- Is at War
- Is not at War with their Liege
- Is not at war with the target
- You are not at War with a Vassal of your Liege
- If at War: … are not a War Leader
If
- You: Is played by the AI
Then
None of these
- The character you target: Has “celestial request military aid cooldown” (a variable the game's script sets)
To see it in the menu
- Government allows: merit
- If played by the AI: Is at War
One of these
- Is a Governor
or
Holds Commission
- Is an Independent Ruler
- you has administrative government mechanic
Request Military Aid is a vassal character interaction in Crusader Kings III. You need: There are no Military Governors within the Realm, There are no Military Governors available that may join your Wars, Is at War and 3 more. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/10_tgp_interactions.txt.
Quick answers (2)
- What are the requirements for Request Military Aid in CK3?
- You: There are no Military Governors within the Realm, There are no Military Governors available that may join your Wars, Is at War, Is not at War with their Liege, Is not at war with the target and You are not at War with a Vassal of your Liege. (patch 1.20.1.2)
- Will the AI accept Request Military Aid?
- Yes: it is accepted automatically.
Will they accept?
The other character has no choice: the game accepts it automatically.
Acceptance (ai_accept) (1 line of game script)
base = 100
As written in game/common/character_interactions/10_tgp_interactions.txt.
What happens
Effects
- If played by the AI: Opinion: Grateful (+10)
If
NOT = { scope:hook = yes }NOT = { scope:dominant_family = yes }
Then
pay_short_term_treasury = { target = scope:recipient treasury = 50 }
If
title:h_china.holder ?= scope:recipient- Any character situation:
situation:dynastic_cycle ?= this- The current phase counts “Son of Heaven Influenced Dynastic Cycle Catalyst”
Then
- Dynastic Cycle: Counts toward the situation's next phase: “Son of Heaven Influenced Dynastic Cycle Catalyst”
- The character you target:
- Influence +100
- If played by the AI: … approves your request for troops
- Event tgp_interaction_event.0010 (after 1–5 days)
If they refuse
- If played by the AI: Opinion: Disappointed (-20)
- The character you target:
- If played by the AI: … denies your request for troops
If
- The option “dominant family” is chosen
Then
- Influence -60
Options when sending
- Use a Hook
- Leverage position of Dominant Family
Events it fires: tgp_interaction_event.0010
• 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 = government_allows = merit
trigger_if = {
limit = {
is_ai = yes
}
is_at_war = yes
}
OR = {
is_governor = yes
has_title = title:e_minister_grand_marshal
}
top_liege != this
government_has_mechanic = administrative
is_shown = scope:recipient = {
government_has_mechanic = administrative
OR = {
this = scope:actor.top_liege
AND = {
has_title = title:e_minister_of_war
liege ?= {
tgp_has_access_to_ministry_trigger = yes
this = scope:actor.top_liege
}
}
}
}As written in game/common/character_interactions/10_tgp_interactions.txt.
Can be sent when (is_valid…) (62 lines of game script)
custom_tooltip = {
text = celestial_request_military_aid_no_military_governors_desc
scope:recipient.top_liege = {
any_vassal_or_below = {
OR = {
vassal_contract_has_flag = celestial_military_appointment
vassal_contract_has_flag = meritocratic_military_appointment
}
}
}
}
custom_tooltip = {
text = celestial_request_military_aid_no_available_military_governors_desc
scope:recipient.top_liege = {
any_vassal_or_below = {
tgp_celestial_military_governor_can_join_war_trigger = {
TARGET_GOVERNOR = scope:actor
MINISTER_OF_WAR = scope:recipient
}
}
}
}
scope:actor = {
is_at_war = yes
is_at_war_with_liege = no
NOR = {
is_at_war_with = scope:recipient
custom_tooltip = {
text = petition_liege_vassal_war_tt
any_war_enemy = {
top_liege = scope:actor.top_liege
}
}
}
trigger_if = {
limit = {
is_at_war = yes
}
custom_description = {
text = target_is_not_war_leader
object = scope:actor
any_character_war = {
scope:actor = {
is_leader_in_war = prev
}
}
}
}
}
trigger_if = {
limit = {
scope:actor = {
is_ai = yes
}
}
NOT = {
scope:recipient = {
has_variable = celestial_request_military_aid_cooldown
}
}
}
As written in game/common/character_interactions/10_tgp_interactions.txt.
Effects (on_send, on_accept, on_decline) (228 lines of game script)
on_send =
on_accept = if = {
limit = {
scope:hook = yes
scope:actor = {
has_usable_hook = scope:recipient
}
}
scope:actor = {
use_hook = scope:recipient
}
}
scope:actor = {
if = {
limit = {
is_ai = yes
}
add_opinion = {
target = scope:recipient
modifier = grateful_opinion
opinion = 10
}
if = {
limit = {
NOT = {
has_variable = celestial_request_military_aid_cooldown
}
}
set_variable = {
name = celestial_request_military_aid_cooldown
years = 1
}
}
}
if = {
limit = {
NOR = {
scope:hook = yes
scope:dominant_family = yes
}
}
pay_short_term_treasury = {
target = scope:recipient
treasury = 50
}
}
tgp_activate_catalyst_against_hegemon_effect = {
HEGEMON = scope:recipient
CATALYST = catalyst_hegemon_influenced_by_interaction
}
}
scope:recipient.top_liege = {
every_vassal = {
limit = {
tgp_celestial_military_governor_can_join_war_trigger = {
TARGET_GOVERNOR = scope:actor
MINISTER_OF_WAR = scope:recipient
}
}
add_to_list = military_governors
}
}
scope:actor = {
every_character_war = {
limit = {
scope:actor = {
is_leader_in_war = prev
}
}
add_to_list = actor_ongoing_wars
}
ordered_in_list = {
list = actor_ongoing_wars
order_by = {
value = 0
if = {
limit = {
is_defender = scope:actor
}
every_war_attacker = {
add = current_military_strength
}
}
else_if = {
limit = {
is_attacker = scope:actor
}
every_war_defender = {
add = current_military_strength
}
}
}
save_temporary_scope_value_as = {
name = estimated_military_strength_needed
value = {
value = 0
if = {
limit = {
is_defender = scope:actor
}
every_war_attacker = {
add = current_military_strength
}
}
else_if = {
limit = {
is_attacker = scope:actor
}
every_war_defender = {
add = current_military_strength
}
}
}
}
}
}
scope:actor = {
random_character_war = {
primary_defender = {
save_scope_as = opponent
}
}
}
random_in_list = {
list = military_governors
weight = {
base = 10
modifier = {
exists = scope:opponent.primary_title.title_province
capital_county = {
squared_distance = {
target = scope:opponent.primary_title.title_province
value < 10000
}
}
add = 20
}
modifier = {
exists = scope:opponent.primary_title.title_province
capital_county = {
squared_distance = {
target = scope:opponent.primary_title.title_province
value < 30000
}
}
add = 10
}
modifier = {
current_military_strength >= scope:estimated_military_strength_needed
add = 20
}
modifier = {
is_at_war = no
add = 10
}
modifier = {
is_ai = no
add = 5
}
}
save_scope_as = joining_governor
}
scope:recipient = {
change_influence = major_influence_value
if = {
limit = {
is_ai = yes
}
custom_tooltip = request_emperor_title_troops_approve_desc
}
trigger_event = {
id = tgp_interaction_event.0010
days = { 1 5 }
}
}
on_decline = scope:actor = {
if = {
limit = {
is_ai = yes
}
add_opinion = {
target = scope:recipient
modifier = disappointed_opinion
opinion = -20
}
if = {
limit = {
NOT = {
has_variable = celestial_request_military_aid_cooldown
}
}
set_variable = {
name = celestial_request_military_aid_cooldown
years = 3
}
}
else = {
remove_variable = celestial_request_military_aid_cooldown
set_variable = {
name = celestial_request_military_aid_cooldown
years = 3
}
}
}
hidden_effect = {
send_interface_message = {
type = msg_admin_provincial_army_request_denied
title = msg_admin_provincial_army_request_denied.title
desc = msg_admin_provincial_army_request_denied.desc
left_icon = scope:recipient
right_icon = scope:target
}
}
}
scope:recipient = {
if = {
limit = {
is_ai = yes
}
custom_tooltip = request_emperor_title_troops_deny_desc
}
if = {
limit = {
scope:dominant_family = yes
}
change_influence = medium_influence_loss
}
}As written in game/common/character_interactions/10_tgp_interactions.txt.
- Category
- Vassal actions
- Cooldown
- 30 days
- In the menu
- under More…
- ID
celestial_request_military_aid_interaction
Source: game/common/character_interactions/10_tgp_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.