Hands-On Usage
has_completed_track is commonly used in scenarios where you need to check whether a specific ideology/doctrine branch has been fully researched. It's typically found in national focuses, decisions, or events where special rewards or story branches are unlocked based on the player's doctrine research progress. Common use cases include triggering an elite armor division organization decision only after a nation completes a specific armor doctrine branch, or checking doctrine completion in advisor effects to grant additional bonuses.
# Allow activating a special decision after this nation completes the infantry branch
available = {
has_completed_track = infantry
}
Synergy
[has_completed_subdoctrine](/wiki/trigger/has_completed_subdoctrine): Both belong to the doctrine-checking trigger family. has_completed_subdoctrine checks whether a single sub-doctrine node is researched, while has_completed_track checks an entire branch. They are often combined to distinguish between different reward thresholds for "partially completed" versus "fully completed" states.
[add_doctrine_cost_reduction](/wiki/effect/add_doctrine_cost_reduction): After confirming the player has completed a branch, use this effect to grant subsequent doctrine research discounts, creating an incentive chain of "the deeper you research, the greater your advantage."
[has_doctrine](/wiki/trigger/has_doctrine): Before checking branch completion, it's common to first use has_doctrine to verify that a specific doctrine node is unlocked. The two can be paired to construct more granular multi-level conditional logic.
[add_tech_bonus](/wiki/effect/add_tech_bonus): After completing an entire doctrine branch, use this effect to accelerate research in the next direction, commonly seen in national focus completion rewards or event effect blocks.
Common Pitfalls
- Accidentally inserting equipment/technology tags: The value for this trigger should be a doctrine branch name (such as identifiers like
infantry, armor, etc. from sub-doctrine tracks), not regular research keys from the technology tree. Entering the wrong value won't cause an error but the condition will never evaluate to true, making it difficult to debug.
- Incorrect scope usage: This trigger only works in COUNTRY scope. If written within STATE or CHARACTER scope (for example, accidentally placed inside a
every_owned_state sub-block), it will fail to evaluate properly. Always ensure the outer scope points to a nation.