The TMI mudlib uses a bin command system. This means that instead of doing an add_action() on the user for each command, only one is used and cmd_hook() in user.c calls a seperate object. Each command is defined in a seperate file and kept in a subdirectory of this diretory (/cmds/). /cmds/std/ The only commands a player may use when alive. /cmds/ghost/ The only commands a player may use when dead. /cmds/attic/ Used for old, broken, backup and obscelete versions of commands. /cmds/adm/ Commands only needed by wizards helping administrate the mud. /cmds/xtra/ Commands only needed by wizards working on the core mudlib. /cmds/channels/ Commands used for mass communication not already in an above directory. (IE if a command can communicate with several users not in the same room, and it isn't already in std, ghost, attic, adm or xtra then it is here.) /cmds/file/ Commands that can change files, not already in an above directory. Commands to do with seeing files (eg cd, ls, pwd, more) /cmds/object/ Commands not in an above directory that can change objects besides user objects. eg create an object, destroy it, move it, change its variables. Commands to do with objects in general (eg sc, fref, in) /cmds/wiz/ Basic Wizard Commands, not already in another directory. Note, the commands a wizard starts off with are determined by a define in the file /include/config.h; a wizard can gain use of other directories containing commands by use of the "path" command. If you don't want wizards to start off all the commands, remove those directories from the define and make sure the path command is in one of the directories they don't have. The adding of the directory /cmds/ghost/ is done by the death sequence and wizards should not normally have it in their path.