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

Interaction · Diarch

… Revoke Title

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

Take a Title from the recipient, despite not being … Liege This will incur Strife with your fellow Vassals

What you need

You

To send it

  • You:
    • Is not at war with the target
    • NOT = { has_truce = scope:recipient }
  • The character you target: Does not have a Strong Hook on you
  • They … too preoccupied to act as … right now
  • Your Liege is not in an Entrenched Regency
  • If

    • You:
      • is_diarch = yes

    Then

    • Your liege:
      • has_diarchy_active_parameter = unlock_diarch_revoke_title_interaction
  • None of these

    • You:
      • is_at_war_with = scope:actor.liege

To see it in the menu

  • If played by the AI:
    • is_diarch = yes
    • Your liege:
      • has_realm_law_flag = title_revocation_allowed
    • Loyalty less than 75
  • Your liege:
    • has_diarchy_parameter = unlock_diarch_revoke_title_interaction
  • One of these

    • is_designated_diarch = yes
    • or

      All of these

      • is_diarch_of_target = liege
      • exists = liege

The character you target

  • liege ?= scope:actor.liege
  • 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

    • or

      All of these

      • Is a ruler
      • Government is a Theocratic-type Government
  • scope:recipient.highest_held_title_tier >= tier_county

Which title you can pick

… Revoke Title is a diarch character interaction in Crusader Kings III. You need: They … too preoccupied to act as … right now and Your Liege is not in an Entrenched Regency. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Weak Hook used (+40), Refusal is Treason (+20), … is your De Jure Capital (+50) and 3 more. Patch 1.20.1.2, from game/common/character_interactions/00_diarch_interactions.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for … Revoke Title in CK3?
You: They … too preoccupied to act as … right now and Your Liege is not in an Entrenched Regency. (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: Weak Hook used +40, … Opinion of …, Refusal is Treason +20, … is your De Jure Capital +50, 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) and Legalistic Customs +20.

Will they accept?

Accepted automatically when:

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
Weak Hook used
when
+40
… Opinion of …varies
Refusal is Treason+20
… is your De Jure Capital
when
  • One of these

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

      scope:landed_title = scope:actor.primary_title.title_capital_county.de_jure_liege
+50
The recipient … of the … Tier
when
-20
… belongs to the recipient's De Jure
when
  • 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:actor level = 1 }
intimidated_halved_reason_value
Terrified of you
when
  • The character you target:
    • has_dread_level_towards = { target = scope:actor level = 2 }
cowed_halved_reason_value
Difference in your Military Strength (max +20)
when
  • One of these

    • Is landed
    • or

      All of these

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

        a check the game hides

        Then

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

      All of these

      • Is a ruler
      • Your Government is a Theocratic-type Government
varies
Legalistic Customs
when
+20
Their personality (AI values: greed (scripted), honor (scripted))varies
A scripted reason
when
  • Is not a ruler
  • The character you target: Held county (at least 2):
