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

Interaction · Diplomatic actions

Hire as Mercenaries

No costRoads to PowerAccepted automatically in some cases; otherwise the AI weighs it

Offer Gold to make the recipient join all Wars in which you are the War Leader

What you need

You

To send it

  • You cannot hire this Mercenary Company since it will put you too much into Debt
  • Is at War
  • You must be the War Leader to call allies
  • Is not at war with the target
  • None of these

  • One of these

    • You: Is played by a person
    • or

      Every character war:
      • One of these

        • All of these

          • Has you as the war's attacker
          • Defender war score at most 95
        • or

          All of these

          • Has you as the war's defender
          • Attacker war score at most 95
  • If

    Then

    • Exiled

To see it in the menu

  • If played by the AI:
    • Any character war:
      • is_war_leader = prev
    • war_chest_gold >= quarter_ai_war_chest_gold_maximum
  • If

    • You: Is played by the AI

    Then

    • scope:recipient.current_military_strength >= 100

The character you target

To send it

  • Is at not War
  • Also needed: not traveling · not imprisoned

To see it in the menu

Hire as Mercenaries is a diplomatic character interaction in Crusader Kings III. You need: You cannot hire this Mercenary Company since it will put you too much into Debt, Is at War, You must be the War Leader to call allies and 1 more. The character you target needs: Is not traveling, Is at not War and Is not imprisoned. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Has Swords-for-Hire Camp Purpose (+50), Will not fight Heir (-1,000), Will not fight Spouse (-1,000) and 7 more. It needs Roads to Power. Patch 1.20.1.2, from game/common/character_interactions/06_ep3_laamp_interactions.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Hire as Mercenaries in CK3?
You: You cannot hire this Mercenary Company since it will put you too much into Debt, Is at War, You must be the War Leader to call allies and Is not at war with the target. The character you target: Is not traveling, Is at not War and Is not imprisoned. (patch 1.20.1.2)
How do I get the AI to accept Hire as Mercenaries?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Has Swords-for-Hire Camp Purpose +50, War Score in Offensive Wars, War Score in Defensive Wars, Will not fight Heir -1,000, Will not fight Spouse -1,000, … Opinion of …, In Dire Need of Gold +50, Defensive War +50, You speak the … Language +5, Zeal against Infidels, Attack on Ally -50, War on another Ally -25, Attack on Religious Brethren -50, Wardens with my Hostages on opposing side and Opposing Struggle Side -100.

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-20
Has Swords-for-Hire Camp Purpose
when
+50
War Score in Offensive Wars
when
  • save_temporary_scope_value_as = { name = attacker_war value = 2 }
  • Any character war:
    • Has you as the war's attacker
    • Attacker war score less than 0
    • save_temporary_scope_value_as = { … }
scope:attacker_war
War Score in Defensive Wars
when
  • save_temporary_scope_value_as = { name = defender_war value = 2 }
  • Any character war:
    • Has you as the war's defender
    • Defender war score less than 0
    • save_temporary_scope_value_as = { … }
scope:defender_war
Will not fight Heir
when
  • Any character war:
    • One of these

      • primary_defender = scope:recipient.player_heir
      • or

        primary_attacker = scope:recipient.player_heir
-1,000
Will not fight Spouse
when
  • Any character war:
    • One of these

      • primary_defender = { is_spouse_of = scope:recipient }
      • or

        primary_attacker = { is_spouse_of = scope:recipient }
-1,000
… Opinion of …varies
In Dire Need of Gold
when
  • The character you target:
    • short_term_gold <= minor_gold_value
+50
Defensive War
when
  • Any character war: Has you as the war's defender
+50
You speak the … Language
when
  • knows_language_of_culture = scope:recipient.culture
+5
Zeal against Infidels
when
  • The target’s faith is your
  • Any character war:
    • If

      • Has you as the war's defender

      Then

      • primary_attacker = { … }

      Else if

      • Has you as the war's attacker

      Then

      • primary_defender = { … }

      Otherwise

      • Never
  • min = 0
ai_zeal
Attack on Ally
when
  • Any character war:
    • primary_defender != scope:puppet_or_actor
    • primary_defender = { is_allied_to = scope:recipient }
-50
War on another Ally
when
  • Any character war:
    • primary_attacker != scope:puppet_or_actor
    • primary_attacker = { is_allied_to = scope:recipient }
-25
Attack on Religious Brethren
when
  • The target’s faith is not your
  • Any character war:
    • One of these

      • The war’s casus belli is Minor Holy
      • or

        The war’s casus belli is Holy
      • or

        The war’s casus belli is Major Holy
      • or

        The war’s casus belli is Great Holy War
      • or

        The war’s casus belli is Great Holy War
      • or

        One of these

        • All of these

          • primary_attacker != scope:puppet_or_actor
          • primary_attacker.faith = scope:recipient.faith
        • or

          All of these

          • primary_defender != scope:puppet_or_actor
          • primary_defender.faith = scope:recipient.faith
