/
umud/DOC/
umud/DOC/examples/
umud/DOC/internals/
umud/DOC/wizard/
umud/MISC/
umud/MISC/dbchk/
umud/RWHO/rwhod/

		   TinyMUD --> UnterMUD Dictionary
		   -------------------------------

  This is an introductory document for UnterMUD.  It isn't intended to
teach you all about UnterMUD, or to be an introduction if you haven't
ever played with a MUD before.  This is for people who have played on
TinyMUD and similar systems, and who want to start playing on UnterMUD
without having to learn everything from scratch.  If you really want
to learn all about UnterMUD, you need something else, but this should
at least get you started.

Section 1.  TinyMUD concepts and their UnterMUD equivalents.
------------------------------------------------------------

  Everything in TinyMUD is an object.  TinyMUD has four types of
objects: players, rooms, exits, and things.  Each of these objects has
a small set of attributes, though they aren't usually called that--a
description, a success message, and the like.  Just as important is
the object's number, which uniquely identifies it.

  UnterMUD also stores everything as objects.  Unlike TinyMUD, there
isn't really a fixed set of object types, but the most important types
correspond to the four TinyMUD objects.  Just as in TinyMUD, there are
players, rooms, exits, and things; these work almost exactly like they
do in TinyMUD.  Every object has a unique identifier, an "object ID";
however, an object ID in UnterMUD can be any string, not just a
number.  The most common object IDs you will see are numbers by
themselves (usually used for rooms and exits), and a number with a
world name (usually used for players and things).  For instance, a
player character might be #1774 on a TinyMUD, but 178@UnterStairCase
on an UnterMUD.

  There are only a few attributes of TinyMUD objects (description,
success message, failure message, etc.).  An UnterMUD object can have
many attributes, though there are a few special attributes which are
used like the TinyMUD ones.  You can put almost anything you want into
an UnterMUD attribute.

  There are two important concepts in UnterMUD which don't have direct
equivalents in TinyMUD.  The first is the ability to define macros (on
a per-object or system-wide basis); the second is the ability to use
several UnterMUDs as one (cyberportals are similar to this, but not
quite as powerful).  For documentation on these, see the files "Macros"
and "Intro".

  A major difference between TinyMUD and UnterMUD is the handling of
flags.  TinyMUD has a plethora of flags--LINK_OK, DARK, STICKY, etc.
UnterMUD currently has an equivalents for LINK_OK, DARK, ROOM, PLAYER,
and WIZARD.  These are 'linkok', 'isdark', 'isroom', 'isplayer', and
'wizard' flag.  See Section 4 for more information on flags.


Section 2.  Dictionary of commands.
-----------------------------------

  This section lists TinyMUD commands (mostly from 1.5.4, though
including a few 1.5.5 and MUCK commands) and their UnterMUD
equivalents (when they exist).  Wizard-only commands are listed
separately, in section 3.  These are in alphabetical order, though the
'@' commands are listed after all normal commands.

  In TinyMUD, commands which refer to objects (like 'take' or 'drop')
