Interaction · Diplomatic actions
Break Betrothal
What you need
You
One of these
- Your betrothed:
All of these
- Is betrothed
If
a check the game hides
Then
- Is played by the AI
One of these
All of these
- Is a child of the target
- Is a vassal (or below) of the target
NOT = { matchmaker = { is_parent_of = prev this != scope:recipient } }
or
All of these
Not all of these
- Is a ruler
One of these
- Cannot play landless rulers without having an Estate
or
or
tgp_is_any_minister = { }or
Has “laamp transition” (a variable the game's script sets)
- Is a direct vassal of the target
or
The character you target:All of these
- Is betrothed
If
a check the game hides
Then
- Is played by the AI
One of these
All of these
- Is a child of you
- Is a vassal (or below) of you
NOT = { matchmaker = { is_parent_of = prev this != scope:puppet_or_actor } }
or
All of these
Not all of these
- Is a ruler
One of these
- Cannot play landless rulers without having an Estate
or
or
tgp_is_any_minister = { }or
Has “laamp transition” (a variable the game's script sets)
- Is a direct vassal of you
or
The target’s betrothed:All of these
- Is betrothed
If
a check the game hides
Then
- Is played by the AI
One of these
All of these
- Is a child of you
- Is a vassal (or below) of you
NOT = { matchmaker = { is_parent_of = prev this != scope:puppet_or_actor } }
or
All of these
Not all of these
- Is a ruler
One of these
- Cannot play landless rulers without having an Estate
or
or
tgp_is_any_minister = { }or
Has “laamp transition” (a variable the game's script sets)
- Is a direct vassal of you
- Your betrothed:
The character you target
- Does not have a Strong Hook on you
Break Betrothal is a diplomatic character interaction in Crusader Kings III. The character you target needs: Does not have a Strong Hook on you. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/00_marriage_interactions.txt.
Quick answers (2)
- What are the requirements for Break Betrothal in CK3?
- The character you target: Does not have a Strong Hook on you. (patch 1.20.1.2)
- Will the AI accept Break Betrothal?
- Yes: it is accepted automatically.
Will they accept?
The other character has no choice: the game accepts it automatically.
What happens
Effects
- The character you target: Event marriage_interaction.0020
- The rejected betrothed:
break_betrothal = scope:rejecting_betrothed
If
None of these
- The rejecting betrothed:
One of these
One of these
- Has the Trait: Eunuch
or
Has the Trait: Beardless Eunuch
or
Has one of the traits: Eunuch, Beardless Eunuch, Monk, Military Order Memberor
All of these
Not all of these
- Game rule set to “Accepted”
- Their rite: The rite has Same-sex relationships are fully accepted
sex_same_as = scope:rejected_betrothed
- The rejected betrothed:
One of these
One of these
- Has the Trait: Eunuch
or
Has the Trait: Beardless Eunuch
or
Has one of the traits: Eunuch, Beardless Eunuch, Monk, Military Order Memberor
All of these
Not all of these
- Game rule set to “Accepted”
- Their rite: The rite has Same-sex relationships are fully accepted
sex_same_as = scope:rejecting_betrothed
- The rejecting betrothed:
None of these
- The rejecting betrothed: Has “promised grand wedding by” (a variable the game's script sets)
- The rejected betrothed: Has “promised grand wedding by” (a variable the game's script sets)
Then
If
One of these
- The rejected betrothed:
One of these
- Is close family of you
or
All of these
exists = dynastyexists = scope:puppet_or_actor.dynasty- Is of the same dynasty as you
or
The rejecting betrothed:One of these
- Is close family of you
or
All of these
exists = dynastyexists = scope:puppet_or_actor.dynasty- Is of the same dynasty as you
or
You:yields_alliance = { candidate = scope:rejecting_betrothed target = scope:rejected_betrothal_owner target_candidate = scope:rejected_betrothed }
- The rejected betrothed:
Then
- You: Gain -1,500 Prestige
Else if
One of these
- The rejected betrothed:
One of these
- Is close family of you
or
All of these
exists = dynastyexists = scope:puppet_or_actor.dynasty- Is of the same dynasty as you
or
The rejecting betrothed:One of these
- Is close family of you
or
All of these
exists = dynastyexists = scope:puppet_or_actor.dynasty- Is of the same dynasty as you
or
You:yields_alliance = { candidate = scope:rejecting_betrothed target = scope:rejected_betrothal_owner target_candidate = scope:rejected_betrothed }
- The rejected betrothed:
Then
- You: Gain -750 Prestige
Else if
One of these
- The rejected betrothed:
One of these
- Is close family of you
or
All of these
exists = dynastyexists = scope:puppet_or_actor.dynasty- Is of the same dynasty as you
or
The rejecting betrothed:One of these
- Is close family of you
or
All of these
exists = dynastyexists = scope:puppet_or_actor.dynasty- Is of the same dynasty as you
or
You:yields_alliance = { candidate = scope:rejecting_betrothed target = scope:rejected_betrothal_owner target_candidate = scope:rejected_betrothed }
- The rejected betrothed:
Then
- You: Gain -350 Prestige
Else if
One of these
- The rejected betrothed:
One of these
- Is close family of you
or
All of these
exists = dynastyexists = scope:puppet_or_actor.dynasty- Is of the same dynasty as you
or
The rejecting betrothed:One of these
- Is close family of you
or
All of these
exists = dynastyexists = scope:puppet_or_actor.dynasty- Is of the same dynasty as you
or
… (more in the script below)
- The rejected betrothed:
- … (more in the script below)
- … (more in the script below)
Events it fires: marriage_interaction.0020, marriage_interaction.0001, clan.1002
• 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) (17 lines of game script)
is_shown = OR = {
scope:puppet_or_actor.betrothed ?= {
break_betrothal_valid_target_trigger = {
CHARACTER = scope:recipient
}
}
scope:recipient = {
break_betrothal_valid_target_trigger = {
CHARACTER = scope:puppet_or_actor
}
}
scope:recipient.betrothed ?= {
break_betrothal_valid_target_trigger = {
CHARACTER = scope:puppet_or_actor
}
}
}As written in game/common/character_interactions/00_marriage_interactions.txt.
Can be sent when (is_valid…) (112 lines of game script)
scope:recipient = {
NOT = {
has_strong_hook = scope:puppet_or_actor
}
}
custom_description = {
text = break_betrothal_hook_used
object = scope:recipient
trigger_if = {
limit = {
scope:recipient.betrothed ?= {
break_betrothal_valid_target_trigger = {
CHARACTER = scope:puppet_or_actor
}
}
exists = scope:recipient.var:hook_used_for_betrothal
}
scope:recipient.var:hook_used_for_betrothal = {
this != scope:recipient.betrothed
}
}
}
custom_description = {
text = break_betrothal_hook_used
object = scope:recipient
trigger_if = {
limit = {
scope:recipient.betrothed ?= {
break_betrothal_valid_target_trigger = {
CHARACTER = scope:puppet_or_actor
}
}
exists = scope:recipient.betrothed.var:hook_used_for_betrothal
}
scope:recipient.betrothed.var:hook_used_for_betrothal = {
this != scope:recipient
}
}
}
custom_description = {
text = break_betrothal_hook_used
object = scope:recipient
trigger_if = {
limit = {
scope:recipient = {
OR = {
any_courtier = {
is_betrothed = yes
betrothed = scope:puppet_or_actor
liege = scope:recipient
var:hook_used_for_betrothal ?= {
this = scope:puppet_or_actor
}
}
any_child = {
is_betrothed = yes
betrothed = scope:puppet_or_actor
OR = {
is_playable_character = no
target_is_liege_or_above = scope:recipient
}
NOT = {
matchmaker = {
is_parent_of = prev
this != scope:puppet_or_actor
}
}
var:hook_used_for_betrothal ?= {
this = scope:puppet_or_actor
}
}
}
}
}
always = no
}
}
custom_description = {
text = break_betrothal_gwedding_ongoing
trigger_if = {
limit = {
OR = {
scope:recipient = {
has_been_promised_grand_wedding = yes
}
scope:recipient.betrothed ?= {
has_been_promised_grand_wedding = yes
}
}
}
NOR = {
scope:recipient.involved_activity ?= {
has_activity_type = activity_wedding
OR = {
special_guest:spouse_1 ?= scope:recipient
special_guest:spouse_2 ?= scope:recipient
special_guest:spouse_1 ?= scope:recipient.betrothed
special_guest:spouse_2 ?= scope:recipient.betrothed
}
}
scope:recipient.betrothed.involved_activity ?= {
has_activity_type = activity_wedding
OR = {
special_guest:spouse_1 ?= scope:recipient
special_guest:spouse_2 ?= scope:recipient
special_guest:spouse_1 ?= scope:recipient.betrothed
special_guest:spouse_2 ?= scope:recipient.betrothed
}
}
}
}
}As written in game/common/character_interactions/00_marriage_interactions.txt.
Effects (on_send, on_accept, on_decline) (238 lines of game script)
on_accept = scope:secondary_actor = {
save_scope_as = rejecting_betrothed
betrothed = {
save_scope_as = rejected_betrothed
}
}
scope:rejecting_betrothed.var:promised_grand_wedding_by ?= {
save_scope_as = promising_host
}
scope:recipient = {
trigger_event = marriage_interaction.0020
}
show_as_tooltip = {
scope:rejected_betrothed = {
break_betrothal = scope:rejecting_betrothed
}
}
scope:rejected_betrothed = {
if = {
limit = {
matchmaker = {
this != scope:rejected_betrothed
is_close_or_extended_family_of = scope:rejected_betrothed
}
}
matchmaker = {
save_scope_as = rejected_betrothal_owner
}
}
else = {
save_scope_as = rejected_betrothal_owner
}
}
if = {
limit = {
has_proper_reason_to_break_betrothal_trigger = no
NOR = {
scope:rejecting_betrothed = {
has_been_promised_grand_wedding = yes
}
scope:rejected_betrothed = {
has_been_promised_grand_wedding = yes
}
}
}
if = {
limit = {
OR = {
scope:rejected_betrothed = {
highest_held_title_tier > tier_empire
}
scope:rejected_betrothal_owner = {
highest_held_title_tier > tier_empire
}
}
cost_prestige_for_break_betrothal_trigger = yes
}
scope:puppet_or_actor = {
add_prestige = monumental_prestige_loss
}
}
else_if = {
limit = {
OR = {
scope:rejected_betrothed = {
highest_held_title_tier = tier_empire
}
scope:rejected_betrothal_owner = {
highest_held_title_tier = tier_empire
}
}
cost_prestige_for_break_betrothal_trigger = yes
}
scope:puppet_or_actor = {
add_prestige = massive_prestige_loss
}
}
else_if = {
limit = {
OR = {
scope:rejected_betrothed = {
highest_held_title_tier = tier_kingdom
}
scope:rejected_betrothal_owner = {
highest_held_title_tier = tier_kingdom
}
}
cost_prestige_for_break_betrothal_trigger = yes
}
scope:puppet_or_actor = {
add_prestige = major_prestige_loss
}
}
else_if = {
limit = {
OR = {
scope:rejected_betrothed = {
highest_held_title_tier = tier_duchy
}
scope:rejected_betrothal_owner = {
highest_held_title_tier = tier_duchy
}
}
cost_prestige_for_break_betrothal_trigger = yes
}
scope:puppet_or_actor = {
add_prestige = medium_prestige_loss
}
}
else_if = {
limit = {
OR = {
scope:rejected_betrothed = {
highest_held_title_tier = tier_county
}
scope:rejected_betrothal_owner = {
highest_held_title_tier = tier_county
}
}
cost_prestige_for_break_betrothal_trigger = yes
}
scope:puppet_or_actor = {
add_prestige = minor_prestige_loss
}
}
else_if = {
limit = {
OR = {
scope:rejected_betrothed = {
highest_held_title_tier = tier_barony
}
scope:rejected_betrothal_owner = {
highest_held_title_tier = tier_barony
}
}
cost_prestige_for_break_betrothal_trigger = yes
}
scope:puppet_or_actor = {
add_prestige = miniscule_prestige_loss
}
}
}
if = {
limit = {
has_proper_reason_to_break_betrothal_trigger = no
OR = {
scope:rejecting_betrothed = {
has_been_promised_grand_wedding = yes
}
scope:rejected_betrothed = {
has_been_promised_grand_wedding = yes
}
}
}
scope:puppet_or_actor = {
break_grand_wedding_betrothal_effect = yes
}
}
else = {
if = {
limit = {
has_proper_reason_to_break_betrothal_trigger = no
}
scope:rejected_betrothed = {
show_as_tooltip = {
add_opinion = {
target = scope:puppet_or_actor
modifier = broke_betrothal_opinion
}
}
}
if = {
limit = {
scope:puppet_or_actor != scope:rejected_betrothal_owner
scope:rejected_betrothal_owner != scope:rejected_betrothed
}
scope:rejected_betrothal_owner = {
show_as_tooltip = {
add_opinion = {
target = scope:puppet_or_actor
modifier = broke_betrothal_opinion
}
}
}
}
}
if = {
limit = {
scope:puppet_or_actor != scope:rejected_betrothal_owner
}
scope:rejected_betrothal_owner = {
trigger_event = marriage_interaction.0001
}
}
else = {
hidden_effect = {
scope:rejecting_betrothed = {
break_betrothal = scope:rejected_betrothed
}
}
}
}
if = {
limit = {
has_proper_reason_to_break_betrothal_trigger = no
}
if = {
limit = {
scope:rejected_betrothed != scope:puppet_or_actor
scope:rejected_betrothed = {
any_close_or_extended_family_member = {
this != scope:rejected_betrothal_owner
count >= 1
}
}
}
if = {
limit = {
OR = {
scope:rejected_betrothed = {
has_been_promised_grand_wedding = yes
}
scope:rejecting_betrothed = {
has_been_promised_grand_wedding = yes
}
}
}
scope:rejected_betrothed = {
every_close_or_extended_family_member = {
limit = {
this != scope:rejected_betrothal_owner
}
custom = all_family_members
add_opinion = {
target = scope:puppet_or_actor
modifier = broke_betrothal_grand_wedding_opinion
opinion =
# … (cut here; the rest is in the file)As written in game/common/character_interactions/00_marriage_interactions.txt.
- Category
- Diplomatic actions
- In the menu
- under More…
- ID
break_betrothal_interaction
Source: game/common/character_interactions/00_marriage_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.