Interaction · Hostile actions
Challenge to Duel
Challenge a non-Bureaucratic Character of Martial gender to a Duel, inflicting Stress if you win
What you need
You
To send it
- You:
If
- Your culture: The Culture has the Stalwart Leader Single Combat available against any non-Bureaucratic Character of Martial gender of equal or lower Rank Tradition
- The target’s culture: Their Culture has the Stalwart Leader Single Combat available against any non-Bureaucratic Character of Martial gender of equal or lower Rank Tradition
Then
None of these
- You: you has administrative government mechanic
- The character you target: they has administrative government mechanic
- The character you target:
is_liege_or_above_of = scope:actor
All of these
- The character you target:
If
a check the game hides
Then
- Their house: Has the house check as house head
exists = scope:actor.housescope:recipient.house ?= scope:actor.house
- The character you target:
Also needed: not imprisoned
To see it in the menu
- If played by the AI:
- Any relation:
One of these
- Has the Stalwart Leader Perk
or
Your culture: The Culture has the May challenge Rivals to Single Combat, inflicting Stress if you win Traditionor
Your Government is Nomadicor
Your Government is Sōryō
- Does not have the Trait: Craven
- Is not imprisoned
- 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
One of these
- Has the Stalwart Leader Perk
or
Your culture: The Culture has the May challenge Rivals to Single Combat, inflicting Stress if you win Traditionor
Your Government is Nomadicor
Your Government is Sōryō
One of these
- You: Has the target as rival
or
All of these
- You:
- Has the Stalwart Leader Perk
- Your Government is Nomadic
- The character you target:
- You:
or
All of these
- You:
- Has the Stalwart Leader Perk
- Your culture: The Culture has the Stalwart Leader Single Combat available against any non-Bureaucratic Character of Martial gender of equal or lower Rank Tradition
- The character you target:
- You:
Challenge to Duel 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. The AI weighs it (the answer is partly random). Reasons the AI weighs include Rank Difference (+15), Rank Difference (+10), Rank Difference (+5) and 4 more. It costs 150 Prestige. Patch 1.20.1.2, from game/common/character_interactions/00_perk_interactions.txt.
Quick answers (3)
- What are the requirements for Challenge to Duel 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)
- How do I get the AI to accept Challenge to Duel?
- The AI weighs it (the answer is partly random). Its reasons: Relative Prowess, Relative Prowess, Rank Difference +15, Rank Difference +10, Rank Difference +5, Rank Difference -10, Rank Difference -20, Rank Difference -30, They is your Nemesis +50 and Wants to decrease House Unity.
- How much does Challenge to Duel cost?
- 150 Prestige (patch 1.20.1.2).
Will they accept?
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.
| Reason | Amount |
|---|---|
| Base | 0 |
Relative Prowesswhen
| varies |
Relative Prowesswhen
| varies |
| Their personality (AI values: boldness (scripted), vengefulness (scripted), honor (scripted)) | varies |
Rank Differencewhen
| +15 |
Rank Differencewhen
| +10 |
Rank Differencewhen
| +5 |
Rank Differencewhen
| -10 |
Rank Differencewhen
| -20 |
Rank Differencewhen
| -30 |
They is your Nemesiswhen
| +50 |
Wants to decrease House Unitywhen
| varies |
Acceptance (ai_accept) (137 lines of game script)
base = 0
modifier = {
desc = CTSC_RELATIVE_PROWESS
scope:actor.prowess < scope:recipient.prowess
add = {
value = scope:recipient.prowess
subtract = scope:actor.prowess
multiply = 2
}
}
modifier = {
desc = CTSC_RELATIVE_PROWESS
scope:recipient.prowess < scope:actor.prowess
add = {
value = scope:actor.prowess
subtract = scope:recipient.prowess
multiply = -2
}
}
ai_value_modifier = {
who = scope:recipient
ai_boldness = {
if = {
limit = {
scope:recipient = {
ai_boldness > 0
ai_rationality < 0
}
}
value = 2
}
else_if = {
limit = {
scope:recipient = {
NOT = {
ai_boldness = 0
}
}
}
value = 1
}
}
ai_vengefulness = {
if = {
limit = {
scope:recipient = {
NOT = {
ai_vengefulness = 0
}
}
}
value = 0.75
}
}
ai_honor = {
if = {
limit = {
scope:recipient = {
ai_honor > 0
}
}
value = 0.5
}
}
}
modifier = {
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:actor = {
tier_difference = {
target = scope:recipient
value >= 4
}
}
add = 15
}
modifier = {
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:actor = {
tier_difference = {
target = scope:recipient
value = 3
}
}
add = 10
}
modifier = {
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:actor = {
tier_difference = {
target = scope:recipient
value = 2
}
}
add = 5
}
modifier = {
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:actor = {
tier_difference = {
target = scope:recipient
value = -2
}
}
add = -10
}
modifier = {
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:actor = {
tier_difference = {
target = scope:recipient
value = -3
}
}
add = -20
}
modifier = {
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:actor = {
tier_difference = {
target = scope:recipient
value <= -4
}
}
add = -30
}
modifier = {
desc = offer_vassalization_interaction_aibehavior_nemesis_tt
trigger = {
scope:recipient = {
has_relation_nemesis = scope:actor
}
}
add = 50
}
evaluate_action_decreasing_house_unity = {
VALUE = 100
}As written in game/common/character_interactions/00_perk_interactions.txt.
What happens
If they accept
- A non-lethal Single Combat will commence immediately
- The victor loses Stress
- The loser gains Stress
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
If
- You › Your house:
One of these
- House unity is harmonious
or
House unity is friendly
Then
If
Then
- Your house:
add_unity_value = { … }
- Your house:
- This is due to your active House Unity Level
- You › Your house:
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) (54 lines of game script)
is_available = trigger_if = {
limit = {
is_ai = yes
}
any_relation = {
type = rival
}
can_challenge_rival_to_single_combat_trigger = yes
NOT = {
has_trait = craven
}
is_imprisoned = no
can_start_single_combat_trigger = yes
}
is_shown = scope:actor = {
can_challenge_rival_to_single_combat_trigger = yes
}
OR = {
scope:actor = {
has_relation_rival = scope:recipient
}
AND = {
scope:actor = {
has_perk = stalwart_leader_perk
government_has_flag = government_is_nomadic
}
scope:recipient = {
government_has_flag = government_is_nomadic
NOT = {
is_close_family_of = scope:actor
}
can_be_combatant_based_on_gender_trigger = {
ARMY_OWNER = scope:actor
}
}
}
AND = {
scope:actor = {
has_perk = stalwart_leader_perk
culture ?= {
has_cultural_parameter = stalwart_leader_non_admin_duels
}
}
scope:recipient = {
culture ?= {
has_cultural_parameter = stalwart_leader_non_admin_duels
}
can_be_combatant_based_on_gender_trigger = {
ARMY_OWNER = scope:actor
}
}
}
}
scope:actor != scope:recipientAs written in game/common/character_interactions/00_perk_interactions.txt.
Can be sent when (is_valid…) (52 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
}
trigger_if = {
limit = {
scope:actor.culture = {
has_cultural_parameter = stalwart_leader_non_admin_duels
}
scope:recipient.culture = {
has_cultural_parameter = stalwart_leader_non_admin_duels
}
}
NOR = {
scope:actor = {
government_has_mechanic = administrative
}
scope:recipient = {
government_has_mechanic = administrative
}
scope:recipient = {
is_liege_or_above_of = scope:actor
}
AND = {
scope:recipient = {
is_house_head = yes
}
exists = scope:actor.house
scope:recipient.house ?= scope:actor.house
}
}
}
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_perk_interactions.txt.
Effects (on_send, on_accept, on_decline) (70 lines of game script)
on_send = scope:actor = {
add_character_flag = {
flag = flag_hostile_actions_disabled_delay
days = 10
}
}
on_accept = scope:actor = {
custom_tooltip = challenge_to_single_combat_interaction.enter_non_lethal_bout.tt
custom_tooltip = challenge_to_single_combat_interaction.victor_gets.tt
custom_tooltip = challenge_to_single_combat_interaction.loser_gets.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 = perk_interaction.0101
INVALIDATION_EVENT = perk_interaction.0102
}
if = {
limit = {
scope:actor = {
exists = scope:actor.house
house = {
OR = {
has_house_unity_stage = harmonious
has_house_unity_stage = friendly
}
}
}
}
add_clan_unity_interaction_effect = {
CHARACTER = scope:actor
TARGET = scope:recipient
VALUE = medium_unity_loss
DESC = clan_unity_challenge_to_combat.desc
REVERSE_NON_HOUSE_TARGET = no
}
custom_description_no_bullet = {
text = active_unity_level_description_tt
}
}
on_decline = scope:actor = {
send_interface_toast = {
type = event_toast_effect_bad
title = challenge_to_single_combat_interaction.challenge_rejected.t
left_icon = scope:recipient
right_icon = scope:actor
scope:recipient = {
add_prestige = medium_prestige_loss
}
show_as_tooltip = {
add_prestige = medium_prestige_value
}
}
hidden_effect = {
add_prestige_no_experience = medium_prestige_value
}
hidden_effect = {
remove_interaction_cooldown = challenge_to_single_combat_interaction
}
if = {
limit = {
has_character_flag = flag_hostile_actions_disabled_delay
}
remove_character_flag = flag_hostile_actions_disabled_delay
}
}As written in game/common/character_interactions/00_perk_interactions.txt.
- Category
- Hostile actions
- Cost: Prestige
- 150
- Cooldown
- 5 years
- Again on the same character
- after 10 years
- In the menu
- main list
- ID
challenge_to_single_combat_interaction
Source: game/common/character_interactions/00_perk_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.