Skip to content

A mud client that can be used to play multi-user dungeons, with a focus on Dark and Shattered Lands

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE-COMMERCIAL
Notifications You must be signed in to change notification settings

TournyMasterBot/Shattered-Archive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Shattered Archive

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.

Play Online

A build of this client is available at https://game-client.shatteredarchive.dev/


Overview

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:

  1. A MUD client that allows users to connect to MUDs
  2. Tooling to customize gameplay via triggers, aliases, timers, scripting, and custom styles
  3. A plugin system for importing, exporting, and sharing extensions
  4. Connection profiles supporting master account and character management
  5. Extensive in-game research and data tools
  6. 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.


Repository Scope

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.


Repository Structure

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.


Installation

This project is cross-platform and supports Windows, macOS, and Linux.

Prerequisites

  • Node.js (LTS recommended)
  • pnpm (package manager)

Installing pnpm

Windows (PowerShell):

corepack enable
corepack prepare pnpm@latest --activate

macOS / Linux:

corepack enable
corepack prepare pnpm@latest --activate

For more options, see: https://pnpm.io/installation

Install Dependencies

pnpm install

Build the Project

pnpm build

Running the Project

pnpm dev

This command starts all clients and servers defined under the /apps directory, allowing local development of the full ecosystem in parallel.


Start the service

Game Client

http://localhost:30080/

Web Client

http://localhost:40080/

Docker (Production-Like Local Environment)

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.

What Docker Provides

  • 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 .dev domains via Docker DNS

  • HTTPS via local development certificates

  • Realistic networking and proxy behavior

When to Use Docker

Scenario Recommendation
Feature development pnpm dev
Integration testing Docker
Production‑like testing Docker
Lower memory usage Docker

Certificates

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.

Quick Start (Docker)

One‑time setup (hosts file + certs)

Must be run as administrator, may be applied manually

pnpm setup:hosts
pnpm setup:certs

Start the stack:

docker compose -f deploy/docker-compose.yml up --build

Access points:

Deployment Architecture (Summary)

  • 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

Documentation

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/

Licensing

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) license
  • LICENSING.md – Plain-language explanation and examples
  • LICENSE-COMMERCIAL – Commercial licensing terms

For commercial licensing inquiries, contact: legal@shatteredarchive.com


Contributing

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


Funding

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.


Community & Support

Community support is provided on a best-effort basis.


Project Policies

Additional project policies and information:

Project Status

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.

About

A mud client that can be used to play multi-user dungeons, with a focus on Dark and Shattered Lands

Topics

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE-COMMERCIAL

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 2

  •  
  •