untermud/DOC/
untermud/DOC/U/
untermud/DOC/U/U-examples/
untermud/DOC/internals/
untermud/DOC/wizard/
untermud/MISC/
untermud/MISC/dbchk/
untermud/RWHO/
untermud/RWHO/rwhod/
	In UnterMUD, there are certain attributes that are known by the
"set" command, and that are used by other commands. You can get a list of
what attributes are known in an UnterMUD by typing "set help". That will
show you the longname, shortname, type, and a description. The longname is
a full word that can be used, and the shortname is what the mud actually
stores the attribute as. The "set" command recognizes most abbreviations, 
like both "descripti" and "descrip" for "description", and shortens them all
to "desc". Below is a standard list of attributes and a short explanation
of each of them.
	First though, you need to understand the data types. In an UnterMUD,
there are seven types: str (string), int (integer), cmd (command), lst (list),
boo (boolean), obj (object), and flg (flag). A string and an integer are
exactly what they sound like. A command is a macro, and a list is a set of
object ids separated by semicolons. A boolean is a set of object ids, along
with the operators & (and), | (or), ! (not), and 'with'. Parentheses can also
be used for grouping things in a boolean. A boolean can also be "T" or "F",
meaning 'true' or 'false', respectively. A boolean can be as simple as 
"29@MyMUD", or as complex as "!(24@MyMUD|453@HisMUD)|with (1@MyMUD&45@FooMUD)".
An object type is always one object id. A flag is either set or not.
	When setting any of the strings, remember to be careful about spaces.
If your string has spaces in it, either quote the string with double or
single quotes, or use an equals sign. Be aware, though, that everything after
the equals sign is percieved by the mud to be a single string. For example,
"set here desc 'This is a room'" is the same as set here desc=This is a room",
which is the same as 'set here desc "This is a room"', but is NOT the same
as 'set here desc="This is a room"'.  (In the last case, the desc would
be '"This is a room"', with extra quote marks.)

description 	str desc; This is the description on an object, seen with
		"look object", and set with "set object desc string".
text		str txt; This is the text inscription on an object, seen with
		"read object", and set with "set object text string".
failure		str fail; This is the failure message, seen when an exit or a
		thing is locked, and set with "set object fail string". This
		attribute is a multi-type, but currently only the str and
		cmd types do anything. A type cmd is set by doing 
		"set object cmd fail macro".
ofailure	str ofail; This is the other failure message, seen by other
		players when an exit or a thing is locked, and set with
		"set object ofail string". This attribute is a multi-type,
		but currently only the str and cmd types do anything. A type
		cmd is set by doing "set object cmd ofail macro".
success		str succ; This is the success message, seen when an exit is
		gone through or a thing is picked up, and set with
		"set object succ string". This attribute is a multi-type, but
		currently only the str and cmd types do anything. A type cmd
		is set by doing "set object cmd succ macro".
osuccess	str osucc; This is the other success message, seen by other
		players when an exit is gone through or a thing is picked up,
		and set with "set object osucc string". This attribute is a
		multi-type, but currently only the str and cmd types do 
		anything. A type cmd is set by "set object cmd osucc macro".
drop		str drop; This is the drop message, seen when an exit is
		gone through or a thing is dropped up, and set with
		"set object drop string". This attribute is a multi-type, but
		currently only the str and cmd types do anything. A type cmd
		is set by doing "set object cmd drop macro".
odrop		str odrop; This is the other drop message, seen by other
		players when an exit is gone through or a thing is dropped,
		and set with "set object odrop string". This attribute is a
		multi-type, but currently only the str and cmd types do 
		anything. A type cmd is set by "set object cmd odrop macro".
subjective	str subv; This is the subjective pronoun. It's substituted
		in strings, usually in osuccess, ofail, and odrop messages.
		A subjective pronoun is usually either he, she, or it. It
		is set with "set object subv string".
objective	str objv; This is the objective pronoun. It's substituted
		in strings, usually in osuccess, ofail, and odrop messages.
		An objective pronoun is usually either him, her, or it. It
		is set with "set object objv string".
possessive	str posv; This is the possessive pronoun. It's substituted
		in strings, usually in osuccess, ofail, and odrop messages.
		A possessive pronoun is usually either his, her, or its. It
		is set with "set object posv string".
