One line summary of your issue
[2.8.1.1] [ISRM] "Saoshyant Descendant" not given to grandchildren whose parent is dead
Game Version
2.8.1.1
What expansions do you have installed?
All of the above
Do you have mods enabled?
No
Please explain your issue is in as much detail as possible.
As part of my Hepthalite run, I converted to Zoroastrianism and eventually became the Saoshyant.
Much later, I noticed that some of my grandchildren did not have the "Saoshyant Descendant" trait. Specifically: all children of my living children had the trait, whereas some children of my already-dead children did not have the trait.
I therefore suspected that, when I took the decision, Saoshyant Descendant was only applied to descendants of my living children.
I happen to know that Azerbaijan was the last duchy I conquered before taking the decision. I conquered it on 967.12.12. I checked through my descendants and they all fit the pattern - if my child had died before 967, their children were not flagged as Saoshyant Descendants.
For example (see screenshots), my daughter Dharmadasi had a son Gostana. She died in 953. Neither of them have the Saoshyant Descendant trait, despite actually being descendants.
Here is the code for the relevant event:
I suspect the problem here is that character_events can only occur for living characters. (In my example, Dharmadasi doesn't get the event, so her son also cannot get the event and therefore he doesn't get the trait.)
I checked the scope documentation in the wiki, but nothing in there jumps out at me as an easy and elegant fix. Still, I have two possible suggestions:
Fix #1: Easy but incomplete & inelegant
Rewrite the event code (with lots of copy/pasting) to ensure that all living grandchildren and great-grandchildren get the trait. I'm not that familiar with CK2 modding, but I suspect it would look something like this:
This is incomplete because it won't fix the theoretical problem where an immortal character takes the decision when they are approx 300 years old - ie. where they have living descendants with more than 3 dead generations between those descendants and the saoshyant.
The inelegance is, hopefully, obvious.
Fix #2: Complete & elegant but requires code change
Add a new scope: any_ancestor. This would scope to all characters that are direct ancestors of the current character.
Then, the code for the event could be altered to look something like this:
Steps to reproduce the issue.
I haven't actually tested this because it's somewhat tricky, even with console commands. However, I believe that this will illustrate the issue:
1. Fulfil all requirements for Saoshyant (do not take the decision)
2. Have grandchildren
3. Kill one of your sons/daughters who has children
4. Take the Saoshyant decision
5. The children of the son/daughter you killed in step 3 don't have the Saoshyant Descendant trait
Upload Attachment
[2.8.1.1] [ISRM] "Saoshyant Descendant" not given to grandchildren whose parent is dead
Game Version
2.8.1.1
What expansions do you have installed?
All of the above
Do you have mods enabled?
No
Please explain your issue is in as much detail as possible.
As part of my Hepthalite run, I converted to Zoroastrianism and eventually became the Saoshyant.
Much later, I noticed that some of my grandchildren did not have the "Saoshyant Descendant" trait. Specifically: all children of my living children had the trait, whereas some children of my already-dead children did not have the trait.
I therefore suspected that, when I took the decision, Saoshyant Descendant was only applied to descendants of my living children.
I happen to know that Azerbaijan was the last duchy I conquered before taking the decision. I conquered it on 967.12.12. I checked through my descendants and they all fit the pattern - if my child had died before 967, their children were not flagged as Saoshyant Descendants.
For example (see screenshots), my daughter Dharmadasi had a son Gostana. She died in 953. Neither of them have the Saoshyant Descendant trait, despite actually being descendants.
Here is the code for the relevant event:
Code:
# Children gains Saoshyant Descendant trait from Saoshyant
character_event = {
id = TOG.6001
hide_window = yes
is_triggered_only = yes
has_dlc = "The Old Gods"
has_global_flag = saoshyant_appears
trigger = {
OR = {
mother = { trait = saoshyant }
father = { trait = saoshyant }
mother = { trait = saoshyant_descendant }
father = { trait = saoshyant_descendant }
}
NOT = { trait = saoshyant_descendant }
}
immediate = {
add_trait = saoshyant_descendant
any_child = {
character_event = { id = TOG.6001 }
}
}
}
I suspect the problem here is that character_events can only occur for living characters. (In my example, Dharmadasi doesn't get the event, so her son also cannot get the event and therefore he doesn't get the trait.)
I checked the scope documentation in the wiki, but nothing in there jumps out at me as an easy and elegant fix. Still, I have two possible suggestions:
Fix #1: Easy but incomplete & inelegant
Rewrite the event code (with lots of copy/pasting) to ensure that all living grandchildren and great-grandchildren get the trait. I'm not that familiar with CK2 modding, but I suspect it would look something like this:
Code:
# Children gains Saoshyant Descendant trait from Saoshyant
character_event = {
id = TOG.6001
hide_window = yes
is_triggered_only = yes
has_dlc = "The Old Gods"
has_global_flag = saoshyant_appears
trigger = {
OR = {
mother_even_if_dead = { trait = saoshyant }
father_even_if_dead = { trait = saoshyant }
mother_even_if_dead = { trait = saoshyant_descendant }
father_even_if_dead = { trait = saoshyant_descendant }
mother_even_if_dead = {
mother_even_if_dead = { trait = saoshyant }
mother_even_if_dead = { trait = saoshyant }
father_even_if_dead = { trait = saoshyant_descendant }
father_even_if_dead = { trait = saoshyant_descendant }
}
father_even_if_dead = {
mother_even_if_dead = { trait = saoshyant }
father_even_if_dead = { trait = saoshyant }
mother_even_if_dead = { trait = saoshyant_descendant }
father_even_if_dead = { trait = saoshyant_descendant }
}
mother_even_if_dead = {
mother_even_if_dead = {
mother_even_if_dead = { trait = saoshyant }
father_even_if_dead = { trait = saoshyant }
mother_even_if_dead = { trait = saoshyant_descendant }
father_even_if_dead = { trait = saoshyant_descendant }
}
father_even_if_dead = {
mother_even_if_dead = { trait = saoshyant }
father_even_if_dead = { trait = saoshyant }
mother_even_if_dead = { trait = saoshyant_descendant }
father_even_if_dead = { trait = saoshyant_descendant }
}
}
father_even_if_dead = {
mother_even_if_dead = {
mother_even_if_dead = { trait = saoshyant }
father_even_if_dead = { trait = saoshyant }
mother_even_if_dead = { trait = saoshyant_descendant }
father_even_if_dead = { trait = saoshyant_descendant }
}
father_even_if_dead = {
mother_even_if_dead = { trait = saoshyant }
father_even_if_dead = { trait = saoshyant }
mother_even_if_dead = { trait = saoshyant_descendant }
father_even_if_dead = { trait = saoshyant_descendant }
}
}
}
NOT = { trait = saoshyant_descendant }
}
immediate = {
add_trait = saoshyant_descendant
any_child = {
character_event = { id = TOG.6001 }
}
}
}
This is incomplete because it won't fix the theoretical problem where an immortal character takes the decision when they are approx 300 years old - ie. where they have living descendants with more than 3 dead generations between those descendants and the saoshyant.
The inelegance is, hopefully, obvious.
Fix #2: Complete & elegant but requires code change
Add a new scope: any_ancestor. This would scope to all characters that are direct ancestors of the current character.
Then, the code for the event could be altered to look something like this:
Code:
# Children gains Saoshyant Descendant trait from Saoshyant
character_event = {
id = TOG.6001
hide_window = yes
is_triggered_only = yes
has_dlc = "The Old Gods"
has_global_flag = saoshyant_appears
trigger = {
any_ancestor = { trait = saoshyant }
NOT = { trait = saoshyant_descendant }
}
immediate = {
add_trait = saoshyant_descendant
}
}
Steps to reproduce the issue.
I haven't actually tested this because it's somewhat tricky, even with console commands. However, I believe that this will illustrate the issue:
1. Fulfil all requirements for Saoshyant (do not take the decision)
2. Have grandchildren
3. Kill one of your sons/daughters who has children
4. Take the Saoshyant decision
5. The children of the son/daughter you killed in step 3 don't have the Saoshyant Descendant trait
Upload Attachment
Attachments
Last edited:
Upvote
0