Information
I have verifed my game files (Steam only)
YesI have disabled all mods
YesI am running the latest game update
YesRequired
Summary
Dynastic Kinslayer trait is treated as crime unless Kinslaying is set to "Accepted" or "Shunned."Description
The problem seems to rise in an inconsistency for the kinslayer traits. Looking at the traits file we can see the following:kinslayer_1 = {
dynasty_opinion = -5
category = fame
group = kinslayer
level = 1
shown_in_ruler_designer = no
# Criminal for dynasty
triggered_opinion = {
parameter = kinslaying_close_kin_crime
opinion_modifier = kinslayer_crime_dynasty
same_dynasty = yes
}
# Opinion hit for everyone
triggered_opinion = {
parameter = kinslaying_close_kin_crime
opinion_modifier = kinslayer_intolerant
}
triggered_opinion = {
parameter = kinslaying_extended_family_crime
opinion_modifier = kinslayer_intolerant
}
triggered_opinion = {
parameter = kinslaying_any_dynasty_member_crime
opinion_modifier = kinslayer_intolerant
}
triggered_opinion = {
parameter = kinslaying_shunned
opinion_modifier = kinslayer_intolerant
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
NOT = { exists = this }
}
desc = trait_kinslayer_1_desc
}
desc = trait_kinslayer_1_character_desc
}
}
}
kinslayer_2 = {
dynasty_opinion = -5
close_relative_opinion = -5
category = fame
group = kinslayer
level = 2
shown_in_ruler_designer = no
# Criminal for extended family
triggered_opinion = {
parameter = kinslaying_close_kin_crime
opinion_modifier = kinslayer_crime_dynasty
same_dynasty = yes
}
triggered_opinion = {
parameter = kinslaying_extended_family_crime
opinion_modifier = kinslayer_crime_dynasty
same_dynasty = yes
}
# Opinion hit for everyone
triggered_opinion = {
parameter = kinslaying_close_kin_crime
opinion_modifier = kinslayer_intolerant
}
triggered_opinion = {
parameter = kinslaying_extended_family_crime
opinion_modifier = kinslayer_intolerant
}
triggered_opinion = {
parameter = kinslaying_any_dynasty_member_crime
opinion_modifier = kinslayer_intolerant
}
triggered_opinion = {
parameter = kinslaying_shunned
opinion_modifier = kinslayer_intolerant
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
NOT = { exists = this }
}
desc = trait_kinslayer_2_desc
}
desc = trait_kinslayer_2_character_desc
}
}
}
kinslayer_3 = {
dynasty_opinion = -5
close_relative_opinion = -10
category = fame
group = kinslayer
level = 3
shown_in_ruler_designer = no
# Criminal for close family
triggered_opinion = {
parameter = kinslaying_close_kin_crime
opinion_modifier = kinslayer_crime_dynasty
same_dynasty = yes
}
# Criminal for extended family
triggered_opinion = {
parameter = kinslaying_extended_family_crime
opinion_modifier = kinslayer_crime_dynasty
same_dynasty = yes
}
# Criminal for dynasty
triggered_opinion = {
parameter = kinslaying_any_dynasty_member_crime
opinion_modifier = kinslayer_crime_dynasty
same_dynasty = yes
}
# Opinion hit for everyone
triggered_opinion = {
parameter = kinslaying_close_kin_crime
opinion_modifier = kinslayer_intolerant
}
triggered_opinion = {
parameter = kinslaying_extended_family_crime
opinion_modifier = kinslayer_intolerant
}
triggered_opinion = {
parameter = kinslaying_any_dynasty_member_crime
opinion_modifier = kinslayer_intolerant
}
triggered_opinion = {
parameter = kinslaying_shunned
opinion_modifier = kinslayer_intolerant
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
NOT = { exists = this }
}
desc = trait_kinslayer_3_desc
}
desc = trait_kinslayer_3_character_desc
}
}
}
As can be seen, kinslayer_1 is a crime if you have a religion that forbids killing close kin (despite the comment suggesting it should "just" be criminal for killing dynasty members), kinslayer_2 applies if your religion forbids killing close family, and kinslayer_3 applies if your religion forbids you from killing anyone in the dynasty. So, we'd expect kinslayer 1 to be "Kinslayer", kinslayer_2 to be "Familial Kinslayer", and kinslayer_3 to be "Dynastic Kinslayer." However, if we check the localization files, we find this...
trait_kinslayer_1:0 "Dynastic Kinslayer"
trait_kinslayer_1_desc:0 "This character has committed the sin of murdering a dynasty member."
trait_kinslayer_1_character_desc:0 "[ROOT.GetCharacter.GetFirstNameNoTooltip] has committed the sin of murdering a dynasty member."
trait_kinslayer_2:0 "Familial Kinslayer"
trait_kinslayer_2_desc:0 "This character has slain a member of their extended family."
trait_kinslayer_2_character_desc:0 "[ROOT.GetCharacter.GetFirstNameNoTooltip] has slain a member of [ROOT.GetCharacter.GetHerHis] extended family."
trait_kinslayer_3:0 "Kinslayer"
trait_kinslayer_3_desc:0 "This character is known for having slain close kin."
trait_kinslayer_3_character_desc:0 "[ROOT.GetCharacter.GetFirstNameNoTooltip] is known for having slain close kin."
So the localization file correctly marks kinslayer_2 as Familial Kinslayer, but kinslayers 1 and 3 are swapped. Of course, if this is JUST a localization file issue, it might make the kinslayer traits look weird, but wouldn't affect gameplay. Unfortunately, it looks like the localization file is "correct" as far as scripts are concerned. Here we can see it in the secret_effects file:
add_kinslayer_trait_or_nothing_effect = {
save_scope_as = slayer
if = {
limit = {
murdering_character_is_kinslaying_in_my_or_same_dynasty_lieges_faith_trigger = { CHARACTER = $VICTIM$ }
}
if = {
limit = {
is_close_family_of = $VICTIM$
}
if = {
limit = { this = scope:slayer }
set_trait_rank = {
trait = kinslayer
rank = 3
}
remove_piety_level_for_shunned_or_criminal_trait_effect = { TRAIT = kinslayer_3 }
}
else = {
add_trait_force_tooltip = kinslayer_3 #This is to make sure trait appears in notification messages for other characters
}
}
else_if = {
limit = {
is_extended_family_of = $VICTIM$
}
if = {
limit = { this = scope:slayer }
set_trait_rank = {
trait = kinslayer
rank = 2
}
remove_piety_level_for_shunned_or_criminal_trait_effect = { TRAIT = kinslayer_2 }
}
else = {
add_trait_force_tooltip = kinslayer_2 #This is to make sure trait appears in notification messages for other characters
}
}
else_if = {
limit = {
exists = dynasty
dynasty = $VICTIM$.dynasty
}
if = {
limit = { this = scope:slayer }
set_trait_rank = {
trait = kinslayer
rank = 1
}
remove_piety_level_for_shunned_or_criminal_trait_effect = { TRAIT = kinslayer_1 }
}
else = {
add_trait_force_tooltip = kinslayer_1 #This is to make sure trait appears in notification messages for other characters
}
}
}
}
So, we get kinslayer_1 (localized as "Dynastic Kinslayer") if we kill anyone in the dynasty, and as kinslayer_1 is marked as a crime when ANY kind of kinslaying is a crime...
Luckily, there's a really easy fix I've tested on my own game. In the traits file, rename kinslayer_1 to kinslayer_3 and vice versa, then change the levels of each to match the new name (so the "new" kinslaying_1 should have level = 1). That's it. Changing the levels fixes the functionality, and changing the names makes sure the correct localization is applied to each.
Steps to reproduce
1) Have a faith with either the kinslayer doctrine "Close Kin is Criminal" or "Familial is Criminal"2) Kill a dynasty member who is NOT in the character's close family.
3) Get Dynastic Kinslayer.
4) Confirm Dynastic Kinslayer is marked as a crime, despite the doctrine not calling for this.
Game Version
11.1.3Platform
WindowsAdditional Information
Affected Feature
- Gameplay