Wiki

trigger · is_controlled_by

Definition

  • Supported scope:STATE
  • Supported target:THIS, ROOT, PREV, FROM, OWNER, CONTROLLER, OCCUPIED, CAPITAL

Description

check if state is controlled by

Hands-On Notes

Hands-on notes are AI-generated and checked against the vanilla command vocabulary — treat them as a starting point, not authoritative reference. The definition above is the game's own documentation.

Hands-On Usage

is_controlled_by is commonly used in decisions or events related to occupation and puppets to check whether a specific state/region is currently under actual control by a particular nation (rather than merely possessing sovereignty). For example, in resistance movement mods it can restrict triggering specific events or decisions only when the occupying power truly controls a state. It's also frequently used in liberation war scenarios: after a state's control is reclaimed by friendly forces, subsequent administrative reconstruction effects are permitted to execute.

# Allow activation of an occupation decision only if the state is controlled by Germany
available = {
    is_controlled_by = GER
}

Synergy

  • [is_owned_by](/wiki/trigger/is_owned_by): Control and ownership often need to be checked simultaneously. Possessing sovereignty without control (or vice versa) is core to the occupation mechanic; using both together precisely describes the "enemy-occupied home territory" state.
  • [is_owned_and_controlled_by](/wiki/trigger/is_owned_and_controlled_by): Functions as a combined shortcut for is_owned_by + is_controlled_by. When distinction isn't needed, it can replace the previous two; comparative usage helps clarify the semantic boundaries between all three.
  • [set_state_controller_to](/wiki/effect/set_state_controller_to): When an effect needs to change control, typically first use is_controlled_by in a limit block to confirm the current controller, then execute this effect to transfer it, forming a standard "check→execute" pattern.
  • [has_active_resistance](/wiki/trigger/has_active_resistance): Resistance movement intensity typically ties to the occupying power. Combined use filters states that are "controlled by a specific nation and have active resistance," useful for suppression or event logic triggers.

Common Pitfalls

  1. Confusing control with ownership: Newcomers often mistakenly use is_controlled_by to judge whether a nation "owns" a state. In fact, the two coincide in peacetime, but during war your own states may be controlled by enemies while ownership remains unchanged. If your logic requires sovereignty checks, switch to is_owned_by instead, otherwise you'll get unexpected false values in non-occupation scenarios.
  2. Misusing in COUNTRY scope: This trigger only works in STATE scope. If you write is_controlled_by = XXX directly in the top-level trigger block of a country event without first switching to state scope (via any_neighbor_state, state, etc.), the script will error or silently fail. Always ensure your current scope is a specific state.