open source

A MUD engine
you don't have to fork.

Gameplay ships as packages. Install what you need, write your world on top, share what you build.

Author in
YAML content JS scripting GMCP native A11y baked in
@tapestry/core @tapestry/combat-core @tapestry/weather @tapestry/quests
Three commands

From empty folder to a running MUD.

No engine fork. No bespoke build. The CLI scaffolds, resolves, and runs, like you'd expect from any modern package manager, with telnet and web clients attached out of the box.

  • 01 Scaffold a world. A manifest, a starting room, and a registered scope. That's the whole skeleton.
  • 02 Pull the gameplay you want. Combat, weather, quests, economies: installed like any dependency, versioned and locked.
  • 03 Boot the server. Telnet and web client come online together. GMCP wired. Players can connect immediately.
Build · Compose · Play

A loom for text worlds.

Three roles, one engine. Authors weave packages, world-builders compose them, players experience them. On any client.

{ }

Build

Author packs in YAML and JavaScript. Scaffold with tapestry create pack, describe content declaratively, drop in scripts where you need behaviour. Publish to the registry when ready.

$ tapestry create pack Read guide →

Compose

Install systems like a package manager. Weather, combat, quests, economies: mix and match versioned modules. The dependency graph is yours. Swap implementations without touching the engine.

$ tapestry install … Browse registry →

Play

Accessible by default. Telnet for purists, a draggable web client for everyone, rich GMCP for screen readers and third-party UIs. Every pack works on every client, no forks, no client-specific markup.

$ tapestry start See the client →
How it composes

Layers, not forks.

The engine ships entity + event + command primitives. Everything else (combat, magic, weather, economies) is a pack. Packs declare what they need, the resolver sorts dependencies, the engine boots them in order.

World-builders write the top layer: rooms, mobs, quests, story. The packs below do the heavy lifting. When you want different behaviour, you swap a pack, not a codebase.

C# engine Jint JS runtime YAML manifests GMCP AGPL-3.0
World
@you/midnight-bazaar
Modules
@tapestry/quests @tapestry/weather @tapestry/economy
Systems
@tapestry/combat-core @tapestry/dialog @tapestry/movement
Engine
@tapestry/core entity · event · cmd
Start weaving

Your first world is one command away.

Install the CLI, scaffold a project, and you're online before your coffee cools. Docs walk you from init to your first published pack.

$npm install -g @tapestry-mud/cli
Requires Node.js · engine runs on .NET 10 or Docker