MegaMOO 0.10.0-beta4
Pre-release
Pre-release
Take this one. b3 was correct for a single player; with two people in a room it was not.
pip install --upgrade megamoo
megamoo init mygame
cd mygame && megamoo --devFixed
- Every character introduced itself as "ICharacter." Emit substitution prefers
cnameand chargen only ever setname, so every third-person message named the prototype. The actor never sees those messages, which is why it survived so long. - Ordinary exits announced departures as
%%S %%OMODE out.— a default message left in the retired%sigil, doubled by the display escape. - Rooms counted each player once per move, forever.
plistcompared objects against a list of object numbers, so arrivals always appended and departures never removed. It was wrong in four separate places; rooms already carrying the damage now repair themselves. @move ... with <message>never delivered its message — it was readingiobjfor text the parser had already put indobj2.@telpassed no subject to any of its three emits, so&Snever substituted — which is why the stock wizard's message hardcoded a name. It also told you about your own departure.- A client that typed before the prompt lost its first line. The opening negotiation window read input and discarded it. Invisible to a person, reliably fatal to a script.
- Containers weigh what they hold (the check was per-item), and a sheath now refuses a cannonball — the opening was computed from the two largest dimensions instead of the two smallest.
@adverb ... with rx auth=3created a verb namedrx auth=3.=is matched anywhere in a string and wins over a later word preposition; the verb readsargstrnow, and the rule is documented in the guide.find_verbscanned local verbs linearly before consulting its own index: 8,819 ns on#3 Base_Character, where every staff command lives. Now a flat 148 ns.
Also
TLS on a second port, MCCP2 compression, MSSP for listing sites, megamoo.toml actually read, and fifteen config settings deleted that were declared, documented, sometimes validated, and read by no code at all.
Community
Questions and help: GitHub Discussions. Answers stay public and searchable.
Verified from this wheel rather than the source tree: installed into a clean virtualenv, megamoo init, then the browser client over HTTP and the game over telnet with two connections — splash, login, walking, chargen, entering the game, a room emit naming the actor to the other player, and @checkpoint writing a real timestamp. 355 tests.