Better Living Through Fast Feet
Language Reference

Back to Home


Who Should Run
When to Run
What to Run From
Where to Run
Why You Run
How to Run

Where NOT to run
Running to Lead
Parking Critters
Running with Money
Where to Hunt

Hunting Tips and Tricks
Cornering
Farming Kudzu
Critter Compendium
Training Tips

All About Us
Scrapbook
Jo's Archive
Seven Stages of Addiction
Links

Macro Resource
Macro Language Reference
 
Last updated November 11, 2001

Printer-friendly version

One of the most frustrating things about writing macros for CL is that all the information you need is scattered in three or four different places. I've tried to gather it all together in one place, pillaging with great abandon the official macro documentation (which is no longer updated, unfortunately), the works of Phineas (array declarations), Maenygh (how to include subfolders), the "What's New" pages from DT's official CL site, and resources put together by other kind folks too numerous to mention (which just means I've forgotten their names) who have plumbed the depths and reaches of the macro language.

As you might notice, there are no explanations or examples. This is a quick reference for people who know what they want to do but just can't remember the attribute they want to use or who have an idea and want to see if they're going to have to build a hairy workaround or if the macro language already supports what they want to to do.

So here are all the tidbits in one spot. I hope you find them useful. And, of course, if you find something I've left out, please let me know.

Attributes, Variables, Functions:
$any_click
$ignore_case
$no_override
.letter[n]
.num_letters
.num_words
.word[n]
// This is a comment
@click.name
@click.simple_name
@env.click_interrupts
@env.debug (true/false)
@env.echo (true/false)
@env.key_interrupts (true/false)
@env.textLog
@login
@my.[slotname]_item
@my.name
@my.right_item, @my.left_item
@my.selected_item
@my.simple_name
@random @selplayer.name
@selplayer.simple_name
@text
@textsel
call <function>
goto <label name>
include (include ":folder:macrofile" for subfolders)
label <label name>
message "<text>"
message <variable>
pause <number> \" double quote
\' single quote
\r return
\\ backslash

Keys
  • clear
  • click
  • del
  • delete
  • down
  • end
  • enter
  • escape
  • f1 - f15
  • help
  • home
  • left
  • minus
  • pagedown
  • pageup
  • return
  • right
  • space
  • tab
  • undo
  • up
Modifiers:
  • command
  • control
  • numpad
  • option
  • shift
Option Key
option-s "this fails"
option-ß "this succeeds"
OS 9.1 broke option-Fkeys for me. If anyone figures out how to get them to work again, let me know.

If:
if <expression> <comparison> <expression>
<commands>
else if <expression> <comparison> <expression>
<commands>
else
<commands>
...
end if

<expression> may be a variable, test, or a number
<comparison> must be from >,<,<=,>=,==,!=
== means equal to
!= means NOT equal to

Random:
random <option>
<commands>
or
<commands>
or
<commands>
...
end random
<option> can be "no-repeat"

Set local variable:
set <variable name> <value>
OR
set <variable name> <operation> <value>
<operation> must be + - * / %

Set global variable:
setglobal <variable name> <value>
OR
setglobal <variable name> <operation> <value>
<operation> must be + - * / %

Set with concatenation:
set <string> + <string> concatenates a string

Set an array:
set <variable_name>[<number>] <value>
or
setglobal <variable_name>[<number>] <value>

Set a two-dimensional array:
set <variable_name>[<number1>][<number2>]

set <variable_name>[<number1>[<number2>]]

