Features
MUDdown is a modern MUD platform built on Markdown. Here's what's live today.
Format & Protocol
- Markdown-native output — Rooms, combat, dialogue, and system messages are structured Markdown, readable as plain text and rendered in any client.
- Container blocks — Semantic blocks (
:::room,:::combat,:::dialogue,:::system) with typed attributes carry every game event. - Interactive link schemes — Clickable commands via
go:,cmd:,item:,npc:,player:, andhelp:. - YAML frontmatter — Room metadata, exits, items, and lighting declared up front for machine consumption.
- Wire protocol — JSON envelopes over WebSocket carry typed MUDdown payloads.
- ARIA-labelled blocks — Container blocks (
:::room,:::system,:::combat,:::dialogue) are rendered withrole="group"and a descriptivearia-label, so screenreaders can navigate output by block type without conflicting with the surrounding game-log live region.
Gameplay
- 24-room demo world — "Northkeep" spans 5 regions: town center, market, harbor, north road, and catacombs.
- Items & equipment — 31 items across 22 rooms; pick up, drop, equip, unequip, use, examine, and combine, with weapon, armor, and accessory slots.
- NPCs & dialogue — 16 NPCs with branching dialogue trees and entity lifecycle hooks.
- Turn-based combat — Attack, flee, shared NPC HP, defeat tracking, and respawn timers.
- Character creation — Pick a name and class: Warrior, Mage, Rogue, or Cleric.
- Multi-player — See other players in rooms, broadcast chat, arrival and departure messages.
- Help system —
help <command>for per-command usage, with clickable cross-references viahelp:links.
AI & LLM
- LLM-powered NPCs — NPCs with backstories generate in-character dialogue at runtime, with automatic fallback to static dialogue trees.
- Immediate talk feedback — Player speech and a short NPC acknowledgement render before the LLM reply lands, masking generation latency.
- Dynamic room descriptions — Room narratives adapt to your class, health, equipment, and combat state.
- AI game assistant — The
hintcommand gives context-aware suggestions based on your location, inventory, and surroundings. - Lore search (RAG) — The
lorecommand answers questions via TF-IDF vector search across rooms, NPCs, items, and recipes. - MCP server — Game state exposed as Model Context Protocol resources with 15 granular tools for agent play.
- Provider-agnostic — Vercel AI SDK abstraction; Anthropic out of the box, swap providers with a single env var.
Play Anywhere
- Web client — Full browser MUD at /play with auto-reconnecting WebSocket, command history, inventory and hint panels, and clickable game links.
- Desktop app — Native Tauri v2 client for macOS, Windows, and Linux with menu bar, system tray, OS notifications, keyboard shortcuts, and persistent window state.
- Mobile app — Expo-based iOS/Android client with native MUDdown renderer, character selection, and tappable game links.
- Terminal client — Full-featured Node.js CLI with readline-based input, startup wizard, browser-based OAuth, and shell mode.
- Telnet bridge — TLS proxy (port 2323) with NAWS sizing, TTYPE ANSI detection, numbered link mode, and OSC 8 hyperlinks including Mudlet
send:-URI support. - Discord bridge — Play from a Discord DM via the
/playslash command; interactive links render as buttons and select menus.
Accounts & Persistence
- OAuth login — Sign in with Discord, GitHub, Microsoft, or Google. No passwords to manage.
- Player persistence — Room position, inventory, equipment, and HP saved across sessions in SQLite.
- World state persistence — Room items, NPC health, and defeated NPC tracking survive server restarts.
- Rate limiting — Per-session token-bucket throttling protects against command flooding.
- Discord Rich Presence — Optional, opt-in: the desktop app can show your region, room title, and session time on your Discord profile via local IPC only. Off by default.
Infrastructure
- Turborepo monorepo — Shared types, independent packages, parallel builds. TypeScript strict mode throughout.
- MUDdown parser — Extracts blocks, attributes, links, sections, and frontmatter from any MUDdown document.
- Reusable client library — Framework-agnostic
@muddown/clientwith renderer, connection manager, history, link resolver, and inventory state. - Signed desktop downloads — Authenticode-signed Windows MSIs via Microsoft Artifact Signing, with macOS notarization support built into the release pipeline. Downloads page auto-detects OS and architecture.
- Production deployment — Debian server with nginx, TLS via Let's Encrypt, systemd units, CI/CD via GitHub Actions.
- Comprehensive test suite — 1388 tests across parser, server, client, bridge, discord-bridge, MCP, desktop, and website packages via vitest.