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

Grant Independence

No costAccepted automatically

Grant the recipient independence from your realm they will no longer be your vassal!

What you need

You

To send it

To see it in the menu

  • The target is not you

The character you target

  • Is a vassal of you
  • Is landed

Grant Independence is a vassal character interaction in Crusader Kings III. You need: Is an Independent Ruler, Is at not War, You may only grant independence to your Diarch by elevating them to your Tier and 1 more. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/00_character_interactions.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Grant Independence in CK3?
You: Is an Independent Ruler, Is at not War, You may only grant independence to your Diarch by elevating them to your Tier and This action may not be taken against the Ceremonial Monarch. (patch 1.20.1.2)
Will the AI accept Grant Independence?
Yes: it is accepted automatically.

Will they accept?

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

What happens

Effects

  • Stress and fulfillment impact: by trait: Ambitious +40, Arrogant +20, Greedy +20
  • The character you target:
    • If

      • Any liege or above: Is played by a person

      Then

    • If

      • Any liege or above › Any vassal: Is played by a person

      Then

      • Every liege or above:
        • Where › Any vassal: Is played by a person
        • Every vassal:
    • Opinion: Granted Independence
    • add_truce_both_ways = { character = scope:puppet_or_actor days = 3650 name = TRUCE_GRANT_INDEPENDENCE }
    • becomes_independent = { change = scope:change }
  • If

    • You:
      • Not all of these

        • Their culture is the same as that of recipient
        • Their faith is the same as that of recipient
    • The character you target: Is a powerful vassal of you
    • Any character struggle:
      • involvement = involved
      • phase_has_catalyst = catalyst_gave_independence_to_powerful_diff_faith_culture_vassal
      • The character you target: Any character struggle:

    Then

    • Every character struggle:
      • Where:
        • phase_has_catalyst = catalyst_gave_independence_to_powerful_diff_faith_culture_vassal
        • The character you target: Any character struggle:
      • involvement = involved
      • activate_struggle_catalyst = { catalyst = catalyst_gave_independence_to_powerful_diff_faith_culture_vassal character = scope:puppet_or_actor }
  • If

    • None of these

      • Any held title:
        • is_de_jure_liege_or_above_target = scope:recipient.primary_title
    • Any character struggle:
      • involvement = involved
      • phase_has_catalyst = catalyst_independence_from_non_dejure_vassal
      • The character you target: Any character struggle:

    Then

    • Every character struggle:
      • Where:
        • phase_has_catalyst = catalyst_independence_from_non_dejure_vassal
        • The character you target: Any character struggle:
      • involvement = involved
      • activate_struggle_catalyst = { catalyst = catalyst_independence_from_non_dejure_vassal character = scope:puppet_or_actor }
  • 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 = { … }

Events it fires: vassal_interaction.0023, vassal_interaction.0022

• 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) (13 lines of game script)
is_shown = scope:puppet_or_actor ?= {
	trigger_if = {
		limit = {
			is_confederation_member = yes
		}
		exists = house.house_confederation
	}
}
scope:recipient = {
	is_vassal_of = scope:puppet_or_actor
	is_landed = yes
}
scope:recipient != scope:puppet_or_actor

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

Can be sent when (is_valid…) (53 lines of game script)
NOT = {
	scope:puppet_or_actor = {
		is_at_war_with = scope:recipient
	}
}
scope:puppet_or_actor = {
	top_liege = this
	is_at_war = no
	custom_description = {
		text = is_at_war_with_another_vassal
		object = scope:recipient
		NOT = {
			scope:puppet_or_actor = {
				any_vassal_or_below = {
					is_at_war_with = scope:recipient
				}
			}
		}
	}
	custom_description = {
		text = is_de_jure_vassal_check
		object = scope:recipient
		trigger_if = {
			limit = {
				scope:puppet_or_actor = {
					government_has_mechanic = administrative
				}
				scope:recipient = {
					government_has_flag = government_is_tribal
				}
			}
		}
		trigger_else = {
			NOT = {
				scope:recipient.primary_title = {
					any_this_title_or_de_jure_above = {
						holder = scope:puppet_or_actor
					}
				}
			}
		}
	}
	custom_tooltip = {
		text = can_only_remove_diarch_by_elevating_them.tt
		NOT = {
			scope:recipient ?= scope:puppet_or_actor.diarch
		}
	}
}
tgp_blocked_action_against_tenno_trigger = {
	ACTOR = scope:puppet_or_actor
	TARGET = scope:recipient
}

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

