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

Send Treasury

No costAccepted automatically in some cases

Aid the recipient and their Province by providing much needed Treasury

What you need

You

To send it

  • treasury >= give_treasury_value
  • Is not at war with the target

To see it in the menu

  • You have Treasury
  • If played by the AI:
    • Treasury more than 1000
    • Is an Adult

The character you target

  • Has Treasury
  • top_liege ?= scope:actor.top_liege

Send Treasury is a vassal character interaction in Crusader Kings III. You need: Is not at war with the target. Accepted automatically in some cases. Patch 1.20.1.2, from game/common/character_interactions/10_tgp_interactions.txt.

for a guide, post or blog
Quick answers (1)
What are the requirements for Send Treasury in CK3?
You: Is not at war with the target. (patch 1.20.1.2)

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
Base+100
Acceptance (ai_accept) (1 line of game script)
base = 100

As written in game/common/character_interactions/10_tgp_interactions.txt.

What happens

If they accept

  • If

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

    Then

    • You have already sent Treasury to …, sending more will override the existing Opinion modifier!
  • pay_short_term_treasury = { target = scope:recipient treasury = give_treasury_value }
  • If

    • top_participant_group:dynastic_cycle:
      • has_participant_group_parameter = dynastic_cycle_send_treasury_for_merit

    Then

    • Merit +60
  • If your Government uses Influence: Influence +60
  • The character you target: Opinion: Received Treasury (+20)

When it is accepted automatically

Events it fires: tgp_interaction_event.0001

• 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) (13 lines of game script)
is_available = has_treasury = yes
trigger_if = {
	limit = {
		is_ai = yes
	}
	treasury > 1000
	is_adult = yes
}
is_shown = scope:recipient = {
	has_treasury = yes
	this != scope:actor
	top_liege ?= scope:actor.top_liege
}

As written in game/common/character_interactions/10_tgp_interactions.txt.

Can be sent when (is_valid…) (7 lines of game script)
scope:actor = {
	treasury >= give_treasury_value
	NOT = {
		is_at_war_with = scope:recipient
	}
}

As written in game/common/character_interactions/10_tgp_interactions.txt.

Effects (on_send, on_accept, on_decline) (103 lines of game script)
on_accept = scope:actor = {
	if = {
		limit = {
			scope:recipient = {
				has_opinion_modifier = {
					target = scope:actor
					modifier = treasury_gift_opinion
				}
			}
		}
		custom_tooltip = ALREADY_SENT_TREASURY_WARNING
	}
	send_interface_toast = {
		type = event_toast_effect_good
		title = celestial_give_treasury_interaction
		right_icon = scope:recipient
		pay_short_term_treasury = {
			target = scope:recipient
			treasury = give_treasury_value
		}
		if = {
			limit = {
				top_participant_group:dynastic_cycle ?= {
					has_participant_group_parameter = dynastic_cycle_send_treasury_for_merit
				}
			}
			change_merit = medium_merit_value
		}
		if = {
			limit = {
				government_has_flag = government_has_influence
			}
			change_influence = medium_influence_value
		}
		scope:recipient = {
			add_opinion = {
				target = scope:actor
				modifier = treasury_gift_opinion
				opinion = 20
			}
		}
	}
}
on_decline = 
on_auto_accept = scope:recipient = {
	random = {
		chance = {
			value = 0
			if = {
				limit = {
					treasury < 0
				}
				add = 20
			}
			else_if = {
				limit = {
					treasury < 50
				}
				add = 12
			}
			else_if = {
				limit = {
					treasury < 100
				}
				add = 5
			}
			if = {
				limit = {
					has_trait = humble
				}
				add = 8
			}
			if = {
				limit = {
					has_trait = just
				}
				add = 6
			}
			if = {
				limit = {
					has_trait = generous
				}
				add = 6
			}
			if = {
				limit = {
					has_trait = trusting
				}
				add = 5
			}
		}
		modifier = {
			factor = 0
			this = top_liege
		}
		scope:actor = {
			trigger_event = {
				id = tgp_interaction_event.0001
				days = { 30 60 }
			}
		}
	}
}

As written in game/common/character_interactions/10_tgp_interactions.txt.

Category
Vassal actions
In the menu
under More…
ID
celestial_give_treasury_interaction

Source: game/common/character_interactions/10_tgp_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?