Mud Prog Guide – Part 1 – MPCommands

Mud Prog Guide – Part 1 – MPCommands

While working with mud programs in Dawn of Time version S, I found there were more mpcommands available than the help files listed.  After going through the code, I’ve created a full list all of the mpcommands here.

Mp commands are special commands that allow mobiles (NPCs) to perform scripted actions within the game.  With scripting a mobile is able to transfer a player to another location or load an item into the room for example.   In the Dawn of Time codebase, players have been prevented from using these commands by adding a separate interpreter for mp commands.

affect

Sets tired, hunger and thirst values — see ‘help affect_values’.

mob affect [victim] <tired|hunger|thirst> <value>

mob affect $n tired 20

asound

Echos the string/sound to all the rooms around the mobile. The room the mob is in does not see the echo.

mob asound <string>

mob asound ‘A lion roars nearby.’

assist

Lets the mobile assist another mob or player. Mob must be able to see the other mob/player to be able to assist them.

mob assist <target>

at

Lets the mobile do a command at another location, like the imm command.

mob at <location> <command>

boon

Causes mob to boon the target as like imm boon ability.

mob boon [victim]

call

Lets the mobile to call another MOBprogram within a MOBprogram. Characters and objects passed as parameters must be in the same room with the mobile.

mob call <vnum> [victim|’null’] [object1|’null’] [object2|’null’]

cancel

Cancels the delay timer set using the mob delay command. After mob cancel, the delay trigger program will not be run till another mob delay command.

mob cancel

cast

Lets the mobile cast spells. mob cast has less checking than the normal spell cast command, no mana is required and has no lag at all.

mob cast ‘<spell name>’ [target|normal spell parameters]

damage

Does a range of damage to a player after taking player armour into account. Lethal parameter is optional, if not used, player will never die from damage.

mob damage <target/all> <lower limit> <upper limit> [lethal]

delay

Causes a delay (in ticks) before calling another mprog which has the trigger as delay. The other mprog must be on same mob.

mob delay <ticks>

dequeall

Dequeues all currently running mobprogs.

mob dequeueall

duplicate

Will duplicate an item. Used in conjunction with the GIVE trigger, this command can make specialized shopkeepers. IE, a keycutter, a shoppie thatwill duplicate keys given to him.

mob duplicate $o

dzecho

DEBUG ZONE ECHO – Prints the string to all immortals, and all characters in building mode in the same area as a mob. This is very useful for debugging mobprogs. A disabled mobprog will automatically do a dzecho in place of running a disabled prog.

mob dzecho <string>

echo

Displays string to everyone in the room. Good for complimenting mob transfers.

mob echo <string>

mob echo $N is quietly ushered into the room.

echoaround

Displays string to everyone else in the room as the target. The target itself will not see the message.

mob echoaround <target> <string>

mob echoaround $n $N looks like a complete idiot.

echoat

Displays string to the target only. Used in conjuction with echoaround to give different messages to the target and his surrounding people.

mob echoat <target> <string>

mob echoat $n You feel like an idiot.

flee

mob flee <value – optional>

Causes the mob to unconditionally flee. Can be used with hit points percentage trigger to simulate ‘wimpy’ behavior.

force

Forces the target to do the designated command. Target will not be told they are being forced so add some echo message.

mob force <target|’all’> <command>

target

Cancels the target remembered by the mob remember command.

mob forget

gecho

Global Echo – Prints the string to all active players in the game. This works the same way as the immortal gecho command. It should be used rarely!

mob gecho <string>

gforce

Same as mob force but affects the whole group that target is in. Use with care as command must fit logic or reality.

mob gforce <target> <command>

goto

Moves the mob to another room or mob location. There will be no auto message shown so use echos to compliment it. Also if using mob-name, make sure the name is unique.

mob goto <vnum/mob-name>

mob goto 3000 – Will move the mob to room 3000

gtransfer

Same as \”mob transfer\” but moves the whole group the target is in. Convenient to use as it will not break up groups like transfer does.  No message will be shown.

mob gtransfer <target>

inflict

Deals a range of absolute damage to a target and ignores target armour. Optional kill parameter is to make it possible for damage to kill targets. Ignores level as well as armour.

mob inflict <target> <lower> <upper> [kill]

mob inflict xelton 0 100 kill

inroom

Allows a mob to only ‘see’ players and objects in the same room. Very useful if you only want to vforce mobs in the existing room, etc.

mob inroom <command>

junk

Destroy all of an object in mobs inventory. It can also destroy a worn object and it can destroy items using all.xxxxx or even straight ‘mob junk all’ to get rid of everything. Matching is performed using the item(s) name.

mob junk <item>

kill

mob kill <target>

Causes the mob to attack the targeted player. Mob must be able to see the target normally.

mob kill <target>

letpass

Allows someone pass even if there is an exit or exall trigger. An alternative to using \”mob transfer\”. The movement of characters will echo to the room. The actual move isn’t done till the current mobprog is completed. This only has an affect in an exit or exall trigger.

