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

Revoke Title

variesPrestigevariesInfluenceAccepted automatically in some cases; otherwise the AI weighs it

Take a Title from the recipient

What you need

You

The character you target

To send it

  • Is a vassal of you
  • Does not have a Strong Hook on you
  • If they has administrative government mechanic: … does not have a valid appointment to Revoke
  • … Titles may not be revoked within 10 years of founding a fief with … permission, unless they are a Criminal (… remaining)

To see it in the menu

  • Their government is not unplayable
  • One of these

    • Is landed
    • or

      All of these

      • they has administrative government mechanic
      • Is not landed
      • If

        a check the game hides

        Then

        • Their house: Has the house check as house head
      • Has a domicile
    • 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

  • Is a vassal (or below) of you

Which title you can pick

Revoke Title is a vassal character interaction in Crusader Kings III. You need: This character's titles are protected from revocation. The character you target needs: Is a vassal of you and Does not have a Strong Hook on you. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Legalism (+25), Base (-50), Base (-100) and 13 more. It costs Prestige (varies), Influence (varies). Patch 1.20.1.2, from game/common/character_interactions/00_revoke_title_interaction.txt.

for a guide, post or blog
Quick answers (3)
What are the requirements for Revoke Title in CK3?
You: This character's titles are protected from revocation. The character you target: Is a vassal of you and Does not have a Strong Hook on you. (patch 1.20.1.2)
How do I get the AI to accept Revoke Title?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Legalism +25, Base -50, Base -100, Weak Hook used +40, They is a Herder +40, … Opinion of …, Refusal is Treason +20, Trusting +20, Content +20, Craven +20, … is your De Jure Capital +50, … is in your Capital Duchy +30, You has a valid Claim +30, The recipient … of the … Tier -20, … belongs to the recipient's De Jure -25, Intimidated by you, Terrified of you, Difference in your Military Strength (max +20), Legalistic Customs +20 and Indomitable Azatani -25.
How much does Revoke Title cost?
Prestige (varies), Influence (varies) (patch 1.20.1.2).

Will they accept?

Accepted automatically when:

  • The character you target:
    • If

      Then

      • They use their Hook on …

      Else if

      • Is imprisoned by you

      Then

    • Else, if imprisoned: … cannot refuse Revocation while Imprisoned by someone else
    • Else, if all of these hold:
      • Conditions:
        • You: you has administrative government mechanic
        • The character you target:
          • they has administrative government mechanic
          • Highest held Title is exactly County Rank
          • Is played by the AI
      • Then: … has the Bureaucratic
    • Otherwise: Barony Tier Vassals cannot refuse Revocation

Otherwise the AI adds these up and accepts above zero; near zero the answer is partly random (ai_maybe). Reasons in italics are the script's, with no label in the game.

ReasonAmount
Base0
Legalism
when
+25
Base
when
  • Game rule set to “Hard”
  • Is played by a person
-50
Base
when
  • Game rule set to “Very Hard”
  • Is played by a person
-100
A scripted reason
when
  • Game rule set to “Hard”
  • Is played by the AI
+50
A scripted reason
when
  • Game rule set to “Very Hard”
  • Is played by the AI
+100
Weak Hook used
when
+40
They is a Herder
when
  • The character you target: Government is unplayable
+40
… Opinion of …varies
Refusal is Treason
when
  • has_realm_law_flag = vassal_refusal_is_treason
+20
Trusting
when
+20
Content
when
+20
Craven
when
  • root.current_military_strength > scope:recipient.current_military_strength
  • The character you target: Has the Trait: Craven
+20
… is your De Jure Capital
when
  • One of these

    • scope:landed_title = scope:puppet_or_actor.primary_title.title_capital_county
    • or

      scope:landed_title = scope:puppet_or_actor.primary_title.title_capital_county.de_jure_liege
+50
… is in your Capital Duchy
when
  • NOT = { scope:landed_title = scope:puppet_or_actor.primary_title.title_capital_county }
  • NOT = { scope:landed_title = scope:puppet_or_actor.primary_title.title_capital_county.de_jure_liege }
  • scope:landed_title.de_jure_liege = scope:puppet_or_actor.primary_title.title_capital_county.de_jure_liege
+30
You has a valid Claim
when
  • has_claim_on = scope:landed_title
