CK3 DatabaseCrusader Kings III · 1.20.1.2 “Crozier” · unofficial
Silk & Silverout Tue, Nov 17What's free, what needs the DLC, price →

Interaction · Friendly actions

Have Child Study Language

No costAccepted automatically

Have your Child start a Learn Language Scheme against one of your Courtiers or Vassals, with assistance from your Tutor

What you need

You

To send it

  • If

    a check the game hides

    Then

    • The character you send:
      • Is not imprisoned
      • Is not incapable
  • If

    a check the game hides

    Then

    • The other character:
      • Is a child
      • Is available (not imprisoned, not incapable)
      • Is at least 6 years old
      • Is family of you
  • If

    a check the game hides

    Then

    • The character you send › The other character:
      • can_start_scheme = { type = learn_language target_character = prev }
  • One of these

To see it in the menu

  • If played by the AI:
    • One of these

    • primary_title.tier >= tier_county
  • If

    a check the game hides

    Then

    • The other character:
      • Is a child
      • Is played by the AI

The character you target

To send it

  • Is not incapable
  • 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

  • Is at home

Have Child Study Language is a friendly character interaction in Crusader Kings III. You need: one of: Employs a Tutor / Employs a Guru. 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.

for a guide, post or blog
Quick answers (2)
What are the requirements for Have Child Study Language in CK3?
You: one of: Employs a Tutor / Employs a Guru. The character you target: Is not imprisoned and Is not incapable. (patch 1.20.1.2)
Will the AI accept Have Child Study Language?
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

  • The other character:
    • Starts studying the … Language
    • Start the Learn Language scheme against the character you send
    • If

      • You:
        • One of these

          • All of these

            • exists = court_position:court_tutor_court_position
            • court_position:court_tutor_court_position = { aptitude:court_tutor_court_position = 0 }
          • or

            All of these

            • exists = court_position:court_guru_court_position
            • court_position:court_guru_court_position = { aptitude:court_guru_court_position = 0 }

      Then

      Else if

      • You:
        • One of these

          • All of these

            • exists = court_position:court_tutor_court_position
            • court_position:court_tutor_court_position = { aptitude:court_tutor_court_position = 1 }
          • or

            All of these

            • exists = court_position:court_guru_court_position
            • court_position:court_guru_court_position = { aptitude:court_guru_court_position = 1 }

      Then

      Else if

      • You:
        • One of these

          • All of these

            • exists = court_position:court_tutor_court_position
            • court_position:court_tutor_court_position = { aptitude:court_tutor_court_position = 2 }
          • or

            All of these

            • exists = court_position:court_guru_court_position
            • court_position:court_guru_court_position = { aptitude:court_guru_court_position = 2 }

      Then

      Else if

      • You:
        • One of these

          • All of these

            • exists = court_position:court_tutor_court_position
            • court_position:court_tutor_court_position = { aptitude:court_tutor_court_position = 3 }
          • or

            All of these

            • exists = court_position:court_guru_court_position
            • court_position:court_guru_court_position = { aptitude:court_guru_court_position = 3 }

      Then

      Else if

      • You:
        • One of these

          • All of these

            • exists = court_position:court_tutor_court_position
            • court_position:court_tutor_court_position = { aptitude:court_tutor_court_position = 4 }
          • or

            All of these

            • exists = court_position:court_guru_court_position
            • court_position:court_guru_court_position = { aptitude:court_guru_court_position = 4 }

      Then

• 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) (24 lines of game script)
is_available = trigger_if = {
	limit = {
		is_ai = yes
	}
	OR = {
		employs_court_position = court_tutor_court_position
		employs_court_position = court_guru_court_position
	}
	primary_title.tier >= tier_county
	has_ep1_court_positions_dlc_trigger = yes
}
is_shown = has_ep1_court_positions_dlc_trigger = yes
scope:recipient = {
	is_in_the_same_court_as = scope:puppet_or_actor
}
trigger_if = {
	limit = {
		exists = scope:secondary_recipient
	}
	scope:secondary_recipient = {
		is_adult = no
		is_ai = yes
	}
}

As written in game/common/character_interactions/00_education_interactions.txt.

Can be sent when (is_valid…) (81 lines of game script)
scope:recipient = {
	is_imprisoned = no
	is_incapable = no
}
trigger_if = {
	limit = {
		exists = scope:secondary_actor
	}
	scope:secondary_actor = {
		is_imprisoned = no
		is_incapable = no
	}
}
trigger_if = {
	limit = {
		exists = scope:secondary_recipient
	}
	scope:secondary_recipient = {
		is_adult = no
		is_physically_able = yes
		age >= 6
		is_close_or_extended_family_of = scope:puppet_or_actor
		custom_description = {
			text = already_scheming_language
			NOT = {
				any_scheme = {
					type = learn_language
				}
			}
		}
	}
	custom_description = {
		text = no_target_language
		scope:puppet_or_actor = {
			OR = {
				scope:secondary_recipient = {
					can_start_scheme = {
						type = learn_language
						target_character = prev
					}
				}
				any_courtier = {
					scope:secondary_recipient = {
						can_start_scheme = {
							type = learn_language
							target_character = prev
						}
					}
				}
				any_vassal = {
					scope:secondary_recipient = {
						can_start_scheme = {
							type = learn_language
							target_character = prev
						}
					}
				}
			}
		}
	}
}
trigger_if = {
	limit = {
		exists = scope:secondary_actor
		exists = scope:secondary_recipient
	}
	scope:secondary_actor = {
		scope:secondary_recipient = {
			can_start_scheme = {
				type = learn_language
				target_character = prev
			}
		}
	}
}
scope:puppet_or_actor = {
	OR = {
		employs_court_position = court_tutor_court_position
		employs_court_position = court_guru_court_position
	}
}

