Hands-On Usage
This trigger is commonly used to determine whether an occupied country currently has a specific occupation modifier, allowing you to conditionally trigger subsequent decisions or events—for example, in a mod with an occupation compliance system, you might check whether the player has imposed a certain "colonial control" modifier on Italy before unlocking further suppression or appeasement options.
# Example: This decision is only available when the "harsh_occupation" modifier has been applied to ITA
available = {
has_core_occupation_modifier = {
occupied_country_tag = ITA
modifier = harsh_occupation
}
}
Synergy
[core_compliance](/wiki/trigger/core_compliance): Often paired together—use has_core_occupation_modifier to confirm the modifier exists, then use core_compliance to check whether compliance reaches a threshold. Both together form a complete occupation state evaluation logic.
[core_resistance](/wiki/trigger/core_resistance): Used in conjunction with resistance level checks to verify whether resistance under a given occupation modifier exceeds a danger threshold, triggering suppression events.
[has_dynamic_modifier](/wiki/trigger/has_dynamic_modifier): When occupation modifiers stack as dynamic modifiers, using both together allows cross-validation of modifier tiers and prevents oversight.
[add_dynamic_modifier](/wiki/effect/add_dynamic_modifier): Used alongside in effect blocks—first check with has_core_occupation_modifier whether an old modifier exists, then decide whether to stack a new occupation policy via add_dynamic_modifier.
Common Pitfalls
- The
modifier field expects a token identifier, not the display name: Beginners often mistakenly insert localization strings (such as "Harsh Occupation") into the modifier field. The correct approach is to use the token identifier defined when the modifier was scripted (such as harsh_occupation). Otherwise, the condition will never evaluate to true.
- Scope confusion: This trigger belongs to COUNTRY scope and must be called within the scope of the occupying country (not the occupied one). If mistakenly written in the occupied country's scope, the condition check will silently fail without error, making it difficult to debug.