npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mudlet-map-editor

v0.17.0

Published

Mudlet Map Editor

Readme

Mudlet Map Editor

A browser-based visual editor for Mudlet .dat binary map files. Load, edit, and save MUD maps directly in your browser — no installation required.

Features

  • Visual editing — add, move, and delete rooms on an interactive canvas
  • Exit management — create bidirectional or one-way exits between rooms in 14+ directions
  • Labels — place text labels with custom fonts, colors, and optional images
  • Custom lines — draw waypoint-based paths with configurable colors and arrowheads
  • Area & environment management — organize rooms into areas, customize terrain colors
  • Swatches / Paint tool — define symbol+environment presets and paint them onto rooms in one click
  • Undo/redo — full command history with descriptive labels
  • Binary I/O — load and save Mudlet .dat files directly in the browser; also load from URL
  • Session persistence — work is auto-saved to IndexedDB and restored on next visit

Tools

| Key | Tool | Description | |-----|------|-------------| | 1 | Select | Click rooms to view/edit properties; nudge with arrow keys | | 2 | Connect | Click source then target to create an exit | | 3 | Unlink | Click an exit stub to remove that exit | | 4 | Add Room | Click an empty grid cell to create a room | | 5 | Add Label | Place a text label on the map | | 6 | Delete | Remove rooms, exits, or labels | | 7 | Pan | Drag to move the viewport | | 8 | Paint | Apply the active swatch (symbol + environment) to rooms |

The Custom Line tool is activated from the side panel (on a selected exit), not the toolbar. Hold Space to temporarily pan from any tool.

Keyboard Shortcuts

| Shortcut | Action | |----------|--------| | Ctrl+Z | Undo | | Ctrl+Y | Redo | | G | Toggle grid snap | | F | Fit area in view | | Delete | Remove selection | | Ctrl+A | Select all rooms in current area/z-level | | Esc | Cancel current operation |

Getting Started

npm install
npm run dev

Then open the app, click Load in the toolbar to open a .dat file, or click New to start from scratch. Use Download to save your changes.

Commands

npm run dev       # Vite dev server with HMR
npm run build     # Type-check and bundle for production
npm run preview   # Preview the production build

Extending with plugins

Drop a file at src/plugins/<name>/index.ts with a default export implementing EditorPlugin and it is picked up automatically at build time. Plugins can add sidebar tabs, room panel sections, swatch presets, map check warnings, and lifecycle hooks (map open/close/save, app ready, custom overlay UI).

See docs/plugins.md for the full interface reference and examples.

Tech Stack

Architecture

Binary .dat file
  → mudlet-map-binary-reader  →  MudletMap (in-memory model)
  → EditorMapReader (adapter, Y-flip)
  → MapRenderer (Konva canvas) + LiveEffect overlays

All map mutations go through a command system (applyCommand) that records operations for undo/redo. State is managed in a single centralized store.

Bulk operations (multi-room delete, move rooms to area, undo/redo of the above) go through optimized paths in EditorMapReader that perform a single rebuildPlanes/rebuildExits per affected area rather than one per room, keeping large selections responsive.