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

Interaction · Hostile actions

Blackmail

No costThe AI weighs it (the answer is partly random)

Use a Secret you have discovered to gain a Hook

What you need

You

  • None of these

    • You: Is at war with the target
  • The target:
    • Is known by you
    • is_shunned_or_criminal_for = scope:is_blackmailable_secret_participant
    • can_be_exposed_by = scope:is_blackmailable_secret_blackmailer

The character you target

  • Age more than 10
  • Any secret: Is known by you

Blackmail is a hostile character interaction in Crusader Kings III. The AI weighs it (the answer is partly random). Reasons the AI weighs include They wants to protect the Secret (+80), They is Brave (-20), They is Arrogant (-20) and 4 more. Patch 1.20.1.2, from game/common/character_interactions/00_blackmail_interactions.txt.

for a guide, post or blog
Quick answers (1)
How do I get the AI to accept Blackmail?
The AI weighs it (the answer is partly random). Its reasons: They wants to protect the Secret +80, They is Brave -20, They is Arrogant -20, They is Craven +10, They is Paranoid +50, Wants to decrease House Unity, They dislikes you, They distrusts you -20, It is a Major Secret +30, Intimidated by you and Terrified of you.

Will they accept?

The AI adds these up and accepts above zero; near zero the answer is partly random (ai_maybe). Reasons in italics are the script's, with no label in the game.

ReasonAmount
Base0
They wants to protect the Secret+80
They is Brave
when
-20
They is Arrogant
when
-20
They is Craven
when
+10
They is Paranoid
when
+50
Wants to decrease House Unity
when
varies
They dislikes you
when
  • The character you target: Opinion of puppet_or_actor less than 0
varies
They distrusts you
when
  • The character you target: Has the opinion “Trust” of you
-20
It is a Major Secret
when
  • Any secret:
    • Is known by you
    • is_criminal_for = scope:recipient
+30
Intimidated by you
when
  • The character you target:
    • has_dread_level_towards = { target = scope:puppet_or_actor level = 1 }
intimidated_reason_value
Terrified of you
when
  • The character you target:
    • has_dread_level_towards = { target = scope:puppet_or_actor level = 2 }
cowed_reason_value
Acceptance (ai_accept) (89 lines of game script)
base = 0
modifier = {
	add = 80
	desc = BLACKMAIL_INTERACTION_BASE_ACCEPTANCE
}
modifier = {
	add = -20
	scope:recipient = {
		has_trait = brave
	}
	desc = BLACKMAIL_INTERACTION_BRAVE_ACCEPTANCE
}
modifier = {
	add = -20
	scope:recipient = {
		has_trait = arrogant
	}
	desc = BLACKMAIL_INTERACTION_ARROGANT_ACCEPTANCE
}
modifier = {
	add = 10
	scope:recipient = {
		has_trait = craven
	}
	desc = BLACKMAIL_INTERACTION_CRAVEN_ACCEPTANCE
}
modifier = {
	add = 50
	scope:recipient = {
		has_trait = paranoid
	}
	desc = BLACKMAIL_INTERACTION_PARANOID_ACCEPTANCE
}
evaluate_action_decreasing_house_unity = {
	VALUE = 25
}
opinion_modifier = {
	trigger = {
		scope:recipient = {
			opinion = {
				target = scope:puppet_or_actor
				value < 0
			}
		}
	}
	opinion_target = scope:recipient
	who = scope:puppet_or_actor
	multiplier = 0.3
	desc = BLACKMAIL_INTERACTION_OPINION_ACCEPTANCE
}
modifier = {
	add = -20
	scope:recipient = {
		has_opinion_modifier = {
			target = scope:puppet_or_actor
			modifier = trust_opinion
			value < 0
		}
	}
	desc = BLACKMAIL_INTERACTION_DISTRUST_ACCEPTANCE
}
modifier = {
	add = 30
	any_secret = {
		is_known_by = scope:puppet_or_actor
		is_criminal_for = scope:recipient
	}
	desc = BLACKMAIL_MAJOR_SECRET_ACCEPTANCE
}
modifier = {
	add = intimidated_reason_value
	scope:recipient = {
		has_dread_level_towards = {
			target = scope:puppet_or_actor
			level = 1
		}
	}
	desc = INTIMIDATED_REASON
}
modifier = {
	add = cowed_reason_value
	scope:recipient = {
		has_dread_level_towards = {
			target = scope:puppet_or_actor
			level = 2
		}
	}
	desc = COWED_REASON
}

As written in game/common/character_interactions/00_blackmail_interactions.txt.

What happens

If they accept

  • If

    • Holds Censorate
    • top_participant_group:dynastic_cycle:
      • NOT = { participant_group_type = other_rulers }
    • The character you target › top_participant_group:dynastic_cycle:
      • NOT = { participant_group_type = other_rulers }

    Then

  • You:
    • If

      a check the game hides

      Then

      • If

        • The target:
          • is_criminal_for = scope:recipient
        • can_add_hook = { target = scope:recipient type = strong_blackmail_hook }

        Then

        Else if

        • The target:
          • is_shunned_for = scope:recipient
        • can_add_hook = { target = scope:recipient type = weak_blackmail_hook }

        Then

      • The target gains the opinion “Blackmailed Me” of them
    • If has a Administrative Government:
      • If

        • The target:
          • is_criminal_for = scope:recipient

        Then

        • Influence +60

        Else if

        • The target:
          • is_shunned_for = scope:recipient

        Then

        • Influence +30

        Otherwise

        • Influence +10
    • Stress and fulfillment impact: by trait: Compassionate +40, Trusting +40, Honest +20, Just +20, Forgiving +20
  • The target › If promised not to reveal is scope:puppet or actor › The character you target: Opinion: Broke Promise
  • The character you target:
    • If

      • Does not have you as rival
      • Does not have you as potential rival

      Then

      • set_relation_potential_rival = scope:puppet_or_actor
  • 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 = { … }

