Interaction · Friendly actions
Grant Pardon
You consider the recipient to be a Criminal (…), allowing you to Imprison them at any time without gaining Tyranny. If you would prefer that they remain free, you can choose to pardon them. This will remove any and all reasons you have to Imprison them and increase their Opinion of you.
What you need
You
To send it
- In some cases (on a condition the game doesn't show) › You:
influence >= pardon_interaction_influence_cost_value
- In some cases (on a condition the game doesn't show) › You:
treasury >= pardon_interaction_treasury_cost_value
To see it in the menu
- If played by the AI:
One of these
- Ai vengefulness at most 0
or
Your culture: The Culture has the The Grant Pardon Interaction gives much more positive Opinion and a Strong Hook Tradition
One of these
has_imprisonment_reason = scope:recipientor
All of these
- Holds Ministry of Justice
- The character you target › Any liege or above:
has_imprisonment_reason = scope:recipient
The character you target
One of these
- You:
- Holds Ministry of Justice
top_liege ?= scope:recipient.top_liege
or
Is a vassal (or below) of you
- You:
Grant Pardon is a friendly character interaction in Crusader Kings III. Accepted automatically. It costs Influence (varies), Treasury (varies). Patch 1.20.1.2, from game/common/character_interactions/00_vassal_interactions.txt.
Quick answers (2)
- Will the AI accept Grant Pardon?
- Yes: it is accepted automatically.
- How much does Grant Pardon cost?
- Influence (varies), Treasury (varies) (patch 1.20.1.2).
Will they accept?
The other character has no choice: the game accepts it automatically.
What happens
Effects
- In some cases (on a condition the game doesn't show) › You:
- If pardon interaction influence cost more than 0:
change_influence = { … }
- If pardon interaction treasury cost more than 0:
remove_treasury = { … }
- If pardon interaction influence cost more than 0:
If
- You: Holds Ministry of Justice
Then
- You:
- If your Government uses Influence:
change_influence = { value = minor_influence_gain multiply = scope:recipient.highest_held_title_tier }
- The character you target:
If
One of these
- The target’s liege:
One of these
has_banish_reason = scope:recipientor
has_execute_reason = scope:recipientor
has_revoke_title_reason = scope:recipient
or
Is family of you
- The target’s liege:
Then
- You:
change_strife_opinion = massive_strife_gain- Dynastic Cycle: Counts toward the situation's next phase: “Minister of Justice pardoned dangerous Criminal”
- The target’s liege:
If
has_imprisonment_reason = scope:recipient
Then
consume_imprisonment_reasons = scope:recipient
If
has_banish_reason = scope:recipient
Then
consume_banish_reasons = scope:recipient
If
has_execute_reason = scope:recipient
Then
consume_execute_reasons = scope:recipient
If
has_revoke_title_reason = scope:recipient
Then
consume_revoke_title_reason = scope:recipient
Otherwise
- The character you target › You:
If
has_imprisonment_reason = scope:recipient
Then
consume_imprisonment_reasons = scope:recipient
If
has_banish_reason = scope:recipient
Then
consume_banish_reasons = scope:recipient
If
has_execute_reason = scope:recipient
Then
consume_execute_reasons = scope:recipient
If
has_revoke_title_reason = scope:recipient
Then
consume_revoke_title_reason = scope:recipient
- Stress and fulfillment impact: by trait: Forgiving -20
If
- Your culture: The Culture has the The Grant Pardon Interaction gives Prestige Tradition
Then
- Gain +75 Prestige
- The character you target:
If
- You › Your culture: The Culture has the The Grant Pardon Interaction gives much more positive Opinion and a Strong Hook Tradition
Then
- Opinion: Loyal Servant
- You:
Otherwise
- Opinion: Grateful (+15)
If
Then
- Your house:
add_unity_value = { … }
- Your house:
• 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) (33 lines of game script)
is_available = trigger_if = {
limit = {
is_ai = yes
}
OR = {
ai_vengefulness <= 0
culture ?= {
has_cultural_parameter = pardoning_gives_loyalty
}
}
}
is_shown = scope:puppet_or_actor ?= {
OR = {
has_imprisonment_reason = scope:recipient
AND = {
has_title = title:e_minister_of_justice
scope:recipient = {
any_liege_or_above = {
has_imprisonment_reason = scope:recipient
}
}
}
}
}
scope:recipient = {
OR = {
scope:puppet_or_actor ?= {
has_title = title:e_minister_of_justice
top_liege ?= scope:recipient.top_liege
}
target_is_liege_or_above = scope:puppet_or_actor
}
}As written in game/common/character_interactions/00_vassal_interactions.txt.
Can be sent when (is_valid…) (16 lines of game script)
trigger_if = {
limit = {
scope:is_puppet_action ?= yes
}
scope:puppet_or_actor = {
influence >= pardon_interaction_influence_cost_value
}
}
trigger_if = {
limit = {
scope:is_puppet_action ?= yes
}
scope:puppet_or_actor = {
treasury >= pardon_interaction_treasury_cost_value
}
}As written in game/common/character_interactions/00_vassal_interactions.txt.
Effects (on_send, on_accept, on_decline) (222 lines of game script)
on_accept = if = {
limit = {
scope:is_puppet_action ?= yes
}
scope:puppet_or_actor = {
if = {
limit = {
pardon_interaction_influence_cost_value > 0
}
change_influence = {
value = {
add = pardon_interaction_influence_cost_value
max = influence
multiply = -1
}
}
}
if = {
limit = {
pardon_interaction_treasury_cost_value > 0
}
remove_treasury = {
value = {
add = pardon_interaction_treasury_cost_value
}
}
}
}
}
if = {
limit = {
scope:puppet_or_actor = {
has_title = title:e_minister_of_justice
}
}
scope:puppet_or_actor = {
add_merit_if_relevant_effect = {
MERIT = minor_merit_value
}
if = {
limit = {
government_has_flag = government_has_influence
}
change_influence = {
value = minor_influence_gain
multiply = scope:recipient.highest_held_title_tier
}
}
}
scope:recipient = {
send_interface_toast = {
type = event_toast_effect_neutral
title = pardon_interaction_toast_title
desc = pardon_interaction_toast_minister
right_icon = scope:puppet_or_actor
if = {
limit = {
OR = {
scope:recipient.liege = {
has_extra_criminal_reason_against_trigger = {
CRIMINAL = scope:recipient
}
}
is_close_or_extended_family_of = scope:puppet_or_actor
}
}
scope:puppet_or_actor = {
change_strife_opinion = massive_strife_gain
situation:dynastic_cycle = {
trigger_situation_catalyst = {
catalyst = catalyst_minister_pardoned_dangerous_criminal
character = scope:puppet_or_actor
}
}
}
}
consume_all_criminal_reasons_effect = {
LIEGE = scope:recipient.liege
CRIMINAL = scope:recipient
}
}
}
hidden_effect = {
scope:recipient.liege = {
send_interface_toast = {
type = event_toast_effect_neutral
title = pardon_interaction_toast_title
desc = pardon_interaction_toast_minister_liege
right_icon = scope:puppet_or_actor
left_icon = scope:recipient
show_as_tooltip = {
if = {
limit = {
OR = {
has_extra_criminal_reason_against_trigger = {
CRIMINAL = scope:recipient
}
scope:recipient = {
is_close_or_extended_family_of = scope:puppet_or_actor
}
}
}
scope:puppet_or_actor = {
change_strife_opinion = massive_strife_gain
situation:dynastic_cycle = {
trigger_situation_catalyst = {
catalyst = catalyst_minister_pardoned_dangerous_criminal
character = scope:puppet_or_actor
}
}
}
}
consume_all_criminal_reasons_effect = {
LIEGE = scope:recipient.liege
CRIMINAL = scope:recipient
}
}
}
}
}
}
else = {
scope:recipient = {
send_interface_toast = {
type = event_toast_effect_neutral
title = pardon_interaction_toast_title
desc = pardon_interaction_toast
right_icon = scope:puppet_or_actor
consume_all_criminal_reasons_effect = {
LIEGE = scope:puppet_or_actor
CRIMINAL = scope:recipient
}
}
}
}
scope:puppet_or_actor = {
stress_and_fulfillment_impact = {
forgiving = medium_stress_loss
}
}
scope:puppet_or_actor = {
if = {
limit = {
culture = {
has_cultural_parameter = pardoning_gives_prestige
}
}
add_prestige = minor_prestige_gain
}
hidden_effect = {
if = {
limit = {
fp3_struggle_involves_one_supporter_and_one_detractor = {
FIRST = scope:puppet_or_actor
SECOND = scope:recipient
}
scope:recipient = {
any_character_struggle = {
involvement = involved
phase_has_catalyst = catalyst_grants_pardon_supporter_detractor
is_secondary_character_involvement_involved_trigger = {
CHAR = scope:puppet_or_actor
}
}
}
}
every_character_struggle = {
involvement = involved
activate_struggle_catalyst = {
catalyst = catalyst_grants_pardon_supporter_detractor
character = scope:recipient
}
log_debug_variable_for_persian_struggle_effect = {
VAR = concession_catalyst_grants_pardon_supporter_detractor
}
}
}
}
}
scope:recipient = {
if = {
limit = {
scope:puppet_or_actor = {
culture = {
has_cultural_parameter = pardoning_gives_loyalty
}
}
}
add_opinion = {
modifier = loyal_servant
target = scope:puppet_or_actor
}
scope:puppet_or_actor = {
if = {
limit = {
can_add_hook = {
target = scope:recipient
type = loyalty_hook
}
}
add_hook = {
type = loyalty_hook
target = scope:recipient
}
}
}
}
else = {
add_opinion = {
target = scope:puppet_or_actor
modifier = grateful_opinion
opinion = 15
}
}
}
add_clan_unity_interaction_effect = {
CHARACTER = scope:puppet_or_actor
TARGET = scope:recipient
VALUE = minor_unity_gain
DESC = clan_unity_forgiveness.desc
REVERSE_NON_HOUSE_TARGET = no
}As written in game/common/character_interactions/00_vassal_interactions.txt.
- Category
- Friendly actions
- Cost: Influence
- varies
- Cost: Treasury
- varies
- In the menu
- under More…
- ID
pardon_interaction
Source: game/common/character_interactions/00_vassal_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. “…” marks words the game fills in at play time (a name, a title).