-50
A scripted reason
when
  • Any character war:
    • One of these

      • All of these

        • primary_attacker != scope:puppet_or_actor
        • primary_attacker = { has_relation_friend = scope:recipient }
      • or

        All of these

        • primary_defender != scope:puppet_or_actor
        • primary_defender = { has_relation_friend = scope:recipient }
-50
A scripted reason
when
  • Any character war:
    • One of these

      • All of these

        • primary_attacker != scope:puppet_or_actor
        • primary_attacker = { has_relation_best_friend = scope:recipient }
      • or

        All of these

        • primary_defender != scope:puppet_or_actor
        • primary_defender = { has_relation_best_friend = scope:recipient }
-100
A scripted reason
when
  • Any character war:
    • One of these

      • All of these

        • primary_attacker != scope:puppet_or_actor
        • primary_attacker = { has_relation_lover = scope:recipient }
      • or

        All of these

        • primary_defender != scope:puppet_or_actor
        • primary_defender = { has_relation_lover = scope:recipient }
-100
A scripted reason
when
  • Any character war:
    • One of these

      • All of these

        • primary_attacker != scope:puppet_or_actor
        • primary_attacker = { has_relation_soulmate = scope:recipient }
      • or

        All of these

        • primary_defender != scope:puppet_or_actor
        • primary_defender = { has_relation_soulmate = scope:recipient }
-200
Wardens with my Hostages on opposing side
when
  • Any home court hostage:
    • warden = { … }
