Progress / Phase 5
Phase 5: Chat and Presence
Players can talk and see who’s around: say, zone chat, whispers, nameplates, emotes and a who list.
Phase 50 / 24 · 0%
This phase is still ahead.
5.1 Chat on the server
0 of 7 done- Channels: say (range-limited), zone, whisper (by character name), emote and system, with server timestamps.
- Fan-out by channel with length limits and per-player token-bucket rate limits that reply with a friendly “slow down”.
- Each chat message encoded once for all its recipients, with a benchmark of zone chat to 1,000 players.
- Persisted ignore list and whisper reply.
-
/wholisting online characters in the zone. - Text hygiene: Unicode normalization, control characters stripped, combining marks capped.
- Chat logs kept for 30 days for moderation and then deleted, as the privacy policy states.
5.2 Moderation
0 of 4 done- Account roles (player, moderator, admin) with server-side permission checks.
- Moderator commands: timed mute, kick, and timed or permanent ban, all written to an audit log.
-
/report <name> <reason>stored for review. -
lorehallow-adminCLI on the host for role grants, bans and report review.
5.3 Chat in the client
0 of 4 done- Chat window with channel filters, scrollback,
/commands, optional timestamps and clickable names to whisper. - Speech bubbles above characters for say chat.
- Nameplates with a readable outlined pixel font.
- Emotes
/wave,/sitand/dancewith animations.
5.4 Art Batch 05: UI kit
0 of 3 done- Decision Game UI font: an open-licensed pixel font with full Latin coverage, ideally matching the website.
- Draw Batch 05 by hand: 9-slice window frames, buttons, chat bubble, nameplate backing, channel icons and emote frames (sit, wave, dance).
- Intake and integrate, with one UI theme module in the client used by all UI.
5.5 Walkthrough
0 of 2 done-
docs/walkthroughs/phase-05-chat.md: fan-out, rate limiting and moderation design. - Devlog draft, release notes, tag
v0.5.0and deploy the browser build.
Acceptance criteria
0 of 4 done- Say reaches only nearby players, zone chat reaches the zone, and whispers reach only their target.
- A bot spamming chat gets rate limited without affecting anyone else (test).
- A moderator can mute, kick and ban, and every action appears in the audit log.
- Owner Playtest: a small group chats comfortably and the UI reads well at 2x and 3x.
