commit 545df77b62b7b02112353160df21e9e68a664701 Author: rbiv Date: Thu Sep 4 00:57:28 2025 +0000 Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..e3e3896 --- /dev/null +++ b/README.md @@ -0,0 +1,61 @@ +# Town MOO + +COME JOIN! + + rlwrap -pYellow -S '> ' nc localhost 7777 + +Quickstart: + +- `"` to speak, `:` to act. +- `look` to look at things +- `@describe me as "a funny little fellow"` +- `@gender MYGENDER` +- `@create $thing named "bowl of spaghetti"` +- Check `news` and `help` for LOADS MORE. + +(Note: You'll need to be registered as a programmer in order to create things. I'd like for this to be automatic, but I don't know how to do that, so unfortunately it's manual.) + +## What is this? + +It's a MOO, which is a kind of text-based virtual reality. Part chatroom, part programming, part creative writing. You can create, describe and program your own objects and rooms. + +Specifically, this is ToastStunt, which is a fork of the venerable LambdaMOO. It runs a ToastCore database. + +## What is the future of MOO on tilde.town? + +Who knows? + +- This is an experiment/proof of concept. +- I make no promises about the durability of the database. **If you make something and want to keep it, `@dump` it!** +- I had to patch the code to get it running, so it might be crashy. + +See <./compiling.md> for tilde.town-specific building steps. + +See <./db_setup.md> for basic database setup. + +## I want to learn more! + +MOOs and MUDs were very popular in the early days of the internet, and thus have a rich history. Many are still alive today. + +Recommended resources: + +- [Yib's Guide to MOOing](http://www.yibco.com/) (2003). + - Excellent resource for beginners, originally written about LambdaMOO (of which ToastStunt is a derivative). Most of the commands discussed still work in ToastStunt. +- [The New Wizards FAQ](https://jkira.github.io/moo-cows/docs/faqs/new-archwiz-faq.html) (Date unknown, but old). + - More technical in nature. Focused on people running their own MOO. +- [ToastStunt Programmer's Manual](https://github.com/lisdude/toaststunt-documentation/blob/master/manual/toaststunt-programmers-manual.md) (2023). + - Very technical. Useful only if you want to know how things work under the hood. +- [A Rape in Cyberspace](http://www.juliandibbell.com/articles/a-rape-in-cyberspace/) (1998). + - Chapter one of a book called "My Tiny Life," which is contentious in some circles, but I enjoyed it for its view into MOOing in its heyday. Interesting to see how the early internet responded to trolling. + +See also: + +- [timbran/moor](https://codeberg.org/timbran/moor). + - Needs a little more time in the oven, imo, but this is the most promising modern MOO engine I've seen. + +Further information: + +- +- +- [YouTube: SevenEcks](https://www.youtube.com/@SevenEcks/videos). About the only MOO resource on YT. +- [Reddit: MUD](https://old.reddit.com/r/MUD/). diff --git a/compiling.md b/compiling.md new file mode 100644 index 0000000..5c843ed --- /dev/null +++ b/compiling.md @@ -0,0 +1,11 @@ +# Compiling ToastStunt on tilde.town + +This was done quite haphazardly, please excuse my vague documentation. + +The process mostly followed the build instructions in the toaststunt readme. Tilde-specific tweaks below: + +- Had to patch the code due to trixie not shipping pcre3 - See git diff +- Requires `gperf` binary to calculate hashes. + - To avoid having to install stuff on tilde.town, I took this out of the trixie docker container and scp'd it up, lol + - After running `cmake ../`, it failed to find `gperf`. I am too st00pid to fix it properly so I just edited the generated `CMakeCache.txt` to have `gperf_EXECUTABLE:FILEPATH=/home/rbiv/toast/gperf` +- Toastcore grabbed from https://github.com/lisdude/toastcore/blob/master/toastcore.db at 8742cab8fa73af78250d83c9265262a6be0e8584 diff --git a/db_setup.md b/db_setup.md new file mode 100644 index 0000000..ff7d5a1 --- /dev/null +++ b/db_setup.md @@ -0,0 +1,29 @@ +# Database setup + +## Initial commands + +``` +@password "INSERTFREAKYPASSWORDHERE" +@set $login.welcome_message to {"Welcome to tilde.town toaststunt.", "To connect, use one of:", " create YOURUSERNAME YOURPASSWORD", " connect YOURUSERNAME YOURPASSWORD", " connect guest", "Remember not to reuse passwords from other things!","IRC channel: #moo"} + +# Make objects 127-130 +@make-guest Red +@make-guest Blue +@make-guest Green +@make-guest Yellow +# At least one guest needs an alias "Guest" +@addalias "Guest" to #127 +``` + +## Other notes + +- I have not set `$network.active = 1`, since we don't want to actually send mail. +- $login.create_enabled is left as true +- No other wizards are created + +New users: + +``` +@make-player USERNAME +@programmer USERNAME +``` diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..45e3c62 --- /dev/null +++ b/run.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +MOO_EXECUTABLE="/home/rbiv/toast/toaststunt/build/moo" + +IN_DB="${1?Supply an input database}" +OUT_DB="$SCRIPT_DIR/out-$(date +%FT%H-%M-%S).db" + +"$MOO_EXECUTABLE" "$IN_DB" "$OUT_DB" -4 localhost -6 localhost