The subjective, objective, and possessive pronouns can be set at once by using
the system macros, either with "male me" (or female or neuter), or with
"pronouns me he him his" (or she her her or it it its). These pronouns (and
indeed *any* attribute) are called by inserting $subv, $objv, or $posv into
whichever message you want pronoun substitutions in. You can also substitute
in the player's name, with $nam. (If you wanted to, you could even substitute
in the player's description, by using $desc.)
name		str nam; This is the object's name. It can be set with
		"set object name newname", but only wizards can change
		a player's name.
password	str pass; This is the player's encrypted password. It should
		never be fiddled with using set, not even by wizards. To set
		your password, use "password old new", or as a wizard,
		"_newpassword object new".
owners		lst own; This is the object's owner list. An object can have
		more than one owner, or no owner at all. An owner is added
		with "set object own +objid", or is removed with
		"set object own -objid", where 'objid' is the object id of
		the would-be owner. Players only have one owner, themselves.
players		lst ply; This is the list of players in a room. As such, only
		a wizard can mess with this list.
contents	lst con; This is the contents list of either a room or a
		player. As such, only a wizard can mess with this list.
exits		lst xit; This is the list of exits in a room. Only a wizard
		can mess with this list.
wizardlist	lst _wizards; This is a list on the system object identifying
		the valid wizards. Only the players in the list can use the
		_wizard command to turn their wizard bit on and off. This
		list is changeable only by wizards.
location	obj loc; This is the location of an object. Only a wizard
		can directly change this.
destination	obj dst; This is the destination of an exit. Only a wizard
		can directly change this. To relink an exit, use 
		"build link exitname newdest". There is no way to make an
		unlinked exit; just link the exit anywhere, and then remove
		yourself from the owners list, making it an unowned exit. Then
		anyone can add themselves as an owner and relink it anywhere.
dropto		obj drpto; This is the destination of a dropto. Things dropped
		in a room with a dropto get sent automatically to the 
		destination room. You set a dropto with "set here dropto dest",
		where 'here' can also be a room number, and 'dest' must be a
		number of a room you own or can link to.
using		obj use; This is the object id of the thing a player is using.
		It can only be directly changed by a wizard. 
home		obj home; This is an object's home location. It is set with
		"set object home place". Players can only be homed to rooms,
		although things may be homed to either rooms or players.
lock		boo lok; This is the lock on an object. It's checked on
		an exit when a player tries to go through the exit, or on
		a thing when a player tries to get it. Locks have no meaning
		on players or rooms yet. It is set with "set object lock expr",
		where "expr" is a boolean expression. To just make an object
		locked to everyone, do "set object lock F".
linkok		boo lnk; This is the link permissions on an object. This is
		a boolean, just like a lock, so an object can be link ok
		to only certain people, for instance. This attribute governs
		whether or not players are allowed to link exits to rooms,
		set homes to rooms, or use some of the teleport rules.
		It is set with "set object linkok expr". To just make an
		object linkok to everyone, do "set object linkok T".
isdark		flg dark; This is the flag to tell if an object is dark.
		Players can only set rooms dark; you must be a wizard to
		set a player or a thing dark. Dark exits have no meaning.
		When a room is dark, none of its contents or players in it
		show up in a 'look'. To set this flag, do "set object dark".
local		flg lcl; This flag, when set on a player, makes that player
		unable to go through cyberportals. If a player is carrying
		an object with this flag set, the player will not be allowed
		to go through the cyberportal. This is useful for players
		without nice clients, and also for people who don't want
		their objects wandering off of the local database.
wizard		flg _wz; This is the flag for wizards. It is only settable
		by another wizard. To turn your own wizard flag on, use
		the _wizard command.
isplayer	flg _pl; This is the flag for players. It is only settable
		by wizards, and is automatically set with the "build player"
		command.
isroom		flg _rm; This is the flag for rooms. It is only settable by
		wizards, and is automatically set with the "build room" 
		command.
newsarticle	int newsarticle; This is the number of the last read news
		article. When you read news with the "NEWS" command, this
		number is automatically updated.

There are only four types of objects: rooms, players, things, and exits.
Room, players, things, and exits all have descriptions. Things and exits
only have success, osuccess, fail, ofail, drop and odrop messages.
Things and rooms may have text messages, although a 'look here' will show
you both the room's description and it's txt attribute. You must both
'look thing' and 'read thing' to see both the description and the text of
the thing.