Hands-On Usage
add_nationality is commonly used in intelligence/operative mods to grant an operative additional nationality, making them less likely to be exposed when executing missions in specific countries, or to simulate defection/turncoat scenarios in events. For example, when a Soviet operative is turned to serve France, you can write in an event option within a CHARACTER scope:
# In an event option within a CHARACTER scope
add_nationality = FRA
You can also use dynamic target references like ROOT and FROM to reference the triggering nation, enabling more generic and reusable script logic.
Synergy
[has_nationality](/wiki/trigger/has_nationality): Check whether the operative already possesses the target nationality before executing add_nationality to avoid duplicate additions that could cause logic confusion.
[set_nationality](/wiki/effect/set_nationality): set_nationality replaces the primary nationality, whereas add_nationality appends an additional one. Using both together allows precise control over an operative's primary and secondary nationality relationships.
[is_operative](/wiki/trigger/is_operative): Use as a precondition guard to ensure the current scope is actually an operative and not a regular general, preventing the effect from being applied to the wrong character type.
[turn_operative](/wiki/effect/turn_operative): The core companion command for defection scenarios. First use turn_operative to change the operative's allegiance, then use add_nationality to add their new faction's nationality, logically completing the turncoat sequence.
Common Pitfalls
- Wrong Scope:
add_nationality can only be executed within a CHARACTER scope. If you write it directly in a country scope (such as outside an any_country block) and forget to enter a CHARACTER scope, the game will silently error and the effect won't trigger. Always verify you've entered a CHARACTER scope via any_operative_leader or a direct character reference.
- Confusion with
set_nationality: Beginners often mistake the two as equivalent, but add_nationality stacks an additional nationality (at the operative credentials level) and does not change the character's primary allegiance. If your goal is to make a character "switch sides," use set_nationality instead; otherwise, the character will continue operating under their original nation's organization.