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

Invite To Activity

No costThe AI weighs it (the answer is partly random)

Invite a Ruler from another Realm to join you in a feast or a hunt

What you need

You

To send it

  • Is not at war with the target
  • Also needed: available (an adult, not in an army, not imprisoned, not incapable) · none of the traits Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux · not busy in an Activity · not planning another Activity

To see it in the menu

  • Any character struggle:
    • involvement = involved
    • is_struggle_type = iberian_struggle
  • Never

The character you target

To send it

  • Also needed: available (an adult, not in an army, not imprisoned, not incapable) · none of the traits Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux · not busy in an Activity · not planning another Activity

To see it in the menu

  • Any character struggle:
    • involvement = involved
    • is_struggle_type = iberian_struggle
  • Is a ruler
  • One of these

    • Cannot play landless rulers without having an Estate
    • or

      If

      • One of these

        • Is landed
        • or

          Government is a Theocratic-type Government

      Then

    • or

      All of these

      • Their liege:
        • All of these

          • Holds China
          • Government is Celestial
          • Their government has the government uses ministry budget flag
      • One of these

    • or

      Has “laamp transition” (a variable the game's script sets)
  • No liege or above:
  • No vassal or below:

Invite To Activity is a diplomatic character interaction in Crusader Kings III. You need: Is available (an adult, not in an army, not imprisoned, not incapable), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, You are currently busy … and 2 more. The character you target needs: Is available (an adult, not in an army, not imprisoned, not incapable), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, Busy participating in an Activity and 1 more. The AI weighs it (the answer is partly random). Reasons the AI weighs include Difference in Rank (+20), Difference in Rank (-20), You … the recipient's rival (-50) and 6 more. Patch 1.20.1.2, from game/common/character_interactions/03_fp2_interactions.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Invite To Activity in CK3?
You: Is available (an adult, not in an army, not imprisoned, not incapable), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, You are currently busy …, You are already planning another Activity and Is not at war with the target. The character you target: Is available (an adult, not in an army, not imprisoned, not incapable), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, Busy participating in an Activity and You are already planning another Activity. (patch 1.20.1.2)
How do I get the AI to accept Invite To Activity?
The AI weighs it (the answer is partly random). Its reasons: Difference in Rank +20, Difference in Rank -20, … Opinion of …, You … the recipient's rival -50, You … the recipient's nemesis -100, You … the recipient's friend +25, You … the recipient's best friend +50, You … the recipient's lover +100, Relevant Traits +25, Relevant Traits +25 and Struggle agenda.

Will they accept?

The AI adds these up and accepts above zero; near zero the answer is partly random (ai_maybe). Reasons in italics are the script's, with no label in the game.

ReasonAmount
Base0
Difference in Rank
when
  • root.primary_title.tier > primary_title.tier
+20
Difference in Rank
when
  • root.primary_title.tier < primary_title.tier
-20
… Opinion of …varies
Their personality (AI values: sociability 1)varies
You … the recipient's rival
when
  • Has you as rival
-50
You … the recipient's nemesis
when
  • Has you as nemesis
-100
You … the recipient's friend
when
  • Has you as friend
+25
You … the recipient's best friend
when
  • Has you as best friend
+50
You … the recipient's lover
when
  • One of these

    • Has you as lover
    • or

      Has you as soulmate
+100
Relevant Traits
when
  • The option “invite to hunt” is chosen
  • Has the Trait: Hunter
+25
Relevant Traits
when
+25
Struggle agenda
when
  • The option “invite to feast” is chosen
  • Any character struggle:
    • involvement = involved
    • phase_has_catalyst = catalyst_invite_diff_faith_culture_to_feast
  • Not all of these

    • Your faith is the target’s
    • Your culture is the target’s
  • The character you target › Any character struggle:
    • involvement = involved
    • phase_has_catalyst = catalyst_invite_diff_faith_culture_to_feast
varies
Acceptance (ai_accept) (99 lines of game script)
base = 0
modifier = {
	add = 20
	scope:actor.primary_title.tier > primary_title.tier
	desc = RANK_DIFFERENCE_REASON
}
modifier = {
	add = -20
	scope:actor.primary_title.tier < primary_title.tier
	desc = RANK_DIFFERENCE_REASON
}
opinion_modifier = {
	who = scope:recipient
	opinion_target = scope:actor
	multiplier = 1
	desc = AI_OPINION_REASON
}
ai_value_modifier = {
	ai_sociability = 1
}
modifier = {
	add = -50
	has_relation_rival = scope:actor
	desc = WE_ARE_RIVALS
}
modifier = {
	add = -100
	has_relation_nemesis = scope:actor
	desc = WE_ARE_NEMESES
}
modifier = {
	add = 25
	has_relation_friend = scope:actor
	desc = WE_ARE_FRIENDS
}
modifier = {
	add = 50
	has_relation_best_friend = scope:actor
	desc = WE_ARE_BEST_FRIENDS
}
modifier = {
	add = 100
	OR = {
		has_relation_lover = scope:actor
		has_relation_soulmate = scope:actor
	}
	desc = WE_ARE_LOVERS
}
modifier = {
	add = 25
	scope:invite_to_hunt = yes
	has_trait = lifestyle_hunter
	desc = AI_RELEVANT_TRAITS
}
modifier = {
	add = 25
	scope:invite_to_feast = yes
	has_trait = lifestyle_reveler
	desc = AI_RELEVANT_TRAITS
}
modifier = {
	desc = AI_STRUGGLE_INTENT
	scope:invite_to_feast = yes
	scope:recipient = {
		any_character_struggle = {
			involvement = involved
			phase_has_catalyst = catalyst_invite_diff_faith_culture_to_feast
		}
	}
	scope:actor = {
		any_character_struggle = {
			involvement = involved
			phase_has_catalyst = catalyst_invite_diff_faith_culture_to_feast
		}
	}
	NAND = {
		scope:actor.faith = scope:recipient.faith
		scope:actor.culture = scope:recipient.culture
	}
	add = {
		value = 0
		if = {
			limit = {
				scope:actor = {
					has_character_flag = agenda_towards_deescalation
				}
			}
			add = 100
		}
		else_if = {
			limit = {
				scope:actor = {
					has_character_flag = agenda_towards_escalation
				}
			}
			add = -100
		}
	}
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

What happens

If they accept

  • If

    • The option “invite to hunt” is chosen

    Then

    • You:
      • remove_short_term_gold = hunt_activity_base_cost
      • If

        • Has the target char as potential friend
        • Does not have the target char as friend
        • Does not have the target char as best friend
        • Does not have the target char as rival
        • Does not have the target char as nemesis

        Then

        • If a check the game hides passes: the same again (1 line)
          Else if a check the game hides passes: the same again (1 line)
          Else if a check the game hides passes: the same again (1 line)

          Otherwise

        • If

          • has_activity_intent = befriend_attendee_intent
          • intent_target ?= scope:target_char
          • intent_target.involved_activity ?= this.involved_activity

          Then

          • complete_activity_intent = yes

        Otherwise

        • If

          • Does not have the target char as potential friend
          • can_set_relation_friend_trigger = { CHARACTER = scope:target_char }
          • If

            • Is played by the AI
            • The target char: Is played by the AI

            Then

            • The target char: Opinion of prev at least -25

            Otherwise

            • always = yes

          Then

          • set_relation_potential_friend = scope:target_char
        • If

          • scope:friend_opinion != 0

          Then

          • If

            • The target char: Is played by the AI

            Then

            • The target char gains the opinion “Friendly” of them
          • Opinion: Friendly
      • You call a Hunt with … as a special guest

    Else if

    • The option “invite to feast” is chosen

    Then

    • You:
      • remove_short_term_gold = feast_activity_cost
      • If

        • Has the target char as potential friend
        • Does not have the target char as friend
        • Does not have the target char as best friend
        • Does not have the target char as rival
        • Does not have the target char as nemesis

        Then

        • If a check the game hides passes: the same again (1 line)
          Else if a check the game hides passes: the same again (1 line)
          Else if a check the game hides passes: the same again (1 line)

          Otherwise

        • If

          • has_activity_intent = befriend_attendee_intent
          • intent_target ?= scope:target_char
          • intent_target.involved_activity ?= this.involved_activity

          Then

          • complete_activity_intent = yes

        Otherwise

        • If

          • Does not have the target char as potential friend
          • can_set_relation_friend_trigger = { CHARACTER = scope:target_char }
          • If

            • Is played by the AI
            • The target char: Is played by the AI

            Then

            • The target char: Opinion of prev at least -25

            Otherwise

            • always = yes

          Then

          • set_relation_potential_friend = scope:target_char
        • If

          • scope:friend_opinion != 0

          Then

          • If

            • The target char: Is played by the AI

            Then

            • The target char gains the opinion “Friendly” of them
          • Opinion: Friendly
      • You start a Feast with … as a special guest
  • If

    • You: Government is Clan
    • The character you target: Government is Clan
    • Your house is the target’s
    • If

      • You are not the target

      Then

      • You are not the target

    Then

    • Your house:
      • add_unity_value = { … }

    Else if

    • No
    • You: Government is Clan
    • Your house: Has you as house head
    • One of these

      • All of these

        • … (more in the script below)
      • or

        … (more in the script below)

If they refuse

  • Gain -150 Prestige
  • The character you target: You gains the opinion “Refusal” (-50) of them
  • If

    • The character you target: Government is Clan
    • You: Government is Clan
    • The target’s house is your
    • If

      • You are not the target

      Then

      • The target is not you

    Then

    • The target’s house:
      • add_unity_value = { … }

    Else if

    • No
    • The character you target: Government is Clan
    • The target’s house: Has the target as house head
    • One of these

      • All of these

        • exists = scope:actor.house
        • The target’s house is not your
      • or

        You: Is Lowborn

    Then

    • The target’s house:
      • add_unity_value = { … }

Options when sending

  • Call Hunt
  • Host Feast

• 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 = any_character_struggle = {
	involvement = involved
	is_struggle_type = iberian_struggle
}
is_shown = always = no
scope:actor != scope:recipient
scope:recipient = {
	any_character_struggle = {
		involvement = involved
		is_struggle_type = iberian_struggle
	}
	is_playable_character = yes
	NOR = {
		any_liege_or_above = {
			this = scope:actor
		}
		any_vassal_or_below = {
			this = scope:actor
		}
	}
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

Can be sent when (is_valid…) (11 lines of game script)
scope:actor = {
	is_available_adult = yes
}
scope:recipient = {
	is_available_adult = yes
}
scope:actor = {
	NOT = {
		is_at_war_with = scope:recipient
	}
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

Effects (on_send, on_accept, on_decline) (96 lines of game script)
on_accept = if = {
	limit = {
		scope:invite_to_hunt = yes
	}
	scope:actor = {
		set_variable = {
			name = special_guest
			value = scope:recipient
		}
		show_as_tooltip = {
			remove_short_term_gold = hunt_activity_base_cost
		}
		send_interface_toast = {
			type = event_toast_effect_good
			title = invited_to_hunt.accept.actor.tt
			left_icon = scope:recipient
			progress_towards_friend_effect = {
				REASON = friend_invited_to_hunt
				CHARACTER = scope:recipient
				OPINION = 0
			}
			custom_tooltip = invite_foreign_ruler_to.hunt.tooltip
		}
	}
	scope:recipient = {
		send_interface_toast = {
			title = invited_to_hunt.accept.recipient.tt
			left_icon = scope:actor
		}
	}
}
else_if = {
	limit = {
		scope:invite_to_feast = yes
	}
	scope:actor = {
		set_variable = {
			name = special_guest
			value = scope:recipient
		}
		show_as_tooltip = {
			remove_short_term_gold = feast_activity_cost
		}
		send_interface_toast = {
			type = event_toast_effect_good
			title = invited_to_feast.accept.actor.tt
			left_icon = scope:recipient
			progress_towards_friend_effect = {
				REASON = friend_invited_to_feast
				CHARACTER = scope:recipient
				OPINION = 0
			}
			custom_tooltip = invite_foreign_ruler_to.feast.tooltip
		}
	}
	scope:recipient = {
		send_interface_toast = {
			title = invited_to_feast.accept.recipient.tt
			left_icon = scope:actor
		}
	}
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:actor
	TARGET = scope:recipient
	VALUE = medium_unity_gain
	DESC = clan_unity_feast_invite.desc
	REVERSE_NON_HOUSE_TARGET = no
}
on_decline = scope:actor = {
	send_interface_toast = {
		type = event_toast_effect_bad
		title = invite_foreign_ruler_to.decline.actor.tt
		left_icon = scope:recipient
		add_prestige = medium_prestige_loss
	}
}
scope:recipient = {
	send_interface_toast = {
		type = event_toast_effect_neutral
		title = invite_foreign_ruler_to.decline.recipient.tt
		left_icon = scope:actor
		reverse_add_opinion = {
			target = scope:actor
			modifier = refusal_opinion
			opinion = -50
		}
	}
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:recipient
	TARGET = scope:actor
	VALUE = minor_unity_loss
	DESC = clan_unity_feast_invite_decline.desc
	REVERSE_NON_HOUSE_TARGET = no
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

Category
Diplomatic actions
Cooldown
1 year
Again on the same character
after 5 years
In the menu
main list
ID
invite_foreign_ruler_to

Source: game/common/character_interactions/03_fp2_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?