CK III - spymaster_task_find_secrets_suitable_minor_secret_trigger is blocking my spymaster from finding a disputed_heritage secret

  • We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

Question

Field Marshal
Jun 11, 2019
2.831
5.726
Short summary of your issue spymaster_task_find_secrets_suitable_minor_secret_trigger is blocking my spymaster from finding a disputed_heritage secret

Game Version 1.12

What OS are you playing on?
Windows

What platform are you using?
Paradox Launcher

Do you have mods enabled? Yes

Have you tried verifying your game files (Steam only)?
No

How much "pain" is this causing you?
8

Please explain the issue you experienced in the most condensed way possible
I noticed that my spymaster was unable to find two disputed heritage secrets owned by my wife. The spymaster is not a participant in the secrets (the real fathers are two other people). The spymaster would keep telling me over and over that there were no more secrets to be found.

I did some testing and managed to narrow the problem down to this trigger :

Code:
spymaster_task_find_secrets_suitable_minor_secret_trigger = {
	OR = {
		is_shunned_for = secret_owner
		AND = {
			NOT = {
				is_blackmailable_secret_trigger = {
					PARTICIPANT = secret_owner
					BLACKMAILER = scope:councillor_liege
				}
			}
			secret_is_always_interesting_trigger = yes
		}
	}
	NOT = { is_known_by = scope:councillor_liege }
	spymaster_task_find_secrets_block_spymaster_self_reveal_trigger = yes
	NOT = {
		any_secret_participant = {
			OR = {
				this = scope:councillor
				this = scope:councillor_liege
			}
		}
	}
	spymaster_task_find_secrets_interesting_secret_type_trigger = yes
}

I suspect there are two issues with this :

-If i am reading the shunned check for disputed_heritage correctly, disputed_heritage is shunned based on whether adultery is allowed, as opposed to the bastardry doctrine. Since my faith has accepted adultery, disputed_heritage is not counted as shunned and does not fulfill the first part of the trigger.

-That said, it is placed in an OR. I dont quite understand what this part does :

Code:
AND = {
			NOT = {
				is_blackmailable_secret_trigger = {
					PARTICIPANT = secret_owner
					BLACKMAILER = scope:councillor_liege
				}
			}
			secret_is_always_interesting_trigger = yes
		}

If this check fails, then the secret doesnt qualify as a minor secret. If the secret is NOT blackmailable + the secret is interesting, then it counts as a minor secret. I'm not sure if this is intended.

I used the debug interaction to discover the disputed heritage secrets and it did allow me to blackmail my wife with them.

Based on that, my best guess is this :

-The trigger checks my faith's adultery, sees that adultery is accepted, concludes that disputed_heritage is not shunned and moves on to the next check

-The trigger then checks disputed_heritage, it sees that it is blackmailable, concludes that this is not a valid minor secret, and invalidates it.

Assuming this is true, the problem would be that disputed_heritage is checking using the faith's adultery doctrine rather than the bastardization doctrine.

Please explain how to reproduce the issue
You can us the attached save to see, the spymaster always insists that it cannot find any more secrets in court, even when i have used the console to set his intrigue to 100.

Is there anything else you think could help us identify/replicate the issue?


I have attached a save game
Yes

Upload Attachment
File(s) attached
 

Attachments

  • spy test.ck3
    33,7 MB · Views: 0
Upvote 0

Question

Field Marshal
Jun 11, 2019
2.831
5.726
This may be related : I just noticed that the scripted_trigger bastard_secret_is_shunned has an incorrect amount of brackets.

Specifically these two have an extra bracket :

Code:
trigger_if = {
        limit = { scope:participant = scope:bastard.mother }
        scope:bastard.real_father = { save_temporary_scope_as = other_parent } }
    }
    trigger_if = {
        limit = { scope:participant = scope:bastard.real_father }
        scope:bastard.mother = { save_temporary_scope_as = other_parent } }
    }
 

Question

Field Marshal
Jun 11, 2019
2.831
5.726
The extra brackets doesnt appear to be the sole cause.

After more testing, i think i narrowed it down to spymaster_task_find_secrets_interesting_secret_type_trigger. Specifically this part here :

Code:
NOT = {
        secret_type = secret_disputed_heritage
        AND = {
            exists = secret_target
            secret_target = { has_trait = legitimized_bastard }
        }
    }

Changing the NOT to NAND allows your spymaster to discover the disputed_heritage secret. Credits to Дмитрий on discord for this fix.