Hands-On Usage
all_claimant is commonly used in decisions or focus conditions related to territorial disputes — for example, checking whether all countries that hold a claim on a given state are currently at war, in order to trigger specific diplomatic or military events. Typical use cases include verifying that all claimants meet a prerequisite before releasing a puppet or transferring a state, preventing logic conflicts.
# Only allow the transfer if every claimant on the disputed state is at war
available = {
42 = { # disputed state scope
all_claimant = {
has_war = yes
}
}
}
Synergy
- any_claim: Use
any_claim first to quickly check whether at least one claimant exists, then follow up with all_claimant for a stricter all-or-nothing check — this prevents all_claimant from unexpectedly returning true when no claimants are present.
- has_war: The most common inner condition; checks whether each claimant is currently at war, forming a war prerequisite.
- is_in_faction: Used inside
all_claimant to verify that every claimant has already joined a faction — often used as an unlock condition in multi-party alliance scenarios.
- controls_state: Used inside
all_claimant to check whether each claimant actually controls the disputed state, distinguishing a nominal claim from physical occupation.
Common Pitfalls
- Trigger returns true when no claimants exist: When a state has no claimants at all,
all_claimant follows the "universal quantifier over an empty set is vacuously true" logic and returns true, which can cause conditions to be satisfied unexpectedly. It is recommended to pair it with any_claim = yes in the outer scope as a safety check.
- Wrong scope level:
all_claimant must be called from within a STATE scope. Beginners often write it directly inside a country scope, causing script errors or silent failures. You must first switch to the correct state scope via a state TAG or capital_scope before calling it.