Wiki

trigger · not_already_hired_except_as

Definition

  • Supported scope:CHARACTER
  • Supported target:none

Description

not_already_hired_except_as = <slot> - For characters with several advisor roles, checks if the current character is already assigned in another advisor slot.
example: let's say a character can be a political advisor and a theorist. But they should only be hired in one role, never both at the same time.
then you may set in the advisor available trigger :
	advisor = {
		slot = political_advisor
		available = { not_already_hired_except_as = political_advisor } 
		...
	}
	advisor = {
		slot = theorist
		available = { not_already_hired_except_as = theorist } 
		...
	}

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

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

  1. 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.
  2. 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.