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

Interaction · Vassal actions

Invite to Court

variesInfluenceAccepted automatically in some cases; otherwise the AI weighs it

Invite the recipient to move to your Court, where they will be your Courtier

What you need

You

  • They recently accepted an invite to their current court and cannot be invited again for a while
  • The recruitee:
    • is_hostage = no
    • … is traveling to become a Hostage
    • Already under negotiation to become someone's Ward
    • Already under negotiation to become someone's Guardian
    • If a child: Is an unrelated child
    • None of these

      • Is imprisoned
      • Is Leasing holdings from their Liege
      • is_diarch = yes
      • If

        • Their host: Is played by a person
        • Is not the recruiter’s player heir

        Then

        • is_player_heir_of = host
      • If

        • Their host: Is played by the AI
        • Is not the recruiter’s player heir

        Then

        • is_primary_heir_of = host
      • If

        a check the game hides

        Then

        • is_consort_of = host
      • If

        a check the game hides

        Then

        • Their host: They is pressing … Claim
      • If

        a check the game hides

        Then

        • One of these

          • is_councillor_of = scope:recruitee.host
          • or

            is_knight_of = scope:recruitee.host
          • or

            Any relation:
            • One of these

              • this = scope:recruitee.host
              • or

                is_close_family_of = scope:recruitee.host
          • or

            Any relation:
            • One of these

              • this = scope:recruitee.host
              • or

                is_close_family_of = scope:recruitee.host
          • or

            Any relation:
            • One of these

              • this = scope:recruitee.host
              • or

                is_close_family_of = scope:recruitee.host
          • or

            Any relation:
            • One of these

              • this = scope:recruitee.host
              • or

                is_close_family_of = scope:recruitee.host
          • or

            Any court position employer:
            • this = scope:recruitee.host
      • If

        Then

      • They is in a Matrilineal marriage and their partner is employed by their liege
      • They is in a Patrilineal marriage and their partner is employed by their liege
      • You recently tried to Imprison They
      • They is a merchant traveling on a nomad ruler's order
  • You exiled this character within the last 5 years
  • … joined … Order within the last 5 years
  • … is a child promised to … Order

The character you target

  • None of these

    • Is a courtier of you
    • is_foreign_court_guest = yes
    • Is hosted by you
    • Has the Trait: Military Order Member
    • Is a ruler
    • Their location:
      • is_sea_province = yes

Invite to Court is a vassal character interaction in Crusader Kings III. You need: They recently accepted an invite to their current court and cannot be invited again for a while and You exiled this character within the last 5 years. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include You humiliated the recipient as your Stooge (-200), The recipient is their Liege's Knight (-20), The recipient is their Liege's Commander (-30) and 31 more. It costs Influence (varies). Patch 1.20.1.2, from game/common/character_interactions/00_courtier_and_guest_interactions.txt.

for a guide, post or blog
Quick answers (3)
What are the requirements for Invite to Court in CK3?
You: They recently accepted an invite to their current court and cannot be invited again for a while and You exiled this character within the last 5 years. (patch 1.20.1.2)
How do I get the AI to accept Invite to Court?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: You humiliated the recipient as your Stooge -200, The recipient is their Liege's Knight -20, The recipient is their Liege's Commander -30, The recipient is on the Council -40, The recipient is their Liege's Personal Physician -20, They is your Lover +100, They is your Friend +75, They is your Child +160, You are their Dynasty Head +30, You are their House Head +60, You are their Sovereign +60, They is your Relative +30, They is your Relative +75, They is your Spouse +160, The recipient is close to their Liege -100, The recipient is their Liege's Friend -75, The recipient is their Liege's Child -160, The recipient is their Liege's Relative -75, The recipient would be leaving their Spouse -100, The recipient would be leaving their Child -100, The recipient is in a Matrilineal marriage -50, The recipient is in a Patrilineal marriage -50, Inspired -50, Sponsored Inspiration -500, "You can't tell me what to do, …." -500, Eluding attempted castrator -180, The recipient's belongs to a Court -50, Homeless wanderer can be persuaded to stay, Covering travel expenses, Your Lodging Standards, Liege's Lodging Standards, Your House Unity, Spending Influence +25, Estate Buildings +20, Characters are far more likely to accept an invitation to your court +50, They is an imperial eunuch -1,000, Sworn vows to their clerical Liege -100, … Cultural Traditions +15 and You banished them -200.
How much does Invite to Court cost?
Influence (varies) (patch 1.20.1.2).

