98 lines
1.9 KiB
Markdown
98 lines
1.9 KiB
Markdown
|
|
# Item Types
|
||
|
|
|
||
|
|
This is behavior-focused documentation for item types and their defaults.
|
||
|
|
|
||
|
|
## Shared Item Behavior
|
||
|
|
|
||
|
|
- Items are server-authoritative.
|
||
|
|
- Global per-type fields are injected by the server and are not persisted per-instance:
|
||
|
|
- `capabilities`
|
||
|
|
- `useSound`
|
||
|
|
- `emitSound`
|
||
|
|
- `useCooldownMs` (from item catalog)
|
||
|
|
- Instance fields are persisted in `server/runtime/items.json`.
|
||
|
|
|
||
|
|
## `radio_station`
|
||
|
|
|
||
|
|
### Defaults
|
||
|
|
- Title: `radio`
|
||
|
|
- Params:
|
||
|
|
- `streamUrl=""`
|
||
|
|
- `enabled=true`
|
||
|
|
- `channel="stereo"`
|
||
|
|
- `volume=50`
|
||
|
|
- `effect="off"`
|
||
|
|
- `effectValue=50`
|
||
|
|
- Global:
|
||
|
|
- `useSound=none`
|
||
|
|
- `emitSound=none`
|
||
|
|
- `useCooldownMs=1000`
|
||
|
|
|
||
|
|
### Use
|
||
|
|
- `use` toggles `enabled` on/off and broadcasts chat status.
|
||
|
|
|
||
|
|
### Validation
|
||
|
|
- `channel`: `stereo | mono | left | right`
|
||
|
|
- `volume`: integer `0..100`
|
||
|
|
- `effect`: `reverb | echo | flanger | high_pass | low_pass | off`
|
||
|
|
- `effectValue`: number `0..100` with `0.1` precision
|
||
|
|
|
||
|
|
## `dice`
|
||
|
|
|
||
|
|
### Defaults
|
||
|
|
- Title: `Dice`
|
||
|
|
- Params:
|
||
|
|
- `sides=6`
|
||
|
|
- `number=2`
|
||
|
|
- Global:
|
||
|
|
- `useSound=sounds/roll.ogg`
|
||
|
|
- `emitSound=none`
|
||
|
|
- `useCooldownMs=1000`
|
||
|
|
|
||
|
|
### Use
|
||
|
|
- Rolls `number` dice with `sides` sides and reports values + total.
|
||
|
|
|
||
|
|
### Validation
|
||
|
|
- `sides`: integer `1..100`
|
||
|
|
- `number`: integer `1..100`
|
||
|
|
|
||
|
|
## `wheel`
|
||
|
|
|
||
|
|
### Defaults
|
||
|
|
- Title: `wheel`
|
||
|
|
- Params:
|
||
|
|
- `spaces="yes, no"`
|
||
|
|
- Global:
|
||
|
|
- `useSound=sounds/spin.ogg`
|
||
|
|
- `emitSound=none`
|
||
|
|
- `useCooldownMs=4000`
|
||
|
|
|
||
|
|
### Use
|
||
|
|
- Announces spin immediately.
|
||
|
|
- Result is sent after delay.
|
||
|
|
|
||
|
|
### Validation
|
||
|
|
- `spaces`: comma-delimited values
|
||
|
|
- At least 1 entry
|
||
|
|
- Max 100 entries
|
||
|
|
- Max 80 chars per entry
|
||
|
|
|
||
|
|
## `clock`
|
||
|
|
|
||
|
|
### Defaults
|
||
|
|
- Title: `clock`
|
||
|
|
- Params:
|
||
|
|
- `timeZone="America/Detroit"`
|
||
|
|
- `use24Hour=false`
|
||
|
|
- Global:
|
||
|
|
- `useSound=none`
|
||
|
|
- `emitSound=sounds/clock.ogg`
|
||
|
|
- `useCooldownMs=1000`
|
||
|
|
|
||
|
|
### Use
|
||
|
|
- Reports current time from item timezone and format.
|
||
|
|
|
||
|
|
### Validation
|
||
|
|
- `timeZone`: one of `CLOCK_TIME_ZONE_OPTIONS` in `server/app/item_catalog.py`
|
||
|
|
- `use24Hour`: boolean or on/off style input
|