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

Propose Alliance

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

Use strategic diplomacy to forge an Alliance with the recipient — not with blood, but with words!

What you need

You

To send it

  • Your government is not Adventurer
  • You can have one proposed Alliance active
  • 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 at not War
  • Also needed: not imprisoned

To see it in the menu

  • If played by the AI:
    • Is at not War
    • Ally (less than 2):
  • Has the Defensive Negotiations Perk
  • Your government is not Adventurer
  • Your government is not unplayable
  • NOT = { is_character_interaction_shown = { recipient = scope:recipient interaction = negotiate_alliance_interaction } }

The character you target

To send it

  • Is not the liege (or above) of you
  • Is not a vassal (or below) of you
  • 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)
  • Is at not War
  • Also needed: not imprisoned

To see it in the menu

  • Is not allied to you
  • Is not the liege (or above) of you
  • Is not a vassal (or below) of you
  • Their government is not unplayable
  • Is a ruler
  • primary_title.tier > tier_barony

Propose Alliance is a diplomatic character interaction in Crusader Kings III. You need: Your government is not Adventurer, You can have one proposed Alliance active, Is a ruler and 2 more. The character you target needs: Is not the liege (or above) of you, Is not a vassal (or below) of you, Is a ruler and 2 more. 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 17 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 Propose Alliance in CK3?
You: Your government is not Adventurer, You can have one proposed Alliance active, Is a ruler, Is at not War and Is not imprisoned. The character you target: Is not the liege (or above) of you, Is not a vassal (or below) of you, Is a ruler, Is at not War and Is not imprisoned. (patch 1.20.1.2)
How do I get the AI to accept Propose 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) and Wants to increase House Unity.

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
Base-25
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
Wants to increase House Unity
when
varies
Acceptance (ai_accept) (5 lines of game script)
base = -25
negotiate_alliance_interaction_ai_acceptance = yes
evaluate_action_increasing_house_unity = {
	VALUE = 10
}

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

What happens

If they accept

  • … and I enter a mutual Alliance
  • Event char_interaction.0235
  • create_alliance = { target = scope:recipient allied_through_owner = scope:puppet_or_actor allied_through_target = scope:recipient }
  • Stress and fulfillment impact: by trait: Shy +20
  • If

    Then

    • Use a Hook on the target
  • If

    • The option “influence” is chosen

    Then

    • Influence -100
  • The character you target: Opinion: Alliance Deal
  • 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) (31 lines of game script)
is_available = trigger_if = {
	limit = {
		is_ai = yes
	}
	is_at_war = no
	any_ally = {
		count < 2
	}
}
is_shown = scope:puppet_or_actor ?= {
	has_perk = defensive_negotiations_perk
	is_landless_adventurer = no
	NOR = {
		government_has_flag = government_is_herder
		is_character_interaction_shown = {
			recipient = scope:recipient
			interaction = negotiate_alliance_interaction
		}
	}
}
scope:recipient = {
	NOR = {
		this = scope:puppet_or_actor
		is_allied_to = scope:puppet_or_actor
		target_is_vassal_or_below = scope:puppet_or_actor
		target_is_liege_or_above = scope:puppet_or_actor
		government_has_flag = government_is_herder
	}
	is_ruler = yes
	primary_title.tier > tier_barony
}

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

Can be sent when (is_valid…) (56 lines of game script)
scope:puppet_or_actor ?= {
	is_landless_adventurer = no
}
scope:recipient = {
	NOT = {
		target_is_vassal_or_below = scope:puppet_or_actor
	}
	NOT = {
		target_is_liege_or_above = scope:puppet_or_actor
	}
}
custom_description = {
	text = already_has_an_alliance_deal
	subject = scope:recipient
	scope:puppet_or_actor = {
		NOT = {
			any_ally = {
				has_opinion_modifier = {
					modifier = perk_negotiated_alliance_opinion
					target = scope:puppet_or_actor
				}
			}
		}
	}
}
scope:recipient = {
	is_playable_character = yes
	is_at_war = no
	is_imprisoned = no
}
scope:puppet_or_actor = {
	is_playable_character = yes
	is_at_war = no
	is_imprisoned = no
}
custom_description = {
	text = has_already_rejected_renegotiation
	subject = scope:recipient
	scope:puppet_or_actor = {
		NOT = {
			has_opinion_modifier = {
				modifier = refused_alliance_opinion
				target = scope:recipient
			}
		}
	}
}
custom_description = {
	text = has_sent_interaction_already
	subject = scope:recipient
	scope:puppet_or_actor = {
		NOT = {
			has_pending_interaction_of_type = perk_alliance_interaction
		}
	}
}

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

Effects (on_send, on_accept, on_decline) (60 lines of game script)
on_accept = save_scope_value_as = {
	name = perk_alliance_interaction
	value = yes
}
scope:puppet_or_actor = {
	custom_tooltip = negotiate_alliance_effect_tooltip
	trigger_event = char_interaction.0235
	create_alliance = {
		target = scope:recipient
		allied_through_owner = scope:puppet_or_actor
		allied_through_target = scope:recipient
	}
	stress_and_fulfillment_impact = {
		shy = minor_stress_impact_gain
	}
	if = {
		limit = {
			scope:hook = yes
		}
		use_hook = scope:recipient
	}
	if = {
		limit = {
			scope:influence = yes
		}
		change_influence = major_influence_loss
	}
}
scope:recipient = {
	add_opinion = {
		modifier = perk_negotiated_alliance_opinion
		target = scope:puppet_or_actor
	}
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:puppet_or_actor
	TARGET = scope:recipient
	VALUE = medium_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_alliance_refusal.desc
	REVERSE_NON_HOUSE_TARGET = no
}
on_auto_accept = scope:recipient = {
	trigger_event = char_interaction.0234
}

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

Category
Diplomatic actions
In the menu
under More…
ID
perk_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?