understand names which are longer than one word long.  This means that
'drop red chest' will make you drop the red chest.  In UnterMUD, you
would have to use the command 'drop "red chest"' to do the same thing;
if you typed 'drop red chest' it would try to do a 'drop red' and then
a 'drop chest'.  (Of course, UnterMUD allows object names to be
abbreviated, rather like TinyMUD does, so that 'drop chest' will work
even for an object named 'red chest' or the behaviour of the command
can be changed with a macro.)

  Here's a table of notation used in the dictionary:

    [XXX]	means that XXX can optionally be used with the command.

    <XXX>	describes the name of something.  Sometimes a '1' and '2'
		are used to distinguish them (e.g. <exit1> and <exit2>).

      <boolean>   means a boolean expression (see the entry for @lock).
      <exit>      means the name of an exit, for instance 'north.'
      <flag>	  means the name of a flag, for instance 'link_ok.'
      <number>    means some number, for instance '34.'
      <object>    means the name (or sometimes ID) of an object of any type.
      <player>    means the name of a player, for instance 'Fred.'
      <room>	  means the name of a room, for instance 'Blue Room.'
      <room-id>   means the ID of a room, for instance '1473.'
      <string>    means anything you type, for instance 'boxes of fish.'
      <thing>     means the name of a thing, for instance 'chest.'

    ...		means that whatever came before the '...' can be repeated.
		For instance, '<thing> ...' means that you can type in
		the names of more than one thing (separated by spaces).

    ---		means that there is no UnterMUD equivalent.


  TinyMUD command			UnterMUD command
  ---------------			----------------

  :					:

  "					"

  drop <object>				drop <object> ...

  examine [ <object> ]			examine [ <object> ... ]
					_dump [ <object> ... ]

  get <thing>				get <thing>
					You cannot pick up exits in UnterMUD.

  give <player> = <pennies>		---
					UnterMUD does not have pennies.

  go <exit>				go <exit>

  gripe <string>			---

  home					teleport me home
					A simple 'home' macro can be defined.

  inventory				inventory

  kill					---
					If you own the room, you may send
					players in it home by using the
					'teleport <player> home' command.

  look [ <object> ]			look [ <object> ... ]

  move <exit>				go <exit>

  news					NEWS [ <number> ]

  outputprefix <string>			---
					Replaced by _mark.

  outputsuffix <string>			---
					Replaced by _mark.

  page <player> = <string>		page <player> = <string>

  QUIT					QUIT

  read [ <object> ]			look [ <object> ... ]

  rob					---
					UnterMUD does not have pennies.

  say <string>				say <string>
					This is not exactly the same as
					TinyMUD's say--quotes are handled
					differently, for one thing.

  score					---
					UnterMUD does not have pennies.

  take <object>				take <object> ...
					You cannot pick up exits in UnterMUD.

  throw <object>			drop <object> ...

  whisper <player> = <string>		whisper <player> = <string>

  WHO [ <string> ]			WHO [ <string> ... ]
					You can specify more than one prefix
					to be matched using several words,
					unlike TinyMUD.

  @chown <object> = <player>		set <object> owners [ + | - ] <player>
					Note that an object can have multiple
					owners in UnterMUD.  Objects can also
					be owned by non-players.

  @create <thing>			create object [ <thing> = <string> ]
					build object [ <thing>  = <string> ]
					You must put the object's name in
					quotes if it is longer than one word.
					It is possible to create un-named
					objects by omitting the name.
					You can also give a description when
					you create the object.

  @describe <object> = <string>		set <object> desc = <string>
					unset <object> desc

  @dig <room>				build room [ <room> <exit1> <exit2> ]
					If <exit1> is supplied, an exit to
					the room is automatically created.
					If <exit2> is also supplied, an exit
					back is automatically created as well.
  					It is possible to create an un-named
  					room by omitting the name.

  @fail <object> = <string>		set <object> fail = <string>
					unset <object> fail

  @find	<string>			---

  @link <object> = <object>		build link <exit> = <room-id>
					build dropto <dest-room>
					set <object> home = <string>
					Players can only be homed to rooms.
					Objects can have players as their
					homes as well as rooms.

  @lock <object> = <boolean>		set <object> lock = <boolean>
					But be warned that locks are used
					somewhat differently in UnterMUD.
					In the boolean expression, "T" and
					"F" mean "true" and "false" 
					respectively. 

  @name <object> = <string>		set <object> name = <string>
					Players' names can only be changed by
					a wizard.

  @ofail <object> = <string>		set <object> ofail = <string>

  @open <exit> [ = <room-id> ]		build exit [ <exit> <room-id> ]
  					BEWARE of using semicolons
  					in exit names; you *must* put
					quotes around the name.
  					You can't create an unlinked exit.
					(You build the exit, then remove
					yourself from the owner list, so
					anyone can add themselves as an
					owner, and then relink the exit.)

  @osuccess <object> = <string>		set <object> osucc = <string>

  @password <oldstring> = <newstring>	password <oldstring> <newstring>

  @recycle				destroy object <object>
					destroy room <object>
					destroy player <object>
					destroy exit <object>
					Note that OID's are not recycled!

  @set <object> = <flag>		set <object> <flag>=
					unset <object> <flag>
					But see the section on flags, below.
					Most flags can only be set/unset by a
					wizard.

  @success <object> = <string>		set <object> succ = <string>

  @teleport <object> = <room-id>	teleport <object> <destination>
					You may only teleport things you
					own, are linkok, or are in a room
					you own. If you own them, you may
					teleport them to a room you own,
					a linkok room, or 'me' if the object
					is a thing. You may always teleport
					things 'home'. This does include
					teleporting players.
					Note that non-player objects obey 
					these rules too.

  @unlink <exit>			unset exit dst
					build link <exit> <here>
					Only a wizard can unset the destination.
					There is no way to unlink an exit;
					see @open.

  @unlock <object>			unset <object> lock


