Wiki

trigger · has_scientist_level

Definition

  • Supported scope:CHARACTER
  • Supported target:none

Description

Checks if the scientist of the character in scope matches the skill level condition for a specialization. Supports < > = operators.
level = <int>
specialization = <specialization_token>
ex: my_character = {
	  has_scientist_level = {
	    level > 2
	    specialization = specialization_nuclear
      }
	}

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

In research system-related mods, this is commonly used to restrict certain decisions or event options, allowing progression only when the scientist responsible for a specific field reaches a sufficient level. For example, in a nuclear weapons development chain, requiring a nuclear physics specialist to reach a certain proficiency before advancing to the next stage:

available = {
    my_nuclear_scientist = {
        has_scientist_level = {
            level > 2
            specialization = specialization_nuclear
        }
    }
}

Synergy

  • [is_active_scientist](/wiki/trigger/is_active_scientist): Verify that the character is currently in an active scientist state before checking their level, avoiding invalid evaluations on inactive scientists.
  • [is_scientist_injured](/wiki/trigger/is_scientist_injured): When combined with level checks, skip triggering high-difficulty research tasks when a scientist is injured, resulting in more rigorous logic.
  • [add_scientist_level](/wiki/effect/add_scientist_level): If the scientist's level is insufficient, boost it through event rewards, forming a complete "check-upgrade" cycle with this trigger.
  • [add_scientist_xp](/wiki/effect/add_scientist_xp): If level requirements are not met, accumulate experience points to drive leveling first, serving as a prerequisite incentive mechanism working in tandem with this trigger.

Common Pitfalls

  1. Forgetting to specify the correct scope: has_scientist_level must be used within a CHARACTER scope. Writing it directly in a country scope's condition block will cause script errors or silent failures. You must first enter the corresponding character's scope through a character reference (such as my_character = { ... }).
  2. Specialization token spelling errors: The specialization field must use the exact token defined in the game (such as specialization_nuclear). When capitalization or spelling is incorrect, there will be no obvious error message, and the condition will always evaluate to false, resulting in broken functionality that is difficult to diagnose.