The MudOS mudlib comes with an editable soul which can be used to create new soul commands without having to alter the mudlib files. There are several commands you can use to determine what soul commands are available and what will happen if you use them. The first handy soul command is "semote". By itself, it shows all the soul commands in the current soul database. With an argument (eg "semote shrug") it shows you the current database entry for that command (More on entries below.) Soul entries come in two kinds, targeted and untargeted. Targeted commands are directed at another player: ie "worship truilkan" whereas untargeted commands are not directed at any player: ie "think". Most of the soul commands have both targeted forms and untargeted forms, such as the nod command. Some have only untargeted forms, such as think, and others have only targeted forms such as leer. The untargeted form of the soul commands is referred to by name, and the targeted form is referred to by appending /t to the end of the soul. Thus, you can see the untargeted form of the "shake" soul command by typing "semote shake" and the targeted form by typing "semote shake/t". This makes it possible to have the same soul command give different output depending on whether there is a target or not; in the case of the shake command, the untargeted output is "You shake your head" while the targeted output is "You shake hands with Mobydick". The "temote" command will show you what will be seen if you use the given soul command, both by you, by the target, and by other people in the room. For example, the command "temote shake emphatically" would produce the output: me: You shake your head emphatically. others: Mobydick shakes his head emphatically. This makes it easy to debug new soul entries without having to ask other people what they see when you use the command. The "edemote" command is used to create new entries in the soul command database. Typing "edemote thwack" will allow you to create a new soul command which players can use by typing "thwack". You can create targeted soul commands by typing "edemote thwack/t". For example, the entry for the kiss/t command is: .me $N $V $n $M .others $N tilts $P head as $S kisses $n $M .target $N $V you $M .modifier chastely .end where .me indicates the format that I will see, .others indicates the form that others will see, and .target indicates the form that the target of the command will see. .modifier gives a default modifier to use, which can be overridden by a user-supplied modifier. Thus, if the user types "kiss psyche" the result will be: You kiss Psyche chastely. but if the user types "kiss psyche passionately" the result will be You kiss Psyche passionately. If no .others or .target is specified, then .me will be used. There is a default .me, which is $N $V. Anything of the form $[A-Z,a-z] is a special modifier which inserts the appropriate names/pronouns/prepositions into the soul command. In the above example, $N is replaced by the user's name, $V is the verb (kiss), $n is the target's name, and $M is the optional modifier. There are the possible replacement parameters: $N = name of user $n = name of target $S = subjective of user $O = objective of user $P = possessive of user $s = '' '' target $o = '' '' target $p = '' '' target $M = modifier (only appears if user ends command with " .") $m = modifier (always appears unless user types own modifier or " .") $V = verb (defaults to command name. can be set with .verb) $G = possessive of user (either $N's or 'your' depending) $g = possessive of target ('' $n's '') $Q = preceding possessive (i.e. hers, his, its, hirs, yours) for user $q = '' for target For $S, $O, $P, $s, $o, $p: subjective = (he, she, it, sie), objective = (him, her, it, hir), possessive = (his, her, its, hir) The supported headers are listed in /include/emoted.h. The MudOS soul was written by Truilkan@Portals in November 1992. This help file was written by Mobydick@TMI-2 on 11-10-92 and is heavily based on Truilkan's documentation.