+30
Their personality (AI values: greed (scripted), honor (scripted))varies
The recipient … of the … Tier
when
-20
… belongs to the recipient's De Jure
when
  • None of these

    • The character you target: they has administrative government mechanic
  • scope:recipient.primary_title.tier > tier_county
  • One of these

    • The target’s primary title:
      • is_de_jure_liege_or_above_target = scope:landed_title
    • or

      scope:recipient.primary_title = scope:landed_title
-25
Intimidated by you
when
  • The character you target:
    • has_dread_level_towards = { target = scope:puppet_or_actor level = 1 }
intimidated_halved_reason_value
Terrified of you
when
  • The character you target:
    • has_dread_level_towards = { target = scope:puppet_or_actor level = 2 }
cowed_halved_reason_value
Difference in your Military Strength (max +20)varies
Legalistic Customs
when
+20
A scripted reason
when
  • Is played by the AI
  • One of these

    • Has the Trait: Greatest of Khans
    • or

      Has the Modifier: The Great Khan
    • or

      All of these

      • Has “conqueror” (a variable the game's script sets)
      • Game rule not set to “None”
  • The character you target: Is played by the AI
+500
Indomitable Azatani
when
-25
Acceptance (ai_accept) (228 lines of game script)
base = 0
legalism_lawful_authority_acceptance_modifier = {
	ACTOR = scope:puppet_or_actor
}
modifier = {
	has_game_rule = hard_difficulty
	scope:actor = {
		is_ai = no
	}
	add = -50
	desc = game_rule_base_value
}
modifier = {
	has_game_rule = very_hard_difficulty
	scope:actor = {
		is_ai = no
	}
	add = -100
	desc = game_rule_base_value
}
modifier = {
	has_game_rule = hard_difficulty
	scope:actor = {
		is_ai = yes
	}
	add = 50
}
modifier = {
	has_game_rule = very_hard_difficulty
	scope:actor = {
		is_ai = yes
	}
	add = 100
}
modifier = {
	scope:hook = yes
	add = 40
	desc = SCHEME_WEAK_HOOK_USED
}
modifier = {
	scope:recipient = {
		government_has_flag = government_is_herder
	}
	add = 40
	desc = MIGRATION_INTERACTION_HERDER
}
opinion_modifier = {
	who = scope:recipient
	opinion_target = scope:puppet_or_actor
	multiplier = 0.8
	desc = AI_OPINION_REASON
}
modifier = {
	add = 20
	scope:puppet_or_actor = {
		has_realm_law_flag = vassal_refusal_is_treason
	}
	desc = AI_REFUSAL_IS_TREASON
}
modifier = {
	add = 20
	scope:recipient = {
		has_trait = trusting
	}
	desc = TAKE_THE_VOWS_TRUSTING
}
modifier = {
	add = 20
	scope:recipient = {
		has_trait = content
	}
	desc = INTERACTION_CONTENT
}
modifier = {
	add = 20
	scope:puppet_or_actor.current_military_strength > scope:recipient.current_military_strength
	scope:recipient = {
		has_trait = craven
	}
	desc = INTERACTION_CRAVEN
}
modifier = {
	exists = scope:puppet_or_actor.primary_title.title_capital_county
	OR = {
		scope:landed_title = scope:puppet_or_actor.primary_title.title_capital_county
		scope:landed_title = scope:puppet_or_actor.primary_title.title_capital_county.de_jure_liege
	}
	add = 50
	desc = AI_TITLE_IS_REALM_CAPITAL
}
modifier = {
	exists = scope:puppet_or_actor.primary_title.title_capital_county
	NOR = {
		scope:landed_title = scope:puppet_or_actor.primary_title.title_capital_county
		scope:landed_title = scope:puppet_or_actor.primary_title.title_capital_county.de_jure_liege
	}
	scope:landed_title.de_jure_liege = scope:puppet_or_actor.primary_title.title_capital_county.de_jure_liege
	add = 30
	desc = AI_TITLE_IS_IN_CAPITAL_DUCHY
}
modifier = {
	add = 30
	scope:puppet_or_actor = {
		has_claim_on = scope:landed_title
	}
	desc = AI_LIEGE_HAS_CLAIM_ON_TITLE
}
ai_value_modifier = {
	who = scope:recipient
	ai_greed = {
		if = {
			limit = {
				scope:recipient = {
					NOT = {
						ai_greed = 0
					}
				}
			}
			value = -0.75
		}
	}
	ai_honor = {
		if = {
			limit = {
				scope:recipient = {
					ai_honor > 0
				}
				scope:puppet_or_actor = {
					has_realm_law_flag = vassal_refusal_is_treason
				}
			}
			value = 0.5
		}
	}
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_hightier_tt
	trigger = {
		scope:recipient = {
			highest_held_title_tier = tier_kingdom
		}
	}
	add = -20
}
modifier = {
	add = -25
	NOT = {
		scope:recipient = {
			government_has_mechanic = administrative
		}
	}
	scope:recipient.primary_title.tier > tier_county
	OR = {
		scope:recipient.primary_title = {
			is_de_jure_liege_or_above_target = scope:landed_title
		}
		scope:recipient.primary_title = scope:landed_title
	}
	desc = AI_REFUSAL_IS_DE_JURE_UNDER
}
modifier = {
	add = intimidated_halved_reason_value
	scope:recipient = {
		has_dread_level_towards = {
			target = scope:puppet_or_actor
			level = 1
		}
	}
	desc = INTIMIDATED_REASON
}
modifier = {
	add = cowed_halved_reason_value
	scope:recipient = {
		has_dread_level_towards = {
			target = scope:puppet_or_actor
			level = 2
		}
	}
	desc = COWED_REASON
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_power_tt
	add = {
		value = 1
		subtract = {
			value = scope:recipient.current_military_strength
			divide = {
				value = scope:puppet_or_actor.current_military_strength
				min = 1
			}
		}
		multiply = 50
		max = 20
	}
}
modifier = {
	desc = tradition_legalistic_name
	scope:puppet_or_actor = {
		has_revoke_title_reason = scope:recipient
		culture = {
			has_cultural_parameter = vassals_more_likely_accept_punishments
		}
	}
	add = legalistic_vassal_punishment_acceptance
}
modifier = {
	scope:puppet_or_actor = {
		is_ai = yes
		OR = {
			has_trait = greatest_of_khans
			has_character_modifier = the_great_khan_modifier
			ai_should_get_conqueror_bonuses = yes
		}
	}
	scope:recipient = {
		is_ai = yes
	}
	add = 500
}
modifier = {
	add = -25
	scope:recipient = {
		culture = {
			has_cultural_parameter = vassals_more_likely_to_refuse_demands
		}
	}
	desc = VASSALS_REFUSAL_indomitable_azatani
}

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

What happens

If they accept

  • If

    • You: you has administrative government mechanic
    • The character you target: they has administrative government mechanic

    Then

  • If

    • The character you target:
      • Their faith is the same as that of puppet or actor
      • Government is a Theocratic-type Government
    • scope:puppet_or_actor != scope:puppet_or_actor.faith.religious_head

    Then

    • You: Gain -250 Piety
    • If

      a check the game hides

      Then

      • Your faith’s religious head: Opinion: Impious (-20)
  • If

    • scope:recipient = scope:puppet_or_actor.faith.religious_head

    Then

  • If

    • scope:landed_title.tier != tier_barony
    • The character you target: Their government is not unplayable

    Then

    • You:
      • If

        a check the game hides

        Then

        • If

          • has_revoke_title_reason = scope:recipient

          Then

          • consume_revoke_title_reason = scope:recipient

          Otherwise

          • change_strife_opinion = major_strife_gain

        Else if

        • None of these

          • exists = scope:administrative_revocation
          • has_revoke_title_reason = scope:recipient
          • If

            a check the game hides

            Then

            • has_claim_on = scope:landed_title
          • title_revocation_is_admin_governor_trigger = { VASSAL = scope:recipient }
          • All of these

            • Their rite: The rite has Revoking titles from Sinful Vassals does not incur Tyranny
            • The character you target:
              • num_sinful_traits = { value > 0 target = prev.rite }
          • All of these

            • The character you target:
              • NOT = { vassal_contract_has_flag = religiously_protected }
            • One of these

              • All of these

                • Their rite: The rite has Can revoke landed titles from Evil infidels without incurring Tyranny
                • Their faith:
                  • faith_hostility_level = { target = scope:recipient.faith value = faith_evil_level }
              • or

                All of these

                • Their rite: The rite has Can revoke landed titles from Hostile and Evil infidels without incurring Tyranny
                • Their faith:
                  • faith_hostility_level = { target = scope:recipient.faith value >= faith_hostile_level }

        Then

        • Tyranny +20
        • If

          • Has Legitimacy
          • None of these

            • The landed title:
              • duchy = scope:liege_temp_scope.capital_county.duchy

          Then

        • If their culture is not the same as that of recipient › The target’s culture:
          • change_cultural_acceptance = { target = scope:liege_temp_scope.culture value = revoke_title_culture_acceptance_impact desc = cultural_acceptance_loss_revokation }

        Otherwise

        • If

          • they has administrative government mechanic
          • Is an Independent Ruler
          • The character you target:
            • they has administrative government mechanic
            • Is a vassal (or below) of the liege temp

          Then

          • Because … … a Governor, they can revoke … titles without being viewed as a Tyrant

          Else if

          • has_claim_on = scope:landed_title

          Then

          • You have a Claim on the Title, allowing you to revoke it without being viewed as a Tyrant

          Else if

          • has_revoke_title_reason = scope:recipient

          Then

          • … … a known Criminal (…), allowing … to revoke … Title without being viewed as a Tyrant

          Else if

          • Their rite:
            • One of these

              • The rite has Can revoke landed titles from Evil infidels without incurring Tyranny
              • or

                The rite has Can revoke landed titles from Hostile and Evil infidels without incurring Tyranny
          • Their faith:
            • faith_hostility_level = { target = scope:recipient.faith value >= faith_hostile_level }

          Then

          • If

            • Their rite: The rite has Can revoke landed titles from Hostile and Evil infidels without incurring Tyranny
            • Their faith:
              • faith_hostility_level = { target = scope:recipient.faith value = faith_hostile_level }

            Then

            • Because you consider ⟨faith⟩ to be Hostile, you can revoke … titles without being viewed as a Tyrant

            Otherwise

            • Because you consider ⟨faith⟩ to be Evil, you can revoke … titles without being viewed as a Tyrant
          • Every ⟨faith⟩ vassal:
            • Where: Their faith is the same as that of recipient
            • Opinion: Angry (-20)
      • If

        • None of these

          • exists = scope:administrative_revocation
          • has_revoke_title_reason = scope:recipient
          • If

            a check the game hides

            Then

            • has_claim_on = scope:landed_title
          • title_revocation_is_admin_governor_trigger = { VASSAL = scope:recipient }
          • All of these

            • Their rite: The rite has Revoking titles from Sinful Vassals does not incur Tyranny
            • The character you target:
              • num_sinful_traits = { value > 0 target = prev.rite }
          • All of these

            • The character you target: … (more in the script below)
            • … (more in the script below)
      • … (more in the script below)
    • … (more in the script below)
  • … (more in the script below)

When it is accepted automatically

If they refuse

  • If

    • NOT = { scope:is_puppet_action ?= yes }
    • you has administrative government mechanic
    • Your Government uses Influence
    • NOT = { has_revoke_title_reason = scope:recipient }
    • The character you target:
      • Highest held Title is at least County Rank
      • they has administrative government mechanic
    • NOT = { has_realm_law_flag = manor_reform_law }

    Then

    • change_influence = { … }
  • If

    • scope:landed_title.tier != tier_barony
    • None of these

      • The character you target: Government is unplayable

    Then

    • You:
      • If

        a check the game hides

        Then

        • If

          • has_revoke_title_reason = scope:recipient

          Then

          • consume_revoke_title_reason = scope:recipient

          Otherwise

          • change_strife_opinion = major_strife_gain

        Else if

        • None of these

          • exists = scope:administrative_revocation
          • has_revoke_title_reason = scope:recipient
          • If

            a check the game hides

            Then

            • has_claim_on = scope:landed_title
          • All of these

            • you has administrative government mechanic
            • Is an Independent Ruler
            • The character you target:
              • they has administrative government mechanic
              • Is a vassal (or below) of the liege temp
          • All of these

            • Your rite: The rite has Revoking titles from Sinful Vassals does not incur Tyranny
            • The character you target:
              • num_sinful_traits = { value > 0 target = prev.rite }
          • All of these

            • The character you target:
              • NOT = { vassal_contract_has_flag = religiously_protected }
            • One of these

              • All of these

                • Your rite: The rite has Can revoke landed titles from Evil infidels without incurring Tyranny
                • Your faith:
                  • faith_hostility_level = { target = scope:recipient.faith value = faith_evil_level }
              • or

                All of these

                • Your rite: The rite has Can revoke landed titles from Hostile and Evil infidels without incurring Tyranny
                • Your faith:
                  • faith_hostility_level = { target = scope:recipient.faith value >= faith_hostile_level }

        Then

        • Tyranny +20
        • If

          • Has Legitimacy
          • None of these

            • The landed title:
              • duchy = scope:liege_temp_scope.capital_county.duchy

          Then

        • If your culture is not the same as that of recipient › The target’s culture:
          • change_cultural_acceptance = { target = scope:liege_temp_scope.culture value = revoke_title_culture_acceptance_impact desc = cultural_acceptance_loss_revokation }

        Otherwise

        • If

          • you has administrative government mechanic
          • Is an Independent Ruler
          • The character you target:
            • they has administrative government mechanic
            • Is a vassal (or below) of the liege temp

          Then

          • Because … … a Governor, they can revoke … titles without being viewed as a Tyrant

          Else if

          • has_claim_on = scope:landed_title

          Then

          • You have a Claim on the Title, allowing you to revoke it without being viewed as a Tyrant

          Else if

          • has_revoke_title_reason = scope:recipient

          Then

          • … … a known Criminal (…), allowing … to revoke … Title without being viewed as a Tyrant

          Else if

          • Your rite:
            • One of these

              • The rite has Can revoke landed titles from Evil infidels without incurring Tyranny
              • or

                The rite has Can revoke landed titles from Hostile and Evil infidels without incurring Tyranny
          • Your faith:
            • faith_hostility_level = { target = scope:recipient.faith value >= faith_hostile_level }

          Then

          • If

            • Your rite: The rite has Can revoke landed titles from Hostile and Evil infidels without incurring Tyranny
            • Your faith:
              • faith_hostility_level = { target = scope:recipient.faith value = faith_hostile_level }

            Then

            • Because you consider ⟨faith⟩ to be Hostile, you can revoke … titles without being viewed as a Tyrant

            Otherwise

            • Because you consider ⟨faith⟩ to be Evil, you can revoke … titles without being viewed as a Tyrant
          • Every ⟨faith⟩ vassal:
            • Where: Their faith is the same as that of recipient
            • Opinion: Angry (-20)
      • If

        • None of these

          • exists = scope:administrative_revocation
          • has_revoke_title_reason = scope:recipient
          • If

            a check the game hides

            Then

            • has_claim_on = scope:landed_title
          • All of these

            • you has administrative government mechanic
            • Is an Independent Ruler
            • The character you target:
              • they has administrative government mechanic
              • Is a vassal (or below) of the liege temp
          • All of these

            • Your rite: The rite has Revoking titles from Sinful Vassals does not incur Tyranny
            • The character you target:
              • num_sinful_traits = { value > 0 target = prev.rite }
          • All of these

            • The character you target:
              • NOT = { vassal_contract_has_flag = religiously_protected }
            • One of these

              • … (more in the script below)
      • … (more in the script below)
  • … (more in the script below)

Options when sending

  • Use a Hook

Events it fires: char_interaction.0199, char_interaction.0232, char_interaction.0200

• 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) (7 lines of game script)
is_shown = scope:recipient = {
	NOT = {
		government_has_flag = government_is_herder
	}
	is_landed_or_landless_administrative = yes
	target_is_liege_or_above = scope:puppet_or_actor
}

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

