Hands-On Usage
When a mod involves prisoner-of-war mechanics or diplomatic negotiation storylines, this trigger can be used to check whether a country has any captured generals, allowing you to fire dedicated events or unlock related decisions. For example, in a peace deal or post-war reckoning focus, you can check whether your own generals have fallen into enemy hands and then offer the player additional leverage options.
# Fires a POW exchange country event when France has at least one captured general
country_event = {
id = fra_pow.1
trigger = {
tag = FRA
has_war = yes
has_any_captured_general = yes
}
option = {
name = fra_pow.1.a
add_war_support = -0.05
}
}
Synergy
- has_war — Generals are typically captured during wartime; pairing this with
has_war prevents accidental triggers during peacetime.
- has_capitulated — Combine with a check for whether a belligerent has already capitulated, useful for determining whether the faction holding the captured general is still an active participant.
- any_army_leader — Can be used underneath to further filter which specific general has been captured, enabling more granular condition checks.
- country_event — The most natural follow-up effect after a general is captured; commonly used to fire a dedicated story event.
Common Pitfalls
- Wrong scope: This trigger can only be used within a
COUNTRY scope. Beginners often call it directly inside a state scope in a state_event or inside a character scope, which causes script errors or a condition that is permanently false. Always confirm you are in a country scope before using it.
- Assuming a target country can be specified: Despite the word "captured" in the trigger name, it does not accept a
target parameter — you cannot write has_any_captured_general = GER to specify which country did the capturing. If you need to check whether a general was captured by a specific country, you must use nested logic with any_army_leader or similar triggers.