Introduction

(Originally on http://ht-highreacheshold.wikidot.com/moocode, compiled by T'ab@HT)

Below are a list of useful verbs that are available on Harper's Tale MOO. Most verbs are accessible without having to add a feature, although some require an additional Feature Object (FO), if so then there will be an additional note. See the section on Feature Object Verbs for how to add/remove/check for FOs.

The syntax will list how the verb can be typed, the command is shown within apostrophes ('s), type the command without the apostrophes to use them. In addition, some commands require a target or an additional parameter to work and those portions will be listed in between brackets (<>'s). To use them, put the intended parameter where the brackets are, without the brackets.

For example:
Locating Players - SYNTAX: '@who' or '@who <player player player>' - USE: Without target @who will list everyone that is logged on and their location. With target(s), it will list where those players are regardless if they are online or not.

If I wanted to use the first version of the command, I would type:

@who

If I wanted to use the second version of the command, I would type:

@who T'ab Za'an Schmendrick

Finding People

Seeing Players that are online
- SYNTAX: who or who <player player player>
- USE: Without a target, who will list everyone that is logged on and their @doing message (sometimes informative). With target(s), it will list those players and mention which ones are online and which ones are not.

Locating all online players or a list of players
- SYNTAX: '@who' or '@who <player player player>'
- USE: Without target @who will list everyone that is logged on and their location. With target(s), it will list where those players are regardless if they are online or not.

Checking all online players' titles or a list of players' titles
- SYNTAX: 'who/t' or 'who/t <player player player>'
- USE: Without a target, it will list all the players online and their corresponding titles. With target(s), it will list those players regardless if they are online or not.

Checking for RP-OK players
- SYNTAX: 'who/rp'
- USE: Lists all players who have set themselves RP-OK. For more information on the RP-OK system, see Command-rpok.

Checking for groups of people online
- SYNTAX: 'crowds' or 'crowds <number>'
- USE: Without a number, it will list all rooms that have online players in groups of 2 or more (NOTE: Some of these rooms may be private). With a number, it will list all rooms that have online players in groups of the designated number or more.

Checking for groups of people online in public rooms
- SYNTAX: 'pcrowds' or 'pcrowds <number>'
- USE: Without a number, it will list all players in public rooms. With a number, it will list all public rooms that have online players in groups of the designated number or more.

Finding the way to a player
- SYNTAX: '@path to <player>' (REQUIRES FO #160)
- USE: The code will tell you the quickest way to get to the room that the designated player is in, 99% of the time it works… but sometimes it gets wonky.

Checking when someone last logged on
- SYNTAX: 'laston <player>'
- USE: It will tell you when the last time was when the player logged on, when was their last disconnect, and how long they were on.

See how long the player has been on HT
- SYNTAX: 'veteran' or 'veteran <player>'
- USE: Without a target, it will list all players online and how long they have been on HT. With a target, it will list how long the player has been on HT.

Watching when players connect/disconnect
- SYNTAX: check helpfile, 'help @monitor'
- USE: With various parameters, allows you to watch for people connecting and disconnecting, including all players or just a specific list of players.

Look at a specific player's information
- SYNTAX: '+finger <player>' or 'nfo <player>'
- USE: Will show you the specific information about the player, including a title, name pronounciation, plan, affiliations, dragon, firelizards, etc etc. NOTE: There is a property that can be set that alerts a player if they are +finger'd or nfo'd, so regularly checking people can sometimes be annoying (it happens more than you'd think).

Roleplay

Pose a message that is contained in quotes
- SYNTAX: 'say <message>' or '"<message>'
- USE: This will have your player say something out loud to the room. The room will see 'Player says, "Message"' This can be used as a pose, but remember that it will enclose the entire message in quotes.

Pose a message without quotes that starts with your name
- SYNTAX: 'emote <message>' or ':<message>' or '::<message>'
- USE: This will have your player pose something that begins with your character's name. The room will see 'Player message' unless you use the last syntax, with the ::, and it will not put a space in between, so the room will see 'Playermessage'.

Pose a message that does not start with your name
- SYNTAX: '@emit <message>'
- USE: This will send a message to the entire room that will not start with your name, this is commonly used to pose something that will later include your name. The room will see 'Message'. There are rules against abusing this tool, see 'help spoofing' on HT.

Say or emote something to a player that only that player will see in the room
- SYNTAX: 'whisper <player>=<message>' or 'whisper <player>=:<emoted message>'
- USE: This will send a message to the designated target, either the whole message in quotes if you use the first syntax. In the second syntax, it will be an emoted message (without quotes, like a pose). Using whisper only the target will see the message and no one else in the room will see it.

Say something to a player that the rest of the room will only see snippets of
- SYNTAX: 'mutter <player>=<message>'
- USE: Similar to whisper, this will send a message to the designated target but the rest of the room will see part of the message, random words will be revealed to the rest of the room. This can lead to some disastrous OR fun situations. So while the target may see,

Player whispers, "B'ayn smells of lilacs and cologne."

The rest of the room will see:

You overhear Player mutter, "B'ayn ... ... lilacs ... cologne." to Target

You want to say something Out of Character (OOC) to the room you are roleplaying in
- SYNTAX: 'ooc <message>' or 'ooc :<message>' or 'ooc ::<message>'
- USE: This will send a message to everyone in the room with a [OOC:] marker before it, designated it as not part of the roleplay. This is often used to fix previous poses, mention something in relation to the roleplay, or say something silly that is not IC. Most people prefer that you minimize the amount of OOC messages you use in RP because they are not a lot of fun to edit out and can interrupt roleplay flow.

ppl use/setting

Display a brief description/title listing of everyone in the room
- SYNTAX: 'ppl'
- USE: Shows a listing that displays the name, age, height, build, eye color, hair color/style and title of every player in the room.

Set character's height for ppl
- SYNTAX: @set me.height to "height"
- USE: Sets height property on your character.

Set character's build for ppl
- SYNTAX: @set me.build to "build"
- USE: Sets build property on your character.

Set character's eye color for ppl
- SYNTAX: @set me.eyes to "eye color"
- USE: Sets eye color property on your character.

Set character's hair for ppl
- SYNTAX: @set me.hair to "hair"
- USE: Sets hair property on your character.

Objects

All objects can be referred to by their object database number or their name/aliases. Their name will only be usable if the object is on your player or in the room.

See what objects you own
- SYNTAX: '@audit' or '@audit <player>'
- USE: Shows all of the objects you (or the designated player) owns, includes listing the object database number, object name, and object location.

See how much of the MOO Database you take up
- SYNTAX: '@quota'
- USE: This will tell you how much 'memory' you and your objects take up. Every player has a set quantity that can use and if you use up all of your quota, you cannot create any more objects.

See what objects you are carrying
- SYNTAX: 'inventory' or 'i'
- USE: Shows all the objects that you have carrying on your person. Can be dropped by 'drop <object>' and objects can be picked up by 'take <object>'. NOTE: Don't take things that aren't yours or you don't have permission to take!

See the objects information
- SYNTAX: '@examine <object>'
- USE: This shows all available information about the object (can include a person, puppet, room or other object) and includes the name, database number, description, and any available verbs that you can use. NOTE: This can be pretty spammy, so beware!

Create a new object
- SYNTAX: '@create <parent> called <object name, aliases>'
- USE: This creates a new object based on the designated generic parent. This will only work if the parent is fertile. Some objects can only be made by certain people (Herders can only make animals, Wizards can only make firelizards and dragons). NOTE: Do not just make objects willy nilly, it will bloat the MOO database and also take up your quota.

Rename the object
- SYNTAX: '@rename <old object name> to <new object name, aliases>'
- USE: Changes the name of the object.

Add aliases to the object
- SYNTAX: '@addalias <alias, alias, alias> to <object>'
- USE: Adds additional alias(es) to the object.

Delete an object
- SYNTAX: '@recycle <object>'
- USE: This will delete an object that you own. There are protections against deleting some of your objects, but sometimes there is no protection against uncontrolled recycling, so be very careful with what you do.

See what the object's parents are
- SYNTAX: '@parents <object>'
- USE: Lists the names and numbers of the parent objects that the designated object is made from.

See what available parent objects there are - SPAMMY!!!!
- SYNTAX: '@classes generics'
- USE: This will show all available parent objects that can have objects created from them, super spammy.

Move an owned object to a location
- SYNTAX: '@move <object> to <location #/me/here>'
- USE: Moves the object to the designated location. You can only move objects you own and only to locations you own.

Check settable messages on the object
- SYNTAX: '@messages <object>'
- USE: Shows settable messages on the object. It even gives you the syntax of how to set them. The basics to set is '@<messagename> <object> is "<setting>". This can be done on objects and yourself.

Rooms

Look around the room
- SYNTAX: 'look' or 'look <object>'
- USE: Without a target, this will look at the room that you are in and give a description, room occupants, object occupants, and exits available. With a target, it will only look at that specific object description and other properties (to note: if you look at a puppet or a player, it will notify them).

See information about other people in the room
- SYNTAX: 'ppl'
- USE: This command provides a listing of all characters in the room, with information including their gender, height, build, hair, eyes, age and title, making it a useful 'cheat sheet' for some of the character details most commonly referenced. This information is set using '@set me.<property>', i.e. '@set me.height to "5'3"'.

Find the available exits
- SYNTAX: '+compass' or '+rose'
- USE: This will show a compass rose of the room that you are in, showing the available exits and the directions they lay in. This will not show hidden exits.

Look for players and puppets that can hear you in a room
- SYNTAX: '@sweep'
- USE: Tells you all of the listening puppets and players in the room that will hear/see anything that you pose within the room.

Find out where messages are coming from
- SYNTAX: '@paranoid', check 'help @paranoid' for further detail.
- USE: This will set you to record any messages that you receive, including poses, pages, channel chatter, etc etc. To check the recordings, type '@check'.

Set a room as your home
- SYNTAX: '@sethome'
- USE: This will set the room you are currently in as your home (where you will return when you type 'home'). You can also use this command to set the home for puppets, such as dragons and fire-lizards.

Teleport to a room
- SYNTAX: '@goroom <dbref>'
- USE: Moves you to the room with the dbref specified in the command.

Puppets

Add a control code to your puppet
- SYNTAX: '@addfl <code>=<puppet #>'
- USE: Adds a controlling code to the puppet, the 'puppet #' is the object's database number (found by @audit or @examine).

Remove a control code from the puppet
- SYNTAX: '@remfl <code>'
- USE: Removes the controlling code.

Turn on/off your puppet
- SYNTAX: '@puppet-on <code>' or '@puppet-off <code>' or '@puppet <code>'
- USE: Turns on and off your puppet with the code, turning it on means that everything your puppet sees will be sent to you. The last syntax will check to see if your puppet is off.

See what puppet codes you have
- SYNTAX: '+flist'
- USE: Shows all of the puppet codes you have set up, including name, type of puppet and database number.

Make your puppet do something, enter an exit, say something, pose something, look, etc.
- SYNTAX: 'cd<code> <action>'
- USE: Causes your puppet with the designated code to do the action, this is only limited to your puppet's abilities, such as looking, talking, posing, and for dragons/firelizards betweening and flying

Communication

Talk to another person that is not in the same room
- SYNTAX: 'page <player>=<message>' or 'p <player>=<message>' or 'p <player> <message>'
- USE: With any syntax, this will send a message to the targeted online player(s) regardless if they are in the same room or not.

Send a message to multiple people at once
- SYNTAX: 'pp <player> <player> <player>=<message>'
- USE: This will send a message to multiple players, there isn't a limit to how many players the message can be sent to.

Block from seeing a player's communication, including poses, whispers, pages, etc.
- SYNTAX: '@gag <player>'
- USE: Successfully blocks any messages that would typically go to you from the targeted player. There is an undo feature, a list feature, and a global-like feature as well, just type 'help gagging' in game for more information.

Mail

So you want to mail something? Do you want to send it to a mailer or just to a specific person, or both? Before you do any sending, always think first about your audience (as that is the first step in mailing). Below are listed some mailers, all MOO mailers start with an asterisk (*) and players are just the player names, so when in the syntax it says <target> you would either put *mailer or the player's name. The target can be multiple, just separate the names/mailers by spaces.
Remember that cross-posting (sending to more than one mailer/person) can be useful and necessary, but always make sure that you aren't sending to multiple mailers that will result in everyone getting spammed (it is just common courtesy).

Start sending a mail message
- SYNTAX: '@send <target>'
- USE: For the target(s), this will start the mail writing process to the specified targets. Immediately after typing this, the mail editor will prompt you for a one-line subject. Typically keep this simple. Both of these parameters can be changed later.

Verbs you can use in the Mail Editor
- There are verbs also listed in the Noteditor/Mail editor section, but these are verbs that are available only to the mail editor, in addition to list, delete, say.
- SYNTAX: 'to <target>' or 'also-to <target>' USE: This changes (first syntax) or adds onto (second syntax) the list of recipients for the mail. It will tell you the new list after you enter this command.
- SYNTAX: 'subj <subject>' USE: This will change the subject to the new subject.
- SYNTAX: 'send' USE: After you are confident in your mail, this will send the mail out and exit you out of mail editor mode.

Start sending a mail message (alternative route)
SYNTAX: '+mail <target>'
USE: This is a more streamlined and less coded version of the above method, it will prompt you for a subject and then the mail. The upside is that is can be relatively quick and easy. The downside includes you cannot change the recipients, subject, or any of the message, so this is either for prewritten messages or for just quick notes to people.

Check your personal mail
- SYNTAX: '@mail' or '@mail <number or range>'
- USE: This will list all of the mail that has been sent to you, the specific mail number or the range of mail numbers on you. This will only list the date sent, the sender, and the subject.

Check the mail on a mailer
- SYNTAX: '@mail on <*mailer>' or '@mail <number or range> on <*mailer>'
- USE: This will list all of the mail that has been sent to you, the specific mail number or the range of mail numbers on you. This will only list the date sent, the sender, and the subject.

Read mail (either personal or on mailer)
- SYNTAX: '@read <number/new/prev/next>' (personal) or '@read <number/new/prev/next> on <*mailer>' (mailer).
- USE: With a designated number, it will read the specific mail with that number. With 'new' it will read all the new mail on yourself or on the mailer (could be spammy). With 'prev' it will read the previous mail before the last one you read. With 'next' it will read the next mail after the last one you read.

Remove mail from yourself
- SYNTAX: '@rmmail <number/range>'
- USE: This will remove a specific mail number or range and delete it forever. NOTE: You can only remove mail from yourself or from mailers you own, if you screw up a mail to a mailer, you will need to get ahold of the owner of the mailer to get it removed.

Forward mail to your registered email account
- SYNTAX: '@netforward <number/range>' or '@netforward <number/range> on <*mailer>'
- USE: This will send the designated mail(s) to your email address that you have registered your character on. This will not delete the mail though. NOTE: Regularly the MOO cycles through and deletes old mail on yourself and on mailers, if mail is deleted off your character by the MOO it will also be automatically forwarded to your email.

Check for archived mail on a mailer
- SYNTAX: '@ma on <*mailer>' or '@ma <number/range> on <*mailer>'
- USE: Some (not all) mailers (mostly the important ones) have been specially made to archive old messages instead of delete them. This verb will list either the most recently archived messages (first syntax) or a range of archived messages (second syntax).

Read archived mail on mailer
- SYNTAX: '@ra <number> on <*mailer>'
- USE: This will read the designated number of the archived message on the designated mailer.

Have someone look at the mail you are about to send before it is sent out
- If you are in the process of writing a mail or are near completion and want someone else to read it before you press 'send', there are tools you can use in Mail Editor mode ONLY to allow this.
- Mail Writer:
- SYNTAX: 'publish'
- USE: This will make the mail publicly available to read, to undo this just type 'unpublish'
- Mail Checker (person who wants to read the published mail): This is a bit of a process, first you must enter Mail Editor mode… which is typically done by just @send <some irrelevant target>, entering a useless subject and getting into mail editor mode (after you are done, you can just 'abort' in mail editor mode and cancel the message). Once in Mail Editor, the player can then type 'view <player>' or 'view <player> <range>' to read the mail.

Feature Objects (FOs)

Feature Objects (FOs) are tools that you can 'add' to yourself and it will give you an additional list of verbs that you can use. Often these verbs are player-made and typically are not customizable. NOTE: Since these verbs are made by players, they can often have issues that cause them not always to work, keep that in mind and usually the coder of the object is willing to work with you to fix things. The usual way to find out the list of available verbs is by typing 'help <feature #>' or by asking others on the game.

Add a FO
SYNTAX: '@addfeature <feature #>'
USE: This will add the designated feature object with the database number to you, once you add it you will be able to use all of the verbs.

Remove a FO
SYNTAX: '@rmfeature <feature #>'
USE: This will remove the feature object from you, you will no longer be able to use the feature object's verbs.

Check to see what FOs you have
SYNTAX: '@features'
USE: List all of the feature objects that you have added to your player, this will include the FO name and the FO database number.

Very Useful Features to Have:
-#160 @path Feature - Useful verbs: @path
-#1776 IC Feature - Useful verbs: flora, fauna1, fauna2, curses, huglist
-#7992 Go RP Feature - Useful verbs: @rplist, rpwant, @rpnotify, rproll, stealth
-#9602 TCF - Useful verbs: nscan, reapchk, @tcheck
-#1001 Firelizard Genealogy Feature - Useful verbs: @flgen
-#12000 FO #12K - Useful verbs: @x1, @x2
-#3106 Kamikaze Forever - Useful verbs: sp, dipsmooch, twang, snig, keese, gid/gidre

Channels

Create a channel
- SYNTAX: '+channel +<channel name>'
- USE: Creates a channel with the designated channel name. It will also turn it on for you, you will still have to addcom the channel.

Add an already created channel
- SYNTAX: 'addcom <alias>=<channel name>'
- USE: Adds a channel that has already been created with the designated alias to use with communication. The alias is how you will use the channel. You still have to turn the channel on, if it isn't already. NOTE: The channel name is case sensitive, aka: ChAnNeLNaMe is different from ChannelName.

Removes a created channel alias
- SYNTAX: 'delcom <alias>'
- USE: Removes the channel alias. This will not turn the channel off, so if you want to fully remove a channel you must first turn it off and then delcom it.

Check what channels you have set aliases for
- SYNTAX: '@channels'
- USE: Lists all channels that have aliases set for them, also will mark an asterisk* next to any channels that are turned on.

Turn on a channel
- SYNTAX: '<alias> on'
- USE: Turns a channel with the set alias on.

Turn off a channel
- SYNTAX: '<alias> off'
- USE: Turns a channel with the set alias off.

Check who is on the channel
- SYNTAX: '<alias> who'
- USE: Shows who has the channel turned on and is listening.

Talk on the channel
- SYNTAX: '<alias> <message>' or '<alias> :<message>' or '<alias> ::<message>'
- USE: Sends the message on the channel, the first syntax is solely a message, the second is an emoted message and the last is an emoted message without a space between the message and your player name.

Aim a conversation to someone specific on the channel
- SYNTAX: '<alias> -<player> <message>'
- USE: This will put the targeted player's name in parentheses to note that your message is specifically directed to them. It will say:

[Channel Name] You (to Player): Message

Dragon/Firelizard Verbs

Find out what firelizards a player has impressed or who has impressed the firelizard
- SYNTAX: '+flpair <player>' or '+flpair <firelizard>'
- USE: The first syntax will list all the firelizards the target player owns, the second will list the owner of the target firelizard.

Find out what dragon a player has impressed or who has impressed the dragon
- SYNTAX: 'pair <player>' or 'pair <dragon>'
- USE: The first syntax will list the dragon the target player rides, the second will list the rider of the target dragon.

Find out the genealogy of a firelizard
- SYNTAX: '@flgen <player>'s <firelizard>' (REQUIRES FO #1001)
- USE: This will list the parents, siblings, and children of the designated firelizard.

See all of the firelizards who have owners that are online
- SYNTAX: '+flwho'
- USE: This will list all of the firelizards that have owners that are online. NOTE: This can be extremely spammy.

See all of the dragons who have riders that are online (or their PDragons are online)
- SYNTAX: 'dwho' (This can only be done by a dragonrider)
- USE: This will list all dragons who have riders that are online and/or if the PDragon is online)

Noteditor/Mail Editor

Noteditor is one way to set properties, including a description, clothing, plan, etc. The mail sending function also uses similar syntax.

To enter Noteditor, you can type '@notedit <object>.<property>'

To enter Mail Editor, you can type '@send <mailer/player list>' and then enter a mail subject.

Once in editor, the following commands are available:

- SYNTAX: 'say <message>' USE: Enters a line with the designated message.
- SYNTAX: 'delete <line number or range>' USE: Deletes the designated line or range of lines.
- SYNTAX: 'list' or 'list <line number or range>' USE: Lists all the currently written lines or a range of lines.
- SYNTAX: 'insert <line number>' USE: Places the next line/editable area to the space above the designated line number
- SYNTAX: 's/<old phrase>/<new phrase>' USE: Replaces the designated old phrase with the new phrase.
- SYNTAX: 'abort' USE: In Noteditor this cancels all not-saved changes, in Mail editor this cancels the mailing process
- SYNTAX: 'save' USE: In Noteditor only, this will save the changes made.
- SYNTAX: 'done' USE: In Noteditor only, this will exit Noteditor mode.

Properties

There are many properties on the MOO that one can set and there are different ways to set the properties.

@noteditor properties

One way to set a property is by using the @noteditor. So if I wanted to set my plan, I would type '@notedit me.plan' and then use noteditor to set the properties. Properties that can be set using @noteditor include:

@History

.char_history - Creates what is displayed in @history <name>. A great place to put your character's history (whether on or off-camera) and family information.

Plan

.plan - This shows in your +finger information, it can essentially be anything from quotes to a quick biography to pertinent websites.

Rotating @Doings

.rotating_doing_list - This is your Doing Message that shows on the 'who' list, each line is a different message and it will rotate between them.

NOTE: The @doing message will override these. To get the rotating list to work, you must clear out your @doing message. @doing me is ""

@set properties

Another way to set a property is by using @set. The syntax is '@set <object/me>.<property> to <value>' these are often numbers like 1 or 0 or single strings of values like "String of value". Properties that can be @set include:

nfo/+finger notification

.nfo_notify - if @set to 1, every time a player nfo/+fingers you, you will be notified with a simple message. ie - @set me.nfo_notify to 1

Changing Ownership of an Object

This is if you own an object and you want to give it to another player and have them own it (codewise). This process is typically referred to as '@chown'. NOTE: This cannot be done with some sensitive objects, like firelizards, other players, dragons, or eggs.

Set the object to be able to change ownership
- SYNTAX: '@set <object #>.c to 1'
- USE: This will make the object set to be @chown'able. To undo this, just '@set <object #>.c to 0'. Until another player uses @chown, the object will still be listed as you owning it.

Take ownership of the object
- SYNTAX: '@chown <object #>'
- USE: This will change the ownership of the object to yourself. This can only be done of the previous owner had set the .c property to 1. This will also reset the .c value to 0 so it cannot be taken away.

Fun Feature Verbs

Generate a random name
- SYNTAX: 'random <male/female>' (REQUIRES FO #7567)
- USE: This will generate a random name based on the designated gender.

Basic Coding

@verbs
@list

BONUS: Opt Out of New Room Code

- SYNTAX: @set me.want_old_rooms to 1