Hands-On Usage
When a character is designed to fill multiple advisor positions simultaneously (for example, both "Political Advisor" and "Theorist" exist in the same character definition), use this trigger to prevent players from hiring the same character in two slots at once. In custom character mods, whenever a character carries multiple advisor blocks, you should add the corresponding check in each available section.
character = {
advisor = {
slot = political_advisor
available = {
not_already_hired_except_as = political_advisor
}
traits = { smooth_talking_charmer }
cost = 150
}
advisor = {
slot = high_command
available = {
not_already_hired_except_as = high_command
}
traits = { army_logistics_2 }
cost = 100
}
}
Synergy
[is_hired_as_advisor](/wiki/trigger/is_hired_as_advisor): Can serve as a supplementary check to confirm whether a character is currently hired in a particular advisor role, forming complementary state verification logic with not_already_hired_except_as.
[has_advisor_role](/wiki/trigger/has_advisor_role): Used to determine whether a character has a specific advisor role defined, commonly paired in allowed blocks to ensure the character qualifies for the position before applying uniqueness checks.
[set_can_be_fired_in_advisor_role](/wiki/effect/set_can_be_fired_in_advisor_role): Controls whether a character can be fired after hiring logic is triggered, working in conjunction with availability checks to form complete advisor lifecycle management.
[is_advisor](/wiki/trigger/is_advisor): Quickly determines whether a character is currently in any active advisor state, can be paired in limit to avoid redundant hiring operations.
Common Pitfalls
- Forgetting to add checks to each advisor block individually: Beginners often mistakenly assume it only needs to be written once, but in reality each
advisor block's available section must independently include the check with its own slot as the parameter. Missing even one will cause that slot to lose mutual exclusion protection, allowing the character to be hired multiple times.
- Writing the parameter as a different slot name: The parameter in
not_already_hired_except_as = political_advisor must match the slot value of the current advisor block. If you mistakenly write a different slot name, the logic inverts—the character cannot be selected again when already holding this position, but can be hired multiple times when holding other positions.