Hands-On Usage
This trigger is commonly used in volunteer-related events or decisions to check whether a character is commanding volunteer forces under a specific original country's flag, enabling different story branches or rewards. For example, in civil war intervention mods, it can identify volunteer commanders from a particular nation and grant them exclusive traits or dialogue options.
# In a character event, check if the commander is leading volunteer forces with French origin
character_event = {
id = volunteer_mod.1
trigger = {
is_leading_volunteer_group_with_original_country = FRA
is_corps_commander = yes
}
option = {
name = "volunteer_mod.1.a"
add_trait = { trait = brilliant_strategist }
}
}
Synergy
[is_leading_volunteer_group](/wiki/trigger/is_leading_volunteer_group): Often used together with this trigger. The former checks only "whether leading volunteers," while the latter further specifies the original country. Combined, the logic becomes more precise.
[has_trait](/wiki/trigger/has_trait): Used in conjunction to further filter whether the commander already possesses a specific trait after confirming their identity, preventing duplicate additions.
[add_unit_leader_trait](/wiki/effect/add_unit_leader_trait): Once the condition is confirmed, adds an exclusive trait to the volunteer commander as a reward or penalty.
[has_nationality](/wiki/trigger/has_nationality): Complements the original country check by distinguishing edge cases where a character's current nationality differs from their origin country, preventing logical gaps.
Common Pitfalls
- Wrong scope: This trigger must be used under CHARACTER or COMBATANT scope. Placing it directly in a country scope (such as the top-level trigger block of a
country_event) will silently fail or throw an error. Use any_character / any_unit_leader and similar constructs to switch to the correct scope first.
- Country tag case sensitivity: When specifying the target country, always use uppercase three-letter tags (e.g.,
FRA not fra). Incorrect tags will not produce an error message but will simply cause the condition to always return false, making debugging difficult.