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

Interaction · Friendly actions

Send Gift

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

Send a Gift to increase the recipient's opinion of you

What you need

You

To send it

  • root.gold >= gift_value
  • In some cases (on a condition the game doesn't show): … can only send a gift once every 5 years (… remaining)

To see it in the menu

  • If played by the AI:
    • Ai greed less than 35
    • short_term_gold >= gift_interaction_cutoff
    • Not all of these

      • Is landed
      • Highest held Title is at least County Rank
      • Does not have “conqueror” (a variable the game's script sets)
      • Your government is not Nomadic
      • One of these

        • capital_county.title_province.free_building_slots > 0
        • or

          All of these

          • Your culture:
            • has_innovation = innovation_ledger
          • capital_county.title_province.combined_building_level <= 4
        • or

          All of these

          • Your culture:
            • has_innovation = innovation_baliffs
          • capital_county.title_province.combined_building_level <= 6
        • or

          All of these

          • Your culture:
            • has_innovation = innovation_guilds
          • capital_county.title_province.combined_building_level <= 9
        • or

          All of these

          • Your culture:
            • has_innovation = innovation_cranes
          • capital_county.title_province.combined_building_level <= 12
    • Is available (an adult, not imprisoned, not incapable, not in an army)
    • Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux
    • You are currently busy …
    • You are already planning another Activity
    • Does not have the Trait: Greedy
    • Does not have “conqueror” (a variable the game's script sets)
  • If

    a check the game hides

    Then

    • Loan holder is not scope:recipient
  • If

    • The target is you

    Then

    • Is a ruler

The character you target

  • Is not imprisoned by you

Send Gift is a friendly character interaction in Crusader Kings III. The character you target needs: Is not imprisoned by you. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Gold is Good (+100). Patch 1.20.1.2, from game/common/character_interactions/00_gift.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Send Gift in CK3?
The character you target: Is not imprisoned by you. (patch 1.20.1.2)
How do I get the AI to accept Send Gift?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Gold is Good +100 and Struggle agenda.

Will they accept?

Accepted automatically when:

  • It is in … best interests

Otherwise the AI adds these up and accepts above zero. Reasons in italics are the script's, with no label in the game.

ReasonAmount
Base0
Gold is Good+100
Struggle agenda
when
  • The character you target:
varies
Acceptance (ai_accept) (38 lines of game script)
base = 0
modifier = {
	add = 100
	desc = GOLD_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
		}
	}
}

As written in game/common/character_interactions/00_gift.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 = involved
          • has_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 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

            • 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
  • If

    • You:
      • If

        a check the game hides

        Then

        • Your house: Has the house check as house head
    • The character you target:
      • If

        a check the game hides

        Then

        • Their house: Has the house check as house head
      • NOT = { has_opinion_modifier = { target = scope:puppet_or_actor modifier = gift_opinion } }

    Then

    • The target’s house:
      • If

        a check the game hides

        Then

        • impact_house_relation = { target = scope:other_house steps = scope:steps description = house_relation_reason_sent_a_gift_desc }
  • If

    • You are not the target
    • The character you target: Has the opinion “Received Gift” of you

    Then

    • You have already sent a Gift to …, sending another one will override the existing Opinion modifier!
  • Pay 50 gold to the target
  • Stress and fulfillment impact: by trait: Greedy +40
  • If

    • The character you target: Is not an heir of you

    Then

    • Stress and fulfillment impact: by trait: Generous -30
  • If

    Then

    • Loses 20 Stress
    • Spiritual fulfillment +1
  • If

    • You › Your rite: The rite has Gain Piety from sending Gifts and gifting Artifacts
    • None of these

      • The character you target: Has the opinion “Received Gift” of you

    Then

  • If

    • You: Your Personal Tenets unlock tenet philanthropia alms to the destitute
    • The character you target:
      • is_in_debt = yes
    • None of these

      • The character you target: Has the opinion “Received Gift” of you

    Then

  • If

    • None of these

      • The character you target: Has the opinion “Received Gift” of you

    Then

    • If

      • … (more in the script below)
  • … (more in the script below)

When it is accepted automatically

Events it fires: char_interaction.0100

• 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) (31 lines of game script)
is_available = trigger_if = {
	limit = {
		is_ai = yes
	}
	ai_greed < medium_positive_ai_value
	short_term_gold >= gift_interaction_cutoff
	ai_should_focus_on_building_in_their_capital = no
	is_available_at_peace_ai_adult = yes
	NOR = {
		has_trait = greedy
		has_variable = conqueror
	}
}
is_shown = scope:puppet_or_actor ?= {
	this != scope:recipient
	trigger_if = {
		limit = {
			exists = var:loan_amount_owed
			exists = var:loan_holder
		}
		NOT = {
			var:loan_holder = scope:recipient
		}
	}
	trigger_if = {
		limit = {
			scope:recipient = scope:actor
		}
		is_ruler = yes
	}
}

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

