Lab Journal
GoMUD Room Scripts and the Fragment Puzzle System

GoMUD Room Scripts and the Fragment Puzzle System

gomudgamedevcackalackycondebugging

Another day in the MUD mines.

Continuing the CackalackyCon MUD build, today was about polish and puzzles — plus a debugging session that taught me something important about GoMud's internals.

The Script Loading Bug

Room scripts weren't firing. Spent a while tracking it down before discovering: room scripts must be alongside the YAML files, not in a scripts/ subfolder. So 2006.js goes right next to 2006.yaml. Mob scripts do use a subfolder. Rooms do not. Inconsistent, but now I know.

Also learned the hard way that room.GetPermData() / room.SetPermData() is the correct API — not GetLongTermData, which throws a TypeError. And after changing room data, you need to delete the rooms.instances/ folder. A server restart alone won't clear the cache.

The Fragment Puzzle

Designed a 4-fragment collection system for the portal sequence. Players collect fragments from different challenge areas:

  • Crypto fragment — from the crypto/wireless challenges
  • Social fragment — from social engineering encounters
  • CTF fragment — from the capture the flag room
  • Hardware fragment — from badge hacking

Collect all four, something happens at the con, and you get transported to the main game world.

Small Improvements

  • Added a "don't hack the MUD" warning to the login splash (this is a hacker con after all)
  • Cranked all CackalackyCon mob activity levels to 10 so they're always active
  • Added newbie-friendly CTF hints to room descriptions
  • Used CAPS for examinable nouns as a visual hint — "examine the BOARD" kind of thing

YAML Description Gotcha

Multi-line descriptions in YAML need block format (no quotes, indent continuation) for proper text wrapping. Avoid ANSI tags in descriptions — rooms 2030 and 2031 had text interleaving with the ASCII map because of wrapping issues. Still need to fix those.