Interaction · Hostile actions
Trial-by-Combat
Challenge the recipient to a Trial-by-Combat
What you need
You
To send it
- You:
- You:
NOT = { has_truce = scope:recipient }
- You: Is not at war with the target
- You:
has_imprisonment_reason = scope:recipient
- You: Is not imprisoned
- The character you target: Is not imprisoned
To see it in the menu
- If played by the AI:
- Your culture: The Culture has the Crimes by Characters that you cannot Imprison and who aren't your Liege may be settled via Single Combat Tradition
- 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
- You › Their culture: The Culture has the Crimes by Characters that you cannot Imprison and who aren't your Liege may be settled via Single Combat Tradition
- The character you target › Their culture: The Culture has the Crimes by Characters that you cannot Imprison and who aren't your Liege may be settled via Single Combat Tradition
None of these
- Is a vassal (or below) of the target
- The character you target: Is a vassal (or below) of you
- The character you target:
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
- Their liege:
or
All of these
- Is a ruler
- Government is a Theocratic-type Government
Not all of these
- Their court owner:
One of these
- Is you
or
Any liege or above: Is you
- Their court owner:
Trial-by-Combat is a hostile character interaction in Crusader Kings III. The AI weighs it. Reasons the AI weighs include Craven hates Duels to the Death (-10), Forgiving hates Duels to the Death (-10), Compassionate disapproves of Duels to the Death (-10) and 26 more. It needs The Northern Lords. Patch 1.20.1.2, from game/common/character_interactions/01_fp1_interactions.txt.
Quick answers (1)
- How do I get the AI to accept Trial-by-Combat?
- The AI weighs it. Its reasons: Your Prowess, The recipient's Prowess, … Opinion of …, Craven hates Duels to the Death -10, Forgiving hates Duels to the Death -10, Compassionate disapproves of Duels to the Death -10, Brave loves Duels to the Death +20, Vengeful loves Duels to the Death +20, Callous approves of Duels to the Death +10, Sadistic loves Duels to the Death +20, Greedy disapproves of Duels for Gold -10, Generous approves of Duels for Gold +10, Arrogant disapproves of Duels for a Weak Hook -10, Paranoid disapproves of Duels for a Weak Hook -10, Arbitrary disapproves of Duels for a Weak Hook -10, Humble approves of Duels for a Weak Hook +10, Trusting approves of Duels for a Weak Hook +10, Just approves of Duels for a Weak Hook +10, Arrogant hates Duels for public humiliation -20, Vengeful hates Duels for public humiliation -20, Stubborn hates Duels for public humiliation -20, Humble approves of Duels for public humiliation +10, Forgiving approves of Duels for public humiliation +10, Fickle approves of Duels for public humiliation +10, Rank Difference +15, Rank Difference +10, Rank Difference +5, Rank Difference -10, Rank Difference -20, Rank Difference -30, They is your Rival +50 and They is your Nemesis +100.
Will they accept?
The AI adds these up and accepts above zero. Reasons in italics are the script's, with no label in the game.
| Reason | Amount |
|---|---|
| Base | 0 |
| Your Prowess | your prowess × -0.5 |
| The recipient's Prowess | their prowess × 0.5 |
| … Opinion of … | varies |
| Their personality (AI values: boldness (scripted), honor (scripted)) | varies |
| Craven hates Duels to the Death | -10 |
| Forgiving hates Duels to the Death | -10 |
Compassionate disapproves of Duels to the Deathwhen
| -10 |
| Brave loves Duels to the Death | +20 |
| Vengeful loves Duels to the Death | +20 |
| Callous approves of Duels to the Death | +10 |
| Sadistic loves Duels to the Death | +20 |
| Greedy disapproves of Duels for Gold | -10 |
| Generous approves of Duels for Gold | +10 |
| Arrogant disapproves of Duels for a Weak Hook | -10 |
| Paranoid disapproves of Duels for a Weak Hook | -10 |
| Arbitrary disapproves of Duels for a Weak Hook | -10 |
| Humble approves of Duels for a Weak Hook | +10 |
| Trusting approves of Duels for a Weak Hook | +10 |
| Just approves of Duels for a Weak Hook | +10 |
| Arrogant hates Duels for public humiliation | -20 |
| Vengeful hates Duels for public humiliation | -20 |
| Stubborn hates Duels for public humiliation | -20 |
| Humble approves of Duels for public humiliation | +10 |
| Forgiving approves of Duels for public humiliation | +10 |
| Fickle approves of Duels for public humiliation | +10 |
Rank Differencewhen
| +15 |
Rank Differencewhen
| +10 |
Rank Differencewhen
| +5 |
Rank Differencewhen
| -10 |
Rank Differencewhen
| -20 |
Rank Differencewhen
| -30 |
They is your Rivalwhen
| +50 |
They is your Nemesiswhen
| +100 |
Acceptance (ai_accept) (255 lines of game script)
base = 0
modifier = {
add = {
value = scope:puppet_or_actor.prowess
multiply = -0.5
}
desc = TBC_PROWESS_ACTOR
}
modifier = {
add = {
value = scope:recipient.prowess
multiply = 0.5
}
desc = TBC_PROWESS_RECIPIENT
}
opinion_modifier = {
who = scope:recipient
opinion_target = scope:puppet_or_actor
multiplier = -1
desc = AI_OPINION_REASON
}
ai_value_modifier = {
who = scope:recipient
ai_boldness = {
if = {
limit = {
scope:recipient = {
NOT = {
ai_boldness = 0
}
}
}
value = 0.5
}
}
ai_honor = {
if = {
limit = {
scope:recipient = {
NOT = {
ai_honor = 0
}
}
}
value = 0.5
}
}
}
modifier = {
add = -10
has_trait = craven
scope:tbc_death = yes
desc = TBC_OPINION_DEATH_TRAIT_CRAVEN
}
modifier = {
add = -10
has_trait = forgiving
scope:tbc_death = yes
desc = TBC_OPINION_DEATH_TRAIT_FORGIVING
}
modifier = {
add = -10
has_trait = compassionate
scope:tbc_death = yes
desc = TBC_OPINION_DEATH_TRAIT_COMPASSIONATE
}
modifier = {
add = 20
has_trait = brave
scope:tbc_death = yes
desc = TBC_OPINION_DEATH_TRAIT_BRAVE
}
modifier = {
add = 20
has_trait = vengeful
scope:tbc_death = yes
desc = TBC_OPINION_DEATH_TRAIT_VENGEFUL
}
modifier = {
add = 10
has_trait = callous
scope:tbc_death = yes
desc = TBC_OPINION_DEATH_TRAIT_CALLOUS
}
modifier = {
add = 20
has_trait = sadistic
scope:tbc_death = yes
desc = TBC_OPINION_DEATH_TRAIT_SADISTIC
}
modifier = {
add = -10
has_trait = greedy
scope:tbc_gold = yes
desc = TBC_OPINION_GOLD_TRAIT_GREEDY
}
modifier = {
add = 10
has_trait = generous
scope:tbc_gold = yes
desc = TBC_OPINION_GOLD_TRAIT_GENEROUS
}
modifier = {
add = -10
has_trait = arrogant
scope:tbc_weak_hook = yes
desc = TBC_OPINION_WEAK_HOOK_TRAIT_ARROGANT
}
modifier = {
add = -10
has_trait = paranoid
scope:tbc_weak_hook = yes
desc = TBC_OPINION_WEAK_HOOK_TRAIT_PARANOID
}
modifier = {
add = -10
has_trait = arbitrary
scope:tbc_weak_hook = yes
desc = TBC_OPINION_WEAK_HOOK_TRAIT_ARBITRARY
}
modifier = {
add = 10
has_trait = humble
scope:tbc_weak_hook = yes
desc = TBC_OPINION_WEAK_HOOK_TRAIT_HUMBLE
}
modifier = {
add = 10
has_trait = trusting
scope:tbc_weak_hook = yes
desc = TBC_OPINION_WEAK_HOOK_TRAIT_TRUSTING
}
modifier = {
add = 10
has_trait = just
scope:tbc_weak_hook = yes
desc = TBC_OPINION_WEAK_HOOK_TRAIT_JUST
}
modifier = {
add = -20
has_trait = arrogant
scope:tbc_humiliation = yes
desc = TBC_OPINION_HUMILIATION_TRAIT_ARROGANT
}
modifier = {
add = -20
has_trait = vengeful
scope:tbc_humiliation = yes
desc = TBC_OPINION_HUMILIATION_TRAIT_VENGEFUL
}
modifier = {
add = -20
has_trait = stubborn
scope:tbc_humiliation = yes
desc = TBC_OPINION_HUMILIATION_TRAIT_STUBBORN
}
modifier = {
add = 10
has_trait = humble
scope:tbc_humiliation = yes
desc = TBC_OPINION_HUMILIATION_TRAIT_HUMBLE
}
modifier = {
add = 10
has_trait = forgiving
scope:tbc_humiliation = yes
desc = TBC_OPINION_HUMILIATION_TRAIT_FORGIVING
}
modifier = {
add = 10
has_trait = fickle
scope:tbc_humiliation = yes
desc = TBC_OPINION_HUMILIATION_TRAIT_FICKLE
}
modifier = {
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:puppet_or_actor = {
tier_difference = {
target = scope:recipient
value >= 4
}
}
add = 15
}
modifier = {
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:puppet_or_actor = {
tier_difference = {
target = scope:recipient
value = 3
}
}
add = 10
}
modifier = {
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:puppet_or_actor = {
tier_difference = {
target = scope:recipient
value = 2
}
}
add = 5
}
modifier = {
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:puppet_or_actor = {
tier_difference = {
target = scope:recipient
value = -2
}
}
add = -10
}
modifier = {
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:puppet_or_actor = {
tier_difference = {
target = scope:recipient
value = -3
}
}
add = -20
}
modifier = {
desc = AI_REFUSAL_RANK_DIFFERENCE
scope:puppet_or_actor = {
tier_difference = {
target = scope:recipient
value <= -4
}
}
add = -30
}
modifier = {
desc = offer_vassalization_interaction_aibehavior_rival_tt
trigger = {
scope:recipient = {
has_relation_rival = scope:puppet_or_actor
NOT = {
has_relation_nemesis = scope:puppet_or_actor
}
}
}
add = 50
}
modifier = {
desc = offer_vassalization_interaction_aibehavior_nemesis_tt
trigger = {
scope:recipient = {
has_relation_nemesis = scope:puppet_or_actor
}
}
add = 100
}As written in game/common/character_interactions/01_fp1_interactions.txt.
What happens
If they accept
If
- The character you target:
One of these
or
Then
- The character you target: Event fp1_tbc.0101
- … is not a suitable fighter and will designate a skill knight as … champion instead
Otherwise
- You: Event fp1_tbc.0001
- The character you target:
If
- The option “tbc death” is chosen
Then
- 1 of 2 things will happen:
- 50% – If … … victorious:
- The character you target:
death = { killer = scope:puppet_or_actor death_reason = death_duel }
- You:
If
One of these
murdering_character_is_kinslaying_in_rite_trigger = { CHARACTER = scope:recipient RITE = scope:check_rite }or
All of these
- Your liege: Is of the same dynasty as the kinslayer me
murdering_character_is_kinslaying_in_rite_trigger = { CHARACTER = scope:recipient RITE = scope:check_rite_liege }
Then
If
- Is available
NOT = { knows_doctrine = doctrine_kinslaying_accepted }
Then
add_known_doctrine = doctrine_kinslaying_accepted
If
- Is close family of the target
Then
If
a check the game hides
Then
set_trait_rank = { trait = kinslayer rank = 3 }remove_piety_level_for_shunned_or_criminal_trait_effect = { TRAIT = trait:kinslayer_3 }
Otherwise
add_trait_force_tooltip = kinslayer_3
shunned_or_criminal_sf_impact_effect = { TRAIT = trait:kinslayer_3 }
Else if
- Is extended family of the target
Then
If
a check the game hides
Then
set_trait_rank = { trait = kinslayer rank = 2 }remove_piety_level_for_shunned_or_criminal_trait_effect = { TRAIT = trait:kinslayer_2 }
Otherwise
add_trait_force_tooltip = kinslayer_2
shunned_or_criminal_sf_impact_effect = { TRAIT = trait:kinslayer_2 }
Else if
- Is of the same dynasty as the target
Then
If
a check the game hides
Then
set_trait_rank = { trait = kinslayer rank = 1 }remove_piety_level_for_shunned_or_criminal_trait_effect = { TRAIT = trait:kinslayer_1 }
Otherwise
add_trait_force_tooltip = kinslayer_1
shunned_or_criminal_sf_impact_effect = { TRAIT = trait:kinslayer_1 }
- 50% – If … … victorious:
- You:
death = { killer = scope:recipient death_reason = death_duel }
- The character you target:
If
One of these
murdering_character_is_kinslaying_in_rite_trigger = { CHARACTER = scope:puppet_or_actor RITE = scope:check_rite }or
All of these
- Their liege: Is of the same dynasty as the kinslayer me
murdering_character_is_kinslaying_in_rite_trigger = { CHARACTER = scope:puppet_or_actor RITE = scope:check_rite_liege }
Then
If
- Is available
NOT = { knows_doctrine = doctrine_kinslaying_accepted }
Then
add_known_doctrine = doctrine_kinslaying_accepted
- If all of these hold:
- Conditions: Is close family of you
- Then:
If
a check the game hides
Then
set_trait_rank = { trait = kinslayer rank = 3 }remove_piety_level_for_shunned_or_criminal_trait_effect = { TRAIT = trait:kinslayer_3 }
Otherwise
add_trait_force_tooltip = kinslayer_3
shunned_or_criminal_sf_impact_effect = { TRAIT = trait:kinslayer_3 }
- Else, if all of these hold:
- Conditions: Is extended family of you
- Then:
If
a check the game hides
Then
set_trait_rank = { trait = kinslayer rank = 2 }remove_piety_level_for_shunned_or_criminal_trait_effect = { TRAIT = trait:kinslayer_2 }
Otherwise
add_trait_force_tooltip = kinslayer_2
shunned_or_criminal_sf_impact_effect = { TRAIT = trait:kinslayer_2 }
- Else, if all of these hold: … (more in the script below)
- 50% – If … … victorious:
- … (more in the script below)
If they refuse
- The character you target: Gain -150 Prestige
- Event fp1_tbc.0031
Options when sending
- Death
- Gold
- Weak Hook
- Humiliation
Events it fires: fp1_tbc.0101, fp1_tbc.0001, fp1_tbc.0031
• 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) (35 lines of game script)
is_available = trigger_if = {
limit = {
is_ai = yes
}
basic_can_have_trial_by_combat_trigger = yes
NOT = {
has_trait = craven
}
is_imprisoned = no
can_start_single_combat_trigger = yes
}
is_shown = can_have_trial_by_combat_trigger = yes
has_fp1_dlc_trigger = yes
scope:puppet_or_actor ?= {
this != scope:recipient
NOR = {
target_is_liege_or_above = scope:recipient
scope:recipient = {
target_is_liege_or_above = scope:puppet_or_actor
}
}
scope:recipient = {
is_landed_or_landless_administrative_or_theocratic = yes
NAND = {
court_owner ?= {
OR = {
this = scope:puppet_or_actor
any_liege_or_above = {
this = scope:puppet_or_actor
}
}
}
}
}
}As written in game/common/character_interactions/01_fp1_interactions.txt.
Can be sent when (is_valid…) (9 lines of game script)
trial_by_combat_is_valid_trigger = yes
scope:puppet_or_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/01_fp1_interactions.txt.
Effects (on_send, on_accept, on_decline) (174 lines of game script)
on_send = scope:puppet_or_actor = {
add_character_flag = {
flag = flag_hostile_actions_disabled_delay
days = 10
}
}
on_accept = if = {
limit = {
scope:recipient = {
OR = {
can_start_single_combat_eligibility_checks_trigger = no
NOT = {
can_be_combatant_based_on_gender_trigger = {
ARMY_OWNER = scope:recipient
}
}
}
}
}
scope:recipient = {
trigger_event = fp1_tbc.0101
}
custom_tooltip = fp1_tbc_recipient_will_designate_champion
}
else = {
scope:recipient = {
save_scope_as = champion
}
scope:puppet_or_actor = {
trigger_event = fp1_tbc.0001
}
}
if = {
limit = {
always = scope:tbc_death
}
show_as_tooltip = {
random_list = {
50 = {
show_chance = no
desc = fp1_tbc_winner_actor
fp1_tbc_death_effect = {
TBC_VICTOR = scope:puppet_or_actor
TBC_LOSER = scope:recipient
}
scope:puppet_or_actor = {
add_kinslayer_trait_or_nothing_effect = {
VICTIM = scope:recipient
}
}
}
50 = {
show_chance = no
desc = fp1_tbc_winner_recipient
fp1_tbc_death_effect = {
TBC_VICTOR = scope:recipient
TBC_LOSER = scope:puppet_or_actor
}
scope:recipient = {
add_kinslayer_trait_or_nothing_effect = {
VICTIM = scope:puppet_or_actor
}
}
}
}
}
}
if = {
limit = {
always = scope:tbc_gold
}
show_as_tooltip = {
random_list = {
50 = {
show_chance = no
desc = fp1_tbc_winner_actor
fp1_tbc_gold_effect = {
TBC_VICTOR = scope:puppet_or_actor
TBC_LOSER = scope:recipient
}
}
50 = {
show_chance = no
desc = fp1_tbc_winner_recipient
fp1_tbc_actor_defeated_effect = {
TBC_LOSER = scope:puppet_or_actor
TBC_VICTOR = scope:recipient
}
}
}
}
}
if = {
limit = {
always = scope:tbc_weak_hook
}
show_as_tooltip = {
random_list = {
50 = {
show_chance = no
desc = fp1_tbc_winner_actor
fp1_tbc_hook_effect = {
TBC_VICTOR = scope:puppet_or_actor
TBC_LOSER = scope:recipient
}
}
50 = {
show_chance = no
desc = fp1_tbc_winner_recipient
fp1_tbc_actor_defeated_effect = {
TBC_LOSER = scope:puppet_or_actor
TBC_VICTOR = scope:recipient
}
}
}
}
}
if = {
limit = {
always = scope:tbc_humiliation
}
show_as_tooltip = {
random_list = {
50 = {
show_chance = no
desc = fp1_tbc_winner_actor
fp1_tbc_humiliation_effect = {
TBC_LOSER = scope:recipient
TBC_VICTOR = scope:puppet_or_actor
}
}
50 = {
show_chance = no
desc = fp1_tbc_winner_recipient
fp1_tbc_actor_defeated_effect = {
TBC_LOSER = scope:puppet_or_actor
TBC_VICTOR = scope:recipient
}
}
}
}
}
if = {
limit = {
scope:puppet_or_actor = {
has_character_flag = flag_hostile_actions_disabled_delay
}
}
scope:puppet_or_actor = {
remove_character_flag = flag_hostile_actions_disabled_delay
}
}
add_clan_unity_interaction_effect = {
CHARACTER = scope:puppet_or_actor
TARGET = scope:recipient
VALUE = medium_unity_loss
DESC = clan_unity_trial_by_combat.desc
REVERSE_NON_HOUSE_TARGET = no
}
on_decline = scope:recipient = {
add_prestige = medium_prestige_loss
}
scope:puppet_or_actor = {
trigger_event = fp1_tbc.0031
hidden_effect = {
remove_interaction_cooldown = challenge_to_trial_by_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/01_fp1_interactions.txt.
- Category
- Hostile actions
- Cooldown
- 5 years
- Again on the same character
- after 10 years
- DLC
- The Northern Lords
- In the menu
- main list
- ID
challenge_to_trial_by_combat_interaction
Source: game/common/character_interactions/01_fp1_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.