Can be sent when (is_valid…) (132 lines of game script)
title_revocation_standard_valid_showing_failures_only_trigger = yes
scope:puppet_or_actor = {
	trigger_if = {
		limit = {
			government_has_flag = government_is_tribal
		}
		custom_description = {
			text = has_law_allowing_title_revocation_tribal
			has_realm_law_flag = title_revocation_allowed
		}
	}
	trigger_else_if = {
		limit = {
			government_is_japanese_trigger = yes
		}
		custom_description = {
			text = has_law_allowing_title_revocation_soryo
			has_realm_law_flag = title_revocation_allowed
		}
	}
	trigger_else_if = {
		limit = {
			government_has_mechanic = administrative
		}
	}
	trigger_else_if = {
		limit = {
			realm_law_use_church_authority = yes
		}
		custom_description = {
			text = has_law_allowing_title_revocation_church
			has_realm_law_flag = title_revocation_allowed
		}
	}
	trigger_else = {
		custom_description = {
			text = has_law_allowing_title_revocation_crown
			has_realm_law_flag = title_revocation_allowed
		}
	}
}
trigger_if = {
	limit = {
		scope:recipient = {
			vassal_contract_has_flag = vassal_contract_cannot_revoke_titles
		}
	}
	custom_description = {
		text = vassal_contract_forbids_revocation
		scope:recipient = {
			NOT = {
				vassal_contract_has_flag = vassal_contract_cannot_revoke_titles
			}
		}
	}
}
trigger_if = {
	limit = {
		scope:recipient = {
			vassal_contract_has_flag = admin_cannot_revoke_titles_without_cause
		}
		scope:puppet_or_actor = {
			NOT = {
				has_revoke_title_reason = scope:recipient
			}
		}
	}
	custom_tooltip = {
		text = admin_contract_forbids_revocation_desc
		scope:recipient = {
			NOT = {
				vassal_contract_has_flag = admin_cannot_revoke_titles_without_cause
			}
		}
	}
}
scope:recipient = {
	is_vassal_of = scope:puppet_or_actor
	NOT = {
		has_strong_hook = scope:puppet_or_actor
	}
	trigger_if = {
		limit = {
			government_has_mechanic = administrative
		}
		custom_tooltip = {
			text = admin_no_valid_appointment
			any_held_title = {
				is_landless_type_title = no
			}
		}
	}
}
custom_tooltip = {
	text = cannot_take_overt_hostile_actions_against_diarch.tt
	NOT = {
		scope:recipient ?= scope:puppet_or_actor.diarch
	}
}
custom_tooltip = {
	text = protected_from_revocation.tt
	NOT = {
		scope:recipient = {
			has_character_flag = titles_protected
		}
	}
}
scope:puppet_or_actor = {
	custom_description = {
		text = character_interactions_hostile_actions_disabled_delay
		NOT = {
			has_character_flag = flag_hostile_actions_disabled_delay
		}
	}
}
scope:recipient ?= {
	custom_tooltip = {
		text = petition_liege_house_fief_allowed_flag_tt
		trigger_if = {
			limit = {
				government_has_flag = government_is_japan_feudal
				var:petition_liege_house_fief_allowed_flag ?= scope:puppet_or_actor
			}
			NOT = {
				ask_for_pardon_available_trigger = {
					ACTOR = scope:recipient
				}
			}
		}
	}
}
tgp_ceremonial_title_revoke_restriction_trigger = yes

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

