## Conditions Reference Conditions are used in talk option guards, talk node conditions, exit gates, on-enter scripts, on_use / on_look / on_kill interactions, exit on_traverse interactions, room descriptions, object descriptions, and trigger value matching. ### Simple conditions A bare `global_flag:` / `player_flag:` check passes when the flag is **set to a truthy value** (`true`, a non-zero number, a non-empty string). Add `value:` only when you need to match a specific value (e.g. a numeric quest stage). `not: true` inverts any check. ```yaml # Check a global flag is set condition: flag: gate_open # Check a global flag is NOT set condition: flag: gate_open not: true # Check a player flag is set condition: player_flag: finished_tutorial # Check a player flag is NOT set (e.g. only on the first visit) condition: player_flag: finished_tutorial not: true # Match a specific (non-boolean) value condition: player_flag: quest_stage value: 3 # Check if player has an item condition: has_item: bronze_key # Check if player does NOT have an item condition: has_item: bronze_key not: true # Check if player has enough credits condition: min_credits: 50 ``` ### Compound conditions All must pass: ```yaml condition: all_of: - flag: gate_open - has_item: pass_stub ``` Any one must pass: ```yaml condition: any_of: - has_item: bronze_key - has_item: iron_key - player_flag: master_of_unlocking ``` Nested compounds: ```yaml condition: all_of: - player_flag: quest_started - any_of: - has_item: wolf_pelt - has_item: bear_pelt ``` ---