Shout System
A server-wide global chat channel with a cooldown, per-player opt-out, region and ban restrictions, plus a separate staff-only channel. Source: UOD - System Shout.scp.
How it works
Shouting — FUNCTION shout (invoked via .sh <text>):
- Blocked if the player has
tag.shout_ban==1(shout-banned). - Blocked in any region whose name matches
*jail*(unless GM) orThe Maze. - Strips accented/non-unicode characters via
NOACCENTS. - Staff (
account.plevel > 1) shout with no cooldown; their message is broadcast to all clients as[Staff] <name> shouts: .... - Players are rate-limited by the equipped timer item
i_shout_memory(10-second cooldown). On a successful shout the message is broadcast to every client viashow_shout, and a newi_shout_memoryis equipped.
Receiving — show_shout prints the shout to each client unless that client has tag.shoutoff set, so players can mute the channel.
Staff channel — FUNCTION staff sends <args> to all clients through f_staff, which only displays it to accounts with plevel > 1 ([STAFF] <name> to staff: ...).
Commands / player-facing usage
| Command | Effect |
|---|---|
.sh <text> |
Shout to the whole server (FUNCTION sh → shout) |
.shouton |
Turn shout receiving back on (tag.shoutoff=0) |
.shoutoff |
Mute the shout channel (tag.shoutoff=1) |
staff <text> |
Staff-only broadcast (only plevel > 1 see it) |
Key definitions
| DEFNAME | Role |
|---|---|
shout |
Core shout logic (ban/region/cooldown checks + broadcast) |
sh |
Short alias that calls shout |
show_shout |
Per-client display respecting tag.shoutoff |
i_shout_memory |
10-second equipped cooldown timer |
staff / f_staff |
Staff-only broadcast channel |
tag.shout_ban |
Per-player flag disabling shouting |
tag.shoutoff |
Per-player flag muting incoming shouts |
Note: Colours come from
def.sysshout,def.syschat, anddef.sysgm. The player-branch code checks regionThe Mazefor shouting; regions like Jail are matched case-insensitively.