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

Interaction · Diplomatic actions

Offer Courtier

No costAccepted automatically in some cases; otherwise the AI weighs it

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 0
      • or

        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

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.

for a guide, post or blog
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.

ReasonAmount
Base-10
The character you send has Skills I could use+100
The character you send would make a good Knight
when
  • scope:secondary_actor.prowess >= decent_skill_rating
  • scope:recipient.number_of_knights < scope:recipient.max_number_of_knights
+100
The character you send has an Inspiration+100
The character you send is my Family Member
when
  • The character you send: Is family of the target
+100
The character you send is my Spouse
when
  • The character you send: Is the target’s consort
+100
The character you send is my Friend
when
  • The character you send: Has the target as friend
+100
The character you send is my Rival
when
  • The character you send: Has the target as rival
-200
The character you send is the Spouse of one of my Courtiers
when
  • The character you target › Any courtier: Is the character you send’s consort
+100
I could use more Courtiers
when
  • The character you target: Courtier (less than 5):
+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

    • The character you target: Has the opinion “Received Courtier” of you
    • You: Is played by a person

    Then

    • You have already offered a Courtier to …, sending another one will override the existing Opinion modifier!
  • 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
    • 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
      • 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.

Spotted a mistake on this page?