Will they accept?

Accepted automatically when:

  • They use their Hook on …

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-50
Their opinion of their liege × -0.5
when
  • is_courtier_of = liege
  • step = 5
  • max = 25
varies
Their opinion of you × 0.5
when
  • step = 5
  • max = 25
varies
You humiliated the recipient as your Stooge
when
  • scope:recipient.var:non_recruitable_var = scope:actor
  • The character you target: Has “non recruitable var” (a variable the game's script sets)
-200
The recipient is their Liege's Knight
when
  • is_knight = yes
-20
The recipient is their Liege's Commander
when
  • is_commanding_army = yes
-30
The recipient is on the Council
when
-40
The recipient is their Liege's Personal Physician
when
  • The character you target:
    • has_court_position = court_physician_court_position
-20
They is your Lover
when
  • Has you as lover
+100
They is your Friend
when
  • Has you as friend
+75
They is your Child
when
  • Is a child of you
+160
You are their Dynasty Head
when
  • this.dynasty.dynast = scope:actor
+30
You are their House Head
when
  • this.house.house_head = scope:actor
+60
You are their Sovereign
when
  • this.top_liege = scope:actor
+60
They is your Relative
when
  • Is not a child of you
  • Is not close family of you
  • Is extended family of you
+30
They is your Relative
when
  • Is not a child of you
  • Is close family of you
+75
They is your Spouse
when
  • Is your spouse
+160
The recipient is close to their Liege
when
  • has_relation_lover = liege
-100
The recipient is their Liege's Friend
when
  • has_relation_friend = liege
-75
The recipient is their Liege's Child
when
  • is_child_of = liege
-160
The recipient is their Liege's Relative
when
  • NOT = { is_child_of = liege }
  • is_close_family_of = liege
-75
The recipient would be leaving their Spouse
when
  • Any spouse:
    • location = scope:traveler.location
    • One of these

      • is_in_the_same_court_as = scope:traveler
      • or

        If

        • The traveler:
          • is_pool_guest = yes

        Then

        • is_pool_guest = yes
      • or

        If

        • The traveler:
          • is_pool_character = yes

        Then

        • is_pool_character = yes
    • The traveler: No traveling family member:
-100
The recipient would be leaving their Child
when
  • Any child:
    • Is a child
    • location = scope:traveler.location
    • One of these

      • is_in_the_same_court_as = scope:traveler
      • or

        If

        • The traveler:
          • is_pool_guest = yes

        Then

        • is_pool_guest = yes
      • or

        If

        • The traveler:
          • is_pool_character = yes

        Then

        • is_pool_character = yes
    • The traveler: No traveling family member:
-100
The recipient is in a Matrilineal marriage
when
  • Is married
  • is_male = yes
  • Any spouse:
    • matrilinear_marriage = yes
    • host = scope:recipient.host
-50
The recipient is in a Patrilineal marriage
when
  • Is married
  • is_female = yes
  • Any spouse:
    • patrilinear_marriage = yes
    • host = scope:recipient.host
-50
Inspired
when
  • inspiration ?= { … }
-50
Sponsored Inspiration
when
  • inspiration ?= { exists = inspiration_sponsor }
-500
"You can't tell me what to do, …."
when
-500
Eluding attempted castrator
when
  • Is a child
  • Any memory:
    • memory_type = family_castration_fled_memory
    • memory_participant:castrator ?= { this = scope:actor }
-180
The recipient's belongs to a Court
when
  • Your liege: Is landed
  • Is not landed
-50
Homeless wanderer can be persuaded to stay
when
  • is_pool_guest = no
  • location.province_owner ?= { … }
  • Does not have you as rival
  • Is not a child of you
  • Does not have the Modifier: Lust for Adventure
varies
Covering travel expenses
when
  • The option “cover travel expenses” is chosen
varies
Your Lodging Standards
when
  • Have a Royal Court
  • amenity_level = { target = court_lodging_standards value >= medium_amenity_level }
varies
Liege's Lodging Standards
when
  • is_courtier_of = liege
  • Your liege:
    • Have a Royal Court
    • amenity_level = { target = court_lodging_standards value >= medium_amenity_level }
varies
Your House Unity
when
  • Your Government is Clan
  • Is of the same house as you
  • Your house:
    • One of these

      • House unity is harmonious
      • or

        House unity is friendly
varies
Spending Influence
when
  • The option “influence send option” is chosen
+25
Estate Buildings
when
  • Your domicile:
    • has_domicile_parameter = estate_increase_invite_to_court_acceptance
+20
Characters are far more likely to accept an invitation to your court
when
  • Your Personal Tenets unlock tenet ritual hospitality invite to court acceptance
+50
They is an imperial eunuch
when
-1,000
Sworn vows to their clerical Liege
when
  • The character you target:
    • Has the Trait: Monk
    • Their liege:
      • One of these

        • Government is a Theocratic-type Government
        • or

          Their government has the government is monastic holy order flag
      • Their faith is the same as that of recipient
-100
… Cultural Traditions
when
+15
You banished them
when
  • Has “cid 1010 no invite var” (a variable the game's script sets)
  • Cid 1010 no invite var is scope:actor
-200
Acceptance (ai_accept) (313 lines of game script)
base = -50
opinion_modifier = {
	trigger = {
		exists = liege
		is_courtier_of = liege
	}
	opinion_target = liege
	multiplier = -0.5
	step = 5
	max = 25
}
opinion_modifier = {
	opinion_target = scope:actor
	multiplier = 0.5
	step = 5
	max = 25
}
modifier = {
	scope:recipient = {
		has_variable = non_recruitable_var
	}
	scope:recipient.var:non_recruitable_var = scope:actor
	add = -200
	desc = AI_STOOGE
}
modifier = {
	is_knight = yes
	add = -20
	desc = AI_MY_LIEGES_KNIGHT
}
modifier = {
	is_commanding_army = yes
	add = -30
	desc = AI_MY_LIEGES_COMMANDER
}
modifier = {
	is_councillor = yes
	add = -40
	desc = AI_ON_THE_COUNCIL
}
modifier = {
	trigger = {
		scope:recipient = {
			has_court_position = court_physician_court_position
		}
	}
	add = -20
	desc = AI_COURT_PHYSICIAN
}
modifier = {
	has_relation_lover = scope:actor
	add = 100
	desc = AI_YOUR_LOVER
}
modifier = {
	has_relation_friend = scope:actor
	add = 75
	desc = AI_YOUR_FRIEND
}
modifier = {
	is_child_of = scope:actor
	add = 160
	desc = AI_YOUR_CHILD
}
modifier = {
	this.dynasty.dynast = scope:actor
	add = 30
	desc = AI_YOU_ARE_THE_DYNAST
}
modifier = {
	this.house.house_head = scope:actor
	add = 60
	desc = AI_YOU_ARE_THE_HOUSE_HEAD
}
modifier = {
	this.top_liege = scope:actor
	add = 60
	desc = AI_YOU_ARE_THE_SOVEREIGN
}
modifier = {
	NOT = {
		is_child_of = scope:actor
	}
	NOT = {
		is_close_family_of = scope:actor
	}
	is_extended_family_of = scope:actor
	add = 30
	desc = AI_YOUR_RELATIVE
}
modifier = {
	NOT = {
		is_child_of = scope:actor
	}
	is_close_family_of = scope:actor
	add = 75
	desc = AI_YOUR_RELATIVE
}
modifier = {
	is_spouse_of = scope:actor
	add = 160
	desc = AI_YOUR_SPOUSE
}
modifier = {
	exists = liege
	has_relation_lover = liege
	add = -100
	desc = AI_THEIR_LOVER
}
modifier = {
	exists = liege
	has_relation_friend = liege
	add = -75
	desc = AI_THEIR_FRIEND
}
modifier = {
	exists = liege
	is_child_of = liege
	add = -160
	desc = AI_THEIR_CHILD
}
modifier = {
	exists = liege
	NOT = {
		is_child_of = liege
	}
	is_close_family_of = liege
	add = -75
	desc = AI_THEIR_RELATIVE
}
modifier = {
	exists = location
	any_consort_not_in_traveling_family_trigger = yes
	desc = AI_LEAVING_MY_SPOUSE
	add = -100
}
modifier = {
	exists = location
	any_child_not_in_traveling_family_trigger = yes
	desc = AI_LEAVING_MY_CHILD
	add = -100
}
modifier = {
	add = -50
	desc = AI_MARRIED_MATRILINIALLY
	is_married = yes
	is_male = yes
	any_spouse = {
		matrilinear_marriage = yes
		host = scope:recipient.host
	}
}
modifier = {
	add = -50
	desc = AI_MARRIED_PATRILINIALLY
	is_married = yes
	is_female = yes
	any_spouse = {
		patrilinear_marriage = yes
		host = scope:recipient.host
	}
}
modifier = {
	add = -50
	desc = AI_INSPIRED
	inspiration ?= {
		NOT = {
			exists = inspiration_sponsor
		}
	}
}
modifier = {
	add = -500
	desc = AI_SPONSORED_INSPIRATION
	inspiration ?= {
		exists = inspiration_sponsor
	}
}
modifier = {
	add = -500
	desc = AI_WANDERLUST
	is_child_of = scope:actor
	has_character_modifier = lust_for_adventure
}
modifier = {
	add = -180
	desc = ELUDING_CASTRATOR
	is_adult = no
	any_memory = {
		memory_type = family_castration_fled_memory
		memory_participant:castrator ?= {
			this = scope:actor
		}
	}
}
modifier = {
	liege ?= {
		is_landed = yes
	}
	scope:actor = {
		is_landed = no
	}
	add = -50
	desc = AI_MY_LIEGE_IS_LANDED
}
modifier = {
	add = {
		value = 10
		add = scope:actor.diplomacy
		if = {
			limit = {
				faith = scope:actor.faith
			}
			add = 10
		}
		else_if = {
			limit = {
				faith = {
					religion = scope:actor.faith.religion
					faith_hostility_level = {
						target = scope:actor.faith
						value < 2
					}
				}
			}
			add = 5
		}
		if = {
			limit = {
				culture = scope:actor.culture
			}
			add = 10
		}
		else_if = {
			limit = {
				culture = {
					has_same_culture_heritage = scope:actor.culture
				}
			}
			add = 5
		}
		if = {
			limit = {
				OR = {
					has_trait = content
					has_trait = lazy
					has_trait = trusting
				}
			}
			add = 10
		}
	}
	desc = AI_CAN_BE_PERSUADED_TO_STAY
	is_pool_guest = no
	location.province_owner ?= {
		OR = {
			any_liege_or_above = {
				this = scope:actor
			}
			this = scope:actor
		}
	}
	NOR = {
		has_relation_rival = scope:actor
		exists = liege
		is_child_of = scope:actor
		has_character_modifier = lust_for_adventure
	}
}
modifier = {
	add = {
		value = 20
		if = {
			limit = {
				has_trait = greedy
			}
			multiply = 1.5
		}
		else_if = {
			limit = {
				has_trait = generous
			}
			multiply = 0.5
		}
	}
	scope:cover_travel_expenses = yes
	desc = AI_TRAVEL_EXPENSES
}
modifier = {
	add = {
		value = 10
		if = {
			limit = {
				scope:actor = {
					has_royal_court = yes
					has_dlc_feature = royal_court
					amenity_level = {
						target = court_lodging_standards
						value >= high_amenity_level
					}
				}
			}
			add = 10
		}
		if = {
			limit = {
				scope:actor = {
					amenity_level = {
						target = court_lodging_standards
						value >= very_high_amenity_level
					}
			
# … (cut here; the rest is in the file)

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

What happens

If they accept

  • The character you target › Every traveling family member › You:
    • add_courtier = prev
  • If

    Then

    • You: Use a Hook on the target
  • If

    • The option “cover travel expenses” is chosen

    Then

    • You:
      • pay_short_term_gold = { … }
      • Stress and fulfillment impact: by trait: Greedy +20

Options when sending

  • Pay for their travel expenses
  • Offer Influence
  • 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) (12 lines of game script)
is_shown = scope:recipient = {
	NOR = {
		is_courtier_of = scope:actor
		is_foreign_court_guest = yes
		host ?= scope:actor
		has_trait = order_member
		is_ruler = yes
		location ?= {
			is_sea_province = yes
		}
	}
}

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

Can be sent when (is_valid…) (55 lines of game script)
custom_tooltip = {
	scope:recipient = {
		OR = {
			NOT = {
				exists = liege
			}
			NOT = {
				has_variable = invite_to_court_cooldown
			}
		}
	}
	text = INVITE_TO_COURT_COOLDOWN
}
can_recruit_character_to_court_trigger = {
	RECRUITER = scope:actor
	RECRUITEE = scope:recipient
}
custom_tooltip = {
	scope:recipient = {
		NAND = {
			has_variable = nomad_defector_var
			var:nomad_defector_var = {
				this = scope:actor
			}
		}
	}
	text = nomad_defected_invite_desc
}
custom_tooltip = {
	scope:recipient = {
		NAND = {
			OR = {
				has_trait = devoted
				has_trait = order_member
			}
			liege ?= {
				government_has_flag = government_is_holy_order
			}
			has_variable = recent_vows
		}
	}
	text = recently_joined_holy_order_desc
}
custom_tooltip = {
	scope:recipient = {
		NAND = {
			has_trait = devoted
			liege ?= {
				government_has_flag = government_is_holy_order
			}
			is_adult = no
		}
	}
	text = child_in_holy_order_desc
}

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

Effects (on_send, on_accept, on_decline) (65 lines of game script)
on_accept = hidden_effect = {
	scope:recipient = {
		set_variable = {
			name = invite_to_court_cooldown
			years = 5
		}
	}
	if = {
		limit = {
			exists = scope:recipient.liege
		}
		scope:recipient.liege = {
			send_interface_message = {
				type = event_generic_neutral
				title = msg_courtier_left_court_interaction_title
				right_icon = scope:recipient
				show_as_tooltip = {
					remove_courtier_or_guest = scope:recipient
				}
			}
		}
	}
}
scope:actor = {
	send_interface_message = {
		type = event_generic_neutral
		title = invite_to_court_interaction_notification
		right_icon = scope:recipient
		scope:recipient = {
			every_traveling_family_member = {
				scope:actor = {
					add_courtier = prev
				}
				hidden_effect = {
					return_to_court = yes
				}
			}
		}
		if = {
			limit = {
				always = scope:hook
			}
			scope:actor = {
				use_hook = scope:recipient
			}
		}
	}
}
if = {
	limit = {
		always = scope:cover_travel_expenses
	}
	scope:actor = {
		pay_short_term_gold = {
			gold = {
				value = bribe_value
				multiply = 0.5
			}
			target = scope:recipient
		}
		stress_and_fulfillment_impact = {
			greedy = minor_stress_impact_gain
		}
	}
}

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

Category
Vassal actions
Cost: Influence
varies
In the menu
under More…
ID
invite_to_court_interaction

Source: game/common/character_interactions/00_courtier_and_guest_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?