<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.easyuo.com/openeuo/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ximan</id>
		<title>OpenEUO - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.easyuo.com/openeuo/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ximan"/>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php/Special:Contributions/Ximan"/>
		<updated>2026-05-13T18:45:44Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Macro&amp;diff=5397</id>
		<title>UO.Macro</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Macro&amp;diff=5397"/>
				<updated>2013-08-18T18:51:50Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Added note about closing imbuing gump with UO.Macro(31)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  UO.Macro(param1,param2[,str])&lt;br /&gt;
Causes the client to use one of the pre-defined, internal UO client macros. &lt;br /&gt;
&lt;br /&gt;
=== Event Macro Table ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
==== Speech ====&lt;br /&gt;
 |1 || 0 || msg text|| Say&lt;br /&gt;
 |-&lt;br /&gt;
 |2 || 0 || msg text || Emote  &lt;br /&gt;
 |-&lt;br /&gt;
 |3 || 0 || msg text || Whisper&lt;br /&gt;
 |-&lt;br /&gt;
 |4 || 4 || msg text || Yell&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.ExMsg]]&lt;br /&gt;
&lt;br /&gt;
[[UO.Msg]]&lt;br /&gt;
&lt;br /&gt;
==== Movement ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
|-&lt;br /&gt;
 |5 || 0 || || Walk North West&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 1 || || Walk North&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 2 || || Walk North East&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 3 || || Walk East&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 4 || || Walk South East&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 5 || || Walk South&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 6 || || Walk South West&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 7 || || Walk West&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.Move]]&lt;br /&gt;
&lt;br /&gt;
[[UO.Pathfind]]&lt;br /&gt;
&lt;br /&gt;
==== War/Peace &amp;amp; Paste ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |6 || 0 || || Toggle War/Peace&lt;br /&gt;
 |-&lt;br /&gt;
 |7 || 0 || || Paste&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.EnemyID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.EnemyHits]]&lt;br /&gt;
&lt;br /&gt;
[[UO.StatBar]]&lt;br /&gt;
&lt;br /&gt;
==== Gump Control ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 0 || || Open Configuration&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 1 || || Open Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 2 || || Open Status&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 3 || || Open Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 4 || || Open Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 5 || || Open Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 6 || || Open Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 7 || || Open Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 8 || || Open Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 9 || || Open Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 10 || || Open Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 11 || || Open Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 12 || || Open Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 13 || || Open Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 14 || || Open Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 15 || || Open Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 16 || || Open Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 17 || || Open Guild&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 18 || || Open Spellweaving SpellBook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 19 || || Open Questlog&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 0 || || Close Configuration&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 1 || || Close Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 2 || || Close Status&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 3 || || Close Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 4 || || Close Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 5 || || Close Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 6 || || Close Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 7 || || Close Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 8 || || Close Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 9 || || Close Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 10 || || Close Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 11 || || Close Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 12 || || Close Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 13 || || Close Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 14 || || Close Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 15 || || Close Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 16 || || Close Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 17 || || Close Guild&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 1 || || Minimize Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 2 || || Minimize Status&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 3 || || Minimize Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 4 || || Minimize Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 5 || || Minimize Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 6 || || Minimize Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 7 || || Minimize Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 8 || || Minimize Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 9 || || Minimize Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 10 || || Minimize Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 11 || || Minimize Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 12 || || Minimize Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 13 || || Minimize Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 14 || || Minimize Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 15 || || Minimize Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 16 || || Minimize Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 17 || || Minimize Guild&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 1 || || Maximize Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 2 || || Maximize Status&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 3 || || Maximize Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 4 || || Maximize Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 5 || || Maximize Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 6 || || Maximize Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 7 || || Maximize Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 8 || || Maximize Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 9 || || Maximize Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 10 || || Maximize Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 11 || || Maximize Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 12 || || Maximize Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 13 || || Maximize Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 14 || || Maximize Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 15 || || Maximize Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 16 || || Maximize Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 17 || || Maximize Guild&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.ContTop]]&lt;br /&gt;
&lt;br /&gt;
[[UO.StatBar]]&lt;br /&gt;
&lt;br /&gt;
[[UO.GetCont]]&lt;br /&gt;
&lt;br /&gt;
==== Open Door ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |12 || 0 || || Opendoor&lt;br /&gt;
|}&lt;br /&gt;
==== Use Skills ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 1 || || Use Skill Anatomy&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 2 || || Use Skill Animal Lore&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 35 || || Use Skill Animal Taming&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 4 || || Use Skill Arms Lore&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 6 || || Use Skill Begging&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 12 || || Use Skill Cartography&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 14 || || Use Skill Detecting Hidden&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 15 || || Use Skill Discordance&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 16 || || Use Skill Evaluating Intelligence&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 19 || || Use Skill Forensic Evaluation&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 21 || || Use Skill Hiding&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 56 || || Use Skill Imbuing&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 23 || || Use Skill Inscription&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 3 || || Use Skill Item Identification&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 46 || || Use Skill Meditation&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 9 || || Use Skill Peacemaking&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 30 || || Use Skill Poisoning&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 22 || || Use Skill Provocation&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 48 || || Use Skill Remove Trap&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 32 || || Use Skill Spirit Speak&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 33 || || Use Skill Stealing&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 47 || || Use Skill Stealth&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 36 || || Use Skill Taste Identification&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 38 || || Use Skill Tracking&lt;br /&gt;
 |-&lt;br /&gt;
 |14 || 0 || || Last Skill&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Magery ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 0 || || Cast Spell Clumsy&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 1 || || Cast Spell Create Food&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 2 || || Cast Spell Feeblemind&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 3 || || Cast Spell Heal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 4 || || Cast Spell Magic Arrow&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 5 || || Cast Spell Night Sight&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 6 || || Cast Spell Reactive Armor&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 7 || || Cast Spell Weaken&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 8 || || Cast Spell Agility&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 9 || || Cast Spell Cunning&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 10 || || Cast Spell Cure&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 11 || || Cast Spell Harm&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 12 || || Cast Spell Magic Trap&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 13 || || Cast Spell Magic Untrap&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 14 || || Cast Spell Protection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 15 || || Cast Spell Strength&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 16 || || Cast Spell Bless&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 17 || || Cast Spell Fireball&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 18 || || Cast Spell Magic Lock&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 19 || || Cast Spell Poison&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 20 || || Cast Spell Telekinesis&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 21 || || Cast Spell Teleport&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 22 || || Cast Spell Unlock&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 23 || || Cast Spell Wall Of Stone&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 24 || || Cast Spell Arch Cure&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 25 || || Cast Spell Arch Protection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 26 || || Cast Spell Curse&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 27 || || Cast Spell Fire Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 28 || || Cast Spell Greater Heal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 29 || || Cast Spell Lightning&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 30 || || Cast Spell Mana Drain&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 31 || || Cast Spell Recall&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 32 || || Cast Spell Blade Spirits&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 33 || || Cast Spell Dispel Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 34 || || Cast Spell Incognito&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 35 || || Cast Spell Magic Reflection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 36 || || Cast Spell Mind Blast&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 37 || || Cast Spell Paralyze&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 38 || || Cast Spell Poison Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 39 || || Cast Spell Summon Creature&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 40 || || Cast Spell Dispel&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 41 || || Cast Spell Energy Bolt&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 42 || || Cast Spell Explosion&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 43 || || Cast Spell Invisibility&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 44 || || Cast Spell Mark&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 45 || || Cast Spell Mass Curse&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 46 || || Cast Spell Paralyze Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 47 || || Cast Spell Reveal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 48 || || Cast Spell Chain Lightning&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 49 || || Cast Spell Energy Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 50 || || Cast Spell Flame Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 51 || || Cast Spell Gate Travel&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 52 || || Cast Spell Mana Vampire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 53 || || Cast Spell Mass Dispel&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 54 || || Cast Spell Meteor Swarm&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 55 || || Cast Spell Polymorph&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 56 || || Cast Spell Earthquake&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 57 || || Cast Spell Energy Vortex&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 58 || || Cast Spell Resurrection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 59 || || Cast Spell Air Elemental&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 60 || || Cast Spell Summon Daemon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 61 || || Cast Spell Earth Elemental&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 62 || || Cast Spell Fire Elemental&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 63 || || Cast Spell Water Elemental&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Necromancy ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 101 || || Cast Spell [N] Animate Dead&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 102 || || Cast Spell [N] Blood Oath&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 103 || || Cast Spell [N] Corpse Skin&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 104 || || Cast Spell [N] Curse Weapon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 105 || || Cast Spell [N] Evil Omen&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 106 || || Cast Spell [N] Horrific Beast&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 107 || || Cast Spell [N] Lich Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 108 || || Cast Spell [N] Mind Rot&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 109 || || Cast Spell [N] Pain Spike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 110 || || Cast Spell [N] Poison Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 111 || || Cast Spell [N] Strangle&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 112 || || Cast Spell [N] Summon Familiar&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 113 || || Cast Spell [N] Vampiric Embrace&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 114 || || Cast Spell [N] Vengeful Spirit&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 115 || || Cast Spell [N] Wither&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 116 || || Cast Spell [N] Wraith Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 117 || || Cast Spell [N] Exorcism&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Bushido ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 145 || || Cast Spell [B] Honorable Execution&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 146 || || Cast Spell [B] Confidence&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 147 || || Cast Spell [B] Evasion&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 148 || || Cast Spell [B] Counter Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 149 || || Cast Spell [B] Lightning Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 150 || || Cast Spell [B] Momentum Strike&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Chivalry ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 201 || || Cast Spell [C] Cleanse By Fire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 202 || || Cast Spell [C] Close Wounds&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 203 || || Cast Spell [C] Consecrate Weapon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 204 || || Cast Spell [C] Dispel Evil&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 205 || || Cast Spell [C] Divine Fury&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 206 || || Cast Spell [C] Enemy Of One&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 207 || || Cast Spell [C] Holy Light&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 208 || || Cast Spell [C] Noble Sacrifice&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 209 || || Cast Spell [C] Remove Curse&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 210 || || Cast Spell [C] Sacred Journey&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ninja Moves ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 245 || || Cast Spell [NI] Focus Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 246 || || Cast Spell [NI] Death Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 247 || || Cast Spell [NI] Animal Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 248 || || Cast Spell [NI] Ki Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 249 || || Cast Spell [NI] Surprise Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 250 || || Cast Spell [NI] Backstab&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 251 || || Cast Spell [NI] Shadowjump&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 252 || || Cast Spell [NI] Mirror Image &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Spellweaving ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 601 || || Cast Spell [SW] Arcane Circle&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 602 || || Cast Spell [SW] Gift of Renewal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 603 || || Cast Spell [SW] Immolating Weapon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 604 || || Cast Spell [SW] Attunement&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 605 || || Cast Spell [SW] Thunderstorm&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 606 || || Cast Spell [SW] Nature's Fury&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 607 || || Cast Spell [SW] Summon Fey&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 608 || || Cast Spell [SW] Summon Fiend&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 609 || || Cast Spell [SW] Reaper Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 610 || || Cast Spell [SW] Wildfire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 611 || || Cast Spell [SW] Essence of Wind&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 612 || || Cast Spell [SW] Dryad Allure&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 613 || || Cast Spell [SW] Ethereal Voyage&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 614 || || Cast Spell [SW] Word of Death&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 615 || || Cast Spell [SW] Gift of Life&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 616 || || Cast Spell [SW] Arcane Empowerment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Mysticism ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 678 || || Cast Spell [MY] Nether Bolt &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 679 || || Cast Spell [MY] Healing Stone &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 680 || || Cast Spell [MY] Purge Magic &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 681 || || Cast Spell [MY] Enchant &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 682 || || Cast Spell [MY] Sleep &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 683 || || Cast Spell [MY] Eagle Strike &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 684 || || Cast Spell [MY] Animated Weapon &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 685 || || Cast Spell [MY] Stone Form &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 686 || || Cast Spell [MY] Spell Trigger &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 687 || || Cast Spell [MY] Mass Sleep &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 688 || || Cast Spell [MY] Cleansing Winds &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 689 || || Cast Spell [MY] Bombard &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 690 || || Cast Spell [MY] Spell Plague &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 691 || || Cast Spell [MY] Hail Storm &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 692 || || Cast Spell [MY] Nether Cyclone &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 693 || || Cast Spell [MY] Rising Colossus&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Bard Mastery ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 701 || || Cast Spell [BM] Inspire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 702 || || Cast Spell [BM] Invigorate&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 703 || || Cast Spell [BM] Resilience&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 704 || || Cast Spell [BM] Preservance&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 705 || || Cast Spell [BM] Tribulation&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 706 || || Cast Spell [BM] Despair&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Miscellaneous ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |16 || 0 || || Last Spell&lt;br /&gt;
 |-&lt;br /&gt;
 |17 || 0 || || Last Object&lt;br /&gt;
 |-&lt;br /&gt;
 |18 || 0 || || Bow&lt;br /&gt;
 |-&lt;br /&gt;
 |19 || 0 || || Salute  &lt;br /&gt;
 |-&lt;br /&gt;
 |20 || 0 || || Quit Game&lt;br /&gt;
 |-&lt;br /&gt;
 |21 || 0 || || All Names&lt;br /&gt;
 |-&lt;br /&gt;
 |22 || 0 || || Last Target&lt;br /&gt;
 |-&lt;br /&gt;
 |23 || 0 || || Target Self&lt;br /&gt;
 |-&lt;br /&gt;
 |24 || 1 || || Arm/Disarm Left&lt;br /&gt;
 |-&lt;br /&gt;
 |24 || 2 || || Arm/Disarm Right&lt;br /&gt;
 |-&lt;br /&gt;
 |25 || 0 || || Wait For Target&lt;br /&gt;
 |-&lt;br /&gt;
 |26 || 0 || || Target Next&lt;br /&gt;
 |-&lt;br /&gt;
 |27 || 0 || || Attack Last&lt;br /&gt;
 |-&lt;br /&gt;
 |28 || 0 || ^ || Delay&lt;br /&gt;
 |-&lt;br /&gt;
 |29 || 0 || || Circletrans&lt;br /&gt;
 |-&lt;br /&gt;
 |31 || 0 || || Close Gumps*  &lt;br /&gt;
 |-&lt;br /&gt;
 |32 || 0 || || Always Run&lt;br /&gt;
 |-&lt;br /&gt;
 |33 || 0 || || Save Desktop&lt;br /&gt;
 |-&lt;br /&gt;
 |34 || 0 || || Kill Gump Open&lt;br /&gt;
 |-&lt;br /&gt;
 |35 || 0 || || Primary Ability&lt;br /&gt;
 |-&lt;br /&gt;
 |36 || 0 || || Secondary Ability&lt;br /&gt;
 |-&lt;br /&gt;
 |37 || 0 || || Equip Last Weapon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Closing the imbuing gump via UO.Macro(31) may result in corrupted client state.&lt;br /&gt;
&lt;br /&gt;
[[UO.LObjectID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LTargetID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LSkill]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LSpell]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LHandID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.RHandID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.TargCurs]]&lt;br /&gt;
&lt;br /&gt;
[[UO.Equip]]&lt;br /&gt;
&lt;br /&gt;
==== Client's Range Control ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |38 || 0 || ^ ||Set Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |39 || 0 || ^ || Modify Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |40 || 0 || || Increase Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |41 || 0 || || Decrease Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |42 || 0 || || Maximum Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |43 || 0 || || Minimum Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |44 || 0 || || Default Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |45 || 0 || || Update Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |46 || 0 || || Enable Update Range Color&lt;br /&gt;
 |-&lt;br /&gt;
 |47 || 0 || || Disable Update Range Color&lt;br /&gt;
 |-&lt;br /&gt;
 |48 || 0 || || Toggle Update Range Color&lt;br /&gt;
|}&lt;br /&gt;
==== Invoke Virtues ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 1 || || Invoke Honor Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 2 || || Invoke Sacrifice Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 3 || || Invoke Valor Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 4 || || Invoke Compassion Virtue (Does Nothing)&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 5 || || Invoke *1 Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 6 || || Invoke *1 Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 7 || || Invoke Justice Protection&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 8 || || Invoke *1 Virtue&lt;br /&gt;
|}&lt;br /&gt;
*1 - These are Humility Honesty and Spirituality. At present time they do nothing. Which is which is as yet unknown.&lt;br /&gt;
&lt;br /&gt;
==== Targeting System ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |50 || 1-5* || || select next&lt;br /&gt;
 |-&lt;br /&gt;
 |51 || 1-5* || || select previous &lt;br /&gt;
 |-&lt;br /&gt;
 |52 || 1-5* || || select nearest&lt;br /&gt;
 |-&lt;br /&gt;
 |53 || || || attack selected &lt;br /&gt;
 |-&lt;br /&gt;
 |54 || || || use selected &lt;br /&gt;
 |-&lt;br /&gt;
 |55 || || || current target &lt;br /&gt;
 |-&lt;br /&gt;
 |56 || || || targeting system on/off &lt;br /&gt;
 |-&lt;br /&gt;
 |57 || || || toggle buff window (open/close)&lt;br /&gt;
 |-&lt;br /&gt;
 |58 || || || bandage self &lt;br /&gt;
 |-&lt;br /&gt;
 |59 || || || bandage target &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Sets #ltargetid , Opens and Sets Target_status_gump to current targets healthbar&lt;br /&gt;
 1 = hostile   2 = Party Members &lt;br /&gt;
 3 = Followers 4 = Objects  &lt;br /&gt;
 5 = Mobiles&lt;br /&gt;
