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

Abduct (Scheme)

No costAccepted automatically

The recipient will soon be my prisoner!

What you need

You

To send it

  • can_start_scheme = { type = abduct target_character = scope:recipient }
  • If

    Then

  • If

    • You: Has “no scheming allowed var” (a variable the game's script sets)

    Then

    • You and … promised to not start Hostile Schemes against each other until …

To see it in the menu

  • If played by the AI:
  • One of these

    • Has the Kidnapper Perk
    • or

      Your domicile:
      • has_domicile_parameter = camp_unlocks_abduct_scheme
    • or

      Any character struggle:
      • involvement = involved
      • has_struggle_phase_parameter = unlocks_abduct_for_all
      • All of these

        • The character you target › Any character struggle:
          • involvement = involved
          • Is the struggle temp
  • None of these

    • The target is you
    • The character you target: Is imprisoned by you
  • Not all of these

    • Game rule set to “No Players”
    • You: Is played by a person
    • The character you target: Is played by a person
  • Not all of these

    • Game rule set to “No Player Families”
    • You: Is played by a person
    • The character you target:
      • One of these

        • Is played by a person
        • or

          Any close family member:
          • All of these

            • Is played by a person
            • this != scope:actor

The character you target

Abduct (Scheme) is a hostile character interaction in Crusader Kings III. The character you target needs: Does not have a Strong Hook on you. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/00_scheme_interactions.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Abduct (Scheme) in CK3?
The character you target: Does not have a Strong Hook on you. (patch 1.20.1.2)
Will the AI accept Abduct (Scheme)?
Yes: it is accepted automatically.

Will they accept?

The other character has no choice: the game accepts it automatically.

What happens

When you send it

  • If

    Then

    • Spiritual fulfillment -5

Effects

  • If

    • None of these

      • One of these

        • has_fulfillment_parameter = sp_hostile_schemes_minus_murder_no_sp_or_stress_loss
        • or

          has_fulfillment_parameter = sp_hostile_schemes_minus_murder_no_stress_loss

    Then

    • Stress and fulfillment impact: by trait: Compassionate +40, Honest +20, Just +20
  • If

    • The option “agent focus success” is chosen

    Then

    • Start the Abduct scheme against the target
    • The new scheme:
      • add_agent_slot = agent_thug
      • add_agent_slot = agent_muscle
      • add_agent_slot = agent_footpad
      • add_agent_slot = agent_lookout
      • If

        • The scheme launcher: Is played by the AI

        Then

        • auto_assign_scheme_agents = yes
      • If

        a check the game hides

        Then

        • expose_scheme_to = scope:scheme_launcher.puppeteer

    Else if

    • The option “agent focus speed” is chosen

    Then

    • Start the Abduct scheme against the target
    • The new scheme:
      • add_agent_slot = agent_footpad
      • add_agent_slot = agent_infiltrator
      • add_agent_slot = agent_thug
      • add_agent_slot = agent_lookout
      • If

        • The scheme launcher: Is played by the AI

        Then

        • auto_assign_scheme_agents = yes
      • If

        a check the game hides

        Then

        • expose_scheme_to = scope:scheme_launcher.puppeteer

    Else if

    • The option “agent focus secrecy” is chosen

    Then

    • Start the Abduct scheme against the target
    • The new scheme:
      • add_agent_slot = agent_lookout
      • add_agent_slot = agent_decoy
      • add_agent_slot = agent_thug
      • add_agent_slot = agent_footpad
      • If

        • The scheme launcher: Is played by the AI

        Then

        • auto_assign_scheme_agents = yes
      • If

        a check the game hides

        Then

        • expose_scheme_to = scope:scheme_launcher.puppeteer

    Otherwise

    • Start the Abduct scheme against the target
    • The new scheme:
      • add_agent_slot = agent_thug
      • add_agent_slot = agent_muscle
      • add_agent_slot = agent_footpad
      • add_agent_slot = agent_infiltrator
      • add_agent_slot = agent_lookout
      • If

        • The scheme launcher: Is played by the AI

        Then

        • auto_assign_scheme_agents = yes
      • If

        a check the game hides

        Then

        • expose_scheme_to = scope:scheme_launcher.puppeteer
  • The target:
    • If

      Then

      • If

        • Is close family of the owner

        Then

        • If … is successfully Abducted, … will consider … their Rival

        Otherwise

        • If … is successfully Abducted, … will grow closer to forming a Rivalry with …
    • If

      • Is close family of the owner
      • Does not have the owner as nemesis
      • If

        • The owner:
          • has_imprisonment_reason = scope:target

        Then

        Otherwise

      Then

      • If … is successfully Abducted, … will grow closer to forming a Rivalry with …
    • If

      • Any parent:
        • One of these

          • Is played by the AI
          • or

            All of these

            • Is played by a person
            • The owner: Is played by a person
        • Is a ruler
        • Highest held Title is at least scope:target.highest held title tier Rank
        • Does not have the target as rival
        • Is not at war with the target
        • Does not have the Trait: Forgiving
        • Does not have the Trait: Craven
        • Does not have the owner as nemesis

      Then

      • Every Parent:
        • Only some of them (the filter is in the script below)
        • … (more in the script below)
    • … (more in the script below)

• 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) (61 lines of game script)
is_available = trigger_if = {
	limit = {
		is_ai = yes
	}
	is_diarch = yes
	liege ?= {
		has_diarchy_active_parameter = diarchy_is_co_rulership
	}
	ai_diarch_would_maim_execute_superior_if_got_chance_trigger = {
		LIEGE = liege
	}
}
is_shown = scope:puppet_or_actor ?= {
	OR = {
		has_perk = kidnapper_perk
		domicile ?= {
			has_domicile_parameter = camp_unlocks_abduct_scheme
		}
		AND = {
			any_character_struggle = {
				involvement = involved
				has_struggle_phase_parameter = unlocks_abduct_for_all
				is_secondary_character_involvement_involved_trigger = {
					CHAR = scope:recipient
				}
			}
		}
	}
}
NOR = {
	scope:recipient = scope:puppet_or_actor
	scope:recipient = {
		is_imprisoned_by = scope:puppet_or_actor
	}
}
NAND = {
	has_game_rule = no_players_multiplayer_murder_schemes
	scope:actor = {
		is_ai = no
	}
	scope:recipient = {
		is_ai = no
	}
}
NAND = {
	has_game_rule = no_player_families_multiplayer_murder_schemes
	scope:actor = {
		is_ai = no
	}
	scope:recipient = {
		OR = {
			is_ai = no
			any_close_family_member = {
				AND = {
					is_ai = no
					this != scope:actor
				}
			}
		}
	}
}

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

