Skip to content

Introduction

TalesMUD is an open-source framework for building browser-based Multi-User Dungeons (MUDs). It provides a complete, production-ready platform — backend, frontend, content editor, and all core RPG systems — so you can focus on building your world rather than your engine.

A MUD (Multi-User Dungeon) is a text-based multiplayer online game. Players navigate a world described in prose, interact with other players and NPCs, fight monsters, complete quests, and advance their characters — all through typed commands.

MUDs pioneered online multiplayer RPGs in the late 1980s. TalesMUD brings the format into the modern web: no telnet, no legacy clients, just a browser tab.

Go Backend

A single Go binary embeds the game server, HTTP API, and Svelte frontend. SQLite persistence means zero external dependencies.

Svelte Game Client

A terminal-style browser game client built with Svelte and xterm.js. Minimap, tab widgets, quest log, inventory panels.

Web Content Editor

CRUD interface for all game entities: rooms, NPCs, items, quests, dialog trees, scripts, and loot tables.

Complete RPG Systems

Combat, progression, skills, quests, dialogs, merchants, Lua scripting — all built-in and extensible.

WebSocket-based communication delivers instant feedback for movement, combat, chat, and events. Multiple players share the same world in real time.

Initiative rolls (1d20 + DEX modifier), auto-attack, 29+ class skills and spells across 6 classes, status effects (stun, DoT, HoT, buffs, debuffs), and full XP/loot distribution on kill.

Data-driven quests support six objective types: Kill, Collect, Deliver, Visit, Talk, and Custom Lua. Quest progress is tracked automatically. Prerequisite chains, repeatable quests, and NPC dialog integration are all built-in.

Extend any aspect of gameplay with Lua scripts. Eight API modules give you access to items, rooms, characters, NPCs, dialogs, quests, game messaging, and utilities. Scripts run in a sandboxed VM pool with a 5-second timeout.

The framework’s systems are setting-neutral. The same combat engine that powers a fantasy dungeon can drive a sci-fi space station or a horror survival game. Build any world you can describe.

Veilspan is the official demo world — a fantasy adventure in the ruins of Aethermoor, built entirely on TalesMUD. It’s a real game, not a tech demo, and it runs the current development version of the framework.

Play it to see what’s possible before you start building.

LayerTechnology
BackendGo 1.24, Gin, Gorilla WebSocket
DatabaseSQLite (via modernc.org/sqlite)
ScriptingLua (via gopher-lua)
FrontendSvelte 4, Vite, xterm.js
Auth (optional)Auth0 JWT, JWKS validation
InfrastructureDocker, Docker Compose, GitHub Actions

TalesMUD didn’t appear fully-formed. It has a lineage.

2018 — LOTD (Lair of the Dragon) The first attempt. A MUD server with a genuinely interesting gimmick: TCP/telnet players and WebSocket players coexisting in the same game world, handled by separate network layers that both fed into a shared game instance. Too complex for a first version, but the WebSocket and game server architecture carried forward into TalesMUD.

2019–2020 — dungeonsrv A parallel experiment: generic REST services for browser RPGs, with server-side scripting at item instantiation time. It also produced a procedural dungeon generator — still a planned feature for TalesMUD’s content pipeline. The scripting concept survived and became TalesMUD’s Lua scripting layer.

2020 — Tales of a Pirate The first live MUD built on the rewritten codebase, running at talesofapirate.com. A sandbox for validating the stack and design decisions. JavaScript scripting (via otto) was planned here — later replaced with Lua, a much better fit for embedded game scripting.

2024–2025 — TalesMUD The framework as it exists today: full RPG systems, Lua scripting, content editor, Veilspan as the live demo, and open-source under MIT.

For the full story — why Go, why Svelte, BBS door games, MUD history, and all the wrong turns — read Notes on Building TalesMUD.

Quick Start

Build and run your first server in under 10 minutes. → Quick Start