Hands-On Usage
any_army_leader is commonly used to check whether a country has at least one army leader meeting specific conditions — for example, determining whether a country has a high-skill leader or one with a particular trait, then deciding whether to fire an event, unlock a decision, or enable certain options. Typical use cases include: gating a specific focus branch behind a country having a leader with the brilliant_strategist trait, or evaluating enemy leader capability inside AI logic.
# Check whether Germany has an army leader with a specific trait and sufficient skill
GER = {
any_army_leader = {
has_trait = brilliant_strategist
skill > 3
}
}
Synergy
- has_trait: Nested inside
any_army_leader to filter for leaders carrying a specific trait (e.g. panzer_leader). This is the most common inner condition.
- is_field_marshal: Used inside an
any_army_leader block to further distinguish whether the matched leader has already been promoted to field marshal, preventing false positives across ranks.
- planning_skill_level: Checks whether a leader's planning skill level meets a threshold; frequently used as a trigger condition for measuring strategic readiness.
- logistics_skill_level: Paired with
any_army_leader to check logistics skill, useful in supply-system mods for determining whether a country has efficient logistical support.
Common Pitfalls
- Wrong scope:
any_army_leader can only be used inside a COUNTRY scope. Calling it inside a STATE, CHARACTER, or other scope will cause it to silently fail or throw an error. Make sure the outer scope has been switched to a country before using it.
- Treating the inner block as an effect:
any_army_leader is a pure trigger — only trigger conditions (such as has_trait or skill) may be written inside its block. Effects like add_trait cannot be placed there directly. If you need to perform operations on leaders that match the conditions, use the effect-side every_army_leader with a limit block instead.