trigger · is_puppet
Definition
- Supported scope:
COUNTRY - Supported target:
any
Description
Checks if the country is puppet of any other country
is_puppetCOUNTRYanyChecks if the country is puppet of any other country
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.
is_puppet is commonly used to determine whether the current country is in a puppet state, thereby restricting the activation of certain national focuses, decisions, or events—for example, preventing a puppet state from launching an independence war decision, or unlocking a technology tree only after the puppet is liberated. The following example demonstrates how to require the country to not be a puppet in a decision's available block:
available = {
NOT = { is_puppet = yes }
has_war = no
}
If you want to trigger an event specifically for puppet states, you can also directly write is_puppet = yes as the trigger condition.
[has_autonomy_state](/wiki/trigger/has_autonomy_state): After is_puppet = yes confirms the puppet relationship exists, use has_autonomy_state to further determine the specific autonomy tier (such as dominion or integrated puppet), enabling tiered logic.[compare_autonomy_progress_ratio](/wiki/trigger/compare_autonomy_progress_ratio): Combined with is_puppet, this can determine the autonomy progress ratio of a puppet state, commonly used in event trigger conditions for "about to become independent" scenarios.[end_puppet](/wiki/effect/end_puppet): In an effect block, when the is_puppet = yes condition is satisfied, you can invoke end_puppet to revoke the puppet relationship, typically used in implementing independence events.[any_subject_country](/wiki/trigger/any_subject_country): From the suzerain's perspective, any_subject_country is commonly used to iterate through all subject states, and by nesting is_puppet = yes within its limit, you can precisely filter puppets (as opposed to other types of subject states).is_puppet only determines "am I someone else's puppet" when scoped to the puppet state itself, not to check "do I have a puppet" from the suzerain's scope. Beginners often write is_puppet = yes under the suzerain's scope, causing the logic to always fail. The correct approach is to use any_subject_country + limit to iterate from the suzerain's side.is_puppet—this trigger specifically targets the "puppet" autonomy state; if the subject is another tier such as a dominion, the result may differ from expectations. It is recommended to combine with has_autonomy_state for more precise determination.