Interaction · Friendly actions
Offer Eunuch
Send a Eunuch or Beardless Eunuch from your court to serve the recipient, gaining Influence.
What you need
You
To send it
None of these
- The character you target: Is at war with you
To see it in the menu
- If played by the AI: you has administrative government mechanic
- Any courtier:
One of these
- Has the Trait: Eunuch
or
Has the Trait: Beardless Eunuch
- The target is not you
scope:recipient.top_liege ?= scope:recipient.liege- you has administrative government mechanic
The character you target
- they has administrative government mechanic
- Is a ruler
Which character you can pick
- Is an Adult
- This eunuch has already been offered to another character.
Offer Eunuch is a friendly character interaction in Crusader Kings III. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include The other character is a Beardless Eunuch (+25). Patch 1.20.1.2, from game/common/character_interactions/06_ep3_interactions.txt.
Quick answers (1)
- How do I get the AI to accept Offer Eunuch?
- Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: … Opinion of …, … Opinion of …, The other character's age, The other character's skills and The other character is a Beardless Eunuch +25.
Will they accept?
Accepted automatically when:
Otherwise
- Never
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 | -50 |
| … Opinion of … | varies |
| … Opinion of … | varies |
| The other character's age | varies |
| The other character's skills | varies |
The other character is a Beardless Eunuchwhen
| +25 |
Acceptance (ai_accept) (37 lines of game script)
base = -50
opinion_modifier = {
who = scope:recipient
opinion_target = scope:actor
multiplier = 0.5
desc = AI_OPINION_REASON
}
opinion_modifier = {
who = scope:recipient
opinion_target = scope:secondary_recipient
multiplier = 0.5
desc = AI_OPINION_REASON
}
modifier = {
add = {
value = 50
subtract = scope:secondary_recipient.age
}
desc = AI_REASON_EUNUCH_AGE
}
modifier = {
add = {
add = scope:secondary_recipient.diplomacy
add = scope:secondary_recipient.intrigue
add = scope:secondary_recipient.stewardship
add = scope:secondary_recipient.martial
add = scope:secondary_recipient.learning
}
desc = AI_REASON_EUNUCH_SKILLS
}
modifier = {
scope:secondary_recipient = {
has_trait = beardless_eunuch
}
add = 25
desc = AI_REASON_BEARDLESS_EUNUCH
}As written in game/common/character_interactions/06_ep3_interactions.txt.
What happens
When you send it
- The other character:
- 1 of 48 things will happen:
- 2%:
court_position_generator_shared_modifier = { POS = royal_architect EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = seneschal EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = court_tutor EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = high_almoner EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = court_physician EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = antiquarian EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = master_of_horse EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = bodyguard EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = master_of_hunt EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = champion EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = court_poet EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = court_musician EMPLOYER = scope:recipient }
- 1%:
court_position_generator_shared_modifier = { POS = court_jester EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = executioner EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = food_taster EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = cupbearer EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = lady_in_waiting EMPLOYER = scope:recipient }
- 4%:
court_position_generator_shared_modifier = { POS = chief_eunuch EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = court_gardener EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = court_artificer EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = cultural_emissary EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = chief_qadi EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = garuda EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = keeper_of_swans EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = travel_leader EMPLOYER = scope:recipient }
- 2% (base chance; changed in play):
court_position_generator_shared_modifier = { POS = wet_nurse EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = cave_hermit EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = master_assassin EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = court_scholar EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = chronicler EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = akolouthos EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = court_astrologer EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = grand_preceptor EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = grand_guardian EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = grand_mentor EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = fire_dragon_engineer EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = keeper_of_the_harem EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = boyan EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = siege_engineer EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = yurtchi EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = cherbi EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = yeke_jarquchi EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = foreign_emissary EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = keeper_of_the_horses EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = court_guru EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = court_brahmin EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = khlon_glan EMPLOYER = scope:recipient }
- 2%:
court_position_generator_shared_modifier = { POS = court_brewmaster EMPLOYER = scope:recipient }
- 2%:
clear_saved_scope = only_empty
- 1 of 48 things will happen:
If they accept
- Event char_interaction.0350
- The character you target:
add_courtier = scope:secondary_recipient
- You:
change_influence = { … }
- … will be given a Court Position if able
If they refuse
- Event char_interaction.0351
Options when sending
- Use a Hook
Events it fires: char_interaction.0350, char_interaction.0351
• 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) (20 lines of game script)
is_available = trigger_if = {
limit = {
is_ai = yes
}
government_has_mechanic = administrative
}
any_courtier = {
is_eunuch_trigger = yes
}
is_shown = scope:recipient = {
government_has_mechanic = administrative
}
scope:recipient != scope:actor
scope:recipient = {
is_ruler = yes
}
scope:recipient.top_liege ?= scope:recipient.liege
scope:actor = {
government_has_mechanic = administrative
}As written in game/common/character_interactions/06_ep3_interactions.txt.
Can be sent when (is_valid…) (30 lines of game script)
NOT = {
scope:recipient = {
is_at_war_with = scope:actor
}
}
trigger_if = {
limit = {
scope:actor = {
is_ai = yes
}
exists = scope:secondary_recipient
}
NOT = {
scope:secondary_recipient = {
has_character_flag = ai_should_not_offer_eunuch
}
}
}
scope:recipient = {
trigger_if = {
limit = {
is_ai = no
}
NOT = {
scope:secondary_recipient = {
has_character_flag = ai_should_not_offer_eunuch
}
}
}
}As written in game/common/character_interactions/06_ep3_interactions.txt.
Effects (on_send, on_accept, on_decline) (52 lines of game script)
on_send = scope:secondary_recipient = {
add_character_flag = {
flag = under_offer_as_eunuch_flag
months = 1
}
court_position_generator_effect = {
VAR = target
EMPLOYER = scope:recipient
ONLY_EMPTY = no
}
}
if = {
limit = {
scope:recipient = {
is_ai = no
}
}
hidden_effect = {
scope:secondary_recipient = {
add_character_flag = {
flag = ai_should_not_offer_eunuch
years = 3
}
}
}
}
on_accept = scope:actor = {
save_scope_as = eunuch_sender
}
scope:secondary_recipient = {
save_scope_as = eunuch
}
scope:recipient = {
save_scope_as = eunuch_taker
}
scope:actor = {
trigger_event = char_interaction.0350
}
show_as_tooltip = {
ep3_give_eunuch_effect = {
EUNUCH = scope:secondary_recipient
TAKER = scope:recipient
GIVER = scope:actor
}
custom_tooltip = eunuch_will_be_given_a_position_tt
}
on_decline = scope:actor = {
trigger_event = char_interaction.0351
}
scope:secondary_recipient = {
remove_character_flag = under_offer_as_eunuch_flag
}As written in game/common/character_interactions/06_ep3_interactions.txt.
- Category
- Friendly actions
- Again on the same character
- after 1 year
- In the menu
- under More…
- ID
offer_eunuch_interaction
Source: game/common/character_interactions/06_ep3_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.