Interaction · Hostile actions
Punish Criminal
Challenge a Criminal to a Duel to enforce their punishment if you win.
What you need
You
To send it
- You:
Also needed: not imprisoned
To see it in the menu
- If played by the AI:
- Has the Trait: Wrathful
One of these
has_imprisonment_reason = scope:recipientor
has_banish_reason = scope:recipientor
has_execute_reason = scope:recipient
- The character you target:
One of these
All of these
- Is a vassal (or below) of the allowed imprisoner
If
is_foreign_court_guest = yes
Then
- Their host: Is a vassal (or below) of the allowed imprisoner
or
Is a guest at the allowed imprisoner’s courtor
All of these
- Has a Adventurer Government
reverse_has_opinion_modifier = { target = scope:allowed_imprisoner modifier = eviction_ignored_opinion }
- Is not imprisoned by the allowed imprisoner
Punish Criminal is a hostile character interaction in Crusader Kings III. You need: Is not imprisoned. The character you target needs: Is an Adult, Does not have the Trait: Pregnant, Does not have the Trait: Incapable and 3 more. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/00_trait_interactions.txt.
Quick answers (2)
- What are the requirements for Punish Criminal in CK3?
- You: Is not imprisoned. The character you target: Is an Adult, Does not have the Trait: Pregnant, Does not have the Trait: Incapable, Does not have the Trait: Blind, Has none of the traits: Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux and Is not imprisoned. (patch 1.20.1.2)
- Will the AI accept Punish Criminal?
- Yes: it is accepted automatically.
Will they accept?
The other character has no choice: the game accepts it automatically.
What happens
Effects
If
- You:
has_execute_reason = scope:recipient
Then
- You: You will execute … if you win.
If
a check the game hides
Then
clear_saved_scope = sc_finished
If
- The sc attacker is not the sc defender
Then
- The sc attacker:
If
- Does not have “temporary signature weapon” (a variable the game's script sets)
- Any equipped character artifact:
artifact_slot_type = primary_armamentOne of these
artifact_type = axeor
artifact_type = hammeror
artifact_type = spearor
artifact_type = maceor
artifact_type = daggeror
artifact_type = sword
Then
- One random equipped character artifact:
- Where:
artifact_slot_type = primary_armamentOne of these
artifact_type = axeor
artifact_type = hammeror
artifact_type = spearor
artifact_type = maceor
artifact_type = daggeror
artifact_type = sword
clear_saved_scope = equipped_signature_weapon
- Where:
- The sc defender:
If
- Does not have “temporary signature weapon” (a variable the game's script sets)
- Any equipped character artifact:
artifact_slot_type = primary_armamentOne of these
artifact_type = axeor
artifact_type = hammeror
artifact_type = spearor
artifact_type = maceor
artifact_type = daggeror
artifact_type = sword
Then
- One random equipped character artifact:
- Where:
artifact_slot_type = primary_armamentOne of these
artifact_type = axeor
artifact_type = hammeror
artifact_type = spearor
artifact_type = maceor
artifact_type = daggeror
artifact_type = sword
clear_saved_scope = equipped_signature_weapon
- Where:
- The sc defender: Event single_combat.0001
Otherwise
error_log = debug_log.single_combat_setup.attacker_and_defender_same_person
Else if
- You:
has_banish_reason = scope:recipient
Then
- You: You will banish … if you win.
If
a check the game hides
Then
clear_saved_scope = sc_finished
If
- The sc attacker is not the sc defender
Then
- The sc attacker:
If
- Does not have “temporary signature weapon” (a variable the game's script sets)
- Any equipped character artifact:
artifact_slot_type = primary_armamentOne of these
artifact_type = axeor
artifact_type = hammeror
artifact_type = spearor
artifact_type = maceor
artifact_type = daggeror
artifact_type = sword
Then
- One random equipped character artifact:
- Where:
artifact_slot_type = primary_armamentOne of these
artifact_type = axeor
artifact_type = hammeror
artifact_type = spearor
artifact_type = maceor
artifact_type = daggeror
artifact_type = sword
clear_saved_scope = equipped_signature_weapon
- Where:
- You:
Events it fires: single_combat.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) (22 lines of game script)
is_available = trigger_if = {
limit = {
is_ai = yes
}
has_trait = wrathful
can_start_single_combat_trigger = yes
is_imprisoned = no
}
is_shown = scope:actor = {
has_trait = wrathful
}
scope:actor = {
OR = {
has_imprisonment_reason = scope:recipient
has_banish_reason = scope:recipient
has_execute_reason = scope:recipient
}
basic_allowed_to_imprison_character_trigger = {
CHARACTER = scope:recipient
}
}
scope:actor != scope:recipientAs written in game/common/character_interactions/00_trait_interactions.txt.
Can be sent when (is_valid…) (24 lines of game script)
rival_single_combat_shown_and_not_invalid_trigger = yes
scope:recipient = {
can_start_single_combat_trigger = yes
}
scope:recipient = {
custom_description = {
text = fp1_tbc_recipient_banned_from_combat
can_start_single_combat_banned_checks_trigger = no
}
}
scope:actor = {
is_imprisoned = no
}
scope:recipient = {
is_imprisoned = no
}
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_trait_interactions.txt.
Effects (on_send, on_accept, on_decline) (66 lines of game script)
on_send = scope:actor = {
add_character_flag = {
flag = flag_hostile_actions_disabled_delay
days = 10
}
}
on_accept = if = {
limit = {
scope:actor = {
has_execute_reason = scope:recipient
}
}
scope:actor = {
custom_tooltip = force_duel_criminals_interaction.execute_punishment.tt
}
configure_start_single_combat_effect = {
SC_INITIATOR = scope:actor
SC_ATTACKER = scope:actor
SC_DEFENDER = scope:recipient
FATALITY = no
FIXED = no
LOCALE = terrain_scope
OUTPUT_EVENT = trait_specific_interactions.0155
INVALIDATION_EVENT = fp1_tbc.0102
}
}
else_if = {
limit = {
scope:actor = {
has_banish_reason = scope:recipient
}
}
scope:actor = {
custom_tooltip = force_duel_criminals_interaction.banish_punishment.tt
}
configure_start_single_combat_effect = {
SC_INITIATOR = scope:actor
SC_ATTACKER = scope:actor
SC_DEFENDER = scope:recipient
FATALITY = no
FIXED = no
LOCALE = terrain_scope
OUTPUT_EVENT = trait_specific_interactions.0153
INVALIDATION_EVENT = fp1_tbc.0102
}
}
else_if = {
limit = {
scope:actor = {
has_imprisonment_reason = scope:recipient
}
}
scope:actor = {
custom_tooltip = force_duel_criminals_interaction.imprison_punishment.tt
}
configure_start_single_combat_effect = {
SC_INITIATOR = scope:actor
SC_ATTACKER = scope:actor
SC_DEFENDER = scope:recipient
FATALITY = no
FIXED = no
LOCALE = terrain_scope
OUTPUT_EVENT = trait_specific_interactions.0151
INVALIDATION_EVENT = fp1_tbc.0102
}
}As written in game/common/character_interactions/00_trait_interactions.txt.
- Category
- Hostile actions
- Again on the same character
- after 10 years
- In the menu
- main list
- ID
force_duel_criminals_interaction
Source: game/common/character_interactions/00_trait_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.