mob letpass

loginprocessed

Used with a loginroom or loginarea triggers. Use it to tell the mobprog system to not run any other progs for a login.

mob loginprocessed

logoutprocessed

Used with a logoutroom or logoutarea triggers. Use it to tell the mobprog system to not run any other progs for a logout.

mob logoutprocessed

mload

Causes mob to load the specified mob into the room it is in. No message is automatically shown.

mob mload <vnum>

mpfollow

Allows you to follow a player even when they have nofollow on. There are no echos from using this command.

mob mpfollow <victim>

mpsneak

Allows any mob to sneak without having to be a thief mob. The debug option was left over from testing.

mob mpsneak [on|off|debug]

mob mpsneak on

msptochar

Used to send a msp sound to a player. The sound files must be in the http://<mud_url>/mobprog/ directory or a directory off it.

mob msptochar $Q folder/sound.wav

mob msptochar $n ikissu.wav

mob msptochar $Q zoo/cow.wav

msptoroom

Used to send a msp sound to everyone in the room. The sound files must be in the http://<mud_url>/msp/mobprog/ directory, or a directory off it. The sounds from an msptoroom are also heard in the surrounding rooms at a reduced volume.

mob msptoroom folder/sound.wav

mob msptoroom ikissu.wav

mob msptoroom zoo/cow.wav

noseeall

Cancels the ‘mob seeall’ command before the function ends.

mob noseeall

oload

Causes mob to load the specified object into its inventory. Oload will load an item of the vnum specified. The level of the object can optionally be specified. The object will default to loading into the mobs inventory (if no where_option is specified). If the where_option is a ‘W’ (or ‘w’) then the mob will automatically wear the object. If the where_option is a ‘R’ (or ‘r’) then the object will be loaded into the room.

mob oload <vnum> [level] [where_option]

mob oload 3000

otransfer

Transfer object specified in room to another location. Searches for the object in the following order: room of mob, carried by mob, worn by mob. If worn it will be unequiped first.

mob otransfer <object vnum> <location>

mob otransfer 500 1500

peace

Stops all fights involving characters in the same room. Will also remove aggressive bits from the mobs in the same room.

mob peace

preventattack

If used in a prekill trigger, will stop a person initiating combat with the mob. Best method to stop a player attacking a mob. The mobprog code that calls this must also do the echos to the player to inform them why they didn’t attack.

mob preventattack

preventmove

Stops a mob moving into a room when used in a premove trigger. Put a premove trigger on a mob (same syntax as an exit trigger, but this only runs when the mob moves). The vnum of the room the mob is moving to is in $V.

mob preventmove

preventobjectaction

Stops an action occuring, only has an effect with object pretriggers.

mob preventobjectaction

preventprac

If used in a preprac trigger, will terminate the hard coded practicing behaviour. Using preventprac to prevent a player from practicing, will not tell them why, you must manually echo that to the player.

mob preventprac

preventtrain

If used in a pretrain trigger, will terminate the hard coded train behaviour. Using preventtrain to prevent a player from training, will not tell them why, you must manually echo that to the player.

mob preventtrain

purge

Destroys an item in the room. Without stating an argumet (ie. item or mob) all NPCs and items in the room will be purged.

mob purge [item/mob]

mob purge

queue

Queue the execution of a command. Mobprog variables used in the queue commands are resolved at the time the queueing is performed. For example, $r will be a random person at the time a prog is queue, not when it is run.  To get random at the time a prog runs, put the instructions in a prog then use the ‘mq# mob call <vnum>’ command.

mob queue <seconds> <command to run when time is up>

mob queue 2 north

mob queue 2 yell hello

The mob queue #  (where # is a number in seconds) can be shortened to mq#.

mq2 north

mq2 yell hello

remember

Mob will remember specified target as $Q (for future use). Usually used in conjunction with another mprog.

mob remember <target>

mob remember $n

say You have 10 seconds to leave this area

mob delay

(Followed by another mprog with trigger as delay. The other mprog should use $Q or $q within it to call on the remembered target.)

remort

Remort command to allow someone who is a hero to begin creation. Note: This command only works if the mud has remort enabled in the imp gamesettings command.

mob remort <player>

mob remort $n

remove

Causes mob to remove a certain item or group of items from the target’s inventory.

mob remove <target> <vnum of object>

mob remove $n 350   – removes all vnum 350 objects from target’s inventory

mob remove $n 5*350 – removes 5 copies of object 350 from target’s inventory

mob remove $n all   – removes everything from the target’s inventory

emote creates a powerful vortex, sucking everything in!

mob remove $n all

restore

Causes mob to restore the target as like imm restore ability. Restores hitpoints, mana, movemen, tiredness, hunger to full.

mob restore <target>

mob restore $n

returnmoney

Causes mob to return the money used to trigger a bribe trigger.

