This is a listing of all the mobprog commands that Age of Chaos supports. They are unique abilities that each mob has the capacity to do, and are used to do special things with your mob or in your zone.
mpadd
Usage: mpadd [command]
This command is used a great deal in mobprogs. While it does nothing on its own, what it does do is put whatever command follows it into a queue for the mob to follow. This makes mobprogs a little more stable, and ensures that each command is done correctly. Therefore, you will want to mpadd or mppush every command you put through in a mobprog, the exception being death_progs and certain hitprcnt_progs. You should also never mpadd the mpsetvar command.
EXAMPLES:
mpadd kill $n
mpadd cast ‘balefire’ $n
mpadd sob
mpadd mpjunk brick
SPECIAL NOTES: You should pretty much always use mpadd if you want a command to go through fast, and never use mpadd in death_progs. Sometimes
you shouldn’t use it in hitprcnt_progs, but only if you have only a few things that the mob is trying to do. Also, mpadd or mppush should be the first command in a line, so it would be “mpadd mpat $n mpecho A bird sings here” and not “mpat $n mpadd mpecho A bird sings here”
mpasound
Usage: mpasound [text string]
This command will echo the text string to all of the rooms adjacent to the one the mob is in, much like the death echo when a mob dies. This can be useful for creating dramatic deaths from mobs, or for use with mobs such as a wandering minstrel or the like.
EXAMPLES:
mpasound You hear a scream from nearby!
mpasound A delightful music fills the air from somewhere near here.
mpasound The drunken hollering of $I can be heard nearby.
mpasound The earth thunders as $I’s corpse falls to the ground nearby.
SPECIAL NOTES: Keep in mind that mpasound does not echo to those in the room with the mob, only to rooms adjacent to it. So if you want people in the room to hear the mpasound too, you’ll need to use an mpecho as well.
mpat
Usage: mpat [destination] [command]
Performs the desired command at a designated location. The destination can be either a room vnum, a character variable such as $n, or a specific keyword of a mob. The command can be just about anything you want it to be. This command is very useful for doing slight of hand kind of tricks with mobs by performing actions away from the player, or doing things elsewhere in the zone for you. It has many potential uses.
EXAMPLES:
mpat 10056 unlock door
mpat xxxguardonexxx poke xxxguardonexxx
mpat $n mpechoat $n You feel weakened from your escape.
mpat 1252 drop all
SPECIAL NOTES: When using mpat, it is not a bad idea to give your mobs specific, unique keywords so they can be manipulated with no error. The command is usually essential for zones that have complicated quests, and can be used to trigger other mobs, unlock and open doors and chests away from the mob, and a variety of other things.
mpecho
Usage: mpecho [text string]
Quite simply, the mpecho command sends a message to the room of the mob. This message can be anything you like, although it does not support ANSI colors. It does, however, support all of the character variables the mud uses, and can also use variables set by the mpsetvar command. This has a wide range of use, from setting background noise to a mob, to allowing the mob to express itself safely as if speaking. The mpecho command does not set off speech_progs, although it does set off act_progs.
EXAMPLES:
mpecho $I says, ‘Hey how’s it going?’
mpecho A blast of strong wind rushes into the room suddenly!
mpecho $I hisses, ‘So, $[adventurer], you’ve come to face me…’
mpecho A dagger flashes into $I’s hand, and $j snickers softly.
SPECIAL NOTES: Using mpecho $I says, ‘blah’ is a safe way to have a mob talk. Anytime you want to have a mob say something, you should use this, unless you want it to trigger speech_progs. Also, remember that whatever is mpechoed is seen be everyone in the room exactly the same. So if you want a message that targets a specific person, see the mpechoat and mpechoaround commands.
mpechoaround
Usage: mpechoaround [target] [text string]
This command is similar to the mpecho command, but instead of echoing to everyone in the room, can be used to echo to everyone BUT the targeted person. Why would you do this? If used in conjunction with the mpechoat command, you can create text strings which look right to everyone involved. The way to make mpechoaround do this is to use the mpat command. If you don’t use the mpat command first, this command will function exactly like mpecho. Compare the below examples to the examples shown in mpechoat.
EXAMPLES:
mpechoaround $n You hear voices speaking all around you.
mpat $n mpechoaround $n $N cringes as a poisoned dart strikes $s chest!
mpat $n mpechoaround $n A pile of rocks rains down upon $n!
mpat $n mpechoaround $n A circle of light surrounds $n, and then $e vanishes.
SPECIAL NOTES: Just remember that to use this command correctly it must be used in conjunction with the mpat command.
mpechoat
Usage: mpechoat [target] [text string]
This command functions similar to the mpecho command, but can be used in such a way that only the targeted person sees the text string. This is useful for cutting down on spam from greet_prog mpechos, for example, as well as personalizing the text string for all parties involved in conjunction with the mpechoaround command. In order to get mpechoat to work in this way, you must first use the mpat command. Compare the examples below to the examples shown in the mpechoaround command description.
EXAMPLES:
mpechoat $n You hear voices speaking
all around you.
mpat $n mpechoat $n You cringe as a poisoned dart strikes you in the chest!
mpat $n mpechoat $n A pile of rocks rains down upon you!
mpat $n mpechoat $n A circle of light surrounds you, and you are transported.
SPECIAL NOTES: Just remember that to use this command correctly it must be used in conjunction with the mpat command.
mpexp
Usage: mpexp [target] [exp amount]
This command gives an amount of experience to the target, and gives the same amount of experience to each member of the target’s group who is in the room with the target. This amount is capped by level for those who are lower level, and caps at 100k for non-transed, 50k for transed, and 25k for multiclassed characters. This is a useful command to use to award players for completing in zone quests, etc. that you have set up. If you want to award more experience than the capped amount, you can have the mob give several experience awards in a row. It is best when you award an experience award to give some sort of message to the player about why they are receiving the award.
EXAMPLES:
mpexp $n 100000
mpexp $n 75000
mpexp $[adventurer] 50000
mpexp $n 500
SPECIAL NOTES: Giving experience to mobs is worthless, as you might expect. Players can level off of these experience awards, just as if they had killed something. Be careful with this command. You don’t want to give out awards for every little thing characters do, nor do you want to give large awards for menial tasks. You also will, of course, not want to make it so a mob can accidentally give the same award over and over endlessly, or something equally abusable.
mpforce
Usage: mpforce [target] [command]
This command forces the victim to do the designated command. The target can be a character variable or a keyword of a mob. The mob can also mpforce all, in which case every player in the room will be forced to do the command. This command has a lot of uses, but is mostly use in combat to do particularly nasty things, like force the player to heal the mob, etc. It can also be used to trigger other mobs by forcing them to perform a specific action which triggers an act_prog.
EXAMPLES:
mpforce $n flee
mpforce all sleep
mpforce xxxguardtwoxxx poke self
mpforce $n cast ‘heal serious’ giant
SPECIAL NOTES: Remember that whatever you force something to do, it needs to be typed out exactly as if they were typing the command themselves. That means if you want a player, for example, to be forced to cast ‘heal serious’ on your mob, you need to mpforce them to cast it on the mob name, not $i or me, etc. What that also means is you cannot mpforce a mob in the room with your mob to kill $n, for example, because the other mob might not necessarily know who $n is. You can, however, mpforce the mob to assist your mob, rescue, etc.
mpgoto
Usage: mpgoto [destination]
Quite simply, this command will move the mob to the designated location. The destination can be a room vnum, character variable, or keyword of a mob. There is no message given to this command, so if you want there to be one, you need to include an mpecho in your mobprog. This command is a good way to move your mob around your zone should you need to.
EXAMPLES:
mpgoto 10076
mpgoto xxxguardthreexxx
mpgoto $n
mpgoto 1252
SPECIAL NOTES: You must be very, very careful if you choose to use mpgoto to go to a character variable like $n. Remember that it is very possible that a player might recall or die while interacting with the mob, and the mob may very well end up mpgotoing $n, who is now in town! This is bad. That’s why it is not a good idea to use the mpgoto command to go to character variables; its just too unreliable.
mpjunk
Usage: mpjunk [object]
This command destroys the object that the mob is referring to. The object must be in the mob’s inventory or part of its equipment. You can also have a mob mpjunk all, which destroys everything on their person. You can also do things such as mpjunk all.sword or mpjunk all.bread, and can use the character variable $o. The command gives no message about its use, so it is a good way to secretly handle the junking of items. It is useful for getting rid of quest items given to the mob for give_progs, or if you have more complicated mobs where you must perform some sort of action in order to get its equipment, for example.
EXAMPLES:
mpjunk xxxchalicexxx
mpjunk greatsword
mpjunk all.arrow
mpjunk all
SPECIAL NOTES: This command is very good for give_progs where you want to destroy the thing given so it can load again or not be used again by the same people. It is a good idea to give quest objects like that unique keywords so there is no mistaking what the mob is mpjunking.
mpkill
Usage: mpkill [victim]
This command basically causes the mob to attack the victim. The only real benefit of using this command is if your mob is low level or attacking something which it is required to ‘murder.’ Other than that, there is no difference between this command and say, kill, murder, hit, etc.
EXAMPLES:
mpkill $n
mpkill xxxguardfourxxx
mpkill $r
mpkill giant
SPECIAL NOTES: Really, this command doesn’t get used much. It was built for other MUD’s which might have level requirements for kill, etc. You can use it, but it more or less works exactly the same as kill, murder, hit, etc.
mpmload
Usage: mpmload [vnum]
This command loads the mob designated by vnum into the room. If you want the mob loaded somewhere besides the room the mpmloading mob is located, you’ll need to use the mpat command. This command gives no message to the world, so if you want one, you’ll use the mpecho command. This command is useful for loading mobs to assist the calling mob in combat, load in-zone quest mobs, etc.
EXAMPLES:
mpmload 10056
mpmload 22176
mpat $n mpmload 10024
mpat 1145 mpmload 1104
SPECIAL NOTES: Remember that this newly loaded mob may not have interacted with the world just yet, so having your mob, for example, mpforce it to kill $n will not work, since the new mob has no idea who $n is.
mpoload
Usage: mpoload [vnum]
This command loads an object of the designated vnum into the inventory of the mob, or if the object is not takable, into the room. If you want to load a non-takable object in another room, you will have to use the mpat command. This command gives no message to the world, so if you want one you’ll have to use the mpecho command. This command is very useful for loading in-zone quest objects, mob pelts, portals, etc. It has many, many uses.
EXAMPLES:
mpoload 10002
mpoload 1305
mpat 10056 mpoload 10095
mpat 1252 mpoload 1256
SPECIAL NOTES: You can do a lot with this command. There is no max on objects loaded in this way, so keep that in mind. Using this command along with the mppurge command can create shifting portals and the like.
mppurge
Usage: mppurge [argument]
This command destroys the argument in the room with the mob. This argument can be a mob keyword, object keyword, character variable, or self. If no argument is given, then the mob clears the room of all mobs and objects in the room except itself. If you are going to have a mob mppurge itself, it must be the last command the mob does, or bad things will happen. Also, never ever mppurge self as part of a death_prog. This is a very useful command. With it you can destroy charmed mobs, switch portals and the like, and clear out mobs and objects you may have loaded.
EXAMPLES:
mppurge xxxportalonexxx
mppurge xxxguardthreexxx
mppurge $n
mppurge self
SPECIAL NOTES: It is a good idea to have unique keywords for mobs and objects you are sure you are going to be mppurging. That way there is no mistake what you are trying to mppurge. Also, you should avoid mppurging players, as it basically causes them to be ejected from the game and their equipment to be dropped upon the ground. Use this command for mobs that set up special quests and then go away, so each zone reset you’ll have a fresh zone for adventurers to pillage.
mppush
Usage: mppush [command]
This command is very similar to mpadd. Basically, it places whatever command follows it in a queue. This makes mobprogs more stable and ensures that every command is referenced and completed. The difference between mpadd and mppush is that mppush will wait two seconds before completing the command. This is useful for mobs that you want to talk more slowly and realistically. You can combine mppushs and mpadds in the same mobprog, so some commands will be done right away and others stalled. The danger of doing this is that sometimes certain commands can get skipped, although this rare. You should never mppush the mpsetvar command or use it in death_progs or hitprcnt_progs.
EXAMPLES:
mppush open door
mppush mpecho $I says, ‘It has been a long time since I have seen daylight…’
mppush cast ‘fireball’ $n
mppush yawn
SPECIAL NOTES: You should pretty much always use mppush if you want your commands to take a little time before going through, and never use them in death_progs or hitprcnt_progs. Also, mpadd or mppush should be the first command in a line, so it would be “mppush mpat $n mpecho A bird sings here” and not “mpat $n mppush mpecho A bird sings here”
mpset
Usage: mpset [victim] [field] [value]
This command sets certain fields of a victim to whatever values you want. The fields that can be affected by a mob include maxhit, maxmana,maxmove, hit, mana, move, align, str, dex, int, wis, con, cha, ac, gold, bank, exp, hitroll, damroll, level, class, race, attacks, height, weight, sex, drunk, hunger, thirst, perm affects and more. Obviously you aren’t going to want to do some of these to players. In fact, the only fields you should ever manipulate on a player character are hit, mana, move, align, and gold. These are the only fields that are safe to manipulate on PC’s. This command is incredibly useful, and can be used to set permanent affects on your mob, alter stats of a mob, etc.
EXAMPLES:
mpset $n hit $(-(stat(var("actor"),"hit"),25))
mpset me con $(+(stat(var(“me”),”con”),1))
mpset me perm fshield
mpset xxxguardsevenxxx cha 22
SPECIAL NOTES: Be very careful with this command when dealing with players. If used poorly it can cause bad things to happen to them, so make sure you have good checks to ensure they get affected correctly and fairly.
mpsetvar
Usage: mpsetvar [target] [variable name] [value]
This command creates a variable for a target and stores a value in it. For more information on how to use variables, see the Fun With Variables section of this tutorial. Never mpadd or mppush an mpsetvar command, or the mpsetvar will never work. You can mpsetvar any name that you choose to, and the value can be a specific text string, an integer, or an expanded character variable. The target has to be a mob, but can be either me or $i, or the keyword of another mob. See the examples below.
EXAMPLES:
mpsetvar me bugcount 1
mpsetvar xxxfrogboyxxx myvictim “The guard”
mpsetvar me myvictim var-actor
mpsetvar $i bugcount $(+(var-bugcount,1))
SPECIAL NOTES: Variables rock. You can do almost anything you ever wanted to do once you get the hang of them. The Fun With Variables section of this tutorial is a great resource to get you on the right track with using them.
mptransfer
Usage: mptransfer [victim] [destination]
This command sends the victim to a designated destination. The victim can be either a mob keyword or a character variable. The destination can be a room vnum, a mob keyword, or a character variable. If there is no destination given, the mob transfers the victim to the same room that it is in. There is no message given to this command, so if you want there to be one, you need to include an mpecho in your mobprog. This command is a good way to move players around your zone or into other zones.
EXAMPLES:
mptransfer $n 10049
mptransfer $n
mptransfer xxxguardeightxxx 1252
mptransfer xxxguardtenxxx $n
SPECIAL NOTES: You need to be careful with this command. First of all, you should never transfer a character variable that is a mob. Why not? Because you may actually end up transferring a different mob entirely with a keyword that is the same. You can mptransfer mobs if they have unique keywords. Also, be sure to be careful about mptransfering mobs to players. If a player recalls or dies, you will end up transferring a mob into town.