// Construction
Rdecorate
Attach ambient or hidden detail to the room you are
standing in. Two kinds of detail are supported:
tdesc Visible to everyone on `look`. Renders
as a separate line below the main room
description, suffixed with a cyan-lite
`[Temporary, 3h ago]` tag.
hdesc Hidden. Not shown on a plain `look`
until a player has discovered it. To
find one, players run `search` and pass
an Observation roll modified by the
difficulty you set. Once found, the
detail stays visible to that specific
player on every subsequent `look` (until
it expires).
Both kinds auto-expire after 7 in-game days. There
is no player-side remove -- if a desc needs to come
down before it expires, ask an admin to clear it via
@rdecorate/remove.
# subtopics
## Usage
rdecorate/tdesc <text>
rdecorate/hdesc <difficulty>=<text>
rdecorate/list
The difficulty in hdesc is a GURPS skill modifier
(an integer). 0 is average, positive numbers make the
detail easier to spot, negative numbers harder. See
help roll difficulty for the full scale and
recommended ranges.
list shows your own contributions to this room
(each with its remaining age) so you can keep track
of what you've placed where.
## Examples
rdecorate/tdesc someone has scrawled "WAKE UP" on the wall
rdecorate/tdesc the air smells faintly of ozone
rdecorate/hdesc -4=a thin razor is wedged behind the picture
rdecorate/hdesc 0=a single boot-print near the door
rdecorate/list
## How `search` reveals hidden descs
When a player types `search`, the room broadcasts a
short pose so onlookers know they are searching. For
each undiscovered hidden description, the searcher
rolls Observation at the desc's difficulty. Each
successful roll surfaces one hidden detail privately
to the searcher and records them as a discoverer.
Once discovered, the detail appends to that player's
`look` output as
<desc> [Hidden, <age>]
in the same cyan-lite tagged style as tdescs. They
never need to roll for it again -- they remember it.
Discoveries are per-player; another character in the
same room still has to find it themselves.
Failures are silent: the searcher isn't told how many
descs they missed, or whether any exist at all.
## Storage
Both kinds live on the room as attributes
(room.db.temp_descs, room.db.hidden_descs)
and persist across reloads. Expired temp descs are
pruned lazily on the next render or `rdecorate/list`.
// Construction