Interaction · Vassal actions
Demand Courtier
Demand a Courtier from the recipient The demanded Courtier cannot be: • One of their Heirs • A Child • One of their Spouses or Concubines • In a non-dominant Marriage • their Regent
What you need
You
To send it
- … has no available, healthy, adult Courtiers
To see it in the menu
- If played by the AI:
- Any tributary:
- Ai greed at least 0
The character you target
One of these
If
- You: Government allows: obedience
Then
- Is a vassal of you
or
Is a tributary of youor
All of these
- You: Your Government is Celestial
- Is a direct vassal of you
or
All of these
- You: Holds Ministry of Personnel
- Is a ruler
top_liege ?= scope:actor.top_liege- Is an Independent Ruler
Which character you can pick
- Is an Adult
Demand Courtier is a vassal character interaction in Crusader Kings III. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include The recipient is Obedient to you (+1,000), Intimidated by you (+25), Terrified of you (+50) and 7 more. Patch 1.20.1.2, from game/common/character_interactions/00_tributary_interactions.txt.
Quick answers (1)
- How do I get the AI to accept Demand Courtier?
- Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: The recipient is Obedient to you +1,000, Intimidated by you +25, Terrified of you +50, … Opinion of …, The character you send is a Councillor or holds a Court Position -25, The character you send is a Knight -15, The character you send has an Inspiration -50, The character you send is my Family Member -25, The character you send is my Friend -50, Weak Hook used +100 and The character you send is my Rival +1,000.
Will they accept?
Accepted automatically when:
- Holds Ministry of Personnel
- … and … are in the same realm
- The character you target: Is played by the AI
Otherwise the AI adds these up and accepts above zero. Reasons in italics are the script's, with no label in the game.
| Reason | Amount |
|---|---|
| Base | 0 |
The recipient is Obedient to youwhen
| +1,000 |
Intimidated by youwhen
| +25 |
Terrified of youwhen
| +50 |
| … Opinion of … | varies |
The character you send is a Councillor or holds a Court Positionwhen
| -25 |
The character you send is a Knightwhen
| -15 |
| The character you send has an Inspiration | -50 |
The character you send is my Family Memberwhen
| -25 |
The character you send is my Friendwhen
| -50 |
Weak Hook usedwhen
| +100 |
The character you send is my Rivalwhen
| +1,000 |
Acceptance (ai_accept) (82 lines of game script)
base = 0
modifier = {
add = 1000
scope:recipient = {
is_obedient_to = scope:actor
}
desc = AI_OBEDIENT_REASON
}
modifier = {
add = 25
scope:recipient = {
has_dread_level_towards = {
target = scope:actor
level = 1
}
}
desc = INTIMIDATED_REASON
}
modifier = {
add = 50
scope:recipient = {
has_dread_level_towards = {
target = scope:actor
level = 2
}
}
desc = COWED_REASON
}
opinion_modifier = {
who = scope:recipient
opinion_target = scope:actor
multiplier = 1.0
desc = AI_OPINION_REASON
}
modifier = {
add = -25
scope:secondary_actor = {
OR = {
is_councillor = yes
has_any_court_position = yes
}
}
desc = AI_EMPLOYED_COURTIER_REASON
}
modifier = {
add = -15
scope:secondary_actor = {
is_knight = yes
}
desc = AI_IS_KNIGHT_REASON
}
modifier = {
add = -50
exists = scope:secondary_actor.inspiration
desc = AI_INSPIRED_REASON
}
modifier = {
add = -25
scope:secondary_actor = {
is_close_or_extended_family_of = scope:recipient
}
desc = AI_FAMILY_REASON
}
modifier = {
add = -50
scope:secondary_actor = {
has_relation_friend = scope:recipient
}
desc = AI_FRIEND_REASON
}
modifier = {
add = 100
scope:hook ?= yes
desc = SCHEME_WEAK_HOOK_USED
}
modifier = {
add = 1000
scope:secondary_actor = {
has_relation_rival = scope:recipient
}
desc = AI_RIVAL_REASON
}As written in game/common/character_interactions/00_tributary_interactions.txt.
What happens
If they accept
If
- You: Holds Ministry of Personnel
- The character you target:
top_liege = scope:actor.top_liege
Then
- You:
add_courtier = scope:secondary_actor- The character you send:
- Every consort:
- Where: Is a courtier of the target
- You:
add_courtier = prev
- Every child:
- Where: Is a child · Is a courtier of the target
- You:
add_courtier = prev
- Every consort:
Otherwise
- The character you send: Opinion: Annoyed (-10)
- You:
- The character you target: Opinion: Upset (-15)
If they refuse
- … refused to hand over … to …
- Opinion: Upset (-15)
Options when sending
- Use a Hook
• 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) (35 lines of game script)
is_available = trigger_if = {
limit = {
is_ai = yes
}
any_tributary = { }
ai_greed >= 0
}
is_shown = scope:actor != scope:recipient
scope:recipient = {
OR = {
trigger_if = {
limit = {
scope:actor = {
government_allows = obedience
}
}
is_vassal_of = scope:actor
}
is_tributary_of = scope:actor
AND = {
scope:actor = {
government_has_flag = government_is_celestial
}
liege ?= scope:actor
}
AND = {
scope:actor = {
has_title = title:e_minister_of_personnel
}
is_ruler = yes
top_liege ?= scope:actor.top_liege
top_liege != this
}
}
}As written in game/common/character_interactions/00_tributary_interactions.txt.
Can be sent when (is_valid…) (24 lines of game script)
custom_tooltip = {
text = demand_courtier_valid_courtier_tt
scope:recipient = {
any_courtier = {
is_available_healthy_ai_adult = yes
NOR = {
is_consort_of = scope:recipient
is_heir_of = scope:recipient
AND = {
is_female = yes
patrilinear_marriage = yes
}
AND = {
is_male = yes
matrilinear_marriage = yes
}
is_diarch = yes
is_designated_diarch = yes
has_character_flag = has_been_offered_as_concubine
}
}
}
}
As written in game/common/character_interactions/00_tributary_interactions.txt.
Effects (on_send, on_accept, on_decline) (111 lines of game script)
on_send = scope:secondary_actor = {
add_character_flag = {
flag = has_been_offered_as_concubine
days = 5
}
}
on_accept = scope:actor = {
send_interface_toast = {
type = event_toast_effect_good
title = msg_courtier_demand_accepted_title
right_icon = scope:recipient
left_icon = scope:secondary_actor
if = {
limit = {
scope:actor = {
has_title = title:e_minister_of_personnel
}
scope:recipient = {
top_liege = scope:actor.top_liege
}
}
scope:actor = {
add_courtier = scope:secondary_actor
scope:secondary_actor = {
every_consort = {
limit = {
is_courtier_of = scope:recipient
}
scope:actor = {
add_courtier = prev
}
}
every_child = {
limit = {
is_adult = no
is_courtier_of = scope:recipient
}
scope:actor = {
add_courtier = prev
}
}
}
}
}
else = {
scope:secondary_actor = {
add_opinion = {
target = scope:recipient
modifier = annoyed_opinion
opinion = -10
}
}
scope:actor = {
add_courtier = scope:secondary_actor
scope:secondary_actor = {
every_consort = {
limit = {
is_courtier_of = scope:recipient
}
scope:actor = {
add_courtier = prev
}
}
every_child = {
limit = {
is_adult = no
is_courtier_of = scope:recipient
}
scope:actor = {
add_courtier = prev
}
}
}
add_opinion = {
target = scope:recipient
modifier = offer_courtier_opinion
opinion = 20
}
if = {
limit = {
scope:hook = yes
}
use_hook = scope:recipient
}
}
scope:recipient = {
add_opinion = {
target = scope:actor
modifier = upset_opinion
opinion = -15
}
}
}
}
}
on_decline = scope:actor = {
send_interface_toast = {
type = event_toast_effect_bad
title = msg_courtier_demand_rejected_title
right_icon = scope:recipient
left_icon = scope:secondary_actor
custom_tooltip = msg_courtier_demand_rejected
}
}
scope:actor = {
add_opinion = {
target = scope:recipient
modifier = upset_opinion
opinion = -15
}
}As written in game/common/character_interactions/00_tributary_interactions.txt.
- Category
- Vassal actions
- Again on the same character
- after 3 years
- In the menu
- under More…
- ID
demand_courtier_interaction
Source: game/common/character_interactions/00_tributary_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.