Can be sent when (is_valid…) (33 lines of game script)
scope:puppet_or_actor = {
	can_start_scheme = {
		type = abduct
		target_character = scope:recipient
	}
}
scope:recipient = {
	NOT = {
		has_strong_hook = scope:puppet_or_actor
	}
}
trigger_if = {
	limit = {
		scope:puppet_or_actor = {
			has_government = landless_adventurer_government
		}
	}
	ep3_laamp_diplo_range_trigger = {
		TARGET = scope:recipient
		LAAMP = scope:puppet_or_actor
	}
}
trigger_if = {
	limit = {
		scope:puppet_or_actor = {
			has_variable = no_scheming_allowed_var
		}
	}
	custom_tooltip = {
		text = no_scheming_allowed_var_tt
		scope:puppet_or_actor.var:no_scheming_allowed_var != scope:recipient
	}
}

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

Effects (on_send, on_accept, on_decline) (109 lines of game script)
on_send = scope:puppet_or_actor = {
	if = {
		limit = {
			OR = {
				has_character_modifier = pam_granted_indulgences_modifier
				has_character_modifier = pam_granted_indulgences_modifier_small
			}
		}
		change_spiritual_fulfillment = medium_spiritual_fulfillment_loss
	}
}
on_accept = scope:puppet_or_actor = {
	if = {
		limit = {
			NOT = {
				sp_hostile_schemes_except_murder_no_stress_or_fulfillment_trigger = yes
			}
		}
		stress_and_fulfillment_impact = {
			compassionate = medium_stress_impact_gain
			honest = minor_stress_impact_gain
			just = minor_stress_impact_gain
		}
	}
	send_interface_toast = {
		type = event_toast_effect_neutral
		title = start_abduct_notification
		left_icon = scope:puppet_or_actor
		right_icon = scope:recipient
		if = {
			limit = {
				scope:agent_focus_success ?= yes
			}
			begin_scheme_with_agents_effect = {
				SCHEME_TYPE = abduct
				TARGET_TYPE = target_character
				TARGET_SCOPE = scope:recipient
				AGENT_1 = agent_thug
				AGENT_2 = agent_thug
				AGENT_3 = agent_muscle
				AGENT_4 = agent_footpad
				AGENT_5 = agent_lookout
			}
		}
		else_if = {
			limit = {
				scope:agent_focus_speed ?= yes
			}
			begin_scheme_with_agents_effect = {
				SCHEME_TYPE = abduct
				TARGET_TYPE = target_character
				TARGET_SCOPE = scope:recipient
				AGENT_1 = agent_footpad
				AGENT_2 = agent_footpad
				AGENT_3 = agent_infiltrator
				AGENT_4 = agent_thug
				AGENT_5 = agent_lookout
			}
		}
		else_if = {
			limit = {
				scope:agent_focus_secrecy ?= yes
			}
			begin_scheme_with_agents_effect = {
				SCHEME_TYPE = abduct
				TARGET_TYPE = target_character
				TARGET_SCOPE = scope:recipient
				AGENT_1 = agent_lookout
				AGENT_2 = agent_lookout
				AGENT_3 = agent_decoy
				AGENT_4 = agent_thug
				AGENT_5 = agent_footpad
			}
		}
		else = {
			begin_scheme_with_agents_effect = {
				SCHEME_TYPE = abduct
				TARGET_TYPE = target_character
				TARGET_SCOPE = scope:recipient
				AGENT_1 = agent_thug
				AGENT_2 = agent_muscle
				AGENT_3 = agent_footpad
				AGENT_4 = agent_infiltrator
				AGENT_5 = agent_lookout
			}
		}
	}
}
if = {
	limit = {
		scope:is_puppet_action ?= yes
		scope:actor != scope:recipient
	}
	scope:actor = {
		send_interface_toast = {
			type = event_toast_effect_neutral
			title = start_abduct_notification_puppeteer
			left_icon = scope:puppet_or_actor
			right_icon = scope:recipient
		}
	}
}
scope:puppet_or_actor = {
	save_scope_as = owner
}
scope:recipient = {
	save_scope_as = target
}
abduction_rivalry_progress_tooltip_forecast_effect = yes

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

Category
Hostile actions
Starts the scheme
Abduct
In the menu
under More…
ID
start_abduct

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