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

Interaction · Vassal actions

Stop Vassal War

No costAccepted automatically

Demand that the recipient abandons their war the recipient's willingness to end the war is determined by:     • Both of your Diplomacy skills     • The state of the war     • their Traits     • their Opinion of you     • Whether they is Intimidated or Terrified by you

What you need

You

To send it

  • None of these

To see it in the menu

  • The target is not you
  • NOT = { is_participant_in_war = scope:target_war }

The character you target

  • Is a direct vassal of you
  • Highest held Title is more than Barony Rank
  • Any character war: Has the target as the war's attacker

Which character you can pick

  • scope:target.primary_attacker = scope:recipient

Stop Vassal War is a vassal character interaction in Crusader Kings III. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/00_vassal_interactions.txt.

for a guide, post or blog
Quick answers (1)
Will the AI accept Stop Vassal War?
Yes: it is accepted automatically.

Will they accept?

The other character has no choice: the game accepts it automatically.

What happens

Effects

  • The character you target: Opinion: Attempted to Stop War
  • The target:
    • end_war = white_peace
  • If

    • The target’s house is not your

    Then

    • If

      • You: Government is Clan
      • The target’s primary defender: Government is Clan
      • scope:actor.house = scope:target.primary_defender.house
      • If

        • You are not the target

        Then

        • NOT = { scope:actor = scope:target.primary_defender }

      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:target.primary_defender.house
          • NOT = { scope:actor.house = scope:target.primary_defender.house }
        • or

          The target’s primary defender: Is Lowborn

      Then

      • Your house:
        • add_unity_value = { … }

    Else if

    • scope:target.primary_defender.house != scope:actor.house

    Then

    • 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

  • The character you target: Opinion: Attempted to Stop War
  • You: Gain -75 Prestige

Events it fires: vassal_interaction.0001

• 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) (14 lines of game script)
is_shown = scope:recipient != scope:actor
scope:recipient = {
	liege ?= scope:actor
	highest_held_title_tier > tier_barony
	any_character_war = {
		primary_attacker ?= scope:recipient
		save_temporary_scope_as = target_war
	}
}
scope:actor = {
	NOT = {
		is_participant_in_war = scope:target_war
	}
}

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

Can be sent when (is_valid…) (28 lines of game script)
custom_description = {
	text = cannot_stop_war_when_already_fighting
	object = scope:recipient
	scope:recipient = {
		NOT = {
			any_war_enemy = {
				this = scope:actor
			}
		}
	}
}
custom_description = {
	text = cannot_stop_war_timer
	object = scope:recipient
	NOT = {
		scope:recipient = {
			has_opinion_modifier = {
				target = scope:actor
				modifier = attempt_to_force_end_war_opinion
			}
		}
	}
}
NOT = {
	scope:recipient = {
		has_strong_hook = scope:actor
	}
}

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

Effects (on_send, on_accept, on_decline) (57 lines of game script)
on_accept = scope:recipient = {
	add_opinion = {
		modifier = attempt_to_force_end_war_opinion
		target = scope:actor
	}
}
hidden_effect = {
	scope:recipient = {
		trigger_event = vassal_interaction.0001
	}
}
show_as_tooltip = {
	scope:target ?= {
		end_war = white_peace
	}
}
show_as_tooltip = {
	if = {
		limit = {
			exists = scope:recipient.house
			exists = scope:actor.house
			scope:recipient.house != scope:actor.house
		}
		add_clan_unity_interaction_effect = {
			CHARACTER = scope:actor
			TARGET = scope:target.primary_defender
			VALUE = medium_unity_gain
			DESC = clan_unity_aided_in_war.desc
			REVERSE_NON_HOUSE_TARGET = no
		}
	}
	else_if = {
		limit = {
			exists = scope:actor.house
			exists = scope:target.primary_defender.house
			scope:target.primary_defender.house != scope:actor.house
		}
		add_clan_unity_interaction_effect = {
			CHARACTER = scope:actor
			TARGET = scope:recipient
			VALUE = medium_unity_loss
			DESC = clan_unity_stopped_vassal_war.desc
			REVERSE_NON_HOUSE_TARGET = no
		}
	}
}
on_decline = show_as_tooltip = {
	scope:recipient = {
		add_opinion = {
			modifier = attempt_to_force_end_war_opinion
			target = scope:actor
		}
	}
	scope:actor = {
		add_prestige = minor_prestige_loss
	}
}

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

Category
Vassal actions
In the menu
under More…
ID
stop_attacker_vassal_war_interaction

Source: game/common/character_interactions/00_vassal_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?