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

Bargain Fealty

No costThe AI weighs it

This special Interaction is available to Involved Rulers who are in a defensive War. The War Leader asks a neighboring higher-Rank Ruler to join their war in exchange for becoming their Vassal.

What you need

You

To send it

  • Must be Primary Defender in a War that is not using the Border Raid or Struggle Clash Casus Bellis
  • Any character struggle:
    • involvement = involved
    • has_struggle_phase_parameter = unlocks_bargain_fealty_interaction

To see it in the menu

  • Is at War
  • Any character struggle:
    • involvement = involved
    • is_struggle_type = iberian_struggle
  • If played by the AI: Is not imprisoned
  • Is an Independent Ruler
  • Any character war:
    • Has you as the war's defender
    • Is war leader in the war against you
  • If

    • The character you target: Is not a landless ruler

    Then

    • tier_difference = { target = scope:recipient value <= -1 }

    Otherwise

    • tier_difference = { target = scope:recipient value <= -2 }

The character you target

To send it

  • … must be a neighboring Top Liege
  • Is not at war with you

To see it in the menu

  • Their primary title:
    • is_mercenary_company = no

Which character you can pick

  • The target:
  • If

    • The target: Has you as the war's attacker

    Then

    • The target:
      • primary_defender = { save_temporary_scope_as = primary_enemy }

    Otherwise

    • The target:
      • primary_attacker = { save_temporary_scope_as = primary_enemy }

Bargain Fealty is a diplomatic character interaction in Crusader Kings III. You need: Must be Primary Defender in a War that is not using the Border Raid or Struggle Clash Casus Bellis. The character you target needs: Is not at war with you. The AI weighs it. Reasons the AI weighs include You is heavily outnumbered (-75), Your Culture is different to the recipient's (-10), Your Faith is different to the recipient's (-15) and 3 more. Patch 1.20.1.2, from game/common/character_interactions/03_fp2_interactions.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Bargain Fealty in CK3?
You: Must be Primary Defender in a War that is not using the Border Raid or Struggle Clash Casus Bellis. The character you target: Is not at war with you. (patch 1.20.1.2)
How do I get the AI to accept Bargain Fealty?
The AI weighs it. Its reasons: You is heavily outnumbered -75, Your Culture is different to the recipient's -10, Your Faith is different to the recipient's -15, You is the recipient's De Jure Vassal +25, Your is of the recipient's Dynasty +25, Your Realm is too large -50, … Opinion of …, Greed and Boldness.

Will they accept?

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
You is heavily outnumbered
when
  • The target: War attacker total strength halved more than recipient.max military strength
-75
Your Culture is different to the recipient's
when
  • Your culture is not the target’s
-10
Your Faith is different to the recipient's
when
  • Your faith is not the target’s
-15
You is the recipient's De Jure Vassal
when
  • Any held title:
    • target_is_de_jure_liege_or_above = scope:recipient.primary_title
+25
Your is of the recipient's Dynasty
when
  • Your dynasty is the target’s
+25
Your Realm is too large
when
  • root.realm_size >= fp2_bargain_fealty_half_realm_size_value
-50
… Opinion of …varies
Their personality (AI values: boldness 1)varies
Their personality (AI values: greed 1)varies
Greed
when
  • Ai greed at least 1
varies
Boldness
when
  • NOT = { ai_boldness = 0 }