&lt;br /&gt;
[[UO.LTargetID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.EnemyID]]&lt;br /&gt;
&lt;br /&gt;
[http://www.easyuo.com/forum/viewtopic.php?p=378638#378638 Mnemonic Macros by WarLocke]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=TControl.Color&amp;diff=5396</id>
		<title>TControl.Color</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=TControl.Color&amp;diff=5396"/>
				<updated>2013-02-25T15:31:24Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: added colors from gui/const.lua and color generating function&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''RW Color : n'''&lt;br /&gt;
 &lt;br /&gt;
 Specifies the background color of the control.&lt;br /&gt;
&lt;br /&gt;
Use Color to read or change the background color of the control.  Colors are specified by number, the underlying 32-bit BGR color format is the same as for the Delphi TColor type, with some special values assigned when the most significant byte value is 0xFF:&lt;br /&gt;
&lt;br /&gt;
 local function H(s)&lt;br /&gt;
  return tonumber(s,16)&lt;br /&gt;
 end&lt;br /&gt;
 local colors = {&lt;br /&gt;
 clBlack                   = H(&amp;quot;00000000&amp;quot;),&lt;br /&gt;
 clMaroon                  = H(&amp;quot;00000080&amp;quot;),&lt;br /&gt;
 clGreen                   = H(&amp;quot;00008000&amp;quot;),&lt;br /&gt;
 clOlive                   = H(&amp;quot;00008080&amp;quot;),&lt;br /&gt;
 clNavy                    = H(&amp;quot;00800000&amp;quot;),&lt;br /&gt;
 clPurple                  = H(&amp;quot;00800080&amp;quot;),&lt;br /&gt;
 clTeal                    = H(&amp;quot;00808000&amp;quot;),&lt;br /&gt;
 clGray                    = H(&amp;quot;00808080&amp;quot;),&lt;br /&gt;
 clSilver                  = H(&amp;quot;00C0C0C0&amp;quot;),&lt;br /&gt;
 clRed                     = H(&amp;quot;000000FF&amp;quot;),&lt;br /&gt;
 clLime                    = H(&amp;quot;0000FF00&amp;quot;),&lt;br /&gt;
 clYellow                  = H(&amp;quot;0000FFFF&amp;quot;),&lt;br /&gt;
 clBlue                    = H(&amp;quot;00FF0000&amp;quot;),&lt;br /&gt;
 clFuchsia                 = H(&amp;quot;00FF00FF&amp;quot;),&lt;br /&gt;
 clAqua                    = H(&amp;quot;00FFFF00&amp;quot;),&lt;br /&gt;
 clWhite                   = H(&amp;quot;00FFFFFF&amp;quot;),&lt;br /&gt;
 clMoneyGreen              = H(&amp;quot;00C0DCC0&amp;quot;),&lt;br /&gt;
 clSkyBlue                 = H(&amp;quot;00F0CAA6&amp;quot;),&lt;br /&gt;
 clCream                   = H(&amp;quot;00F0FBFF&amp;quot;),&lt;br /&gt;
 clMedGray                 = H(&amp;quot;00A4A0A0&amp;quot;),&lt;br /&gt;
 clNone                    = H(&amp;quot;1FFFFFFF&amp;quot;),&lt;br /&gt;
 clDefault                 = H(&amp;quot;20000000&amp;quot;),&lt;br /&gt;
 clActiveBorder            = H(&amp;quot;FF00000A&amp;quot;),&lt;br /&gt;
 clActiveCaption           = H(&amp;quot;FF000002&amp;quot;),&lt;br /&gt;
 clAppWorkSpace            = H(&amp;quot;FF00000C&amp;quot;),&lt;br /&gt;
 clBackground              = H(&amp;quot;FF000001&amp;quot;),&lt;br /&gt;
 clBtnFace                 = H(&amp;quot;FF00000F&amp;quot;),&lt;br /&gt;
 clBtnHighlight            = H(&amp;quot;FF000014&amp;quot;),&lt;br /&gt;
 clBtnShadow               = H(&amp;quot;FF000010&amp;quot;),&lt;br /&gt;
 clBtnText                 = H(&amp;quot;FF000012&amp;quot;),&lt;br /&gt;
 clCaptionText             = H(&amp;quot;FF000009&amp;quot;),&lt;br /&gt;
 clGradientActiveCaption   = H(&amp;quot;FF00001B&amp;quot;),&lt;br /&gt;
 clGradientInactiveCaption = H(&amp;quot;FF00001C&amp;quot;),&lt;br /&gt;
 clGrayText                = H(&amp;quot;FF000011&amp;quot;),&lt;br /&gt;
 clHighlight               = H(&amp;quot;FF00000D&amp;quot;),&lt;br /&gt;
 clHighlightText           = H(&amp;quot;FF00000E&amp;quot;),&lt;br /&gt;
 clHotLight                = H(&amp;quot;FF00001A&amp;quot;),&lt;br /&gt;
 clInactiveBorder          = H(&amp;quot;FF00000B&amp;quot;),&lt;br /&gt;
 clInactiveCaption         = H(&amp;quot;FF000003&amp;quot;),&lt;br /&gt;
 clInactiveCaptionText     = H(&amp;quot;FF000013&amp;quot;),&lt;br /&gt;
 clInfoBk                  = H(&amp;quot;FF000018&amp;quot;),&lt;br /&gt;
 clInfoText                = H(&amp;quot;FF000017&amp;quot;),&lt;br /&gt;
 clMenu                    = H(&amp;quot;FF000004&amp;quot;),&lt;br /&gt;
 clMenuBar                 = H(&amp;quot;FF00001E&amp;quot;),&lt;br /&gt;
 clMenuHighlight           = H(&amp;quot;FF00001D&amp;quot;),&lt;br /&gt;
 clMenuText                = H(&amp;quot;FF000007&amp;quot;),&lt;br /&gt;
 clScrollBar               = H(&amp;quot;FF000000&amp;quot;),&lt;br /&gt;
 cl3DDkShadow              = H(&amp;quot;FF000015&amp;quot;),&lt;br /&gt;
 cl3DLight                 = H(&amp;quot;FF000016&amp;quot;),&lt;br /&gt;
 clWindow                  = H(&amp;quot;FF000005&amp;quot;),&lt;br /&gt;
 clWindowFrame             = H(&amp;quot;FF000006&amp;quot;),&lt;br /&gt;
 clWindowText              = H(&amp;quot;FF000008&amp;quot;),&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You can also build an arbitrary color from individual red,green and blue intensities with a function like the following:&lt;br /&gt;
&lt;br /&gt;
 -- red, green, and blue intensity values are integers from range 0-255&lt;br /&gt;
 function colorRBG(red, green, blue)&lt;br /&gt;
  return red + Bit.Shl(green, 8) + Bit.Shl(blue, 16)&lt;br /&gt;
 end&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=UO.GetJournal&amp;diff=5395</id>
		<title>UO.GetJournal</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=UO.GetJournal&amp;diff=5395"/>
				<updated>2012-12-07T17:11:18Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: added stuby code ref&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; local sLine,nCol = UO.GetJournal(nIndex)&lt;br /&gt;
&lt;br /&gt;
Used to read the content fetched by [[UO.ScanJournal]]. nIndex is what line of the journal you wish to get, 0 is the most recent line with 1 being the next most recent and so on. sLine will hold the line of text. nCol will be the color of the text.&lt;br /&gt;
&lt;br /&gt;
A simple block that will print the journal line and color from 0 to top of the journal.&lt;br /&gt;
&lt;br /&gt;
   local nNewRef,nCnt= UO.ScanJournal(0)&lt;br /&gt;
   for  i=0,nCnt  do&lt;br /&gt;
   local sLine,nCol = UO.GetJournal(i)&lt;br /&gt;
   print(sLine)&lt;br /&gt;
   print(nCol)&lt;br /&gt;
   end&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
See Kal In Ex's [http://www.easyuo.com/forum/viewtopic.php?p=367537#367537 Journal Scanning Routine]. See Stuby085's [http://www.easyuo.com/forum/viewtopic.php?p=376150#376150 Journal Class].&lt;br /&gt;
&lt;br /&gt;
[[UO.SysMsg]]&lt;br /&gt;
&lt;br /&gt;
[[UO.ScanJournal]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Popup&amp;diff=5391</id>
		<title>UO.Popup</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Popup&amp;diff=5391"/>
				<updated>2012-11-27T13:22:02Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: changed to reflect current behavior&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; UO.Popup(nid[,nx,ny])&lt;br /&gt;
UO.Popup command opens the context menu of an item/npc with id nid at location nx/ny.  If the optional location is not specified then the popup will open at screen position 0/0.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
[[UO.RenamePet]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Equip&amp;diff=5386</id>
		<title>UO.Equip</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Equip&amp;diff=5386"/>
				<updated>2012-11-08T17:39:09Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  UO.Equip(nid1[,nid2[,...]])&lt;br /&gt;
Instantly equips all of the given object id's.  &amp;lt;b&amp;gt;Only available on EA/Mythic shards.&amp;lt;/b&amp;gt;  Exclusive to OpenEUO.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note that this does not work with strings. If you want to send multiple IDs to this you may call with a table instead of a string:&lt;br /&gt;
&amp;lt;code&amp;gt;...&amp;lt;br&amp;gt;Create a table in nIDs using table commands&amp;lt;br&amp;gt;...&amp;lt;br&amp;gt;&lt;br /&gt;
UO.Equip(unpack(nIDs))&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an example by Kal In Ex using snicker7's FluentUO library to populate an table with the item id's of currently worn items:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    dofile(&amp;quot;.\\scripts\\FluentUO\\FluentUO.lua&amp;quot;)&lt;br /&gt;
    local scanSuit = World().Equipped().Items&lt;br /&gt;
    local suitIDs = {}&lt;br /&gt;
    for d=1,#scanSuit do&lt;br /&gt;
        table.insert(suitIDs,scanSuit[d].ID)&lt;br /&gt;
    end&lt;br /&gt;
    -- later&lt;br /&gt;
    UO.Equip(unpack(suitIDs))&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[UO.DropPD]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LHandID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.RHandID]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Equip&amp;diff=5385</id>
		<title>UO.Equip</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Equip&amp;diff=5385"/>
				<updated>2012-11-08T17:36:43Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Add Kal's example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  UO.Equip(nid1[,nid2[,...]])&lt;br /&gt;
Instantly equips all of the given object id's.  &amp;lt;b&amp;gt;Only available on EA/Mythic shards.&amp;lt;/b&amp;gt;  Exclusive to OpenEUO.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note that this does not work with strings. If you want to send multiple IDs to this you may call with a table instead of a string:&lt;br /&gt;
&amp;lt;code&amp;gt;...&amp;lt;br&amp;gt;Create a table in nIDs using table commands&amp;lt;br&amp;gt;...&amp;lt;br&amp;gt;&lt;br /&gt;
UO.Equip(unpack(nIDs))&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an example by Kal In Ex using snicker7's FluentUO library to populate an table with the item id's of currently worn items:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    dofile(&amp;quot;.\\scripts\\FluentUO\\FluentUO.lua&amp;quot;)&lt;br /&gt;
    local scanSuit = World().Equipped().Items&lt;br /&gt;
    pause()  &lt;br /&gt;
    local suitIDs = {}&lt;br /&gt;
    for d=1,#scanSuit do&lt;br /&gt;
        table.insert(suitIDs,scanSuit[d].ID)&lt;br /&gt;
    end&lt;br /&gt;
    -- later&lt;br /&gt;
    UO.Equip(unpack(suitIDs))&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[UO.DropPD]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LHandID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.RHandID]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Macro&amp;diff=5382</id>
		<title>UO.Macro</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Macro&amp;diff=5382"/>
				<updated>2012-10-29T11:04:51Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* Use Skills */  added imbuing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  UO.Macro(param1,param2[,str])&lt;br /&gt;
Causes the client to use one of the pre-defined, internal UO client macros. &lt;br /&gt;
&lt;br /&gt;
=== Event Macro Table ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
==== Speech ====&lt;br /&gt;
 |1 || 0 || msg text|| Say&lt;br /&gt;
 |-&lt;br /&gt;
 |2 || 0 || msg text || Emote  &lt;br /&gt;
 |-&lt;br /&gt;
 |3 || 0 || msg text || Whisper&lt;br /&gt;
 |-&lt;br /&gt;
 |4 || 4 || msg text || Yell&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.ExMsg]]&lt;br /&gt;
&lt;br /&gt;
[[UO.Msg]]&lt;br /&gt;
&lt;br /&gt;
==== Movement ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
|-&lt;br /&gt;
 |5 || 0 || || Walk North West&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 1 || || Walk North&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 2 || || Walk North East&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 3 || || Walk East&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 4 || || Walk South East&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 5 || || Walk South&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 6 || || Walk South West&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 7 || || Walk West&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.Move]]&lt;br /&gt;
&lt;br /&gt;
[[UO.Pathfind]]&lt;br /&gt;
&lt;br /&gt;
==== War/Peace &amp;amp; Paste ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |6 || 0 || || Toggle War/Peace&lt;br /&gt;
 |-&lt;br /&gt;
 |7 || 0 || || Paste&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.EnemyID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.EnemyHits]]&lt;br /&gt;
&lt;br /&gt;
[[UO.StatBar]]&lt;br /&gt;
&lt;br /&gt;
==== Gump Control ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 0 || || Open Configuration&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 1 || || Open Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 2 || || Open Status&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 3 || || Open Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 4 || || Open Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 5 || || Open Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 6 || || Open Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 7 || || Open Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 8 || || Open Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 9 || || Open Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 10 || || Open Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 11 || || Open Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 12 || || Open Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 13 || || Open Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 14 || || Open Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 15 || || Open Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 16 || || Open Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 17 || || Open Guild&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 18 || || Open Spellweaving SpellBook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 19 || || Open Questlog&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 0 || || Close Configuration&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 1 || || Close Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 2 || || Close Status&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 3 || || Close Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 4 || || Close Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 5 || || Close Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 6 || || Close Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 7 || || Close Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 8 || || Close Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 9 || || Close Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 10 || || Close Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 11 || || Close Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 12 || || Close Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 13 || || Close Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 14 || || Close Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 15 || || Close Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 16 || || Close Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 17 || || Close Guild&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 1 || || Minimize Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 2 || || Minimize Status&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 3 || || Minimize Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 4 || || Minimize Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 5 || || Minimize Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 6 || || Minimize Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 7 || || Minimize Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 8 || || Minimize Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 9 || || Minimize Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 10 || || Minimize Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 11 || || Minimize Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 12 || || Minimize Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 13 || || Minimize Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 14 || || Minimize Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 15 || || Minimize Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 16 || || Minimize Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 17 || || Minimize Guild&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 1 || || Maximize Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 2 || || Maximize Status&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 3 || || Maximize Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 4 || || Maximize Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 5 || || Maximize Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 6 || || Maximize Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 7 || || Maximize Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 8 || || Maximize Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 9 || || Maximize Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 10 || || Maximize Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 11 || || Maximize Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 12 || || Maximize Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 13 || || Maximize Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 14 || || Maximize Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 15 || || Maximize Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 16 || || Maximize Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 17 || || Maximize Guild&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.ContTop]]&lt;br /&gt;
&lt;br /&gt;
[[UO.StatBar]]&lt;br /&gt;
&lt;br /&gt;
[[UO.GetCont]]&lt;br /&gt;
&lt;br /&gt;
==== Open Door ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |12 || 0 || || Opendoor&lt;br /&gt;
|}&lt;br /&gt;
==== Use Skills ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 1 || || Use Skill Anatomy&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 2 || || Use Skill Animal Lore&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 35 || || Use Skill Animal Taming&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 4 || || Use Skill Arms Lore&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 6 || || Use Skill Begging&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 12 || || Use Skill Cartography&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 14 || || Use Skill Detecting Hidden&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 15 || || Use Skill Discordance&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 16 || || Use Skill Evaluating Intelligence&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 19 || || Use Skill Forensic Evaluation&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 21 || || Use Skill Hiding&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 56 || || Use Skill Imbuing&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 23 || || Use Skill Inscription&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 3 || || Use Skill Item Identification&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 46 || || Use Skill Meditation&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 9 || || Use Skill Peacemaking&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 30 || || Use Skill Poisoning&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 22 || || Use Skill Provocation&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 48 || || Use Skill Remove Trap&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 32 || || Use Skill Spirit Speak&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 33 || || Use Skill Stealing&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 47 || || Use Skill Stealth&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 36 || || Use Skill Taste Identification&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 38 || || Use Skill Tracking&lt;br /&gt;
 |-&lt;br /&gt;
 |14 || 0 || || Last Skill&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Magery ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 0 || || Cast Spell Clumsy&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 1 || || Cast Spell Create Food&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 2 || || Cast Spell Feeblemind&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 3 || || Cast Spell Heal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 4 || || Cast Spell Magic Arrow&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 5 || || Cast Spell Night Sight&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 6 || || Cast Spell Reactive Armor&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 7 || || Cast Spell Weaken&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 8 || || Cast Spell Agility&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 9 || || Cast Spell Cunning&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 10 || || Cast Spell Cure&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 11 || || Cast Spell Harm&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 12 || || Cast Spell Magic Trap&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 13 || || Cast Spell Magic Untrap&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 14 || || Cast Spell Protection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 15 || || Cast Spell Strength&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 16 || || Cast Spell Bless&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 17 || || Cast Spell Fireball&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 18 || || Cast Spell Magic Lock&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 19 || || Cast Spell Poison&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 20 || || Cast Spell Telekinesis&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 21 || || Cast Spell Teleport&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 22 || || Cast Spell Unlock&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 23 || || Cast Spell Wall Of Stone&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 24 || || Cast Spell Arch Cure&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 25 || || Cast Spell Arch Protection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 26 || || Cast Spell Curse&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 27 || || Cast Spell Fire Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 28 || || Cast Spell Greater Heal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 29 || || Cast Spell Lightning&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 30 || || Cast Spell Mana Drain&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 31 || || Cast Spell Recall&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 32 || || Cast Spell Blade Spirits&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 33 || || Cast Spell Dispel Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 34 || || Cast Spell Incognito&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 35 || || Cast Spell Magic Reflection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 36 || || Cast Spell Mind Blast&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 37 || || Cast Spell Paralyze&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 38 || || Cast Spell Poison Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 39 || || Cast Spell Summon Creature&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 40 || || Cast Spell Dispel&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 41 || || Cast Spell Energy Bolt&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 42 || || Cast Spell Explosion&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 43 || || Cast Spell Invisibility&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 44 || || Cast Spell Mark&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 45 || || Cast Spell Mass Curse&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 46 || || Cast Spell Paralyze Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 47 || || Cast Spell Reveal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 48 || || Cast Spell Chain Lightning&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 49 || || Cast Spell Energy Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 50 || || Cast Spell Flame Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 51 || || Cast Spell Gate Travel&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 52 || || Cast Spell Mana Vampire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 53 || || Cast Spell Mass Dispel&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 54 || || Cast Spell Meteor Swarm&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 55 || || Cast Spell Polymorph&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 56 || || Cast Spell Earthquake&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 57 || || Cast Spell Energy Vortex&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 58 || || Cast Spell Resurrection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 59 || || Cast Spell Air Elemental&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 60 || || Cast Spell Summon Daemon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 61 || || Cast Spell Earth Elemental&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 62 || || Cast Spell Fire Elemental&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 63 || || Cast Spell Water Elemental&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Necromancy ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 101 || || Cast Spell [N] Animate Dead&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 102 || || Cast Spell [N] Blood Oath&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 103 || || Cast Spell [N] Corpse Skin&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 104 || || Cast Spell [N] Curse Weapon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 105 || || Cast Spell [N] Evil Omen&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 106 || || Cast Spell [N] Horrific Beast&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 107 || || Cast Spell [N] Lich Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 108 || || Cast Spell [N] Mind Rot&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 109 || || Cast Spell [N] Pain Spike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 110 || || Cast Spell [N] Poison Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 111 || || Cast Spell [N] Strangle&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 112 || || Cast Spell [N] Summon Familiar&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 113 || || Cast Spell [N] Vampiric Embrace&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 114 || || Cast Spell [N] Vengeful Spirit&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 115 || || Cast Spell [N] Wither&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 116 || || Cast Spell [N] Wraith Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 117 || || Cast Spell [N] Exorcism&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Bushido ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 145 || || Cast Spell [B] Honorable Execution&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 146 || || Cast Spell [B] Confidence&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 147 || || Cast Spell [B] Evasion&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 148 || || Cast Spell [B] Counter Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 149 || || Cast Spell [B] Lightning Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 150 || || Cast Spell [B] Momentum Strike&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Chivalry ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 201 || || Cast Spell [C] Cleanse By Fire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 202 || || Cast Spell [C] Close Wounds&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 203 || || Cast Spell [C] Consecrate Weapon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 204 || || Cast Spell [C] Dispel Evil&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 205 || || Cast Spell [C] Divine Fury&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 206 || || Cast Spell [C] Enemy Of One&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 207 || || Cast Spell [C] Holy Light&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 208 || || Cast Spell [C] Noble Sacrifice&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 209 || || Cast Spell [C] Remove Curse&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 210 || || Cast Spell [C] Sacred Journey&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ninja Moves ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 245 || || Cast Spell [NI] Focus Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 246 || || Cast Spell [NI] Death Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 247 || || Cast Spell [NI] Animal Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 248 || || Cast Spell [NI] Ki Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 249 || || Cast Spell [NI] Surprise Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 250 || || Cast Spell [NI] Backstab&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 251 || || Cast Spell [NI] Shadowjump&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 252 || || Cast Spell [NI] Mirror Image &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Spellweaving ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 601 || || Cast Spell [SW] Arcane Circle&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 602 || || Cast Spell [SW] Gift of Renewal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 603 || || Cast Spell [SW] Immolating Weapon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 604 || || Cast Spell [SW] Attunement&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 605 || || Cast Spell [SW] Thunderstorm&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 606 || || Cast Spell [SW] Nature's Fury&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 607 || || Cast Spell [SW] Summon Fey&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 608 || || Cast Spell [SW] Summon Fiend&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 609 || || Cast Spell [SW] Reaper Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 610 || || Cast Spell [SW] Wildfire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 611 || || Cast Spell [SW] Essence of Wind&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 612 || || Cast Spell [SW] Dryad Allure&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 613 || || Cast Spell [SW] Ethereal Voyage&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 614 || || Cast Spell [SW] Word of Death&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 615 || || Cast Spell [SW] Gift of Life&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 616 || || Cast Spell [SW] Arcane Empowerment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Mysticism ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 678 || || Cast Spell [MY] Nether Bolt &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 679 || || Cast Spell [MY] Healing Stone &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 680 || || Cast Spell [MY] Purge Magic &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 681 || || Cast Spell [MY] Enchant &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 682 || || Cast Spell [MY] Sleep &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 683 || || Cast Spell [MY] Eagle Strike &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 684 || || Cast Spell [MY] Animated Weapon &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 685 || || Cast Spell [MY] Stone Form &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 686 || || Cast Spell [MY] Spell Trigger &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 687 || || Cast Spell [MY] Mass Sleep &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 688 || || Cast Spell [MY] Cleansing Winds &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 689 || || Cast Spell [MY] Bombard &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 690 || || Cast Spell [MY] Spell Plague &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 691 || || Cast Spell [MY] Hail Storm &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 692 || || Cast Spell [MY] Nether Cyclone &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 693 || || Cast Spell [MY] Rising Colossus&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Bard Mastery ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 701 || || Cast Spell [BM] Inspire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 702 || || Cast Spell [BM] Invigorate&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 703 || || Cast Spell [BM] Resilience&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 704 || || Cast Spell [BM] Preservance&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 705 || || Cast Spell [BM] Tribulation&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 706 || || Cast Spell [BM] Despair&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Miscellaneous ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |16 || 0 || || Last Spell&lt;br /&gt;
 |-&lt;br /&gt;
 |17 || 0 || || Last Object&lt;br /&gt;
 |-&lt;br /&gt;
 |18 || 0 || || Bow&lt;br /&gt;
 |-&lt;br /&gt;
 |19 || 0 || || Salute  &lt;br /&gt;
 |-&lt;br /&gt;
 |20 || 0 || || Quit Game&lt;br /&gt;
 |-&lt;br /&gt;
 |21 || 0 || || All Names&lt;br /&gt;
 |-&lt;br /&gt;
 |22 || 0 || || Last Target&lt;br /&gt;
 |-&lt;br /&gt;
 |23 || 0 || || Target Self&lt;br /&gt;
 |-&lt;br /&gt;
 |24 || 1 || || Arm/Disarm Left&lt;br /&gt;
 |-&lt;br /&gt;
 |24 || 2 || || Arm/Disarm Right&lt;br /&gt;
 |-&lt;br /&gt;
 |25 || 0 || || Wait For Target&lt;br /&gt;
 |-&lt;br /&gt;
 |26 || 0 || || Target Next&lt;br /&gt;
 |-&lt;br /&gt;
 |27 || 0 || || Attack Last&lt;br /&gt;
 |-&lt;br /&gt;
 |28 || 0 || ^ || Delay&lt;br /&gt;
 |-&lt;br /&gt;
 |29 || 0 || || Circletrans&lt;br /&gt;
 |-&lt;br /&gt;
 |31 || 0 || || Close Gumps  &lt;br /&gt;
 |-&lt;br /&gt;
 |32 || 0 || || Always Run&lt;br /&gt;
 |-&lt;br /&gt;
 |33 || 0 || || Save Desktop&lt;br /&gt;
 |-&lt;br /&gt;
 |34 || 0 || || Kill Gump Open&lt;br /&gt;
 |-&lt;br /&gt;
 |35 || 0 || || Primary Ability&lt;br /&gt;
 |-&lt;br /&gt;
 |36 || 0 || || Secondary Ability&lt;br /&gt;
 |-&lt;br /&gt;
 |37 || 0 || || Equip Last Weapon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.LObjectID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LTargetID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LSkill]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LSpell]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LHandID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.RHandID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.TargCurs]]&lt;br /&gt;
&lt;br /&gt;
[[UO.Equip]]&lt;br /&gt;
&lt;br /&gt;
==== Client's Range Control ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |38 || 0 || ^ ||Set Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |39 || 0 || ^ || Modify Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |40 || 0 || || Increase Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |41 || 0 || || Decrease Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |42 || 0 || || Maximum Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |43 || 0 || || Minimum Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |44 || 0 || || Default Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |45 || 0 || || Update Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |46 || 0 || || Enable Update Range Color&lt;br /&gt;
 |-&lt;br /&gt;
 |47 || 0 || || Disable Update Range Color&lt;br /&gt;
 |-&lt;br /&gt;
 |48 || 0 || || Toggle Update Range Color&lt;br /&gt;
|}&lt;br /&gt;
==== Invoke Virtues ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 1 || || Invoke Honor Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 2 || || Invoke Sacrifice Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 3 || || Invoke Valor Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 4 || || Invoke Compassion Virtue (Does Nothing)&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 5 || || Invoke *1 Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 6 || || Invoke *1 Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 7 || || Invoke Justice Protection&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 8 || || Invoke *1 Virtue&lt;br /&gt;
|}&lt;br /&gt;
*1 - These are Humility Honesty and Spirituality. At present time they do nothing. Which is which is as yet unknown.&lt;br /&gt;
&lt;br /&gt;
==== Targeting System ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |50 || 1-5* || || select next&lt;br /&gt;
 |-&lt;br /&gt;
 |51 || 1-5* || || select previous &lt;br /&gt;
 |-&lt;br /&gt;
 |52 || 1-5* || || select nearest&lt;br /&gt;
 |-&lt;br /&gt;
 |53 || || || attack selected &lt;br /&gt;
 |-&lt;br /&gt;
 |54 || || || use selected &lt;br /&gt;
 |-&lt;br /&gt;
 |55 || || || current target &lt;br /&gt;
 |-&lt;br /&gt;
 |56 || || || targeting system on/off &lt;br /&gt;
 |-&lt;br /&gt;
 |57 || || || toggle buff window (open/close)&lt;br /&gt;
 |-&lt;br /&gt;
 |58 || || || bandage self &lt;br /&gt;
 |-&lt;br /&gt;
 |59 || || || bandage target &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Sets #ltargetid , Opens and Sets Target_status_gump to current targets healthbar&lt;br /&gt;
 1 = hostile   2 = Party Members &lt;br /&gt;
 3 = Followers 4 = Objects  &lt;br /&gt;
 5 = Mobiles&lt;br /&gt;
&lt;br /&gt;
[[UO.LTargetID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.EnemyID]]&lt;br /&gt;
&lt;br /&gt;
[http://www.easyuo.com/forum/viewtopic.php?p=378638#378638 Mnemonic Macros by WarLocke]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Macro&amp;diff=5370</id>
		<title>UO.Macro</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Macro&amp;diff=5370"/>
				<updated>2012-08-10T03:28:22Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* Miscellaneous */ spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  UO.Macro(param1,param2[,str])&lt;br /&gt;
Causes the client to use one of the pre-defined, internal UO client macros. &lt;br /&gt;
&lt;br /&gt;
=== Event Macro Table ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
==== Speech ====&lt;br /&gt;
 |1 || 0 || msg text|| Say&lt;br /&gt;
 |-&lt;br /&gt;
 |2 || 0 || msg text || Emote  &lt;br /&gt;
 |-&lt;br /&gt;
 |3 || 0 || msg text || Whisper&lt;br /&gt;
 |-&lt;br /&gt;
 |4 || 4 || msg text || Yell&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.ExMsg]]&lt;br /&gt;
&lt;br /&gt;
[[UO.Msg]]&lt;br /&gt;
&lt;br /&gt;
==== Movement ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
|-&lt;br /&gt;
 |5 || 0 || || Walk North West&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 1 || || Walk North&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 2 || || Walk North East&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 3 || || Walk East&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 4 || || Walk South East&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 5 || || Walk South&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 6 || || Walk South West&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 7 || || Walk West&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.Move]]&lt;br /&gt;
&lt;br /&gt;
[[UO.Pathfind]]&lt;br /&gt;
&lt;br /&gt;
==== War/Peace &amp;amp; Paste ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |6 || 0 || || Toggle War/Peace&lt;br /&gt;
 |-&lt;br /&gt;
 |7 || 0 || || Paste&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.EnemyID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.EnemyHits]]&lt;br /&gt;
&lt;br /&gt;
[[UO.StatBar]]&lt;br /&gt;
&lt;br /&gt;
==== Gump Control ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 0 || || Open Configuration&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 1 || || Open Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 2 || || Open Status&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 3 || || Open Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 4 || || Open Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 5 || || Open Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 6 || || Open Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 7 || || Open Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 8 || || Open Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 9 || || Open Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 10 || || Open Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 11 || || Open Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 12 || || Open Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 13 || || Open Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 14 || || Open Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 15 || || Open Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 16 || || Open Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 17 || || Open Guild&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 18 || || Open Spellweaving SpellBook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 19 || || Open Questlog&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 0 || || Close Configuration&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 1 || || Close Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 2 || || Close Status&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 3 || || Close Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 4 || || Close Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 5 || || Close Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 6 || || Close Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 7 || || Close Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 8 || || Close Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 9 || || Close Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 10 || || Close Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 11 || || Close Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 12 || || Close Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 13 || || Close Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 14 || || Close Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 15 || || Close Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 16 || || Close Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 17 || || Close Guild&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 1 || || Minimize Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 2 || || Minimize Status&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 3 || || Minimize Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 4 || || Minimize Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 5 || || Minimize Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 6 || || Minimize Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 7 || || Minimize Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 8 || || Minimize Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 9 || || Minimize Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 10 || || Minimize Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 11 || || Minimize Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 12 || || Minimize Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 13 || || Minimize Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 14 || || Minimize Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 15 || || Minimize Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 16 || || Minimize Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 17 || || Minimize Guild&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 1 || || Maximize Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 2 || || Maximize Status&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 3 || || Maximize Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 4 || || Maximize Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 5 || || Maximize Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 6 || || Maximize Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 7 || || Maximize Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 8 || || Maximize Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 9 || || Maximize Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 10 || || Maximize Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 11 || || Maximize Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 12 || || Maximize Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 13 || || Maximize Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 14 || || Maximize Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 15 || || Maximize Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 16 || || Maximize Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 17 || || Maximize Guild&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.ContTop]]&lt;br /&gt;
&lt;br /&gt;
[[UO.StatBar]]&lt;br /&gt;
&lt;br /&gt;
[[UO.GetCont]]&lt;br /&gt;
&lt;br /&gt;
==== Open Door ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |12 || 0 || || Opendoor&lt;br /&gt;
|}&lt;br /&gt;
==== Use Skills ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 1 || || Use Skill Anatomy&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 2 || || Use Skill Animal Lore&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 35 || || Use Skill Animal Taming&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 4 || || Use Skill Arms Lore&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 6 || || Use Skill Begging&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 12 || || Use Skill Cartography&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 14 || || Use Skill Detecting Hidden&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 15 || || Use Skill Discordance&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 16 || || Use Skill Evaluating Intelligence&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 19 || || Use Skill Forensic Evaluation&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 21 || || Use Skill Hiding&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 23 || || Use Skill Inscription&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 3 || || Use Skill Item Identification&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 46 || || Use Skill Meditation&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 9 || || Use Skill Peacemaking&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 30 || || Use Skill Poisoning&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 22 || || Use Skill Provocation&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 48 || || Use Skill Remove Trap&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 32 || || Use Skill Spirit Speak&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 33 || || Use Skill Stealing&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 47 || || Use Skill Stealth&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 36 || || Use Skill Taste Identification&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 38 || || Use Skill Tracking&lt;br /&gt;
 |-&lt;br /&gt;
 |14 || 0 || || Last Skill&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Magery ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 0 || || Cast Spell Clumsy&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 1 || || Cast Spell Create Food&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 2 || || Cast Spell Feeblemind&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 3 || || Cast Spell Heal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 4 || || Cast Spell Magic Arrow&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 5 || || Cast Spell Night Sight&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 6 || || Cast Spell Reactive Armor&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 7 || || Cast Spell Weaken&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 8 || || Cast Spell Agility&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 9 || || Cast Spell Cunning&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 10 || || Cast Spell Cure&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 11 || || Cast Spell Harm&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 12 || || Cast Spell Magic Trap&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 13 || || Cast Spell Magic Untrap&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 14 || || Cast Spell Protection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 15 || || Cast Spell Strength&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 16 || || Cast Spell Bless&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 17 || || Cast Spell Fireball&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 18 || || Cast Spell Magic Lock&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 19 || || Cast Spell Poison&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 20 || || Cast Spell Telekinesis&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 21 || || Cast Spell Teleport&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 22 || || Cast Spell Unlock&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 23 || || Cast Spell Wall Of Stone&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 24 || || Cast Spell Arch Cure&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 25 || || Cast Spell Arch Protection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 26 || || Cast Spell Curse&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 27 || || Cast Spell Fire Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 28 || || Cast Spell Greater Heal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 29 || || Cast Spell Lightning&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 30 || || Cast Spell Mana Drain&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 31 || || Cast Spell Recall&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 32 || || Cast Spell Blade Spirits&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 33 || || Cast Spell Dispel Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 34 || || Cast Spell Incognito&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 35 || || Cast Spell Magic Reflection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 36 || || Cast Spell Mind Blast&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 37 || || Cast Spell Paralyze&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 38 || || Cast Spell Poison Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 39 || || Cast Spell Summon Creature&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 40 || || Cast Spell Dispel&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 41 || || Cast Spell Energy Bolt&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 42 || || Cast Spell Explosion&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 43 || || Cast Spell Invisibility&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 44 || || Cast Spell Mark&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 45 || || Cast Spell Mass Curse&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 46 || || Cast Spell Paralyze Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 47 || || Cast Spell Reveal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 48 || || Cast Spell Chain Lightning&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 49 || || Cast Spell Energy Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 50 || || Cast Spell Flame Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 51 || || Cast Spell Gate Travel&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 52 || || Cast Spell Mana Vampire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 53 || || Cast Spell Mass Dispel&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 54 || || Cast Spell Meteor Swarm&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 55 || || Cast Spell Polymorph&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 56 || || Cast Spell Earthquake&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 57 || || Cast Spell Energy Vortex&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 58 || || Cast Spell Resurrection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 59 || || Cast Spell Air Elemental&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 60 || || Cast Spell Summon Daemon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 61 || || Cast Spell Earth Elemental&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 62 || || Cast Spell Fire Elemental&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 63 || || Cast Spell Water Elemental&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Necromancy ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 101 || || Cast Spell [N] Animate Dead&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 102 || || Cast Spell [N] Blood Oath&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 103 || || Cast Spell [N] Corpse Skin&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 104 || || Cast Spell [N] Curse Weapon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 105 || || Cast Spell [N] Evil Omen&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 106 || || Cast Spell [N] Horrific Beast&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 107 || || Cast Spell [N] Lich Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 108 || || Cast Spell [N] Mind Rot&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 109 || || Cast Spell [N] Pain Spike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 110 || || Cast Spell [N] Poison Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 111 || || Cast Spell [N] Strangle&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 112 || || Cast Spell [N] Summon Familiar&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 113 || || Cast Spell [N] Vampiric Embrace&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 114 || || Cast Spell [N] Vengeful Spirit&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 115 || || Cast Spell [N] Wither&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 116 || || Cast Spell [N] Wraith Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 117 || || Cast Spell [N] Exorcism&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Bushido ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 145 || || Cast Spell [B] Honorable Execution&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 146 || || Cast Spell [B] Confidence&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 147 || || Cast Spell [B] Evasion&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 148 || || Cast Spell [B] Counter Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 149 || || Cast Spell [B] Lightning Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 150 || || Cast Spell [B] Momentum Strike&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Chivalry ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 201 || || Cast Spell [C] Cleanse By Fire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 202 || || Cast Spell [C] Close Wounds&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 203 || || Cast Spell [C] Consecrate Weapon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 204 || || Cast Spell [C] Dispel Evil&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 205 || || Cast Spell [C] Divine Fury&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 206 || || Cast Spell [C] Enemy Of One&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 207 || || Cast Spell [C] Holy Light&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 208 || || Cast Spell [C] Noble Sacrifice&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 209 || || Cast Spell [C] Remove Curse&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 210 || || Cast Spell [C] Sacred Journey&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ninja Moves ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 245 || || Cast Spell [NI] Focus Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 246 || || Cast Spell [NI] Death Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 247 || || Cast Spell [NI] Animal Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 248 || || Cast Spell [NI] Ki Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 249 || || Cast Spell [NI] Surprise Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 250 || || Cast Spell [NI] Backstab&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 251 || || Cast Spell [NI] Shadowjump&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 252 || || Cast Spell [NI] Mirror Image &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Spellweaving ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 601 || || Cast Spell [SW] Arcane Circle&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 602 || || Cast Spell [SW] Gift of Renewal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 603 || || Cast Spell [SW] Immolating Weapon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 604 || || Cast Spell [SW] Attunement&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 605 || || Cast Spell [SW] Thunderstorm&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 606 || || Cast Spell [SW] Nature's Fury&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 607 || || Cast Spell [SW] Summon Fey&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 608 || || Cast Spell [SW] Summon Fiend&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 609 || || Cast Spell [SW] Reaper Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 610 || || Cast Spell [SW] Wildfire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 611 || || Cast Spell [SW] Essence of Wind&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 612 || || Cast Spell [SW] Dryad Allure&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 613 || || Cast Spell [SW] Ethereal Voyage&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 614 || || Cast Spell [SW] Word of Death&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 615 || || Cast Spell [SW] Gift of Life&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 616 || || Cast Spell [SW] Arcane Empowerment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Mysticism ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 678 || || Cast Spell [MY] Nether Bolt &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 679 || || Cast Spell [MY] Healing Stone &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 680 || || Cast Spell [MY] Purge Magic &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 681 || || Cast Spell [MY] Enchant &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 682 || || Cast Spell [MY] Sleep &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 683 || || Cast Spell [MY] Eagle Strike &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 684 || || Cast Spell [MY] Animated Weapon &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 685 || || Cast Spell [MY] Stone Form &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 686 || || Cast Spell [MY] Spell Trigger &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 687 || || Cast Spell [MY] Mass Sleep &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 688 || || Cast Spell [MY] Cleansing Winds &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 689 || || Cast Spell [MY] Bombard &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 690 || || Cast Spell [MY] Spell Plague &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 691 || || Cast Spell [MY] Hail Storm &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 692 || || Cast Spell [MY] Nether Cyclone &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 693 || || Cast Spell [MY] Rising Colossus&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Bard Mastery ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 701 || || Cast Spell [BM] Inspire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 702 || || Cast Spell [BM] Invigorate&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 703 || || Cast Spell [BM] Resilience&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 704 || || Cast Spell [BM] Preservance&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 705 || || Cast Spell [BM] Tribulation&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 706 || || Cast Spell [BM] Despair&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Miscellaneous ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |16 || 0 || || Last Spell&lt;br /&gt;
 |-&lt;br /&gt;
 |17 || 0 || || Last Object&lt;br /&gt;
 |-&lt;br /&gt;
 |18 || 0 || || Bow&lt;br /&gt;
 |-&lt;br /&gt;
 |19 || 0 || || Salute  &lt;br /&gt;
 |-&lt;br /&gt;
 |20 || 0 || || Quit Game&lt;br /&gt;
 |-&lt;br /&gt;
 |21 || 0 || || All Names&lt;br /&gt;
 |-&lt;br /&gt;
 |22 || 0 || || Last Target&lt;br /&gt;
 |-&lt;br /&gt;
 |23 || 0 || || Target Self&lt;br /&gt;
 |-&lt;br /&gt;
 |24 || 1 || || Arm/Disarm Left&lt;br /&gt;
 |-&lt;br /&gt;
 |24 || 2 || || Arm/Disarm Right&lt;br /&gt;
 |-&lt;br /&gt;
 |25 || 0 || || Wait For Target&lt;br /&gt;
 |-&lt;br /&gt;
 |26 || 0 || || Target Next&lt;br /&gt;
 |-&lt;br /&gt;
 |27 || 0 || || Attack Last&lt;br /&gt;
 |-&lt;br /&gt;
 |28 || 0 || ^ || Delay&lt;br /&gt;
 |-&lt;br /&gt;
 |29 || 0 || || Circletrans&lt;br /&gt;
 |-&lt;br /&gt;
 |31 || 0 || || Close Gumps  &lt;br /&gt;
 |-&lt;br /&gt;
 |32 || 0 || || Always Run&lt;br /&gt;
 |-&lt;br /&gt;
 |33 || 0 || || Save Desktop&lt;br /&gt;
 |-&lt;br /&gt;
 |34 || 0 || || Kill Gump Open&lt;br /&gt;
 |-&lt;br /&gt;
 |35 || 0 || || Primary Ability&lt;br /&gt;
 |-&lt;br /&gt;
 |36 || 0 || || Secondary Ability&lt;br /&gt;
 |-&lt;br /&gt;
 |37 || 0 || || Equip Last Weapon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.LObjectID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LTargetID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LSkill]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LSpell]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LHandID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.RHandID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.TargCurs]]&lt;br /&gt;
&lt;br /&gt;
[[UO.Equip]]&lt;br /&gt;
&lt;br /&gt;
==== Client's Range Control ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |38 || 0 || ^ ||Set Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |39 || 0 || ^ || Modify Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |40 || 0 || || Increase Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |41 || 0 || || Decrease Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |42 || 0 || || Maximum Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |43 || 0 || || Minimum Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |44 || 0 || || Default Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |45 || 0 || || Update Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |46 || 0 || || Enable Update Range Color&lt;br /&gt;
 |-&lt;br /&gt;
 |47 || 0 || || Disable Update Range Color&lt;br /&gt;
 |-&lt;br /&gt;
 |48 || 0 || || Toggle Update Range Color&lt;br /&gt;
|}&lt;br /&gt;
==== Invoke Virtues ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 1 || || Invoke Honor Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 2 || || Invoke Sacrifice Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 3 || || Invoke Valor Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 4 || || Invoke Compassion Virtue (Does Nothing)&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 5 || || Invoke *1 Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 6 || || Invoke *1 Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 7 || || Invoke Justice Protection&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 8 || || Invoke *1 Virtue&lt;br /&gt;
|}&lt;br /&gt;
*1 - These are Humility Honesty and Spirituality. At present time they do nothing. Which is which is as yet unknown.&lt;br /&gt;
&lt;br /&gt;
==== Targeting System ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |50 || 1-5* || || select next&lt;br /&gt;
 |-&lt;br /&gt;
 |51 || 1-5* || || select previous &lt;br /&gt;
 |-&lt;br /&gt;
 |52 || 1-5* || || select nearest&lt;br /&gt;
 |-&lt;br /&gt;
 |53 || || || attack selected &lt;br /&gt;
 |-&lt;br /&gt;
 |54 || || || use selected &lt;br /&gt;
 |-&lt;br /&gt;
 |55 || || || current target &lt;br /&gt;
 |-&lt;br /&gt;
 |56 || || || targeting system on/off &lt;br /&gt;
 |-&lt;br /&gt;
 |57 || || || toggle buff window (open/close)&lt;br /&gt;
 |-&lt;br /&gt;
 |58 || || || bandage self &lt;br /&gt;
 |-&lt;br /&gt;
 |59 || || || bandage target &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Sets #ltargetid , Opens and Sets Target_status_gump to current targets healthbar&lt;br /&gt;
 1 = hostile   2 = Party Members &lt;br /&gt;
 3 = Followers 4 = Objects  &lt;br /&gt;
 5 = Mobiles&lt;br /&gt;
&lt;br /&gt;
[[UO.LTargetID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.EnemyID]]&lt;br /&gt;
&lt;br /&gt;
[http://www.easyuo.com/forum/viewtopic.php?p=378638#378638 Mnemonic Macros by WarLocke]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Macro&amp;diff=5369</id>
		<title>UO.Macro</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=UO.Macro&amp;diff=5369"/>
				<updated>2012-08-10T03:27:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Add Bard Mastery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;  UO.Macro(param1,param2[,str])&lt;br /&gt;
Causes the client to use one of the pre-defined, internal UO client macros. &lt;br /&gt;
&lt;br /&gt;
=== Event Macro Table ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
==== Speech ====&lt;br /&gt;
 |1 || 0 || msg text|| Say&lt;br /&gt;
 |-&lt;br /&gt;
 |2 || 0 || msg text || Emote  &lt;br /&gt;
 |-&lt;br /&gt;
 |3 || 0 || msg text || Whisper&lt;br /&gt;
 |-&lt;br /&gt;
 |4 || 4 || msg text || Yell&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.ExMsg]]&lt;br /&gt;
&lt;br /&gt;
[[UO.Msg]]&lt;br /&gt;
&lt;br /&gt;
==== Movement ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
|-&lt;br /&gt;
 |5 || 0 || || Walk North West&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 1 || || Walk North&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 2 || || Walk North East&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 3 || || Walk East&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 4 || || Walk South East&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 5 || || Walk South&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 6 || || Walk South West&lt;br /&gt;
 |-&lt;br /&gt;
 |5 || 7 || || Walk West&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.Move]]&lt;br /&gt;
&lt;br /&gt;
[[UO.Pathfind]]&lt;br /&gt;
&lt;br /&gt;
==== War/Peace &amp;amp; Paste ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |6 || 0 || || Toggle War/Peace&lt;br /&gt;
 |-&lt;br /&gt;
 |7 || 0 || || Paste&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.EnemyID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.EnemyHits]]&lt;br /&gt;
&lt;br /&gt;
[[UO.StatBar]]&lt;br /&gt;
&lt;br /&gt;
==== Gump Control ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 0 || || Open Configuration&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 1 || || Open Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 2 || || Open Status&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 3 || || Open Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 4 || || Open Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 5 || || Open Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 6 || || Open Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 7 || || Open Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 8 || || Open Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 9 || || Open Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 10 || || Open Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 11 || || Open Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 12 || || Open Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 13 || || Open Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 14 || || Open Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 15 || || Open Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 16 || || Open Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 17 || || Open Guild&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 18 || || Open Spellweaving SpellBook&lt;br /&gt;
 |-&lt;br /&gt;
 |8 || 19 || || Open Questlog&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 0 || || Close Configuration&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 1 || || Close Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 2 || || Close Status&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 3 || || Close Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 4 || || Close Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 5 || || Close Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 6 || || Close Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 7 || || Close Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 8 || || Close Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 9 || || Close Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 10 || || Close Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 11 || || Close Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 12 || || Close Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 13 || || Close Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 14 || || Close Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 15 || || Close Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 16 || || Close Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |9 || 17 || || Close Guild&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 1 || || Minimize Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 2 || || Minimize Status&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 3 || || Minimize Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 4 || || Minimize Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 5 || || Minimize Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 6 || || Minimize Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 7 || || Minimize Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 8 || || Minimize Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 9 || || Minimize Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 10 || || Minimize Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 11 || || Minimize Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 12 || || Minimize Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 13 || || Minimize Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 14 || || Minimize Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 15 || || Minimize Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 16 || || Minimize Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |10 || 17 || || Minimize Guild&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 1 || || Maximize Paperdoll&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 2 || || Maximize Status&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 3 || || Maximize Journal&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 4 || || Maximize Skills&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 5 || || Maximize Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 6 || || Maximize Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 7 || || Maximize Backpack&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 8 || || Maximize Overview&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 9 || || Maximize Mail&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 10 || || Maximize Party Manifest&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 11 || || Maximize Party Chat&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 12 || || Maximize Necro Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 13 || || Maximize Paladin Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 14 || || Maximize Combat Book&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 15 || || Maximize Bushido Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 16 || || Maximize Ninjutsu Spellbook&lt;br /&gt;
 |-&lt;br /&gt;
 |11 || 17 || || Maximize Guild&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.ContTop]]&lt;br /&gt;
&lt;br /&gt;
[[UO.StatBar]]&lt;br /&gt;
&lt;br /&gt;
[[UO.GetCont]]&lt;br /&gt;
&lt;br /&gt;
==== Open Door ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |12 || 0 || || Opendoor&lt;br /&gt;
|}&lt;br /&gt;
==== Use Skills ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 1 || || Use Skill Anatomy&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 2 || || Use Skill Animal Lore&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 35 || || Use Skill Animal Taming&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 4 || || Use Skill Arms Lore&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 6 || || Use Skill Begging&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 12 || || Use Skill Cartography&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 14 || || Use Skill Detecting Hidden&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 15 || || Use Skill Discordance&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 16 || || Use Skill Evaluating Intelligence&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 19 || || Use Skill Forensic Evaluation&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 21 || || Use Skill Hiding&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 23 || || Use Skill Inscription&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 3 || || Use Skill Item Identification&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 46 || || Use Skill Meditation&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 9 || || Use Skill Peacemaking&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 30 || || Use Skill Poisoning&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 22 || || Use Skill Provocation&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 48 || || Use Skill Remove Trap&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 32 || || Use Skill Spirit Speak&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 33 || || Use Skill Stealing&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 47 || || Use Skill Stealth&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 36 || || Use Skill Taste Identification&lt;br /&gt;
 |-&lt;br /&gt;
 |13 || 38 || || Use Skill Tracking&lt;br /&gt;
 |-&lt;br /&gt;
 |14 || 0 || || Last Skill&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Magery ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 0 || || Cast Spell Clumsy&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 1 || || Cast Spell Create Food&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 2 || || Cast Spell Feeblemind&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 3 || || Cast Spell Heal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 4 || || Cast Spell Magic Arrow&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 5 || || Cast Spell Night Sight&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 6 || || Cast Spell Reactive Armor&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 7 || || Cast Spell Weaken&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 8 || || Cast Spell Agility&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 9 || || Cast Spell Cunning&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 10 || || Cast Spell Cure&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 11 || || Cast Spell Harm&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 12 || || Cast Spell Magic Trap&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 13 || || Cast Spell Magic Untrap&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 14 || || Cast Spell Protection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 15 || || Cast Spell Strength&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 16 || || Cast Spell Bless&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 17 || || Cast Spell Fireball&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 18 || || Cast Spell Magic Lock&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 19 || || Cast Spell Poison&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 20 || || Cast Spell Telekinesis&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 21 || || Cast Spell Teleport&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 22 || || Cast Spell Unlock&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 23 || || Cast Spell Wall Of Stone&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 24 || || Cast Spell Arch Cure&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 25 || || Cast Spell Arch Protection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 26 || || Cast Spell Curse&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 27 || || Cast Spell Fire Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 28 || || Cast Spell Greater Heal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 29 || || Cast Spell Lightning&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 30 || || Cast Spell Mana Drain&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 31 || || Cast Spell Recall&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 32 || || Cast Spell Blade Spirits&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 33 || || Cast Spell Dispel Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 34 || || Cast Spell Incognito&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 35 || || Cast Spell Magic Reflection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 36 || || Cast Spell Mind Blast&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 37 || || Cast Spell Paralyze&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 38 || || Cast Spell Poison Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 39 || || Cast Spell Summon Creature&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 40 || || Cast Spell Dispel&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 41 || || Cast Spell Energy Bolt&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 42 || || Cast Spell Explosion&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 43 || || Cast Spell Invisibility&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 44 || || Cast Spell Mark&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 45 || || Cast Spell Mass Curse&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 46 || || Cast Spell Paralyze Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 47 || || Cast Spell Reveal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 48 || || Cast Spell Chain Lightning&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 49 || || Cast Spell Energy Field&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 50 || || Cast Spell Flame Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 51 || || Cast Spell Gate Travel&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 52 || || Cast Spell Mana Vampire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 53 || || Cast Spell Mass Dispel&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 54 || || Cast Spell Meteor Swarm&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 55 || || Cast Spell Polymorph&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 56 || || Cast Spell Earthquake&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 57 || || Cast Spell Energy Vortex&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 58 || || Cast Spell Resurrection&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 59 || || Cast Spell Air Elemental&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 60 || || Cast Spell Summon Daemon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 61 || || Cast Spell Earth Elemental&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 62 || || Cast Spell Fire Elemental&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 63 || || Cast Spell Water Elemental&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Necromancy ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 101 || || Cast Spell [N] Animate Dead&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 102 || || Cast Spell [N] Blood Oath&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 103 || || Cast Spell [N] Corpse Skin&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 104 || || Cast Spell [N] Curse Weapon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 105 || || Cast Spell [N] Evil Omen&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 106 || || Cast Spell [N] Horrific Beast&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 107 || || Cast Spell [N] Lich Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 108 || || Cast Spell [N] Mind Rot&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 109 || || Cast Spell [N] Pain Spike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 110 || || Cast Spell [N] Poison Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 111 || || Cast Spell [N] Strangle&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 112 || || Cast Spell [N] Summon Familiar&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 113 || || Cast Spell [N] Vampiric Embrace&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 114 || || Cast Spell [N] Vengeful Spirit&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 115 || || Cast Spell [N] Wither&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 116 || || Cast Spell [N] Wraith Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 117 || || Cast Spell [N] Exorcism&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Bushido ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 145 || || Cast Spell [B] Honorable Execution&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 146 || || Cast Spell [B] Confidence&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 147 || || Cast Spell [B] Evasion&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 148 || || Cast Spell [B] Counter Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 149 || || Cast Spell [B] Lightning Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 150 || || Cast Spell [B] Momentum Strike&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Chivalry ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 201 || || Cast Spell [C] Cleanse By Fire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 202 || || Cast Spell [C] Close Wounds&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 203 || || Cast Spell [C] Consecrate Weapon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 204 || || Cast Spell [C] Dispel Evil&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 205 || || Cast Spell [C] Divine Fury&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 206 || || Cast Spell [C] Enemy Of One&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 207 || || Cast Spell [C] Holy Light&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 208 || || Cast Spell [C] Noble Sacrifice&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 209 || || Cast Spell [C] Remove Curse&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 210 || || Cast Spell [C] Sacred Journey&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ninja Moves ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 245 || || Cast Spell [NI] Focus Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 246 || || Cast Spell [NI] Death Strike&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 247 || || Cast Spell [NI] Animal Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 248 || || Cast Spell [NI] Ki Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 249 || || Cast Spell [NI] Surprise Attack&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 250 || || Cast Spell [NI] Backstab&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 251 || || Cast Spell [NI] Shadowjump&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 252 || || Cast Spell [NI] Mirror Image &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Spellweaving ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 601 || || Cast Spell [SW] Arcane Circle&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 602 || || Cast Spell [SW] Gift of Renewal&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 603 || || Cast Spell [SW] Immolating Weapon&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 604 || || Cast Spell [SW] Attunement&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 605 || || Cast Spell [SW] Thunderstorm&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 606 || || Cast Spell [SW] Nature's Fury&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 607 || || Cast Spell [SW] Summon Fey&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 608 || || Cast Spell [SW] Summon Fiend&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 609 || || Cast Spell [SW] Reaper Form&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 610 || || Cast Spell [SW] Wildfire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 611 || || Cast Spell [SW] Essence of Wind&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 612 || || Cast Spell [SW] Dryad Allure&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 613 || || Cast Spell [SW] Ethereal Voyage&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 614 || || Cast Spell [SW] Word of Death&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 615 || || Cast Spell [SW] Gift of Life&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 616 || || Cast Spell [SW] Arcane Empowerment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Mysticism ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 678 || || Cast Spell [MY] Nether Bolt &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 679 || || Cast Spell [MY] Healing Stone &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 680 || || Cast Spell [MY] Purge Magic &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 681 || || Cast Spell [MY] Enchant &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 682 || || Cast Spell [MY] Sleep &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 683 || || Cast Spell [MY] Eagle Strike &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 684 || || Cast Spell [MY] Animated Weapon &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 685 || || Cast Spell [MY] Stone Form &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 686 || || Cast Spell [MY] Spell Trigger &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 687 || || Cast Spell [MY] Mass Sleep &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 688 || || Cast Spell [MY] Cleansing Winds &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 689 || || Cast Spell [MY] Bombard &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 690 || || Cast Spell [MY] Spell Plague &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 691 || || Cast Spell [MY] Hail Storm &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 692 || || Cast Spell [MY] Nether Cyclone &lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 693 || || Cast Spell [MY] Rising Colossus&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Bard Mastery ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 701 || || Cast Spell [BM] Inspire&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 702 || || Cast Spell [BM] Invigorate&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 703 || || Cast Spell [BM] Resilience&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 704 || || Cast Spell [BM] Preservance&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 705 || || Cast Spell [BM] Tribulation&lt;br /&gt;
 |-&lt;br /&gt;
 |15 || 706 || || Cast Spell [BM] Despair&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Miscellanous ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |16 || 0 || || Last Spell&lt;br /&gt;
 |-&lt;br /&gt;
 |17 || 0 || || Last Object&lt;br /&gt;
 |-&lt;br /&gt;
 |18 || 0 || || Bow&lt;br /&gt;
 |-&lt;br /&gt;
 |19 || 0 || || Salute  &lt;br /&gt;
 |-&lt;br /&gt;
 |20 || 0 || || Quit Game&lt;br /&gt;
 |-&lt;br /&gt;
 |21 || 0 || || All Names&lt;br /&gt;
 |-&lt;br /&gt;
 |22 || 0 || || Last Target&lt;br /&gt;
 |-&lt;br /&gt;
 |23 || 0 || || Target Self&lt;br /&gt;
 |-&lt;br /&gt;
 |24 || 1 || || Arm/Disarm Left&lt;br /&gt;
 |-&lt;br /&gt;
 |24 || 2 || || Arm/Disarm Right&lt;br /&gt;
 |-&lt;br /&gt;
 |25 || 0 || || Wait For Target&lt;br /&gt;
 |-&lt;br /&gt;
 |26 || 0 || || Target Next&lt;br /&gt;
 |-&lt;br /&gt;
 |27 || 0 || || Attack Last&lt;br /&gt;
 |-&lt;br /&gt;
 |28 || 0 || ^ || Delay&lt;br /&gt;
 |-&lt;br /&gt;
 |29 || 0 || || Circletrans&lt;br /&gt;
 |-&lt;br /&gt;
 |31 || 0 || || Close Gumps  &lt;br /&gt;
 |-&lt;br /&gt;
 |32 || 0 || || Always Run&lt;br /&gt;
 |-&lt;br /&gt;
 |33 || 0 || || Save Desktop&lt;br /&gt;
 |-&lt;br /&gt;
 |34 || 0 || || Kill Gump Open&lt;br /&gt;
 |-&lt;br /&gt;
 |35 || 0 || || Primary Ability&lt;br /&gt;
 |-&lt;br /&gt;
 |36 || 0 || || Secondary Ability&lt;br /&gt;
 |-&lt;br /&gt;
 |37 || 0 || || Equip Last Weapon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[UO.LObjectID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LTargetID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LSkill]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LSpell]]&lt;br /&gt;
&lt;br /&gt;
[[UO.LHandID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.RHandID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.TargCurs]]&lt;br /&gt;
&lt;br /&gt;
[[UO.Equip]]&lt;br /&gt;
&lt;br /&gt;
==== Client's Range Control ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |38 || 0 || ^ ||Set Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |39 || 0 || ^ || Modify Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |40 || 0 || || Increase Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |41 || 0 || || Decrease Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |42 || 0 || || Maximum Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |43 || 0 || || Minimum Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |44 || 0 || || Default Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |45 || 0 || || Update Update Range&lt;br /&gt;
 |-&lt;br /&gt;
 |46 || 0 || || Enable Update Range Color&lt;br /&gt;
 |-&lt;br /&gt;
 |47 || 0 || || Disable Update Range Color&lt;br /&gt;
 |-&lt;br /&gt;
 |48 || 0 || || Toggle Update Range Color&lt;br /&gt;
|}&lt;br /&gt;
==== Invoke Virtues ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 1 || || Invoke Honor Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 2 || || Invoke Sacrifice Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 3 || || Invoke Valor Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 4 || || Invoke Compassion Virtue (Does Nothing)&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 5 || || Invoke *1 Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 6 || || Invoke *1 Virtue&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 7 || || Invoke Justice Protection&lt;br /&gt;
 |-&lt;br /&gt;
 |49 || 8 || || Invoke *1 Virtue&lt;br /&gt;
|}&lt;br /&gt;
*1 - These are Humility Honesty and Spirituality. At present time they do nothing. Which is which is as yet unknown.&lt;br /&gt;
&lt;br /&gt;
==== Targeting System ====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !style=&amp;quot;background:#ffdead;&amp;quot; |Param 1||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 2||!style=&amp;quot;background:#ffdead;&amp;quot; |Param 3||!style=&amp;quot;background:#ffdead;&amp;quot; |Description&lt;br /&gt;
 |-&lt;br /&gt;
 |50 || 1-5* || || select next&lt;br /&gt;
 |-&lt;br /&gt;
 |51 || 1-5* || || select previous &lt;br /&gt;
 |-&lt;br /&gt;
 |52 || 1-5* || || select nearest&lt;br /&gt;
 |-&lt;br /&gt;
 |53 || || || attack selected &lt;br /&gt;
 |-&lt;br /&gt;
 |54 || || || use selected &lt;br /&gt;
 |-&lt;br /&gt;
 |55 || || || current target &lt;br /&gt;
 |-&lt;br /&gt;
 |56 || || || targeting system on/off &lt;br /&gt;
 |-&lt;br /&gt;
 |57 || || || toggle buff window (open/close)&lt;br /&gt;
 |-&lt;br /&gt;
 |58 || || || bandage self &lt;br /&gt;
 |-&lt;br /&gt;
 |59 || || || bandage target &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Sets #ltargetid , Opens and Sets Target_status_gump to current targets healthbar&lt;br /&gt;
 1 = hostile   2 = Party Members &lt;br /&gt;
 3 = Followers 4 = Objects  &lt;br /&gt;
 5 = Mobiles&lt;br /&gt;
&lt;br /&gt;
[[UO.LTargetID]]&lt;br /&gt;
&lt;br /&gt;
[[UO.EnemyID]]&lt;br /&gt;
&lt;br /&gt;
[http://www.easyuo.com/forum/viewtopic.php?p=378638#378638 Mnemonic Macros by WarLocke]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Getkey&amp;diff=5368</id>
		<title>Getkey</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Getkey&amp;diff=5368"/>
				<updated>2012-07-21T19:09:46Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: added NUM0-NUM9&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; local bpressed = getkey(str)&lt;br /&gt;
Returns a boolean based upon whether a key or key combination as specified by the string str is depressed or not.  The key-specifier string str can contain A-Z, 0-9, F1-F12 and ESC, BACK, TAB, ENTER, CAPS, SPACE, PGDN, PGUP, END, HOME, LEFT, RIGHT, UP, DOWN, INS, DEL, NUM, CTRL, ALT, or SHIFT. If numlock is on, one can also detect NUM0-NUM9. Due to differences in operating system versions, keyboard drivers, and language settings, some keys may not be detectable on all systems or may be misidentified.  Current list of known problem keys: PRNSCR, PAUSE, SCROLL.  The following script can be used to test functionality on individual systems.&lt;br /&gt;
&lt;br /&gt;
  local keys = {'ESC', 'BACK', 'TAB', 'ENTER', 'CAPS', 'SPACE', 'PGDN', 'PGUP', 'END', 'HOME',&lt;br /&gt;
    'LEFT', 'RIGHT', 'UP', 'DOWN', 'INS', 'DEL', 'NUM', 'SCROLL', 'CTRL', 'ALT', 'SHIFT'}&lt;br /&gt;
  for i = 1,12,1 do&lt;br /&gt;
    table.insert(keys,'F'..tostring(i))&lt;br /&gt;
    if i &amp;lt; 11 then&lt;br /&gt;
      table.insert(keys,'NUM'..tostring(i-1))&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  while true do&lt;br /&gt;
    for i = 1,#keys,1 do&lt;br /&gt;
      if getkey(keys[i]) then print(keys[i]) wait(10) end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Warning: this function will register a currently depressed key regardless of what application is in the foreground.&lt;br /&gt;
&lt;br /&gt;
[http://msdn.microsoft.com/en-us/library/ms646293%28VS.85%29.aspx GetAsyncKeyState]&lt;br /&gt;
&lt;br /&gt;
[[Getmouse]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Getkey&amp;diff=5367</id>
		<title>Getkey</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Getkey&amp;diff=5367"/>
				<updated>2012-07-16T18:16:48Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; local bpressed = getkey(str)&lt;br /&gt;
Returns a boolean based upon whether a key or key combination as specified by the string str is depressed or not.  The key-specifier string str can contain A-Z, 0-9, F1-F12 and ESC, BACK, TAB, ENTER, CAPS, SPACE, PGDN, PGUP, END, HOME, LEFT, RIGHT, UP, DOWN, INS, DEL, NUM, CTRL, ALT, or SHIFT. Due to differences in operating system versions, keyboard drivers, and language settings, some keys may not be detectable on all systems or may be misidentified.  Current list of known problem keys: PRNSCR, PAUSE, SCROLL.  The following script can be used to test functionality on individual systems.&lt;br /&gt;
&lt;br /&gt;
  local keys = {'ESC', 'BACK', 'TAB', 'ENTER', 'CAPS', 'SPACE', 'PGDN', 'PGUP', 'END', 'HOME',&lt;br /&gt;
    'LEFT', 'RIGHT', 'UP', 'DOWN', 'INS', 'DEL', 'NUM', 'SCROLL', 'PAUSE', 'PRNSCR', 'CTRL', 'ALT', 'SHIFT'}&lt;br /&gt;
  for i = 1,12,1 do&lt;br /&gt;
    table.insert(keys,'F'..tostring(i))&lt;br /&gt;
  end&lt;br /&gt;
  while true do&lt;br /&gt;
    for i = 1,#keys,1 do&lt;br /&gt;
      if getkey(keys[i]) then print(keys[i]) wait(10) end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Warning: this function will register a currently depressed key regardless of what application is in the foreground.&lt;br /&gt;
&lt;br /&gt;
[http://msdn.microsoft.com/en-us/library/ms646293%28VS.85%29.aspx GetAsyncKeyState]&lt;br /&gt;
&lt;br /&gt;
[[Getmouse]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Iterator.run&amp;diff=5365</id>
		<title>Iterator.run</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Iterator.run&amp;diff=5365"/>
				<updated>2012-07-16T04:50:46Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local i = sl.iterator(a,b[, c[,...]])&lt;br /&gt;
 -- later&lt;br /&gt;
 local r = i.run(arg[, ...])&lt;br /&gt;
Args&lt;br /&gt;
 arg0..argN are variadic arguments of any type&lt;br /&gt;
Results&lt;br /&gt;
 r is a table&lt;br /&gt;
&lt;br /&gt;
== Example Usage ==&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Run supplies each key and value in a to b in turn, as well as all variadic arguments (c0...cM) passed to the iterator constructor, as well as all run arguments (arg0...argN). E.g.:&lt;br /&gt;
&lt;br /&gt;
 r_i = b(akey_i,aval_i,c0...cM,arg0...argN)&lt;br /&gt;
 r = {r1, ... ,rI}&lt;br /&gt;
&lt;br /&gt;
Run iterates over all key value pairs of table a until depleted unless b returns a special value, [[null]], in which case the run is terminated at that point.&lt;br /&gt;
&lt;br /&gt;
If the keys in table a are contiguous numeric indices, they will be iterated over in ascending order. Order cannot be controlled with non-numeric keys, or when there are gaps in numerical keys.&lt;br /&gt;
&lt;br /&gt;
If b was a table of functions, then run iterates over all key value pairs of table a as described above, with each function value of table b being called in an inner loop. E.g.:&lt;br /&gt;
&lt;br /&gt;
 r_ij = b_j(akey_i,aval_i,c0...cM,arg0...argN)&lt;br /&gt;
 r = {r_1_1...r_1_J, ... ,r_I_1...r_I_J}&lt;br /&gt;
&lt;br /&gt;
== Upon Error ==&lt;br /&gt;
&lt;br /&gt;
If a non-function (or table with a non-function entry) was passed to the iterator constructor as the second argument, then an error will be raised when it is encountered during run().  Error is reported and handled according to the operant error redirection mode.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[case]]&lt;br /&gt;
&lt;br /&gt;
* [[iterator]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;br /&gt;
&lt;br /&gt;
* [[chain]]&lt;br /&gt;
&lt;br /&gt;
* [[machine]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Linklist.head&amp;diff=5010</id>
		<title>Linklist.head</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Linklist.head&amp;diff=5010"/>
				<updated>2012-07-16T02:36:48Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: killspam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local k = sl.linklist()&lt;br /&gt;
 -- later&lt;br /&gt;
 local n = k.head()&lt;br /&gt;
&lt;br /&gt;
Results&lt;br /&gt;
 n is a number&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Calling head returns the psuedo-index of the head of the list. If the list is empty, then head returns 0.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[deque]]&lt;br /&gt;
&lt;br /&gt;
* [[linklist]]&lt;br /&gt;
* [[linklist.getposition]]&lt;br /&gt;
* [[linklist.insertafter]]&lt;br /&gt;
* [[linklist.insertbefore]]&lt;br /&gt;
* [[linklist.length]]&lt;br /&gt;
* [[linklist.nextlink]]&lt;br /&gt;
* [[linklist.prevlink]]&lt;br /&gt;
* [[linklist.removelink]]&lt;br /&gt;
* [[linklist.returntable]]&lt;br /&gt;
* [[linklist.setvalue]]&lt;br /&gt;
* [[linklist.swap]]&lt;br /&gt;
* [[linklist.tail]]&lt;br /&gt;
* [[linklist.value]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=File.skip&amp;diff=5009</id>
		<title>File.skip</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=File.skip&amp;diff=5009"/>
				<updated>2012-07-16T02:32:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: killspam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local f = sl.file(a,'read')&lt;br /&gt;
later:&lt;br /&gt;
 local r = f.skip(n)&lt;br /&gt;
&lt;br /&gt;
Arguments&lt;br /&gt;
 n is a number&lt;br /&gt;
&lt;br /&gt;
Results&lt;br /&gt;
 r is of value EOF, nil, or true&lt;br /&gt;
&lt;br /&gt;
== Example Usage ==&lt;br /&gt;
&lt;br /&gt;
 h = sl.file(getinstalldir()..'scripts/testread.dat', 'read')&lt;br /&gt;
 local j = h.skip(4) -- skip first four stored values&lt;br /&gt;
 print(tostring(j))&lt;br /&gt;
 local val = true&lt;br /&gt;
 while val ~= nil and val ~= 'EOF' do&lt;br /&gt;
   val = h.readnext()&lt;br /&gt;
   if val == sl.null then val = 'null' end&lt;br /&gt;
   if val == sl.EOF then val = 'EOF' end&lt;br /&gt;
   print('val : '..tostring(val))&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt; true&lt;br /&gt;
     val : 30&lt;br /&gt;
     val : TEST_&lt;br /&gt;
     val : true&lt;br /&gt;
     val : false&lt;br /&gt;
     val : null&lt;br /&gt;
     val : true&lt;br /&gt;
     val : 3.141622e-030&lt;br /&gt;
     val : table: 0x011da540&lt;br /&gt;
     val : EOF&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Skip jumps over the number of stored values specified by argument n.  A positive n seeks from the current read location towards the end of the file, and negative n seeks towards the beginning of the file.  If either the beginning or the end of the file is reached, [[EOF]] is returned.&lt;br /&gt;
&lt;br /&gt;
== Upon Error ==&lt;br /&gt;
&lt;br /&gt;
Skip returns [[nil]] if there is a problem seeking over the file.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[EOF]]&lt;br /&gt;
&lt;br /&gt;
* [[file.readnext]]&lt;br /&gt;
&lt;br /&gt;
* [[nil]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=File.copy&amp;diff=5008</id>
		<title>File.copy</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=File.copy&amp;diff=5008"/>
				<updated>2012-07-16T02:31:06Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: killspamm&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local f = sl.file(a,b)&lt;br /&gt;
 local r = f.copy(c)&lt;br /&gt;
&lt;br /&gt;
Arguments&lt;br /&gt;
 c is a string, the target file name.&lt;br /&gt;
&lt;br /&gt;
Results&lt;br /&gt;
 r is a boolean denoting success or failure of copy operation.&lt;br /&gt;
&lt;br /&gt;
== Example Usage ==&lt;br /&gt;
&lt;br /&gt;
 h = sl.file(getinstalldir()..'scripts/testread.dat', 'read')&lt;br /&gt;
 local r = h.copy(getinstalldir()..'scripts/testcopy.dat')&lt;br /&gt;
 print(tostring(r))&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt; true&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The copy method copies the open file to the target filename.  Returns true if successful.  The current read cursor position is maintained.&lt;br /&gt;
&lt;br /&gt;
== Upon Error ==&lt;br /&gt;
&lt;br /&gt;
If copy is unable to create the target file an error occurs and is handled according to the operant redirection settings. Any other error should cause copy to return false.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[file]]&lt;br /&gt;
&lt;br /&gt;
* [[file.readall]]&lt;br /&gt;
&lt;br /&gt;
* [[file.readnext]]&lt;br /&gt;
&lt;br /&gt;
* [[file.reopen]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Getkey&amp;diff=5007</id>
		<title>Getkey</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Getkey&amp;diff=5007"/>
				<updated>2012-07-16T02:20:02Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; local bpressed = getkey(str)&lt;br /&gt;
Returns a boolean based upon whether a key or key combination as specified by the string str is depressed or not.  The key-specifier string str can contain A-Z, 0-9, F1-F12 and ESC, BACK, TAB, ENTER, CAPS, SPACE, PGDN, PGUP, END, HOME, LEFT, RIGHT, UP, DOWN, INS, DEL, NUM, SCROLL, CTRL, ALT, or SHIFT.&lt;br /&gt;
&lt;br /&gt;
Warning: since getkey is based on [http://msdn.microsoft.com/en-us/library/ms646293%28VS.85%29.aspx GetAsyncKeyState], this function will register a currently depressed key regardless of what application is in the foreground.&lt;br /&gt;
&lt;br /&gt;
  local keys = {'ESC', 'BACK', 'TAB', 'ENTER', 'CAPS', 'SPACE', 'PGDN', 'PGUP', 'END', 'HOME',&lt;br /&gt;
    'LEFT', 'RIGHT', 'UP', 'DOWN', 'INS', 'DEL', 'NUM', 'SCROLL', 'CTRL', 'ALT', 'SHIFT'}&lt;br /&gt;
  for i = 1,12,1 do&lt;br /&gt;
    table.insert(keys,'F'..tostring(i))&lt;br /&gt;
  end&lt;br /&gt;
  while true do&lt;br /&gt;
    for i = 1,#keys,1 do&lt;br /&gt;
      if getkey(keys[i]) then print(keys[i]) wait(10) end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
[[Getmouse]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Getkey&amp;diff=5006</id>
		<title>Getkey</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Getkey&amp;diff=5006"/>
				<updated>2012-07-16T02:18:31Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; local bpressed = getkey(str)&lt;br /&gt;
Returns a boolean based upon whether a key or key combination as specified by the string str is depressed or not.  The key-specifier string str can contain A-Z, 0-9, F1-F12 and ESC, BACK, TAB, ENTER, CAPS, SPACE, PGDN, PGUP, END, HOME, LEFT, RIGHT, UP, DOWN, INS, DEL, NUM, SCROLL, CTRL, ALT, or SHIFT.&lt;br /&gt;
&lt;br /&gt;
Warning: since getkey is based on [http://msdn.microsoft.com/en-us/library/ms646293%28VS.85%29.aspx GetAsyncKeyState], this function will register a currently depressed key regardless of what application is in the foreground.&lt;br /&gt;
&lt;br /&gt;
  local keys = {'ESC', 'BACK', 'TAB', 'ENTER', 'CAPS', 'SPACE', 'PGDN', 'PGUP', 'END', 'HOME',&lt;br /&gt;
    'LEFT', 'RIGHT', 'UP', 'DOWN', 'INS', 'DEL', 'NUM', 'SCROLL', 'CTRL', 'ALT', 'SHIFT'}&lt;br /&gt;
  while true do&lt;br /&gt;
    for i = 1,#keys,1 do&lt;br /&gt;
      if getkey(keys[i]) then print(keys[i]) wait(10) end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
[[Getmouse]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Getkey&amp;diff=5005</id>
		<title>Getkey</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Getkey&amp;diff=5005"/>
				<updated>2012-07-16T02:10:20Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: scrolllock -&amp;gt; scroll etc.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; local bpressed = getkey(str)&lt;br /&gt;
Returns a boolean based upon whether a key or key combination as specified by the string str is depressed or not.  The key-specifier string str can contain A-Z, 0-9, F1-F12 and ESC, BACK, TAB, ENTER, CAPS, SPACE, PGDN, PGUP, END, HOME, LEFT, RIGHT, UP, DOWN, INS, DEL, NUM, SCROLL, CTRL, ALT, or SHIFT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warning: since getkey is based on [http://msdn.microsoft.com/en-us/library/ms646293%28VS.85%29.aspx GetAsyncKeyState], this function will register a currently depressed key regardless of what application is in the foreground.&lt;br /&gt;
&lt;br /&gt;
[[Getmouse]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Luo.Cont&amp;diff=4996</id>
		<title>Luo.Cont</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Luo.Cont&amp;diff=4996"/>
				<updated>2012-07-13T18:14:14Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: killspam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Convention ==&lt;br /&gt;
Call&lt;br /&gt;
 local f = sl.luo.Cont&lt;br /&gt;
 -- later&lt;br /&gt;
 local t = f()&lt;br /&gt;
Args&lt;br /&gt;
 none&lt;br /&gt;
Returns&lt;br /&gt;
 f is a function, which when called produces t&lt;br /&gt;
 t is a table of UO variable values&lt;br /&gt;
&lt;br /&gt;
== Example Usage ==&lt;br /&gt;
 local l = sl.luo&lt;br /&gt;
 local s = sl.str&lt;br /&gt;
 local t,vo,v = {}, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;&lt;br /&gt;
 while true do&lt;br /&gt;
   t  = l.Cont()&lt;br /&gt;
   vo = s.joinsep(&amp;quot; &amp;quot;,&lt;br /&gt;
     t.ID,&lt;br /&gt;
     t.Kind,&lt;br /&gt;
     t.Name,&lt;br /&gt;
     t.Type)&lt;br /&gt;
   print(vo)&lt;br /&gt;
   repeat&lt;br /&gt;
     t = l.Cont()&lt;br /&gt;
     v = s.joinsep(&amp;quot; &amp;quot;,&lt;br /&gt;
       t.ID,&lt;br /&gt;
       t.Kind,&lt;br /&gt;
       t.Name,&lt;br /&gt;
       t.Type)&lt;br /&gt;
     wait(100)&lt;br /&gt;
   until v ~= vo&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The live UO luo.Cont method returns a table of current UO variable values at the time when it is called. Keys and values of the resultant table:&lt;br /&gt;
&lt;br /&gt;
  key          value&lt;br /&gt;
  ID           UO.ContID&lt;br /&gt;
  Kind         UO.ContKind                                      &lt;br /&gt;
  Name         UO.ContName&lt;br /&gt;
  PosX         UO.ContPosX&lt;br /&gt;
  PosY         UO.ContPosY&lt;br /&gt;
  SizeX        UO.ContSizeX&lt;br /&gt;
  SizeY        UO.ContSizeY&lt;br /&gt;
  Type         UO.ContType&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Documentation#Variables UO Variables]&lt;br /&gt;
&lt;br /&gt;
* [[luo]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=UO.GetJournal&amp;diff=4849</id>
		<title>UO.GetJournal</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=UO.GetJournal&amp;diff=4849"/>
				<updated>2012-04-11T22:41:33Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; local sLine,nCol = UO.GetJournal(nIndex)&lt;br /&gt;
&lt;br /&gt;
Used to read the content fetched by [[UO.ScanJournal]]. nIndex is what line of the journal you wish to get, 0 is the most recent line with 1 being the next most recent and so on. sLine will hold the line of text. nCol will be the color of the text.&lt;br /&gt;
&lt;br /&gt;
A simple block that will print the journal line and color from 0 to top of the journal.&lt;br /&gt;
&lt;br /&gt;
   local nNewRef,nCnt= UO.ScanJournal(0)&lt;br /&gt;
   for  i=0,nCnt  do&lt;br /&gt;
   local sLine,nCol = UO.GetJournal(i)&lt;br /&gt;
   print(sLine)&lt;br /&gt;
   print(nCol)&lt;br /&gt;
   end&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
See Kal In Ex's [http://www.easyuo.com/forum/viewtopic.php?p=367537#367537 Journal Scanning Routine].&lt;br /&gt;
&lt;br /&gt;
[[UO.SysMsg]]&lt;br /&gt;
&lt;br /&gt;
[[UO.ScanJournal]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=UO.GetItem&amp;diff=4765</id>
		<title>UO.GetItem</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=UO.GetItem&amp;diff=4765"/>
				<updated>2012-03-03T21:02:31Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: added link to finditem sysvars&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; local nID,nType,nKind,nContID,nX,nY,nZ,nStack,nRep,nCol = UO.GetItem(nIndex)&lt;br /&gt;
Returns values associated with a item denoted by nIndex after a UO.ScanItems command.  Returned values are the id,type,kind,containing item id (if any),x,y,z, stack amount,reputation, and color.  x,y, and z may be gump-relative or global coordinates depending upon whether the item is in a container or not.&lt;br /&gt;
&lt;br /&gt;
See Easyuo documentation for description of returned values: http://wiki.easyuo.com/index.php/Documentation#FindItem&lt;br /&gt;
&lt;br /&gt;
[[UO.Property]]&lt;br /&gt;
&lt;br /&gt;
[[UO.ScanItems]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=UO.GetItem&amp;diff=4764</id>
		<title>UO.GetItem</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=UO.GetItem&amp;diff=4764"/>
				<updated>2012-03-03T20:57:03Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: added the required UO. prefix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; local nID,nType,nKind,nContID,nX,nY,nZ,nStack,nRep,nCol = UO.GetItem(nIndex)&lt;br /&gt;
Returns values associated with a item denoted by nIndex after a UO.ScanItems command.  Returned values are the id,type,kind,containing item id (if any),x,y,z, stack amount,reputation, and color.  x,y, and z may be gump-relative or global coordinates depending upon whether the item is in a container or not.&lt;br /&gt;
&lt;br /&gt;
[[UO.Property]]&lt;br /&gt;
&lt;br /&gt;
[[UO.ScanItems]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Keymon.refresh&amp;diff=1228</id>
		<title>Keymon.refresh</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Keymon.refresh&amp;diff=1228"/>
				<updated>2011-01-09T03:59:35Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local km = sl.keymon(t)&lt;br /&gt;
later&lt;br /&gt;
 keymon.refresh()&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
 local t = {&lt;br /&gt;
   ['ALT SHIFT J']= function() print('ALT SHIFT J') end,&lt;br /&gt;
   ['CTRL J']     = function() print('CTRL J')      end,&lt;br /&gt;
 }&lt;br /&gt;
 local km = sl.keymon(t)&lt;br /&gt;
 while true do&lt;br /&gt;
   km.refresh()&lt;br /&gt;
   wait(30)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; CTRL J&lt;br /&gt;
    ALT SHIFT J&lt;br /&gt;
    ALT SHIFT J&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The keymon refresh method checks the state of every key necessary to determine which, if any, hotkey combination is currently pressed.  The keymon generator creates a string from the given table of hotkey=handlerfunction values to quickly assess if any handler should be called and passes this to [[loadstring]].  In the example above, the created internal function used by refresh looks like:&lt;br /&gt;
&lt;br /&gt;
 local gk = {getkey(&amp;quot;ALT&amp;quot;),getkey(&amp;quot;SHIFT&amp;quot;),getkey(&amp;quot;CTRL&amp;quot;),getkey(&amp;quot;J&amp;quot;),};&lt;br /&gt;
 if  gk[1] == true and gk[2] == true and gk[3] == false and gk[4] == true then return 1 &lt;br /&gt;
 elseif  gk[1] == false and gk[2] == false and gk[3] == true and gk[4] == true then return 2 &lt;br /&gt;
 end;&lt;br /&gt;
&lt;br /&gt;
The result of calling this function is used to look up and invoke the appropriate user supplied handler.  Refresh takes no arguments and normally returns no values.&lt;br /&gt;
&lt;br /&gt;
== Upon Error ==&lt;br /&gt;
&lt;br /&gt;
If one of the hotkey handler functions throws an error during evaluation, an unhandled exception will occur.  In versions 0.09+, any errors thrown will be caught at the keymon.refresh level and handled according to the operant error redirection mode.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[case]]&lt;br /&gt;
&lt;br /&gt;
* [[chain]]&lt;br /&gt;
&lt;br /&gt;
* [[iterator]]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[keymon]]&lt;br /&gt;
&lt;br /&gt;
* [[machine]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.line&amp;diff=1227</id>
		<title>Journal.line</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.line&amp;diff=1227"/>
				<updated>2011-01-09T03:40:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Created page with &amp;quot;== Calling Pattern == Call  local j = sl.journal() later  local r1,r2,r3 = j.line(pos[,split]) Argument  pos is a number, the absolute position of the line to read  split (option...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
later&lt;br /&gt;
 local r1,r2,r3 = j.line(pos[,split])&lt;br /&gt;
Argument&lt;br /&gt;
 pos is a number, the absolute position of the line to read&lt;br /&gt;
 split (optional) is a boolean, defaults to false&lt;br /&gt;
Results&lt;br /&gt;
 r1 is a string, the line at the position specified &lt;br /&gt;
 r2 is a number, the associated color&lt;br /&gt;
 iff split is true then&lt;br /&gt;
 r3 is the name split from the beginning of the line, if any&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Line returns the line stored at the provided absolute position pos.  The first message is at position 1, the last message is at j.count().  If pos is outside the range of currently stored lines, then line returns [[nil]].&lt;br /&gt;
&lt;br /&gt;
Note: since line does not update the internal store, [[journal.refresh|refresh]] should be called periodically to add any new journal entries.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.count]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.refresh]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.GetJournal]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.ScanJournal]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.mark&amp;diff=1226</id>
		<title>Journal.mark</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.mark&amp;diff=1226"/>
				<updated>2011-01-09T03:32:55Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Created page with &amp;quot;== Calling Pattern == Call  local j = sl.journal() later  local a,b = j.mark(at[,fromcurrent]) Arguments  at is a number  fromcurrent (optional) is a boolean, default is false Re...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
later&lt;br /&gt;
 local a,b = j.mark(at[,fromcurrent])&lt;br /&gt;
Arguments&lt;br /&gt;
 at is a number&lt;br /&gt;
 fromcurrent (optional) is a boolean, default is false&lt;br /&gt;
Returns&lt;br /&gt;
 a is a number, the number of messages skipped over&lt;br /&gt;
 b is a number, the number of unread lines since last mark or nextline call&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Mark sets index to the last read line used by the [[journal.nextline|nextline]] method.  Mark either sets the absolute position of the last read line, or if the optional second parameter is true, the position is set relative to the current index.  Mark returns the number of messages skipped over and the remaining number of unread messages.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.line]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.refresh]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.GetJournal]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.ScanJournal]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.count&amp;diff=1225</id>
		<title>Journal.count</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.count&amp;diff=1225"/>
				<updated>2011-01-09T03:23:50Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Created page with &amp;quot;== Calling Pattern == Call  local j = sl.journal() later  local a,b = j.count() Returns  a is a number, the total number of journal messages  b is a number, the number of unread ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
later&lt;br /&gt;
 local a,b = j.count()&lt;br /&gt;
Returns&lt;br /&gt;
 a is a number, the total number of journal messages&lt;br /&gt;
 b is a number, the number of unread lines since last mark or nextline call&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Count returns the total number of lines in the internal message store.  Count does not force an update of the store from the journal-- if that is needed, call [[journal.refresh|refresh]] instead.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.line]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.refresh]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.GetJournal]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.ScanJournal]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.refresh&amp;diff=1224</id>
		<title>Journal.refresh</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.refresh&amp;diff=1224"/>
				<updated>2011-01-09T03:19:33Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* Calling Pattern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
later&lt;br /&gt;
 local a,b,c = j.refresh()&lt;br /&gt;
Results&lt;br /&gt;
 a is a number, the number of new lines since last refresh or clear&lt;br /&gt;
 b is a number, the total number of lines in the journal&lt;br /&gt;
 c is a number, the number of lines unread since last mark or nextline call&lt;br /&gt;
&lt;br /&gt;
== Example == &lt;br /&gt;
&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
 local e,line,col,name = &amp;quot;&amp;quot;,&amp;quot;&amp;quot;,0,&amp;quot;&amp;quot;&lt;br /&gt;
 local start,color = 3,946&lt;br /&gt;
 while true do&lt;br /&gt;
   local new,total,unread = j.refresh()   &lt;br /&gt;
   if unread &amp;gt; 0 then&lt;br /&gt;
     line = &amp;quot;&amp;quot;&lt;br /&gt;
     local tot,ur = j.count()&lt;br /&gt;
     print(tostring(tot)..' '..tostring(ur))&lt;br /&gt;
     while ur &amp;gt; 0 do&lt;br /&gt;
       line,col,name = j.nextline(true)&lt;br /&gt;
       print(tostring(name)..'|'..tostring(line)..'|'..tostring(col))&lt;br /&gt;
       tot,ur = j.count()&lt;br /&gt;
     end&lt;br /&gt;
     print(sl.exkeyvalstr(j.gmatchcolor(start, color, 'c(ur)')))&lt;br /&gt;
     start = tot + 1&lt;br /&gt;
   end&lt;br /&gt;
   wait(50)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; 8 8&lt;br /&gt;
    |Login confirm on RunUO TC|55&lt;br /&gt;
    |Welcome to Ultima Online!|0&lt;br /&gt;
    |Welcome, ximansu! There is currently 1 user online, with 100021 items and 2419 mobiles in the world.|946&lt;br /&gt;
    |Queuing action request 2... 1.6 seconds left.|173&lt;br /&gt;
    |Chat is not currently supported.|946&lt;br /&gt;
    |Finished 3 queued actions in 1.4 seconds.|173&lt;br /&gt;
    |The world is saving, please wait.|53&lt;br /&gt;
    |World save complete. The entire process took 0.2 seconds.|53&lt;br /&gt;
    table keys:values = {&lt;br /&gt;
    1:table keys:values = {&lt;br /&gt;
     1:ur,&lt;br /&gt;
     },&lt;br /&gt;
    2:table keys:values = {&lt;br /&gt;
     1:ur,&lt;br /&gt;
     },&lt;br /&gt;
    linenums:table keys:values = {&lt;br /&gt;
     1:3,&lt;br /&gt;
     2:5,&lt;br /&gt;
     },&lt;br /&gt;
    count:2,&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Refresh checks to see if there are more journal messages, and if so, copies them to the internal store, returning the number of new messages, the total number of messages, and the number unread since the last call to mark or nextline.&lt;br /&gt;
&lt;br /&gt;
Refresh, along with [[journal.clear|clear]] and [[journal.nextline|nextline]], are the only methods which force an update to the internal store.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.clear]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.nextline]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.GetJournal]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.ScanJournal]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.clear&amp;diff=1223</id>
		<title>Journal.clear</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.clear&amp;diff=1223"/>
				<updated>2011-01-09T03:19:03Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Created page with &amp;quot;== Calling Pattern == Call  local j = sl.journal() later  local r = j.clear() Returns  r is a number, the number of new journal messages since last call to clear or refresh  == D...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
later&lt;br /&gt;
 local r = j.clear()&lt;br /&gt;
Returns&lt;br /&gt;
 r is a number, the number of new journal messages since last call to clear or refresh&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Clear empties the internal store, resets the reading marker used by [[journal.nextline|nextline]] and calls [[journal.refresh|refresh] to grab any new journal messages.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.mark]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.refresh]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.GetJournal]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.ScanJournal]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.nextln&amp;diff=1222</id>
		<title>Journal.nextln</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.nextln&amp;diff=1222"/>
				<updated>2011-01-09T03:12:43Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Created page with &amp;quot; == Description ==  Nextln points to the same method as journal.nextline.  It may become deprecated in versions 0.09+.  == See Also ==  * [http://www.easyuo.com/openeuo/wiki/...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Nextln points to the same method as [[journal.nextline]].  It may become deprecated in versions 0.09+.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.clear]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.mark]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.nextline]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.refresh]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.GetJournal]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.ScanJournal]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.nextline&amp;diff=1221</id>
		<title>Journal.nextline</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.nextline&amp;diff=1221"/>
				<updated>2011-01-09T03:09:45Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Created page with &amp;quot;== Calling Pattern == Call  local j = sl.journal() later  local r1,r2,r3 = j.nextline([split]) Argument  split (optional) is a boolean, defaults to false Results  r1 is a string,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
later&lt;br /&gt;
 local r1,r2,r3 = j.nextline([split])&lt;br /&gt;
Argument&lt;br /&gt;
 split (optional) is a boolean, defaults to false&lt;br /&gt;
Results&lt;br /&gt;
 r1 is a string, the next unread line of the journal&lt;br /&gt;
 r2 is a number, the color&lt;br /&gt;
 iff split is true then&lt;br /&gt;
 r3 is the name split from the beginning of the line, if any&lt;br /&gt;
&lt;br /&gt;
== Example == &lt;br /&gt;
&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
 local e,line,col,name = &amp;quot;&amp;quot;,&amp;quot;&amp;quot;,0,&amp;quot;&amp;quot;&lt;br /&gt;
 local start,color = 3,946&lt;br /&gt;
 while true do&lt;br /&gt;
   local new,total,unread = j.refresh()   &lt;br /&gt;
   if unread &amp;gt; 0 then&lt;br /&gt;
     line = &amp;quot;&amp;quot;&lt;br /&gt;
     local tot,ur = j.count()&lt;br /&gt;
     print(tostring(tot)..' '..tostring(ur))&lt;br /&gt;
     while ur &amp;gt; 0 do&lt;br /&gt;
       line,col,name = j.nextline(true)&lt;br /&gt;
       print(tostring(name)..'|'..tostring(line)..'|'..tostring(col))&lt;br /&gt;
       tot,ur = j.count()&lt;br /&gt;
     end&lt;br /&gt;
     print(sl.exkeyvalstr(j.gmatchcolor(start, color, 'c(ur)')))&lt;br /&gt;
     start = tot + 1&lt;br /&gt;
   end&lt;br /&gt;
   wait(50)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; 8 8&lt;br /&gt;
    |Login confirm on RunUO TC|55&lt;br /&gt;
    |Welcome to Ultima Online!|0&lt;br /&gt;
    |Welcome, ximansu! There is currently 1 user online, with 100021 items and 2419 mobiles in the world.|946&lt;br /&gt;
    |Queuing action request 2... 1.6 seconds left.|173&lt;br /&gt;
    |Chat is not currently supported.|946&lt;br /&gt;
    |Finished 3 queued actions in 1.4 seconds.|173&lt;br /&gt;
    |The world is saving, please wait.|53&lt;br /&gt;
    |World save complete. The entire process took 0.2 seconds.|53&lt;br /&gt;
    table keys:values = {&lt;br /&gt;
    1:table keys:values = {&lt;br /&gt;
     1:ur,&lt;br /&gt;
     },&lt;br /&gt;
    2:table keys:values = {&lt;br /&gt;
     1:ur,&lt;br /&gt;
     },&lt;br /&gt;
    linenums:table keys:values = {&lt;br /&gt;
     1:3,&lt;br /&gt;
     2:5,&lt;br /&gt;
     },&lt;br /&gt;
    count:2,&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Nextline checks to see if there are more journal messages, and if so, copies them to the internal store.  If any of the messages in the internal store haven't been previously been read by nextline (or skipped over via [[journal.mark|mark]]), then nextline returns the next unread message.&lt;br /&gt;
&lt;br /&gt;
Nextline, along with [[journal.clear|clear]] and [[journal.refresh|refresh]], are the only methods which force an update to the internal store.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.clear]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.mark]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.refresh]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.GetJournal]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.ScanJournal]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.refresh&amp;diff=1219</id>
		<title>Journal.refresh</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Journal.refresh&amp;diff=1219"/>
				<updated>2011-01-09T02:53:58Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Created page with &amp;quot;== Calling Pattern == Call  local j = sl.journal() later  local a,b,c = j.refresh() Results  a is a number, the number of new lines since last refresh  b is a number, the total n...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
later&lt;br /&gt;
 local a,b,c = j.refresh()&lt;br /&gt;
Results&lt;br /&gt;
 a is a number, the number of new lines since last refresh&lt;br /&gt;
 b is a number, the total number of lines in the journal&lt;br /&gt;
 c is a number, the number of lines unread since last mark or nextline call&lt;br /&gt;
&lt;br /&gt;
== Example == &lt;br /&gt;
&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
 local e,line,col,name = &amp;quot;&amp;quot;,&amp;quot;&amp;quot;,0,&amp;quot;&amp;quot;&lt;br /&gt;
 local start,color = 3,946&lt;br /&gt;
 while true do&lt;br /&gt;
   local new,total,unread = j.refresh()   &lt;br /&gt;
   if unread &amp;gt; 0 then&lt;br /&gt;
     line = &amp;quot;&amp;quot;&lt;br /&gt;
     local tot,ur = j.count()&lt;br /&gt;
     print(tostring(tot)..' '..tostring(ur))&lt;br /&gt;
     while ur &amp;gt; 0 do&lt;br /&gt;
       line,col,name = j.nextline(true)&lt;br /&gt;
       print(tostring(name)..'|'..tostring(line)..'|'..tostring(col))&lt;br /&gt;
       tot,ur = j.count()&lt;br /&gt;
     end&lt;br /&gt;
     print(sl.exkeyvalstr(j.gmatchcolor(start, color, 'c(ur)')))&lt;br /&gt;
     start = tot + 1&lt;br /&gt;
   end&lt;br /&gt;
   wait(50)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; 8 8&lt;br /&gt;
    |Login confirm on RunUO TC|55&lt;br /&gt;
    |Welcome to Ultima Online!|0&lt;br /&gt;
    |Welcome, ximansu! There is currently 1 user online, with 100021 items and 2419 mobiles in the world.|946&lt;br /&gt;
    |Queuing action request 2... 1.6 seconds left.|173&lt;br /&gt;
    |Chat is not currently supported.|946&lt;br /&gt;
    |Finished 3 queued actions in 1.4 seconds.|173&lt;br /&gt;
    |The world is saving, please wait.|53&lt;br /&gt;
    |World save complete. The entire process took 0.2 seconds.|53&lt;br /&gt;
    table keys:values = {&lt;br /&gt;
    1:table keys:values = {&lt;br /&gt;
     1:ur,&lt;br /&gt;
     },&lt;br /&gt;
    2:table keys:values = {&lt;br /&gt;
     1:ur,&lt;br /&gt;
     },&lt;br /&gt;
    linenums:table keys:values = {&lt;br /&gt;
     1:3,&lt;br /&gt;
     2:5,&lt;br /&gt;
     },&lt;br /&gt;
    count:2,&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Refresh checks to see if there are more journal messages, and if so, copies them to the internal store, returning the number of new messages, the total number of messages, and the number unread since the last call to mark or nextline.&lt;br /&gt;
&lt;br /&gt;
Refresh, along with [[journal.clear|clear]] and [[journal.nextline|nextline]], are the only methods which force an update to the internal store.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.clear]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.nextline]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.GetJournal]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.ScanJournal]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Journal&amp;diff=1218</id>
		<title>Journal</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Journal&amp;diff=1218"/>
				<updated>2011-01-09T02:35:44Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
Results&lt;br /&gt;
 j is a journal closure&lt;br /&gt;
&lt;br /&gt;
== Closure Methods ==&lt;br /&gt;
&lt;br /&gt;
* [[journal.clear]]&lt;br /&gt;
* [[journal.count]]&lt;br /&gt;
* [[journal.line]]&lt;br /&gt;
* [[journal.mark]]&lt;br /&gt;
* [[journal.nextln]]&lt;br /&gt;
* [[journal.nextline]]&lt;br /&gt;
* [[journal.refresh]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[journal.find]]&lt;br /&gt;
* [[journal.findcolor]]&lt;br /&gt;
* [[journal.gmatch]]&lt;br /&gt;
* [[journal.gmatchcolor]]&lt;br /&gt;
* [[journal.gsub]]&lt;br /&gt;
* [[journal.gsubcolor]]&lt;br /&gt;
* [[journal.match]]&lt;br /&gt;
* [[journal.matchcolor]]&lt;br /&gt;
* [[journal.sub]]&lt;br /&gt;
* [[journal.subcolor]]&lt;br /&gt;
&lt;br /&gt;
== Example == &lt;br /&gt;
&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
 local e,line,col,name = &amp;quot;&amp;quot;,&amp;quot;&amp;quot;,0,&amp;quot;&amp;quot;&lt;br /&gt;
 local start,color = 3,946&lt;br /&gt;
 while true do&lt;br /&gt;
   local new,total,unread = j.refresh()   &lt;br /&gt;
   if unread &amp;gt; 0 then&lt;br /&gt;
     line = &amp;quot;&amp;quot;&lt;br /&gt;
     local tot,ur = j.count()&lt;br /&gt;
     print(tostring(tot)..' '..tostring(ur))&lt;br /&gt;
     while ur &amp;gt; 0 do&lt;br /&gt;
       line,col,name = j.nextline(true)&lt;br /&gt;
       print(tostring(name)..'|'..tostring(line)..'|'..tostring(col))&lt;br /&gt;
       tot,ur = j.count()&lt;br /&gt;
     end&lt;br /&gt;
     print(sl.exkeyvalstr(j.gmatchcolor(start, color, 'c(ur)')))&lt;br /&gt;
     start = tot + 1&lt;br /&gt;
   end&lt;br /&gt;
   wait(50)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; 8 8&lt;br /&gt;
    |Login confirm on RunUO TC|55&lt;br /&gt;
    |Welcome to Ultima Online!|0&lt;br /&gt;
    |Welcome, ximansu! There is currently 1 user online, with 100021 items and 2419 mobiles in the world.|946&lt;br /&gt;
    |Queuing action request 2... 1.6 seconds left.|173&lt;br /&gt;
    |Chat is not currently supported.|946&lt;br /&gt;
    |Finished 3 queued actions in 1.4 seconds.|173&lt;br /&gt;
    |The world is saving, please wait.|53&lt;br /&gt;
    |World save complete. The entire process took 0.2 seconds.|53&lt;br /&gt;
    table keys:values = {&lt;br /&gt;
    1:table keys:values = {&lt;br /&gt;
     1:ur,&lt;br /&gt;
     },&lt;br /&gt;
    2:table keys:values = {&lt;br /&gt;
     1:ur,&lt;br /&gt;
     },&lt;br /&gt;
    linenums:table keys:values = {&lt;br /&gt;
     1:3,&lt;br /&gt;
     2:5,&lt;br /&gt;
     },&lt;br /&gt;
    count:2,&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Use journal to generate a journal tracking/searching object.  Journal takes no arguments and returns a closure with numerous methods simplifying journal access.  All methods work on a passive internal copy of the UO journal, with the exception of [[journal.refresh|refresh]], [[journal.nextline|nextline]], and [[journal.clear|clear]].  Those all cause the internal copy of the journal to be updated with any new data from the associated client journal.  For more information, see the associated member methods.&lt;br /&gt;
&lt;br /&gt;
''Journal is inspired by and partially modeled upon Kal In Ex's journal library.''&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[keymon]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.nextline]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.refresh]]&lt;br /&gt;
&lt;br /&gt;
* [[machine]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;br /&gt;
&lt;br /&gt;
* [[str]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Documentation#String_Functions string]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Target&amp;diff=1217</id>
		<title>Target</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Target&amp;diff=1217"/>
				<updated>2011-01-09T01:43:08Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Convention ==&lt;br /&gt;
Call&lt;br /&gt;
 local targ, time = sl.target([timeout])&lt;br /&gt;
Args&lt;br /&gt;
 timeout (optional) is the number of milliseconds to wait before timing out&lt;br /&gt;
Results&lt;br /&gt;
 targ is a boolean and reflects the current status of UO.TargCurs&lt;br /&gt;
 time is the number of milliseconds that have elapsed during the call&lt;br /&gt;
&lt;br /&gt;
== Usage Example ==&lt;br /&gt;
&lt;br /&gt;
 local targ, time = sl.target(1500)&lt;br /&gt;
 print(tostring(targ)..' '..tostring(time))&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt; true 780&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Target acts like easyuo's target statement; waiting for UO.TargCurs to toggle to true or timing out.  Override timeout values are specified in milliseconds.  The default timeout is 3 seconds.  Target returns the current value of UO.TargCurs and the time elapsed (in ms) during the call.&lt;br /&gt;
&lt;br /&gt;
== Upon Error ==&lt;br /&gt;
&lt;br /&gt;
A timeout argument which cannot be converted to a number is silently converted into the default timeout duration.  Only a logical run time error in the library itself would cause an error; this error would be recorded and handled according to the operant error redirection mode.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[chosen]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;br /&gt;
&lt;br /&gt;
* [[type]]&lt;br /&gt;
&lt;br /&gt;
* [[UO.TargCurs]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Keystr&amp;diff=1216</id>
		<title>Keystr</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Keystr&amp;diff=1216"/>
				<updated>2011-01-09T01:42:33Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local r = sl.keystr(arg)&lt;br /&gt;
Args&lt;br /&gt;
 arg is a table&lt;br /&gt;
Results&lt;br /&gt;
 r is a string&lt;br /&gt;
&lt;br /&gt;
== Usage Example ==&lt;br /&gt;
&lt;br /&gt;
 local r = sl.keys(sl)&lt;br /&gt;
 print(r)&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt; table keys = {&lt;br /&gt;
     argval,&lt;br /&gt;
     null,&lt;br /&gt;
     clrerrors,&lt;br /&gt;
     probe,&lt;br /&gt;
     convert,&lt;br /&gt;
     geterror,&lt;br /&gt;
     spin,&lt;br /&gt;
     luo,&lt;br /&gt;
     case,&lt;br /&gt;
     ERR,&lt;br /&gt;
     slversion,&lt;br /&gt;
     macro,&lt;br /&gt;
     keys,&lt;br /&gt;
     str,&lt;br /&gt;
     file,&lt;br /&gt;
     keystr,&lt;br /&gt;
     slverbosity,&lt;br /&gt;
     non,&lt;br /&gt;
     testdummy,&lt;br /&gt;
     target,&lt;br /&gt;
     slredirect,&lt;br /&gt;
     iterator,&lt;br /&gt;
     try,&lt;br /&gt;
     journal,&lt;br /&gt;
     keyvalstr,&lt;br /&gt;
     slimport,&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The helper function keystr returns human readable string representation of the keys found in its sole argument. The keys are converted to strings before concatenation into the resultant string.  If the sole argument is not a table, then the string 'not a table' is returned.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[exkeyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[keys]]&lt;br /&gt;
&lt;br /&gt;
* [[keyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[tabletolua]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Keys&amp;diff=1215</id>
		<title>Keys</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Keys&amp;diff=1215"/>
				<updated>2011-01-09T01:42:04Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local r = sl.keys(arg)&lt;br /&gt;
Args&lt;br /&gt;
 arg is a table&lt;br /&gt;
Results&lt;br /&gt;
 r is a table of strings&lt;br /&gt;
&lt;br /&gt;
== Usage Example ==&lt;br /&gt;
&lt;br /&gt;
 local s = {[11]=16}&lt;br /&gt;
 local t = { [0]='finale', alice='joker', [s]='88'}&lt;br /&gt;
 local r = sl.keys(t)&lt;br /&gt;
 print(r[1])&lt;br /&gt;
 print(r[2])&lt;br /&gt;
 print(r[3])&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt; 0&lt;br /&gt;
     alice&lt;br /&gt;
     table: 0x01532f08&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The helper function keys returns a table of the keys found in its sole argument. The keys are converted to strings before insertion into the resultant table.  If the sole argument is not a table, then an empty table is returned.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[exkeyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[keystr]]&lt;br /&gt;
&lt;br /&gt;
* [[keyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[tabletolua]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Keyvalstr&amp;diff=1214</id>
		<title>Keyvalstr</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Keyvalstr&amp;diff=1214"/>
				<updated>2011-01-09T01:41:42Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local r = sl.keyvalstr(arg)&lt;br /&gt;
Args&lt;br /&gt;
 arg is a table&lt;br /&gt;
Results&lt;br /&gt;
 r is a string&lt;br /&gt;
&lt;br /&gt;
== Usage Example ==&lt;br /&gt;
&lt;br /&gt;
 local s = {[11]=16}&lt;br /&gt;
 local t = { [0]='finale', alice='joker', [s]='88'}&lt;br /&gt;
 local r = sl.keyvalstr(t)&lt;br /&gt;
 print(r)&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt; table keys:values = {&lt;br /&gt;
     0:finale,&lt;br /&gt;
     alice:joker,&lt;br /&gt;
     table: 0x01532360:88,&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The helper function keyvalstr returns a human readable string composed of the keys and values found in its sole argument. The keys and values are converted to strings before insertion into the resultant string.  If the sole argument is not a table, then the string 'not a table' is returned. ''future versions of the library may alter the output slightly. the key* helpers aren't intended to convert data into a [[dostring]] compatible format; use [[tabletolua]] to address that need.''&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[exkeyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[keys]]&lt;br /&gt;
&lt;br /&gt;
* [[keystr]]&lt;br /&gt;
&lt;br /&gt;
* [[tabletolua]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Tabletolua&amp;diff=1213</id>
		<title>Tabletolua</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Tabletolua&amp;diff=1213"/>
				<updated>2011-01-09T01:41:21Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local b = sl.tabletolua(a)&lt;br /&gt;
Args&lt;br /&gt;
 a is a table&lt;br /&gt;
Results&lt;br /&gt;
 b is a string, compatible with the lua parser&lt;br /&gt;
&lt;br /&gt;
== Usage Example ==&lt;br /&gt;
&lt;br /&gt;
 local a = {[3.14] = 0.7071, [' una ']=1, test='Some &amp;quot;random&amp;quot; string.'}&lt;br /&gt;
 local b = sl.tabletolua(a)&lt;br /&gt;
 local c = dostring('return '..b)&lt;br /&gt;
 print(b,'\013\010')&lt;br /&gt;
 print(sl.keyvalstr(c))&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt; {[&amp;quot; una &amp;quot;] = 1,[&amp;quot;test&amp;quot;] = &amp;quot;Some \&amp;quot;random\&amp;quot; string.&amp;quot;,[3.14] = 0.7071,}&lt;br /&gt;
 &lt;br /&gt;
     table keys:values = {&lt;br /&gt;
      una :1,&lt;br /&gt;
     test:Some &amp;quot;random&amp;quot; string.,&lt;br /&gt;
     3.14:0.7071,&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Encodes a table as a sequence of characters compatible with the lua [[dostring]] command. Table keys and values may be composed of boolean,numeric,string, and table types. Does not encode any associated metatables.  Uses string.format on string values to ensure proper encoding of escape characters (though may not have desired effect on non-visible control characters).&lt;br /&gt;
&lt;br /&gt;
== Upon Error ==&lt;br /&gt;
&lt;br /&gt;
Tabletolua fails silently. Improper types are encoded as strings of value 'ERROR'. If tabletolua receives no argument or a non-table argument, then &amp;amp;#39;&amp;amp;#39; (an empty string) is returned.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[dostring]]&lt;br /&gt;
&lt;br /&gt;
* [[exkeyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[keys]]&lt;br /&gt;
&lt;br /&gt;
* [[keystr]]&lt;br /&gt;
&lt;br /&gt;
* [[keyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[str|string table]]&lt;br /&gt;
&lt;br /&gt;
* [[String.format]]&lt;br /&gt;
&lt;br /&gt;
* [[str.fromhex]]&lt;br /&gt;
&lt;br /&gt;
* [[str.tohex]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Documentation#String_Functions Lua String Functions]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Exkeyvalstr&amp;diff=1212</id>
		<title>Exkeyvalstr</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Exkeyvalstr&amp;diff=1212"/>
				<updated>2011-01-09T01:38:44Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local r = sl.exkeyvalstr(arg)&lt;br /&gt;
Args&lt;br /&gt;
 arg is a table&lt;br /&gt;
Results&lt;br /&gt;
 r is a string&lt;br /&gt;
&lt;br /&gt;
== Usage Example ==&lt;br /&gt;
&lt;br /&gt;
 local s = {[11]=16}&lt;br /&gt;
 local t = { [0]='finale', alice='joker', [s]='88'}&lt;br /&gt;
 local r = sl.exkeyvalstr(t)&lt;br /&gt;
 print(r)&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt; table keys:values = {&lt;br /&gt;
     0:finale,&lt;br /&gt;
     alice:joker,&lt;br /&gt;
     keys:values = {&lt;br /&gt;
     11:16,&lt;br /&gt;
     }:88,&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The helper function exkeyvalstr returns a human readable string composed of the keys and values found in its sole argument. The keys and values are converted to strings before insertion into the resultant string, if they are tables they will be converted using [[keyvalstr]].  If the sole argument is not a table, then the string 'not a table' is returned. ''future versions of the library may alter the output slightly. the key* and exkey* helpers aren't intended to convert data into a [[dostring]] compatible format; use [[tabletolua]] to address that need.''&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[keys]]&lt;br /&gt;
&lt;br /&gt;
* [[keystr]]&lt;br /&gt;
&lt;br /&gt;
* [[keyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[tabletolua]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Exkeyvalstr&amp;diff=1211</id>
		<title>Exkeyvalstr</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Exkeyvalstr&amp;diff=1211"/>
				<updated>2011-01-09T01:38:23Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local r = sl.exkeyvalstr(arg)&lt;br /&gt;
Args&lt;br /&gt;
 arg is a table&lt;br /&gt;
Results&lt;br /&gt;
 r is a string&lt;br /&gt;
&lt;br /&gt;
== Usage Example ==&lt;br /&gt;
&lt;br /&gt;
 local s = {[11]=16}&lt;br /&gt;
 local t = { [0]='finale', alice='joker', [s]='88'}&lt;br /&gt;
 local r = sl.exkeyvalstr(t)&lt;br /&gt;
 print(r)&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt; table keys:values = {&lt;br /&gt;
     0:finale,&lt;br /&gt;
     alice:joker,&lt;br /&gt;
     keys:values = {&lt;br /&gt;
     11:16,&lt;br /&gt;
     }:88,&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The helper function exkeyvalstr returns a human readable string composed of the keys and values found in its sole argument. The keys and values are converted to strings before insertion into the resultant string, if they are tables they will be converted using [[keyvalstr]].  If the sole argument is not a table, then the string 'not a table' is returned. ''future versions of the library may alter the output slightly. the key* and exkey* helpers aren't intended to convert data into a [[dostring]] compatible format; use [[tabletolua]] to address that need.''&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[keys]]&lt;br /&gt;
&lt;br /&gt;
* [[keystr]]&lt;br /&gt;
&lt;br /&gt;
* [[exkeyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[tabletolua]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Exkeyvalstr&amp;diff=1210</id>
		<title>Exkeyvalstr</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Exkeyvalstr&amp;diff=1210"/>
				<updated>2011-01-09T01:37:44Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Created page with &amp;quot;== Calling Pattern == Call  local r = sl.exkeyvalstr(arg) Args  arg is a table Results  r is a string  == Usage Example ==   local s = {[11]=16}  local t = { [0]='finale', alice=...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local r = sl.exkeyvalstr(arg)&lt;br /&gt;
Args&lt;br /&gt;
 arg is a table&lt;br /&gt;
Results&lt;br /&gt;
 r is a string&lt;br /&gt;
&lt;br /&gt;
== Usage Example ==&lt;br /&gt;
&lt;br /&gt;
 local s = {[11]=16}&lt;br /&gt;
 local t = { [0]='finale', alice='joker', [s]='88'}&lt;br /&gt;
 local r = sl.keyvalstr(t)&lt;br /&gt;
 print(r)&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt; table keys:values = {&lt;br /&gt;
     0:finale,&lt;br /&gt;
     alice:joker,&lt;br /&gt;
     keys:values = {&lt;br /&gt;
     11:16,&lt;br /&gt;
     }:88,&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The helper function exkeyvalstr returns a human readable string composed of the keys and values found in its sole argument. The keys and values are converted to strings before insertion into the resultant string, if they are tables they will be converted using [[keyvalstr]].  If the sole argument is not a table, then the string 'not a table' is returned. ''future versions of the library may alter the output slightly. the key* and exkey* helpers aren't intended to convert data into a [[dostring]] compatible format; use [[tabletolua]] to address that need.''&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[keys]]&lt;br /&gt;
&lt;br /&gt;
* [[keystr]]&lt;br /&gt;
&lt;br /&gt;
* [[tabletolua]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Simplelib&amp;diff=1209</id>
		<title>Simplelib</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Simplelib&amp;diff=1209"/>
				<updated>2011-01-09T01:33:52Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* Other Library Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Purpose and Notes ==&lt;br /&gt;
&lt;br /&gt;
* [[Library Description]]&lt;br /&gt;
&lt;br /&gt;
* [[Document and Usage Conventions]]&lt;br /&gt;
&lt;br /&gt;
* [[Attribution, License, and CopyLeft|Attribution, License, and Disclaimer]]&lt;br /&gt;
&lt;br /&gt;
== Library Initialization and Usage ==&lt;br /&gt;
&lt;br /&gt;
* [[Including simplelib in a Project]]&lt;br /&gt;
&lt;br /&gt;
* [[Changing Default Error Reporting Mode]]&lt;br /&gt;
&lt;br /&gt;
* [[Importing Library Names Into Global Environment]]&lt;br /&gt;
&lt;br /&gt;
* [[Using the Provided try() Exception Handler]]&lt;br /&gt;
&lt;br /&gt;
== Interface Reference ==&lt;br /&gt;
&lt;br /&gt;
=== Closure Generating Method Calls ===&lt;br /&gt;
&lt;br /&gt;
* [[case]]&lt;br /&gt;
&lt;br /&gt;
* [[chain]]&lt;br /&gt;
&lt;br /&gt;
* [[deque]]&lt;br /&gt;
&lt;br /&gt;
* [[file]]&lt;br /&gt;
&lt;br /&gt;
* [[iterator]]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[keymon]]&lt;br /&gt;
&lt;br /&gt;
* [[linklist]]&lt;br /&gt;
&lt;br /&gt;
* [[machine]]&lt;br /&gt;
&lt;br /&gt;
* [[scan]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;br /&gt;
&lt;br /&gt;
=== Library Method Tables ===&lt;br /&gt;
&lt;br /&gt;
* [[alex]]....Reproduce Alexandria library functionality for openeuo.&lt;br /&gt;
&lt;br /&gt;
* [[bmp]].....Image manipulation functions.&lt;br /&gt;
&lt;br /&gt;
* [[luo]].....A table for treating UO variables as functions.&lt;br /&gt;
&lt;br /&gt;
* [[macro]]...Call event macros by name and partial name matching.&lt;br /&gt;
&lt;br /&gt;
* [[str]].....String manipulation functions.&lt;br /&gt;
&lt;br /&gt;
* [[tile]]....Tile searching and caching.&lt;br /&gt;
&lt;br /&gt;
=== Other Library Methods ===&lt;br /&gt;
&lt;br /&gt;
* [[chosen]]&lt;br /&gt;
&lt;br /&gt;
* [[convert]]&lt;br /&gt;
&lt;br /&gt;
* [[deepcopy]]&lt;br /&gt;
&lt;br /&gt;
* [[exkeyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[geterror]]&lt;br /&gt;
&lt;br /&gt;
* [[keys]]&lt;br /&gt;
&lt;br /&gt;
* [[keystr]]&lt;br /&gt;
&lt;br /&gt;
* [[keyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[non]]&lt;br /&gt;
&lt;br /&gt;
* [[tabletolua]]&lt;br /&gt;
&lt;br /&gt;
* [[target]]&lt;br /&gt;
&lt;br /&gt;
* [[try]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[slimport]]&lt;br /&gt;
&lt;br /&gt;
* [[slredirect]]&lt;br /&gt;
&lt;br /&gt;
* [[slverbosity]]&lt;br /&gt;
&lt;br /&gt;
* [[slversion]]&lt;br /&gt;
&lt;br /&gt;
=== Library Constants ===&lt;br /&gt;
&lt;br /&gt;
* [[null]]&lt;br /&gt;
&lt;br /&gt;
* [[EOF]]&lt;br /&gt;
&lt;br /&gt;
* [[ERR]]&lt;br /&gt;
&lt;br /&gt;
* [[simple_lib_soliton__]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Journal&amp;diff=1208</id>
		<title>Journal</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Journal&amp;diff=1208"/>
				<updated>2011-01-09T01:32:10Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
Results&lt;br /&gt;
 j is a journal closure&lt;br /&gt;
&lt;br /&gt;
== Closure Methods ==&lt;br /&gt;
&lt;br /&gt;
* [[journal.clear]]&lt;br /&gt;
* [[journal.count]]&lt;br /&gt;
* [[journal.line]]&lt;br /&gt;
* [[journal.mark]]&lt;br /&gt;
* [[journal.nextln]]&lt;br /&gt;
* [[journal.nextline]]&lt;br /&gt;
* [[journal.refresh]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[journal.find]]&lt;br /&gt;
* [[journal.findcolor]]&lt;br /&gt;
* [[journal.gmatch]]&lt;br /&gt;
* [[journal.gmatchcolor]]&lt;br /&gt;
* [[journal.gsub]]&lt;br /&gt;
* [[journal.gsubcolor]]&lt;br /&gt;
* [[journal.match]]&lt;br /&gt;
* [[journal.matchcolor]]&lt;br /&gt;
* [[journal.sub]]&lt;br /&gt;
* [[journal.subcolor]]&lt;br /&gt;
&lt;br /&gt;
== Example == &lt;br /&gt;
&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
 local e,line,col,name = &amp;quot;&amp;quot;,&amp;quot;&amp;quot;,0,&amp;quot;&amp;quot;&lt;br /&gt;
 local start,color = 3,946&lt;br /&gt;
 while true do&lt;br /&gt;
   local new,total,unread = j.refresh()   &lt;br /&gt;
   if unread &amp;gt; 0 then&lt;br /&gt;
     line = &amp;quot;&amp;quot;&lt;br /&gt;
     local tot,ur = j.count()&lt;br /&gt;
     print(tostring(tot)..' '..tostring(ur))&lt;br /&gt;
     while ur &amp;gt; 0 do&lt;br /&gt;
       line,col,name = j.nextline(true)&lt;br /&gt;
       print(tostring(name)..'|'..tostring(line)..'|'..tostring(col))&lt;br /&gt;
       tot,ur = j.count()&lt;br /&gt;
     end&lt;br /&gt;
     print(sl.exkeyvalstr(j.gmatchcolor(start, color, 'c(ur)')))&lt;br /&gt;
   end&lt;br /&gt;
   wait(50)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; 8 8&lt;br /&gt;
    |Login confirm on RunUO TC|55&lt;br /&gt;
    |Welcome to Ultima Online!|0&lt;br /&gt;
    |Welcome, ximansu! There is currently 1 user online, with 100021 items and 2419 mobiles in the world.|946&lt;br /&gt;
    |Queuing action request 2... 1.6 seconds left.|173&lt;br /&gt;
    |Chat is not currently supported.|946&lt;br /&gt;
    |Finished 3 queued actions in 1.4 seconds.|173&lt;br /&gt;
    |The world is saving, please wait.|53&lt;br /&gt;
    |World save complete. The entire process took 0.2 seconds.|53&lt;br /&gt;
    table keys:values = {&lt;br /&gt;
    1:table keys:values = {&lt;br /&gt;
    1:ur,&lt;br /&gt;
    },&lt;br /&gt;
    2:table keys:values = {&lt;br /&gt;
    1:ur,&lt;br /&gt;
    },&lt;br /&gt;
    linenums:table keys:values = {&lt;br /&gt;
    1:3,&lt;br /&gt;
    2:5,&lt;br /&gt;
    },&lt;br /&gt;
    count:2,&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Use journal to generate a journal tracking/searching object.  Journal takes no arguments and returns a closure with numerous methods simplifying journal access.  All methods work on a passive internal copy of the UO journal, with the exception of [[journal.refresh|refresh]], [[journal.nextline|nextline]], and [[journal.clear|clear]].  Those all cause the internal copy of the journal to be updated with any new data from the associated client journal.  For more information, see the associated member methods.&lt;br /&gt;
&lt;br /&gt;
''Journal is inspired by and partially modeled upon Kal In Ex's journal library.''&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[keymon]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.nextline]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.refresh]]&lt;br /&gt;
&lt;br /&gt;
* [[machine]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;br /&gt;
&lt;br /&gt;
* [[str]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Documentation#String_Functions string]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Journal&amp;diff=1207</id>
		<title>Journal</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Journal&amp;diff=1207"/>
				<updated>2011-01-09T01:20:50Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local j = sl.journal()&lt;br /&gt;
Results&lt;br /&gt;
 j is a journal closure&lt;br /&gt;
&lt;br /&gt;
== Closure Methods ==&lt;br /&gt;
&lt;br /&gt;
* [[journal.clear]]&lt;br /&gt;
* [[journal.count]]&lt;br /&gt;
* [[journal.line]]&lt;br /&gt;
* [[journal.mark]]&lt;br /&gt;
* [[journal.nextln]]&lt;br /&gt;
* [[journal.nextline]]&lt;br /&gt;
* [[journal.refresh]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[journal.find]]&lt;br /&gt;
* [[journal.findcolor]]&lt;br /&gt;
* [[journal.gmatch]]&lt;br /&gt;
* [[journal.gmatchcolor]]&lt;br /&gt;
* [[journal.gsub]]&lt;br /&gt;
* [[journal.gsubcolor]]&lt;br /&gt;
* [[journal.match]]&lt;br /&gt;
* [[journal.matchcolor]]&lt;br /&gt;
* [[journal.sub]]&lt;br /&gt;
* [[journal.subcolor]]&lt;br /&gt;
&lt;br /&gt;
== Example == &lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Use journal to generate a journal tracking/searching object.  Journal takes no arguments and returns a closure with numerous methods simplifying journal access.  All methods work on a passive internal copy of the UO journal, with the exception of [[journal.refresh|refresh]], [[journal.nextline|nextline]], and [[journal.clear|clear]].  Those all cause the internal copy of the journal to be updated with new data from the associated client journal.  For more information, see the associated member methods.&lt;br /&gt;
&lt;br /&gt;
''Journal is inspired by and partially modeled upon Kal In Ex's journal library.''&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[keymon]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.nextline]]&lt;br /&gt;
&lt;br /&gt;
* [[journal.refresh]]&lt;br /&gt;
&lt;br /&gt;
* [[machine]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;br /&gt;
&lt;br /&gt;
* [[str]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Documentation#String_Functions string]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Chosen&amp;diff=1206</id>
		<title>Chosen</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Chosen&amp;diff=1206"/>
				<updated>2011-01-09T01:18:42Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Created page with &amp;quot;== Calling Convention == Call  local a, b, c, r1..r4 = sl.chosen([timeout]) Args  timeout (optional) is the number of milliseconds to wait for UO.TargCurs to return to false Resu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Convention ==&lt;br /&gt;
Call&lt;br /&gt;
 local a, b, c, r1..r4 = sl.chosen([timeout])&lt;br /&gt;
Args&lt;br /&gt;
 timeout (optional) is the number of milliseconds to wait for UO.TargCurs to return to false&lt;br /&gt;
Results&lt;br /&gt;
 a is the current state of UO.TargCurs&lt;br /&gt;
 b is the amount of time transpired, in milliseconds&lt;br /&gt;
 c is the current state of UO.LTargetKind, or 4 if UO.TargCurs is still true&lt;br /&gt;
 r1 is UO.LTargetID iff UO.LTargetKind is 1&lt;br /&gt;
 otherwise&lt;br /&gt;
 r1 is UO.LTargetTile&lt;br /&gt;
 r2 is UO.LTargetX&lt;br /&gt;
 r3 is UO.LTargetY&lt;br /&gt;
 r4 is UO.LTargetZ&lt;br /&gt;
&lt;br /&gt;
== Usage Example ==&lt;br /&gt;
&lt;br /&gt;
 local targ, time = sl.target(1500)&lt;br /&gt;
 print(tostring(targ)..' '..tostring(time))&lt;br /&gt;
 local a,b,c,d, = sl.chosen(5000)&lt;br /&gt;
 print(a,b,c,d)&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt; true 20&lt;br /&gt;
     false 630 1 2541&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Chosen compliments the target method; waiting for UO.TargCurs to toggle to false or timing out.  Override timeout values are specified in milliseconds.  The default timeout is 3 seconds.  Chosen returns the current value of UO.TargCurs, the time elapsed (in ms) during the call, as well as the current value of UO.LTargetKind or the pseudo value 4 if the function timed out.  IF UO.LTargetKind was 1, the UO.LTargetID is also returned, otherwise UO.LTargetTile, UO.LTargetX, UO.LTargetY, and UO.LTargetZ round out the return values.&lt;br /&gt;
&lt;br /&gt;
== Upon Error ==&lt;br /&gt;
&lt;br /&gt;
A timeout argument which cannot be converted to a number is silently converted into the default timeout duration.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[target]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Simplelib&amp;diff=1205</id>
		<title>Simplelib</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Simplelib&amp;diff=1205"/>
				<updated>2011-01-09T01:01:41Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* Other Library Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Purpose and Notes ==&lt;br /&gt;
&lt;br /&gt;
* [[Library Description]]&lt;br /&gt;
&lt;br /&gt;
* [[Document and Usage Conventions]]&lt;br /&gt;
&lt;br /&gt;
* [[Attribution, License, and CopyLeft|Attribution, License, and Disclaimer]]&lt;br /&gt;
&lt;br /&gt;
== Library Initialization and Usage ==&lt;br /&gt;
&lt;br /&gt;
* [[Including simplelib in a Project]]&lt;br /&gt;
&lt;br /&gt;
* [[Changing Default Error Reporting Mode]]&lt;br /&gt;
&lt;br /&gt;
* [[Importing Library Names Into Global Environment]]&lt;br /&gt;
&lt;br /&gt;
* [[Using the Provided try() Exception Handler]]&lt;br /&gt;
&lt;br /&gt;
== Interface Reference ==&lt;br /&gt;
&lt;br /&gt;
=== Closure Generating Method Calls ===&lt;br /&gt;
&lt;br /&gt;
* [[case]]&lt;br /&gt;
&lt;br /&gt;
* [[chain]]&lt;br /&gt;
&lt;br /&gt;
* [[deque]]&lt;br /&gt;
&lt;br /&gt;
* [[file]]&lt;br /&gt;
&lt;br /&gt;
* [[iterator]]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[keymon]]&lt;br /&gt;
&lt;br /&gt;
* [[linklist]]&lt;br /&gt;
&lt;br /&gt;
* [[machine]]&lt;br /&gt;
&lt;br /&gt;
* [[scan]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;br /&gt;
&lt;br /&gt;
=== Library Method Tables ===&lt;br /&gt;
&lt;br /&gt;
* [[alex]]....Reproduce Alexandria library functionality for openeuo.&lt;br /&gt;
&lt;br /&gt;
* [[bmp]].....Image manipulation functions.&lt;br /&gt;
&lt;br /&gt;
* [[luo]].....A table for treating UO variables as functions.&lt;br /&gt;
&lt;br /&gt;
* [[macro]]...Call event macros by name and partial name matching.&lt;br /&gt;
&lt;br /&gt;
* [[str]].....String manipulation functions.&lt;br /&gt;
&lt;br /&gt;
* [[tile]]....Tile searching and caching.&lt;br /&gt;
&lt;br /&gt;
=== Other Library Methods ===&lt;br /&gt;
&lt;br /&gt;
* [[chosen]]&lt;br /&gt;
&lt;br /&gt;
* [[convert]]&lt;br /&gt;
&lt;br /&gt;
* [[deepcopy]]&lt;br /&gt;
&lt;br /&gt;
* [[geterror]]&lt;br /&gt;
&lt;br /&gt;
* [[keys]]&lt;br /&gt;
&lt;br /&gt;
* [[keystr]]&lt;br /&gt;
&lt;br /&gt;
* [[keyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[non]]&lt;br /&gt;
&lt;br /&gt;
* [[tabletolua]]&lt;br /&gt;
&lt;br /&gt;
* [[target]]&lt;br /&gt;
&lt;br /&gt;
* [[try]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[slimport]]&lt;br /&gt;
&lt;br /&gt;
* [[slredirect]]&lt;br /&gt;
&lt;br /&gt;
* [[slverbosity]]&lt;br /&gt;
&lt;br /&gt;
* [[slversion]]&lt;br /&gt;
&lt;br /&gt;
=== Library Constants ===&lt;br /&gt;
&lt;br /&gt;
* [[null]]&lt;br /&gt;
&lt;br /&gt;
* [[EOF]]&lt;br /&gt;
&lt;br /&gt;
* [[ERR]]&lt;br /&gt;
&lt;br /&gt;
* [[simple_lib_soliton__]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Simplelib&amp;diff=1204</id>
		<title>Simplelib</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Simplelib&amp;diff=1204"/>
				<updated>2011-01-09T00:54:34Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* Other Library Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Purpose and Notes ==&lt;br /&gt;
&lt;br /&gt;
* [[Library Description]]&lt;br /&gt;
&lt;br /&gt;
* [[Document and Usage Conventions]]&lt;br /&gt;
&lt;br /&gt;
* [[Attribution, License, and CopyLeft|Attribution, License, and Disclaimer]]&lt;br /&gt;
&lt;br /&gt;
== Library Initialization and Usage ==&lt;br /&gt;
&lt;br /&gt;
* [[Including simplelib in a Project]]&lt;br /&gt;
&lt;br /&gt;
* [[Changing Default Error Reporting Mode]]&lt;br /&gt;
&lt;br /&gt;
* [[Importing Library Names Into Global Environment]]&lt;br /&gt;
&lt;br /&gt;
* [[Using the Provided try() Exception Handler]]&lt;br /&gt;
&lt;br /&gt;
== Interface Reference ==&lt;br /&gt;
&lt;br /&gt;
=== Closure Generating Method Calls ===&lt;br /&gt;
&lt;br /&gt;
* [[case]]&lt;br /&gt;
&lt;br /&gt;
* [[chain]]&lt;br /&gt;
&lt;br /&gt;
* [[deque]]&lt;br /&gt;
&lt;br /&gt;
* [[file]]&lt;br /&gt;
&lt;br /&gt;
* [[iterator]]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[keymon]]&lt;br /&gt;
&lt;br /&gt;
* [[linklist]]&lt;br /&gt;
&lt;br /&gt;
* [[machine]]&lt;br /&gt;
&lt;br /&gt;
* [[scan]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;br /&gt;
&lt;br /&gt;
=== Library Method Tables ===&lt;br /&gt;
&lt;br /&gt;
* [[alex]]....Reproduce Alexandria library functionality for openeuo.&lt;br /&gt;
&lt;br /&gt;
* [[bmp]].....Image manipulation functions.&lt;br /&gt;
&lt;br /&gt;
* [[luo]].....A table for treating UO variables as functions.&lt;br /&gt;
&lt;br /&gt;
* [[macro]]...Call event macros by name and partial name matching.&lt;br /&gt;
&lt;br /&gt;
* [[str]].....String manipulation functions.&lt;br /&gt;
&lt;br /&gt;
* [[tile]]....Tile searching and caching.&lt;br /&gt;
&lt;br /&gt;
=== Other Library Methods ===&lt;br /&gt;
&lt;br /&gt;
* [[convert]]&lt;br /&gt;
&lt;br /&gt;
* [[deepcopy]]&lt;br /&gt;
&lt;br /&gt;
* [[geterror]]&lt;br /&gt;
&lt;br /&gt;
* [[keys]]&lt;br /&gt;
&lt;br /&gt;
* [[keystr]]&lt;br /&gt;
&lt;br /&gt;
* [[keyvalstr]]&lt;br /&gt;
&lt;br /&gt;
* [[non]]&lt;br /&gt;
&lt;br /&gt;
* [[select]]&lt;br /&gt;
&lt;br /&gt;
* [[tabletolua]]&lt;br /&gt;
&lt;br /&gt;
* [[target]]&lt;br /&gt;
&lt;br /&gt;
* [[try]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[slimport]]&lt;br /&gt;
&lt;br /&gt;
* [[slredirect]]&lt;br /&gt;
&lt;br /&gt;
* [[slverbosity]]&lt;br /&gt;
&lt;br /&gt;
* [[slversion]]&lt;br /&gt;
&lt;br /&gt;
=== Library Constants ===&lt;br /&gt;
&lt;br /&gt;
* [[null]]&lt;br /&gt;
&lt;br /&gt;
* [[EOF]]&lt;br /&gt;
&lt;br /&gt;
* [[ERR]]&lt;br /&gt;
&lt;br /&gt;
* [[simple_lib_soliton__]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Keymon.refresh&amp;diff=1203</id>
		<title>Keymon.refresh</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Keymon.refresh&amp;diff=1203"/>
				<updated>2011-01-09T00:36:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: Created page with &amp;quot;== Calling Pattern == Call  local km = sl.keymon(t) later  keymon.refresh()  == Example ==   local t = {    ['ALT SHIFT J']= function() print('ALT SHIFT J') end,    ['CTRL J']   ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local km = sl.keymon(t)&lt;br /&gt;
later&lt;br /&gt;
 keymon.refresh()&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
 local t = {&lt;br /&gt;
   ['ALT SHIFT J']= function() print('ALT SHIFT J') end,&lt;br /&gt;
   ['CTRL J']     = function() print('CTRL J')      end,&lt;br /&gt;
 }&lt;br /&gt;
 local km = sl.keymon(t)&lt;br /&gt;
 while true do&lt;br /&gt;
   km.refresh()&lt;br /&gt;
   wait(30)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; CTRL J&lt;br /&gt;
    ALT SHIFT J&lt;br /&gt;
    ALT SHIFT J&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The keymon refresh method the state of every key necessary and determines which, if any, hotkey is currently pressed.  The keymon generator creates a string from the given table of hotkey=handlerfunction values to quickly assess if any handler should be called and passes this to [[loadstring]].  In the example above, the created internal function looks like:&lt;br /&gt;
&lt;br /&gt;
 local gk = {getkey(&amp;quot;ALT&amp;quot;),getkey(&amp;quot;SHIFT&amp;quot;),getkey(&amp;quot;CTRL&amp;quot;),getkey(&amp;quot;J&amp;quot;),};&lt;br /&gt;
 if  gk[1] == true and gk[2] == true and gk[3] == false and gk[4] == true then return 1 &lt;br /&gt;
 elseif  gk[1] == false and gk[2] == false and gk[3] == true and gk[4] == true then return 2 &lt;br /&gt;
 end;&lt;br /&gt;
&lt;br /&gt;
The result of calling this function is used to look up and invoke the appropriate user supplied handler.  Refresh takes no arguments and normally returns no values.&lt;br /&gt;
&lt;br /&gt;
== Upon Error ==&lt;br /&gt;
&lt;br /&gt;
If one of the hotkey handler functions throws an error during evaluation, an unhandled exception will occur.  In versions 0.09+, any errors thrown will be caught at the keymon.refresh level and handled according to the operant error redirection mode.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[case]]&lt;br /&gt;
&lt;br /&gt;
* [[chain]]&lt;br /&gt;
&lt;br /&gt;
* [[iterator]]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[keymon]]&lt;br /&gt;
&lt;br /&gt;
* [[machine]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Spin.hold&amp;diff=1202</id>
		<title>Spin.hold</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Spin.hold&amp;diff=1202"/>
				<updated>2011-01-09T00:24:31Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local r = sl.spin(a[, b[, ...]])&lt;br /&gt;
later&lt;br /&gt;
 local v,t = r.hold([c[, ...]])&lt;br /&gt;
Args&lt;br /&gt;
 c0..cN are an indefinite number of variadic arguments of any type&lt;br /&gt;
Results&lt;br /&gt;
 v is any type&lt;br /&gt;
 t is a number&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The spin hold method repeatedly calls (around 10 calls per second) the function a passed to the spin constructor until such time as it returns a non-nil value.&lt;br /&gt;
&lt;br /&gt;
At each cycle of evaluation, hold supplies its variadic arguments to all of the functions b0...bM passed to the constructor and evaluates them.  The first result of each is passed as an argument to a in the same order. Then c0...cN round out the remainder of arguments passed to function a. E.g.,&lt;br /&gt;
&lt;br /&gt;
 v = a([b0([c0,...cN]),...bM([c0,...cN])][, c0,...cN])&lt;br /&gt;
&lt;br /&gt;
If a b is encountered which is not a function, it is simply passed as value, unless it is nil in which case it is converted to [[null]] first.&lt;br /&gt;
&lt;br /&gt;
Hold evaluates at least one cycle, and terminates upon any non-nil result v.  The time elapsed during the hold operation, t, is passed back as well.&lt;br /&gt;
&lt;br /&gt;
== Upon Error ==&lt;br /&gt;
&lt;br /&gt;
If one of the passed functions throws an error during evaluation, an unhandled exception will occur.  In version 0.06, any errors thrown will be caught at the spin.hold level and handled according to the operant error redirection mode.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[case]]&lt;br /&gt;
&lt;br /&gt;
* [[chain]]&lt;br /&gt;
&lt;br /&gt;
* [[iterator]]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[machine]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;br /&gt;
&lt;br /&gt;
* [[spin.till]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Spin.till&amp;diff=1201</id>
		<title>Spin.till</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Spin.till&amp;diff=1201"/>
				<updated>2011-01-09T00:23:20Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local r = sl.spin(a[, b[, ...]])&lt;br /&gt;
later&lt;br /&gt;
 local v,t = r.till(d[,c[, ...]])&lt;br /&gt;
Args&lt;br /&gt;
 d is a number, the timeout in milliseconds&lt;br /&gt;
 c0..cN are an indefinite number of variadic arguments of any type&lt;br /&gt;
Results&lt;br /&gt;
 v is any type&lt;br /&gt;
 t is a number&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The spin till method repeatedly calls (around 10 times per second) the function a passed to the spin constructor until such time as it returns a non-nil value or the timeout duration d is exceeded.&lt;br /&gt;
&lt;br /&gt;
At each cycle of evaluation, till supplies its variadic arguments to all of the functions b0...bM passed to the constructor and evaluates them.  The first result of each is passed as an argument to a in the same order. Then c0...cN, if any, round out the remainder of arguments passed to function a. E.g.,&lt;br /&gt;
&lt;br /&gt;
 v = a([b0([c0,...cN]),...bM([c0,...cN])][, c0,...cN])&lt;br /&gt;
&lt;br /&gt;
If an argument b was specified which is not a function, it is simply passed as value, unless it is nil in which case it is converted to [[null]] first.&lt;br /&gt;
&lt;br /&gt;
Till evaluates at least one cycle, and terminates upon any non-nil result v or if the specified timeout duration d is exceeded. The time elapsed during the till operation, t, is passed back as well.&lt;br /&gt;
&lt;br /&gt;
== Upon Error ==&lt;br /&gt;
&lt;br /&gt;
If one of the passed functions throws an error during evaluation, an unhandled exception will occur.  In version 0.06, any errors thrown will be caught at the spin.till level and handled according to the operant error redirection mode.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[case]]&lt;br /&gt;
&lt;br /&gt;
* [[iterator]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;br /&gt;
&lt;br /&gt;
* [[spin.hold]]&lt;br /&gt;
&lt;br /&gt;
* [[chain]]&lt;br /&gt;
&lt;br /&gt;
* [[machine]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	<entry>
		<id>http://www.easyuo.com/openeuo/wiki/index.php?title=Keymon&amp;diff=1200</id>
		<title>Keymon</title>
		<link rel="alternate" type="text/html" href="http://www.easyuo.com/openeuo/wiki/index.php?title=Keymon&amp;diff=1200"/>
				<updated>2011-01-09T00:18:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ximan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calling Pattern ==&lt;br /&gt;
Call&lt;br /&gt;
 local km = sl.keymon(t)&lt;br /&gt;
Args&lt;br /&gt;
 t is a table&lt;br /&gt;
Results&lt;br /&gt;
 km is a key monitor closure&lt;br /&gt;
&lt;br /&gt;
== Closure Methods ==&lt;br /&gt;
&lt;br /&gt;
* [[keymon.refresh]]&lt;br /&gt;
&lt;br /&gt;
== Example == &lt;br /&gt;
&lt;br /&gt;
 local t = {&lt;br /&gt;
   ['ALT SHIFT J']= function() print('ALT SHIFT J') end,&lt;br /&gt;
   ['CTRL J']     = function() print('CTRL J')      end,&lt;br /&gt;
   ['Q W']        = function() print('Q W')         end,&lt;br /&gt;
 }&lt;br /&gt;
 local km = sl.keymon(t)&lt;br /&gt;
 while true do&lt;br /&gt;
   km.refresh()&lt;br /&gt;
   wait(30)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; ALT SHIFT J&lt;br /&gt;
    ALT SHIFT J&lt;br /&gt;
    CTRL J&lt;br /&gt;
    ALT SHIFT J&lt;br /&gt;
    Q W&lt;br /&gt;
    Q W&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Use keymon to generate a hotkey processing engine.  The sole argument to keymon is a table whose keys are strings made up of hotkey combinations (separated by spaces) and whose values are the associated functions to call.  A keymon closure exposes one method, [[keymon.refresh|refresh]], which will scan all the possible keys necessary to check all of the hotkey combinations, determine which combo, if any, has been pressed, and invokes the associated handler.&lt;br /&gt;
&lt;br /&gt;
Hotkeys are specified by the same strings that are available to [[getkey]].  See [[keymon.refresh]] for further operational details.&lt;br /&gt;
&lt;br /&gt;
== Upon Error ==&lt;br /&gt;
&lt;br /&gt;
If keymon receives no parameter or if the provided parameter is not a table, keymon issues an error to be handled according to the operant error reporting mode.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.easyuo.com/openeuo/wiki/index.php/Simplelib simplelib]&lt;br /&gt;
&lt;br /&gt;
* [[getkey]]&lt;br /&gt;
&lt;br /&gt;
* [[journal]]&lt;br /&gt;
&lt;br /&gt;
* [[keymon.refresh]]&lt;br /&gt;
&lt;br /&gt;
* [[spin]]&lt;/div&gt;</summary>
		<author><name>Ximan</name></author>	</entry>

	</feed>