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

Interaction · Hostile actions

Challenge for Artifact

from 150PrestigeThe AI weighs it (the answer is partly random)

Challenge the recipient to a non-lethal duel for an Artifact you have a claim on

What you need

You

To send it

  • You:
    • 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
    • NOT = { has_truce = scope:recipient }
    • Is not at war with the target
  • Also needed: not imprisoned

To see it in the menu

  • If played by the AI:
    • has_outstanding_artifact_claims = yes
    • Ai greed at least -20
    • 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
    • Is not imprisoned
    • Does not have the Trait: Craven

The character you target

To send it

  • Is an Adult
  • Does not have the Trait: Pregnant
  • Does not have the Trait: Incapable
  • Does not have the Trait: Blind
  • Also needed: none of the traits Consumption, Typhus, Bubonic Plague, Smallpox, Measles, Bloody Flux · not imprisoned

To see it in the menu

  • If

    a check the game hides

    Then

    • None of these

      • Their activity:
        • has_activity_type = activity_coronation
        • activity_host ?= scope:recipient

Challenge for Artifact 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 6 more. It costs Prestige (from 150). Patch 1.20.1.2, from game/common/character_interactions/00_artifact_interactions.txt.

for a guide, post or blog
Quick answers (3)
What are the requirements for Challenge for Artifact 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 for Artifact?
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 -20, Rank Difference -30, Rank Difference -40, They is your Rival +30, They is your Nemesis +50, Cannot afford Prestige loss +30 and Wants to decrease House Unity.
How much does Challenge for Artifact cost?
Prestige (from 150) (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.

ReasonAmount
Base+50
Relative Prowess
when
  • root.prowess < scope:recipient.prowess
varies
Relative Prowess
when
  • scope:recipient.prowess < scope:actor.prowess
varies
Their personality (AI values: boldness 1, vengefulness 0.75, honor 0.5, rationality -0.25, greed -0.5)varies
Rank Difference
when
  • tier_difference = { target = scope:recipient value >= 4 }
+15
Rank Difference
when
  • tier_difference = { target = scope:recipient value = 3 }
+10
Rank Difference
when
  • tier_difference = { target = scope:recipient value = 2 }
+5
Rank Difference
when
  • tier_difference = { target = scope:recipient value = -2 }
-20
Rank Difference
when
  • tier_difference = { target = scope:recipient value = -3 }
-30
Rank Difference
when
  • tier_difference = { target = scope:recipient value <= -4 }
-40
They is your Rival
when
  • The character you target: Has you as rival
+30
They is your Nemesis
when
  • The character you target: Has you as nemesis
+50
Cannot afford Prestige loss
when
  • scope:recipient.prestige < challenge_for_artifact_prestige_limit_value
+30
Wants to decrease House Unity
when
varies
Acceptance (ai_accept) (115 lines of game script)
base = 50
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 = 1
	ai_vengefulness = 0.75
	ai_honor = 0.5
	ai_rationality = -0.25
	ai_greed = -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 = -20
}
modifier = {
	desc = AI_REFUSAL_RANK_DIFFERENCE
	scope:actor = {
		tier_difference = {
			target = scope:recipient
			value = -3
		}
	}
	add = -30
}
modifier = {
	desc = AI_REFUSAL_RANK_DIFFERENCE
	scope:actor = {
		tier_difference = {
			target = scope:recipient
			value <= -4
		}
	}
	add = -40
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_rival_tt
	trigger = {
		scope:recipient = {
			has_relation_rival = scope:actor
		}
	}
	add = 30
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_nemesis_tt
	trigger = {
		scope:recipient = {
			has_relation_nemesis = scope:actor
		}
	}
	add = 50
}
modifier = {
	desc = cannot_afford_prestige_loss_tt
	trigger = {
		scope:recipient.prestige < challenge_for_artifact_prestige_limit_value
	}
	add = 30
}
evaluate_action_decreasing_house_unity = {
	VALUE = 100
}

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

What happens

