From The Fairy Garden MUSH
Jump to navigation Jump to search

Version 1.8.3 patchlevel 11 -- Jan 01, 2010

Major changes:

  • The WHO, DOING and SESSION commands are now normal game commands, and can be @hook'd, typed in lower-case, etc. (The WHO at the login screen is separate.) If you have a softcoded 'who' command, you will need to @hook/override WHO for it to continue working.
  • The "take" command has been moved from the hardcode into alias.cnf. If you want to keep it as an alias for "get", you should add the line "command_alias get take" into your alias.cnf.


  • The *_file options (connect_file, motd_file, etc) can now be a #dbref/attribute instead of a filename, in which case the given attribute is evaluated and the result shown in place of the text file.


  • @decompile now takes multiple attribute patterns after the / (@dec obj/attr attr2)
  • @channel/decompile now shows the dbref of the channel mogrifier, instead of its name.
  • @pemit now takes a /port switch, which sends the message to the specified port.
  • @hook/list without a <command> now shows all commands which have hooks.
  • @search now takes multiple <class>=<restriction> pairs.
  • The IDLE command now takes an optional argument, which it prints back to the descriptor which sent the command.
  • IDLE no longer increases the cmds() for a descriptor.


  • die() now takes up to 700 dice.
  • remove() will now remove a list of words.
  • table() now supports <, > and - as alignment parameters to field width.
  • testlock(<boolexp>, <victim>) tests a lock without setting it.
  • lnum() now takes a fourth argument: A step.
  • cwho() now takes an optional second argument, to control whether online, offline or all players are returned.
  • room(<room>) now returns <room>, instead of #-1. Also, room(<exit>) returns the exit's source room, rather than the destination.
  • Fixed a bug in how align() strips spaces when wrapping text.
  • pemit(<port number>, <message>) sends <message> to the specified port, like @pemit/port.
  • lports() and lwho() take an optional second argument to include connections at the login screen.
  • namelist() now takes an optional #dbref/attr, called for each invalid name in the first argument.
  • lmath() can now do lt, lte, gt, gte, eq and neq. Also, lt(), lte(), etc, can all take more than 2 arguments.
  • Anyone can now use ctime() on any object.
  • locks() reported built-in locks as being user: locks.


  • Help fixes by various folks.
  • lsearch() with invalid syntax was failing to report it as such, causing confusion when lsearch(me,exits) returned the same as lsearch(me).
  • fun_merge() was eating characters when ansi was present.
  • Windows compile fixes.
  • Math-y crashbug fixed.
  • page/port didn't evaluate its arguments properly.
  • randword() with a single element list wasn't dealing correctly with extra spaces.
  • @listen/^-listens should now be triggered with the object being spoofed as %#, not the object doing the spoofing, when @message/spoof (and @pemit/spoof, etc) are used.
  • Fixed some minor type-related warnings when compiling on cygwin.
  • @functions which were set "localize" would report being set "Userfn" as well, and functions set "Userfn" weren't reported as such.
  • Objects could be set with flags which weren't valid for their object type, if such flags were in the <type>_flags config option.
  • Crashbug in the command parser fixed.
  • Added some missing punctuation in channel messages.

Minor changes:

  • @listen/^-listens now carry over ANSI. Requested by Mercutio.
  • @adisconnect now has %5, which is true if the disconnecting descriptor was @hide.
  • @pemit <name>= would show nospoof info if <name> was set Nospoof. Now, it does nothing at all.
  • The connect screen can now contain ANSI color.
  • Small bug fix in @search.
  • Built-in functions can be set FN_LOCALIZE to preserve %q-regs.
  • Refactoring of ufun(), ulocal(), u[l]default() and ulambda().
  • The "Not enough money to queue command" message tells you which object was attempting to queue the command.


  • New script in utils/ for searching change logs: grep-cl.pl