+100
Acceptance (ai_accept) (126 lines of game script)
base = 0
modifier = {
	add = 40
	desc = SCHEME_WEAK_HOOK_USED
	scope:hook = yes
}
opinion_modifier = {
	who = scope:recipient
	opinion_target = scope:actor
	multiplier = 0.8
	desc = AI_OPINION_REASON
}
modifier = {
	add = 20
	desc = AI_REFUSAL_IS_TREASON
}
modifier = {
	add = 50
	desc = AI_TITLE_IS_REALM_CAPITAL
	exists = scope:actor.primary_title.title_capital_county
	OR = {
		scope:landed_title = scope:actor.primary_title.title_capital_county
		scope:landed_title = scope:actor.primary_title.title_capital_county.de_jure_liege
	}
}
modifier = {
	add = -20
	desc = offer_vassalization_interaction_aibehavior_hightier_tt
	scope:recipient = {
		highest_held_title_tier = tier_kingdom
	}
}
modifier = {
	add = -25
	desc = AI_REFUSAL_IS_DE_JURE_UNDER
	OR = {
		scope:recipient.primary_title = {
			is_de_jure_liege_or_above_target = scope:landed_title
		}
		scope:recipient.primary_title = scope:landed_title
	}
}
modifier = {
	add = intimidated_halved_reason_value
	desc = INTIMIDATED_REASON
	scope:recipient = {
		has_dread_level_towards = {
			target = scope:actor
			level = 1
		}
	}
}
modifier = {
	add = cowed_halved_reason_value
	desc = COWED_REASON
	scope:recipient = {
		has_dread_level_towards = {
			target = scope:actor
			level = 2
		}
	}
}
modifier = {
	add = {
		value = 1
		subtract = {
			value = scope:recipient.max_military_strength
			divide = {
				value = scope:actor.max_military_strength
				min = 1
			}
		}
		multiply = 50
		max = 20
	}
	desc = offer_vassalization_interaction_aibehavior_power_tt
	scope:actor = {
		is_landed_or_landless_administrative_or_theocratic = yes
	}
}
modifier = {
	add = legalistic_vassal_punishment_acceptance
	desc = tradition_legalistic_name
	scope:actor = {
		has_revoke_title_reason = scope:recipient
		culture = {
			has_cultural_parameter = vassals_more_likely_accept_punishments
		}
	}
}
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
				}
			}
			value = 0.5
		}
	}
}
modifier = {
	add = 100
	scope:actor = {
		is_ruler = no
	}
	scope:recipient = {
		any_held_county = {
			count >= 2
		}
	}
}

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

What happens

If they accept

  • … … … and its Vassals
  • Event char_interaction.0262
  • 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:
              • 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

                … (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

  • Event char_interaction.0263
  • 1 of 2 things will happen:
    • 50% – If … … down › You:
      • If played by a person: Crime — You are allowed to rightfully imprison …, if the opportunity presents itself
      • Otherwise: Opinion: Refused Borrowed Power Demand
      • Their liege:
        • If played by a person: Crime — You are allowed to rightfully imprison …
        • Otherwise: Opinion: Refused Borrowed Power Demand
    • 50% – If … … the claim:
      • start_war = { … }
  • The character you target: Opinion: Revoked My Title

Options when sending

  • Use a Hook

Events it fires: char_interaction.0262, diarchy.0141, char_interaction.0263, char_interaction.0261

• 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) (27 lines of game script)
is_available = trigger_if = {
	limit = {
		is_ai = yes
	}
	is_diarch = yes
	liege ?= {
		has_realm_law_flag = title_revocation_allowed
	}
	diarch_loyalty < diarch_loyalty_visibly_loyal_threshold
}
liege ?= {
	has_diarchy_parameter = unlock_diarch_revoke_title_interaction
}
OR = {
	is_designated_diarch = yes
	AND = {
		is_diarch_of_target = liege
		exists = liege
	}
}
is_shown = scope:actor != scope:recipient
scope:recipient = {
	liege ?= scope:actor.liege
	this != scope:actor.liege
	is_landed_or_landless_administrative_or_theocratic = yes
	scope:recipient.highest_held_title_tier >= tier_county
}

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

