Interaction · Diplomatic actions
Offer Courtier
Offer one of your Courtiers to the recipient The offered Courtier cannot be: • Your Heir • A Child • Your Spouse or Concubine • In a non-dominant Marriage • Your Regent
What you need
You
To send it
To see it in the menu
- If played by the AI:
One of these
- You are a Tributary
or
Num of relation friend more than 0or
Num of relation lover more than 0
One of these
- Ai greed at most 25
or
is_obedient = yes
The character you target
- Is a ruler
- Their government is not unplayable
Which character you can pick
- Is an Adult
Offer Courtier is a diplomatic character interaction in Crusader Kings III. You need: You have no available, healthy, adult Courtiers. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include The character you send has Skills I could use (+100), The character you send would make a good Knight (+100), The character you send has an Inspiration (+100) and 6 more. Patch 1.20.1.2, from game/common/character_interactions/00_tributary_interactions.txt.
Quick answers (2)
- What are the requirements for Offer Courtier in CK3?
- You: You have no available, healthy, adult Courtiers. (patch 1.20.1.2)
- How do I get the AI to accept Offer Courtier?
- Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: The character you send has Skills I could use +100, The character you send would make a good Knight +100, The character you send has an Inspiration +100, The character you send is my Family Member +100, The character you send is my Spouse +100, The character you send is my Friend +100, The character you send is my Rival -200, The character you send is the Spouse of one of my Courtiers +100 and I could use more Courtiers +100.
Will they accept?
Accepted automatically when:
- Holds Ministry of Personnel
- … and … are in the same realm
- The character you target: Is played by the AI
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 | -10 |
| The character you send has Skills I could use | +100 |
The character you send would make a good Knightwhen
| +100 |
| The character you send has an Inspiration | +100 |
The character you send is my Family Memberwhen
| +100 |
The character you send is my Spousewhen
| +100 |
The character you send is my Friendwhen
| +100 |
The character you send is my Rivalwhen
| -200 |
The character you send is the Spouse of one of my Courtierswhen
| +100 |
I could use more Courtierswhen
| +100 |
Acceptance (ai_accept) (113 lines of game script)
base = -10
modifier = {
add = 100
scope:secondary_actor = {
OR = {
sum_of_all_skills_value >= sum_of_all_skills_threshold_good
martial >= monumentally_high_skill_rating
prowess >= extremely_high_skill_rating
AND = {
diplomacy >= monumentally_high_skill_rating
scope:actor.cp:councillor_chancellor ?= {
diplomacy < monumentally_high_skill_rating
}
}
AND = {
diplomacy >= monumentally_high_skill_rating
scope:actor.cp:councillor_steward ?= {
stewardship < monumentally_high_skill_rating
}
}
AND = {
diplomacy >= monumentally_high_skill_rating
scope:actor.cp:councillor_spymaster ?= {
intrigue < monumentally_high_skill_rating
}
}
has_relation_lover = scope:recipient
trigger_if = {
limit = {
scope:recipient = {
government_has_flag = government_is_nomadic
}
}
OR = {
AND = {
sum_of_all_skills_value >= sum_of_all_skills_threshold_average
scope:recipient = {
any_courtier = {
count < 10
}
}
}
aptitude:master_of_hunt_court_position >= 4
aptitude:keeper_of_the_horses_court_position >= 4
aptitude:boyan_court_position >= 4
aptitude:siege_engineer_court_position >= 4
aptitude:yurtchi_court_position >= 4
aptitude:cherbi_court_position >= 4
aptitude:yeke_jarquchi_court_position >= 4
aptitude:foreign_emissary_court_position >= 4
}
}
}
}
desc = AI_INTERESTING_COURTIER_REASON
}
modifier = {
add = 100
scope:secondary_actor.prowess >= decent_skill_rating
scope:recipient.number_of_knights < scope:recipient.max_number_of_knights
desc = AI_KNIGHT_REASON
}
modifier = {
add = 100
exists = scope:secondary_actor.inspiration
desc = AI_INSPIRED_REASON
}
modifier = {
add = 100
scope:secondary_actor = {
is_close_or_extended_family_of = scope:recipient
}
desc = AI_FAMILY_REASON
}
modifier = {
add = 100
scope:secondary_actor = {
is_consort_of = scope:recipient
}
desc = AI_SPOUSE_REASON
}
modifier = {
add = 100
scope:secondary_actor = {
has_relation_friend = scope:recipient
}
desc = AI_FRIEND_REASON
}
modifier = {
add = -200
scope:secondary_actor = {
has_relation_rival = scope:recipient
}
desc = AI_RIVAL_REASON
}
modifier = {
add = 100
scope:recipient = {
any_courtier = {
is_consort_of = scope:secondary_actor
}
}
desc = AI_SPOUSE_OF_COURTIER_REASON
}
modifier = {
add = 100
scope:recipient = {
any_courtier = {
count < 5
}
}
desc = AI_LACK_COURTIERS_REASON
}As written in game/common/character_interactions/00_tributary_interactions.txt.
What happens
If they accept
If
- You: Holds Ministry of Personnel
- The character you target:
top_liege = scope:actor.top_liege
Then
- The character you target:
add_courtier = scope:secondary_actor- The character you send:
- Every consort:
- Where: Is a courtier of you
- The character you target:
add_courtier = prev
- Every child:
- Where: Is a child · Is a courtier of the target
- You:
add_courtier = prev
- Every consort:
- You › If your Government uses Influence:
change_influence = { … }
Otherwise
- The character you target:
add_courtier = scope:secondary_actor- The character you send:
- Every consort:
- Where: Is a courtier of you
- The character you target:
add_courtier = prev
- Every child:
- Where: Is a child · Is a courtier of the target
- You:
add_courtier = prev
- Every consort:
- Opinion: Received Courtier (+10)
If they refuse
- … refused to accept … as … Courtier
• 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) (21 lines of game script)
is_available = trigger_if = {
limit = {
is_ai = yes
}
OR = {
is_tributary = yes
num_of_relation_friend > 0
num_of_relation_lover > 0
}
OR = {
ai_greed <= 25
is_obedient = yes
}
}
is_shown = scope:actor != scope:recipient
scope:recipient = {
is_ruler = yes
NOT = {
government_has_flag = government_is_herder
}
}As written in game/common/character_interactions/00_tributary_interactions.txt.
Can be sent when (is_valid…) (50 lines of game script)
custom_tooltip = {
text = offer_courtier_valid_courtier_tt
scope:actor = {
any_courtier = {
is_available_healthy_ai_adult = yes
NOR = {
is_consort_of = scope:actor
is_heir_of = scope:actor
AND = {
is_female = yes
patrilinear_marriage = yes
}
AND = {
is_male = yes
matrilinear_marriage = yes
}
is_diarch = yes
is_designated_diarch = yes
has_character_flag = has_been_offered_as_concubine
}
}
}
}
trigger_if = {
limit = {
scope:actor = {
is_landless_adventurer = yes
}
}
ep3_laamp_diplo_range_trigger = {
TARGET = scope:recipient
LAAMP = scope:actor
}
}
custom_tooltip = {
text = no_heirs_can_be_sent_tt
scope:secondary_actor = {
NOT = {
is_heir_of = scope:actor
}
}
}
custom_tooltip = {
text = no_spouses_can_be_sent_tt
scope:secondary_actor = {
NOT = {
is_consort_of = scope:actor
}
}
}As written in game/common/character_interactions/00_tributary_interactions.txt.
Effects (on_send, on_accept, on_decline) (117 lines of game script)
on_send = scope:secondary_actor = {
add_character_flag = {
flag = has_been_offered_as_concubine
days = 5
}
}
on_accept = if = {
limit = {
scope:recipient = {
has_opinion_modifier = {
target = scope:actor
modifier = offer_courtier_opinion
}
}
scope:actor = {
is_ai = no
}
}
custom_tooltip = ALREADY_OFFERED_COURTIER_WARNING
}
scope:actor = {
send_interface_toast = {
type = event_toast_effect_good
title = msg_courtier_offer_accepted_title
right_icon = scope:recipient
left_icon = scope:secondary_actor
if = {
limit = {
scope:actor = {
has_title = title:e_minister_of_personnel
}
scope:recipient = {
top_liege = scope:actor.top_liege
}
}
scope:recipient = {
add_courtier = scope:secondary_actor
scope:secondary_actor = {
every_consort = {
limit = {
is_courtier_of = scope:actor
}
scope:recipient = {
add_courtier = prev
}
}
every_child = {
limit = {
is_adult = no
is_courtier_of = scope:recipient
}
scope:actor = {
add_courtier = prev
}
}
}
}
scope:actor = {
if = {
limit = {
government_has_flag = government_has_influence
}
change_influence = {
value = scope:secondary_actor.average_of_all_skills_and_prowess
multiply = 5
if = {
limit = {
scope:secondary_actor = {
is_close_or_extended_family_of = scope:actor
}
}
add = 100
}
}
}
}
}
else = {
scope:recipient = {
add_courtier = scope:secondary_actor
scope:secondary_actor = {
every_consort = {
limit = {
is_courtier_of = scope:actor
}
scope:recipient = {
add_courtier = prev
}
}
every_child = {
limit = {
is_adult = no
is_courtier_of = scope:recipient
}
scope:actor = {
add_courtier = prev
}
}
}
add_opinion = {
target = scope:actor
modifier = offer_courtier_opinion
opinion = 10
}
}
}
}
}
on_decline = scope:actor = {
send_interface_toast = {
type = event_toast_effect_bad
title = msg_courtier_offer_rejected_title
right_icon = scope:recipient
left_icon = scope:secondary_actor
custom_tooltip = msg_courtier_offer_rejected
}
}As written in game/common/character_interactions/00_tributary_interactions.txt.
- Category
- Diplomatic actions
- In the menu
- under More…
- ID
offer_courtier_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.