Hands-On Usage
Commonly used in prisoner-of-war events or decisions to check whether a country's generals have been captured by a specific enemy nation, thereby triggering diplomatic negotiations, POW exchanges, or humiliation storylines. For example, in a Franco-German war scenario, this trigger checks whether France has any generals captured by Germany — if so, it unlocks a "Exchange Prisoners" decision.
# Only allow the POW exchange event to fire when France has a general captured by Germany
FRA = {
has_any_general_captured_by = GER
has_war_with = GER
}
Synergy
- has_war_with: You typically want to confirm that the two countries are at war before checking whether a general has been captured, to avoid logical contradictions during peacetime.
- any_army_leader: Can be used to iterate over specific army leaders, allowing more granular conditions to be applied to a particular captured general.
- has_capitulated: Pair with this to check whether the target country has already capitulated, distinguishing between "wartime POWs" and "post-war POWs."
- has_country_flag: Use alongside country flags to prevent POW exchange events from firing repeatedly — set a flag after the event triggers and use this trigger as a gate.
Common Pitfalls
- Scope direction is reversed: The scope of this trigger is the country the captured general belongs to, and the target is the capturing country. Beginners often swap the two — the correct form is
FRA = { has_any_general_captured_by = GER }, not using it inside GER's scope. Getting this backwards will produce completely inverted results.
- The target only accepts whitelisted keywords or country TAGs: The target field does not accept province IDs, STATE scopes, or any non-country targets. Only context keywords such as
THIS, ROOT, PREV, FROM, or explicit country TAGs (e.g. GER) are valid. Anything else will cause a silent script error, making the condition permanently evaluate to false.