Interaction · Uncategorized actions
Offer of Peace
What you need
You
To send it
- The war:
- Has a valid Casus Belli
is_white_peace_possible = yes
To see it in the menu
- If played by the AI:
- Character war (at least 1):
casus_belli = { … }
If
a check the game hides
Then
None of these
- The war:
casus_belli ?= { … }- Attacker war score at least 10
- The war:
casus_belli ?= { … }- Defender war score at least 70
- The war:
- Character war (at least 1):
Which character you can pick
- The war:
- Hostages cannot be exchanged to settle Great Holy Wars
- Hostages cannot be used to settle a …
Offer of Peace is an uncategorized character interaction in Crusader Kings III. The AI weighs it. Reasons the AI weighs include Other Wars (+10), Peacemaker (+10), Peacemaker (+10) and 8 more. Patch 1.20.1.2, from game/common/character_interactions/00_war.txt.
Quick answers (1)
- How do I get the AI to accept Offer of Peace?
- The AI weighs it. Its reasons: War Score, War Score, Long War, Significantly Bankrupt, Other Wars +10, Peacemaker +10, Peacemaker +10, The Secret History +10, The Secret History +10, Cowed by predecessor's beheading +30, Cowed by predecessor's beheading +30, Astute Diplomats Cultural Tradition +10, Astute Diplomats Cultural Tradition +10, Struggle Phase Bonus +10, Greatest of Khans' Onslaught -70, Occupied Counties that will be taken, The character you send's value as a Hostage for White Peace and The other character's value as a Hostage for White Peace.
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 | -30 |
War Scorewhen
| attacker_war_score |
War Scorewhen
| defender_war_score |
Long Warwhen
| varies |
Significantly Bankruptwhen
| varies |
Other Warswhen
| +10 |
| Their personality (AI values: vengefulness (scripted), greed (scripted), zeal (scripted)) | varies |
Peacemakerwhen
| +10 |
Peacemakerwhen
| +10 |
The Secret Historywhen
| +10 |
The Secret Historywhen
| +10 |
Cowed by predecessor's beheadingwhen
| +30 |
Cowed by predecessor's beheadingwhen
| +30 |
Astute Diplomats Cultural Traditionwhen
| +10 |
Astute Diplomats Cultural Traditionwhen
| +10 |
Struggle Phase Bonuswhen
| +10 |
Greatest of Khans' Onslaughtwhen
| -70 |
Occupied Counties that will be takenwhen
| varies |
| The character you send's value as a Hostage for White Peace | varies |
| The other character's value as a Hostage for White Peace | varies |
Acceptance (ai_accept) (283 lines of game script)
base = -30
compare_modifier = {
trigger = {
scope:war.casus_belli = {
primary_defender = scope:recipient
}
}
target = scope:war
value = attacker_war_score
desc = WARSCORE_MODIFIER
}
compare_modifier = {
trigger = {
scope:war.casus_belli = {
primary_attacker = scope:recipient
}
}
target = scope:war
value = defender_war_score
desc = WARSCORE_MODIFIER
}
compare_modifier = {
target = scope:war
trigger = {
scope:war = {
war_days >= 365
}
}
value = {
value = war_days
divide = 91
}
desc = WAR_LENGTH
}
modifier = {
scope:war = {
war_days >= 182
}
scope:war.casus_belli = {
primary_defender = root
}
OR = {
debt_level >= 1
treasury_debt_level >= 1
}
add = {
value = debt_level
multiply = 20
}
desc = COMPLETELY_BANKRUPT
}
modifier = {
scope:war.casus_belli = {
primary_attacker = scope:recipient
}
scope:recipient = {
any_character_war = {
this != scope:war
primary_defender = scope:recipient
}
}
add = 10
desc = CONCERN_ABOUT_OTHER_WARS
}
ai_value_modifier = {
trigger = {
scope:war.casus_belli = {
primary_defender = scope:recipient
}
}
ai_vengefulness = {
if = {
limit = {
scope:war.casus_belli = {
primary_defender = scope:recipient
}
}
value = -0.25
}
}
ai_greed = {
if = {
limit = {
scope:war.casus_belli = {
primary_attacker = scope:recipient
}
}
value = -0.25
}
}
ai_zeal = {
value = -0.2
if = {
limit = {
faith = {
faith_hostility_level = {
target = scope:actor.faith
value = 2
}
}
}
multiply = 2
}
if = {
limit = {
faith = {
faith_hostility_level = {
target = scope:actor.faith
value = 3
}
}
}
multiply = 3
}
if = {
limit = {
OR = {
ai_zeal <= 0
faith = {
faith_hostility_level = {
target = scope:actor.faith
value <= 0
}
}
}
}
value = 0
}
}
}
modifier = {
trigger = {
scope:war.casus_belli = {
primary_defender = scope:recipient
primary_attacker = {
has_perk = peacemaker_perk
}
}
}
add = peacemaker_value
desc = PEACEMAKER_PERK_MODIFIER
}
modifier = {
trigger = {
scope:war.casus_belli = {
primary_attacker = scope:recipient
primary_defender = {
has_perk = peacemaker_perk
}
}
}
add = peacemaker_value
desc = PEACEMAKER_PERK_MODIFIER
}
modifier = {
trigger = {
scope:war.casus_belli = {
primary_defender = scope:recipient
primary_attacker = {
dynasty ?= {
has_dynasty_perk = mpo_nomad_legacy_3
}
}
}
}
add = 10
desc = NOMAD_LEGACY_PERK_MODIFIER
}
modifier = {
trigger = {
scope:war.casus_belli = {
primary_attacker = scope:recipient
primary_defender = {
dynasty ?= {
has_dynasty_perk = mpo_nomad_legacy_3
}
}
}
}
add = 10
desc = NOMAD_LEGACY_PERK_MODIFIER
}
modifier = {
trigger = {
scope:war.casus_belli = {
primary_attacker = scope:recipient
primary_attacker = {
is_ai = yes
save_temporary_scope_as = attacker
}
primary_defender = {
has_variable = peace_acceptance_head_scare
var:peace_acceptance_head_scare = {
this = scope:attacker
}
}
}
}
add = 30
desc = COWED_BY_SEVERED_HEAD_MODIFIER
}
modifier = {
trigger = {
scope:war.casus_belli = {
primary_defender = scope:recipient
primary_defender = {
is_ai = yes
save_temporary_scope_as = defender
}
primary_attacker = {
has_variable = peace_acceptance_head_scare
var:peace_acceptance_head_scare = {
this = scope:defender
}
}
}
}
add = 30
desc = COWED_BY_SEVERED_HEAD_MODIFIER
}
modifier = {
trigger = {
scope:war.casus_belli = {
primary_defender = scope:recipient
primary_attacker = {
culture = {
has_cultural_parameter = facilitate_white_peace
}
}
}
}
add = 10
desc = TRADITION_BONUS_WHITE_PEACE
}
modifier = {
trigger = {
scope:war.casus_belli = {
primary_attacker = scope:recipient
primary_defender = {
culture = {
has_cultural_parameter = facilitate_white_peace
}
}
}
}
add = 10
desc = TRADITION_BONUS_WHITE_PEACE
}
modifier = {
trigger = {
scope:actor = {
OR = {
any_character_struggle = {
involvement = involved
is_struggle_parameter_active_secondary_character_involvement_either_trigger = {
PARAMETER = white_peace_acceptance_between_involved_or_interloper_with_region_easier
CHAR = scope:recipient
}
}
any_character_struggle = {
involvement = interloper
is_struggle_parameter_active_secondary_character_involvement_either_trigger = {
PARAMETER = white_peace_acceptance_between_involved_or_interloper_with_region_easier
CHAR = scope:recipient
}
}
}
}
}
add = 10
desc = STRUGGLE_INVOLVED_OR_INTERLOPER_PHASE_BONUS
}
modifier = {
desc = WAR_OVERVIEW_WHITE_PEACE_GOK
add = -70
scope:war = {
using_cb = mpo_gok_onslaught_cb
primary_defender = scope:actor
}
}
modifier = {
desc = WAR_OVERVIE
# … (cut here; the rest is in the file)As written in game/common/character_interactions/00_war.txt.
What happens
If they accept
- The war:
casus_belli = { … }If
- Not: The war’s casus belli is Rescue House Members
Then
- Every war defender › Every prisoner:
- Where:
One of these
this = scope:war.primary_attackeror
The war’s primary attacker’s primary title:place_in_line_of_succession = { target = prev value <= 3 }
release_from_prison = yes
- Where:
- Every war attacker › Every prisoner:
- Where:
One of these
this = scope:war.primary_defenderor
The war’s primary defender’s primary title:place_in_line_of_succession = { target = prev value <= 3 }
release_from_prison = yes
- Where:
If
- The war:
- Not: The war’s casus belli is Great Holy War
- Not: The war’s casus belli is Great Holy War
None of these
- The war’s casus belli is Raid for Captives
- The war’s casus belli is Excommunication
- The war’s casus belli is Border Raid
- The war’s casus belli is Iberian Reclamation
- The war’s casus belli is Artifact
- The war’s casus belli is Holy Relic Reclamation
- The war’s casus belli is Diarch Seizure
- The war’s casus belli is Remove Regent
- The war’s casus belli is Independence Faction
- The war’s casus belli is Liberty Faction
- The war’s casus belli is Rebellion
- The war’s casus belli is Claimant Faction
- The war’s casus belli is Depose
- The war’s casus belli is Rebellion
- The war’s casus belli is Independence War
- The war’s casus belli is Dissolution Faction
- The war’s casus belli is Invasion
- The war’s casus belli is Invasion
- The war’s casus belli is Invasion
- The war’s casus belli is Invasion
Then
If
- The character you target:
One of these
- Is landed
or
All of these
- they has administrative government mechanic
- Is not landed
If
a check the game hides
Then
- Their house: Has the house check as house head
- Has a domicile
or
or
All of these
- Is a ruler
- Government is a Theocratic-type Government
Then
- The character you send:
- If any relation › Every relation:
- The current guardian scope:
remove_relation_ward = scope:secondary_actorreturn_guardian_travel_effect = { GUARDIAN = scope:current_guardian_scope WARD = scope:secondary_actor }
- If never › The character you send:
return_ward_travel_effect = { }
- Otherwise:
guardian_remove_opinion_effect = { GUARDIAN = scope:current_guardian_scope WARD = scope:secondary_actor WARD_LIEGE = scope:secondary_actor.liege }
- The current guardian scope:
- Else, if any relation › Every relation:
- The character you send:
remove_relation_ward = scope:current_ward_scopereturn_guardian_travel_effect = { GUARDIAN = scope:secondary_actor WARD = scope:current_ward_scope }
If
always = yes
Then
- The current ward scope:
return_ward_travel_effect = { }
Otherwise
guardian_remove_opinion_effect = { GUARDIAN = scope:secondary_actor WARD = scope:current_ward_scope WARD_LIEGE = scope:current_ward_scope.liege }
- The character you send:
- The character you target:
take_hostage = scope:secondary_actor
If
One of these
All of these
exists = scope:actor.primary_titleexists = scope:recipient.primary_titlescope:recipient.primary_title.tier < scope:actor.primary_title.tier
or
All of these
exists = scope:actor.dynastyexists = scope:recipient.dynastyscope:recipient.dynasty.dynasty_prestige_level < scope:actor.dynasty.dynasty_prestige_level
Then
If
- The target’s faith:
faith_hostility_level = { target = scope:actor.faith value >= faith_hostile_level }
Then
- They will earn Prestige, Renown, and Piety
- ⟨faith⟩ consider ⟨faith⟩ Faith …
If
bp2_warden_dynasty_renown_lower_trigger = { WARDEN = scope:recipient HOME_COURT = scope:actor }
Then
- … has higher Level of Splendor than …
If
bp2_warden_title_tier_lower_trigger = { WARDEN = scope:recipient HOME_COURT = scope:actor }
Then
- … is higher Tier than …
- The target’s faith:
- … (more in the script below)
- If any relation › Every relation:
- The character you target:
- … (more in the script below)
- The war:
- … (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) (39 lines of game script)
is_available = trigger_if = {
limit = {
is_ai = yes
}
any_character_war = {
count >= 1
casus_belli = {
OR = {
primary_attacker ?= root
primary_defender ?= root
}
}
}
trigger_if = {
limit = {
exists = scope:war
}
NOR = {
scope:war ?= {
casus_belli ?= {
primary_defender ?= root
primary_attacker ?= {
is_ai = no
}
}
attacker_war_score >= 10
}
scope:war ?= {
casus_belli ?= {
primary_attacker ?= root
primary_defender ?= {
is_ai = no
}
}
defender_war_score >= 70
}
}
}
}As written in game/common/character_interactions/00_war.txt.
Can be sent when (is_valid…) (4 lines of game script)
scope:war ?= {
has_valid_casus_belli = yes
is_white_peace_possible = yes
}As written in game/common/character_interactions/00_war.txt.
Effects (on_send, on_accept, on_decline) (103 lines of game script)
on_accept = scope:war ?= {
casus_belli = {
primary_attacker = {
save_scope_as = attacker_white_peace
}
primary_defender = {
save_scope_as = defender_white_peace
}
}
if = {
limit = {
NOT = {
using_cb = fp3_free_house_member_cb
}
}
release_prisoners_of_war_effect = yes
}
}
if = {
limit = {
scope:war ?= {
NOR = {
using_cb = undirected_great_holy_war
using_cb = directed_great_holy_war
}
bp2_hostage_exchange_invalid_cb_trigger = no
}
}
if = {
limit = {
exists = scope:secondary_actor
scope:recipient = {
is_landed_or_landless_administrative_or_theocratic = yes
}
}
hostage_depart_effect = {
HOSTAGE = scope:secondary_actor
WARDEN = scope:recipient
HOME_COURT = scope:actor
}
}
if = {
limit = {
exists = scope:secondary_recipient
scope:actor = {
is_landed_or_landless_administrative_or_theocratic = yes
}
}
hostage_depart_effect = {
HOSTAGE = scope:secondary_recipient
WARDEN = scope:actor
HOME_COURT = scope:recipient
}
}
}
hidden_effect = {
scope:attacker_white_peace = {
if = {
limit = {
any_vassal = {
this != scope:defender_white_peace
}
}
every_vassal = {
limit = {
this != scope:defender_white_peace
}
send_interface_toast = {
type = msg_liege_war_ended_white_peace
title = WAR_RESULTS_WHITE_PEACE
left_icon = scope:attacker_white_peace
right_icon = scope:defender_white_peace
custom_tooltip = war_event.1903
}
}
}
}
scope:defender_white_peace = {
if = {
limit = {
any_vassal = {
this != scope:attacker_white_peace
}
}
every_vassal = {
limit = {
this != scope:attacker_white_peace
}
send_interface_toast = {
type = msg_liege_war_ended_white_peace
title = WAR_RESULTS_WHITE_PEACE
left_icon = scope:defender_white_peace
right_icon = scope:attacker_white_peace
custom_tooltip = war_event.1904
}
}
}
}
}
scope:war ?= {
end_war = white_peace
}
on_decline = As written in game/common/character_interactions/00_war.txt.
- Category
- Uncategorized actions
- In the menu
- no (opened from elsewhere)
- ID
end_war_attacker_white_peace_interaction
Source: game/common/character_interactions/00_war.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.