Interaction · Friendly actions
Reaffirm Oath of True Friendship
As the recipient is already your best friend, it is only logical that you swear an oath of mutual fealty
What you need
You
To send it
Also needed: available (an adult, not in an army, not imprisoned, not incapable) · none of the traits Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux · not busy in an Activity · not planning another Activity
To see it in the menu
- Your culture: The Culture has the May ask Friends to become Best Friends Tradition
- If played by the AI: Is not imprisoned
- Has the target as best friend
None of these
- You: Has a Strong Hook on the target
- The character you target: Has a Strong Hook on you
The character you target
Also needed: available (an adult, not in an army, not imprisoned, not incapable) · none of the traits Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux · not busy in an Activity · not planning another Activity
Reaffirm Oath of True Friendship is a friendly character interaction in Crusader Kings III. You need: Is available (an adult, not in an army, not imprisoned, not incapable), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, You are currently busy … and 1 more. The character you target needs: Is available (an adult, not in an army, not imprisoned, not incapable), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, Busy participating in an Activity and 1 more. The AI weighs it (the answer is partly random). Reasons the AI weighs include Shy is nervous about becoming Best Friends (-5), Arbitrary is wary of becoming Best Friends (-30), Gregarious approves of becoming Best Friends (+10) and 9 more. Patch 1.20.1.2, from game/common/character_interactions/03_fp2_interactions.txt.
Quick answers (2)
- What are the requirements for Reaffirm Oath of True Friendship in CK3?
- You: Is available (an adult, not in an army, not imprisoned, not incapable), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, You are currently busy … and You are already planning another Activity. The character you target: Is available (an adult, not in an army, not imprisoned, not incapable), Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux, Busy participating in an Activity and You are already planning another Activity. (patch 1.20.1.2)
- How do I get the AI to accept Reaffirm Oath of True Friendship?
- The AI weighs it (the answer is partly random). Its reasons: … Opinion of …, Shy is nervous about becoming Best Friends -5, Arbitrary is wary of becoming Best Friends -30, Gregarious approves of becoming Best Friends +10, Just approves of becoming Best Friends +30, Rank Difference +75, Rank Difference +50, Rank Difference +25, Rank Difference -100, Rank Difference -75, Rank Difference -50, The recipient has the Foreign Affairs Focus +25 and … Culture understands the true meaning of friendship +50.
Will they accept?
The AI adds these up and accepts above zero; near zero the answer is partly random (ai_maybe). Reasons in italics are the script's, with no label in the game.
| Reason | Amount |
|---|---|
| Base | 0 |
| … Opinion of … | varies |
| Their personality (AI values: sociability (scripted), honor (scripted)) | varies |
| Shy is nervous about becoming Best Friends | -5 |
| Arbitrary is wary of becoming Best Friends | -30 |
Gregarious approves of becoming Best Friendswhen
| +10 |
| Just approves of becoming Best Friends | +30 |
Rank Differencewhen
| +75 |
Rank Differencewhen
| +50 |
Rank Differencewhen
| +25 |
Rank Differencewhen
| -100 |
Rank Differencewhen
| -75 |
Rank Differencewhen
| -50 |
The recipient has the Foreign Affairs Focuswhen
| +25 |
… Culture understands the true meaning of friendshipwhen
| +50 |
Acceptance (ai_accept) (9 lines of game script)
base = 0
fp2_ritual_best_friendship_interactions_ai_accept_modifier = yes
modifier = {
add = 50
culture = {
has_cultural_parameter = may_propose_best_friendship
}
desc = REAFFIRM_BEST_FRIEND_OPINION_HAS_CULTURAL_PARAMETER
}As written in game/common/character_interactions/03_fp2_interactions.txt.
What happens
If they accept
- The target gains the opinion “Friendly” (+25) of them
- The character you target:
- You gains the opinion “Friendly” (+25) of them
If
Then
- Your house:
add_unity_value = { … }
- Your house:
If they refuse
• 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) (20 lines of game script)
is_available = culture ?= {
has_cultural_parameter = may_propose_best_friendship
}
trigger_if = {
limit = {
is_ai = yes
}
is_imprisoned = no
}
is_shown = scope:actor = {
has_relation_best_friend = scope:recipient
}
NOR = {
scope:actor = {
has_strong_hook = scope:recipient
}
scope:recipient = {
has_strong_hook = scope:actor
}
}As written in game/common/character_interactions/03_fp2_interactions.txt.
Can be sent when (is_valid…) (6 lines of game script)
scope:actor = {
is_available_adult = yes
}
scope:recipient = {
is_available_adult = yes
}As written in game/common/character_interactions/03_fp2_interactions.txt.
Effects (on_send, on_accept, on_decline) (90 lines of game script)
on_accept = scope:actor = {
send_interface_toast = {
type = event_toast_effect_good
title = reaffirm_best_friendship_interaction.accept.actor.tt
left_icon = scope:recipient
reverse_add_opinion = {
target = scope:recipient
modifier = friendliness_opinion
opinion = 25
}
if = {
limit = {
NOT = {
has_strong_hook = scope:recipient
}
}
add_hook = {
type = ritual_best_friend_hook
target = scope:recipient
}
}
}
}
scope:recipient = {
send_interface_toast = {
type = event_toast_effect_neutral
title = reaffirm_best_friendship_interaction.accept.recipient.tt
left_icon = scope:actor
reverse_add_opinion = {
target = scope:actor
modifier = friendliness_opinion
opinion = 25
}
if = {
limit = {
NOT = {
has_strong_hook = scope:actor
}
}
add_hook = {
type = ritual_best_friend_hook
target = scope:actor
}
}
}
}
add_clan_unity_interaction_effect = {
CHARACTER = scope:actor
TARGET = scope:recipient
VALUE = minor_unity_gain
DESC = clan_unity_friendship_is_magic.desc
REVERSE_NON_HOUSE_TARGET = no
}
on_decline = scope:actor = {
send_interface_toast = {
type = event_toast_effect_bad
title = reaffirm_best_friendship_interaction.decline.actor.tt
left_icon = scope:recipient
show_as_tooltip = {
remove_relation_best_friend = scope:recipient
}
}
}
scope:recipient = {
send_interface_toast = {
type = event_toast_effect_neutral
title = reaffirm_best_friendship_interaction.decline.recipient.tt
left_icon = scope:actor
remove_relation_best_friend = scope:actor
}
}
hidden_effect = {
scope:recipient = {
if = {
limit = {
NOT = {
has_relation_potential_rival = scope:actor
}
}
set_relation_potential_rival = scope:actor
}
}
}
add_clan_unity_interaction_effect = {
CHARACTER = scope:actor
TARGET = scope:recipient
VALUE = minor_unity_loss
DESC = clan_unity_friendship_is_not_magic.desc
REVERSE_NON_HOUSE_TARGET = no
}As written in game/common/character_interactions/03_fp2_interactions.txt.
- Category
- Friendly actions
- Cooldown
- 5 years
- Again on the same character
- after 10 years
- In the menu
- main list
- ID
reaffirm_best_friendship_interaction
Source: game/common/character_interactions/03_fp2_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.