As written in game/common/character_interactions/00_education_interactions.txt.

Effects (on_send, on_accept, on_decline) (161 lines of game script)
on_accept = scope:puppet_or_actor = {
	send_interface_message = {
		type = event_childhood_neutral
		title = make_child_learn_language_interaction_notification
		left_icon = scope:secondary_recipient
		right_icon = scope:secondary_actor
		scope:secondary_recipient = {
			custom_tooltip = secondary_actors_language
			begin_scheme_basic_effect = {
				SCHEME_TYPE = learn_language
				TARGET_TYPE = target_character
				TARGET_SCOPE = scope:secondary_actor
			}
			if = {
				limit = {
					scope:puppet_or_actor = {
						OR = {
							AND = {
								exists = court_position:court_tutor_court_position
								court_position:court_tutor_court_position = {
									aptitude:court_tutor_court_position = 0
								}
							}
							AND = {
								exists = court_position:court_guru_court_position
								court_position:court_guru_court_position = {
									aptitude:court_guru_court_position = 0
								}
							}
						}
					}
				}
				custom_tooltip = court_tutor_child_language_rank_1
				hidden_effect = {
					random_scheme = {
						type = learn_language
						add_scheme_modifier = {
							type = court_tutor_child_language_rank_1_modifier
						}
					}
				}
			}
			else_if = {
				limit = {
					scope:puppet_or_actor = {
						OR = {
							AND = {
								exists = court_position:court_tutor_court_position
								court_position:court_tutor_court_position = {
									aptitude:court_tutor_court_position = 1
								}
							}
							AND = {
								exists = court_position:court_guru_court_position
								court_position:court_guru_court_position = {
									aptitude:court_guru_court_position = 1
								}
							}
						}
					}
				}
				custom_tooltip = court_tutor_child_language_rank_2
				hidden_effect = {
					random_scheme = {
						type = learn_language
						add_scheme_modifier = {
							type = court_tutor_child_language_rank_2_modifier
						}
					}
				}
			}
			else_if = {
				limit = {
					scope:puppet_or_actor = {
						OR = {
							AND = {
								exists = court_position:court_tutor_court_position
								court_position:court_tutor_court_position = {
									aptitude:court_tutor_court_position = 2
								}
							}
							AND = {
								exists = court_position:court_guru_court_position
								court_position:court_guru_court_position = {
									aptitude:court_guru_court_position = 2
								}
							}
						}
					}
				}
				custom_tooltip = court_tutor_child_language_rank_3
				hidden_effect = {
					random_scheme = {
						type = learn_language
						add_scheme_modifier = {
							type = court_tutor_child_language_rank_3_modifier
						}
					}
				}
			}
			else_if = {
				limit = {
					scope:puppet_or_actor = {
						OR = {
							AND = {
								exists = court_position:court_tutor_court_position
								court_position:court_tutor_court_position = {
									aptitude:court_tutor_court_position = 3
								}
							}
							AND = {
								exists = court_position:court_guru_court_position
								court_position:court_guru_court_position = {
									aptitude:court_guru_court_position = 3
								}
							}
						}
					}
				}
				custom_tooltip = court_tutor_child_language_rank_4
				hidden_effect = {
					random_scheme = {
						type = learn_language
						add_scheme_modifier = {
							type = court_tutor_child_language_rank_4_modifier
						}
					}
				}
			}
			else_if = {
				limit = {
					scope:puppet_or_actor = {
						OR = {
							AND = {
								exists = court_position:court_tutor_court_position
								court_position:court_tutor_court_position = {
									aptitude:court_tutor_court_position = 4
								}
							}
							AND = {
								exists = court_position:court_guru_court_position
								court_position:court_guru_court_position = {
									aptitude:court_guru_court_position = 4
								}
							}
						}
					}
				}
				custom_tooltip = court_tutor_child_language_rank_5
				hidden_effect = {
					random_scheme = {
						type = learn_language
						add_scheme_modifier = {
							type = court_tutor_child_language_rank_5_modifier
						}
					}
				}
			}
		}
	}
}

As written in game/common/character_interactions/00_education_interactions.txt.

Category
Friendly actions
In the menu
main list
ID
make_child_learn_language_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.

Spotted a mistake on this page?