Scripted effect
break_grand_wedding_betrothal_effect
break_grand_wedding_betrothal_effect = yesgame/common/scripted_effects/00_marriage_interaction_effects.txt, line 1659 (220 lines). No parameters.
break_grand_wedding_betrothal_effect is a scripted effect in Crusader Kings III, written at line 1659 of its file. It takes no parameters: break_grand_wedding_betrothal_effect = yes. The game's script calls it in 10 places, among them Break Betrothal (interaction), Demand Child for the Cloister (interaction) and Grand Wedding: Betrothal Expired (event ep2_wedding.0001). Patch 1.20.1.2, from game/common/scripted_effects/00_marriage_interaction_effects.txt.
The comment above it in the file
EP2 - You promised a Grand Wedding and failed to deliver it
What it does
scope:rejected_betrothed.var:promised_grand_wedding_by:scope:rejecting_betrothed:break_betrothal = scope:rejected_betrothed
If
yields_alliance = { candidate = scope:rejecting_betrothed target = scope:rejected_betrothal_owner target_candidate = scope:rejected_betrothed }
Then
break_alliance = scope:rejected_betrothal_owner
scope:rejected_betrothed:If
is_eunuch_trigger = noscope:rejecting_betrothed:is_eunuch_trigger = no
None of these
scope:rejecting_betrothed:allowed_to_marry_same_sex_trigger = nosex_same_as = scope:rejected_betrothed
All of these
allowed_to_marry_same_sex_trigger = nosex_same_as = scope:rejecting_betrothed
Then
- Level of Fame -1
If
scope:rejected_betrothal_owner.house != scope:rejecting_betrothed.house
Then
scope:rejected_betrothal_owner.house.house_head:If
a check the game hides
Then
If a check the game hides passes: the same again (1 line)
house_feud_start_effect = { … }
Otherwise
house_feud_start_effect = { … }
Otherwise
scope:rejected_betrothal_owner.house:change_house_relation_effect = { … }
If
a check the game hides
Then
scope:rejecting_betrothed:- Gains the Nickname 'the Naysayer'
If
a check the game hides
Then
reverse_add_opinion = { target = scope:puppet_or_actor modifier = challenged_authority_opinion }
• the game's own tooltip text · ◦ our reading of the script line · code the script where neither exists
“They” is whatever it runs on (the scope it is called in). The scripted triggers and effects it calls link to their own pages; $PARAMETERS$ stay as written: each call fills them in.
The script as written (120 lines of game script)
break_grand_wedding_betrothal_effect = {
# Uniform the scopes between breaking a betrothal with the interaction and saying no at the altar
if = {
limit = {
exists = scope:spouse_1
exists = scope:spouse_2
}
scope:spouse_1 = { save_scope_as = rejecting_betrothed }
scope:spouse_2 = { save_scope_as = rejected_betrothed }
root = {
save_scope_as = actor
save_scope_as = puppet_or_actor
}
}
scope:rejecting_betrothed.var:promised_grand_wedding_by ?= { save_scope_as = promising_host }
# Save the offended party
scope:rejected_betrothed = {
if = {
limit = { matchmaker != scope:rejected_betrothed }
matchmaker = { save_scope_as = rejected_betrothal_owner }
}
else = { save_scope_as = rejected_betrothal_owner } #The betrothed accepted the wedding for themselves
}
# remove promise
scope:rejected_betrothed.var:promised_grand_wedding_by = {
clean_grand_wedding_betrothal_variables = yes
}
# First of all, the betrothal is broken
scope:rejecting_betrothed = { break_betrothal = scope:rejected_betrothed }
# If an alliance was connected to this, the alliance is broken
if = {
limit = {
yields_alliance = {
candidate = scope:rejecting_betrothed
target = scope:rejected_betrothal_owner
target_candidate = scope:rejected_betrothed
}
}
break_alliance = scope:rejected_betrothal_owner
}
# Opinion hit if there were no legitimate reason
scope:rejected_betrothed = {
if = {
limit = {
is_eunuch_trigger = no
scope:rejecting_betrothed = { is_eunuch_trigger = no }
NOR = {
scope:rejecting_betrothed = {
allowed_to_marry_same_sex_trigger = no
sex_same_as = scope:rejected_betrothed
}
AND = {
allowed_to_marry_same_sex_trigger = no
sex_same_as = scope:rejecting_betrothed
}
}
}
add_opinion = {
target = scope:puppet_or_actor
modifier = broke_betrothal_grand_wedding_opinion
opinion = -50
}
if = {
limit = { scope:rejecting_betrothed != scope:puppet_or_actor }
add_opinion = {
target = scope:rejecting_betrothed
modifier = broke_betrothal_grand_wedding_opinion
opinion = -50
}
}
if = {
limit = {
this != scope:rejected_betrothal_owner
scope:rejected_betrothal_owner != scope:puppet_or_actor
}
scope:rejected_betrothal_owner = {
add_opinion = {
target = scope:puppet_or_actor
modifier = broke_betrothal_grand_wedding_opinion
opinion = -50
}
if = {
limit = { scope:rejecting_betrothed != scope:puppet_or_actor }
add_opinion = {
target = scope:rejecting_betrothed
modifier = broke_betrothal_grand_wedding_opinion
opinion = -50
}
}
}
}
}
}
# Regular Break Betrothal has a standard loss of prestige, but we need more
add_prestige_level = -1
if = {
limit = {
OR = {
scope:rejected_betrothed = { highest_held_title_tier >= tier_empire }
scope:rejected_betrothal_owner = { highest_held_title_tier >= tier_empire }
}
}
add_prestige = monumental_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 }
}
}
add_prestige = massive_prestige_loss
}
else_if = {
limit = {
OR = {
scope:rejected_betrothed = { highest_held_title_tier = tier_duchy }As written in game/common/scripted_effects/00_marriage_interaction_effects.txt.
The first 120 of its 220 lines; the rest is in game/common/scripted_effects/00_marriage_interaction_effects.txt from line 1659.
Where it is used
Every place in common/, events/ and history/ that calls break_grand_wedding_betrothal_effect.
Character interactions (2)
Events (3)
- Grand Wedding: Betrothal Expired
ep2_wedding.0001 - Wedding Canceled
ep2_wedding.0152 - Wedding Canceled
ep2_wedding.0153
Source: game/common/scripted_effects/00_marriage_interaction_effects.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.