Client commands can be used in macros as well. They are:
  • \ACTION <TEXT> puts your name followed by the text in an action bubble.
  • \AFFILIATIONS will show everyone the groups with which you are affiliated. \AFFILIATIONS <name> will show you that person's affiliations. \AFFILIATIONS \QUIT <organization name> will disassociate you from that group.
  • \ANONCURSE <PERSON> shows your displeasure by anonymously giving them bad karma. \ANONCURSE gives it to them anonymously along with a reason.
  • \ANONTHANK <PERSON> shows your gratitude by anonymously giving them good karma. \ANONTHANK gives it to them anonymously along with a reason.
  • \BE-SURVEY This command does nothing useful.
  • \BEFRIEND <PLAYER> Sets a player as being a friend.
  • \BLOCK <PLAYER> Sets a player to be blocked. You will not hear anything they say.
  • \BUG <MESSAGE> reports problems with the game. It really helps us if you \bug when near the problem. Use \BUG for suggestions, too.
  • \BUY <PRICE> <SELLER> will accept a seller's offer.
  • \CURSE <PERSON> shows your displeasure by anonymously giving them bad karma. \CURSE <PERSON> <REASON> gives it to them non-anonymously along with a reason.
  • \DEPART will send you to Purgatory when you are fallen and have given up hope of being rescued.
  • \EQUIP <ITEM> will ready the item for use. \EQUIP <ITEM> <NUMBER> will ready that individual item. See also \UNEQUIP.
  • \EXAMINE will examine the item selected in your Inventory window. Most things have nothing interesting about them.
  • \FORGET <PLAYER> Undoes a block, befriend, or ignore.
  • \GIVE <PERSON> <AMOUNT> will give coins to another person.
  • \HELP
  • \HELP <COMMAND>
  • \IGNORE <PLAYER> Sets a player to be ignored. You will not hear anything that they say and they will be invisible.
  • \INFO shows information about yourself. \INFO <PLAYER> shows info about another player in the game.
  • \KARMA shows your karma. \KARMA <PLAYER> shows karma for a player in the game.
  • \MONEY shows how many coins you are carrying.
  • \MOVE <DIRECTION> <SPEED> causes your character to move in direction at speed. Speed may be MOVE, WALK, or RUN. Subcommands: N, NORTH, NE, NORTHEAST, E, EAST, SE, SOUTHEAST, S, SOUTH, SW, SOUTHWEST, W, WEST, NW, NORTHWEST, STOP.
  • \NARRATE <TEXT> puts the text in a narration (green) bubble.
  • \NEWS Shows the news.
  • \PONDER <MESSAGE> shows what you are thinking to those near you.
  • \POSE <POSITION> <DIRECTION*> strikes a pose. <POSITION> can be AKIMBO, ANGRY, ATTACK, BLESS, BOW, CELEBRATE, CRY, KNEEL, LEANLEFT, LEANRIGHT, LIE, SALUTE, SEATED, SIT, STAND, SURPRISED, THOUGHTFUL, WALKLEFT, WALKRIGHT.
  • \PRAY <MESSAGE> to the deity of your choice. OOC: message is sent to all online Game Masters. Game Masters don't help with rescues or quests and will often make things worse. use /BUG <MESSAGE> to report problems or suggestions.
  • \PREF <PREFERENCE> <VALUE> Sets a client preference. Subcommands: MOVEMENT, LARGEWINDOW, MESSAGE, BRIGHTCOLORS, AUTOHIDE, TIMESTAMPS, MAXNIGHTPERCENT, VOLUME.
  • \PULL <PERSON> exchanges places with a nearby person.L
  • \PUSH <PERSON> will push a person ahead of you.
  • \RECORD ON | OFF Starts a movie recording | stops a movie recording.
  • \REPORT <PERSON> <REASON> lodges a complaint against someone who is behaving offensively. Complaints against other players will be investigated by Game Masters as promptly as possible. Please donŐt abuse this mechanism. Players who make frivolous, groundless, or malicious complaints will suffer adverse consequences.
  • \SELECT <PLAYER> Selects the player. <PLAYER> may also be @first, @last, @prev, @next.
  • \SELECTITEM <text>. The text must be an unambiguous substring of the desired item's name as shown in the inventory list. If there are spaces in the text, you can put it in quotes. Omitting the text will deselect all items.
  • \SELL <price> <buyer> will offer the item selected in your Inventory window for sale.
  • \SELL /cancel to cancel the offer.
  • \SHARE shows who you are sharing your experience with. \SHARE <PLAYER> gives them a fraction of your experience until you \UNSHARE them or \SHARE with too many others. \SHARE /LOCK <PLAYER> locks them into your shares until you \SHARE /UNLOCK or \UNSHARE them. \SHARE /UNLOCK /ALL unlocks all your shares.
  • \SHOW will show the item selected in your Inventory window to people nearby. \SHOW <name> will show it to one person (though everyone will see).
  • \SKY to gaze skyward.
  • \SLEEP indicates to the other players that you are away from your keyboard.
  • \SPEAK <LANGUAGE> causes all things you say to be in the specified language. \PONDER, \THINK, \THINKTO, \WHISPER, and \YELL are not affected. The COMMON language is understood by everyone.
  • \SWEAR Try it.
  • \THANK <PERSON> shows your gratitude by anonymously giving them good karma. \THANK <PERSON> <REASON> gives it to them non-anonymously along with a reason.
  • \THINK If you are wearing a sunstone then \THINK <MESSAGE> will be heard by everyone also wearing a sunstone.
  • \THINKTO If you are wearing a sunstone then \THINKTO <PLAYER> <MESSAGE> will place your message in their mind.
  • \TUNE A properly trained mystic can /tune your sunstone.
  • \UNEQUIP <ITEM> will store the item in your backpack. It will no longer be ready for use. \UNEQUIP LEFT|RIGHT will empty that hand. See also \EQUIP.
  • \UNSHARE will stop you from sharing your experience, except locked shares. \UNSHARE <PLAYER> will stop you from sharing with them.
  • \USE will activate the item in your right hand if it has a special use. Many items give help with \USE ?
  • \USEITEM <ITEM> <TEXT> will use the item if it is equipped. Many items give help with \USEITEM <ITEM> ?
  • \WHISPER <MESSAGE> only the people close to you will hear it.
  • \WHO shows the players currently in the game. \WHO <PERSON> starts the list with that person.
  • \WHOCLAN
  • \YELL <MESSAGE> will be heard for a good distance.
Using a sewing kit:
  • \USEITEM "sewing kit": determine repair costs for the clothing item selected in your Inventory
  • \USEITEM "sewing kit" <player>: determine repair costs for someone else's current outfit
  • \USEITEM "sewing kit" /mend: mend the clothing item selected in your Inventory
* Direction is optional and only applies to stand, walkright, walkleft, and attack. It should be one of the following:
  • east
  • southeast
  • south
  • southwest
  • west
  • northwest
  • north
  • northeast
  • e
  • se
  • s
  • sw
  • w
  • nw
  • n
  • ne
Macros can be fired via AppleScript*:
tell application "Clan Lord v115"
     Do Script "ss"
end tell
This script will cause the macro ss to fire in the client.

*Courtesy of Bones