Wiki

trigger · is_puppet

Definition

  • Supported scope:COUNTRY
  • Supported target:any

Description

Checks if the country is puppet of any other country

实战 · 配合 · 坑

实战内容由 AI 生成,并已对照 vanilla 命令词表校验 —— 请当作起点而非权威依据。上方的定义节才是游戏自带文档原文。

实战用法

is_puppet 常用于判断当前国家是否处于傀儡状态,从而限制某些国策、决策或事件的触发——例如阻止傀儡国发动独立战争的决策,或在傀儡国解放后才开放某条科技路线。以下示例展示如何在决策的 available 块中要求该国不是傀儡才能执行:

available = {
    NOT = { is_puppet = yes }
    has_war = no
}

若想专门给傀儡国触发事件,也可直接写 is_puppet = yes 作为触发条件。

配合关系

  • [has_autonomy_state](/wiki/trigger/has_autonomy_state)is_puppet = yes 确认傀儡关系存在后,再用 has_autonomy_state 进一步判断具体的自治等级(如帝国领地还是自治领),实现分级逻辑。
  • [compare_autonomy_progress_ratio](/wiki/trigger/compare_autonomy_progress_ratio):与 is_puppet 搭配可判断傀儡国的自治进度比例,常用于"即将独立"的事件触发条件。
  • [end_puppet](/wiki/effect/end_puppet):在 effect 块中,当 is_puppet = yes 条件满足时,可调用 end_puppet 解除傀儡关系,典型用于独立事件的实现。
  • [any_subject_country](/wiki/trigger/any_subject_country):宗主国侧常用 any_subject_country 遍历所有附属国,并在其 limit 中嵌套 is_puppet = yes 来精确筛选出傀儡(而非其他类型的附属国)。

常见坑

  1. 把它当双向关系用is_puppet 只在傀儡国自身的 scope 下判断"我是否是别人的傀儡",而非在宗主国 scope 下检查"我是否有傀儡"。新手常在宗主国 scope 里写 is_puppet = yes 导致逻辑永远为假,正确做法是用 any_subject_country + limit 来从宗主侧遍历。
  2. 忽略自治等级的差异:并非所有附属关系都会让 is_puppet 返回真——该 trigger 针对的是"傀儡"这一自治状态,若附属国是自治领等其他等级,结果可能与预期不符,建议同时搭配 has_autonomy_state 做更精确的判断。

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_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.

Synergy

  • [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).

Common Pitfalls

  1. Treating it as a bidirectional relationship: 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.
  2. Overlooking autonomy tier differences: Not all subject relationships will return true for 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.