Interaction · Vassal actions
Demand Concubine
Demand a Concubine from your Tributary (or Subject if Nomadic) the recipient
What you need
You
To send it
allowed_more_concubines = yes- … does not have any valid Concubines
Also needed: available (an adult, not imprisoned, not incapable)
The character you target
One of these
or
Is a tributary of you
Which character you can pick
- Is an Adult
Demand Concubine is a vassal character interaction in Crusader Kings III. You need: Is available (an adult, not imprisoned, not incapable). 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 8 more. Patch 1.20.1.2, from game/common/character_interactions/00_tributary_interactions.txt.
Quick answers (2)
- What are the requirements for Demand Concubine in CK3?
- You: Is available (an adult, not imprisoned, not incapable). (patch 1.20.1.2)
- How do I get the AI to accept Demand Concubine?
- 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, The character you send is my Spouse -50, The character you send is my Child -50 and The character you send is my Rival +1,000.
Will they accept?
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 |
The character you send is my Spousewhen
| -50 |
The character you send is my Childwhen
| -50 |
The character you send is my Rivalwhen
| +1,000 |
Acceptance (ai_accept) (91 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 = -50
scope:secondary_actor = {
is_consort_of = scope:recipient
}
desc = AI_SPOUSE_REASON
}
modifier = {
add = -50
scope:secondary_actor = {
is_child_of = scope:recipient
}
desc = AI_CHILD_REASON
}
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
- The character you target:
If
- The character you send:
- Is not the target’s consort
- Is not family of the target
Then
- Opinion: Upset (-15)
Otherwise
If
Then
If
- Does not have the target char as grudge
Then
Otherwise
- Opinion: Grudge Exacerbated (-20)
Else if
Then
Otherwise
If
- Does not have the target char as friend
- Does not have the target char as best friend
- Does not have the target char as rival
- Does not have the target char as nemesis
- Does not have the target char as potential rival
Then
set_relation_potential_rival = scope:target_char
If
NOT = { scope:rival_opinion = 0 }
Then
If
- The target char: Is played by the AI
Then
- The target char gains the opinion “Hatred” of them
- Opinion: Hatred
- Opinion: Upset (-50)
clear_saved_scope = secondary_actor
- The character you send:
- The character you send:
- Event marriage_interaction.0040
- If imprisoned:
release_from_prison = yes- Opinion: Forced Me to Serve as a Concubine
- Every close family member:
If
a check the game hides
Then
- Opinion: Forced My Relative to Serve as a Concubine
If
One of these
None of these
- Their rite: Has the Concubines Doctrine
or
None of these
- Their rite: The rite has the tenet Polyamory
or
All of these
allowed_to_marry_same_sex_trigger = { }- You:
sex_same_as = scope:secondary_actor
Then
- Opinion: Forced My Relative into a Blasphemous Union
If
- Is not betrothed to you
Then
break_betrothal = betrothed
- If number of concubines more than 0 › Every concubine › The character you send:
remove_concubine = prev
If
- Is the target’s concubine
Then
- The character you target:
remove_concubine = scope:secondary_actor
- You: … (more in the script below)
If they refuse
- … refused to hand over … to …
- Opinion: Upset (-15)
Events it fires: marriage_interaction.0040
• 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) (31 lines of game script)
is_available = allowed_concubines = yes
trigger_if = {
limit = {
is_ai = yes
}
any_tributary = { }
OR = {
ai_honor <= 0
has_trait = lustful
}
}
is_shown = scope:actor != scope:recipient
scope:actor = {
NOR = {
government_has_flag = government_has_merit
government_has_flag = government_is_mandala
}
}
scope:recipient = {
OR = {
trigger_if = {
limit = {
scope:actor = {
government_has_flag = government_is_nomadic
}
}
is_vassal_of = scope:actor
}
is_tributary_of = scope:actor
}
}As written in game/common/character_interactions/00_tributary_interactions.txt.
Can be sent when (is_valid…) (20 lines of game script)
scope:actor = {
allowed_more_concubines = yes
is_physically_able_adult = yes
}
custom_tooltip = {
text = must_have_valid_concubine_tt
scope:recipient = {
any_courtier = {
is_physically_able_adult = yes
is_ruler = no
could_marry_character_trigger = {
CHARACTER = scope:actor
}
NOT = {
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) (56 lines of game script)
on_send = scope:secondary_actor = {
add_character_flag = {
flag = has_been_offered_as_concubine
days = 5
}
}
on_accept = scope:recipient = {
if = {
limit = {
scope:secondary_actor = {
NOR = {
is_consort_of = scope:recipient
is_close_or_extended_family_of = scope:recipient
}
}
}
add_opinion = {
target = scope:actor
modifier = upset_opinion
opinion = -15
}
}
else = {
scope:secondary_actor = {
save_scope_as = relationship_reason_involved_character
}
progress_towards_rival_effect = {
REASON = rival_demanded_concubine
CHARACTER = scope:actor
OPINION = 0
}
add_opinion = {
target = scope:actor
modifier = upset_opinion
opinion = -50
}
clear_saved_scope = secondary_actor
}
}
demand_concubine_interaction_on_accept_effect = yes
on_decline = scope:actor = {
send_interface_toast = {
type = event_toast_effect_bad
title = msg_concubine_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_concubine_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.