Scripted effect
secret_exposed_notification_effect
secret_exposed_notification_effect = yesgame/common/scripted_effects/00_secret_effects.txt, line 878 (437 lines). No parameters.
secret_exposed_notification_effect is a scripted effect in Crusader Kings III, written at line 878 of its file. It takes no parameters: secret_exposed_notification_effect = yes. The game's script calls it in 15 places, among them Attempted Murder (secret types), Cannibal (secret types) and Child's Heritage (secret types). Its body carries 13 texts of the game's own for the player. Patch 1.20.1.2, from game/common/scripted_effects/00_secret_effects.txt.
The comment above it in the file
Used to notify everyone who cares about secret owner/target (and additional characters of interest) about secret + effects
What it does
scope:owner:save_list_targets_for_secret_exposure_events_effect = { SECRET = scope:secret CHARACTER = scope:owner }
If
scope:secret:secret_type = secret_lover
Then
Else if
scope:secret:One of these
secret_type = secret_disputed_heritageor
secret_type = secret_unmarried_illegitimate_child
Then
Else if
scope:secret:One of these
secret_type = secret_murder_attemptor
secret_type = secret_murder
Then
scope:victim:save_list_targets_for_secret_exposure_events_effect = { SECRET = scope:secret CHARACTER = scope:victim }
- Every in list:
Else if
scope:secret:One of these
secret_type = secret_embezzleror
secret_type = secret_siphoned_treasury
Then
- Event secrets.0122
Else if
scope:secret:secret_type = secret_murder
Then
If
- scope:secret: Has “known murder” (a variable the game's script sets)
Then
add_death_event_blocker_effect = { DEAD = scope:victim }
- Event secrets.0118
scope:owner:save_list_targets_for_secret_exposure_feed_messages_effect = { SECRET = scope:secret CHARACTER = scope:owner }
If
scope:secret:secret_type = secret_lover
Then
secret_owner = { … }scope:target:If
a check the game hides
Then
save_list_targets_for_secret_exposure_feed_messages_effect = { SECRET = scope:targets_secret CHARACTER = scope:target }
save_additional_lover_secret_list_targets_for_feed_messages_effect = yes
- Every in list:
If
has_hook_from_secret = scope:secret
Then
If
has_hook_of_type = { target = scope:owner type = weak_blackmail_hook }
Then
remove_hook = { target = scope:owner type = weak_blackmail_hook }
Else if
has_hook_of_type = { target = scope:owner type = strong_blackmail_hook }
Then
remove_hook = { target = scope:owner type = strong_blackmail_hook }
If
If
a check the game hides
Then
NOT = { scope:secret_exposer = scope:target }NOT = { scope:secret_exposer = scope:owner }
Otherwise
scope:secret_exposer != scope:owner
• the game's own tooltip text · ◦ our reading of the script line · code the script where neither exists
“They” is whatever it runs on (the scope it is called in). The scripted triggers and effects it calls link to their own pages; $PARAMETERS$ stay as written: each call fills them in.
The script as written (120 lines of game script)
secret_exposed_notification_effect = {
save_scope_as = secret
secret_owner = {
save_scope_as = owner
}
if = {
limit = { exists = secret_target }
secret_target = { save_scope_as = target }
}
#### Visible events for those who care and knower of landed people's secrets ###
#Save spouses, close family members, liege and anyone whom I am primary heir of
scope:owner = {
save_list_targets_for_secret_exposure_events_effect = { SECRET = scope:secret CHARACTER = scope:owner }
}
#If it's a lover secret, tell people who cares about the target as well
if = {
limit = { scope:secret = { secret_type = secret_lover } }
save_extra_lover_list_targets_for_secret_exposure_events_effect = yes
}
#If it's a bastard secret, tell people who cares about child/real_father as well
else_if = {
limit = {
scope:secret = {
OR = {
secret_type = secret_disputed_heritage
secret_type = secret_unmarried_illegitimate_child
}
}
}
save_extra_bastard_list_targets_for_secret_exposure_events_effect = yes
}
#If it's a murder/murder attempt secret, also inform those who care about victim
else_if = {
limit = {
scope:secret = {
OR = {
secret_type = secret_murder_attempt
secret_type = secret_murder
}
}
}
scope:victim = { save_list_targets_for_secret_exposure_events_effect = { SECRET = scope:secret CHARACTER = scope:victim } }
}
#If it's a secret faith, save the faith
else_if = {
limit = {
scope:secret = { secret_type = secret_crypto_religionist }
}
scope:owner.secret_faith = { save_scope_as = crypto_faith }
}
#Send the notification event
every_in_list = {
list = send_exposed_secret_event_list
if = {
limit = {
scope:secret = { secret_type = secret_incest }
}
trigger_event = secrets.0106
}
else_if = {
limit = {
scope:secret = { secret_type = secret_witch }
}
trigger_event = secrets.0107
}
else_if = {
limit = {
scope:secret = {
OR = {
secret_type = secret_embezzler
secret_type = secret_siphoned_treasury
}
}
}
trigger_event = secrets.0122
}
else_if = {
limit = {
scope:secret = { secret_type = secret_cannibal }
}
trigger_event = secrets.0104
}
else_if = {
limit = {
scope:secret = { secret_type = secret_non_believer }
}
trigger_event = secrets.0105
}
else_if = {
limit = {
scope:secret = { secret_type = secret_homosexual }
}
trigger_event = secrets.0103
}
else_if = {
limit = {
scope:secret = { secret_type = secret_lover }
}
trigger_event = secrets.0108
}
else_if = {
limit = {
scope:secret = { secret_type = secret_deviant }
}
trigger_event = secrets.0101
}
else_if = {
limit = {
scope:secret = { secret_type = secret_disputed_heritage }
}As written in game/common/scripted_effects/00_secret_effects.txt.
The first 120 of its 437 lines; the rest is in game/common/scripted_effects/00_secret_effects.txt from line 878.
Where it is used
Every place in common/, events/ and history/ that calls secret_exposed_notification_effect.
Secret types (15)
- Attempted Murder
- Cannibal
- Child's Heritage
- Deviant
- Disputed Heritage
- Examination Cheater
9 more
- Forbidden Personal Tenet
- Incestuous
- Lover
- Murder
- Non-Believer
- Requesting an Incursion
- Secret Faith
- Sodomite
- Witch
Source: game/common/scripted_effects/00_secret_effects.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.