Section 3.  Wizard commands.
----------------------------

  These commands have fewer equivalents than the user commands,
because an UnterMUD is quite different internally from a TinyMUD.
Don't rely on this to be a wizard on an UnterMUD; it's here only for a
quick reference.

  @boot <player>			_force <player> QUIT
					A macro to do this is available.

  @count <player>			---

  @dump					_cacheconfig sync
					But this is not an exact equivalent,
					since it does not create a new copy
					of the database.

  @find <string>			---
					'which' will do something like this in
					 the current room

  @force <player> = <string>		_force <player> = <string>

  @newpassword <player> = <string>	_password <player> = <string>

  @owned <player>			---

  @pcreate <player> = <string>		build player <player> = <string>

  @shutdown				_mudconfig shutdown

  @toad	<player> = <player>		---
					No exact equivalent, though
  					'unset <player> pass' will
  					destroy the player's password and
  					prevent them from connecting.
					Simply do this, then force them
					to QUIT.
  					A macro to do this is available.

  @untoad <player>			---
					No exact equivalent, though
					'_password <player> pass' will
					readd a password field and allow
					them to log in.

  @wall	<string>			_wall <string>

Section 4.  Flags in UnterMUD.
------------------------------

  As mentioned above, there are only a few flags in UnterMUD.  They are 
'isdark', 'local', 'isroom', 'isplayer', and 'wizard.'  Each of these is
type "flag". 'linkok' is not a flag in Unter, it's a boolean.  The flags
'isroom' and 'isplayer' are set automatically when a room or a player is
built.  They can only be unset (or set) by a wizard.  They just serve to help
identify what the object is.

    Note that there are no flags for "isexit" or "isobject".  It is possible
to distinguish these from rooms and players because there are two different
types of object IDs in UnterMUD, unqualified object ids and fully qualified
object ids which include the mud's name along with the object number.  For
example, 123@UnterStairCase is a fully qualified name.  Since only objects
with a fully qualified object id are allowed to move to another UnterMUD,
players and things have this sort of object id, and rooms and exits do not. 
A thing, therefore, looks just like a player, except it does not have the
player flag (and it stays in the contents list of a room, not in the player
list).  Exits are identified similarly.

    The 'wizard' flag is settable only by a wizard, or by using the _wizard
command.  In order to use the _wizard command to set your wizard flag, you
must be in the list of wizards on the system object, and know the wizard
password.

    The 'isdark' flag works almost the same as in TinyMUD.  When a room is
set dark, a 'look' will show none of the room contents, even if you own
something in the room.  Players set dark are similar in behaviour to rooms,
essentially hiding their contents.  Only a wizard can set a player dark.  An
object set dark is not listed in the contents when you look at the room or
player containing it.  If you are the owner of a room or player, you may see
all the contents of it by doing an 'examine', a player can also always see
their own contents using "inventory".

    The 'local' flag is only meaningful for players and objects.  When set,
the player or object (or player holding the object) is not allowed to move
through a cyberportal to another Unter.  This is especially useful for
players without nice clients (like raw telnet), and for people who want to
make sure their objects don't get lost on another mud.

    Unlike in TinyMUD 'linkok' is actually a boolean, much like lock.  This
means that you can set your room linkok only for a certain player, or only
for people holding a certain item, and so forth.  In a boolean, the letters
"T" and "F" mean 'true' or 'false', respectively.  This allows you to set a
room linkok to everyone with just "set here linkok=T" and get TinyMUD style
behaviour.  Just think of 'linkok' as a fancy lock.