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

Interaction · Diplomatic actions

Negotiate Alliance

No costAccepted automatically in some cases; otherwise the AI weighs it

Use existing ties with the recipient's family to forge an Alliance with them

What you need

You

To send it

  • Is a ruler
  • One of these

    • Cannot play landless rulers without having an Estate
    • or

      If

      • One of these

        • Is landed
        • or

          Your Government is a Theocratic-type Government

      Then

    • or

      All of these

      • Your liege:
        • All of these

          • Holds China
          • Government is Celestial
          • Their government has the government uses ministry budget flag
      • One of these

    • or

      Has “laamp transition” (a variable the game's script sets)
  • Is not at war with the target
  • Highest held Title is less than Hegemony Rank
  • One of these

    • Has the Defensive Negotiations Perk
    • or

      Is the target’s spouse
    • or

      Is a parent of the target
    • or

      is_grandparent_of = scope:recipient
    • or

      is_great_grandparent_of = scope:recipient
    • or

      Is a child of the target
    • or

      Is a grandchild of the target
    • or

      is_great_grandchild_of = scope:recipient
    • or

      is_uncle_or_aunt_of = scope:recipient
    • or

      is_nibling_of = scope:recipient
    • or

      Is a sibling of the target
    • or

      Has the opinion “Blood Brotherhood in Close Family” of the target
    • or

      You are married to their child, parent, sibling, grandchild, grandparent, uncle, aunt, niece or nephew
    • or

      their child, parent or sibling is married to a child, parent or sibling of …
    • or

      An eternal oath of friendship exists
    • or

      Have a Friendly House Relation
  • Also needed: not imprisoned

To see it in the menu

  • If played by the AI: Is at not War
  • One of these

    • Highest held Title is at least 2 Rank
    • or

      You: Is played by a person
  • Is a ruler
  • One of these

    • All of these

      • One of these

        • Any parent: Is the target
        • or

          Any sibling: Is the target
        • or

          Any child: Is the target
        • or

          Any spouse: Is the target
        • or

          Any parent › Any sibling: Is the target
        • or

          Any parent › Any sibling › Any child: Is the target
        • or

          Any sibling › Any child: Is the target
        • or

          All of these

          • None of these

            • Any sibling: Is the target
          • Any parent › Any child: Is the target
        • or

          Any spouse:
          • One of these

            • Is close family of the target
            • or

              is_nibling_of = scope:recipient
            • or

              is_uncle_or_aunt_of = scope:recipient
        • or

          The character you target › Any spouse:
          • One of these

            • Is close family of the root character
            • or

              is_nibling_of = scope:root_character
            • or

              is_uncle_or_aunt_of = scope:root_character
        • or

          Any close family member:
          • One of these

            • Is a parent of the root character
            • or

              Is a child of the root character
            • or

              Is a sibling of the root character
          • Any spouse:
            • One of these

              • Is a parent of the target
              • or

                Is a child of the target
              • or

                Is a sibling of the target
    • or

      All of these

      • One of these

        • Has the target as friend
        • or

          Has the target as best friend
      • One of these

        • You › Any memory:
          • memory_type = hostage_oath_of_friendship
          • has_memory_participant = scope:recipient
        • or

          The character you target › Any memory:
          • memory_type = hostage_oath_of_friendship
          • has_memory_participant = scope:puppet_or_actor
    • or

      Has the opinion “Blood Brotherhood in Close Family” of the target
    • or

      Your house:
      • Has you as house head
      • Any house relation:
        • Any relation house:
          • exists = house_head
          • scope:recipient = house_head
        • has_house_relation_parameter = unlocks_house_head_negotiate_alliance

The character you target

To send it

  • Is a ruler
  • One of these

    • Cannot play landless rulers without having an Estate
    • or

      If

      • One of these

        • Is landed
        • or

          Government is a Theocratic-type Government

      Then

    • or

      All of these

      • Their liege:
        • All of these

          • Holds China
          • Government is Celestial
          • Their government has the government uses ministry budget flag
      • One of these

    • or

      Has “laamp transition” (a variable the game's script sets)
  • Highest held Title is less than Hegemony Rank
  • Also needed: not imprisoned

To see it in the menu

  • Is not allied to you
  • Is a ruler

Negotiate Alliance is a diplomatic character interaction in Crusader Kings III. You need: Is a ruler, Is not imprisoned, Is not at war with the target and 1 more. The character you target needs: Is a ruler, Is not imprisoned and Highest held Title is less than Hegemony Rank. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include You … the recipient's lover (+25), You … the recipient's friend (+25), Loyal (+20) and 26 more. Patch 1.20.1.2, from game/common/character_interactions/00_alliance.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Negotiate Alliance in CK3?
You: Is a ruler, Is not imprisoned, Is not at war with the target and Highest held Title is less than Hegemony Rank. The character you target: Is a ruler, Is not imprisoned and Highest held Title is less than Hegemony Rank. (patch 1.20.1.2)
How do I get the AI to accept Negotiate Alliance?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Difference in Rank, Difference in Rank, You … the recipient's lover +25, You … the recipient's friend +25, … Opinion of …, … Opinion of …, Loyal +20, Trusting +20, Craven +5, Paranoid -20, Arrogant -20, Ambitious -20, Disloyal -40, Fickle -10, The recipient is your Rival -100, The recipient is your Nemesis -300, Level of Splendor of the … Dynasty -5, Level of Splendor of the … Dynasty, The recipient's Faith Differs From …, You … their Liege +20, Difference in Military Strength, Is a Claimant, You … a Claimant +25, Same House +15, Declared War on me -100, You are at War -50, Astute Diplomats Tradition +50, House … Feud with House … -25, Your current amount of Alliances, The recipient's current amount of Alliances, Intimidated by you, Terrified of you, Intimidated by you, Terrified of you, Exerting Influence (based on your Level of Influence), We are Close Family +20, We are Extended Family +10, Connection is through non-Close Family -20, You … the recipient's lover +25, You … the recipient's friend +25, Is your heir, Blood Brotherhood linking your and the recipient's families +20, Wants to increase House Unity, Opposing Struggle Side -100, Your low Legitimacy, Your high Legitimacy, Noble Family House Head +750 and Praised my hunting +10.

Will they accept?

Accepted automatically when:

  • They use their Hook on …

Otherwise the AI adds these up and accepts above zero. Reasons in italics are the script's, with no label in the game.

ReasonAmount
Base0
Difference in Rank
when
  • tier_difference = { target = scope:recipient value >= 1 }
varies
Difference in Rank
when
  • tier_difference = { target = scope:recipient value <= -1 }
varies
You … the recipient's lover
when
  • The character you target: Has you as lover
+25
You … the recipient's friend
when
  • The character you target: Has you as friend
+25
… Opinion of …
when
  • min = 0
varies
… Opinion of …
when
  • max = 0
varies
Loyal
when
+20
Trusting
when
+20
Craven
when
+5
Paranoid
when
-20
Arrogant
when
-20
Ambitious
when
-20
Disloyal
when
-40
Fickle
when
-10
The recipient is your Rival
when
  • The character you target:
    • Has you as rival
    • Does not have you as nemesis
-100
The recipient is your Nemesis
when
  • The character you target: Has you as nemesis
-300
Level of Splendor of the … Dynasty
when
  • Is a member of a Dynasty
  • Your dynasty is not the target’s
  • Your dynasty:
    • dynasty_prestige_level = 0
-5
Level of Splendor of the … Dynasty
when
varies
The recipient's Faith Differs From …
when
  • The target’s rite:
    • rite_hostility_level = { target = scope:actor.rite value > faith_fully_accepted_level }
  • NOT = { scope:recipient.ai_zeal <= -50 }
varies
You … their Liege
when
  • The character you target: Is a vassal (or below) of you
+20
Difference in Military Strengthvaries
Is a Claimant
when
  • The character you target:
    • Any claim:
      • holder = scope:actor
    • Is not an heir of you
    • Ai greed more than -25
varies
You … a Claimant
when
  • Any claim:
    • holder = scope:recipient
+25
Same House
when
  • The target’s house is your
  • The character you target:
    • None of these

      • Any claim:
        • holder = scope:actor
+15
Declared War on me
when
  • The character you target: Has the opinion “Declared War” of you
-100
You are at War
when
  • Is at War
  • Is not a vassal (or below) of the target
  • Is not the liege (or above) of the target
-50
Astute Diplomats Tradition
when
+50
A scripted reason
when
  • Is played by the AI
  • Is a vassal (or below) of the target
  • Any held title:
    • Title tier exactly County
    • de_jure_liege = scope:actor.primary_title.title_capital_county.de_jure_liege
  • The character you target: Is played by the AI
-5,000
House … Feud with House …
when
  • The character you target:
    • One of these

      • Their house:
        • this != scope:actor.house
        • has_house_relation_with = scope:actor.house
        • Any house relation:
          • has_house_relation_level = feud
          • Any relation house:
            • scope:actor.house = this
      • or

        exists = scope:return_feud_as_true_for_debug
-25
Your current amount of Alliances
when
  • Ally (at least 2):
  • None of these

    • The character you target:
      • Government is Clan
      • Is a vassal (or below) of you
varies
The recipient's current amount of Alliances
when
  • None of these

    • The character you target:
      • Government is Clan
      • Is a vassal (or below) of you
  • The character you target: Ally (at least 2):
varies
Intimidated by you
when
  • The character you target:
    • Is a vassal (or below) of you
    • has_dread_level_towards = { target = scope:actor level = 1 }
intimidated_reason_value
Terrified of you
when
  • The character you target:
    • Is a vassal (or below) of you
    • has_dread_level_towards = { target = scope:actor level = 2 }
cowed_reason_value
Intimidated by you
when
  • The character you target:
    • Is not a vassal (or below) of you
    • has_dread_level_towards = { target = scope:actor level = 1 }
intimidated_external_reason_value
Terrified of you
when
  • The character you target:
    • Is not a vassal (or below) of you
    • has_dread_level_towards = { target = scope:actor level = 2 }
cowed_external_reason_value
Exerting Influence (based on your Level of Influence)
when
  • The option “influence” is chosen
varies
We are Close Family
when
  • The character you target: Is close family of you
+20
We are Extended Family
when
  • The character you target:
    • Is not close family of you
    • Is extended family of you
+10
Connection is through non-Close Family
when
  • The character you target:
    • Is not family of you
    • Any spouse:
      • Is not close family of you
      • Is extended family of you
-20
You … the recipient's lover
when
  • The character you target: Has you as lover
+25
You … the recipient's friend
when
  • The character you target: Has you as friend
+25
Is your heir
when
  • tier_difference = { target = scope:recipient value > 0 }
  • The character you target: Is an heir of you
varies
Blood Brotherhood linking your and the recipient's families
when
+20
Wants to increase House Unity
when
varies
Opposing Struggle Side
when
-100
Your low Legitimacy
when
  • One of these

    • has_legitimacy_flag = reduced_alliance_acceptance
    • or

      has_legitimacy_flag = very_reduced_alliance_acceptance
    • or

      has_legitimacy_flag = massively_reduced_alliance_acceptance
varies
Your high Legitimacy
when
  • One of these

    • has_legitimacy_flag = increased_alliance_acceptance
    • or

      has_legitimacy_flag = very_increased_alliance_acceptance
    • or

      has_legitimacy_flag = extra_increased_alliance_acceptance
varies
Noble Family House Head
when
  • If

    a check the game hides

    Then

    • Your house: Has the house check as house head
  • scope:recipient.house ?= this.house
  • Any held title: The … is a Noble Family Title
+750
Praised my hunting
when
  • The character you target: Praised hunting alliance var is scope:puppet or actor
+10
Acceptance (ai_accept) (182 lines of game script)
base = 0
negotiate_alliance_interaction_ai_acceptance = yes
modifier = {
	add = 20
	scope:recipient = {
		is_close_family_of = scope:puppet_or_actor
	}
	desc = CLOSE_FAMILY_REASON
}
modifier = {
	add = 10
	scope:recipient = {
		NOT = {
			is_close_family_of = scope:puppet_or_actor
		}
		is_extended_family_of = scope:puppet_or_actor
	}
	desc = EXTENDED_FAMILY_REASON
}
modifier = {
	add = -20
	scope:recipient = {
		NOT = {
			is_close_or_extended_family_of = scope:puppet_or_actor
		}
		any_spouse = {
			NOT = {
				is_close_family_of = scope:puppet_or_actor
			}
			is_extended_family_of = scope:puppet_or_actor
		}
	}
	desc = DISTANT_FAMILY_CONNECTION_REASON
}
modifier = {
	scope:recipient = {
		has_relation_lover = scope:puppet_or_actor
	}
	add = {
		value = 25
	}
	desc = WE_ARE_LOVERS
}
modifier = {
	scope:recipient = {
		has_relation_friend = scope:puppet_or_actor
	}
	add = {
		value = 25
	}
	desc = WE_ARE_FRIENDS
}
modifier = {
	scope:recipient = {
		is_heir_of = scope:puppet_or_actor
	}
	scope:puppet_or_actor = {
		tier_difference = {
			target = scope:recipient
			value > 0
		}
	}
	add = {
		value = 10
		if = {
			limit = {
				scope:puppet_or_actor = {
					player_heir = scope:recipient
				}
			}
			add = 10
		}
	}
	desc = IS_HEIR_REASON
}
modifier = {
	add = 20
	desc = FAMILY_BLOOD_BROTHERHOOD_REASON
	scope:puppet_or_actor = {
		has_opinion_modifier = {
			modifier = blood_brother_close_family_opinion
			target = scope:recipient
		}
	}
}
evaluate_action_increasing_house_unity = {
	VALUE = 100
}
fp3_struggle_resist_allied_wars_modifier = yes
modifier = {
	desc = LOW_LEGITIMACY_REASON
	scope:puppet_or_actor = {
		OR = {
			has_legitimacy_flag = reduced_alliance_acceptance
			has_legitimacy_flag = very_reduced_alliance_acceptance
			has_legitimacy_flag = massively_reduced_alliance_acceptance
		}
	}
	add = {
		value = 0
		if = {
			limit = {
				scope:puppet_or_actor = {
					has_legitimacy_flag = reduced_alliance_acceptance
				}
			}
			add = -25
		}
		if = {
			limit = {
				scope:puppet_or_actor = {
					has_legitimacy_flag = very_reduced_alliance_acceptance
				}
			}
			add = -50
		}
		if = {
			limit = {
				scope:puppet_or_actor = {
					has_legitimacy_flag = massively_reduced_alliance_acceptance
				}
			}
			add = -100
		}
	}
}
modifier = {
	desc = HIGH_LEGITIMACY_REASON
	scope:puppet_or_actor = {
		OR = {
			has_legitimacy_flag = increased_alliance_acceptance
			has_legitimacy_flag = very_increased_alliance_acceptance
			has_legitimacy_flag = extra_increased_alliance_acceptance
		}
	}
	add = {
		value = 0
		if = {
			limit = {
				scope:puppet_or_actor = {
					has_legitimacy_flag = increased_alliance_acceptance
				}
			}
			add = 10
		}
		if = {
			limit = {
				scope:puppet_or_actor = {
					has_legitimacy_flag = very_increased_alliance_acceptance
				}
			}
			add = 25
		}
		if = {
			limit = {
				scope:puppet_or_actor = {
					has_legitimacy_flag = extra_increased_alliance_acceptance
				}
			}
			add = 50
		}
	}
}
modifier = {
	add = 750
	scope:puppet_or_actor = {
		is_house_head = yes
		scope:recipient.house ?= this.house
		any_held_title = {
			is_noble_family_title = yes
		}
	}
	desc = JAPANESE_HOUSE_HEAD_ALLIANCE_REASON
}
modifier = {
	add = 10
	desc = pam_praised_hunting_alliance_accept_reason
	scope:recipient = {
		exists = var:pam_praised_hunting_alliance_var
		var:pam_praised_hunting_alliance_var = scope:puppet_or_actor
	}
}

As written in game/common/character_interactions/00_alliance.txt.

What happens

If they accept

  • Event char_interaction.0235
  • Stress and fulfillment impact: by trait: Shy +20
  • If

    • You use a Hook
    • Has a usable Hook on the target

    Then

    • Use a Hook on the target
  • If

    • The option “influence” is chosen

    Then

    • Influence -100
  • The character you target: Enters a mutual Alliance with …
  • If

    • You: Government is Clan
    • The character you target: Government is Clan
    • Your house is the target’s
    • If

      • You are not the target

      Then

      • You are not the target

    Then

    • Your house:
      • add_unity_value = { … }

    Else if

    • No
    • You: Government is Clan
    • Your house: Has you as house head
    • One of these

      • All of these

        • exists = scope:recipient.house
        • Your house is not the target’s
      • or

        The character you target: Is Lowborn

    Then

    • Your house:
      • add_unity_value = { … }

When it is accepted automatically

If they refuse

  • Event char_interaction.0236
  • Opinion: Refused Alliance
  • If

    • You: Government is Clan
    • The character you target: Government is Clan
    • Your house is the target’s
    • If

      • You are not the target

      Then

      • You are not the target

    Then

    • Your house:
      • add_unity_value = { … }

    Else if

    • No
    • You: Government is Clan
    • Your house: Has you as house head
    • One of these

      • All of these

        • exists = scope:recipient.house
        • Your house is not the target’s
      • or

        The character you target: Is Lowborn

    Then

    • Your house:
      • add_unity_value = { … }

Options when sending

  • Use a Hook
  • Use Influence

Events it fires: char_interaction.0235, char_interaction.0236, char_interaction.0234

• 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) (42 lines of game script)
is_available = trigger_if = {
	limit = {
		is_ai = yes
	}
	is_at_war = no
}
is_shown = scope:puppet_or_actor ?= {
	OR = {
		highest_held_title_tier >= 2
		scope:actor = {
			is_ai = no
		}
	}
	is_ruler = yes
	OR = {
		is_any_family_relation_or_spouse_trigger = {
			CHARACTER = scope:recipient
		}
		hostage_oath_of_friendship_trigger = yes
		has_opinion_modifier = {
			modifier = blood_brother_close_family_opinion
			target = scope:recipient
		}
		house ?= {
			house_head ?= scope:puppet_or_actor
			any_house_relation = {
				any_relation_house = {
					exists = house_head
					scope:recipient = house_head
				}
				has_house_relation_parameter = unlocks_house_head_negotiate_alliance
			}
		}
	}
}
scope:recipient = {
	this != scope:puppet_or_actor
	NOT = {
		is_allied_to = scope:puppet_or_actor
	}
	is_ruler = yes
}

As written in game/common/character_interactions/00_alliance.txt.

Can be sent when (is_valid…) (106 lines of game script)
scope:recipient = {
	is_playable_character = yes
	is_imprisoned = no
	highest_held_title_tier < tier_hegemony
}
scope:puppet_or_actor ?= {
	is_playable_character = yes
	is_imprisoned = no
	NOT = {
		is_at_war_with = scope:recipient
	}
	highest_held_title_tier < tier_hegemony
	OR = {
		has_perk = defensive_negotiations_perk
		is_spouse_of = scope:recipient
		is_parent_of = scope:recipient
		is_grandparent_of = scope:recipient
		is_great_grandparent_of = scope:recipient
		is_child_of = scope:recipient
		is_grandchild_of = scope:recipient
		is_great_grandchild_of = scope:recipient
		is_uncle_or_aunt_of = scope:recipient
		is_nibling_of = scope:recipient
		is_sibling_of = scope:recipient
		has_opinion_modifier = {
			modifier = blood_brother_close_family_opinion
			target = scope:recipient
		}
		custom_description = {
			text = rulers_family_is_married_to_other_ruler_trigger
			subject = scope:recipient
			object = scope:puppet_or_actor
			scope:recipient = {
				any_spouse = {
					OR = {
						is_close_family_of = scope:puppet_or_actor
						is_nibling_of = scope:puppet_or_actor
						is_uncle_or_aunt_of = scope:puppet_or_actor
					}
				}
			}
		}
		custom_description = {
			text = rulers_family_is_married_to_other_ruler_trigger
			subject = scope:puppet_or_actor
			object = scope:recipient
			any_spouse = {
				OR = {
					is_close_family_of = scope:recipient
					is_nibling_of = scope:recipient
					is_uncle_or_aunt_of = scope:recipient
				}
			}
		}
		custom_description = {
			text = rulers_child_parent_sibling_is_married_to_other_rulers_trigger
			subject = scope:recipient
			object = scope:puppet_or_actor
			any_close_family_member = {
				OR = {
					is_parent_of = scope:puppet_or_actor
					is_child_of = scope:puppet_or_actor
					is_sibling_of = scope:puppet_or_actor
				}
				any_spouse = {
					OR = {
						is_parent_of = scope:recipient
						is_child_of = scope:recipient
						is_sibling_of = scope:recipient
					}
				}
			}
		}
		custom_description = {
			text = hostage_oath_of_friendship_trigger
			subject = scope:recipient
			object = scope:puppet_or_actor
			hostage_oath_of_friendship_trigger = yes
		}
		custom_tooltip = {
			text = house_relation_alliance_trigger
			house ?= {
				house_head ?= scope:puppet_or_actor
				any_house_relation = {
					any_relation_house = {
						exists = house_head
						scope:recipient = house_head
					}
					has_house_relation_parameter = unlocks_house_head_negotiate_alliance
				}
			}
		}
	}
}
custom_description = {
	text = has_already_rejected_renegotiation
	subject = scope:recipient
	NOT = {
		scope:puppet_or_actor = {
			has_opinion_modifier = {
				modifier = refused_alliance_opinion
				target = scope:recipient
			}
		}
	}
}

As written in game/common/character_interactions/00_alliance.txt.

Effects (on_send, on_accept, on_decline) (225 lines of game script)
on_accept = scope:puppet_or_actor = {
	trigger_event = char_interaction.0235
	stress_and_fulfillment_impact = {
		shy = minor_stress_impact_gain
	}
	if = {
		limit = {
			scope:hook = yes
			has_usable_hook = scope:recipient
		}
		use_hook = scope:recipient
	}
	if = {
		limit = {
			scope:influence = yes
		}
		change_influence = major_influence_loss
	}
}
scope:recipient = {
	custom_tooltip = negotiate_alliance_effect_recipient_tooltip
}
hidden_effect = {
	if = {
		limit = {
			scope:puppet_or_actor = {
				OR = {
					is_spouse_of = scope:recipient
					is_child_of = scope:recipient
					is_parent_of = scope:recipient
					is_sibling_of = scope:recipient
					is_grandparent_of = scope:recipient
					is_great_grandparent_of = scope:recipient
					is_grandchild_of = scope:recipient
					is_great_grandchild_of = scope:recipient
					is_uncle_or_aunt_of = scope:recipient
					is_nibling_of = scope:recipient
				}
			}
		}
		scope:puppet_or_actor = {
			create_alliance = {
				target = scope:recipient
				allied_through_owner = scope:puppet_or_actor
				allied_through_target = scope:recipient
			}
		}
	}
	else_if = {
		limit = {
			scope:recipient = {
				any_spouse = {
					OR = {
						is_close_family_of = scope:puppet_or_actor
						is_nibling_of = scope:puppet_or_actor
						is_uncle_or_aunt_of = scope:puppet_or_actor
					}
				}
			}
		}
		scope:recipient = {
			random_spouse = {
				limit = {
					OR = {
						is_close_family_of = scope:puppet_or_actor
						is_nibling_of = scope:puppet_or_actor
						is_uncle_or_aunt_of = scope:puppet_or_actor
					}
				}
				save_scope_as = recipient_spouse
			}
		}
		scope:puppet_or_actor = {
			create_alliance = {
				target = scope:recipient
				allied_through_owner = scope:recipient_spouse
				allied_through_target = scope:recipient
			}
		}
	}
	else_if = {
		limit = {
			scope:puppet_or_actor = {
				any_spouse = {
					OR = {
						is_close_family_of = scope:recipient
						is_nibling_of = scope:recipient
						is_uncle_or_aunt_of = scope:recipient
					}
				}
			}
		}
		scope:puppet_or_actor = {
			random_spouse = {
				limit = {
					OR = {
						is_close_family_of = scope:recipient
						is_nibling_of = scope:recipient
						is_uncle_or_aunt_of = scope:recipient
					}
				}
				save_scope_as = actor_spouse
			}
		}
		scope:puppet_or_actor = {
			create_alliance = {
				target = scope:recipient
				allied_through_owner = scope:puppet_or_actor
				allied_through_target = scope:actor_spouse
			}
		}
	}
	else_if = {
		limit = {
			scope:puppet_or_actor = {
				any_close_family_member = {
					OR = {
						is_child_of = scope:puppet_or_actor
						is_parent_of = scope:puppet_or_actor
						is_sibling_of = scope:puppet_or_actor
					}
					any_spouse = {
						OR = {
							is_child_of = scope:recipient
							is_parent_of = scope:recipient
							is_sibling_of = scope:recipient
						}
					}
				}
			}
		}
		scope:puppet_or_actor = {
			random_close_family_member = {
				limit = {
					OR = {
						is_child_of = scope:puppet_or_actor
						is_parent_of = scope:puppet_or_actor
						is_sibling_of = scope:puppet_or_actor
					}
					any_spouse = {
						OR = {
							is_child_of = scope:recipient
							is_parent_of = scope:recipient
							is_sibling_of = scope:recipient
						}
					}
				}
				save_scope_as = actor_spouse
				random_spouse = {
					limit = {
						OR = {
							is_child_of = scope:recipient
							is_parent_of = scope:recipient
							is_sibling_of = scope:recipient
						}
					}
					save_scope_as = recipient_spouse
				}
			}
		}
		scope:puppet_or_actor = {
			create_alliance = {
				target = scope:recipient
				allied_through_owner = scope:actor_spouse
				allied_through_target = scope:recipient_spouse
			}
		}
	}
	else_if = {
		limit = {
			scope:puppet_or_actor = {
				has_perk = defensive_negotiations_perk
			}
		}
		scope:puppet_or_actor = {
			create_alliance = {
				target = scope:recipient
				allied_through_owner = scope:puppet_or_actor
				allied_through_target = scope:recipient
			}
		}
		scope:recipient = {
			add_opinion = {
				modifier = perk_negotiated_alliance_opinion
				target = scope:puppet_or_actor
			}
		}
	}
	else_if = {
		limit = {
			scope:puppet_or_actor = {
				hostage_oath_of_friendship_trigger = yes
			}
		}
		scope:puppet_or_actor = {
			create_alliance = {
				target = scope:recipient
				allied_through_owner = scope:puppet_or_actor
				allied_through_target = scope:recipient
			}
		}
	}
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:puppet_or_actor
	TARGET = scope:recipient
	VALUE = minor_unity_gain
	DESC = clan_unity_alliance.desc
	REVERSE_NON_HOUSE_TARGET = no
}
on_decline = scope:puppet_or_actor = {
	trigger_event = char_interaction.0236
}
scope:puppet_or_actor = {
	add_opinion = {
		modifier = refused_alliance_opinion
		target = scope:recipient
	}
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:puppet_or_actor
	TARGET = scope:recipient
	VALUE = minor_unity_loss
	DESC = clan_unity_all
# … (cut here; the rest is in the file)

As written in game/common/character_interactions/00_alliance.txt.

Category
Diplomatic actions
In the menu
under More…
ID
negotiate_alliance_interaction

Source: game/common/character_interactions/00_alliance.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.

Spotted a mistake on this page?