Can be sent when (is_valid…) (19 lines of game script)
scope:puppet_or_actor.gold >= gift_value
scope:recipient = {
	NOT = {
		is_imprisoned_by = scope:puppet_or_actor
	}
}
trigger_if = {
	limit = {
		scope:is_puppet_action ?= yes
	}
	custom_tooltip = {
		text = puppet_gift_cooldown_tt
		NOT = {
			scope:puppet_or_actor = {
				has_variable = puppet_gift_cooldown
			}
		}
	}
}

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

Effects (on_send, on_accept, on_decline) (217 lines of game script)
on_accept = 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
	}
}
if = {
	limit = {
		scope:puppet_or_actor = {
			is_house_head = yes
		}
		scope:recipient = {
			is_house_head = yes
			NOT = {
				has_opinion_modifier = {
					target = scope:puppet_or_actor
					modifier = gift_opinion
				}
			}
		}
	}
	scope:recipient.house = {
		change_house_relation_effect = {
			HOUSE = scope:puppet_or_actor.house
			VALUE = house_relation_improve_medium_value
			REASON = sent_a_gift
			CHAR = scope:puppet_or_actor
			TARGET_CHAR = scope:recipient
			TITLE = scope:dummy_gender
		}
	}
}
scope:puppet_or_actor = {
	if = {
		limit = {
			scope:actor != scope:recipient
			scope:recipient = {
				has_opinion_modifier = {
					target = scope:puppet_or_actor
					modifier = gift_opinion
				}
			}
		}
		custom_tooltip = ALREADY_SENT_GIFT_WARNING
	}
	send_interface_message = {
		type = event_gold_neutral
		title = gift_interaction_notification
		right_icon = scope:recipient
		pay_short_term_gold = {
			gold = gift_value
			target = scope:recipient
		}
		stress_and_fulfillment_impact = {
			greedy = medium_stress_impact_gain
		}
		if = {
			limit = {
				scope:recipient = {
					NOT = {
						is_heir_of = scope:puppet_or_actor
					}
				}
			}
			stress_and_fulfillment_impact = {
				generous = medium_stress_impact_loss
			}
		}
		if = {
			limit = {
				scope:puppet_or_actor = {
					has_personal_tenet_flag = tenet_simony_personal_gifts
				}
			}
			add_stress = medium_stress_loss
			change_spiritual_fulfillment = miniscule_spiritual_fulfillment_value
		}
		if = {
			limit = {
				scope:puppet_or_actor = {
					rite = {
						rite_has_parameter = piety_from_gifts_active
					}
				}
				NOT = {
					scope:recipient = {
						has_opinion_modifier = {
							target = scope:puppet_or_actor
							modifier = gift_opinion
						}
					}
				}
			}
			scope:puppet_or_actor = {
				add_piety = minor_piety_gain
			}
		}
		if = {
			limit = {
				scope:puppet_or_actor = {
					has_personal_tenet_flag = tenet_philanthropia_alms_to_the_destitute
				}
				scope:recipient = {
					is_in_debt = yes
				}
				NOT = {
					scope:recipient = {
						has_opinion_modifier = {
							target = scope:puppet_or_actor
							modifier = gift_opinion
						}
					}
				}
			}
			scope:puppet_or_actor = {
				add_prestige = minor_prestige_gain
				add_piety = minor_piety_gain
			}
		}
		if = {
			limit = {
				NOT = {
					scope:recipient = {
						has_opinion_modifier = {
							target = scope:puppet_or_actor
							modifier = gift_opinion
						}
					}
				}
			}
			if = {
				limit = {
					scope:puppet_or_actor = {
						any_character_struggle = {
							involvement = involved
							phase_has_catalyst = catalyst_gift_independent_ruler
							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
							limit = {
								phase_has_catalyst = catalyst_gift_independent_ruler
							}
							activate_struggle_catalyst = {
								catalyst = catalyst_gift_independent_ruler
								character = scope:puppet_or_actor
							}
						}
					}
				}
			}
			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
							}
						}
					}
				}
			}
			if = {
				limit = {
					scope:puppet_or_actor = {
						dynasty ?= {
							has_dynasty_perk = fp2_urbanism_legacy_4
						}
					}
					scope:recipient = {
						AND = {
							is_vassal_of = scope:puppet_or_actor
							government_has_flag = government_is_republic
						}
					}
					scope:puppet_or_actor.culture != scope:recipient.capital_province.county.culture
				}
				sco
# … (cut here; the rest is in the file)

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

Category
Friendly actions
In the menu
main list
ID
gift_interaction

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