If they refuse

  • If

    • You: Is played by a person

    Then

    • The character you target: Unless … … … mind:
  • If a check the game hides passes: the same again (1 line)
    • The secret:
      • expose_secret = scope:puppet_or_actor
  • If a check the game hides passes: the same again (1 line)
    • The target:
      • expose_secret = scope:puppet_or_actor
  • Event blackmail.0001
  • 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 = { … }

Events it fires: blackmail.0001

• 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) (10 lines of game script)
is_shown = exists = scope:puppet_or_actor
scope:recipient = {
	this != scope:puppet_or_actor
	age > 10
}
scope:recipient = {
	any_secret = {
		is_known_by = scope:puppet_or_actor
	}
}

As written in game/common/character_interactions/00_blackmail_interactions.txt.

Can be sent when (is_valid…) (35 lines of game script)
NOT = {
	scope:puppet_or_actor = {
		is_at_war_with = scope:recipient
	}
}
custom_description = {
	text = already_strong_hook
	subject = scope:puppet_or_actor
	object = scope:recipient
	NOT = {
		scope:puppet_or_actor = {
			has_strong_hook = scope:recipient
		}
	}
}
custom_description = {
	scope:recipient = {
		any_secret = {
			is_blackmailable_secret_trigger = {
				BLACKMAILER = scope:puppet_or_actor
				PARTICIPANT = scope:recipient
			}
		}
	}
	text = no_blackmailable_secret
}
custom_description = {
	text = has_sent_interaction_already
	subject = scope:recipient
	scope:puppet_or_actor = {
		NOT = {
			exists = var:currently_blackmailing
		}
	}
}

As written in game/common/character_interactions/00_blackmail_interactions.txt.

Effects (on_send, on_accept, on_decline) (133 lines of game script)
on_send = hidden_effect = {
	scope:puppet_or_actor = {
		set_variable = {
			name = currently_blackmailing
			value = scope:recipient
			days = 30
		}
	}
	scope:target = {
		if = {
			limit = {
				exists = secret_target
			}
			secret_target = {
				save_scope_as = secret_target
			}
		}
		if = {
			limit = {
				secret_type = secret_disputed_heritage
			}
			secret_target.father = {
				save_scope_as = father
			}
			secret_target.real_father = {
				save_scope_as = real_father
			}
		}
		if = {
			limit = {
				scope:target = {
					secret_type = secret_disputed_heritage
				}
			}
			secret_target.father = {
				save_scope_as = father
			}
			secret_target.real_father = {
				save_scope_as = real_father
			}
		}
	}
}
on_accept = scope:puppet_or_actor = {
	remove_variable = currently_blackmailing
	play_music_cue = mx_cue_murder
	if = {
		limit = {
			has_title = title:e_minister_censor
			top_participant_group:dynastic_cycle ?= {
				NOT = {
					participant_group_type = other_rulers
				}
			}
			scope:recipient = {
				top_participant_group:dynastic_cycle ?= {
					NOT = {
						participant_group_type = other_rulers
					}
				}
			}
		}
		add_merit_if_relevant_effect = {
			MERIT = minor_merit_value
		}
		if = {
			limit = {
				government_has_flag = government_has_influence
			}
			change_influence = {
				value = minor_influence_gain
				multiply = scope:recipient.highest_held_title_tier
			}
		}
		situation:dynastic_cycle = {
			if = {
				limit = {
					situation_top_has_catalyst = catalyst_minister_blackmailed
				}
				trigger_situation_catalyst = {
					catalyst = catalyst_minister_blackmailed
					character = scope:puppet_or_actor
				}
			}
		}
	}
}
blackmail_interaction_effect = yes
add_clan_unity_interaction_effect = {
	CHARACTER = scope:puppet_or_actor
	TARGET = scope:recipient
	VALUE = medium_unity_loss
	DESC = clan_unity_blackmail.desc
	REVERSE_NON_HOUSE_TARGET = no
}
on_decline = if = {
	limit = {
		scope:actor = {
			is_ai = no
		}
	}
	scope:recipient = {
		custom_tooltip = BLACKMAIL_INTERACTION_HUMAN_TT
	}
}
show_as_tooltip = {
	if = {
		limit = {
			exists = scope:secret
		}
		scope:secret = {
			expose_secret = scope:puppet_or_actor
		}
	}
	if = {
		limit = {
			exists = scope:target
		}
		scope:target = {
			expose_secret = scope:puppet_or_actor
		}
	}
}
scope:puppet_or_actor = {
	trigger_event = blackmail.0001
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:puppet_or_actor
	TARGET = scope:recipient
	VALUE = minor_unity_loss
	DESC = clan_unity_blackmail.desc
	REVERSE_NON_HOUSE_TARGET = no
}

As written in game/common/character_interactions/00_blackmail_interactions.txt.

Category
Hostile actions
In the menu
main list
ID
blackmail_interaction

Source: game/common/character_interactions/00_blackmail_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?