varies
Opposing Struggle Side
when
-100
Acceptance (ai_accept) (251 lines of game script)
base = -20
modifier = {
	add = 50
	scope:recipient = {
		has_realm_law = camp_purpose_mercenaries
	}
	desc = camp_purpose_mercenaries_reason
}
modifier = {
	save_temporary_scope_value_as = {
		name = attacker_war
		value = 2
	}
	scope:puppet_or_actor = {
		any_character_war = {
			primary_attacker = scope:puppet_or_actor
			attacker_war_score < 0
			save_temporary_scope_value_as = {
				name = attacker_war
				value = {
					value = scope:attacker_war
					multiply = attacker_war_score
				}
			}
		}
	}
	add = scope:attacker_war
	desc = attacker_losisng_too_much_reason
}
modifier = {
	add = scope:defender_war
	save_temporary_scope_value_as = {
		name = defender_war
		value = 2
	}
	scope:puppet_or_actor = {
		any_character_war = {
			primary_defender = scope:puppet_or_actor
			defender_war_score < 0
			save_temporary_scope_value_as = {
				name = defender_war
				value = {
					value = scope:defender_war
					multiply = defender_war_score
				}
			}
		}
	}
	desc = defender_losisng_too_much_reason
}
modifier = {
	add = -1000
	exists = scope:recipient.player_heir
	scope:puppet_or_actor = {
		any_character_war = {
			OR = {
				primary_defender = scope:recipient.player_heir
				primary_attacker = scope:recipient.player_heir
			}
		}
	}
	desc = WONT_FIGHT_HEIR_REASON
}
modifier = {
	add = -1000
	scope:puppet_or_actor = {
		any_character_war = {
			OR = {
				primary_defender = {
					is_spouse_of = scope:recipient
				}
				primary_attacker = {
					is_spouse_of = scope:recipient
				}
			}
		}
	}
	desc = WONT_FIGHT_SPOUSE_REASON
}
opinion_modifier = {
	who = scope:recipient
	opinion_target = scope:puppet_or_actor
	desc = AI_OPINION_REASON
}
modifier = {
	add = 50
	scope:recipient = {
		short_term_gold <= minor_gold_value
	}
	desc = NEEDS_CASH
}
modifier = {
	add = 50
	scope:puppet_or_actor = {
		any_character_war = {
			primary_defender = scope:puppet_or_actor
		}
	}
	desc = DEFENSIVE_WAR_REASON
}
modifier = {
	add = 5
	desc = speaks_same_language_interaction_reason
	scope:puppet_or_actor = {
		knows_language_of_culture = scope:recipient.culture
	}
}
compare_modifier = {
	trigger = {
		scope:recipient.faith = scope:puppet_or_actor.faith
		scope:puppet_or_actor = {
			any_character_war = {
				trigger_if = {
					limit = {
						primary_defender = scope:puppet_or_actor
					}
					primary_attacker = {
						faith = {
							faith_hostility_level = {
								target = scope:puppet_or_actor.faith
								value >= religious_cb_enabled_hostility_level
							}
						}
					}
				}
				trigger_else_if = {
					limit = {
						primary_attacker = scope:puppet_or_actor
					}
					primary_defender = {
						faith = {
							faith_hostility_level = {
								target = scope:puppet_or_actor.faith
								value >= religious_cb_enabled_hostility_level
							}
						}
					}
				}
				trigger_else = {
					always = no
				}
			}
		}
	}
	target = scope:recipient
	value = ai_zeal
	desc = ZEAL_AGAINST_INFIDELS
	min = 0
	multiplier = 0.5
}
modifier = {
	add = -50
	scope:puppet_or_actor = {
		any_character_war = {
			primary_defender != scope:puppet_or_actor
			primary_defender = {
				is_allied_to = scope:recipient
			}
		}
	}
	desc = ATTACK_ON_ALLY_REASON
}
modifier = {
	add = -25
	scope:puppet_or_actor = {
		any_character_war = {
			primary_attacker != scope:puppet_or_actor
			primary_attacker = {
				is_allied_to = scope:recipient
			}
		}
	}
	desc = WAR_WITH_ALLY_REASON
}
modifier = {
	add = -50
	scope:recipient.faith != scope:puppet_or_actor.faith
	scope:puppet_or_actor = {
		any_character_war = {
			OR = {
				using_cb = minor_religious_war
				using_cb = religious_war
				using_cb = major_religious_war
				using_cb = undirected_great_holy_war
				using_cb = directed_great_holy_war
				OR = {
					AND = {
						primary_attacker != scope:puppet_or_actor
						primary_attacker.faith = scope:recipient.faith
					}
					AND = {
						primary_defender != scope:puppet_or_actor
						primary_defender.faith = scope:recipient.faith
					}
				}
			}
		}
	}
	desc = WONT_ATTACK_RELIGIOUS_BRETHREN_REASON
}
modifier = {
	add = -50
	scope:puppet_or_actor = {
		any_character_war = {
			OR = {
				AND = {
					primary_attacker != scope:puppet_or_actor
					primary_attacker = {
						has_relation_friend = scope:recipient
					}
				}
				AND = {
					primary_defender != scope:puppet_or_actor
					primary_defender = {
						has_relation_friend = scope:recipient
					}
				}
			}
		}
	}
}
modifier = {
	add = -100
	scope:puppet_or_actor = {
		any_character_war = {
			OR = {
				AND = {
					primary_attacker != scope:puppet_or_actor
					primary_attacker = {
						has_relation_best_friend = scope:recipient
					}
				}
				AND = {
					primary_defender != scope:puppet_or_actor
					primary_defender = {
						has_relation_best_friend = scope:recipient
					}
				}
			}
		}
	}
}
modifier = {
	add = -100
	scope:puppet_or_actor = {
		any_character_war = {
			OR = {
				AND = {
					primary_attacker != scope:puppet_or_actor
					primary_attacker = {
# … (cut here; the rest is in the file)

As written in game/common/character_interactions/06_ep3_laamp_interactions.txt.

What happens

If they accept

  • Every in list:
    • Where: Has you as the war's defender
    • remove_from_list = actor_wars
  • Every in list:
    • Where: Has you as the war's attacker
    • remove_from_list = actor_wars
  • Every in list:
    • add_attacker = scope:recipient
  • Every in list:
    • add_defender = scope:recipient
  • Cannot join due to … being a secondary attacker or defender in › Every in list: …
  • If you do not have Treasury: Pay gold to the target
  • Otherwise:
    • pay_short_term_treasury = { target = scope:recipient treasury = ep3_hire_laamp_mercs_cost_value }
  • … will have to pay more Gold based on … Contribution at the end of each War
  • If

    Then

  • 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

  • The character you target:
  • 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

Events it fires: ep3_interactions_events.0111

• 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) (29 lines of game script)
is_available = trigger_if = {
	limit = {
		is_ai = yes
	}
	any_character_war = {
		is_war_leader = prev
	}
	war_chest_gold >= quarter_ai_war_chest_gold_maximum
}
is_shown = has_ep3_dlc_trigger = yes
scope:recipient = {
	has_government = landless_adventurer_government
}
scope:puppet_or_actor ?= {
	this != scope:recipient
	trigger_if = {
		limit = {
			scope:actor = {
				is_ai = yes
			}
		}
		scope:recipient.current_military_strength >= 100
		scope:recipient = {
			NOT = {
				has_character_flag = ai_hire_blocker
			}
		}
	}
}

As written in game/common/character_interactions/06_ep3_laamp_interactions.txt.

Can be sent when (is_valid…) (65 lines of game script)
scope:recipient = {
	is_travelling = no
	is_at_war = no
	is_imprisoned = no
}
scope:puppet_or_actor = {
	custom_tooltip = {
		text = MERCENARY_COMPANY_COST_BANKRUPTCY
		debt_level <= 1
	}
	is_at_war = yes
	custom_tooltip = {
		text = I_MUST_BE_THE_WAR_LEADER
		any_character_war = {
			is_war_leader = scope:puppet_or_actor
		}
	}
	NOT = {
		is_at_war_with = scope:recipient
	}
}
scope:puppet_or_actor = {
	NOT = {
		any_war_ally = {
			count >= 3
			has_government = landless_adventurer_government
		}
	}
}
scope:puppet_or_actor = {
	OR = {
		scope:actor = {
			is_ai = no
		}
		any_character_war = {
			count = all
			OR = {
				AND = {
					primary_attacker = scope:puppet_or_actor
					defender_war_score <= 95
				}
				AND = {
					primary_defender = scope:puppet_or_actor
					attacker_war_score <= 95
				}
			}
		}
	}
}
trigger_if = {
	limit = {
		scope:puppet_or_actor = {
			top_liege != this
		}
	}
	custom_tooltip = {
		text = the_wake_1
		NOT = {
			is_laamp_exiled_from_province_trigger = {
				PROVINCE = scope:puppet_or_actor.capital_province
				LAAMP = scope:recipient
			}
		}
	}
}

As written in game/common/character_interactions/06_ep3_laamp_interactions.txt.

Effects (on_send, on_accept, on_decline) (100 lines of game script)
on_accept = scope:puppet_or_actor = {
	every_character_war = {
		add_to_list = actor_wars
	}
}
every_in_list = {
	list = actor_wars
	limit = {
		primary_defender = scope:puppet_or_actor
	}
	add_to_list = join_as_defender
	remove_from_list = actor_wars
}
every_in_list = {
	list = actor_wars
	limit = {
		primary_attacker = scope:puppet_or_actor
	}
	add_to_list = join_as_attacker
	remove_from_list = actor_wars
}
every_in_list = {
	list = join_as_attacker
	add_attacker = scope:recipient
}
every_in_list = {
	list = join_as_defender
	add_defender = scope:recipient
}
every_in_list = {
	list = actor_wars
	custom = hire_laamp_mercenaries_interaction.not_primary_side
	every_in_list = {
		list = actor_wars
		save_temporary_scope_as = war
		custom_tooltip = hire_laamp_mercenaries_interaction.war
	}
}
scope:puppet_or_actor = {
	if = {
		limit = {
			has_treasury = no
		}
		pay_short_term_gold = {
			target = scope:recipient
			gold = ep3_hire_laamp_mercs_cost_value
		}
	}
	else = {
		pay_short_term_treasury = {
			target = scope:recipient
			treasury = ep3_hire_laamp_mercs_cost_value
		}
	}
	add_to_variable_list = {
		name = hired_mercenaries
		target = scope:recipient
	}
	custom_tooltip = hire_laamp_mercenaries_interaction.contribution_pay
	if = {
		limit = {
			has_title = title:h_china
			situation:dynastic_cycle ?= {
				situation_top_has_catalyst = catalyst_hegemon_hired_mercenary
			}
		}
		situation:dynastic_cycle ?= {
			trigger_situation_catalyst = {
				catalyst = catalyst_hegemon_hired_mercenary
				character = scope:puppet_or_actor
			}
		}
	}
}
scope:recipient = {
	set_variable = {
		name = joined_as_mercenary
		value = scope:puppet_or_actor
	}
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:puppet_or_actor
	TARGET = scope:recipient
	VALUE = medium_unity_gain
	DESC = clan_unity_alliance.desc
	REVERSE_NON_HOUSE_TARGET = no
}
debug_log = "Landed ruler hired a LAAMP to join wars"
debug_log_scopes = yes
on_decline = scope:recipient = {
	trigger_event = ep3_interactions_events.0111
	custom_tooltip = hire_laamp_mercenaries_interaction.negotiation_offer
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:puppet_or_actor
	TARGET = scope:recipient
	VALUE = minor_unity_loss
	DESC = clan_unity_alliance_refusal.desc
	REVERSE_NON_HOUSE_TARGET = no
}

As written in game/common/character_interactions/06_ep3_laamp_interactions.txt.

Category
Diplomatic actions
Again on the same character
after 3 years
DLC
Roads to Power
In the menu
under More…
ID
hire_laamp_mercenaries_interaction

Source: game/common/character_interactions/06_ep3_laamp_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?