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

Interaction · Friendly actions

Share Secrets

No costAccepted automatically in some cases; otherwise the AI weighs it

Exchange known Secrets with the recipient: reveal yours and learn their

What you need

You

To send it

  • You feel there are no suitable secrets to share

To see it in the menu

Share Secrets is a friendly character interaction in Crusader Kings III. You need: You feel there are no suitable secrets to share. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Weak Hook used (+100), Intrigue Education Trait (+20), Honest (-100) and 5 more. Patch 1.20.1.2, from game/common/character_interactions/03_fp2_interactions.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Share Secrets in CK3?
You: You feel there are no suitable secrets to share. (patch 1.20.1.2)
How do I get the AI to accept Share Secrets?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Weak Hook used +100, Intrigue Education Trait +20, Honest -100, Just -50, Paranoid -50, Fickle +100, Deceitful +100 and Ambitious +25.

Will they accept?

Accepted automatically when:

  • They use their Hook on …

Otherwise the AI adds these up and accepts above zero. Reasons in italics are the script's, with no label in the game.

ReasonAmount
Base+10
Weak Hook used
when
+100
Intrigue Education Trait
when
+20
Honest
when
-100
Just
when
-50
Paranoid
when
-50
Fickle
when
+100
Deceitful
when
+100
Ambitious
when
+25
Acceptance (ai_accept) (45 lines of game script)
base = 10
modifier = {
	trigger = {
		always = scope:hook
	}
	add = 100
	desc = SCHEME_WEAK_HOOK_USED
}
modifier = {
	trigger = {
		has_education_intrigue_trigger = yes
	}
	add = 20
	desc = INTERACTION_INTRIGUE_EDUCATION
}
modifier = {
	add = -100
	has_trait = honest
	desc = INTERACTION_HONEST
}
modifier = {
	add = -50
	has_trait = just
	desc = INTERACTION_JUST
}
modifier = {
	add = -50
	has_trait = paranoid
	desc = INTERACTION_PARANOID
}
modifier = {
	add = 100
	has_trait = fickle
	desc = INTERACTION_FICKLE
}
modifier = {
	add = 100
	has_trait = deceitful
	desc = INTERACTION_DECEITFUL
}
modifier = {
	add = 25
	has_trait = ambitious
	desc = INTERACTION_AMBITIOUS
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

What happens

If they accept

  • If

    • The character you target › Known secret (at least 7): Is not known by you

    Then

    • Gain -350 Prestige
    • Learn many secrets

    Else if

    • The character you target › Known secret (at least 3): Is not known by you

    Then

    • Gain -150 Prestige
    • Learn several secrets

    Otherwise

    • Gain -75 Prestige
    • Learn a few secrets
  • Stress and fulfillment impact: by trait: Honest +20, Just +20, Compassionate +20
  • The character you target:
    • If

      • You › Known secret (at least 7):
        • Is not known by the target
        • One of these

          • None of these

            • secret_owner = scope:recipient
            • All of these

              • exists = secret_target
              • secret_target = scope:recipient
          • or

            The character you target:

      Then

      • Gain -350 Prestige
      • Learn many secrets

      Else if

      • You › Known secret (at least 3):
        • Is not known by the target
        • One of these

          • None of these

            • secret_owner = scope:puppet_or_actor
            • All of these

              • exists = secret_target
              • secret_target = scope:puppet_or_actor
          • or

            You:

      Then

      • Gain -150 Prestige
      • Learn several secrets

      Otherwise

      • Gain -75 Prestige
      • Learn a few secrets
    • Stress and fulfillment impact: by trait: Honest +20, Just +20, Compassionate +20
  • 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 = { … }

Options when sending

  • Use a Hook

• 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) (15 lines of game script)
is_available = trigger_if = {
	limit = {
		is_ai = yes
	}
	dynasty ?= {
		has_dynasty_perk = fp2_coterie_legacy_4
	}
	prestige > major_prestige_value
}
is_shown = scope:puppet_or_actor ?= {
	dynasty ?= {
		has_dynasty_perk = fp2_coterie_legacy_4
	}
	house ?= scope:recipient.house
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

Can be sent when (is_valid…) (22 lines of game script)
custom_tooltip = {
	text = share_known_secrets_interaction.tt.no_secrets_to_share
	scope:puppet_or_actor = {
		any_known_secret = { }
	}
	OR = {
		scope:puppet_or_actor = {
			any_known_secret = {
				NOT = {
					is_known_by = scope:recipient
				}
			}
		}
		scope:recipient = {
			any_known_secret = {
				NOT = {
					is_known_by = scope:puppet_or_actor
				}
			}
		}
	}
}

As written in game/common/character_interactions/03_fp2_interactions.txt.

Effects (on_send, on_accept, on_decline) (237 lines of game script)
on_accept = scope:puppet_or_actor = {
	if = {
		limit = {
			scope:recipient = {
				any_known_secret = {
					count >= 7
					NOT = {
						is_known_by = scope:puppet_or_actor
					}
				}
			}
		}
		add_prestige = major_prestige_loss
		custom_description = {
			text = many_secrets_exchanged
		}
	}
	else_if = {
		limit = {
			scope:recipient = {
				any_known_secret = {
					count >= 3
					NOT = {
						is_known_by = scope:puppet_or_actor
					}
				}
			}
		}
		add_prestige = medium_prestige_loss
		custom_description = {
			text = several_secrets_exchanged
		}
	}
	else = {
		add_prestige = minor_prestige_loss
		custom_description = {
			text = few_secrets_exchanged
		}
	}
	stress_and_fulfillment_impact = {
		honest = minor_stress_impact_gain
		just = minor_stress_impact_gain
		compassionate = minor_stress_impact_gain
	}
}
scope:recipient = {
	if = {
		limit = {
			scope:puppet_or_actor = {
				any_known_secret = {
					count >= 7
					NOT = {
						is_known_by = scope:recipient
					}
					OR = {
						NOR = {
							secret_owner = scope:recipient
							AND = {
								exists = secret_target
								secret_target = scope:recipient
							}
						}
						scope:recipient = {
							OR = {
								has_trait = dull
								has_trait = intellect_bad
								has_trait = contrite
							}
						}
					}
				}
			}
		}
		add_prestige = major_prestige_loss
		custom_description = {
			text = many_secrets_exchanged
		}
	}
	else_if = {
		limit = {
			scope:puppet_or_actor = {
				any_known_secret = {
					count >= 3
					NOT = {
						is_known_by = scope:recipient
					}
					OR = {
						NOR = {
							secret_owner = scope:puppet_or_actor
							AND = {
								exists = secret_target
								secret_target = scope:puppet_or_actor
							}
						}
						scope:puppet_or_actor = {
							OR = {
								has_trait = dull
								has_trait = intellect_bad
								has_trait = contrite
							}
						}
					}
				}
			}
		}
		add_prestige = medium_prestige_loss
		custom_description = {
			text = several_secrets_exchanged
		}
	}
	else = {
		add_prestige = minor_prestige_loss
		custom_description = {
			text = few_secrets_exchanged
		}
	}
	stress_and_fulfillment_impact = {
		honest = minor_stress_impact_gain
		just = minor_stress_impact_gain
		compassionate = minor_stress_impact_gain
	}
}
hidden_effect = {
	scope:recipient = {
		save_scope_as = END_TARGET
	}
	scope:puppet_or_actor = {
		if = {
			limit = {
				scope:recipient = {
					any_known_secret = {
						NOT = {
							is_known_by = scope:puppet_or_actor
						}
						OR = {
							NOR = {
								secret_owner = scope:recipient
								AND = {
									exists = secret_target
									secret_target = scope:recipient
								}
							}
							scope:recipient = {
								OR = {
									has_trait = dull
									has_trait = intellect_bad
									has_trait = contrite
								}
							}
						}
						count = 0
					}
				}
			}
			send_interface_message = {
				type = event_intrigue_bad_with_text
				title = share_known_secrets_interaction_outcome_notif_title
				desc = share_known_secrets_interaction_recipient_had_no_secrets
				left_icon = scope:recipient
			}
			if = {
				limit = {
					scope:is_puppet_action ?= yes
					scope:actor != scope:recipient
				}
				scope:actor = {
					send_interface_message = {
						type = event_intrigue_bad_with_text
						title = share_known_secrets_interaction_outcome_notif_title_puppeteer
						desc = share_known_secrets_interaction_recipient_had_no_secrets_puppeteer
						left_icon = scope:recipient
						right_icon = scope:puppet_or_actor
					}
				}
			}
		}
		else = {
			send_interface_message = {
				type = event_intrigue_good_with_text
				title = share_known_secrets_interaction_outcome_notif_title
				desc = share_known_secrets_interaction_desc_intro
				left_icon = scope:recipient
				scope:recipient = {
					every_known_secret = {
						limit = {
							NOT = {
								is_known_by = scope:puppet_or_actor
							}
							OR = {
								NOR = {
									secret_owner = scope:recipient
									AND = {
										exists = secret_target
										secret_target = scope:recipient
									}
								}
								scope:recipient = {
									OR = {
										has_trait = dull
										has_trait = intellect_bad
										has_trait = contrite
									}
								}
							}
						}
						reveal_to = scope:puppet_or_actor
					}
				}
			}
			if = {
				limit = {
					scope:is_puppet_action ?= yes
					scope:actor != scope:recipient
				}
				scope:actor = {
					send_interface_message = {
						type = event_intrigue_good_with_text
						title = share_known_secrets_interaction_outcome_notif_title_puppeteer
						desc = share_known_secrets_interaction_desc_intro_puppeteer
						left_icon = scope:recipient
						right_icon = scope:puppet_or_actor
					}
				}
			}
		}
	}
	scope:puppet_or_actor = {
		save_scope_as = END_TARGET
	}
	scope:recipient = {
		if = {
			limit = {
				scope:puppet_or_actor = {
					any_known_secret = {
						NOT = {
		
# … (cut here; the rest is in the file)

As written in game/common/character_interactions/03_fp2_interactions.txt.

Category
Friendly actions
In the menu
main list
ID
share_known_secrets_interaction

Source: game/common/character_interactions/03_fp2_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?