CK3 DatabaseCrusader Kings III · 1.20.1.2 “Crozier” · unofficial
Silk & Silverout Tue, Nov 17What's free, what needs the DLC, price →

Scripted effect

break_grand_wedding_betrothal_effect

break_grand_wedding_betrothal_effect = yes

game/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:
  • Level of Fame -1
  • If

    • One of these

      • scope:rejected_betrothed: Highest held Title is at least Empire Rank
      • or

        scope:rejected_betrothal_owner: Highest held Title is at least Empire Rank

    Then

    Else if

    • One of these

    Then

    Else if

    • One of these

      • scope:rejected_betrothed: Highest held Title is exactly Duchy Rank
      • or

        scope:rejected_betrothal_owner: Highest held Title is exactly Duchy Rank

    Then

    Else if

    • One of these

    Then

    Else if

    • One of these

    Then

    Otherwise

  • If

    • scope:rejected_betrothal_owner.house != scope:rejecting_betrothed.house

    Then

  • 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.

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.

Spotted a mistake on this page?