Shattered Archive is an independent fan site and tooling ecosystem for the MUD Dark and Shattered Lands.
This project provides source available tooling for players, fans, and developers who want to explore, extend, and customize their MUD experience. It is intended as a foundation others can build upon, experiment with, and integrate into their own workflows and services.
ShatteredArchive is not affiliated with or endorsed by Dark and Shattered Lands, DikuMUD, or their original authors.
A build of this client is available at https://game-client.shatteredarchive.dev/
The ShatteredArchive Software aims to provide a modern, extensible toolset for interacting with MUDs, with a particular focus on Dark and Shattered Lands. The project includes:
- A MUD client that allows users to connect to MUDs
- Tooling to customize gameplay via triggers, aliases, timers, scripting, and custom styles
- A plugin system for importing, exporting, and sharing extensions
- Connection profiles supporting master account and character management
- Extensive in-game research and data tools
- Comprehensive help documentation covering usage and customization
All data used or generated by the tools is derived from user interaction with the game and is intended for research, reference, and convenience.
This repository is a monolithic (monorepo) codebase that contains client, server, and shared packages used across the ShatteredArchive ecosystem.
The project uses pnpm to deduplicate dependencies and enable parallel execution of multiple applications and services during development.
apps/ – End-user applications (game client, game server,
web client, web server)
sdks/ – SDKs for integration and extension
services/ – Backend and service-layer components
types/ – Shared type definitions and contracts
utils/ – Shared utility libraries
docs/ – Project and contributor documentation
scripts/ – Build and development scripts
Additional configuration, tooling, and workspace files live at the repository root.
This project is cross-platform and supports Windows, macOS, and Linux.
- Node.js (LTS recommended)
- pnpm (package manager)
Windows (PowerShell):
corepack enable
corepack prepare pnpm@latest --activatemacOS / Linux:
corepack enable
corepack prepare pnpm@latest --activateFor more options, see: https://pnpm.io/installation
pnpm installpnpm buildpnpm devThis command starts all clients and servers defined under the
/apps directory, allowing local development of the full ecosystem
in parallel.
ShatteredArchive provides an optional Docker-based, production-like local environment for running the full ecosystem with realistic networking, DNS, and service boundaries.
This setup is intended for:
- validating service-to-service communication
- testing deployment-style configurations
- reducing local memory usage compared to
pnpm dev - running the system closer to how it operates in production
It is not required for day-to-day development, but is recommended for integration testing and environment validation.
-
Separate containers for each app:
game-client(static Vite build)web-client(static Vite build)game-server(Node / Express)web-server(Node / Express)nginx(single HTTPS entrypoint)
-
Local
.devdomains via Docker DNS -
HTTPS via local development certificates
-
Realistic networking and proxy behavior
| Scenario | Recommendation |
|---|---|
| Feature development | pnpm dev |
| Integration testing | Docker |
| Production‑like testing | Docker |
| Lower memory usage | Docker |
Local HTTPS certificates (mkcert)
For local Docker runs, ShatteredArchive uses mkcert to generate trusted HTTPS certificates for .dev domains (for example game-client.shatteredarchive.dev).
mkcert creates a local certificate authority (CA) and installs it into your operating system’s trust store. Certificates generated with mkcert are therefore treated as valid by your browser, avoiding HTTPS warnings while still allowing secure cookies, WebSockets, and same-origin behavior to work correctly.
This setup is:
Local-only (never used in production)
Fully trusted by your browser once installed
Hands-off after initial setup
Certificates are generated once via pnpm setup:certs and mounted into the Docker nginx container for TLS termination.
For details, see docs/deploy.md → Certificates & HTTPS.
One‑time setup (hosts file + certs)
Must be run as administrator, may be applied manually
pnpm setup:hosts
pnpm setup:certsStart the stack:
docker compose -f deploy/docker-compose.yml up --buildAccess points:
- nginx is the only public entrypoint (ports 80/443)
- All traffic routes through nginx by hostname
- Clients are served as static sites
- APIs and WebSockets are proxied to backend servers
- Certificates are mounted read‑only into nginx
➡ Full technical details: docs/deploy.md
Additional documentation can be found in the docs/ directory and on
the ShatteredArchive website:
- Project site: https://shatteredarchive.com/
- Game Client docs:
docs/game-client.md - Game Server docs:
docs/game-server.md - Web Client docs:
docs/web-client.md - Web Server docs:
docs/web-server.md - GitHub & workflow docs:
docs/github/
The ShatteredArchive Software is Source Available, not Open Source.
You may view, modify, and use the software freely for personal, educational, internal, and community purposes. Commercial monetization of the ShatteredArchive Software itself, modified versions, or plugins built specifically for it requires a commercial license.
Please review the following files carefully:
LICENSE– Source Available (non-commercial) licenseLICENSING.md– Plain-language explanation and examplesLICENSE-COMMERCIAL– Commercial licensing terms
For commercial licensing inquiries, contact: legal@shatteredarchive.com
Contributions are welcome.
If you would like to contribute code, documentation, or corrections, please see CONTRIBUTING.md.
If you have information, references, or research related to Dark and Shattered Lands that you believe may be useful, you may also contact:
contributing@shatteredarchive.com
ShatteredArchive is independently developed and maintained.
If you would like to support ongoing development, you may do so via GitHub Sponsors. Funding is entirely optional and does not grant commercial usage rights or influence project direction.
- Bug reports and feature requests: GitHub Issues
- Community resources and documentation: https://shatteredarchive.com/
Community support is provided on a best-effort basis.
Additional project policies and information:
- Privacy: see PRIVACY.md
- Support expectations: see SUPPORT.md
- Disclaimer and fan project notice: see DISCLAIMER.md
- Security reporting: see SECURITY.md
Status: Alpha
This project is actively developed and represents the ongoing effort to formalize and productionize code currently running at:
APIs, features, and internal structures may change as development continues.