An organized collection of MOO programming manuals, tutorials, historical source documents, reusable code, and modern developer tooling.
This repository has two jobs: make MOO easier to learn today and preserve useful material that might otherwise disappear from the web. Some documents describe older LambdaMOO environments and are intentionally retained as historical references. Each section below distinguishes current resources from archival material.
| I want to… | Recommended starting point |
|---|---|
| Learn MOO programming | Yib's Pet Rock, then Winding Duck |
| Look up MOO syntax or built-in functions | Updated LambdaMOO Programmer's Manual |
| Work with a current ToastStunt server | ToastStunt Programmer's Manual |
| Install or share MOO code | MOO Package Manager |
| Build editor, parser, database, or analysis tooling | Modern MOO Tooling |
| Talk with ToastStunt users and developers | Join the ToastStunt Discord |
| Find a broader collection of MOO software and documents | lisdude.com MOO Resources |
| Browse preserved documentation | Tutorial and Reference Library |
The repository's maintainer has also worked on the projects below, alongside other contributors. Together they cover the practical lifecycle around a modern MOO: connecting and editing, distributing in-database code, teaching and parsing MOO code, extracting checkpoint data, and analyzing a codebase.
| Project | What it is | Status |
|---|---|---|
| Dome Client | Browser-based MUD/MOO client with a built-in IDE for editing verbs and properties. It is the maintained successor to the legacy Dome Client. | Current |
| MOO Package Manager | Configurable package manager written in MOO code for downloading, reviewing, installing, creating, and publishing packages on ToastStunt-derived MOOs. | Open beta; test packages on a development server first |
| MOO for LLMs | Reference corpus, examples, datasets, schemas, and evaluations for teaching language models to read, write, and repair MOO code. | Current |
| Tree-sitter MOO | Tree-sitter grammar for MOO verb code, targeting ToastStunt as the initial superset dialect while keeping LambdaMOO compatibility in view. | Current |
| ToastStunt DB Extractor | Node.js/TypeScript tool that converts ToastStunt Format 17 checkpoint databases into normalized JSONL records and verb source files. | Current |
| MOO Code Graph | ToastStunt-specific static analysis and visualization pipeline that combines extracted database data with Tree-sitter syntax facts to produce code reports. | Current; run from source |
flowchart LR
Client[Dome Client] -->|play and edit| Server[ToastStunt / MOO server]
Packages[MOO Package Manager] -->|install packages| Server
Server -->|checkpoint| DB[(MOO database)]
DB --> Extractor[ToastStunt DB Extractor]
Corpus[MOO for LLMs] -->|fixtures and examples| Parser[Tree-sitter MOO]
Extractor --> Graph[MOO Code Graph]
Parser --> Graph
Graph --> Reports[Analysis and reports]
The tools remain independent projects. Follow each project's README for requirements, installation, security considerations, and current limitations.
Join the ToastStunt Discord to talk with other users and developers about ToastStunt, MOO programming, and related tools.
lisdude.com MOO Resources is a broad collection of MOO servers, databases, clients, programming documents, patches, and other historical and current material. It is an excellent companion to the curated material in this repository.
| Resource | Relationship to this collection |
|---|---|
| ToastStunt | Actively developed server in the LambdaMOO family and the target of many current tools listed above |
| Stunt | LambdaMOO fork and direct predecessor to ToastStunt |
| LambdaMOO | LambdaMOO server source and related historical material |
| moolite | Scripts for creating a local Stunt and LambdaCore development environment |
Markdown editions are intended for reading on GitHub. Files under
tutorials/src/ preserve the source HTML or text used to produce
those editions.
| Resource | Best for | Formats | Status |
|---|---|---|---|
| Updated LambdaMOO Programmer's Manual | Language syntax, values, statements, tasks, built-in functions, and server behavior | Markdown | Maintained here; based on the LambdaMOO 1.8 manual |
| ToastStunt Programmer's Manual | Current ToastStunt language and server extensions | External Markdown | Current; maintained in its own repository |
| Steven Owens' LambdaMOO Programming Tutorial | A broad explanation of MOO concepts, its programming environment, and larger examples | Markdown · HTML | Historical tutorial, with later contributor updates |
| Resource | What it teaches | Formats |
|---|---|---|
| Yib's Pet Rock | A gentle first programming project that grows from a simple object into more sophisticated behavior | Markdown · HTML |
| Colin's Way Easy Guide | Objects, properties, verbs, permissions, and practical verb programming | Markdown excerpt · Complete HTML |
| Winding Duck | Step-by-step construction of an object with progressively richer code | Markdown · HTML |
| MOO Programming Tips | Short explanations and examples originally written for SpinnMOO | Markdown · HTML |
These documents are preserved because they explain important concepts and older workflows. Commands, dependencies, hostnames, and version-specific advice may require adaptation on current systems.
| Resource | Topic | Formats |
|---|---|---|
| What Happens When a Connection Is Made | LambdaMOO server connection flow | Markdown · HTML |
| LambdaMOO Background | Servers, databases, classes, objects, functions, verbs, and variables | Markdown · HTML |
| LambdaMOO Programming (Nodak) | A compact technical introduction to programming in MOO | Markdown excerpt · Complete HTML |
| Running LambdaMOO on GenesisMud | A historical end-to-end server setup walkthrough | Markdown · Original text |
| Getting Started with moo.el | Connecting to and editing MOO code from Emacs | Markdown · Original text |
The Learn MOO Programming playlist covers compiling LambdaMOO, applying patches, programming basics, debugging, properties, and custom verbs.
| Resource | Purpose | Notes |
|---|---|---|
| Local Editing | Adds MOO-side support for editing verbs through compatible clients such as Dome Client | Modern ToastCore/LambdaCore databases may already provide local editing |
| Code Scanner | Scans verb code for common mistakes and maintainability concerns | Prefer installing the current package through MOO Package Manager on ToastStunt |
| $scheduler | Schedules tasks to run later | Plain-text MOO code |
The patches/ directory preserves LambdaMOO server patches that may be
difficult to find elsewhere.
- FileIO 1.5p3 — Todd Sundsted's FileIO variant with
E_FILEsupport and related fixes.
These patches target older server versions. Review and test them against the exact source tree you intend to modify.
code/ Reusable MOO code and installation notes
patches/ Preserved server patches
toast-stunt-programmers-guide/ Compatibility pointer to the moved manual
tutorials/ Readable Markdown editions
tutorials/src/ Preserved source HTML and text
Clone the archive if you want to browse the HTML editions locally:
git clone https://github.com/sevenecks/lambda-moo-programming.git
cd lambda-moo-programmingThen open the desired file under tutorials/src/ in a browser.
Corrections, recovered documents, code examples, patches, and better source attribution are welcome through pull requests.
When changing historical material:
- preserve the original author and source attribution;
- keep source snapshots under
tutorials/src/intact; - make readability and link repairs in the corresponding Markdown edition;
- label version-specific or uncertain advice instead of silently presenting it as current; and
- test code and server patches outside production before recommending them.
Some Markdown files were produced from source HTML with
to-markdown-cli:
npm install --global to-markdown-cli
html2md -i tutorials/src/example.html -o tutorials/example.mdSee Contributors, Maintenance Notes, the Roadmap, and the Changelog for more project history.
This collection is maintained by Brendan Butts, also known in the MOO community as Slither or Fengshui. Brendan has developed on Sindome since 2006 and created this repository to make MOO knowledge easier to find, use, and preserve.
The archived tutorials have their own authors and source notices. Those attributions remain part of each document. New repository material is available under the MIT License; third-party material retains its original attribution and any applicable terms.