## Hidden Objects Objects with `hidden: true` don't appear in the room's object listing. Players discover them by reading room descriptions or trying commands. The object is still fully interactable — `push gate`, `look gate`, etc. ```yaml # data/objects/secret_lever.yaml id: secret_lever name: stone lever hidden: true description: "A cleverly concealed lever behind a loose stone." use_interactions: - condition: flag: secret_passage_open value: true not: true message: "You pull the lever. A grinding sound echoes from the east." action: set_flags: secret_passage_open: true ``` Room description hints at it: ```yaml description: "A dusty corridor. One of the wall stones looks slightly out of place." ``` ### Safespot Objects Safespot objects should always be `hidden: true`. They only become visible in `look` when the player's effective safespot tier meets the object's `safespot.tier` requirement. This creates a natural discovery mechanic: completing quests and achievements reveals new coverage opportunities. Players can discover safespots by: - Reading room descriptions for hints - Trying `hide ` (name matching works even for hidden objects) - Using `look ` once they know the name - Gaining tier through progression, which reveals safespots in `look` See [Safespots](objects.md#safespots) for the full YAML format. ---