Wiki

trigger · has_idea

Definition

  • Supported scope:COUNTRY
  • Supported target:none

Description

check if country has idea

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

has_idea is commonly used to check whether a nation possesses a specific national focus ideology, advisor, or spirit buff, thereby determining whether subsequent events or decisions are available. For example, in a custom focus tree, you can restrict the next phase of options to only nations that have acquired a certain economic law idea, or in an event, branch dialogue based on whether a specific military advisor idea is present.

# Decision is only available if the nation has the "war_economy" idea
available = {
    has_idea = war_economy
}

Synergy

  • [has_completed_focus](/wiki/trigger/has_completed_focus): First check whether a specific focus has been completed, then use has_idea to confirm that the idea granted by that focus is actually in effect. This double verification prevents logical gaps caused by ideas being removed through other means.
  • [add_ideas](/wiki/effect/add_ideas): Add ideas to a nation within an effect block. Typically, first check in a trigger block using has_idea to ensure the idea does not already exist before execution, preventing duplicate stacking.
  • [remove_ideas](/wiki/effect/remove_ideas) (paired removal operations corresponding to add_ideas entries): First confirm the idea's existence using has_idea, then safely remove it to avoid errors or silent failures when attempting to remove non-existent ideas.
  • [has_dynamic_modifier](/wiki/trigger/has_dynamic_modifier): has_idea checks static ideas while has_dynamic_modifier checks dynamic modifiers. Used together, they provide complete coverage for evaluating all bonus/penalty states of a nation.

Common Pitfalls

  1. Incorrect capitalization or spelling of idea names: The parameter for has_idea must match the idea token in the ideas = { ... } definition block exactly. Even a single underscore difference will silently return false without error, making it extremely difficult to debug.
  2. Confusing ideas with advisor characters: In newer versions, the advisor system has migrated to the character framework, and some advisors are no longer registered as traditional ideas. Using has_idea on such advisors will always return false. Use [has_character](/wiki/trigger/has_character) or [has_country_leader](/wiki/trigger/has_country_leader) instead.