Skip to content

maldorne/mud-web-client

Repository files navigation

mud-web-client

What is this?

Webapp to connect to a MUD / MUSH / MOO game server, supporting all major data interchange and interactive text protocols. The connection is done through a secure websocket (wss:// protocol), so you will need a proxy in the server that translates the wss sessions to telnet. You can use the mud-web-proxy project to achieve that.

You can see this project working in the maldorne.org web page.

History

This project is a fork of MUDPortal-Web-App, made by @plamzi, creator of mudportal.com. The original project had the code of both the client and proxy-server apps, and was outdated and did not support secure connections (wss:// instead of ws://), so I decided to fork it in 2020, separate in different projects and update them. But kudos to @plamzi, who is the original author.

In 2025, I've ported the project to use ES modules, and the build system is now based on Vite. The project is now using the latest version of the libraries, and the code is cleaner and easier to maintain.

Motivation

In modern browsers, web-pages served through https:// are not allowed to open connections to non-secure locations, so an https://-served web could not include a web client which opens a connection using ws://. Modifications were needed to allow secure connections.

Features

  • Window-based web UI with draggable and resizable windows, window toolbar.
  • MCCP compression support (zlib)
  • MXP protocol support built into the client
  • MSDP protocol support
  • GMCP / ATCP protocol support (JSON) with sample uses in multiple existing plugins
  • 256-color support, including background colors
  • Unicode font support and UTF-8 negotiation
  • Vector-based world mapper with flexible edit mode to allow for mapping any MUD world via exploration
  • Triggers / macros / command memory with typeahead

Configuration

git clone https://github.com/maldorne/mud-web-client npm install

In src/config.js you can change the following options, among others:

 debug: param('debug') || 0, host: param('host') || 'muds.maldorne.org', port: param('port') || '5010', name: param('name') || 'House of Maldorne', ... proxy: 'wss://play.maldorne.org:6200/', ...

These are the default values used when the client does not receive specific parameters. You have to specify:

  • host: Your hostname ()localhost or 127.0.0.1 don't seem to work: see conversation here).
  • port: The port where the mud is running. The mud, not the proxy.
  • proxy: The wss url where the proxy is running.

After changing these values, you can rebuild the project with npm run build and copy the files in the /dist directory to your web server, as it is explained below.

Usage

  • If you make changes (even only the config.js file), you can run npm run build to generate the new files in the /dist directory.
  • Copy all files inside the /dist directory to a web-accessible directory on your web server. Files must be served by a web server, it won't work if you just open the index.html file in your browser. Most code editors have plugins to run a local web server to test these kind of things.
  • Point a browser at the root of that directory to load the included index.html file.

Changelog

About

Web client for playing MUD / MUSH / MOO games.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 89.7%
  • CSS 7.6%
  • HTML 2.7%