Can be sent when (is_valid…) (77 lines of game script)
title_revocation_standard_valid_showing_failures_only_trigger = yes
diarch_cannot_be_disabled_trigger = {
	DIARCH = scope:actor
}
scope:actor.liege = {
	trigger_if = {
		limit = {
			government_has_flag = government_is_tribal
		}
		custom_description = {
			text = liege_has_law_allowing_title_revocation_tribal
			has_realm_law_flag = title_revocation_allowed
		}
	}
	trigger_else_if = {
		limit = {
			government_has_mechanic = administrative
		}
		custom_description = {
			text = cannot_diarch_revoke_administrative_titles
			always = no
		}
	}
	trigger_else = {
		custom_description = {
			text = liege_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 = liege_vassal_contract_forbids_revocation
		object = scope:recipient
		scope:recipient = {
			NOT = {
				vassal_contract_has_flag = vassal_contract_cannot_revoke_titles
			}
		}
	}
}
diarch_revocation_has_claim_check_trigger = yes
custom_tooltip = {
	text = diarch_interactions.tt.you_must_be_in_an_entrenched_regency_to_access
	scope:actor = {
		is_diarch = yes
	}
}
trigger_if = {
	limit = {
		scope:actor = {
			is_diarch = yes
		}
	}
	scope:actor.liege ?= {
		has_diarchy_active_parameter = unlock_diarch_revoke_title_interaction
	}
}
NOT = {
	scope:actor = {
		is_at_war_with = scope:actor.liege
	}
}
scope:actor != scope:intermediary
scope:actor = {
	custom_description = {
		text = character_interactions_hostile_actions_disabled_delay
		NOT = {
			has_character_flag = flag_hostile_actions_disabled_delay
		}
	}
}

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

Effects (on_send, on_accept, on_decline) (106 lines of game script)
on_send = scope:actor = {
	add_character_flag = {
		flag = flag_hostile_actions_disabled_delay
		days = 10
	}
}
log_diarch_send_interaction_as_variable_effect = {
	INTERACTION = revoke
}
on_accept = scope:actor = {
	custom_tooltip = diarch_revoke_title_interaction.tt.gain_title
}
save_scope_value_as = {
	name = revoke_title_interaction
	value = yes
}
scope:actor = {
	trigger_event = char_interaction.0262
}
save_scope_value_as = {
	name = use_strife_not_tyranny
	value = yes
}
revoke_title_interaction_effect = yes
scope:actor = {
	clear_hostile_actions_lock_flag_effect = yes
}
hidden_effect = {
	scope:actor = {
		if = {
			limit = {
				is_landed_or_landless_administrative_or_theocratic = no
				scope:intermediary != scope:recipient
			}
			trigger_event = {
				id = diarchy.0141
				days = 1
			}
		}
	}
}
debug_log = debug_log.diarch_revoke_title.accepted
scope:actor = {
	diarch_interaction_set_or_update_global_variable_effect = {
		VARIABLE = di_track_revoke_accept
	}
	diarch_interaction_add_to_global_list_effect = {
		VARIABLE_LIST = di_track_revoke_accept_actor_list
	}
}
scope:recipient = {
	diarch_interaction_add_to_global_list_effect = {
		VARIABLE_LIST = di_track_revoke_accept_recipient_list
	}
}
scope:intermediary = {
	diarch_interaction_add_to_global_list_effect = {
		VARIABLE_LIST = di_track_revoke_accept_intermediary_list
	}
}
on_decline = scope:actor = {
	trigger_event = char_interaction.0263
	show_as_tooltip = {
		random_list = {
			50 = {
				show_chance = no
				desc = char_interaction.0263.result.criminal
				diarch_declare_recipient_criminal_effect = yes
			}
			50 = {
				show_chance = no
				desc = char_interaction.0263.result.war
				diarch_declare_claim_war_effect = yes
			}
		}
	}
	clear_hostile_actions_lock_flag_effect = yes
}
scope:recipient = {
	add_opinion = {
		target = scope:actor
		modifier = revoked_title
	}
}
debug_log = debug_log.diarch_revoke_title.rejected
scope:actor = {
	diarch_interaction_set_or_update_global_variable_effect = {
		VARIABLE = di_track_revoke_reject
	}
	diarch_interaction_add_to_global_list_effect = {
		VARIABLE_LIST = di_track_revoke_reject_actor_list
	}
}
scope:recipient = {
	diarch_interaction_add_to_global_list_effect = {
		VARIABLE_LIST = di_track_revoke_reject_recipient_list
	}
}
scope:intermediary = {
	diarch_interaction_add_to_global_list_effect = {
		VARIABLE_LIST = di_track_revoke_reject_intermediary_list
	}
}
on_auto_accept = scope:recipient = {
	trigger_event = char_interaction.0261
}

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

Category
Diarch
Cooldown
1 year
Again on the same character
after 3 years
In the menu
under More…
ID
diarch_revoke_title_interaction

Source: game/common/character_interactions/00_diarch_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. “…” marks words the game fills in at play time (a name, a title).

Spotted a mistake on this page?