Initial commit

This commit is contained in:
rbiv 2025-09-04 00:57:28 +00:00
commit 545df77b62
4 changed files with 111 additions and 0 deletions

61
README.md Normal file
View File

@ -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:
- <https://lisdude.com/moo/>
- <https://jkira.github.io/moo-cows/>
- [YouTube: SevenEcks](https://www.youtube.com/@SevenEcks/videos). About the only MOO resource on YT.
- [Reddit: MUD](https://old.reddit.com/r/MUD/).

11
compiling.md Normal file
View File

@ -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

29
db_setup.md Normal file
View File

@ -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
```

10
run.sh Executable file
View File

@ -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