The MUD can be accessed through telnet, but PuTTY is heavily recommended for supporting UTF8. It runs on port 32123, but the IP varies as Kawa's computer moves around. Naturally it can only be accessed while Kawa's online, and even then...
First thing it'll do when you connect is ask if you want ANSI and such. If you type N followed by a return it will from then on filter out all ANSI escape codes and turn line drawing characters into plain dashes and such.
Second, it'll ask for a username and password. The name you enter is what you'll be called in the game world, so keep that simple. Perhaps a later version will decouple the login and display name. If you have ANSI enabled, your password will (hopefully) be hidden as you type it.
First time you get in, you'll be in the waiting room. When something fucks up, you'll be moved there.
|Take the exit in the specified direction, if available. If the exit is locked and you are carrying the key it will be unlocked for you.
Wizard commands are only available to a select few.
||Saves the world state. Some other commands do this, and it happens automatically. This just makes sure.
||Creates a new room, with plain exits connecting it to the current room in the specified direction.
||Displays some rough help. This page is much more informative.
look at [thing]
|Displays the thing's description (which is a Lua script).
||Examines the room you're in in more detail.
||Locks a named door.
||Drops a thing you're carrying and leaves it in the room.
||Tries to take a thing from the room.
||If the thing has the specified verb, will try to execute that verb's Lua script.
It is a tracking variable. Several things store the specified thing they act upon in it, for easy recall.
|whatis [thing that is not "it"]
||Displays what a thing is.
|select [me,here,a thing's name,a thing's id]
||Selects something and sets it.
Editing your stuff
|rename [it,id] [new name]
||Parenthesis optional. If it's yours, you get to rename it. Will become handy when a Perfectly Generic Object Dispenser is built.
|listtext [it,me,a thing's id]
||Lists all the text properties of the specified thing.
|gettext [it,me,a thing's id] [property name]
||Displays the value of a thing's specified text property.
|settext [it,me,a thing's id] [property name] [new value]
||Parenthesis around the new value optional. Creates or changes the specified text property.
Verbs are always Lua scripts. They are edited through the same commands as the text properties, but with listverbs, getverb and setverb.
When setting a text property or verb, you may want to type in several lines as one. This can be done by triggering multiline mode:
CMD >settext me poke "<[[
Multiline Mode engaged. Finish with "]]>".
At this point, you can paste in your data. The markers will be removed before saving.
Certain text properties are used to notify players. You can use certain $-variables in them, depending on which property it is.
||Sent to other players when you enter the room. Example: |
<b>$myname</b> saunters into the room.
||Sent to other players when you leave the room. Example: |
<b>$myname</b> makes his way towards <b>$targetroom</b>.
When a verb is executed, the variables source and me are set to the IDs of the player who triggered the verb and the thing being verbed.
|Send (recipientID, message)
||Sends a string to a given connected recipient. If the ID is preceded by a minus sign, sends it to everybody in the sender's room but the recipient.
||Sends a string to all players in the room that are not me and source.
||Returns a table with basic information about the specified player. So far, this includes name, id and gender (male presumed, is either "him" or "her")
|SetInt (playerID, propertyName, value)
||Sets an integer property on the specified player. If it doesn't exist, it's created on the spot.
|GetInt (playerID, propertyName[, valueIfNull])
||Returns an integer property on the specified player. If it doesn't exist, valueIfNull is returned.
|Place (victimID, targetID)
||Places a player or prop into the specified room or player's inventory. You cannot place a player in another player's inventory.
Send(source, "A tall furry with a red pimp hat. Nuff said.")
if source == me then
Send(me, "You poke yourself in the bellybutton.")
poker = GetPerson(source)
annoyanceAtPoker = GetInt(me, "annoyanceAt" .. poker.Name)
annoyanceAtPoker = annoyanceAtPoker + 1
SetInt(me, "annoyanceAt" .. poker.Name, annoyanceAtPoker)
if annoyanceAtPoker < 3 then
Send(source, "\\"I'd rather you didn't.\\"")
elseif annoyanceAtPoker < 5 then
Send(source, "Kawa glowers at you threateningly.")
SendToAllButUs("Kawa threateningly glowers at " .. poker.Name .. ".")
Send(source, "Kawa raises a fist at you. In a blinding flash, you find yourself back in the waiting room.")
SendToAllButUs("Kawa raises a fist at " .. poker.Name .. " and teleports " .. poker.HimHer .. " to the waiting room.")
SetInt(me, poker.Name .. "_annoyance", 5)
CMD >poke kawa
"I'd rather you didn't."
CMD >poke kawa
Kawa glowers at you threateningly.
CMD >poke kawa
Kawa raises a fist at you. In a blinding flash, you find yourself back in the waiting room.
Wise fwom youw Gwave
This project is technically dead, but was updated some time ago to use Jint instead of Lua. Still, the scripts on this page have not been updated to reflect this change. Kawa is planning to maybe revive the project in a complete rewrite.