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

Interaction · Imprisonment actions

Execute

variesPrestigeAccepted automatically

Make sure that the recipient never bothers you again

What you need

You

To send it

To see it in the menu

  • If played by the AI: Is at not War

The character you target

To send it

  • Does not have a Strong Hook on you
  • Is imprisoned by you

To see it in the menu

  • Is imprisoned by you

Execute is an imprisonment character interaction in Crusader Kings III. You need: Cannot Execute Involved Prisoners. The character you target needs: Does not have a Strong Hook on you and Is imprisoned by you. Accepted automatically. It costs Prestige (varies). Patch 1.20.1.2, from game/common/character_interactions/00_prison_interactions.txt.

for a guide, post or blog
Quick answers (3)
What are the requirements for Execute in CK3?
You: Cannot Execute Involved Prisoners. The character you target: Does not have a Strong Hook on you and Is imprisoned by you. (patch 1.20.1.2)
Will the AI accept Execute?
Yes: it is accepted automatically.
How much does Execute cost?
Prestige (varies) (patch 1.20.1.2).

Will they accept?

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

What happens

Effects

  • If

    • One of these

      • All of these

        • has_diarchy_active_parameter = diarchy_is_co_rulership
        • diarch ?= scope:recipient
      • or

        All of these

        • The character you target:
          • has_diarchy_active_parameter = diarchy_is_co_rulership
        • Is the diarch of the target

    Then

    • If

      Then

      • Due to your … Culture, you may opt to maim … with a different interaction instead of killing …
    • If

      • root.diarch = scope:recipient

      Then

      • end_diarchy = yes
      • Every player:
        • Where:
          • top_liege = scope:puppet_or_actor.top_liege
        • Event diarchy.8022

      Otherwise

      • The character you target:
        • Every held title:
          • Where:
            • One of these

              • this = scope:recipient.capital_county
              • or

                this = scope:recipient.capital_county.duchy
              • or

                All of these

                • Title tier exactly County
                • this.duchy = scope:recipient.capital_county.duchy
              • or

                Title tier at least scope:recipient.highest held title tier
          • Gains the … Title (puppet or actor)
        • Every Vassal of …:
          • change_liege = { LIEGE = scope:puppet_or_actor CHANGE = scope:change }
      • Every player:
        • Where:
          • top_liege = scope:puppet_or_actor.top_liege
        • Event diarchy.8023
  • If

    • The character you target: Is imprisoned by you

    Then

    • If

      • The option “execution public” is chosen

      Then

    • If

      • NOT = { scope:execution_devour = yes }
      • You:
        • Is a child
        • Is at least 4 years old
        • Is played by a person
      • The character you target: Is an Adult

      Then

      Else if

      • NOT = { scope:execution_devour = yes }
      • You:
        • One of these

          • Has the target as friend
          • or

            Has the target as lover
        • Is played by a person
      • The character you target: Is an Adult

      Then

    • You:
    • You:
      • If

        • The character you target:
          • One of these

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

Options when sending

  • Behead
  • Behead... And Devour!
  • Burn at Stake
  • Sacrifice
  • Public Execution
  • Toss to Dogs
  • Turn into Mystery Meat

Events it fires: diarchy.8022, diarchy.8023, fp1_other_decisions.0021, fp1_other_decisions.0022, artifact.7000, bp1_yearly.9045, bp1_yearly.9044, char_interaction.0170

• 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) (9 lines of game script)
is_available = trigger_if = {
	limit = {
		is_ai = yes
	}
	is_at_war = no
}
is_shown = scope:recipient = {
	is_imprisoned_by = scope:puppet_or_actor
}

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

Can be sent when (is_valid…) (38 lines of game script)
scope:recipient = {
	NOT = {
		has_strong_hook = scope:puppet_or_actor
	}
}
scope:recipient = {
	custom_description = {
		text = currently_being_tortured
		NOT = {
			has_character_flag = is_being_tortured
		}
	}
}
custom_tooltip = {
	text = struggle_parameter_struggle_cannot_execute_involved_prisoners
	NOT = {
		scope:puppet_or_actor = {
			any_character_struggle = {
				involvement = involved
				has_struggle_phase_parameter = struggle_cannot_execute_involved_prisoners
				is_secondary_character_involvement_involved_trigger = {
					CHAR = scope:recipient
				}
			}
		}
	}
}
custom_tooltip = {
	text = is_currently_being_purged_tt
	scope:recipient = {
		NOT = {
			has_character_flag = is_currently_being_purged
		}
	}
}
scope:recipient = {
	is_imprisoned_by = scope:puppet_or_actor
}

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

