Hands-On Usage
any_navy_leader is commonly used to check whether a country has at least one navy leader meeting specific criteria — for example, inside an available block of an event or decision to determine whether a high-skill or specially-traited naval commander exists, thereby unlocking special rewards or story branches. It is also useful in achievement mods to verify that the player has developed a qualifying naval elite.
# Check whether Germany has at least one navy leader with skill >= 4 and the navy_chief_decisive_battle_1 trait
GER = {
any_navy_leader = {
skill >= 4
has_trait = navy_chief_decisive_battle_1
}
}
Synergy
- is_navy_leader: Used after entering a character scope to confirm the character's role a second time. When nested with
any_navy_leader, it prevents false positives on characters who hold multiple positions simultaneously.
- has_trait: The most common inner condition, used to filter leaders who possess a specific naval trait.
- skill: Paired with a numeric skill check to quickly narrow results down to high-ranking navy leaders.
- has_nationality: In exile or multi-country leader scenarios, further restricts the leader's nationality to prevent exiled leaders from being included in the evaluation.
Common Pitfalls
- Wrong scope:
any_navy_leader can only be called within a COUNTRY scope. If the current scope is already a character or state, you must first switch back to a country scope using owner, ROOT, or similar, otherwise the script will error out or silently fail.
- Confusion with
is_navy_leader: any_navy_leader is an iterative trigger that loops over navy leaders from within a country scope, whereas is_navy_leader is a boolean trigger used inside a character scope to check whether the current character is a navy leader. The two are not interchangeable — using either in the wrong scope will cause the condition to evaluate as permanently false.