aboutsummaryrefslogtreecommitdiff
path: root/worldbuilding_guide/hidden_objects.md
blob: 24fd6bc157b8e8588f5829346b46979df1e14091 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
## 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 <object_name>` (name matching works even for hidden objects)
- Using `look <object>` once they know the name
- Gaining tier through progression, which reveals safespots in `look`

See [Safespots](objects.md#safespots) for the full YAML format.

---