Effects (on_send, on_accept, on_decline) (239 lines of game script)
on_send = scope:puppet_or_actor = {
	add_character_flag = {
		flag = flag_hostile_actions_disabled_delay
		days = 10
	}
}
on_accept = save_scope_value_as = {
	name = revoke_title_interaction
	value = yes
}
if = {
	limit = {
		scope:puppet_or_actor = {
			government_has_mechanic = administrative
		}
		scope:recipient = {
			government_has_mechanic = administrative
		}
	}
	save_scope_value_as = {
		name = administrative_revocation
		value = yes
	}
	scope:puppet_or_actor = {
		trigger_event = char_interaction.0199
	}
}
revoke_title_interaction_effect = yes
if = {
	limit = {
		scope:puppet_or_actor = {
			has_character_flag = flag_hostile_actions_disabled_delay
		}
	}
	scope:puppet_or_actor = {
		remove_character_flag = flag_hostile_actions_disabled_delay
	}
}
scope:puppet_or_actor = {
	if = {
		limit = {
			character_is_valid_for_harrying_of_the_north_trigger = yes
			scope:recipient = {
				character_is_valid_for_harrying_of_the_north_trigger = yes
				is_important_or_vip_struggle_character = yes
			}
			culture != scope:recipient.culture
		}
		global_var:harrying_of_the_north = {
			save_scope_as = story
		}
		if = {
			limit = {
				character_is_valid_norman_for_harrying_of_the_north_trigger = yes
				scope:recipient = {
					character_is_valid_anglo_saxon_for_harrying_of_the_north_trigger = yes
				}
			}
			ep3_increase_pacification_effect = {
				AMOUNT = harrying_minor_increase_value
			}
		}
		else_if = {
			limit = {
				character_is_valid_anglo_saxon_for_harrying_of_the_north_trigger = yes
				scope:recipient = {
					character_is_valid_norman_for_harrying_of_the_north_trigger = yes
				}
			}
			ep3_increase_resistance_effect = {
				AMOUNT = harrying_minor_increase_value
			}
		}
	}
}
on_decline = scope:puppet_or_actor = {
	if = {
		limit = {
			NOT = {
				scope:is_puppet_action ?= yes
			}
			government_has_mechanic = administrative
			government_has_flag = government_has_influence
			NOT = {
				has_revoke_title_reason = scope:recipient
			}
			scope:recipient = {
				highest_held_title_tier >= tier_county
				government_has_mechanic = administrative
			}
			NOT = {
				has_realm_law_flag = manor_reform_law
			}
		}
		show_as_tooltip = {
			change_influence = {
				scope:recipient ?= {
					if = {
						limit = {
							any_held_title = {
								title_tier = kingdom
								is_landless_type_title = no
								is_noble_family_title = no
							}
						}
						add = {
							add = {
								value = scope:recipient.massive_influence_value
								multiply = 3
							}
							desc = GOVERNOR_RESIGNATION_KINGDOM_COST
						}
					}
					else_if = {
						limit = {
							any_held_title = {
								title_tier = duchy
								is_landless_type_title = no
								is_noble_family_title = no
							}
						}
						add = {
							add = scope:recipient.massive_influence_value
							desc = GOVERNOR_RESIGNATION_DUCHY_COST
						}
					}
					else = {
						add = {
							add = scope:recipient.major_influence_value
							desc = concept_county
						}
					}
					if = {
						limit = {
							house ?= {
								is_powerful_family = yes
							}
						}
						add = {
							value = scope:recipient.massive_influence_value
							desc = GOVERNOR_RESIGNATION_POWERFUL_COST
						}
					}
					else_if = {
						limit = {
							house ?= {
								is_dominant_family = yes
							}
						}
						add = {
							value = scope:recipient.monumental_influence_value
							desc = GOVERNOR_RESIGNATION_DOMINANT_COST
						}
					}
					if = {
						limit = {
							scope:recipient.governor_efficiency < 1
						}
						add = {
							value = -100
							add = {
								value = scope:recipient.governor_efficiency
								multiply = 100
							}
							desc = GOVERNOR_RESIGNATION_EFFICIENCY_COST
						}
					}
					else_if = {
						limit = {
							scope:recipient.governor_efficiency > 1
						}
						add = {
							value = -100
							add = {
								value = scope:recipient.governor_efficiency
								multiply = 100
							}
							desc = GOVERNOR_RESIGNATION_EFFICIENCY_COST
						}
					}
					if = {
						limit = {
							influence_level != 1
						}
						add = {
							value = {
								value = influence_level
								subtract = 1
							}
							multiply = 50
							desc = GOVERNOR_RESIGNATION_INFLUENCE_LEVEL_COST
						}
					}
				}
				multiply = -1.25
			}
		}
	}
}
if = {
	limit = {
		scope:landed_title.tier != tier_barony
		NOT = {
			scope:recipient = {
				government_has_flag = government_is_herder
			}
		}
	}
	scope:puppet_or_actor = {
		revocation_tyranny_effect = {
			VASSAL = scope:recipient
		}
		title_revocation_stress_effect = {
			VASSAL = scope:recipient
		}
	}
}
if = {
	limit = {
		scope:recipient = {
			government_has_flag = government_is_herder
		}
	}
	scope:recipient = {
		add_opinion = {
			target = scope:puppet_or_actor
			opinion = -10
			modifier = revoked_title
		}
	}
}
else = {
	war_for_revoke_effect = {
		LIEGE = scope:puppet_or_actor
		REBEL = scope:recipient
	}
	scope:recipient = {
		add_opin
# … (cut here; the rest is in the file)

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

Category
Vassal actions
Cost: Prestige
varies
Cost: Influence
varies
In the menu
main list
ID
revoke_title_interaction

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