It turns out to be incredibly simple to get a MOO to serve up html documents. Here's some code that will allow each player to have a home page on themself. The steps are: 1. Create a "get" verb on $login that does what you want. 2. Put a "<" in the front of your normal "$login.welcome_message". This causes the WWW client to ignore the rest of it. This means that you can't use ">" inside your welcome message anywhere. That's it! In the case of Valhalla MOO, I created a "default_page" property on $login, which is returned when someone uses the URL: http://valhalla.acusd.edu:4444/ My 'get' verb checks the player to see if they have a "home_page" verb, and, if not to see if they have a "home_page" property. Here is the property and the verb that I added. ;#12.("default_page") = {"Garm's Cave", "

Welcome to Valhalla!

", "Someday, you'll be able to log in to Valhalla directly with your Netscape client.

", "Players on Valhalla can have their own home page. If you want to see a player's home page, use the url:", "

", "To get here normally, you need to telnet to valhalla.acusd.edu on port 4444.", "
Jerry Stratton
", "[j--r--y] at [acusd.edu]
"} @verb #12:"get" any none any rxd #78 @program #12:get if (caller != #0) return E_PERM; endif TheCleaner = ">"; if (args[1] == "/") TheHead = "Garm's Cave"; TheBody = this.default_page; else TheHead = "Valhalla MOO Personal Home Page"; ThePlayer = args[1][2..length(args[1])]; if (valid(Destination = $string_utils:match_player(ThePlayer))) if ($object_utils:has_callable_verb(Destination, "home_page") && (verb_code(Destination, "home_page") != {})) TheBody = Destination:home_page(); elseif ($object_utils:has_property(Destination, "home_page")) TheBody = Destination.home_page; else TheBody = (("" + ThePlayer) + " does not have a home page."); endif else TheBody = (("There is no player " + ThePlayer) + " on Valhalla MOO."); endif endif notify(player, TheCleaner); notify(player, TheHead); if (typeof(TheBody) == LIST) for TheLine in (TheBody) notify(player, TheLine); endfor else notify(player, TheBody); endif notify(player, "

"); boot_player(player); . "***finished***