If they accept

  • A non-lethal Single Combat will commence immediately
  • The Victor will keep or gain the Artifact
  • The Loser will lose the Artifact or any Personal Artifact Claim
  • 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_armament
          • One of these

            • artifact_type = axe
            • or

              artifact_type = hammer
            • or

              artifact_type = spear
            • or

              artifact_type = mace
            • or

              artifact_type = dagger
            • or

              artifact_type = sword

        Then

        • One random equipped character artifact:
          • Where:
            • artifact_slot_type = primary_armament
            • One of these

              • artifact_type = axe
              • or

                artifact_type = hammer
              • or

                artifact_type = spear
              • or

                artifact_type = mace
              • or

                artifact_type = dagger
              • or

                artifact_type = sword
          • clear_saved_scope = equipped_signature_weapon
    • 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_armament
          • One of these

            • artifact_type = axe
            • or

              artifact_type = hammer
            • or

              artifact_type = spear
            • or

              artifact_type = mace
            • or

              artifact_type = dagger
            • or

              artifact_type = sword

        Then

        • One random equipped character artifact:
          • Where:
            • artifact_slot_type = primary_armament
            • One of these

              • artifact_type = axe
              • or

                artifact_type = hammer
              • or

                artifact_type = spear
              • or

                artifact_type = mace
              • or

                artifact_type = dagger
              • or

                artifact_type = sword
          • clear_saved_scope = equipped_signature_weapon
    • The sc defender: Event single_combat.0001

    Otherwise

    • error_log = debug_log.single_combat_setup.attacker_and_defender_same_person
  • 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 = { … }

If they refuse

  • 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 = { … }
  • The character you target:
    • add_prestige = { value = 0 subtract = challenge_for_artifact_prestige_cost_value }
  • Gain … Prestige

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) (37 lines of game script)
is_available = trigger_if = {
	limit = {
		is_ai = yes
	}
	has_outstanding_artifact_claims = yes
	ai_greed >= low_negative_ai_value
	can_start_single_combat_trigger = yes
	is_imprisoned = no
	NOT = {
		has_trait = craven
	}
}
is_shown = scope:actor != scope:recipient
custom_description = {
	text = challenge_for_artifact_interaction_valid_tt_1
	scope:recipient = {
		any_character_artifact = {
			can_be_claimed_by = scope:actor
			NOT = {
				has_variable = is_tribute_mission_artifact
			}
		}
	}
}
scope:recipient = {
	trigger_if = {
		limit = {
			exists = involved_activity
		}
		NOT = {
			involved_activity ?= {
				has_activity_type = activity_coronation
				activity_host ?= scope:recipient
			}
		}
	}
}

As written in game/common/character_interactions/00_artifact_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:recipient = {
	is_imprisoned = no
}
scope:actor = {
	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_artifact_interactions.txt.

Effects (on_send, on_accept, on_decline) (65 lines of game script)
on_send = scope:actor = {
	add_character_flag = {
		flag = flag_hostile_actions_disabled_delay
		days = 10
	}
}
on_accept = scope:actor = {
	remove_character_flag = flag_hostile_actions_disabled_delay
}
scope:actor = {
	custom_tooltip = challenge_to_single_combat_interaction.enter_non_lethal_bout.tt
	custom_tooltip = challenge_to_artifact_combat_interaction_victor_gets.tt
	custom_tooltip = challenge_to_artifact_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 = artifact.2001
	INVALIDATION_EVENT = fp1_tbc.0021
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:actor
	TARGET = scope:recipient
	VALUE = major_unity_loss
	DESC = clan_unity_challenge_artifact.desc
	REVERSE_NON_HOUSE_TARGET = no
}
on_decline = add_clan_unity_interaction_effect = {
	CHARACTER = scope:actor
	TARGET = scope:recipient
	VALUE = minor_unity_gain
	DESC = clan_unity_challenge_artifact_refusal.desc
	REVERSE_NON_HOUSE_TARGET = no
}
scope:actor = {
	send_interface_toast = {
		type = event_toast_effect_neutral
		title = challenge_to_single_combat_interaction.challenge_rejected.t
		left_icon = scope:recipient
		right_icon = scope:actor
		scope:recipient = {
			add_prestige = {
				value = 0
				subtract = challenge_for_artifact_prestige_cost_value
			}
		}
		show_as_tooltip = {
			add_prestige = challenge_for_artifact_prestige_cost_value
		}
	}
	hidden_effect = {
		add_prestige_no_experience = challenge_for_artifact_prestige_cost_value
		remove_interaction_cooldown = challenge_for_artifact_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_artifact_interactions.txt.

Category
Hostile actions
Cost: Prestige
from 150
Cooldown
2 years
Again on the same character
after 5 years
In the menu
main list
ID
challenge_for_artifact_interaction

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