Effects (on_send, on_accept, on_decline) (196 lines of game script)
on_accept = if = {
	limit = {
		exists = scope:is_puppet_action
		scope:is_puppet_action = yes
	}
	scope:actor = {
		add_character_flag = {
			flag = pam_puppet_grant_independence_cooldown
			years = 5
		}
	}
}
scope:puppet_or_actor = {
	stress_and_fulfillment_impact = {
		ambitious = medium_stress_impact_gain
		arrogant = minor_stress_impact_gain
		greedy = minor_stress_impact_gain
	}
	hidden_effect = {
		send_interface_toast = {
			type = event_toast_effect_neutral
			title = grant_vassal_independence_interaction_toast
			left_icon = scope:actor
			right_icon = scope:recipient
			custom_tooltip = grant_vassal_independence_interaction_toast_desc
			if = {
				limit = {
					exists = dynasty
					NOT = {
						any_held_title = {
							is_de_jure_liege_or_above_target = scope:recipient.primary_title
						}
					}
					any_character_struggle = {
						involvement = involved
						has_struggle_phase_parameter = granting_independence_to_non_dejure_gives_renown
					}
				}
				dynasty = {
					add_dynasty_prestige = medium_dynasty_prestige_value
				}
			}
		}
	}
}
hidden_effect = {
	if = {
		limit = {
			scope:is_puppet_action ?= yes
		}
		scope:actor = {
			send_interface_toast = {
				type = event_toast_effect_neutral
				title = grant_vassal_independence_interaction_toast
				left_icon = scope:puppet_or_actor
				right_icon = scope:recipient
				custom_tooltip = grant_vassal_independence_interaction_toast_desc
			}
		}
	}
}
scope:recipient = {
	if = {
		limit = {
			any_liege_or_above = {
				is_ai = no
				this != scope:puppet_or_actor
			}
		}
		every_liege_or_above = {
			limit = {
				is_ai = no
				this != scope:puppet_or_actor
			}
			trigger_event = vassal_interaction.0023
		}
	}
	if = {
		limit = {
			any_liege_or_above = {
				any_vassal = {
					is_ai = no
					NOR = {
						this = scope:recipient
						this = scope:puppet_or_actor
					}
				}
			}
		}
		every_liege_or_above = {
			limit = {
				any_vassal = {
					is_ai = no
					NOR = {
						this = scope:recipient
						this = scope:puppet_or_actor
					}
				}
			}
			every_vassal = {
				limit = {
					is_ai = no
					this != scope:recipient
				}
				trigger_event = {
					id = vassal_interaction.0022
					days = 3
				}
			}
		}
	}
	add_opinion = {
		target = scope:puppet_or_actor
		modifier = granted_independence_opinion
	}
	add_truce_both_ways = {
		character = scope:puppet_or_actor
		days = 3650
		name = TRUCE_GRANT_INDEPENDENCE
	}
	create_title_and_vassal_change = {
		type = independency
		save_scope_as = change
		add_claim_on_loss = yes
	}
	becomes_independent = {
		change = scope:change
	}
	resolve_title_and_vassal_change = scope:change
}
scope:puppet_or_actor = {
	if = {
		limit = {
			catalyst_gave_independence_to_powerful_diff_faith_culture_vassal_preliminary_trigger = {
				CHAR1 = scope:puppet_or_actor
				CHAR2 = scope:recipient
			}
			any_character_struggle = {
				involvement = involved
				activate_struggle_catalyst_secondary_character_involvement_either_trigger = {
					CATALYST = catalyst_gave_independence_to_powerful_diff_faith_culture_vassal
					CHAR = scope:recipient
				}
			}
		}
		every_character_struggle = {
			involvement = involved
			limit = {
				activate_struggle_catalyst_secondary_character_involvement_either_trigger = {
					CATALYST = catalyst_gave_independence_to_powerful_diff_faith_culture_vassal
					CHAR = scope:recipient
				}
			}
			activate_struggle_catalyst = {
				catalyst = catalyst_gave_independence_to_powerful_diff_faith_culture_vassal
				character = scope:puppet_or_actor
			}
		}
	}
	if = {
		limit = {
			NOT = {
				any_held_title = {
					is_de_jure_liege_or_above_target = scope:recipient.primary_title
				}
			}
			any_character_struggle = {
				involvement = involved
				activate_struggle_catalyst_secondary_character_involvement_either_trigger = {
					CATALYST = catalyst_independence_from_non_dejure_vassal
					CHAR = scope:recipient
				}
			}
		}
		every_character_struggle = {
			involvement = involved
			limit = {
				activate_struggle_catalyst_secondary_character_involvement_either_trigger = {
					CATALYST = catalyst_independence_from_non_dejure_vassal
					CHAR = scope:recipient
				}
			}
			activate_struggle_catalyst = {
				catalyst = catalyst_independence_from_non_dejure_vassal
				character = scope:puppet_or_actor
			}
		}
	}
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:puppet_or_actor
	TARGET = scope:recipient
	VALUE = medium_unity_loss
	DESC = clan_unity_grant_independence.desc
	REVERSE_NON_HOUSE_TARGET = no
}

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

Category
Vassal actions
In the menu
under More…
ID
grant_independence_interaction

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