Interaction · Friendly actions
Castrate Kin
Make the recipient a Eunuch or Beardless Eunuch, gaining Influence and increasing his Skills, Aptitude, and Governor Efficiency.
What you need
You
To send it
- Employs a Personal Physician
To see it in the menu
- Your culture: The Culture has the Can use the Castrate Kin Interaction Tradition
- If played by the AI: Is an Adult
Not all of these
- Is played by the AI
- Any close family member: Is played by a person
The character you target
To send it
- … is not your Courtier or Guest
- Is not a ruler
- Is not betrothed
NOT = { is_primary_heir_of = scope:actor }Also needed: available (not in an army, not imprisoned, not incapable) · none of the traits Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux · not busy in an Activity · not planning another Activity · not busy in a Mandala succession
To see it in the menu
- Is played by the AI
is_female = no- Is a child
- Is close family of you
None of these
- Has the Trait: Eunuch
- Has the Trait: Beardless Eunuch
Castrate Kin is a friendly character interaction in Crusader Kings III. You need: Employs a Personal Physician. The character you target needs: Is not a ruler, Is available (not in an army, not imprisoned, not incapable), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux and 4 more. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Weak Hook used (+50), The recipient is 2 or younger (+50), The recipient is 6 or younger (+20) and 6 more. It needs Roads to Power. Patch 1.20.1.2, from game/common/character_interactions/06_ep3_interactions.txt.
Quick answers (2)
- What are the requirements for Castrate Kin in CK3?
- You: Employs a Personal Physician. The character you target: Is not a ruler, Is available (not in an army, not imprisoned, not incapable), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, Busy participating in an Activity, You are already planning another Activity, You are currently busy in a Mandala succession and Is not betrothed. (patch 1.20.1.2)
- How do I get the AI to accept Castrate Kin?
- Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: … Opinion of …, Weak Hook used +50, The recipient is 2 or younger +50, The recipient is 6 or younger +20, The recipient is 10 or older -20, The recipient is 14 or older -40, The recipient is frightened +30, The recipient is terrified +60, You are Emperor-tier +30 and Your high Governor Efficiency dissuades fleeing +20.
Will they accept?
Accepted automatically when:
- They use their Hook on …
Otherwise 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.
| Reason | Amount |
|---|---|
| Base | 0 |
| … Opinion of … | varies |
| Their personality (AI values: rationality 0.25, energy -0.25, boldness -0.25, honor 0.12, sociability 0.12) | varies |
Weak Hook usedwhen
| +50 |
The recipient is 2 or youngerwhen
| +50 |
The recipient is 6 or youngerwhen
| +20 |
The recipient is 10 or olderwhen
| -20 |
The recipient is 14 or olderwhen
| -40 |
The recipient is frightenedwhen
| +30 |
The recipient is terrifiedwhen
| +60 |
| You are Emperor-tier | +30 |
Your high Governor Efficiency dissuades fleeingwhen
| +20 |
Acceptance (ai_accept) (89 lines of game script)
base = 0
opinion_modifier = {
who = scope:recipient
opinion_target = scope:actor
multiplier = 0.5
desc = AI_OPINION_REASON
}
ai_value_modifier = {
ai_rationality = 0.25
ai_energy = -0.25
ai_boldness = -0.25
ai_honor = 0.12
ai_sociability = 0.12
}
modifier = {
trigger = {
always = scope:hook
}
add = 50
desc = SCHEME_WEAK_HOOK_USED
}
modifier = {
scope:recipient = {
age <= 2
}
desc = SCHEME_AGE_2_OR_LESS
add = 50
}
modifier = {
scope:recipient = {
age <= 6
}
desc = SCHEME_AGE_6_OR_LESS
add = 20
}
modifier = {
scope:recipient = {
age >= 10
}
desc = SCHEME_AGE_10_OR_MORE
add = -20
}
modifier = {
scope:recipient = {
age >= 14
}
desc = SCHEME_AGE_14_OR_MORE
add = -40
}
modifier = {
scope:recipient = {
age >= 12
has_dread_level_towards = {
target = scope:actor
level = 1
}
}
desc = SCHEME_TOO_SCARED_TO_RUN
add = 30
}
modifier = {
scope:recipient = {
age >= 12
has_dread_level_towards = {
target = scope:actor
level = 2
}
}
desc = SCHEME_TOO_TERRIFIED_TO_RUN
add = 60
}
modifier = {
scope:actor = {
highest_held_title_tier >= tier_empire
}
desc = SCHEME_EMPIRE_TIER
add = 30
}
modifier = {
scope:recipient = {
age >= 12
}
scope:actor = {
is_governor = yes
governor_efficiency >= 1.25
}
desc = SCHEME_GOVERNOR_EFFICIENCY_DISSUADES_FLEEING
add = 20
}As written in game/common/character_interactions/06_ep3_interactions.txt.
What happens
If they accept
- You: Influence +30
If
- The character you target: Is under 12 years old
Then
- The character you target:
- Gains the Trait Beardless Eunuch
- The character you target:
create_character_memory = { … }- One memory, picked in order:
- Where: Any memory participant:
memory_type = tortured_memory
- You:
create_character_memory = { … }- One memory, picked in order:
- Where: Any memory participant:
memory_type = torturer_memory
- Court Position and Tax Collector Aptitude: +30
- May gain Castration Wound for 5 years, based on Personal Physician Aptitude
- Gains 40 Stress
- Reduced Stress and Opinion maluses because target is under 12 years old
Otherwise
- The character you target:
- Gains the Trait Eunuch
- The character you target:
create_character_memory = { … }- One memory, picked in order:
- Where: Any memory participant:
memory_type = tortured_memory
- You:
create_character_memory = { … }- One memory, picked in order:
- Where: Any memory participant:
memory_type = torturer_memory
- Court Position and Tax Collector Aptitude: +30
- May gain Castration Wound for 5 years, based on Personal Physician Aptitude
- Gains 60 Stress
If
- The character you target: Age more than 6
Then
- Stress and fulfillment impact: by trait: Compassionate +40, Content +20, Generous +40
- Event ep3_interactions_events.0030
If they refuse
If
- The character you target: Is under 12 years old
Then
- You: Influence +30
- The character you target:
- Gains the Trait Beardless Eunuch
- The character you target:
create_character_memory = { … }- One memory, picked in order:
- Where: Any memory participant:
memory_type = tortured_memory
- You:
create_character_memory = { … }- One memory, picked in order:
- Where: Any memory participant:
memory_type = torturer_memory
- Court Position and Tax Collector Aptitude: +30
- May gain Castration Wound for 5 years, based on Personal Physician Aptitude
- Opinion: Castrated Me (-50)
- Gains 60 Stress
- Reduced Stress and Opinion maluses because target is under 12 years old
If
- The character you target: Age more than 6
Then
- Stress and fulfillment impact: by trait: Compassionate +40, Content +20, Generous +40
Otherwise
- You: Event ep3_interactions_events.0031
Options when sending
- Use a Hook
Events it fires: ep3_interactions_events.0030, ep3_interactions_events.0031
• 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) (23 lines of game script)
is_available = culture ?= {
has_cultural_parameter = family_castration
}
trigger_if = {
limit = {
is_ai = yes
}
is_adult = yes
}
NAND = {
is_ai = yes
any_close_family_member = {
is_ai = no
}
}
is_shown = has_ep3_dlc_trigger = yes
scope:recipient = {
is_ai = yes
is_female = no
is_adult = no
is_close_family_of = scope:actor
is_eunuch_trigger = no
}As written in game/common/character_interactions/06_ep3_interactions.txt.
Can be sent when (is_valid…) (19 lines of game script)
scope:actor = {
employs_court_position = court_physician_court_position
}
scope:recipient = {
custom_tooltip = {
text = COURTIER_OR_GUEST
OR = {
is_courtier_of = scope:actor
is_pool_guest_of = scope:actor
is_foreign_court_guest_of = scope:actor
}
}
is_ruler = no
is_available = yes
is_betrothed = no
NOT = {
is_primary_heir_of = scope:actor
}
}As written in game/common/character_interactions/06_ep3_interactions.txt.
Effects (on_send, on_accept, on_decline) (146 lines of game script)
on_accept = scope:recipient = {
if = {
limit = {
age < 12
}
add_character_flag = accepted_castration_child
}
else = {
add_character_flag = accepted_castration_youth
}
}
show_as_tooltip = {
scope:actor = {
change_influence = minor_influence_gain
}
if = {
limit = {
scope:recipient = {
age < 12
}
}
scope:recipient = {
ep3_child_castration_effect = yes
add_stress = medium_stress_gain
custom_tooltip = castration_better_before_maturity
}
}
else = {
scope:recipient = {
ep3_youth_castration_effect = yes
add_stress = major_stress_gain
}
}
}
if = {
limit = {
exists = scope:hook
scope:hook = yes
scope:actor = {
has_usable_hook = scope:recipient
}
}
scope:actor = {
use_hook = scope:recipient
}
}
scope:actor = {
if = {
limit = {
scope:recipient = {
age > 6
}
}
stress_and_fulfillment_impact = {
compassionate = medium_stress_impact_gain
content = minor_stress_impact_gain
generous = medium_stress_impact_gain
}
}
trigger_event = ep3_interactions_events.0030
}
on_decline = show_as_tooltip = {
if = {
limit = {
scope:recipient = {
age < 12
}
}
scope:actor = {
change_influence = minor_influence_gain
}
scope:recipient = {
ep3_child_castration_effect = yes
add_opinion = {
modifier = castration_opinion
target = scope:actor
opinion = -50
}
add_stress = major_stress_gain
custom_tooltip = castration_better_before_maturity
}
}
else = {
scope:actor = {
remove_courtier_or_guest = scope:recipient
if = {
limit = {
has_hook = scope:recipient
}
remove_hook = {
target = scope:recipient
}
}
scope:recipient = {
set_relation_rival = {
target = scope:actor
reason = rival_attempted_castration
}
add_stress = medium_stress_gain
}
}
}
}
if = {
limit = {
scope:hook = yes
scope:actor = {
has_usable_hook = scope:recipient
}
}
scope:actor = {
use_hook = scope:recipient
}
}
scope:actor = {
if = {
limit = {
scope:recipient = {
age > 6
}
}
stress_and_fulfillment_impact = {
compassionate = medium_stress_impact_gain
content = minor_stress_impact_gain
generous = medium_stress_impact_gain
}
}
}
if = {
limit = {
scope:recipient = {
age < 12
}
}
scope:recipient = {
add_character_flag = resents_castration
}
scope:actor = {
trigger_event = ep3_interactions_events.0030
}
}
else = {
scope:actor = {
trigger_event = ep3_interactions_events.0031
}
}As written in game/common/character_interactions/06_ep3_interactions.txt.
- Category
- Friendly actions
- Again on the same character
- after 1 year
- DLC
- Roads to Power
- In the menu
- main list
- ID
castrate_child_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.