ifMUD has a lot of features and options and so on that have accrued over the years. If you've been a diligent reader of the #mud-updates bb from the beginning you probably know most of them, but if you're the average person I expect there are features out there that would make your life better in some tiny way if you just knew about them. Hence this FAQ. (If 'ifMUD', '#mud-updates', 'bb' and so on are not familiar concepts to you, you probably want the main FAQ instead. Or a puppy. Everyone wants a puppy.)
Flags are the thing you see in the first line when
inky #103P Owner: inky Home: #467 wizard spy male expert builder
You set flags with @set me = male and clear them with @set me =
!male. Very little configuration these days is done with flags. The
main place you're likely to use them is in building/JotaCode-related
activities (once you've set up your character originally and set your
gender and so on, anyway).
Note that occasionally this document will refer to "the -on flag to @statchannel" -- that's not this kind of flag, it just means you'd type @statc -on.
Fields are the main thing you see when
address: firstname.lastname@example.org [this is a permanent forwarder]
You set a field with @field me = away : gone with the wind and clear
it with @field me = away or @field me = away :. Fields can
hold any string, so they often get used when you need to specify
something that's not just an on/off switch (say, a number).
atelin: You transport yourself elsewhere with a wave of the wand.
autocmd: who | @newchannels
away: most likely eating lunch, or cookies. or both.
Options are the main configuration method on the mud these days. You can see a list of available options by typing @options; this also shows you which ones you have set (they're marked with a * next to them). You can set an option with @oset optionname (you can abbreviate the name as long as it's unambiguous with other option names), and clear it with @oclear optionname. @options gives a short blurb about each option; in addition, you can do help optionname to see more (help topics can, incidentally, also be abbreviated).
The Birthday Calendar and banner in the lounge were recently unified data-wise, so adding yourself to the banner will make you show up in both places. You can read a month of the calendar with read june, and can use the banner with write 1975-01-25 on banner and find birthday of inky. The calendar also contains a few events and non-players; to add/modify those, talk to a wizard.
The Even Newer World Map in the lounge holds people's locations and time zones. You can examine it to get a list of everyone, sorted by timezone, and in addition can do findloc inky, searchloc seattle, setloc seattle, wa = pst, delloc, and list timezones.
The Automeeter in the lounge tracks who's met who. You can use it with ivemet inky, notmet inky, whomet inky, and nummet inky.
The library (type library) holds a bunch of these items. Check out the shelves! DavidW maintains the library, so talk to him about issues or reshelving.
With channel aliases (help channel-aliases). When you do @addalias foo = testing, you can henceforth use 'foo' in any place you previously used 'testing' (in talking, @statc, etc).
With channel synonyms (help @synonymchannel). When you do @synonymchannel foo = testing, anyone can henceforth use 'foo' in any place they could use 'testing' (in talking, @statc, etc). You must be a pope on the channel to use this feature (and please use it in moderation, since the more channel names, the more ambiguous channel names become).
One way is to give the category ("if/comps/comp02/te") or a category fragment ("comp02/te"); another is to use smartresolve. By setting the smartresolve option, the mud will interpret abbreviated names you type in the context of channels you've recently used yourself or seen traffic on. In some cases, having smartresolve set will lead to more ambiguity than normal -- for instances, if you've been talking on #cookies and suddenly want to start talking on #C. In this case, you can do #"C to disable smartresolve for that one reference. After doing that once, #C will then be in your recent-use list, and smartresolve will correctly prefer it over #cookies. This only occurs because #C is an exact match for what you typed -- if you instead wanted to switch to #corn and typed #cor, this would be an unambiguous reference, so the quotation mark would not be needed.
The unpluralize option will automatically strip an s from the end of the thing you typed and try it again, if the version you typed didn't resolve to a channel.
As most people probably know, the ; command will talk on the last channel you talked on. This is convenient if the name is long, or ambiguous, or you're lazy. Typing ; by itself will display its current setting. In addition to talking, certain other channel commands will set lastchannel. You can control their behavior with the joinnolast, postsetlast, and recapsetlast options (each of which have help topics, although their names are fairly obvious). You can talk on a channel without switching the value of lastchannel by doing %foo I'm talking on foo without changing lastchannel! This is useful for making a side-comment on another channel without interrupting your main conversation. Finally, the chanchange option will turn on notification of lastchannel changes. This is primarily useful if you then set up a trigger in your mud client to do something with the information.
The . o O ( ) command is @think (on-channel only -- off-channel it's think). To emit on-channel, use @emit, which also works off-channel (spoof only works off-channel).
Because : is the emote command. To get a proper smiley, you need to use the backslash syntax: :\:).
There are two ways. The easiest is @leavec #channel = quiet. Alternately, use @tempch.
The @tempchannel command will join a channel temporarily -- when you log off the mud, it'll automatically (and quietly) leave any channel you used @tempchannel to join. You can also use this to toggle the temporary-join status of a channel you're on -- if you use it a second time on a channel you joined temporarily, you'll then not leave when you log out, and if you use it on a channel you'd joined with @joinchannel, you will leave it when you log out.
The adhoc flag (see help channel-flags) will mark a channel as temporary: after it hasn't been used for a day, it'll be auto-deleted. The @adhocchannel command is a convenient shortcut for making a temporary channel: @adhoc foo = inky Jota will create a temporary channel, flag it as private and adhoc, and add inky and Jota to it.
There are a couple kinds of arguments for @listchannels. There are arguments saying what you want to list, arguments saying the order you want to list them in, and arguments saying the format you want for the listings. To specify what to list, you can provide a category (which lists things in that category), a channel name prefix (which lists all channels with that prefix), -like text (which lists all channels which contain that text), -all (which lists all channels), and -member/-nomember/-flag [!]channel flag (which lists channels with the given flag [un]settings). To specify order, you can use -byname, -bycreated and -bylast -- if you use a + instead of the - it reverses the sort order. Finally, to specify format you can use -tail amount, or 10 (which limits to the last amount results), -count (which just shows the number of channels that would have been listed), and -name/-topic/-created/-last (which set what information is displayed about the channel -- -name gives a non-truncated form of the name). The -recent option is a shortcut for -all +bylast -tail; like -tail, it can take a numeric argument to specify how many to display.
If you set the listflag field on yourself to something, that'll be used as the default arguments to @listc -- for instance, @field me = listflag : -recent 15.
The -on flag to @statc will make the command not show not-logged-in users. The -member/-cardinal/-pope flag will make it only display members of at least that level. These flags can be used together.
@recapchannel is a fairly complicated command with a lot of tweakable behavior. The basics let it take the arguments -user player to return lines from that player, or -match text to return lines with that text (if Alex isn't on a channel, try @recap #channel -match http to find urls). The recaptime option will turn on timestamps for recap, and the recapconv option will make recaps go back to "the start of the conversation", defined as a time-gap between people speaking. The gagrecap option will turn on using your gags on channel recap.
If you're a pope, you can clear recap on a channel with @recap #channel = clear, and control recapability with the norecap, memberrecap, and joinrecap flags (see help channel-flags).
The @mutechannels command (and its alias @unmutechannels) control this. @mutech on its own lists what you have muted, and @mutech #channel toggles its mute status (if you'd like @mutech to never unmute, use the explicitmute option). By default, if you mute a channel, then nobody talks on it for a while, then somebody talks on it, it'll automatically unmute. You can set the nomutetimeout option to make it never unmute automatically, or explicitly say @mutech #channel = fixed (if you've set the option, you can explicitly say @mutech #channel = unfixed to get the automatic behavior). The default value of "for a while" to timeout is 15 minutes; you can set the mutetime field to something else to give a different value (in minutes). The gagautomute option will automatically mute a channel if someone you have gagged starts a conversation on it ("starts a conversation", again, is defined as talking after no one's talked for a while).
If you do @mutech *, it mutes all channels. You can then do @mutech #channel and it'll unmute only that channel. Doing @mutech * (or @unmutech *) again will clear the mute list and go back to normal channel status.
Yep. While this doesn't have a lot of effect for the average user, it does mean that they generally support all the same commands (search, delete, unread, etc -- there's no equivalent of bb modify for mail, though), and ranges are valid for both.
bb modify #channel = 32 : new body (see help bb_modify for more).
mail unread (or bb unread #channel) will unread the last message; mail unread = 17 or mail unread = last 5 will unread a range. Note that there's only one unread flag per group, so unreading a message will also unread all messagers newer than it.
All sorts! Although they're generally only useful with bb list, note that you can use these ranges with read, delete, and so on as well. Interesting ranges are 3 (message number 3), 3-5 (messages 3-5), first 3/last 3 (the first or last 3 messages), new (unread messages), all (every message), match foo (messages matching the text foo), days 3/hours 3 (messages posted in the last 3 days/hours), from inky (messages posted by inky). See help bb_range for more.
bb ignore #channel (see help bb_ignore).
bb search #channel = text or bb search = text to search all channels (please don't abuse this feature -- it can be slow for the whole mud). See help bb_search for more.
When you delete a message on a bb, it's flagged as deleted, but doesn't actually go away for good. You can list deleted messages on a channel with bb undel #channel, and undelete a specific one with bb undel #channel = 3. You can only undelete messages you can delete -- your own, or any if you're channel pope. Each bb has a queue of deleted messages which is limited to some number (currently 5); when more messages are deleted than that, the oldest message is permanently purged. See help bb_delete and help bb_undelete for more.
Unlike the bb setup, when you delete a mail message, it's left in the normal list but marked as deleted. When you log out or run mail purge, delete-flagged messages are really deleted. The noautopurge option will disable automatic purging on logout.
Yep, use the checkmail option.
Set a value for the bbnotify field (see help bbnotify).
The @ignore command works just like @gag, but goes away when you log out (or until you do @unignore person). Note that @ignore can be used in place of @gag in all uses in this section, including gagging people on specific channels. Also note the interaction of @ignore and @gag.
If you have someone both gagged and ignored, they're effectively ungagged (but since the ignore goes away when you log out, they go back to being gagged then).
Use @gag #channel to disable gags on #channel.
Use @gag person = #channel to gag person only on #channel.
Use @objgag object.
Because you don't have the gagprivate option set. Note that if you do have it set, people attempting to whisper to/page you will get a message that you have them gagged.
Look at the gagautomute option.
Because you don't have the gagrecap option set.
Quite a bit: see the muteconn, mutedisc, muteunzone, mutezone, nohomemsg, and nosignmsg options. If you want something more, you might want to look into doing it in your mud client.
Use the @mutechannel command.
Use the autocmd and unidlecmd fields, which contain a pipe-separated list of mud commands to run. I, for instance, did @field me = autocmd : who | @newchannels.
The nodeidlecheck option disables the automatic check for new bb and mail messages. The checkmail option, if set, causes you to check for/read mail whenever you check for/read bb messages.
Set the autopoll option.
Set the fullsignmsg option.
Use the nozone and nounzone options.
There are plenty of help topics -- help tutorial, help t-programs, and help functions are good places to start.
Absolutely! Look at help verbs and help verblist, then do something like @field sandwich = eat : Numf scrumpf.
Certainly! Look at help events.
Indeed! Look at help containers, but the basics are put object = container and takefrom object = container.
Yes, do @from person, or @from 127.0.0.1 to see anyone connected from that address.
It doesn't work perfectly, but try @field me = charset : iso-8859-1 (or whatever character set is appropriate -- help charset) has a list. Zarf created a charset sampler object in the lounge which you can examine to see how well it's working.
Set the urlfix option. This will also add "http://" before urls that just begin with "www.".
The reserved names command lists currently-reserved names, and wizards can do add reserved name Bob to add a name to the reserved list. Names on this list can't be used by new players or the @name command. If you'd like a name added to the list, ask a wizard.
They don't behave weird, they behave intelligently. Mostly. There's a list of punctuation characters (', :, etc) which are normally printed with no space before them when emoting, so that you can do :'s feet are webbed and have it look correct. If you don't want this behavior, put a backslash before the punctuation -- :\'s feet are webbed will be displayed as "inky 's feet are webbed" with the extra space. As a bonus answer, the way to do a smiley on-channel is therefore :\:).
See help quote. In particular, note quote inky = funny quote by inky, quote list, quote inky, and quote new. The last-mentioned command will show a chunk of new quotes, and you can type it again to see more; to disable this behavior see the quoteunpaged option.
Yes, @paste. To paste to a channel, type @paste #channel :| (or, as a shortcut for that, #channel @paste), hit return, then paste the text into your mud window, and each line will be sent with the prefix "#channel :|" before it. Initial whitespace will be trimmed from the lines you paste, unless you have the pastenotrim option set. In addition, for your pasting pleasure, "|" at the start of a line is short for ":|".
Yes! It's linked right here (or follow the web client link from the main page).
There are two parts to the mud distribution; the source code and the distribution data files. If you want to actually get the mud running, get the second one and look at the included README. If you have any issues getting either to work, talk to inky.