A list of MUSH terms and concepts with definitions.
Slanted towards TinyMUSH as that is what I'm familiar with.
object: The basic building block on a MUSH. Objects come in four types: ROOMS, which are containers for other objects. EXITS, which link rooms together. PLAYERS, which are the objects connected players exist as on the MUSH. THINGS, everything which is not a room, exit or player. The process to create an object varies according to what type of object you want to create.
dbref: A reference number for an object in the MUSH database. All objects have their own dbref, which is unique within the MUSH to that object. Eg. #1234 is a dbref.
attribute: A piece of information stored on an object. Some attributes, such as the object's name, are built in. Each attribute has a name and some data stored under that name. Eg. an attriibute with the name 'desc' stores some text which is displayed when someone looks at an object. Users can create their own attributes.
flag: A tag which is set on an object to indicate something about that object, give that object rights or alter what other objects can do to or see on an object. For example, the ANSI flag can be set on a player object and allows the person connected to that player object to see ANSI color in the MUSH environment.
locks: A control mechanism. Locks essentially limit permission for an object to do something or for others to do something to an object. For example, if you lock an object with a key of youself, you are the only one who can pick up that object. If an exit is locked to objects with a particular flag, only objects with that flag can go through the exit.
inheritance: If an object is parented to another object, it will inherit some properties from the object it is parented to. There can be a chain of parents, where an object is parented to another object which is in turn parented to another object again.
commands: Something a player types into the MUSH window to do or see something on the MUSH. Some commands are built in and others are softcode commands. Examples of commands: 'look', 'page', 'say'. Commands can be passive (just giving you information) or active (changing something in the database or communicating with another player). Special commands allow you to send a list of commands to the MUSH in one go, such as @dolist, @switch and @program and these commands are used to run softcode.
functions: Functions are how you get the MUSH to manipulate a piece of information for you. They can do something very simple, such as adding two numbers and returning the result, or something quite complex, like updating attributes on an object according to a series of rules. Functions look something like this: [add()]. This is the add function and it accepts numbers as an input to returns the sum of those numbers as an output. Eg. [add(1,2,3)] will return '6'. Functions are used to create softcode.
softcode: Code that is created on a MUSH and stored in the attributes of objects in the game's database. It can be updated as the MUSH is running. Softcode vastly extends the MUSH environment. A common softcode command is '+where'.
hardcode: Code that is built into the MUSH server and is an integral part of it. This code is identical across all instances of a particular version of a server, although it can be restricted and redirected in a limited fashion for customization. Hardcode cannot be updated without stopping the MUSH server and updating the files which run it.
It was suggested and here is a starting point. Edit and add to, please!