Interaction · Friendly actions
Gift Artifact
Give an Artifact to the recipient to increase their opinion of you
What you need
You
To send it
- Is not at war with the target
Also needed: not imprisoned
To see it in the menu
has_any_unequipped_artifact = yes- If played by the AI:
One of these
or
Any character artifact › var:banner_dynasty.dynast › You:None of these
One of these
has_any_mild_bad_relationship_with_character_trigger = { CHARACTER = scope:recipient_temp }or
has_any_moderate_bad_relationship_with_character_trigger = { CHARACTER = scope:recipient_temp }
Which artifact you can pick
- The target: Is not equipped
- Any character artifact:
If
- Your activity:
activity_host = scope:puppet_or_actorhas_activity_type = activity_coronation
Then
- The target:
NOT = { artifact_slot_type = helmet }NOT = { artifact_slot_type = regalia }
- Your activity:
- The target:
has_none_of_variables = { … }If
None of these
- The character you target:
has_artifact_claim = prev
- The character you target:
Then
- If has “banner dynasty” (a variable the game's script sets):
scope:recipient.dynasty ?= var:banner_dynastyartifact_owner = { … }
- If has “banner house” (a variable the game's script sets):
scope:recipient.house ?= var:banner_houseartifact_owner = { … }
If
is_holy_relic_for = artifact_owner.faith
Then
scope:recipient.faith = artifact_owner.faith
- If has “relic religion” (a variable the game's script sets):
One of these
artifact_owner.religion != var:relic_religionor
scope:recipient.religion = var:relic_religion
If
- var:artifact_succession_title: Title already created
Then
One of these
var:artifact_succession_title.holder = scope:recipientor
var:artifact_succession_title.holder != artifact_owner
Gift Artifact is a friendly character interaction in Crusader Kings III. You need: Is not at war with the target and Is not imprisoned. The AI weighs it. Reasons the AI weighs include Artifacts are rare and precious (+100), This artifact is useless to the recipient (-80), This artifact is not relevant to the recipient (-40) and 2 more. Patch 1.20.1.2, from game/common/character_interactions/00_artifact_interactions.txt.
Quick answers (2)
- What are the requirements for Gift Artifact in CK3?
- You: Is not at war with the target and Is not imprisoned. (patch 1.20.1.2)
- How do I get the AI to accept Gift Artifact?
- The AI weighs it. Its reasons: Artifacts are rare and precious +100, This artifact is useless to the recipient -80, This artifact is not relevant to the recipient -40, This is the recipient's Dynasty Banner +100, This banner has no connection to the recipient -200, Struggle agenda and Wants to increase House Unity.
Will they accept?
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 | 0 |
| Artifacts are rare and precious | +100 |
This artifact is useless to the recipientwhen
| -80 |
This artifact is not relevant to the recipientwhen
| -40 |
This is the recipient's Dynasty Bannerwhen
| +100 |
This banner has no connection to the recipientwhen
| -200 |
Struggle agendawhen
| varies |
Wants to increase House Unitywhen
| varies |
Acceptance (ai_accept) (80 lines of game script)
base = 0
modifier = {
add = 100
desc = ARTIFACT_REASON
}
modifier = {
add = -80
NOT = {
can_equip_artifact = scope:target
}
desc = ARTIFACT_NOT_EQUIPPABLE_REASON
}
modifier = {
add = -40
NOT = {
can_benefit_from_artifact = scope:target
}
desc = ARTIFACT_NOT_BENEFIT_REASON
}
modifier = {
add = 100
exists = scope:target.var:banner_dynasty
exists = scope:recipient.dynasty
scope:recipient = scope:target.var:banner_dynasty.dynast
desc = ARTIFACT_DYNASTY_BANNER_REASON
}
modifier = {
add = -200
OR = {
exists = scope:target.var:banner_dynasty
exists = scope:target.var:banner_house
}
exists = scope:recipient.house
trigger_if = {
limit = {
exists = scope:target.var:banner_dynasty
}
scope:target.var:banner_dynasty != scope:recipient.dynasty
}
trigger_else = {
scope:target.var:banner_house != scope:recipient.house
}
desc = ARTIFACT_USELESS_BANNER_REASON
}
modifier = {
desc = AI_STRUGGLE_INTENT
scope:recipient = {
top_liege = this
any_character_struggle = {
involvement = involved
}
}
add = {
value = 0
if = {
limit = {
scope:recipient = {
any_character_struggle = {
phase_has_catalyst = catalyst_gift_independent_ruler
}
has_character_flag = agenda_towards_escalation
}
}
add = -100
}
else_if = {
limit = {
scope:recipient = {
any_character_struggle = {
phase_has_catalyst = catalyst_gift_independent_ruler
}
}
}
add = 200
}
}
}
evaluate_action_increasing_house_unity = {
VALUE = 100
}As written in game/common/character_interactions/00_artifact_interactions.txt.
What happens
If they accept
- The character you target:
If
Not all of these
- Has you as friend
- Has you as lover
- Has you as soulmate
- Has you as best friend
Then
If
Not all of these
- Their culture is the same as that of puppet or actor
- Their faith is the same as that of puppet or actor
- You › Any character struggle:
involvement = involved
- Any character struggle:
involvement = involvedhas_struggle_phase_parameter = struggle_gifts_involved_diff_faith_culture_leads_to_friendship
Then
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
has_activity_intent = befriend_attendee_intentintent_target ?= scope:target_charintent_target.involved_activity ?= this.involved_activity
Then
complete_activity_intent = yes
Otherwise
If
can_set_relation_potential_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
- The character you target:
If
- The target:
can_be_claimed_by = scope:recipient
Then
- If any personal claimed artifact:
remove_personal_artifact_claim = scope:target
- Otherwise › Their house:
remove_house_artifact_claim = scope:target
- The target:
- The target:
set_owner = scope:recipient
If
- The target:
is_unique = yes
Then
- The target:
- … (more in the script below)
• 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) (30 lines of game script)
is_available = has_any_unequipped_artifact = yes
trigger_if = {
limit = {
is_ai = yes
}
OR = {
AND = {
ai_greed <= high_positive_ai_value
is_adult = yes
NOT = {
has_trait = greedy
}
}
any_character_artifact = {
var:banner_dynasty.dynast ?= {
save_temporary_scope_as = recipient_temp
root = {
NOT = {
has_any_bad_relationship_with_character_trigger = {
CHARACTER = scope:recipient_temp
}
}
}
}
}
}
}
is_shown = scope:puppet_or_actor ?= {
this != scope:recipient
}As written in game/common/character_interactions/00_artifact_interactions.txt.
Can be sent when (is_valid…) (16 lines of game script)
scope:puppet_or_actor = {
NOT = {
is_at_war_with = scope:recipient
}
is_imprisoned = no
}
trigger_if = {
limit = {
exists = scope:target.var:banner_dynasty
exists = scope:recipient.dynasty
}
custom_description = {
text = gift_artifact_dynasty_banner_head_tt
scope:recipient = scope:target.var:banner_dynasty.dynast
}
}As written in game/common/character_interactions/00_artifact_interactions.txt.
Effects (on_send, on_accept, on_decline) (228 lines of game script)
on_accept = if = {
limit = {
scope:recipient = {
has_opinion_modifier = {
target = scope:puppet_or_actor
modifier = gift_artifact_opinion
}
}
}
custom_tooltip = ALREADY_SENT_GIFT_WARNING
}
if = {
limit = {
scope:puppet_or_actor = {
any_character_struggle = {
involvement = involved
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_gift_independent_ruler
CHAR = scope:recipient
}
}
}
}
hidden_effect = {
scope:puppet_or_actor = {
every_character_struggle = {
involvement = involved
activate_struggle_catalyst = {
catalyst = catalyst_gift_independent_ruler
character = scope:puppet_or_actor
}
}
}
}
}
else_if = {
limit = {
fp3_struggle_involves_one_supporter_and_one_detractor = {
FIRST = scope:puppet_or_actor
SECOND = scope:recipient
}
scope:puppet_or_actor = {
any_character_struggle = {
activate_struggle_catalyst_secondary_character_involvement_either_trigger = {
CATALYST = catalyst_gift_supporter_detractor_ruler
CHAR = scope:recipient
}
}
}
}
hidden_effect = {
scope:puppet_or_actor = {
every_character_struggle = {
limit = {
activate_struggle_catalyst_secondary_character_involvement_either_trigger = {
CATALYST = catalyst_gift_supporter_detractor_ruler
CHAR = scope:recipient
}
}
activate_struggle_catalyst = {
catalyst = catalyst_gift_supporter_detractor_ruler
character = scope:puppet_or_actor
}
log_debug_variable_for_persian_struggle_effect = {
VAR = concession_catalyst_gift_supporter_detractor_ruler
}
}
}
}
}
scope:target = {
set_variable = {
name = suppress_artifact_notifications
value = yes
days = 1
}
set_variable = {
name = gifted_artifact
value = yes
days = 9125
}
}
scope:recipient = {
if = {
limit = {
NAND = {
has_relation_friend = scope:puppet_or_actor
has_relation_lover = scope:puppet_or_actor
has_relation_soulmate = scope:puppet_or_actor
has_relation_best_friend = scope:puppet_or_actor
}
}
gifting_leads_towards_friendship_effect = yes
}
}
scope:puppet_or_actor = {
send_interface_toast = {
type = event_toast_effect_neutral
title = gift_artifact_interaction_notification
left_icon = scope:recipient
right_icon = scope:target
scope:recipient = {
if = {
limit = {
scope:target = {
can_be_claimed_by = scope:recipient
}
}
if = {
limit = {
any_personal_claimed_artifact = {
this = scope:target
}
}
show_as_tooltip = {
remove_personal_artifact_claim = scope:target
}
}
else = {
show_as_tooltip = {
house = {
remove_house_artifact_claim = scope:target
}
}
}
}
}
scope:target = {
set_owner = scope:recipient
}
if = {
limit = {
scope:target = {
is_unique = yes
}
}
add_clan_unity_interaction_effect = {
CHARACTER = scope:puppet_or_actor
TARGET = scope:recipient
VALUE = medium_unity_gain
DESC = clan_unity_given_artifact.desc
REVERSE_NON_HOUSE_TARGET = no
}
stress_and_fulfillment_impact = {
greedy = major_stress_impact_gain
generous = major_stress_impact_loss
}
}
else_if = {
limit = {
scope:target = {
rarity = masterwork
}
}
add_clan_unity_interaction_effect = {
CHARACTER = scope:puppet_or_actor
TARGET = scope:recipient
VALUE = minor_unity_gain
DESC = clan_unity_given_artifact.desc
REVERSE_NON_HOUSE_TARGET = no
}
stress_and_fulfillment_impact = {
greedy = minor_stress_impact_gain
generous = minor_stress_impact_loss
}
}
else_if = {
limit = {
scope:target = {
rarity = famed
}
}
add_clan_unity_interaction_effect = {
CHARACTER = scope:puppet_or_actor
TARGET = scope:recipient
VALUE = minor_unity_gain
DESC = clan_unity_given_artifact.desc
REVERSE_NON_HOUSE_TARGET = no
}
stress_and_fulfillment_impact = {
greedy = medium_stress_impact_gain
generous = medium_stress_impact_loss
}
}
else_if = {
limit = {
scope:target = {
rarity = illustrious
}
}
add_clan_unity_interaction_effect = {
CHARACTER = scope:puppet_or_actor
TARGET = scope:recipient
VALUE = minor_unity_gain
DESC = clan_unity_given_artifact.desc
REVERSE_NON_HOUSE_TARGET = no
}
stress_and_fulfillment_impact = {
greedy = major_stress_impact_gain
generous = major_stress_impact_loss
}
}
if = {
limit = {
scope:recipient = {
is_ai = yes
}
}
reverse_add_opinion = {
target = scope:recipient
modifier = gift_artifact_opinion
opinion = gift_artifact_opinion
}
}
if = {
limit = {
scope:puppet_or_actor = {
rite = {
rite_has_parameter = piety_from_gifts_active
}
}
}
scope:puppet_or_actor = {
if = {
limit = {
scope:target = {
r
# … (cut here; the rest is in the file)As written in game/common/character_interactions/00_artifact_interactions.txt.
- Category
- Friendly actions
- In the menu
- under More…
- ID
gift_artifact_interaction
Source: game/common/character_interactions/00_artifact_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.