Effects (on_send, on_accept, on_decline) (246 lines of game script)
on_accept = scope:puppet_or_actor = {
	if = {
		limit = {
			OR = {
				AND = {
					has_diarchy_active_parameter = diarchy_is_co_rulership
					diarch ?= scope:recipient
				}
				AND = {
					scope:recipient = {
						has_diarchy_active_parameter = diarchy_is_co_rulership
					}
					is_diarch_of_target = scope:recipient
				}
			}
		}
		if = {
			limit = {
				liege_can_maim_co_ruler_without_killing_them_trigger = yes
			}
			custom_tooltip = execute_prisoner_interaction.tt.can_maim_diarch
		}
		if = {
			limit = {
				scope:puppet_or_actor.diarch = scope:recipient
			}
			end_diarchy = yes
			every_player = {
				limit = {
					NOR = {
						this = scope:puppet_or_actor
						this = scope:recipient
					}
					top_liege = scope:puppet_or_actor.top_liege
				}
				trigger_event = diarchy.8022
			}
		}
		else = {
			custom_description_no_bullet = {
				text = execute_prisoner_interaction_tt_co_emperor_usurpation
				object = scope:recipient
			}
			create_title_and_vassal_change = {
				type = usurped
				save_scope_as = change
			}
			scope:recipient = {
				every_held_title = {
					limit = {
						OR = {
							this = scope:recipient.capital_county
							this = scope:recipient.capital_county.duchy
							AND = {
								tier = tier_county
								this.duchy = scope:recipient.capital_county.duchy
							}
							tier >= scope:recipient.highest_held_title_tier
						}
					}
					change_title_holder = {
						holder = scope:puppet_or_actor
						change = scope:change
					}
				}
				every_vassal = {
					custom = custom.recipient_every_vassal
					change_liege = {
						LIEGE = scope:puppet_or_actor
						CHANGE = scope:change
					}
				}
				hidden_effect = {
					change_liege = {
						LIEGE = scope:puppet_or_actor
						CHANGE = scope:change
					}
				}
			}
			resolve_title_and_vassal_change = scope:change
			every_player = {
				limit = {
					NOR = {
						this = scope:puppet_or_actor
						this = scope:recipient
					}
					top_liege = scope:puppet_or_actor.top_liege
				}
				trigger_event = diarchy.8023
			}
		}
		save_scope_value_as = {
			name = suppress_legitimacy_from_crime
			value = yes
		}
	}
}
if = {
	limit = {
		scope:recipient = {
			is_imprisoned_by = scope:puppet_or_actor
		}
	}
	hidden_effect = {
		scope:puppet_or_actor = {
			humsacd_a_hof_effect = {
				SACRIFICER = scope:puppet_or_actor
				SACRIFICED_HOF = scope:recipient
			}
		}
	}
	if = {
		limit = {
			always = scope:execution_public
		}
		if = {
			limit = {
				scope:puppet_or_actor.capital_county = {
					NOT = {
						has_county_modifier = held_public_execution_modifier
					}
				}
			}
			custom_description_no_bullet = {
				subject = scope:puppet_or_actor
				text = public_execution_tooltip
			}
			scope:puppet_or_actor = {
				capital_county = {
					add_county_modifier = {
						modifier = held_public_execution_modifier
						days = 1850
					}
				}
				custom_tooltip = public_execution_control_effect
				hidden_effect = {
					every_held_title = {
						title_tier = county
						change_county_control = executioner_control_value
					}
				}
			}
		}
		else = {
			custom_description_no_bullet = {
				text = public_execution_too_soon_tooltip
			}
		}
	}
	if = {
		limit = {
			NOT = {
				always = scope:execution_devour
			}
			scope:puppet_or_actor = {
				has_relation_rival = scope:recipient
				has_personality_malicious_trigger = yes
				has_royal_court = yes
				has_dlc_feature = court_artifacts
			}
			scope:recipient = {
				is_adult = yes
			}
		}
		scope:puppet_or_actor = {
			random = {
				chance = {
					value = 25
					if = {
						limit = {
							has_relation_nemesis = scope:recipient
						}
						add = 75
					}
				}
				hidden_effect = {
					scope:recipient = {
						save_scope_as = skull_to_boil
					}
					trigger_event = {
						id = artifact.7000
						days = { 3 10 }
					}
				}
			}
		}
	}
	if = {
		limit = {
			NOT = {
				always = scope:execution_devour
			}
			scope:puppet_or_actor = {
				is_adult = no
				age >= 4
				is_ai = no
				NOT = {
					has_character_flag = witnessed_execution_flag
				}
			}
			scope:recipient = {
				is_adult = yes
			}
		}
		scope:puppet_or_actor = {
			trigger_event = bp1_yearly.9045
		}
	}
	else_if = {
		limit = {
			NOT = {
				always = scope:execution_devour
			}
			scope:puppet_or_actor = {
				OR = {
					has_relation_friend = scope:recipient
					has_relation_lover = scope:recipient
				}
				is_ai = no
			}
			scope:recipient = {
				is_adult = yes
			}
		}
		scope:puppet_or_actor = {
			trigger_event = bp1_yearly.9044
		}
	}
	scope:puppet_or_actor = {
		if = {
			limit = {
				has_government = landless_adventurer_government
				scope:recipient = {
					is_landless_adventurer = no
					is_ruler = yes
				}
			}
			if = {
				limit = {
					scope:recipient.highest_held_title_tier >= tier_empire
				}
				laamp_rewards_apply_criminal_xp_effect = {
					TRACK = marauder
					XP_MAX = gallowsbait_xp_massive_gain
					XP_MIN = gallowsbait_xp_massive_g
# … (cut here; the rest is in the file)

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

Category
Imprisonment actions
Cost: Prestige
varies
In the menu
main list
ID
execute_prisoner_interaction

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