mob returnmoney

seeall

Put this at the top of a mobprog, and the mob will be able to see everyone (and all objects) in the room. If you want to do a ‘mob echoat $n’ that MUST get to $n even when the mob can’t naturally see $n, then put ‘mob seeall’ at the top of your mobprog. The affect of this command is automatically canceled at the end of the mobprog and does not effect other functions.

mob seeall

setclass

Changes the target’s class.

mob setclass <target> <class>

mp setclass $n warrior

setskill

Assign  a skill/spell to the target. Do not set the spell level on a character that can’t cast that, such as a barbarian. Be sure only to assign skills/spells to people of the correct.

character class (use if class $n to make sure).

mob setskill <target> <skill> <percent> [pracs] [trains]

mob setskill $n elven 100

—–

mob setskill $n armour 10 1 0

– this will set the character’s armour spell at 10% at the cost of one prac. 

mob setskill $n human +15 1 0

–  will add 15% to their skill, max 100%.

mob setskill $n recall +0 3 -2

– costs $n 3 pracs, gives 2 trains and leaves $n’s recall skill  unchanged.

* [pracs] and [trains] are optional, you can just use 0 for completion’s sake.

* The percentage is a flexivalue (same as in in the autobalance command).

* You can also use a flexivalue of +0 to change a players trains or pracs without changing their skills.

silently

Will make the action unseen by characters, (same as imm command). Mobs will not see this as well.

mob silently <action>

mob emote makes a lightning fast move with a flick of his wrist

mob load [key-vnum]

mob silently unlock east

swipe

Will take a certain amount of coins away from the target. The swipe command is 100% successful.

mob swipe <target> [gold|silver] <amount percent>

mob swipe $n gold 10

– 10% of $n’s gold is gone

stun

Lags victim x pulses. There are 4 pulses per second.

mob stun <target> <1-20>

mob stun $n 10

– will lag $n 2.5 seconds

supresstext

Will suppress the output of any text to all players in the game for the duration of the command. Mobs and immortals will see outputted text prefixed with [SUPPRESSED TEXT].

mp suppresstext <command>

Example used in a do wear_mid object trigger:

mp suppresstext mp force $U wear $u`1″

mp echoat $U You drape a hooded mist grey cloak over your shoulders, fastening the clasp at the shoulder.

mp echoaround $U $N drapes a hooded mist grey cloak over $s shoulders, fastening the clasp at the shoulder.

mp preventobjectaction

tgive

Used to make the mob give the target a token. As a general policy, use the vnum of the token to specify. It is not necessary any more that the vnum of the token is used in the name/short of the token itself.

mob tgive <token> <target>

mob tgive 3086 $n

tjunk

Used to junk a token or group of tokens carried by the target. Prefixing the token number with ‘all’ will clear all tokens of that vnum from the target. Examples of the target might be the mob itself ($I) or another player ($N).

mob tjunk <tokennumber> <target>

mob tjunk all.<tokennumber> <person>

mob tjunk all.3086 $n

mob tjunk 4236 $n

transfer

Used to transfer a single person or all players in a room to a certain location. The ‘all’ is used to transfer everyone in the current room to the location specified. The mob doesn’t have to be in the room of the target. If no location is specified, the target will be transfered to the current room.

mob transfer <target|’all’> [location]

mob transfer $n 299

mob transfer all 3000

tremove

Takes a token from a player. It is prefered that the token is referred by its vnum.  tremove will put the token into the mobs inventory.  If you are trying to destroy the token it is easier to use tjunk.

mob tremove <token> <player>

mob tremove 500 $n

ttimer

Sets the number of ticks in which the token will automatical dissolve. It is preferred that the token is referred by its vnum.

mob ttimer <token> <player> <number_of_ticks>

mob ttimer 3086 $n 20

– in twenty ticks this will dissolve.

vforce

Same as force but uses vnum to specify target instead. Very useful if you know there will be only 1 mob with a particular vnum in the realm. See the force command for additional notes (mobhelp force).

mob vforce <vnum> <command>

wander

Used to make a mob walk in a random direction.

mob wander

xpreward

Reward victim with xp. The character must be in the same room as the mob. No message is shown to the character unless they gain a level. You can’t lose a level with this command, but can go into negative xp. You can’t set more than 1000 xp at a time. The system logs the use of this command.

mob xpreward <target> <amount>

mob xpreward $n 50

– this will give the character 50 xp

mob xpreward $n -10

– this will take 10 xp from the character.

zecho

Prints the string to all active players in the same area/zone as the mob. This is the same as immortal zecho command.

mob zecho <string>

zoecho

Prints the string to all active players in the same area/zone as the mob if they are outdoors. This is the same as immortal zoecho command.

mob zoecho <string>

zuecho

Prints the string to all active players in the same area/zone as the mob if they are underwater. Similar to all zone echo commands but for underwater.

mob zuecho <string>