Interaction · Friendly actions
Educate Child
Appoint a Ward and a Guardian in your Court
What you need
You
To send it
If
a check the game hides
Then
- The character you send:
- Is not imprisoned
- Is not incapable
- Is at home
- Num of relation ward less than 2
- The character you send:
If
a check the game hides
Then
- The other character:
- Is not imprisoned
- Is not incapable
- Is at home
If
is_hostage = yes
Then
- Is a courtier of you
- The other character:
To see it in the menu
- If played by the AI:
One of these
All of these
- Is a child
- Is available (not imprisoned, not incapable)
num_of_relation_guardian = 0
or
Any courtier:- Is a child
- Is close family of you
num_of_relation_guardian = 0- Is available (not imprisoned, not incapable)
If a check the game hides passes: the same again (2 lines)
- The other character:
- Is a child
num_of_relation_guardian = 0
- The other character:
The character you target
To send it
- Is not incapable
If
a check the game hides
Then
- Is a courtier of you
Also needed: not imprisoned
To see it in the menu
is_in_the_same_court_as = scope:puppet_or_actor
Which character you can pick
If
One of these
All of these
- Is not a ruler
- Your liege: Their government is not Adventurer
or
All of these
- Is a ruler
- Your government is not Adventurer
Then
- Already under negotiation to become someone's Ward
- Already under negotiation to become someone's Guardian
- … is traveling to become a Hostage
Educate Child is a friendly character interaction in Crusader Kings III. The character you target needs: Is not imprisoned and Is not incapable. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/00_education_interactions.txt.
Quick answers (2)
- What are the requirements for Educate Child in CK3?
- The character you target: Is not imprisoned and Is not incapable. (patch 1.20.1.2)
- Will the AI accept Educate Child?
- 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/00_education_interactions.txt.
What happens
Effects
If
scope:ward.age >= 15
Then
- … will soon be an adult
- The guardian liege:
- The ward:
If
- Never
One of these
- The character you target:
One of these
- Any realm province:
is_higher_studies_location = { }
or
Any realm county: The county has the modifier “Pandidakterion”
- Any realm province:
or
You:- Is the character you send
- Any realm province:
is_higher_studies_location = { }
- The character you target:
Then
- You:
remove_short_term_gold = { … }
If
- The university:
is_province_valid_confucian_education_trigger = { }
None of these
- The guardian: Has the Trait: Confucian Education
Then
- Gains the modifier “Studying Confucian Works”
- Confucian Education Trait Experience Gain +10%
- Confucian Opinion +5
- The university:
- Gains the modifier “Studying At University”
- General Opinion +5
- Learning +1
If
- The guardian: Has the Trait: Confucian Education
- The option “send to university” is not chosen
Then
- Gains the modifier “Studying Confucian Works”
- Confucian Education Trait Experience Gain +10%
- Confucian Opinion +5
- Has a chance to become a Disciple of …
- The ward › If any relation:
- The guardian to remove:
remove_relation_ward = scope:wardreturn_guardian_travel_effect = { GUARDIAN = scope:guardian_to_remove WARD = scope:ward }
- If never › The ward:
return_ward_travel_effect = { }
- Otherwise:
guardian_remove_opinion_effect = { GUARDIAN = scope:guardian_to_remove WARD = scope:ward WARD_LIEGE = scope:ward.liege }
- The guardian to remove:
If
One of these
scope:ward = scope:guardian.hostor
scope:guardian = scope:ward.hostor
The ward’s host is the guardian’sor
All of these
- The ward:
is_landed_or_landless_administrative_or_theocratic = { }
- The guardian:
is_landed_or_landless_administrative_or_theocratic = { }
- The ward:
Then
- The guardian › If played by the AI:
If
- The ward liege:
player_heir = scope:ward
- Is a direct vassal of the ward liege
- Is a ruler
has_vassal_stance = parochial
Then
Else if
- The ward liege: Is close family of the ward
- Is a direct vassal of the ward liege
- Is a ruler
has_vassal_stance = parochial
Then
- Opinion: Parochial Guardian of Your Relative
Else if
- The ward liege: Is close family of the ward
Then
- Opinion: Guardian of Your Relative
- The ward liege:
If
- Their liege: Is played by the AI
- Is not a ruler
- Is not a direct vassal of the ward liege
Then
- Their liege:
If
- The ward liege:
player_heir = scope:ward
- Is a direct vassal of the ward liege
- Is a ruler
has_vassal_stance = parochial
Then
Else if
- The ward liege: Is close family of the ward
- Is a direct vassal of the ward liege
- Is a ruler
has_vassal_stance = parochial
Then
- Opinion: Parochial Guardian of Your Relative
Else if
- … (more in the script below)
- The ward liege:
- … (more in the script below)
- … (more in the script below)
- The ward:
- … (more in the script below)
Options when sending
- Convert CultureAttempt to convert the character you send to the other character's Culture (…).
- Convert RiteAttempt to convert the character you send to the other character's Rite (…).
- Send to UniversityAccess to University at the recipient's Court allows a Ward to get a better Education Trait
- 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) (39 lines of game script)
is_available = trigger_if = {
limit = {
is_ai = yes
}
OR = {
AND = {
is_adult = no
is_physically_able = yes
num_of_relation_guardian = 0
}
any_courtier = {
is_adult = no
is_close_family_of = root
num_of_relation_guardian = 0
is_physically_able = yes
}
}
}
is_shown = scope:recipient = {
is_in_the_same_court_as = scope:puppet_or_actor
}
trigger_if = {
limit = {
exists = scope:secondary_actor
}
scope:secondary_actor = {
is_adult = yes
num_of_relation_ward < 2
}
}
trigger_if = {
limit = {
exists = scope:secondary_recipient
}
scope:secondary_recipient = {
is_adult = no
num_of_relation_guardian = 0
}
}As written in game/common/character_interactions/00_education_interactions.txt.
Can be sent when (is_valid…) (163 lines of game script)
scope:recipient = {
is_imprisoned = no
is_incapable = no
trigger_if = {
limit = {
this != scope:puppet_or_actor
}
is_courtier_of = scope:puppet_or_actor
}
}
trigger_if = {
limit = {
exists = scope:secondary_actor
}
scope:secondary_actor = {
is_imprisoned = no
is_incapable = no
is_at_home = yes
num_of_relation_ward < 2
}
}
trigger_if = {
limit = {
exists = scope:secondary_recipient
}
scope:secondary_recipient = {
is_imprisoned = no
trigger_if = {
limit = {
scope:puppet_or_actor = {
is_landless_adventurer = no
}
}
is_travelling = no
}
is_incapable = no
is_at_home = yes
NOT = {
exists = var:hostage_travelling_to_warden
}
trigger_if = {
limit = {
is_hostage = yes
}
is_courtier_of = scope:puppet_or_actor
}
}
}
custom_description = {
text = character_to_guard_exists
subject = scope:puppet_or_actor
scope:puppet_or_actor = {
OR = {
any_courtier = {
is_adult = yes
num_of_relation_ward < 2
is_imprisoned = no
is_incapable = no
}
AND = {
is_adult = yes
num_of_relation_ward < 2
is_imprisoned = no
is_incapable = no
}
}
}
}
custom_description = {
text = character_to_educate_exists
object = scope:puppet_or_actor
scope:puppet_or_actor = {
OR = {
any_courtier = {
is_adult = no
num_of_relation_guardian = 0
is_imprisoned = no
is_incapable = no
}
AND = {
is_adult = no
num_of_relation_guardian = 0
is_imprisoned = no
is_incapable = no
}
}
}
}
trigger_if = {
limit = {
exists = scope:secondary_recipient
}
scope:secondary_recipient = {
custom_tooltip = {
text = ward_travelling_tt
NOT = {
exists = var:ward_travelling_to_guardian
}
}
custom_tooltip = {
text = hostage_travelling_tt
NOT = {
exists = var:hostage_travelling_to_warden
}
}
trigger_if = {
limit = {
exists = var:ward_waiting_for_guardian
}
var:ward_waiting_for_guardian = {
custom_tooltip = {
text = guardian_travelling_tt
NOT = {
exists = scope:secondary_recipient.var:ward_waiting_for_guardian
}
}
}
}
}
}
trigger_if = {
limit = {
exists = scope:secondary_actor
}
scope:secondary_actor = {
custom_tooltip = {
text = guardian_travelling_tt
NOT = {
exists = var:guardian_travelling_to_ward
}
}
custom_tooltip = {
text = hostage_travelling_tt
NOT = {
exists = var:hostage_travelling_to_warden
}
}
trigger_if = {
limit = {
exists = var:guardian_waiting_for_ward
}
var:guardian_waiting_for_ward = {
custom_tooltip = {
text = ward_travelling_tt
NOT = {
scope:secondary_actor.num_of_relation_ward >= 1
}
}
}
}
}
}
trigger_if = {
limit = {
scope:puppet_or_actor = {
has_government = landless_adventurer_government
}
}
ep3_laamp_diplo_range_trigger = {
TARGET = scope:recipient
LAAMP = scope:puppet_or_actor
}
}As written in game/common/character_interactions/00_education_interactions.txt.
Effects (on_send, on_accept, on_decline) (67 lines of game script)
on_accept = scope:secondary_recipient = {
save_scope_as = ward
scope:secondary_actor = {
save_scope_as = guardian
}
scope:recipient = {
save_scope_as = ward_liege
}
scope:puppet_or_actor = {
save_scope_as = guardian_liege
}
}
scope:puppet_or_actor = {
if = {
limit = {
is_ai = no
}
scope:ward = {
add_character_flag = player_educated
}
}
}
if = {
limit = {
scope:ward.age >= 15
}
custom_description_no_bullet = {
text = ward_nearing_adulthood_tt
object = scope:ward
}
}
scope:guardian_liege = {
send_interface_message = {
type = event_childhood_neutral
title = educate_child_interaction_notification
left_icon = scope:guardian
right_icon = scope:ward
educate_child_interaction_effect = yes
show_as_tooltip = {
scope:ward = {
if = {
limit = {
exists = var:ward_travelling_to_guardian
}
custom_tooltip = ward_departs_tt
}
else_if = {
limit = {
exists = scope:guardian.var:guardian_travelling_to_ward
}
scope:guardian = {
custom_tooltip = guardian_departs_tt
}
}
else = {
set_relation_guardian = scope:guardian
}
}
}
}
}
show_as_tooltip = {
scope:guardian = {
set_relation_ward = scope:ward
}
}
accolade_ward_education_notification_effect = yesAs written in game/common/character_interactions/00_education_interactions.txt.
- Category
- Friendly actions
- In the menu
- main list
- ID
educate_child_interaction
Source: game/common/character_interactions/00_education_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.