varies
Acceptance (ai_accept) (73 lines of game script)
base = 25
modifier = {
	add = -75
	exists = scope:target
	scope:target = {
		fp2_bargain_fealty_war_outnumbered_trigger = yes
	}
	desc = BF_AI_OUTNUMBERED_REASON
}
modifier = {
	add = -10
	scope:actor.culture != scope:recipient.culture
	desc = BF_AI_DIFFERENT_CULTURE_REASON
}
modifier = {
	add = -15
	scope:actor.faith != scope:recipient.faith
	desc = BF_AI_DIFFERENT_FAITH_REASON
}
modifier = {
	add = 25
	scope:recipient = {
		exists = primary_title
	}
	scope:actor = {
		any_held_title = {
			target_is_de_jure_liege_or_above = scope:recipient.primary_title
		}
	}
	desc = BF_AI_DE_JURE_REASON
}
modifier = {
	add = 25
	scope:actor.dynasty = scope:recipient.dynasty
	desc = BF_AI_SAME_DYNASTY_REASON
}
modifier = {
	add = -50
	scope:actor.realm_size >= fp2_bargain_fealty_half_realm_size_value
	desc = BF_AI_TOO_LARGE_REASON
}
opinion_modifier = {
	who = scope:recipient
	opinion_target = scope:actor
	multiplier = 1
	desc = AI_OPINION_REASON
}
ai_value_modifier = {
	ai_boldness = 1
	max = 0
}
ai_value_modifier = {
	ai_greed = 1
	max = 0
}
modifier = {
	add = {
		value = ai_greed
		multiply = 2
	}
	ai_greed >= 1
	desc = AI_VALUE_MODIFIER_GREED
}
modifier = {
	add = {
		value = ai_boldness
		multiply = 2
	}
	NOT = {
		ai_boldness = 0
	}
	desc = AI_VALUE_MODIFIER_BOLDNESS
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

What happens

If they accept

  • If

    a check the game hides

    Then

    • The target:
      • If

        • is_attacker = scope:actor

        Then

        • add_attacker = scope:recipient

        Otherwise

        • add_defender = scope:recipient
    • You:
      • change_liege = { liege = scope:recipient change = scope:change }
    • You: Stress and fulfillment impact: by trait: Arrogant +40, Craven +40
    • The character you target: Stress and fulfillment impact: by trait: Greedy +40, Craven +40
  • 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 = { … }

If they refuse

  • Event char_interaction.0236
  • If

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

      • You are not the target

      Then

      • The target is not you

    Then

    • The target’s house:
      • add_unity_value = { … }

    Else if

    • No
    • The character you target: Government is Clan
    • The target’s house: Has the target as house head
    • One of these

      • All of these

        • exists = scope:actor.house
        • The target’s house is not your
      • or

        You: Is Lowborn

    Then

    • The target’s house:
      • add_unity_value = { … }

Events it fires: char_interaction.0236

• 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) (43 lines of game script)
is_available = is_at_war = yes
any_character_struggle = {
	involvement = involved
	struggle_can_access_unlocks_bargain_fealty_interaction_trigger = yes
}
trigger_if = {
	limit = {
		is_ai = yes
	}
	is_imprisoned = no
}
top_liege ?= this
is_shown = scope:actor = {
	any_character_war = {
		primary_defender ?= scope:actor
		is_war_leader = scope:actor
	}
	trigger_if = {
		limit = {
			scope:recipient = {
				is_landless_ruler = no
			}
		}
		tier_difference = {
			target = scope:recipient
			value <= -1
		}
	}
	trigger_else = {
		tier_difference = {
			target = scope:recipient
			value <= -2
		}
	}
}
scope:recipient = {
	NOT = {
		this = scope:actor
	}
	primary_title ?= {
		is_mercenary_company = no
	}
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

Can be sent when (is_valid…) (31 lines of game script)
scope:actor = {
	custom_tooltip = {
		text = bargain_fealty_interaction_valid_tt
		any_character_war = {
			is_war_leader = scope:actor
			primary_defender = scope:actor
			NOT = {
				using_cb = fp2_border_raid
			}
			NOT = {
				using_cb = county_struggle_cb
			}
		}
	}
	any_character_struggle = {
		involvement = involved
		has_struggle_phase_parameter = unlocks_bargain_fealty_interaction
	}
}
scope:recipient = {
	custom_tooltip = {
		text = bargain_fealty_interaction_neighbor_tt
		any_neighboring_and_across_water_top_liege_realm_owner = {
			this = scope:actor
		}
	}
	NOT = {
		is_at_war_with = scope:actor
	}
}
exists = scope:target

As written in game/common/character_interactions/03_fp2_interactions.txt.

Effects (on_send, on_accept, on_decline) (68 lines of game script)
on_accept = if = {
	limit = {
		exists = scope:target
	}
	scope:target = {
		hidden_effect = {
			set_called_to = scope:recipient
		}
		if = {
			limit = {
				is_attacker = scope:actor
			}
			add_attacker = scope:recipient
		}
		else = {
			add_defender = scope:recipient
		}
	}
	create_title_and_vassal_change = {
		type = swear_fealty
		save_scope_as = change
	}
	scope:actor = {
		change_liege = {
			liege = scope:recipient
			change = scope:change
		}
		resolve_title_and_vassal_change = scope:change
	}
	scope:actor = {
		stress_and_fulfillment_impact = {
			arrogant = medium_stress_impact_gain
			craven = medium_stress_impact_gain
		}
	}
	scope:recipient = {
		stress_and_fulfillment_impact = {
			greedy = medium_stress_impact_gain
			craven = medium_stress_impact_gain
		}
	}
}
else = {
	scope:actor = {
		send_interface_toast = {
			type = event_toast_effect_neutral
			title = war_ended_before_response
			left_icon = scope:recipient
		}
	}
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:actor
	TARGET = scope:recipient
	VALUE = medium_unity_gain
	DESC = clan_unity_bargained_fealty.desc
	REVERSE_NON_HOUSE_TARGET = no
}
on_decline = scope:actor = {
	trigger_event = char_interaction.0236
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:recipient
	TARGET = scope:actor
	VALUE = minor_unity_loss
	DESC = clan_unity_bargain_fealty_refusal.desc
	REVERSE_NON_HOUSE_TARGET = no
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

Category
Diplomatic actions
Again on the same character
after 5 years
In the menu
under More…
ID
bargain_fealty_interaction

Source: game/common/character_interactions/03_fp2_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.

Spotted a mistake on this page?