<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.uooutlands.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jaedan</id>
	<title>UO Outlands Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.uooutlands.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jaedan"/>
	<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/Special:Contributions/Jaedan"/>
	<updated>2026-05-19T01:08:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11977</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11977"/>
		<updated>2021-08-05T15:24:55Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Modified Commands and Expressions==&lt;br /&gt;
&lt;br /&gt;
Several commands and expressions that search by type have been greatly expanded:&lt;br /&gt;
&lt;br /&gt;
===dclicktype===&lt;br /&gt;
  dclicktype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
===findtype===&lt;br /&gt;
  findtype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
===targettype===&lt;br /&gt;
  targettype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
===lifttype===&lt;br /&gt;
  lifttype (&#039;name&#039;) OR (&#039;graphic&#039;) [amount] [src] [hue]&lt;br /&gt;
&lt;br /&gt;
The hue allows limiting by hue. The source may be the serial of a specific container, &#039;self&#039; for equipped items, or &#039;ground&#039;. The quantity is the minimum quantity, and the range is the maximum range from the player.&lt;br /&gt;
The lifttype expression is further limited to only operate on &#039;backpack&#039;, &#039;self&#039;, or &#039;ground&#039; sources.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Aliases==&lt;br /&gt;
&lt;br /&gt;
===ground===&lt;br /&gt;
The &#039;ground&#039; alias is now available. This is useful in the expanded targeting commands as the &amp;quot;source&amp;quot; parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Expressions==&lt;br /&gt;
&lt;br /&gt;
===find===&lt;br /&gt;
Searching based on a serial number is now possible with the find expression:&lt;br /&gt;
&lt;br /&gt;
  if find (serial) [src] [hue] [qty] [range]&lt;br /&gt;
&lt;br /&gt;
The parameters work exactly like the findtype command.&lt;br /&gt;
&lt;br /&gt;
===findlayer===&lt;br /&gt;
Searching a character for equipped items is now possible:&lt;br /&gt;
&lt;br /&gt;
  if findlayer self gloves as mygloves&lt;br /&gt;
    overhead &#039;Wearing gloves!&#039;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid layers are:&lt;br /&gt;
  righthand&lt;br /&gt;
  lefthand&lt;br /&gt;
  shoes&lt;br /&gt;
  pants&lt;br /&gt;
  shirt&lt;br /&gt;
  head&lt;br /&gt;
  gloves&lt;br /&gt;
  ring&lt;br /&gt;
  talisman&lt;br /&gt;
  neck&lt;br /&gt;
  hair&lt;br /&gt;
  waist&lt;br /&gt;
  innertorso&lt;br /&gt;
  bracelet&lt;br /&gt;
  face&lt;br /&gt;
  facialhair&lt;br /&gt;
  middletorso&lt;br /&gt;
  earrings&lt;br /&gt;
  arms&lt;br /&gt;
  cloak&lt;br /&gt;
  backpack&lt;br /&gt;
  outertorso&lt;br /&gt;
  outerlegs&lt;br /&gt;
  innerlegs&lt;br /&gt;
&lt;br /&gt;
===targetexists===&lt;br /&gt;
An expression to test whether the client currently has a target cursor up:&lt;br /&gt;
&lt;br /&gt;
  if targetexists [&#039;any&#039;/&#039;beneficial&#039;/&#039;harmful]&lt;br /&gt;
&lt;br /&gt;
===followers===&lt;br /&gt;
An expression to count your current followers:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===hue===&lt;br /&gt;
An expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue someObject = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===name===&lt;br /&gt;
An expression to get your current character&#039;s name:&lt;br /&gt;
&lt;br /&gt;
  if name = &#039;MyName&#039;&lt;br /&gt;
    overhead &amp;quot;It&#039;s me!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===paralyzed===&lt;br /&gt;
An expression to test if your character is paralyzed:&lt;br /&gt;
&lt;br /&gt;
  if paralyzed&lt;br /&gt;
    overhead &amp;quot;Can&#039;t move!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===blessed===&lt;br /&gt;
An expression to test if your character is blessed (yellow health bar):&lt;br /&gt;
&lt;br /&gt;
  if blessed&lt;br /&gt;
    overhead &amp;quot;I&#039;m gonna live forever!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===warmode===&lt;br /&gt;
An expression to test if your character is in warmode:&lt;br /&gt;
&lt;br /&gt;
  if warmode&lt;br /&gt;
    overhead &amp;quot;Ready to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===noto===&lt;br /&gt;
An expression to check any mobile&#039;s notoriety:&lt;br /&gt;
&lt;br /&gt;
  if noto some_Mobile = hostile&lt;br /&gt;
    overhead &amp;quot;Safe to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid notorieties are&lt;br /&gt;
  innocent (blue)&lt;br /&gt;
  friend (green)&lt;br /&gt;
  hostile (gray)&lt;br /&gt;
  criminal (gray)&lt;br /&gt;
  enemy (orange)&lt;br /&gt;
  murderer (red)&lt;br /&gt;
  invulnerable (yellow)&lt;br /&gt;
&lt;br /&gt;
===dead===&lt;br /&gt;
An expression to check if a mobile is dead:&lt;br /&gt;
&lt;br /&gt;
  if dead someMobile&lt;br /&gt;
    overhead &amp;quot;He&#039;s dead, Jim!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===maxweight===&lt;br /&gt;
&lt;br /&gt;
   if maxweight &amp;gt; 400&lt;br /&gt;
      overhead &amp;quot;I have a lot of strength&amp;quot;&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
===diffweight===&lt;br /&gt;
&lt;br /&gt;
  if diffweight &amp;gt; 20&lt;br /&gt;
    overhead &amp;quot;I can lift 20 more stone&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===diffhits===&lt;br /&gt;
&lt;br /&gt;
  if diffhits &amp;gt; 40&lt;br /&gt;
    overhead &amp;quot;I need a heal!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===diffmana===&lt;br /&gt;
&lt;br /&gt;
  if diffmana &amp;gt; 40&lt;br /&gt;
    useskill Meditation&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===diffstam===&lt;br /&gt;
&lt;br /&gt;
  if diffstam &amp;gt; 30&lt;br /&gt;
    overhead &amp;quot;Need stamina&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===counttype===&lt;br /&gt;
&lt;br /&gt;
  if counttype (name or graphic) [src] [hue] [range]&lt;br /&gt;
&lt;br /&gt;
===gumpexists===&lt;br /&gt;
&lt;br /&gt;
  if gumpexists (gumpId/&#039;any&#039;)&lt;br /&gt;
&lt;br /&gt;
Returns true if the gump exists.&lt;br /&gt;
&lt;br /&gt;
===ingump===&lt;br /&gt;
&lt;br /&gt;
  if ingump (text) [gumpId/&#039;any&#039;]&lt;br /&gt;
&lt;br /&gt;
Look for text in the given gump.&lt;br /&gt;
&lt;br /&gt;
==New Commands==&lt;br /&gt;
&lt;br /&gt;
===setvar===&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
===unsetvar===&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modifiers as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
===ignore/clearignore===&lt;br /&gt;
An ignore list has been added to avoid finding objects when using the various search commands:&lt;br /&gt;
&lt;br /&gt;
  ignore (serial)&lt;br /&gt;
  clearignore&lt;br /&gt;
&lt;br /&gt;
This also supports the same operators as setvar for controlling the scope of the ignore list.&lt;br /&gt;
 &lt;br /&gt;
===warmode=== &lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
===getlabel===&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
===rename===&lt;br /&gt;
A command to rename followers has been added:&lt;br /&gt;
&lt;br /&gt;
  rename myFollower Bob&lt;br /&gt;
&lt;br /&gt;
===setskill===&lt;br /&gt;
A command to set skill gain locks has been added:&lt;br /&gt;
&lt;br /&gt;
  setskill Blacksmithing up&lt;br /&gt;
&lt;br /&gt;
The valid choices are up, down, or locked.&lt;br /&gt;
&lt;br /&gt;
===waitforgump===&lt;br /&gt;
&lt;br /&gt;
  waitforgump [gumpId]&lt;br /&gt;
&lt;br /&gt;
Wait for a gump to appear. If a gump ID is provided, wait for that particular gump. Otherwise, wait for the next gump.&lt;br /&gt;
&lt;br /&gt;
===gumpresponse===&lt;br /&gt;
&lt;br /&gt;
  gumpresponse (buttonId) [gumpId]&lt;br /&gt;
&lt;br /&gt;
Press the given button on the give gump (or the last gump that opened)&lt;br /&gt;
&lt;br /&gt;
===gumpclose===&lt;br /&gt;
&lt;br /&gt;
  gumpclose [gumpId]&lt;br /&gt;
&lt;br /&gt;
Close the given gump or the last gump that opened if no gumpId is specified.&lt;br /&gt;
&lt;br /&gt;
==New Operators==&lt;br /&gt;
&lt;br /&gt;
===as===&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===in===&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
===createlist===&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
===clearlist===&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
===removelist===&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
===pushlist===&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
===poplist===&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
===listexists===&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
===list===&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
===inlist===&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
===Iterating lists===&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
===createtimer===&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
===removetimer===&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
===settimer===&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
===timer===&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
===timerexists===&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11973</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11973"/>
		<updated>2021-08-03T23:13:47Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Modified Commands and Expressions==&lt;br /&gt;
&lt;br /&gt;
Several commands and expressions that search by type have been greatly expanded:&lt;br /&gt;
&lt;br /&gt;
===dclicktype===&lt;br /&gt;
  dclicktype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
===findtype===&lt;br /&gt;
  findtype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
===targettype===&lt;br /&gt;
  targettype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
===lifttype===&lt;br /&gt;
  lifttype (&#039;name&#039;) OR (&#039;graphic&#039;) [amount] [src] [hue]&lt;br /&gt;
&lt;br /&gt;
The hue allows limiting by hue. The source may be the serial of a specific container, &#039;self&#039; for equipped items, or &#039;ground&#039;. The quantity is the minimum quantity, and the range is the maximum range from the player.&lt;br /&gt;
The lifttype expression is further limited to only operate on &#039;backpack&#039;, &#039;self&#039;, or &#039;ground&#039; sources.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Aliases==&lt;br /&gt;
&lt;br /&gt;
===ground===&lt;br /&gt;
The &#039;ground&#039; alias is now available. This is useful in the expanded targeting commands as the &amp;quot;source&amp;quot; parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Expressions==&lt;br /&gt;
&lt;br /&gt;
===find===&lt;br /&gt;
Searching based on a serial number is now possible with the find expression:&lt;br /&gt;
&lt;br /&gt;
  if find (serial) [src] [hue] [qty] [range]&lt;br /&gt;
&lt;br /&gt;
The parameters work exactly like the findtype command.&lt;br /&gt;
&lt;br /&gt;
===findlayer===&lt;br /&gt;
Searching a character for equipped items is now possible:&lt;br /&gt;
&lt;br /&gt;
  if findlayer self gloves as mygloves&lt;br /&gt;
    overhead &#039;Wearing gloves!&#039;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid layers are:&lt;br /&gt;
  righthand&lt;br /&gt;
  lefthand&lt;br /&gt;
  shoes&lt;br /&gt;
  pants&lt;br /&gt;
  shirt&lt;br /&gt;
  head&lt;br /&gt;
  gloves&lt;br /&gt;
  ring&lt;br /&gt;
  talisman&lt;br /&gt;
  neck&lt;br /&gt;
  hair&lt;br /&gt;
  waist&lt;br /&gt;
  innertorso&lt;br /&gt;
  bracelet&lt;br /&gt;
  face&lt;br /&gt;
  facialhair&lt;br /&gt;
  middletorso&lt;br /&gt;
  earrings&lt;br /&gt;
  arms&lt;br /&gt;
  cloak&lt;br /&gt;
  backpack&lt;br /&gt;
  outertorso&lt;br /&gt;
  outerlegs&lt;br /&gt;
  innerlegs&lt;br /&gt;
&lt;br /&gt;
===targetexists===&lt;br /&gt;
An expression to test whether the client currently has a target cursor up:&lt;br /&gt;
&lt;br /&gt;
  if targetexists [&#039;any&#039;/&#039;beneficial&#039;/&#039;harmful]&lt;br /&gt;
&lt;br /&gt;
===followers===&lt;br /&gt;
An expression to count your current followers:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===hue===&lt;br /&gt;
An expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue someObject = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===name===&lt;br /&gt;
An expression to get your current character&#039;s name:&lt;br /&gt;
&lt;br /&gt;
  if name = &#039;MyName&#039;&lt;br /&gt;
    overhead &amp;quot;It&#039;s me!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===paralyzed===&lt;br /&gt;
An expression to test if your character is paralyzed:&lt;br /&gt;
&lt;br /&gt;
  if paralyzed&lt;br /&gt;
    overhead &amp;quot;Can&#039;t move!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===blessed===&lt;br /&gt;
An expression to test if your character is blessed (yellow health bar):&lt;br /&gt;
&lt;br /&gt;
  if blessed&lt;br /&gt;
    overhead &amp;quot;I&#039;m gonna live forever!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===warmode===&lt;br /&gt;
An expression to test if your character is in warmode:&lt;br /&gt;
&lt;br /&gt;
  if warmode&lt;br /&gt;
    overhead &amp;quot;Ready to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===noto===&lt;br /&gt;
An expression to check any mobile&#039;s notoriety:&lt;br /&gt;
&lt;br /&gt;
  if noto some_Mobile = hostile&lt;br /&gt;
    overhead &amp;quot;Safe to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid notorieties are&lt;br /&gt;
  innocent (blue)&lt;br /&gt;
  friend (green)&lt;br /&gt;
  hostile (gray)&lt;br /&gt;
  criminal (gray)&lt;br /&gt;
  enemy (orange)&lt;br /&gt;
  murderer (red)&lt;br /&gt;
  invulnerable (yellow)&lt;br /&gt;
&lt;br /&gt;
===dead===&lt;br /&gt;
An expression to check if a mobile is dead:&lt;br /&gt;
&lt;br /&gt;
  if dead someMobile&lt;br /&gt;
    overhead &amp;quot;He&#039;s dead, Jim!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===maxweight===&lt;br /&gt;
&lt;br /&gt;
   if maxweight &amp;gt; 400&lt;br /&gt;
      overhead &amp;quot;I have a lot of strength&amp;quot;&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
===diffweight===&lt;br /&gt;
&lt;br /&gt;
  if diffweight &amp;gt; 20&lt;br /&gt;
    overhead &amp;quot;I can lift 20 more stone&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===diffhits===&lt;br /&gt;
&lt;br /&gt;
  if diffhits &amp;gt; 40&lt;br /&gt;
    overhead &amp;quot;I need a heal!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===diffmana===&lt;br /&gt;
&lt;br /&gt;
  if diffmana &amp;gt; 40&lt;br /&gt;
    useskill Meditation&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===diffstam===&lt;br /&gt;
&lt;br /&gt;
  if diffstam &amp;gt; 30&lt;br /&gt;
    overhead &amp;quot;Need stamina&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===counttype===&lt;br /&gt;
&lt;br /&gt;
  if counttype (name or graphic) [src] [hue] [range]&lt;br /&gt;
&lt;br /&gt;
==New Commands==&lt;br /&gt;
&lt;br /&gt;
===setvar===&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
===unsetvar===&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modifiers as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
===ignore/clearignore===&lt;br /&gt;
An ignore list has been added to avoid finding objects when using the various search commands:&lt;br /&gt;
&lt;br /&gt;
  ignore (serial)&lt;br /&gt;
  clearignore&lt;br /&gt;
&lt;br /&gt;
This also supports the same operators as setvar for controlling the scope of the ignore list.&lt;br /&gt;
 &lt;br /&gt;
===warmode=== &lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
===getlabel===&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
===rename===&lt;br /&gt;
A command to rename followers has been added:&lt;br /&gt;
&lt;br /&gt;
  rename myFollower Bob&lt;br /&gt;
&lt;br /&gt;
===setskill===&lt;br /&gt;
A command to set skill gain locks has been added:&lt;br /&gt;
&lt;br /&gt;
  setskill Blacksmithing up&lt;br /&gt;
&lt;br /&gt;
The valid choices are up, down, or locked.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Operators==&lt;br /&gt;
&lt;br /&gt;
===as===&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===in===&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
===createlist===&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
===clearlist===&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
===removelist===&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
===pushlist===&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
===poplist===&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
===listexists===&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
===list===&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
===inlist===&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
===Iterating lists===&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
===createtimer===&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
===removetimer===&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
===settimer===&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
===timer===&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
===timerexists===&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11972</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11972"/>
		<updated>2021-08-03T23:10:23Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Modified Commands and Expressions==&lt;br /&gt;
&lt;br /&gt;
Several commands and expressions that search by type have been greatly expanded:&lt;br /&gt;
&lt;br /&gt;
===dclicktype===&lt;br /&gt;
  dclicktype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
===findtype===&lt;br /&gt;
  findtype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
===targettype===&lt;br /&gt;
  targettype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
===lifttype===&lt;br /&gt;
  lifttype (&#039;name&#039;) OR (&#039;graphic&#039;) [amount] [src] [hue]&lt;br /&gt;
&lt;br /&gt;
The hue allows limiting by hue. The source may be the serial of a specific container, &#039;self&#039; for equipped items, or &#039;ground&#039;. The quantity is the minimum quantity, and the range is the maximum range from the player.&lt;br /&gt;
The lifttype expression is further limited to only operate on &#039;backpack&#039;, &#039;self&#039;, or &#039;ground&#039; sources.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Aliases==&lt;br /&gt;
&lt;br /&gt;
===ground===&lt;br /&gt;
The &#039;ground&#039; alias is now available. This is useful in the expanded targeting commands as the &amp;quot;source&amp;quot; parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Expressions==&lt;br /&gt;
&lt;br /&gt;
===find===&lt;br /&gt;
Searching based on a serial number is now possible with the find expression:&lt;br /&gt;
&lt;br /&gt;
  if find (serial) [src] [hue] [qty] [range]&lt;br /&gt;
&lt;br /&gt;
The parameters work exactly like the findtype command.&lt;br /&gt;
&lt;br /&gt;
===findlayer===&lt;br /&gt;
Searching a character for equipped items is now possible:&lt;br /&gt;
&lt;br /&gt;
  if findlayer self gloves as mygloves&lt;br /&gt;
    overhead &#039;Wearing gloves!&#039;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid layers are:&lt;br /&gt;
  righthand&lt;br /&gt;
  lefthand&lt;br /&gt;
  shoes&lt;br /&gt;
  pants&lt;br /&gt;
  shirt&lt;br /&gt;
  head&lt;br /&gt;
  gloves&lt;br /&gt;
  ring&lt;br /&gt;
  talisman&lt;br /&gt;
  neck&lt;br /&gt;
  hair&lt;br /&gt;
  waist&lt;br /&gt;
  innertorso&lt;br /&gt;
  bracelet&lt;br /&gt;
  face&lt;br /&gt;
  facialhair&lt;br /&gt;
  middletorso&lt;br /&gt;
  earrings&lt;br /&gt;
  arms&lt;br /&gt;
  cloak&lt;br /&gt;
  backpack&lt;br /&gt;
  outertorso&lt;br /&gt;
  outerlegs&lt;br /&gt;
  innerlegs&lt;br /&gt;
&lt;br /&gt;
===targetexists===&lt;br /&gt;
An expression to test whether the client currently has a target cursor up:&lt;br /&gt;
&lt;br /&gt;
  if targetexists [&#039;any&#039;/&#039;beneficial&#039;/&#039;harmful]&lt;br /&gt;
&lt;br /&gt;
===followers===&lt;br /&gt;
An expression to count your current followers:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===hue===&lt;br /&gt;
An expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue someObject = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===name===&lt;br /&gt;
An expression to get your current character&#039;s name:&lt;br /&gt;
&lt;br /&gt;
  if name = &#039;MyName&#039;&lt;br /&gt;
    overhead &amp;quot;It&#039;s me!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===paralyzed===&lt;br /&gt;
An expression to test if your character is paralyzed:&lt;br /&gt;
&lt;br /&gt;
  if paralyzed&lt;br /&gt;
    overhead &amp;quot;Can&#039;t move!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===blessed===&lt;br /&gt;
An expression to test if your character is blessed (yellow health bar):&lt;br /&gt;
&lt;br /&gt;
  if blessed&lt;br /&gt;
    overhead &amp;quot;I&#039;m gonna live forever!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===warmode===&lt;br /&gt;
An expression to test if your character is in warmode:&lt;br /&gt;
&lt;br /&gt;
  if warmode&lt;br /&gt;
    overhead &amp;quot;Ready to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===noto===&lt;br /&gt;
An expression to check any mobile&#039;s notoriety:&lt;br /&gt;
&lt;br /&gt;
  if noto some_Mobile = hostile&lt;br /&gt;
    overhead &amp;quot;Safe to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid notorieties are&lt;br /&gt;
  innocent (blue)&lt;br /&gt;
  friend (green)&lt;br /&gt;
  hostile (gray)&lt;br /&gt;
  criminal (gray)&lt;br /&gt;
  enemy (orange)&lt;br /&gt;
  murderer (red)&lt;br /&gt;
  invulnerable (yellow)&lt;br /&gt;
&lt;br /&gt;
===dead===&lt;br /&gt;
An expression to check if a mobile is dead:&lt;br /&gt;
&lt;br /&gt;
  if dead someMobile&lt;br /&gt;
    overhead &amp;quot;He&#039;s dead, Jim!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Commands==&lt;br /&gt;
&lt;br /&gt;
===setvar===&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
===unsetvar===&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modifiers as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
===ignore/clearignore===&lt;br /&gt;
An ignore list has been added to avoid finding objects when using the various search commands:&lt;br /&gt;
&lt;br /&gt;
  ignore (serial)&lt;br /&gt;
  clearignore&lt;br /&gt;
&lt;br /&gt;
This also supports the same operators as setvar for controlling the scope of the ignore list.&lt;br /&gt;
 &lt;br /&gt;
===warmode=== &lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
===getlabel===&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
===rename===&lt;br /&gt;
A command to rename followers has been added:&lt;br /&gt;
&lt;br /&gt;
  rename myFollower Bob&lt;br /&gt;
&lt;br /&gt;
===setskill===&lt;br /&gt;
A command to set skill gain locks has been added:&lt;br /&gt;
&lt;br /&gt;
  setskill Blacksmithing up&lt;br /&gt;
&lt;br /&gt;
The valid choices are up, down, or locked.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Operators==&lt;br /&gt;
&lt;br /&gt;
===as===&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
===in===&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
===createlist===&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
===clearlist===&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
===removelist===&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
===pushlist===&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
===poplist===&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
===listexists===&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
===list===&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
===inlist===&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
===Iterating lists===&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
===createtimer===&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
===removetimer===&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
===settimer===&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
===timer===&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
===timerexists===&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11959</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11959"/>
		<updated>2021-07-20T04:07:05Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Modified Commands and Expressions==&lt;br /&gt;
&lt;br /&gt;
Several commands and expressions that search by type have been greatly expanded:&lt;br /&gt;
&lt;br /&gt;
  dclicktype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  findtype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  targettype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  lifttype (&#039;name&#039;) OR (&#039;graphic&#039;) [amount] [src] [hue]&lt;br /&gt;
&lt;br /&gt;
The hue allows limiting by hue. The source may be the serial of a specific container, &#039;self&#039; for equipped items, or &#039;ground&#039;. The quantity is the minimum quantity, and the range is the maximum range from the player.&lt;br /&gt;
The lifttype expression is further limited to only operate on &#039;backpack&#039;, &#039;self&#039;, or &#039;ground&#039; sources.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Aliases==&lt;br /&gt;
&lt;br /&gt;
The &#039;ground&#039; alias is now available. This is useful in the expanded targeting commands as the &amp;quot;source&amp;quot; parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Expressions==&lt;br /&gt;
&lt;br /&gt;
Searching based on a serial number is now possible with the find expression:&lt;br /&gt;
&lt;br /&gt;
  if find (serial) [src] [hue] [qty] [range]&lt;br /&gt;
&lt;br /&gt;
The parameters work exactly like the findtype command.&lt;br /&gt;
&lt;br /&gt;
Searching a character for equipped items is now possible:&lt;br /&gt;
&lt;br /&gt;
  if findlayer self gloves as mygloves&lt;br /&gt;
    overhead &#039;Wearing gloves!&#039;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid layers are:&lt;br /&gt;
  righthand&lt;br /&gt;
  lefthand&lt;br /&gt;
  shoes&lt;br /&gt;
  pants&lt;br /&gt;
  shirt&lt;br /&gt;
  head&lt;br /&gt;
  gloves&lt;br /&gt;
  ring&lt;br /&gt;
  talisman&lt;br /&gt;
  neck&lt;br /&gt;
  hair&lt;br /&gt;
  waist&lt;br /&gt;
  innertorso&lt;br /&gt;
  bracelet&lt;br /&gt;
  face&lt;br /&gt;
  facialhair&lt;br /&gt;
  middletorso&lt;br /&gt;
  earrings&lt;br /&gt;
  arms&lt;br /&gt;
  cloak&lt;br /&gt;
  backpack&lt;br /&gt;
  outertorso&lt;br /&gt;
  outerlegs&lt;br /&gt;
  innerlegs&lt;br /&gt;
&lt;br /&gt;
An expression to test whether the client currently has a target cursor up:&lt;br /&gt;
&lt;br /&gt;
  if targetexists [&#039;any&#039;/&#039;beneficial&#039;/&#039;harmful]&lt;br /&gt;
&lt;br /&gt;
An expression to count your current followers:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue someObject = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get your current character&#039;s name:&lt;br /&gt;
&lt;br /&gt;
  if name = &#039;MyName&#039;&lt;br /&gt;
    overhead &amp;quot;It&#039;s me!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is paralyzed:&lt;br /&gt;
&lt;br /&gt;
  if paralyzed&lt;br /&gt;
    overhead &amp;quot;Can&#039;t move!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is blessed (yellow health bar):&lt;br /&gt;
&lt;br /&gt;
  if blessed&lt;br /&gt;
    overhead &amp;quot;I&#039;m gonna live forever!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is in warmode:&lt;br /&gt;
&lt;br /&gt;
  if warmode&lt;br /&gt;
    overhead &amp;quot;Ready to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to check any mobile&#039;s notoriety:&lt;br /&gt;
&lt;br /&gt;
  if noto some_Mobile = hostile&lt;br /&gt;
    overhead &amp;quot;Safe to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid notorieties are&lt;br /&gt;
  innocent (blue)&lt;br /&gt;
  friend (green)&lt;br /&gt;
  hostile (gray)&lt;br /&gt;
  criminal (gray)&lt;br /&gt;
  enemy (orange)&lt;br /&gt;
  murderer (red)&lt;br /&gt;
  invulnerable (yellow)&lt;br /&gt;
&lt;br /&gt;
An expression to check if a mobile is dead:&lt;br /&gt;
&lt;br /&gt;
  if dead someMobile&lt;br /&gt;
    overhead &amp;quot;He&#039;s dead, Jim!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Commands==&lt;br /&gt;
&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modifiers as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
An ignore list has been added to avoid finding objects when using the various search commands:&lt;br /&gt;
&lt;br /&gt;
  ignore (serial)&lt;br /&gt;
  clearignore&lt;br /&gt;
&lt;br /&gt;
This also supports the same operators as setvar for controlling the scope of the ignore list.&lt;br /&gt;
  &lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
*Note that this will need a server patch to function correctly.&lt;br /&gt;
&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
A command to rename followers has been added:&lt;br /&gt;
&lt;br /&gt;
  rename myFollower Bob&lt;br /&gt;
&lt;br /&gt;
A command to set skill gain locks has been added:&lt;br /&gt;
&lt;br /&gt;
  setskill Blacksmithing up&lt;br /&gt;
&lt;br /&gt;
The valid choices are up, down, or locked.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==New Operators==&lt;br /&gt;
&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11946</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11946"/>
		<updated>2021-07-15T04:37:17Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Modified Commands and Expressions==&lt;br /&gt;
&lt;br /&gt;
Several commands and expressions that search by type have been greatly expanded:&lt;br /&gt;
&lt;br /&gt;
  dclicktype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  findtype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  targettype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  lifttype (&#039;name&#039;) OR (&#039;graphic&#039;) [amount] [src] [hue]&lt;br /&gt;
&lt;br /&gt;
The hue allows limiting by hue. The source may be the serial of a specific container, &#039;self&#039; for equipped items, or &#039;ground&#039;. The quantity is the minimum quantity, and the range is the maximum range from the player.&lt;br /&gt;
The lifttype expression is further limited to only operate on &#039;backpack&#039;, &#039;self&#039;, or &#039;ground&#039; sources.&lt;br /&gt;
&lt;br /&gt;
==New Aliases==&lt;br /&gt;
&lt;br /&gt;
The &#039;ground&#039; alias is now available. This is useful in the expanded targeting commands as the &amp;quot;source&amp;quot; parameter.&lt;br /&gt;
&lt;br /&gt;
==New Expressions==&lt;br /&gt;
&lt;br /&gt;
Searching based on a serial number is now possible with the find expression:&lt;br /&gt;
&lt;br /&gt;
  if find (serial) [src] [hue] [qty] [range]&lt;br /&gt;
&lt;br /&gt;
The parameters work exactly like the findtype command.&lt;br /&gt;
&lt;br /&gt;
Searching a character for equipped items is now possible:&lt;br /&gt;
&lt;br /&gt;
  if findlayer self gloves as mygloves&lt;br /&gt;
    overhead &#039;Wearing gloves!&#039;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid layers are:&lt;br /&gt;
  righthand&lt;br /&gt;
  lefthand&lt;br /&gt;
  shoes&lt;br /&gt;
  pants&lt;br /&gt;
  shirt&lt;br /&gt;
  head&lt;br /&gt;
  gloves&lt;br /&gt;
  ring&lt;br /&gt;
  talisman&lt;br /&gt;
  neck&lt;br /&gt;
  hair&lt;br /&gt;
  waist&lt;br /&gt;
  innertorso&lt;br /&gt;
  bracelet&lt;br /&gt;
  face&lt;br /&gt;
  facialhair&lt;br /&gt;
  middletorso&lt;br /&gt;
  earrings&lt;br /&gt;
  arms&lt;br /&gt;
  cloak&lt;br /&gt;
  backpack&lt;br /&gt;
  outertorso&lt;br /&gt;
  outerlegs&lt;br /&gt;
  innerlegs&lt;br /&gt;
&lt;br /&gt;
An expression to test whether the client currently has a target cursor up:&lt;br /&gt;
&lt;br /&gt;
  if targetexists [&#039;any&#039;/&#039;beneficial&#039;/&#039;harmful]&lt;br /&gt;
&lt;br /&gt;
An expression to count your current followers:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue someObject = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get your current character&#039;s name:&lt;br /&gt;
&lt;br /&gt;
  if name = &#039;MyName&#039;&lt;br /&gt;
    overhead &amp;quot;It&#039;s me!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is paralyzed:&lt;br /&gt;
&lt;br /&gt;
  if paralyzed&lt;br /&gt;
    overhead &amp;quot;Can&#039;t move!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is blessed (yellow health bar):&lt;br /&gt;
&lt;br /&gt;
  if blessed&lt;br /&gt;
    overhead &amp;quot;I&#039;m gonna live forever!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is in warmode:&lt;br /&gt;
&lt;br /&gt;
  if warmode&lt;br /&gt;
    overhead &amp;quot;Ready to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to check any mobile&#039;s notoriety:&lt;br /&gt;
&lt;br /&gt;
  if noto some_Mobile = hostile&lt;br /&gt;
    overhead &amp;quot;Safe to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid notorieties are&lt;br /&gt;
  innocent (blue)&lt;br /&gt;
  friend (green)&lt;br /&gt;
  hostile (gray)&lt;br /&gt;
  criminal (gray)&lt;br /&gt;
  enemy (orange)&lt;br /&gt;
  murderer (red)&lt;br /&gt;
  invulnerable (yellow)&lt;br /&gt;
&lt;br /&gt;
An expression to check if a mobile is dead:&lt;br /&gt;
&lt;br /&gt;
  if dead someMobile&lt;br /&gt;
    overhead &amp;quot;He&#039;s dead, Jim!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==New Commands==&lt;br /&gt;
&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
Further, to define a purely local variable only for the current scope, use the @ operator in conjunction with the ! operator:&lt;br /&gt;
&lt;br /&gt;
  @setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
The variable `my_name` will only exist in this script.&lt;br /&gt;
&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modifiers as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
An ignore list has been added to avoid finding objects when using the various search commands:&lt;br /&gt;
&lt;br /&gt;
  ignore (serial)&lt;br /&gt;
  clearignore&lt;br /&gt;
&lt;br /&gt;
This also supports the same operators as setvar for controlling the scope of the ignore list.&lt;br /&gt;
  &lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
*Note that this will need a server patch to function correctly.&lt;br /&gt;
&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
A command to rename followers has been added:&lt;br /&gt;
&lt;br /&gt;
  rename myFollower Bob&lt;br /&gt;
&lt;br /&gt;
A command to set skill gain locks has been added:&lt;br /&gt;
&lt;br /&gt;
  setskill Blacksmithing up&lt;br /&gt;
&lt;br /&gt;
The valid choices are up, down, or locked.&lt;br /&gt;
&lt;br /&gt;
==New Operators==&lt;br /&gt;
&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11945</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11945"/>
		<updated>2021-07-15T04:22:24Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Modified Commands and Expressions==&lt;br /&gt;
&lt;br /&gt;
Several commands and expressions that search by type have been greatly expanded:&lt;br /&gt;
&lt;br /&gt;
  dclicktype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  findtype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  targettype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  lifttype (&#039;name&#039;) OR (&#039;graphic&#039;) [amount] [src] [hue]&lt;br /&gt;
&lt;br /&gt;
The hue allows limiting by hue. The source may be the serial of a specific container, &#039;self&#039; for equipped items, or &#039;ground&#039;. The quantity is the minimum quantity, and the range is the maximum range from the player.&lt;br /&gt;
The lifttype expression is further limited to only operate on &#039;backpack&#039;, &#039;self&#039;, or &#039;ground&#039; sources.&lt;br /&gt;
&lt;br /&gt;
==New Aliases==&lt;br /&gt;
&lt;br /&gt;
The &#039;ground&#039; alias is now available. This is useful in the expanded targeting commands as the &amp;quot;source&amp;quot; parameter.&lt;br /&gt;
&lt;br /&gt;
==New Expressions==&lt;br /&gt;
&lt;br /&gt;
Searching based on a serial number is now possible with the find expression:&lt;br /&gt;
&lt;br /&gt;
  if find (serial) [src] [hue] [qty] [range]&lt;br /&gt;
&lt;br /&gt;
The parameters work exactly like the findtype command.&lt;br /&gt;
&lt;br /&gt;
Searching a character for equipped items is now possible:&lt;br /&gt;
&lt;br /&gt;
  if findlayer self gloves as mygloves&lt;br /&gt;
    overhead &#039;Wearing gloves!&#039;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid layers are:&lt;br /&gt;
  righthand&lt;br /&gt;
  lefthand&lt;br /&gt;
  shoes&lt;br /&gt;
  pants&lt;br /&gt;
  shirt&lt;br /&gt;
  head&lt;br /&gt;
  gloves&lt;br /&gt;
  ring&lt;br /&gt;
  talisman&lt;br /&gt;
  neck&lt;br /&gt;
  hair&lt;br /&gt;
  waist&lt;br /&gt;
  innertorso&lt;br /&gt;
  bracelet&lt;br /&gt;
  face&lt;br /&gt;
  facialhair&lt;br /&gt;
  middletorso&lt;br /&gt;
  earrings&lt;br /&gt;
  arms&lt;br /&gt;
  cloak&lt;br /&gt;
  backpack&lt;br /&gt;
  outertorso&lt;br /&gt;
  outerlegs&lt;br /&gt;
  innerlegs&lt;br /&gt;
&lt;br /&gt;
An expression to test whether the client currently has a target cursor up:&lt;br /&gt;
&lt;br /&gt;
  if targetexists [&#039;any&#039;/&#039;beneficial&#039;/&#039;harmful]&lt;br /&gt;
&lt;br /&gt;
An expression to count your current followers:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue someObject = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get your current character&#039;s name:&lt;br /&gt;
&lt;br /&gt;
  if name = &#039;MyName&#039;&lt;br /&gt;
    overhead &amp;quot;It&#039;s me!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is paralyzed:&lt;br /&gt;
&lt;br /&gt;
  if paralyzed&lt;br /&gt;
    overhead &amp;quot;Can&#039;t move!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is blessed (yellow health bar):&lt;br /&gt;
&lt;br /&gt;
  if blessed&lt;br /&gt;
    overhead &amp;quot;I&#039;m gonna live forever!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is in warmode:&lt;br /&gt;
&lt;br /&gt;
  if warmode&lt;br /&gt;
    overhead &amp;quot;Ready to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to check any mobile&#039;s notoriety:&lt;br /&gt;
&lt;br /&gt;
  if noto some_Mobile = hostile&lt;br /&gt;
    overhead &amp;quot;Safe to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid notorieties are&lt;br /&gt;
  innocent (blue)&lt;br /&gt;
  friend (green)&lt;br /&gt;
  hostile (gray)&lt;br /&gt;
  criminal (gray)&lt;br /&gt;
  enemy (orange)&lt;br /&gt;
  murderer (red)&lt;br /&gt;
  invulnerable (yellow)&lt;br /&gt;
&lt;br /&gt;
==New Commands==&lt;br /&gt;
&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
Further, to define a purely local variable only for the current scope, use the @ operator in conjunction with the ! operator:&lt;br /&gt;
&lt;br /&gt;
  @setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
The variable `my_name` will only exist in this script.&lt;br /&gt;
&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modifiers as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
An ignore list has been added to avoid finding objects when using the various search commands:&lt;br /&gt;
&lt;br /&gt;
  ignore (serial)&lt;br /&gt;
  clearignore&lt;br /&gt;
&lt;br /&gt;
This also supports the same operators as setvar for controlling the scope of the ignore list.&lt;br /&gt;
  &lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
*Note that this will need a server patch to function correctly.&lt;br /&gt;
&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
A command to rename followers has been added:&lt;br /&gt;
&lt;br /&gt;
  rename myFollower Bob&lt;br /&gt;
&lt;br /&gt;
A command to set skill gain locks has been added:&lt;br /&gt;
&lt;br /&gt;
  setskill Blacksmithing up&lt;br /&gt;
&lt;br /&gt;
The valid choices are up, down, or locked.&lt;br /&gt;
&lt;br /&gt;
==New Operators==&lt;br /&gt;
&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11905</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11905"/>
		<updated>2021-07-09T18:53:11Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Modified Commands and Expressions==&lt;br /&gt;
&lt;br /&gt;
Several commands and expressions that search by type have been greatly expanded:&lt;br /&gt;
&lt;br /&gt;
  dclicktype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  findtype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  targettype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  lifttype (&#039;name&#039;) OR (&#039;graphic&#039;) [amount] [src] [hue]&lt;br /&gt;
&lt;br /&gt;
The hue allows limiting by hue. The source may be the serial of a specific container, &#039;self&#039; for equipped items, or &#039;ground&#039;. The quantity is the minimum quantity, and the range is the maximum range from the player.&lt;br /&gt;
The lifttype expression is further limited to only operate on &#039;backpack&#039;, &#039;self&#039;, or &#039;ground&#039; sources.&lt;br /&gt;
&lt;br /&gt;
==New Aliases==&lt;br /&gt;
&lt;br /&gt;
The &#039;ground&#039; alias is now available. This is useful in the expanded targeting commands as the &amp;quot;source&amp;quot; parameter.&lt;br /&gt;
&lt;br /&gt;
==New Expressions==&lt;br /&gt;
&lt;br /&gt;
Searching a character for equipped items is now possible:&lt;br /&gt;
&lt;br /&gt;
  if findlayer self gloves as mygloves&lt;br /&gt;
    overhead &#039;Wearing gloves!&#039;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid layers are:&lt;br /&gt;
  righthand&lt;br /&gt;
  lefthand&lt;br /&gt;
  shoes&lt;br /&gt;
  pants&lt;br /&gt;
  shirt&lt;br /&gt;
  head&lt;br /&gt;
  gloves&lt;br /&gt;
  ring&lt;br /&gt;
  talisman&lt;br /&gt;
  neck&lt;br /&gt;
  hair&lt;br /&gt;
  waist&lt;br /&gt;
  innertorso&lt;br /&gt;
  bracelet&lt;br /&gt;
  face&lt;br /&gt;
  facialhair&lt;br /&gt;
  middletorso&lt;br /&gt;
  earrings&lt;br /&gt;
  arms&lt;br /&gt;
  cloak&lt;br /&gt;
  backpack&lt;br /&gt;
  outertorso&lt;br /&gt;
  outerlegs&lt;br /&gt;
  innerlegs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An expression to count your current followers:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue someObject = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get your current character&#039;s name:&lt;br /&gt;
&lt;br /&gt;
  if name = &#039;MyName&#039;&lt;br /&gt;
    overhead &amp;quot;It&#039;s me!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is paralyzed:&lt;br /&gt;
&lt;br /&gt;
  if paralyzed&lt;br /&gt;
    overhead &amp;quot;Can&#039;t move!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is blessed (yellow health bar):&lt;br /&gt;
&lt;br /&gt;
  if blessed&lt;br /&gt;
    overhead &amp;quot;I&#039;m gonna live forever!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is in warmode:&lt;br /&gt;
&lt;br /&gt;
  if warmode&lt;br /&gt;
    overhead &amp;quot;Ready to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to check any mobile&#039;s notoriety:&lt;br /&gt;
&lt;br /&gt;
  if noto some_Mobile = hostile&lt;br /&gt;
    overhead &amp;quot;Safe to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid notorieties are&lt;br /&gt;
  innocent (blue)&lt;br /&gt;
  friend (green)&lt;br /&gt;
  hostile (gray)&lt;br /&gt;
  criminal (gray)&lt;br /&gt;
  enemy (orange)&lt;br /&gt;
  murderer (red)&lt;br /&gt;
  invulnerable (yellow)&lt;br /&gt;
&lt;br /&gt;
==New Commands==&lt;br /&gt;
&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
Further, to define a purely local variable only for the current scope, use the @ operator in conjunction with the ! operator:&lt;br /&gt;
&lt;br /&gt;
  @setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
The variable `my_name` will only exist in this script.&lt;br /&gt;
&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modifiers as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
An ignore list has been added to avoid finding objects when using the various search commands:&lt;br /&gt;
&lt;br /&gt;
  ignore (serial)&lt;br /&gt;
  clearignore&lt;br /&gt;
&lt;br /&gt;
This also supports the same operators as setvar for controlling the scope of the ignore list.&lt;br /&gt;
  &lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
*Note that this will need a server patch to function correctly.&lt;br /&gt;
&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
A command to rename followers has been added:&lt;br /&gt;
&lt;br /&gt;
  rename myFollower Bob&lt;br /&gt;
&lt;br /&gt;
A command to set skill gain locks has been added:&lt;br /&gt;
&lt;br /&gt;
  setskill Blacksmithing up&lt;br /&gt;
&lt;br /&gt;
The valid choices are up, down, or locked.&lt;br /&gt;
&lt;br /&gt;
==New Operators==&lt;br /&gt;
&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11881</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11881"/>
		<updated>2021-07-04T04:35:55Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Modified Commands and Expressions==&lt;br /&gt;
&lt;br /&gt;
Several commands and expressions that search by type have been greatly expanded:&lt;br /&gt;
&lt;br /&gt;
  dclicktype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  findtype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  targettype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  lifttype (&#039;name&#039;) OR (&#039;graphic&#039;) [amount] [src] [hue]&lt;br /&gt;
&lt;br /&gt;
The hue allows limiting by hue. The source may be the serial of a specific container, &#039;self&#039; for equipped items, or &#039;ground&#039;. The quantity is the minimum quantity, and the range is the maximum range from the player.&lt;br /&gt;
The lifttype expression is further limited to only operate on &#039;backpack&#039;, &#039;self&#039;, or &#039;ground&#039; sources.&lt;br /&gt;
&lt;br /&gt;
==New Aliases==&lt;br /&gt;
&lt;br /&gt;
The &#039;ground&#039; alias is now available. This is useful in the expanded targeting commands as the &amp;quot;source&amp;quot; parameter.&lt;br /&gt;
&lt;br /&gt;
==New Expressions==&lt;br /&gt;
&lt;br /&gt;
Searching a character for equipped items is now possible:&lt;br /&gt;
&lt;br /&gt;
  if findlayer self gloves as mygloves&lt;br /&gt;
    overhead &#039;Wearing gloves!&#039;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid layers are:&lt;br /&gt;
  righthand&lt;br /&gt;
  lefthand&lt;br /&gt;
  shoes&lt;br /&gt;
  pants&lt;br /&gt;
  shirt&lt;br /&gt;
  head&lt;br /&gt;
  gloves&lt;br /&gt;
  ring&lt;br /&gt;
  talisman&lt;br /&gt;
  neck&lt;br /&gt;
  hair&lt;br /&gt;
  waist&lt;br /&gt;
  innertorso&lt;br /&gt;
  bracelet&lt;br /&gt;
  face&lt;br /&gt;
  facialhair&lt;br /&gt;
  middletorso&lt;br /&gt;
  earrings&lt;br /&gt;
  arms&lt;br /&gt;
  cloak&lt;br /&gt;
  backpack&lt;br /&gt;
  outertorso&lt;br /&gt;
  outerlegs&lt;br /&gt;
  innerlegs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An expression to count your current followers:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue someObject = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get your current character&#039;s name:&lt;br /&gt;
&lt;br /&gt;
  if name = &#039;MyName&#039;&lt;br /&gt;
    overhead &amp;quot;It&#039;s me!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is paralyzed:&lt;br /&gt;
&lt;br /&gt;
  if paralyzed&lt;br /&gt;
    overhead &amp;quot;Can&#039;t move!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is blessed (yellow health bar):&lt;br /&gt;
&lt;br /&gt;
  if blessed&lt;br /&gt;
    overhead &amp;quot;I&#039;m gonna live forever!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is in warmode:&lt;br /&gt;
&lt;br /&gt;
  if warmode&lt;br /&gt;
    overhead &amp;quot;Ready to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to check any mobile&#039;s notoriety:&lt;br /&gt;
&lt;br /&gt;
  if noto some_Mobile = hostile&lt;br /&gt;
    overhead &amp;quot;Safe to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid notorieties are&lt;br /&gt;
  innocent (blue)&lt;br /&gt;
  friend (green)&lt;br /&gt;
  hostile (gray)&lt;br /&gt;
  criminal (gray)&lt;br /&gt;
  enemy (orange)&lt;br /&gt;
  murderer (red)&lt;br /&gt;
  invulnerable (yellow)&lt;br /&gt;
&lt;br /&gt;
==New Commands==&lt;br /&gt;
&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
Further, to define a purely local variable only for the current scope, use the @ operator in conjunction with the ! operator:&lt;br /&gt;
&lt;br /&gt;
  @setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
The variable `my_name` will only exist in this script.&lt;br /&gt;
&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modifiers as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
*Note that this will need a server patch to function correctly.&lt;br /&gt;
&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
A command to rename followers has been added:&lt;br /&gt;
&lt;br /&gt;
  rename myFollower Bob&lt;br /&gt;
&lt;br /&gt;
A command to set skill gain locks has been added:&lt;br /&gt;
&lt;br /&gt;
  setskill Blacksmithing up&lt;br /&gt;
&lt;br /&gt;
The valid choices are up, down, or locked.&lt;br /&gt;
&lt;br /&gt;
==New Operators==&lt;br /&gt;
&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11880</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11880"/>
		<updated>2021-07-04T04:06:33Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Modified Commands and Expressions==&lt;br /&gt;
&lt;br /&gt;
Several commands and expressions that search by type have been greatly expanded:&lt;br /&gt;
&lt;br /&gt;
  dclicktype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  findtype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  targettype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  lifttype (&#039;name&#039;) OR (&#039;graphic&#039;) [amount] [src] [hue]&lt;br /&gt;
&lt;br /&gt;
The hue allows limiting by hue. The source may be the serial of a specific container, &#039;self&#039; for equipped items, or &#039;ground&#039;. The quantity is the minimum quantity, and the range is the maximum range from the player.&lt;br /&gt;
The lifttype expression is further limited to only operate on &#039;backpack&#039;, &#039;self&#039;, or &#039;ground&#039; sources.&lt;br /&gt;
&lt;br /&gt;
==New Aliases==&lt;br /&gt;
&lt;br /&gt;
The &#039;ground&#039; alias is now available. This is useful in the expanded targeting commands as the &amp;quot;source&amp;quot; parameter.&lt;br /&gt;
&lt;br /&gt;
==New Expressions==&lt;br /&gt;
&lt;br /&gt;
An expression to count your current followers:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue (&#039;serial&#039;) = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get your current character&#039;s name:&lt;br /&gt;
&lt;br /&gt;
  if name = &#039;MyName&#039;&lt;br /&gt;
    overhead &amp;quot;It&#039;s me!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is paralyzed:&lt;br /&gt;
&lt;br /&gt;
  if paralyzed&lt;br /&gt;
    overhead &amp;quot;Can&#039;t move!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is blessed (yellow health bar):&lt;br /&gt;
&lt;br /&gt;
  if blessed&lt;br /&gt;
    overhead &amp;quot;I&#039;m gonna live forever!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is in warmode:&lt;br /&gt;
&lt;br /&gt;
  if warmode&lt;br /&gt;
    overhead &amp;quot;Ready to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to check any mobile&#039;s notoriety:&lt;br /&gt;
&lt;br /&gt;
  if noto some_Mobile = hostile&lt;br /&gt;
    overhead &amp;quot;Safe to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid notorieties are `innocent` (blue), `friend` (green), `hostile` (gray), `criminal` (gray), `enemy` (orange), `murderer` (red), `invulnerable` (yellow).&lt;br /&gt;
&lt;br /&gt;
==New Commands==&lt;br /&gt;
&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
Further, to define a purely local variable only for the current scope, use the @ operator in conjunction with the ! operator:&lt;br /&gt;
&lt;br /&gt;
  @setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
The variable `my_name` will only exist in this script.&lt;br /&gt;
&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modifiers as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
*Note that this will need a server patch to function correctly.&lt;br /&gt;
&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
A command to rename followers has been added:&lt;br /&gt;
&lt;br /&gt;
  rename myFollower Bob&lt;br /&gt;
&lt;br /&gt;
A command to set skill gain locks has been added:&lt;br /&gt;
&lt;br /&gt;
  setskill Blacksmithing up&lt;br /&gt;
&lt;br /&gt;
The valid choices are up, down, or locked.&lt;br /&gt;
&lt;br /&gt;
==New Operators==&lt;br /&gt;
&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11879</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11879"/>
		<updated>2021-07-04T03:50:12Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Modified Commands and Expressions==&lt;br /&gt;
&lt;br /&gt;
Several commands and expressions that search by type have been greatly expanded:&lt;br /&gt;
&lt;br /&gt;
  dclicktype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  findtype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
  targettype (&#039;name&#039;) OR (&#039;graphic&#039;) [source] [hue] [quantity] [range]&lt;br /&gt;
&lt;br /&gt;
The hue allows limiting by hue. The source may be the serial of a specific container or &#039;ground&#039;. The quantity is the minimum quantity, and the range is the maximum range from the player.&lt;br /&gt;
&lt;br /&gt;
==New Aliases==&lt;br /&gt;
&lt;br /&gt;
The &#039;ground&#039; alias is now available. This is useful in the expanded targeting commands as the &amp;quot;source&amp;quot; parameter.&lt;br /&gt;
&lt;br /&gt;
==New Expressions==&lt;br /&gt;
&lt;br /&gt;
An expression to count your current followers:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue (&#039;serial&#039;) = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get your current character&#039;s name:&lt;br /&gt;
&lt;br /&gt;
  if name = &#039;MyName&#039;&lt;br /&gt;
    overhead &amp;quot;It&#039;s me!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is paralyzed:&lt;br /&gt;
&lt;br /&gt;
  if paralyzed&lt;br /&gt;
    overhead &amp;quot;Can&#039;t move!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is blessed (yellow health bar):&lt;br /&gt;
&lt;br /&gt;
  if blessed&lt;br /&gt;
    overhead &amp;quot;I&#039;m gonna live forever!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is in warmode:&lt;br /&gt;
&lt;br /&gt;
  if warmode&lt;br /&gt;
    overhead &amp;quot;Ready to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to check any mobile&#039;s notoriety:&lt;br /&gt;
&lt;br /&gt;
  if noto some_Mobile = hostile&lt;br /&gt;
    overhead &amp;quot;Safe to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid notorieties are `innocent` (blue), `friend` (green), `hostile` (gray), `criminal` (gray), `enemy` (orange), `murderer` (red), `invulnerable` (yellow).&lt;br /&gt;
&lt;br /&gt;
==New Commands==&lt;br /&gt;
&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
Further, to define a purely local variable only for the current scope, use the @ operator in conjunction with the ! operator:&lt;br /&gt;
&lt;br /&gt;
  @setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
The variable `my_name` will only exist in this script.&lt;br /&gt;
&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modifiers as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
*Note that this will need a server patch to function correctly.&lt;br /&gt;
&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
A command to rename followers has been added:&lt;br /&gt;
&lt;br /&gt;
  rename myFollower Bob&lt;br /&gt;
&lt;br /&gt;
A command to set skill gain locks has been added:&lt;br /&gt;
&lt;br /&gt;
  setskill Blacksmithing up&lt;br /&gt;
&lt;br /&gt;
The valid choices are up, down, or locked.&lt;br /&gt;
&lt;br /&gt;
==New Operators==&lt;br /&gt;
&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11843</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11843"/>
		<updated>2021-07-02T06:02:02Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Modified Commands and Expressions==&lt;br /&gt;
&lt;br /&gt;
Several commands and expressions that search by type have been greatly expanded:&lt;br /&gt;
&lt;br /&gt;
  dclicktype (&#039;name&#039;) OR (&#039;graphic&#039;) [hue] [source] [quantity] [range]&lt;br /&gt;
  findtype (&#039;name&#039;) OR (&#039;graphic&#039;) [hue] [source] [quantity] [range]&lt;br /&gt;
  targettype (&#039;name&#039;) OR (&#039;graphic&#039;) [hue] [source] [quantity] [range]&lt;br /&gt;
&lt;br /&gt;
The hue allows limiting by hue. The source may be the serial of a specific container or &#039;ground&#039;. The quantity is the minimum quantity, and the range is the maximum range from the player.&lt;br /&gt;
&lt;br /&gt;
==New Aliases==&lt;br /&gt;
&lt;br /&gt;
The &#039;ground&#039; alias is now available. This is useful in the expanded targeting commands as the &amp;quot;source&amp;quot; parameter.&lt;br /&gt;
&lt;br /&gt;
==New Expressions==&lt;br /&gt;
&lt;br /&gt;
An expression to count your current followers:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue (&#039;serial&#039;) = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to get your current character&#039;s name:&lt;br /&gt;
&lt;br /&gt;
  if name = &#039;MyName&#039;&lt;br /&gt;
    overhead &amp;quot;It&#039;s me!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is paralyzed:&lt;br /&gt;
&lt;br /&gt;
  if paralyzed&lt;br /&gt;
    overhead &amp;quot;Can&#039;t move!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is blessed (yellow health bar):&lt;br /&gt;
&lt;br /&gt;
  if blessed&lt;br /&gt;
    overhead &amp;quot;I&#039;m gonna live forever!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to test if your character is in warmode:&lt;br /&gt;
&lt;br /&gt;
  if warmode&lt;br /&gt;
    overhead &amp;quot;Ready to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
An expression to check any mobile&#039;s notoriety:&lt;br /&gt;
&lt;br /&gt;
  if noto some_Mobile = hostile&lt;br /&gt;
    overhead &amp;quot;Safe to attack!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
The valid notorieties are `innocent` (blue), `friend` (green), `hostile` (gray), `criminal` (gray), `enemy` (orange), `murderer` (red), `invulnerable` (yellow).&lt;br /&gt;
&lt;br /&gt;
==New Commands==&lt;br /&gt;
&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
Further, to define a purely local variable only for the current scope, use the @ operator in conjunction with the ! operator:&lt;br /&gt;
&lt;br /&gt;
  @setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
The variable `my_name` will only exist in this script.&lt;br /&gt;
&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modifiers as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
*Note that this will need a server patch to function correctly.&lt;br /&gt;
&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
A command to rename followers has been added:&lt;br /&gt;
&lt;br /&gt;
  rename myFollower Bob&lt;br /&gt;
&lt;br /&gt;
A command to set skill gain locks has been added:&lt;br /&gt;
&lt;br /&gt;
  setskill Blacksmithing up&lt;br /&gt;
&lt;br /&gt;
The valid choices are up, down, or locked.&lt;br /&gt;
&lt;br /&gt;
==New Operators==&lt;br /&gt;
&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11312</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11312"/>
		<updated>2021-05-30T06:09:02Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Expressions==&lt;br /&gt;
&lt;br /&gt;
A simple expression to count your current followers is available:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
As is an expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue (&#039;serial&#039;) = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Commands==&lt;br /&gt;
&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
Further, to define a purely local variable only for the current scope, use the @ operator in conjunction with the ! operator:&lt;br /&gt;
&lt;br /&gt;
  @setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
The variable `my_name` will only exist in this script.&lt;br /&gt;
&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modifiers as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
*Note that this will need a server patch to function correctly.&lt;br /&gt;
&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
==Operators==&lt;br /&gt;
&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11311</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11311"/>
		<updated>2021-05-30T06:02:05Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Expressions==&lt;br /&gt;
&lt;br /&gt;
A simple expression to count your current followers is available:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
As is an expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue (&#039;serial&#039;) = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Commands==&lt;br /&gt;
&lt;br /&gt;
The setvar command has been modified on Outlands to support a wider set of use cases. The optional second parameter is now the serial of the variable. If provided, you won&#039;t be prompted with a target cursor.&lt;br /&gt;
&lt;br /&gt;
  setvar my_name 0x123&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, this creates a persistent variable that will remain even across restarts of the application. To make the variable only live for as long as the current program run, append the &#039;!&#039; operator. The variable will not appear in the Razor variables list, but will still be global and usable from any script while Razor is running.&lt;br /&gt;
&lt;br /&gt;
  setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
Further, to define a purely local variable only for the current scope, use the @ operator in conjunction with the ! operator:&lt;br /&gt;
&lt;br /&gt;
  @setvar! my_name 0x123&lt;br /&gt;
&lt;br /&gt;
The variable `my_name` will only exist in this script.&lt;br /&gt;
&lt;br /&gt;
Additionally, a command to unset variables has been added. It supports the same modified as setvar:&lt;br /&gt;
&lt;br /&gt;
  unsetvar my_name&lt;br /&gt;
&lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
*Note that this will need a server patch to function correctly.&lt;br /&gt;
&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
==Operators==&lt;br /&gt;
&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11261</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11261"/>
		<updated>2021-05-28T05:15:09Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Expressions==&lt;br /&gt;
&lt;br /&gt;
A simple expression to count your current followers is available:&lt;br /&gt;
&lt;br /&gt;
  if followers &amp;lt; 5&lt;br /&gt;
    overhead &amp;quot;Can still tame stuff!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
As is an expression to get the hue of an item:&lt;br /&gt;
&lt;br /&gt;
  if hue (&#039;serial&#039;) = 0x1809&lt;br /&gt;
    overhead &amp;quot;Found hue of my item!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Commands==&lt;br /&gt;
&lt;br /&gt;
A command to define a name for any value has been added to make scripts more readable:&lt;br /&gt;
&lt;br /&gt;
  define my_name 0x1234&lt;br /&gt;
&lt;br /&gt;
This can be used for graphic IDs, hues, serials, names, and more. By default, defines are scoped so they go away when the current script exits. However, adding the `!` operator makes them global and persistent:&lt;br /&gt;
&lt;br /&gt;
  define! my_permanent_name 0x1234&lt;br /&gt;
&lt;br /&gt;
In the above example, `my_permanent_name` can now be used by other scripts until Razor is shut down.&lt;br /&gt;
&lt;br /&gt;
A command to explicitly set warmode state has been added:&lt;br /&gt;
&lt;br /&gt;
  warmode (&#039;on&#039; / &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
*Note that this will need a server patch to function correctly.&lt;br /&gt;
&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
==Operators==&lt;br /&gt;
&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11086</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11086"/>
		<updated>2021-05-14T05:49:39Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Item Labels==&lt;br /&gt;
&lt;br /&gt;
A command to get an item&#039;s label - the text you see when single clicking it - has been added.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable with your choice of name that holds the text.&lt;br /&gt;
&lt;br /&gt;
  getlabel backpack my_label&lt;br /&gt;
  overhead my_label&lt;br /&gt;
&lt;br /&gt;
==Operators==&lt;br /&gt;
&lt;br /&gt;
There is now an &#039;as&#039; operator to capture the result of expressions as an alias. This is particularly useful for the `findtype` expression as follows&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    dclick mydagger&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
There is additionally an &#039;in&#039; operator that can be used to check whether one string is a substring of another:&lt;br /&gt;
&lt;br /&gt;
  if this in thisthatandtheother&lt;br /&gt;
    overhead yes&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
These are particularly powerful when combined to sort through items:&lt;br /&gt;
&lt;br /&gt;
  if findtype dagger as mydagger&lt;br /&gt;
    getlabel mydagger daggerlabel&lt;br /&gt;
    if blessed in daggerlabel&lt;br /&gt;
      overhead &amp;quot;Found newbie dagger&amp;quot;&lt;br /&gt;
    endif&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11085</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=11085"/>
		<updated>2021-05-13T20:31:28Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
==Item Labels==&lt;br /&gt;
&lt;br /&gt;
Several new operations have been added for working with item labels - the text that appears when you single click an item.&lt;br /&gt;
&lt;br /&gt;
  getlabel (serial) (name)&lt;br /&gt;
&lt;br /&gt;
This will fetch the label for the item identified by the serial and create a new variable named &#039;name&#039; that holds the text. You can then query that text using the new &#039;in&#039; operator as follows:&lt;br /&gt;
&lt;br /&gt;
  getlabel &#039;backpack&#039; &#039;my_label&#039;&lt;br /&gt;
  if &amp;quot;some text&amp;quot; in &#039;my_label&#039;&lt;br /&gt;
     msg &amp;quot;Found it!&amp;quot;&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
This is most useful for checking whether items are blessed, exception, master crafted, have certain magical properties, etc.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=7779</id>
		<title>Razor Scripting</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Razor_Scripting&amp;diff=7779"/>
		<updated>2021-02-16T18:25:38Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: Created page with &amp;quot;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. The scripting engine is well documented [https://razorce.com here]. Outlands has...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Razor assistant distributed with the Outlands client is a fork of Razor Community Edition. The scripting engine is well documented [https://razorce.com here]. Outlands has additionally extended that scripting engine with the following features.&lt;br /&gt;
&lt;br /&gt;
==Lists==&lt;br /&gt;
&lt;br /&gt;
List support includes the following commands:&lt;br /&gt;
&lt;br /&gt;
 createlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Create a new list&lt;br /&gt;
&lt;br /&gt;
 clearlist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Clear an existing list&lt;br /&gt;
&lt;br /&gt;
 removelist (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
Delete a list&lt;br /&gt;
&lt;br /&gt;
 pushlist (&#039;list name&#039;) (&#039;element value&#039;) [&#039;front&#039;/&#039;back&#039;]&lt;br /&gt;
&lt;br /&gt;
Add an item to the front or back of the list&lt;br /&gt;
&lt;br /&gt;
 poplist (&#039;list name&#039;) (&#039;element value&#039;/&#039;front&#039;/&#039;back&#039;)&lt;br /&gt;
&lt;br /&gt;
Remove an item from the front of back of the list&lt;br /&gt;
&lt;br /&gt;
Additionally, the following list-related expressions have been added. These may be used within &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; statements.&lt;br /&gt;
&lt;br /&gt;
 listexists (&#039;list name&#039;)&lt;br /&gt;
&lt;br /&gt;
True if the list exists&lt;br /&gt;
&lt;br /&gt;
 list (list name) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the length of the list to an integer&lt;br /&gt;
&lt;br /&gt;
 inlist (list name) (element)&lt;br /&gt;
&lt;br /&gt;
Test if an element is in a list.&lt;br /&gt;
&lt;br /&gt;
Finally, &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; loops can be used for iteration as follows:&lt;br /&gt;
&lt;br /&gt;
 for 10&lt;br /&gt;
   say &#039;hello&#039;&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate exactly 10 times.&lt;br /&gt;
&lt;br /&gt;
 foreach x in my_list&lt;br /&gt;
   say x&lt;br /&gt;
 endfor&lt;br /&gt;
&lt;br /&gt;
This will iterate the elements in my_list, assigning the variable &#039;x&#039; to the next element on each iteration.&lt;br /&gt;
&lt;br /&gt;
==Timers==&lt;br /&gt;
&lt;br /&gt;
Timers represent background timers that run while the rest of your script executes. All units are in milliseconds. They can be queried to check how much time has elapsed since they were started, or reset back to an earlier count.&lt;br /&gt;
&lt;br /&gt;
The following commands for working with timers have been added:&lt;br /&gt;
&lt;br /&gt;
 createtimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Create a new timer, starting at 0.&lt;br /&gt;
&lt;br /&gt;
 removetimer (timer name)&lt;br /&gt;
&lt;br /&gt;
Destroy an existing timer.&lt;br /&gt;
&lt;br /&gt;
 settimer (timer name) (value)&lt;br /&gt;
&lt;br /&gt;
Set a timer to the given value. It will begin counting up from the given value immediately.&lt;br /&gt;
&lt;br /&gt;
Additionally, two expressions have been added for timers:&lt;br /&gt;
&lt;br /&gt;
 timer (&#039;timer name&#039;) (operator) (value)&lt;br /&gt;
&lt;br /&gt;
Compare the current value of the timer (the time elapsed since it was started in milliseconds) to a given value&lt;br /&gt;
&lt;br /&gt;
 timerexists (&#039;timer name&#039;)&lt;br /&gt;
&lt;br /&gt;
Check if a timer exists&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 // Create a new timer&lt;br /&gt;
 if not timerexists &#039;sample&#039;&lt;br /&gt;
  createtimer &#039;sample&#039;&lt;br /&gt;
 endif&lt;br /&gt;
 // Reset every 10 seconds&lt;br /&gt;
 if timer &#039;sample&#039; &amp;gt; 10000&lt;br /&gt;
  settimer &#039;sample&#039; 0&lt;br /&gt;
 endif&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Tactics&amp;diff=6261</id>
		<title>Tactics</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Tactics&amp;diff=6261"/>
		<updated>2020-06-11T05:05:41Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]]&lt;br /&gt;
==Summary==&lt;br /&gt;
Tactics modifies weapon damage for all melee and ranged weapons.&lt;br /&gt;
&lt;br /&gt;
* From 0 to 100, tactics adds [[Base Weapon Damage]] * (-50% + (Tactics Skill / 200)) damage to each swing.&lt;br /&gt;
* From 100.1 and above, tactics adds [[Base Weapon Damage]] * (1% * (Tactics Skill - 100)) damage to each swing.&lt;br /&gt;
&lt;br /&gt;
==Example 1==&lt;br /&gt;
* For a player with 110 tactics, start with your [[Base Weapon Damage]]. Say that value rolls 25.&lt;br /&gt;
* First calculate the 0 to 100 portion. Tactics is treated as 100, so the initial damage modifier is 25 * (-50% + (100 / 200)) which is 0.&lt;br /&gt;
* Then add the bonus tactics over 100. There are 10 points over 100, so additionally add 25 * (1% * 10) which is 2.5 damage.&lt;br /&gt;
* The final hit, if no other bonuses are present, is then 27.5.&lt;br /&gt;
&lt;br /&gt;
==Example 2==&lt;br /&gt;
* Alternatively, for a player with only 50 tactics and starting from a [[Base Weapon Damage]] of 25:&lt;br /&gt;
* First calculate the 0 to 100 portion. Tactics is 50, so the initial damage modifier is 25 * (-50% + (50 / 200)) or -6.25. Note that this is negative.&lt;br /&gt;
* There are no tactics above 100 to account for.&lt;br /&gt;
* The final hit, if no other bonuses are present, is then 18.75.&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
&lt;br /&gt;
* Tactics is gained passively through melee combat.&lt;br /&gt;
* Up to 50.0 skill can be trained by weaponsmith NPCs.&lt;br /&gt;
* Skill gains for Tactics up to 70.0 are accelerated in the [[New Player Dungeon]].&lt;br /&gt;
** 50-70 Passively with melee combat in the New Player Dungeon.&lt;br /&gt;
** 70-100 Passively with melee combat.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Tactics&amp;diff=6260</id>
		<title>Tactics</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Tactics&amp;diff=6260"/>
		<updated>2020-06-11T05:05:17Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]]&lt;br /&gt;
==Summary==&lt;br /&gt;
Tactics modifies weapon damage for all melee and ranged weapons.&lt;br /&gt;
&lt;br /&gt;
* From 0 to 100, tactics adds [[Base Weapon Damage]] * (-50% + (Tactics Skill / 200)) damage to each swing.&lt;br /&gt;
* From 100.1 and above, tactics adds [[Base Weapon Damage]] * (1% * (Tactics Skill - 100)) damage to each swing.&lt;br /&gt;
&lt;br /&gt;
==Example Calculations==&lt;br /&gt;
* For a player with 110 tactics, start with your [[Base Weapon Damage]]. Say that value rolls 25.&lt;br /&gt;
* First calculate the 0 to 100 portion. Tactics is treated as 100, so the initial damage modifier is 25 * (-50% + (100 / 200)) which is 0.&lt;br /&gt;
* Then add the bonus tactics over 100. There are 10 points over 100, so additionally add 25 * (1% * 10) which is 2.5 damage.&lt;br /&gt;
* The final hit, if no other bonuses are present, is then 27.5.&lt;br /&gt;
&lt;br /&gt;
* Alternatively, for a player with only 50 tactics and starting from a [[Base Weapon Damage]] of 25:&lt;br /&gt;
* First calculate the 0 to 100 portion. Tactics is 50, so the initial damage modifier is 25 * (-50% + (50 / 200)) or -6.25. Note that this is negative.&lt;br /&gt;
* There are no tactics above 100 to account for.&lt;br /&gt;
* The final hit, if no other bonuses are present, is then 18.75.&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
&lt;br /&gt;
* Tactics is gained passively through melee combat.&lt;br /&gt;
* Up to 50.0 skill can be trained by weaponsmith NPCs.&lt;br /&gt;
* Skill gains for Tactics up to 70.0 are accelerated in the [[New Player Dungeon]].&lt;br /&gt;
** 50-70 Passively with melee combat in the New Player Dungeon.&lt;br /&gt;
** 70-100 Passively with melee combat.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Tactics&amp;diff=6259</id>
		<title>Tactics</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Tactics&amp;diff=6259"/>
		<updated>2020-06-11T05:00:20Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]]&lt;br /&gt;
==Summary==&lt;br /&gt;
Tactics modifies weapon damage for all melee and ranged weapons.&lt;br /&gt;
&lt;br /&gt;
* From 0 to 100, tactics adds [[Base Weapon Damage]] * (-50% + (Tactics Skill / 200)) damage to each swing.&lt;br /&gt;
* From 100.1 and above, tactics adds [[Base Weapon Damage]] * (1% * (Tactics Skill - 100)) damage to each swing.&lt;br /&gt;
&lt;br /&gt;
==Example Calculations==&lt;br /&gt;
* For a player with 110 tactics, start with your [[Base Weapon Damage]]. Say that value rolls 25.&lt;br /&gt;
* Since tactics is at least 100, the initial damage modifier is 25 * (-50% + (100 / 200)) which is 0.&lt;br /&gt;
* There are 10 points over 100, so additionally add 25 * (1% * 10) which is 2.5 damage.&lt;br /&gt;
* The final hit, if no other bonuses are present, is then 27.5.&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
&lt;br /&gt;
* Tactics is gained passively through melee combat.&lt;br /&gt;
* Up to 50.0 skill can be trained by weaponsmith NPCs.&lt;br /&gt;
* Skill gains for Tactics up to 70.0 are accelerated in the [[New Player Dungeon]].&lt;br /&gt;
** 50-70 Passively with melee combat in the New Player Dungeon.&lt;br /&gt;
** 70-100 Passively with melee combat.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Tactics&amp;diff=6258</id>
		<title>Tactics</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Tactics&amp;diff=6258"/>
		<updated>2020-06-11T04:59:30Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]]&lt;br /&gt;
==Summary==&lt;br /&gt;
Tactics modifies weapon damage for all melee and ranged weapons.&lt;br /&gt;
&lt;br /&gt;
* From 0 to 100, tactics adds [[Base Weapon Damage]] * (-50% + (Tactics Skill / 200)) damage to each swing.&lt;br /&gt;
* From 100.1 and above, tactics adds [[Base Weapon Damage]] * (1% * (Tactics Skill - 100)) damage to each swing.&lt;br /&gt;
&lt;br /&gt;
==Example Calculations==&lt;br /&gt;
* For a player with 110 tactics, start with your [[Base Weapon Damage]]. Say that value rolls 25.&lt;br /&gt;
* Since tactics is at least 100, the initial damage modifier is 25 * (-0.5 + (100 / 200)) which is 0.&lt;br /&gt;
* There are 10 points over 100, so additionally add 25 * (0.01 * 10) which is 2.5 damage.&lt;br /&gt;
* The final hit, if no other bonuses are present, is then 27.5.&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
&lt;br /&gt;
* Tactics is gained passively through melee combat.&lt;br /&gt;
* Up to 50.0 skill can be trained by weaponsmith NPCs.&lt;br /&gt;
* Skill gains for Tactics up to 70.0 are accelerated in the [[New Player Dungeon]].&lt;br /&gt;
** 50-70 Passively with melee combat in the New Player Dungeon.&lt;br /&gt;
** 70-100 Passively with melee combat.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Mining&amp;diff=6257</id>
		<title>Mining</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Mining&amp;diff=6257"/>
		<updated>2020-06-11T04:56:08Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: left;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:wiki-mining.gif|center|link=]]&lt;br /&gt;
[[Category:Skills]]&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
Players can harvest Ore using a Pickaxe. To lessen the strain of mining, players can use [[Smart Harvest]] by double-clicking a Pickaxe, then targeting themselves to search all nearby nodes. There is a random chance to harvest colored ore if the player meets the material&#039;s skill requirement. &lt;br /&gt;
&lt;br /&gt;
Please note that mining within town regions will yield 50% less ore. &lt;br /&gt;
&lt;br /&gt;
Base chances for players to discover colored ores are as follows:&lt;br /&gt;
&lt;br /&gt;
* [[File:wiki-resources-ore.png|right|link=]]Regular Ore: &#039;&#039;&#039;82%&#039;&#039;&#039;&lt;br /&gt;
* Dull Copper Ore: &#039;&#039;&#039;4.0%&#039;&#039;&#039;&lt;br /&gt;
* Shadow Iron Ore: &#039;&#039;&#039;3.5%&#039;&#039;&#039;&lt;br /&gt;
* Copper Ore: &#039;&#039;&#039;3.0.%&#039;&#039;&#039;&lt;br /&gt;
* Bronze Ore: &#039;&#039;&#039;2.5%&#039;&#039;&#039;&lt;br /&gt;
* Gold Ore: &#039;&#039;&#039;2.0%&#039;&#039;&#039;&lt;br /&gt;
* Agapite Ore: &#039;&#039;&#039;1.5%&#039;&#039;&#039;&lt;br /&gt;
* Verite Ore: &#039;&#039;&#039;1.0%&#039;&#039;&#039;&lt;br /&gt;
* Valorite Ore: &#039;&#039;&#039;0.5%&#039;&#039;&#039;&lt;br /&gt;
* Avarite Ore: &#039;&#039;&#039;0.25%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&amp;quot;Every swing, not node, you have a chance to get colored ore. The colored pickaxe increases your chance. The avarite, if exceptional and master crafted,&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;would give you the highest possible chance for colored ore at your level, as it also helps determine colored chance.&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AreYouKidden&#039;&#039;&#039; - Forum Post on Mining Success Chance&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Harvesting Colored Ore==&lt;br /&gt;
{| class=&amp;quot;contenttable sortable&amp;quot; style=&amp;quot;border: 0px; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Regular Ore===&lt;br /&gt;
* Requires 0 Mining Skill&lt;br /&gt;
* Success Chance = (((Mining Skill - 0) / 100) * (1 + Tool Bonus))&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Dullcopper Ore===&lt;br /&gt;
* Requires 65 Mining Skill&lt;br /&gt;
* Success Chance = (((Mining Skill - 25) / 80) * (1 + Tool Bonus))&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Shadow Ore===&lt;br /&gt;
* Requires 70 Mining Skill&lt;br /&gt;
* Success Chance = ((Mining Skill - 30) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Copper Ore===&lt;br /&gt;
* Requires 75 Mining Skill&lt;br /&gt;
* Success Chance = ((Mining Skill - 35) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Bronze Ore===&lt;br /&gt;
* Requires 80 Mining Skill&lt;br /&gt;
* Success Chance = ((Mining Skill - 40) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Gold Ore===&lt;br /&gt;
* Requires 85 Mining Skill&lt;br /&gt;
* Success Chance = ((Mining Skill - 45) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Agapite Ore===&lt;br /&gt;
* Requires 90 Mining Skill&lt;br /&gt;
* Success Chance = ((Mining Skill - 50) / 80 )* (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Verite Ore===&lt;br /&gt;
* Requires 95 Mining Skill&lt;br /&gt;
* Success Chance = ((Mining Skill - 55) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Valorite Ore===&lt;br /&gt;
* Requires 99 Mining Skill&lt;br /&gt;
* Success Chance = ((Mining Skill - 59) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Avarite Ore===&lt;br /&gt;
* Requires 110 Mining Skill&lt;br /&gt;
* Success Chance = ((Mining Skill - 63) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Colored Pickaxes==&lt;br /&gt;
[[File:pickaxes.png|right|link=]]Players using exceptional and colored material pickaxes will receive a Tool Bonus to their harvesting success chances as follows (with all applicable bonuses stacking):&lt;br /&gt;
&lt;br /&gt;
* Exceptional Quality Pickaxe Tool Bonus: &#039;&#039;&#039;0.04&#039;&#039;&#039;&lt;br /&gt;
* Master Crafted Tool Bonus: &#039;&#039;&#039;0.04&#039;&#039;&#039;&lt;br /&gt;
* Dull Copper Pickaxe Tool Bonus: &#039;&#039;&#039;0.02&#039;&#039;&#039;&lt;br /&gt;
* Shadow Iron Pickaxe Tool Bonus: &#039;&#039;&#039;0.04&#039;&#039;&#039;&lt;br /&gt;
* Copper Pickaxe Tool Bonus: &#039;&#039;&#039;0.06&#039;&#039;&#039;&lt;br /&gt;
* Bronze Pickaxe Tool Bonus: &#039;&#039;&#039;0.08&#039;&#039;&#039;&lt;br /&gt;
* Gold Pickaxe Tool Bonus: &#039;&#039;&#039;0.10&#039;&#039;&#039;&lt;br /&gt;
* Agapite Pickaxe Tool Bonus: &#039;&#039;&#039;0.12&#039;&#039;&#039;&lt;br /&gt;
* Verite Pickaxe Tool Bonus: &#039;&#039;&#039;0.14&#039;&#039;&#039;&lt;br /&gt;
* Valorite Pickaxe Tool Bonus: &#039;&#039;&#039;0.16&#039;&#039;&#039;&lt;br /&gt;
* Avarite Pickaxe Tool Bonus: &#039;&#039;&#039;0.18&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Smelting==&lt;br /&gt;
* Players may double-click Ore if they are within 2 tiles of a forge to smelt into Ingots&lt;br /&gt;
* Players may double-click Ore that is on a Pack Animal if they are within 2 tiles of a forge to smelt it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:crafting-mining-smeltingore.png|center|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ore Maps==&lt;br /&gt;
* When using Ore Maps, search radius is increased by (100% * (Mining Skill / 100))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:resourcemap-mining.gif|center|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PvM Bonus==&lt;br /&gt;
* When attacking with a macing weapon, add [[Base Weapon Damage]] * (25% * (Mining Skill / 100)) damage per hit.&lt;br /&gt;
&lt;br /&gt;
==PvP Bonus==&lt;br /&gt;
* When attacking with a macing weapon, add [[Base Weapon Damage]] * (10% * (Mining Skill / 100)) damage per hit.&lt;br /&gt;
&lt;br /&gt;
==Raising past GM==&lt;br /&gt;
&lt;br /&gt;
Only mining colored ore will give players a chance for skill gain past the GM level. The player must also have a skill cap above GM.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Lumberjacking&amp;diff=6256</id>
		<title>Lumberjacking</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Lumberjacking&amp;diff=6256"/>
		<updated>2020-06-11T04:54:35Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: left;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:harvesting-lumberjacking.gif|center|link=]]&lt;br /&gt;
[[Category:Skills]]&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
Players can harvest logs using Hatchets and have a random chance to harvest colored logs if they meet the material&#039;s skill requirements. To lessen the strain of mining, players can use Smart Harvest by double-clicking a hatchet, then targeting themselves to search all nearby nodes. Base chances for players to discover colored trees are as follows:&lt;br /&gt;
&lt;br /&gt;
* [[File:harvesting-logs.png|right|link=]]Regular: &#039;&#039;&#039;82%&#039;&#039;&#039;&lt;br /&gt;
* Dullwood: &#039;&#039;&#039;4.0%&#039;&#039;&#039;&lt;br /&gt;
* Shadowwood: &#039;&#039;&#039;3.5%&#039;&#039;&#039;&lt;br /&gt;
* Copperwood: &#039;&#039;&#039;3.0.%&#039;&#039;&#039;&lt;br /&gt;
* Bronzewood: &#039;&#039;&#039;2.5%&#039;&#039;&#039;&lt;br /&gt;
* Goldenwood: &#039;&#039;&#039;2.0%&#039;&#039;&#039;&lt;br /&gt;
* Rosewood: &#039;&#039;&#039;1.5%&#039;&#039;&#039;&lt;br /&gt;
* Verewood: &#039;&#039;&#039;1.0%&#039;&#039;&#039;&lt;br /&gt;
* Valewood: &#039;&#039;&#039;0.5%&#039;&#039;&#039;&lt;br /&gt;
* Avarwood: &#039;&#039;&#039;0.1%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Harvesting Colored Logs==&lt;br /&gt;
{| class=&amp;quot;contenttable sortable&amp;quot; style=&amp;quot;border: 0px; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Regular===&lt;br /&gt;
* Requires 0 Lumberjacking Skill &lt;br /&gt;
* Success Chance = ((Lumberjacking Skill - 0) / 100) * (1 + Tool Bonus))&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Dullwood===&lt;br /&gt;
* Requires 65 Lumberjacking Skill &lt;br /&gt;
* Success Chance = ((Lumberjacking Skill - 25) / 80) * (1 + Tool Bonus))&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Shadowwood===&lt;br /&gt;
* Requires 70 Lumberjacking Skill &lt;br /&gt;
* Success Chance = ((Lumberjacking Skill - 30) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Copperwood===&lt;br /&gt;
* Requires 75 Lumberjacking Skill &lt;br /&gt;
* Success Chance = ((Lumberjacking Skill - 35) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Bronzewood===&lt;br /&gt;
* Requires 80 Lumberjacking Skill &lt;br /&gt;
* Success Chance = ((Lumberjacking Skill - 40) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Goldenwood===&lt;br /&gt;
* Requires 85 Lumberjacking Skill &lt;br /&gt;
* Success Chance = ((Lumberjacking Skill - 45) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Rosewood===&lt;br /&gt;
* Requires 90 Lumberjacking Skill &lt;br /&gt;
* Success Chance = ((Lumberjacking Skill - 50) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Verewood===&lt;br /&gt;
* Requires 95 Lumberjacking Skill &lt;br /&gt;
* Success Chance = ((Lumberjacking Skill - 55) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Valewood===&lt;br /&gt;
* Requires 99 Lumberjacking Skill &lt;br /&gt;
* Success Chance = ((Lumberjacking Skill - 59) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Avarwood===&lt;br /&gt;
* Requires 110 Lumberjacking Skill &lt;br /&gt;
* Success Chance = ((Lumberjacking Skill - 63) / 80) * (1 + Tool Bonus)&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Colored Hatchets==&lt;br /&gt;
Players using exceptional and colored material Hatchets will receive a Tool Bonus to their harvesting success chances as follows (with all applicable bonuses stacking):&lt;br /&gt;
&lt;br /&gt;
* [[File:hatchets.png|right|link=]]Exceptional Quality Hatchet Tool Bonus: &#039;&#039;&#039;0.04&#039;&#039;&#039;&lt;br /&gt;
* Master Crafted Tool Bonus: &#039;&#039;&#039;0.04&#039;&#039;&#039;&lt;br /&gt;
* Dull Copper Hatchet Tool Bonus: &#039;&#039;&#039;0.02&#039;&#039;&#039;&lt;br /&gt;
* Shadow Iron Hatchet Tool Bonus: &#039;&#039;&#039;0.04&#039;&#039;&#039;&lt;br /&gt;
* Copper Hatchet Tool Bonus: &#039;&#039;&#039;0.06&#039;&#039;&#039;&lt;br /&gt;
* Bronze Hatchet Tool Bonus: &#039;&#039;&#039;0.08&#039;&#039;&#039;&lt;br /&gt;
* Gold Hatchet Tool Bonus: &#039;&#039;&#039;0.10&#039;&#039;&#039;&lt;br /&gt;
* Agapite Hatchet Tool Bonus: &#039;&#039;&#039;0.12&#039;&#039;&#039;&lt;br /&gt;
* Verite Hatchet Tool Bonus: &#039;&#039;&#039;0.14&#039;&#039;&#039;&lt;br /&gt;
* Valorite Hatchet Tool Bonus: &#039;&#039;&#039;0.16&#039;&#039;&#039;&lt;br /&gt;
* Avarite Hatchet Tool Bonus: &#039;&#039;&#039;0.18&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lumber Maps==&lt;br /&gt;
* When using Lumber Maps, search radius is increased by (100% * (Lumberjacking Skill / 100))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:resourcemap-lumberjacking.gif|center|link=Resource Maps]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PvM Bonus==&lt;br /&gt;
* When using an axe, increase damage by [[Base Weapon Damage]] * (25% * (Lumberjacking Skill / 100)) damage per hit.&lt;br /&gt;
&lt;br /&gt;
==PvP Bonus==&lt;br /&gt;
* When using an axe, increase damage by [[Base Weapon Damage]] * (10% * (Lumberjacking Skill / 100)) damage per hit.&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
Up to 50.0 skill can be trained by a NPC Bowyer, Carpenter or Cobbler vendor.&amp;lt;br&amp;gt;&lt;br /&gt;
Lumberjacking can not be trained passively through combat.&amp;lt;br&amp;gt;&lt;br /&gt;
50-100 Actively chop trees with a hatchet.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Fishing&amp;diff=6255</id>
		<title>Fishing</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Fishing&amp;diff=6255"/>
		<updated>2020-06-11T04:53:26Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]]{{#ev:youtube|https://www.youtube.com/watch?v=Mhfl1q9oipw|alignment|right}}&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
* Players use the Fishing skill to fish up a variety of items and resources&lt;br /&gt;
* Having a bladed weapon in your backpack and double clicking Raw Fish will cut it up into Fish Steaks&lt;br /&gt;
* Some items can only be fished in special Fishing Spots, out in the ocean, or in rivers&lt;br /&gt;
* Fisherman can use [[Harpoon|Harpoons]], which are player crafted and use the Fishing skill&lt;br /&gt;
* Thanks to Grizzly&#039;s Ghost for testing and his [http://forums.uooutlands.com/index.php?threads/notes-findings-random-thoughts.400/page-3#post-1203/ write-up on fishing]&lt;br /&gt;
* Does not receive 5x bonus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:wiki-fishing.gif|center|alt=Fishing|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fishing Poles Bonuses==&lt;br /&gt;
When determining chances for catching Special Fish or discovering Special Fishing Nets, players receive a bonus based on the quality and material of the fishing pole used as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Material&lt;br /&gt;
! Bonus&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| Exceptional&lt;br /&gt;
| +4%&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| Mastercrafted&lt;br /&gt;
| +8%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:boarddullwood.png|link=]]&lt;br /&gt;
| Dullwood&lt;br /&gt;
| +2%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:boardshadowwood.png|link=]]&lt;br /&gt;
| Shadowwood&lt;br /&gt;
| +4%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:boardcopperwood.png|link=]]&lt;br /&gt;
| Copperwood&lt;br /&gt;
| +6%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:boardbronzewood.png|link=]]&lt;br /&gt;
| Bronzewood&lt;br /&gt;
| +8%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:boardgoldwood.png|link=]]&lt;br /&gt;
| Goldenwood&lt;br /&gt;
| +10%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:boardrosewood.png|link=]]&lt;br /&gt;
| Rosewood&lt;br /&gt;
| +12%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:boardverewood.png|link=]]&lt;br /&gt;
| Verewood&lt;br /&gt;
| +14%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:boardvalewood.png|link=]]&lt;br /&gt;
| Valewood&lt;br /&gt;
| +16%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:boardavarwood.png|link=]]&lt;br /&gt;
| Avarwood&lt;br /&gt;
| +18%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Spear Bonus==&lt;br /&gt;
* When attacking a creature with a spear, add [[Base Weapon Damage]] * (25% * (Fishing Skill / 100)) damage per hit.&lt;br /&gt;
* When attacking a player with a spear, add [[Base Weapon Damage]] * (10% * (Fishing Skill / 100)) damage per hit.&lt;br /&gt;
&lt;br /&gt;
==Aquarium Creatures==&lt;br /&gt;
* When a player catches a Special Fish (Large Fish, Crab, Lobster) they have a 10% chance to instead catch an Aquarium Creature (also referred to as a Unique Fish)&lt;br /&gt;
* Players fishing on land can catch Freshwater Aquarium Creatures&lt;br /&gt;
* Players fishing on a ship can catch Saltwater Aquarium Creatures&lt;br /&gt;
* Players may double click an aquarium creature to see information about the fish (weight, time caught, who caught it) as well as information about the current world record for that Aquarium Creature type&lt;br /&gt;
* When a player catches an Aquarium Creature and it is larger than the current world record for that creature type, they will receive a notification informing them of this, and the previous record holder will be notified as well&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Freshwater Fish===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Crawfish&lt;br /&gt;
[[File:aquacrawfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Goldfish&lt;br /&gt;
[[File:aquagoldfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Juvenile Crawler&lt;br /&gt;
[[File:aquajuvenilecrawler.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Largemouth Bass&lt;br /&gt;
[[File:aqualargemouthbass.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Northern Pike&lt;br /&gt;
[[File:aquanorthernpike.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | River Carp&lt;br /&gt;
[[File:aquarivercarp.jpg|center|link=]]&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | River Trout&lt;br /&gt;
[[File:aquarivertrout.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Smelt&lt;br /&gt;
[[File:aquasmelt.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Sturgeon&lt;br /&gt;
[[File:aquasturgeon.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Sunfish&lt;br /&gt;
[[File:aquasunfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Tinfish&lt;br /&gt;
[[File:aquatinfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Walleye&lt;br /&gt;
[[File:aquawalleye.jpg|center|link=]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Saltwater Fish===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Anemonefish&lt;br /&gt;
[[File:aquaanemonefish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Angelfish&lt;br /&gt;
[[File:aquaangelfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Batfish&lt;br /&gt;
[[File:aquabatfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Blue Chromis&lt;br /&gt;
[[File:aquabluechromis.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Butterflyfish&lt;br /&gt;
[[File:aquabutterflyfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Cardinalfish&lt;br /&gt;
[[File:aquacardinalfish.jpg|center|link=]]&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Colossus Seahorse&lt;br /&gt;
[[File:aquacolossusseahorse.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Coral Tang&lt;br /&gt;
[[File:aquacoraltang.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Damselfish&lt;br /&gt;
[[File:aquadamselfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Eel&lt;br /&gt;
[[File:aquaeel.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Electric Eel&lt;br /&gt;
[[File:aquaelectriceel.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Golden Idolfish&lt;br /&gt;
[[File:aquagoldenidolfish.jpg|center|link=]]&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Juvenile Crab&lt;br /&gt;
[[File:aquajuvenilecrab.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Juvenile Octopus&lt;br /&gt;
[[File:aquajuvenileoctopus.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Juvenile Seahorse&lt;br /&gt;
[[File:aquajuvenileseahorse.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Juvenile Swordfish&lt;br /&gt;
[[File:aquajuvenileswordfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | King Crab&lt;br /&gt;
[[File:aquakingcrab.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Lionfish&lt;br /&gt;
[[File:aqualionfish.jpg|center|link=]]&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Parrotfish&lt;br /&gt;
[[File:aquaparrotfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Royal Basslet&lt;br /&gt;
[[File:aquaroyalbasslet.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Sawfish&lt;br /&gt;
[[File:aquasawfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Sea Bass&lt;br /&gt;
[[File:aquaseabass.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Swordfish&lt;br /&gt;
[[File:aquaswordfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Thornback Ray&lt;br /&gt;
[[File:aquathornbackray.jpg|center|link=]]&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Tiger Prawn&lt;br /&gt;
[[File:aquatigerprawn.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Triggerfish&lt;br /&gt;
[[File:aquatriggerfish.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | White Shark&lt;br /&gt;
[[File:aquawhiteshark.jpg|center|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Player Crafted Leather Fishing Nets==&lt;br /&gt;
* Players may craft Leather Fishing Nets (using any leather material type) through Tailoring or purchase Leather Fishing Nets at Fisherman NPCs&lt;br /&gt;
* Leather Fishing Nets have a limited number of uses, which is increased based on quality and material type&lt;br /&gt;
* Crafted Leather Fishing Nets are used at Fishing Spots and SOS locations to retrieve items&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:wiki-fishing-grizz-fishingnet.gif|right|link=]]&lt;br /&gt;
&#039;&#039;&#039;Crafted Leather Fishing Net Bonuses&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When determining chances for retrieving items from Fishing Spots and SOS locations, players receive a bonus based on the quality and material of the crafted leather fishing net used as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Material&lt;br /&gt;
! Bonus&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| Exceptional&lt;br /&gt;
| +4%&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| Mastercrafted&lt;br /&gt;
| +8%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:leatherdull.png|link=]]&lt;br /&gt;
| Dullhide&lt;br /&gt;
| +2%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:leathershadow.png|link=]]&lt;br /&gt;
| Shadowhide&lt;br /&gt;
| +4%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:leathercopper.png|link=]]&lt;br /&gt;
| Copperhide&lt;br /&gt;
| +6%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:leatherbronze.png|link=]]&lt;br /&gt;
| Bronzehide&lt;br /&gt;
| +8%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:leathergolden.png|link=]]&lt;br /&gt;
| Goldenhide&lt;br /&gt;
| +10%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:leatherrose.png|link=]]&lt;br /&gt;
| Rosehide&lt;br /&gt;
| +12%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:leathervere.png|link=]]&lt;br /&gt;
| Verehide&lt;br /&gt;
| +14%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:leathervale.png|link=]]&lt;br /&gt;
| Valehide&lt;br /&gt;
| +16%&lt;br /&gt;
|-&lt;br /&gt;
| [[File:leatheravar.png|link=]]&lt;br /&gt;
| Avarhide&lt;br /&gt;
| +18%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Special Fishing Nets==&lt;br /&gt;
* Players have a (0.5% * (Fishing Skill / 100) * (100% + Fishing Pole Bonus) * (100% + Ship Upgrades Bonuses)) chance to find a Special Fishing Net while fishing on land or while on a ship&lt;br /&gt;
* Special Fishing Nets are single use items that may be thrown from a ship into the water&lt;br /&gt;
* Once thrown, a Special Fishing Net has a 75% chance to generate a Fishing Creature Spawn or a 25% chance for the player to catch a Special Fish&lt;br /&gt;
* If a Fishing Creature Spawn occurs, there is a 25% chance that one creature will have a Message in a Bottle on it&#039;s corpse&lt;br /&gt;
* Special Fishing Nets are stackable by color (colors are randomized)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:wiki-fishing-specialfishingnet.png|center|alt=Special Fishing Net|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fishing Creatures Spawn==&lt;br /&gt;
Players have the opportunity while fishing at sea to initiate Fishing Creature Spawns. Fishing Creature Spawns can only occur when using &#039;&#039;&#039;Special Fishing Nets&#039;&#039;&#039;, while fishing at &#039;&#039;&#039;Fishing Spots&#039;&#039;&#039;, or when fishing at &#039;&#039;&#039;SOS locations&#039;&#039;&#039;. They will not occur during normal fishing with a fishing pole. Fishing Creature Spawns may result in both water-based creatures or creatures that spawn immediately on the targets ship.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:wiki-fishing-grizz-drowneddragon.gif|center|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Messages in a Bottle / SOS==&lt;br /&gt;
* SOSes have no expiration date[[File:wiki-fishing-mib.gif|right|alt=Fishing Message in a Bottles|link=]]&lt;br /&gt;
* Double click a Message in a Bottle to receive an SOS&lt;br /&gt;
* Players use crafted Leather Fishing Nets to retrieve items from SOS locations, as long as they have the SOS in their backpack&lt;br /&gt;
* Players must be within 12 tiles of a SOS location to attempt to retrieve items from it&lt;br /&gt;
* Players may make up to 20 retrieval attempts on a SOS location&lt;br /&gt;
* Players have a (50% * (Fishing Skill / 100) * (100% + Fishing Net Bonus) * (100% + Ship Upgrades Bonuses)) chance to have a &amp;quot;successful&amp;quot; retrieval action&lt;br /&gt;
* On a successful retrieval action at a Fishing Spot, there is a 90% chance to receive a Special Fish and a 10% chance to initiate a Fishing Creature Spawn (with a 25% chance one of the creatures will have a Message in a Bottle on its corpse)&lt;br /&gt;
* Players are guaranteed to have at least 1 Creature Spawn occur per SOS and up to 3 maximum&lt;br /&gt;
* One creature per Creature Spawn will have either a Small, Medium, or Large Salvaged Crate on its corpse with a variety of loot items (items vary based on crate size)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fishing Resource Map==&lt;br /&gt;
Check the [[Resource Maps]] page for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:fishingresourcemap.gif|center|link=Resource Maps]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==World Records==&lt;br /&gt;
Taking both skill and luck, catching a World Record fish is no easy feat. Players will be notified when they catch a unique fish as well as if it is a World Record. Double-clicking on the fish will open its stats, allowing you to see who has caught the heaviest of that type of fish. If you are the competitive type, there are also Fishing Record Boards that will list all the types of fish that can be caught, what the current weight record is, as well as when and who landed the fish. You can find Fishing Record Boards at each city&#039;s dock near the Dockmaster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:fishing-recordboard.gif|center|alt=Fishing Record Board|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fishing Spots==&lt;br /&gt;
Special Fishing Spots can be found while sailing the seas. At these locations, a player can use a Leather Fishing Net (crafted by a Tailor from the various leather types) for a chance to pull up special loot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Barrel Wreck&lt;br /&gt;
[[File:wiki-fishingspot-brokenbarrels.gif|center|200px|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Crashed Cargo Ship&lt;br /&gt;
[[File:wiki-fishingspot-crashedship.gif|center|200px|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Dead Fisherman&lt;br /&gt;
[[File:wiki-fishingspot-deadfisherman.gif|center|200px|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Marsh Fishing&lt;br /&gt;
[[File:wiki-fishingspot-marshfishing.png|center|200px|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Murder Raft&lt;br /&gt;
[[File:wiki-fishingspot-murderraft.png|center|200px|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Mushroom Formation&lt;br /&gt;
[[File:wiki-fishingspot-mushrooms.gif|center|200px|link=]]&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Net Fishery&lt;br /&gt;
[[File:wiki-fishingspot-largefishnet.gif|center|200px|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Submerged Rowboat&lt;br /&gt;
[[File:wiki-fishingspot-stuckrowboat2.gif|center|200px|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Thatched Raft&lt;br /&gt;
[[File:wiki-fishingspot-rattanraft.gif|center|200px|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Vines And Strange Stone&lt;br /&gt;
[[File:wiki-fishingspot-overgrown.gif|center|200px|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | Whalebones&lt;br /&gt;
[[File:wiki-fishingspot-whalebones.gif|center|200px|link=]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top; text-align: center; background-color:#000000;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
* Stand near water or on a boat and target yourself (smart targeting) after using a fishing pole to fish&lt;br /&gt;
* Requires an estimated 80 hours to max the skill at 30 seconds per attempt&lt;br /&gt;
** You can fish much faster, however you will have to find non-depleted spots&lt;br /&gt;
&lt;br /&gt;
==Templates==&lt;br /&gt;
You can find a variety of different Fisherman builds under the [[Templates]] section&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Carpentry&amp;diff=6254</id>
		<title>Carpentry</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Carpentry&amp;diff=6254"/>
		<updated>2020-06-11T04:51:39Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]]&lt;br /&gt;
==Summary==&lt;br /&gt;
* Bowcraft/Fletching has been merged into Carpentry&lt;br /&gt;
* Craft board-based weapons, shields, ranged weapons and ammunition&lt;br /&gt;
* Craft musical instruments, furniture and containers&lt;br /&gt;
* Craft ship deeds (all ship stats are randomized from -10% to 10% and higher Carpentry skill reduces the chance of negative values for ship stats)&lt;br /&gt;
* Craft Carpentry Repair Kits which can be used by a player with 95 Carpentry to target a container and repair all Carpentry-made items within the container&lt;br /&gt;
* Carpentry Repair kits can also be used to target a player, which will repair all Carpentry-made items in that player&#039;s backpack and currently equipped&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Craftables==&lt;br /&gt;
{{Carpentry}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PvM Bonus==&lt;br /&gt;
* Provides a (25% * (Carpentry Skill / 100)) Armor bonus for the player when wearing any Carpentry-craftable armor (wooden shield, wooden kite shield) (includes magical and aspect armor)&lt;br /&gt;
* When using weapon types created by the carpentry skill (including magical and aspect variants), add [[Base Weapon Damage]] * (25% * (Carpentry Skill / 100)) damage to each attack.&lt;br /&gt;
&lt;br /&gt;
==PvP Bonus==&lt;br /&gt;
* When using weapon types created by the carpentry skill (including magical and aspect variants), add [[Base Weapon Damage]] * (10% * (Carpentry Skill / 100)) damage to each attack.&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
* Estimated 220,000 boards to GM.&lt;br /&gt;
* Requires an estimated 24 hours of crafting to max the skill.&lt;br /&gt;
* Tip: You can recycle crafted items to recover and reuse resources.&lt;br /&gt;
* What to craft to GM&lt;br /&gt;
** 50 - 65: Clubs&lt;br /&gt;
** 65 - 75: Tambourines&lt;br /&gt;
** 75 - 100: Bamboo flutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Suggested Training Schema===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|| Skill bracket&lt;br /&gt;
|| % gain chance&lt;br /&gt;
|| Boards required&lt;br /&gt;
|| Crafted item&lt;br /&gt;
|-&lt;br /&gt;
|  | 50&lt;br /&gt;
|  | 10&lt;br /&gt;
|  | &lt;br /&gt;
|  | Clubs&lt;br /&gt;
|-&lt;br /&gt;
|  | 55&lt;br /&gt;
|  | 5&lt;br /&gt;
|  | &lt;br /&gt;
|  | Clubs&lt;br /&gt;
|-&lt;br /&gt;
|  | 60&lt;br /&gt;
|  | 3.333&lt;br /&gt;
|  | &lt;br /&gt;
|  | Clubs&lt;br /&gt;
|-&lt;br /&gt;
|  | 65&lt;br /&gt;
|  | 2.5&lt;br /&gt;
|  | &lt;br /&gt;
|  | Tambourines&lt;br /&gt;
|-&lt;br /&gt;
|  | 70&lt;br /&gt;
|  | 2&lt;br /&gt;
|  | &lt;br /&gt;
|  | Tambourines&lt;br /&gt;
|-&lt;br /&gt;
|  | 75&lt;br /&gt;
|  | 1.666&lt;br /&gt;
|  | &lt;br /&gt;
|  | Bamboo flutes&lt;br /&gt;
|-&lt;br /&gt;
|  | 80&lt;br /&gt;
|  | 1.428&lt;br /&gt;
|  | &lt;br /&gt;
|  | Bamboo flutes&lt;br /&gt;
|-&lt;br /&gt;
|  | 85&lt;br /&gt;
|  | 1.25&lt;br /&gt;
|  | &lt;br /&gt;
|  | Bamboo flutes&lt;br /&gt;
|-&lt;br /&gt;
|  | 90&lt;br /&gt;
|  | 1.111&lt;br /&gt;
|  | &lt;br /&gt;
|  | Bamboo flutes&lt;br /&gt;
|-&lt;br /&gt;
|  | 95&lt;br /&gt;
|  | 1&lt;br /&gt;
|  | &lt;br /&gt;
|  | Bamboo flutes&lt;br /&gt;
|-&lt;br /&gt;
|  | 100&lt;br /&gt;
|  | 1.25&lt;br /&gt;
|  | &lt;br /&gt;
|  | Carpentry repair kit&lt;br /&gt;
|-&lt;br /&gt;
|  | 105&lt;br /&gt;
|  | 1.25&lt;br /&gt;
|  | &lt;br /&gt;
|  | Carpentry repair kit&lt;br /&gt;
|-&lt;br /&gt;
|  | 110&lt;br /&gt;
|  | 1.25&lt;br /&gt;
|  | &lt;br /&gt;
|  | Carpentry repair kit&lt;br /&gt;
|-&lt;br /&gt;
|  | 115&lt;br /&gt;
|  | 1.25&lt;br /&gt;
|  | &lt;br /&gt;
|  | Carpentry repair kit&lt;br /&gt;
|-&lt;br /&gt;
|  | 120&lt;br /&gt;
|  | n/a&lt;br /&gt;
|  | n/a&lt;br /&gt;
|  | You’re Legendary!&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Blacksmithy&amp;diff=6253</id>
		<title>Blacksmithy</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Blacksmithy&amp;diff=6253"/>
		<updated>2020-06-11T04:51:15Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]][[File:crafting-blacksmithy.png|right|link=]]&lt;br /&gt;
==Summary==&lt;br /&gt;
* Create Ingot-based weapons and shields&lt;br /&gt;
* Creating Ringmail, Chainmail, and Platemail armor&lt;br /&gt;
* Can create Blacksmithy Repair Kits which can be used by a player (with no skill requirement) to target a container and repair all Blacksmithy-made items within the container&lt;br /&gt;
* A Blacksmith with 95 skill can use Blacksmithy Repair Kits on another player, which will repair all Blacksmithy-made items in that player&#039;s backpack and those currently equipped. &lt;br /&gt;
* Provides a (25% * (Blacksmithy Skill / 100)) Armor bonus for the player when wearing any Blacksmithy-craftable armor (includes magical and aspect armor)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Craftables==&lt;br /&gt;
{{Blacksmithy}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PvM Bonus==&lt;br /&gt;
* When using weapon types created by the blacksmithing skill (including magical and aspect variants), add [[Base Weapon Damage]] * (15% * (Blacksmithing Skill / 100)) damage to each attack.&lt;br /&gt;
&lt;br /&gt;
==PvP Bonus==&lt;br /&gt;
* When using weapon types created by the blacksmithing skill (including magical and aspect variants), add [[Base Weapon Damage]] * (6% * (Blacksmithing Skill / 100)) damage to each attack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Colored Material Bonuses==&lt;br /&gt;
{{ColoredIngotDurabilityBonus}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
* Estimated 220,000 ingots to GM&lt;br /&gt;
* Tip: Recycle crafted items to recover and reuse resources&lt;br /&gt;
* What to craft to GM&lt;br /&gt;
** 0-50: Train from a Blacksmith NPC&lt;br /&gt;
** 50-65: Chainmail Gorget&lt;br /&gt;
** 65-70: Chainmail Gloves&lt;br /&gt;
** 70-75: Chainmail Coif&lt;br /&gt;
** 75-85: Platemail Gorget&lt;br /&gt;
** 85-90: Platemail Gloves&lt;br /&gt;
** 90-95: Platemail Helm&lt;br /&gt;
** 95-100: Platemail Arms&lt;br /&gt;
** 100-105: Platemail Legs&lt;br /&gt;
** 105-120: Blacksmithy Repair Kits&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Blacksmithy&amp;diff=6252</id>
		<title>Blacksmithy</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Blacksmithy&amp;diff=6252"/>
		<updated>2020-06-11T04:46:06Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]][[File:crafting-blacksmithy.png|right|link=]]&lt;br /&gt;
==Summary==&lt;br /&gt;
* Create Ingot-based weapons and shields&lt;br /&gt;
* Creating Ringmail, Chainmail, and Platemail armor&lt;br /&gt;
* Can create Blacksmithy Repair Kits which can be used by a player (with no skill requirement) to target a container and repair all Blacksmithy-made items within the container&lt;br /&gt;
* A Blacksmith with 95 skill can use Blacksmithy Repair Kits on another player, which will repair all Blacksmithy-made items in that player&#039;s backpack and those currently equipped. &lt;br /&gt;
* Provides a (25% * (Blacksmithy Skill / 100)) Armor bonus for the player when wearing any Blacksmithy-craftable armor (includes magical and aspect armor)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Craftables==&lt;br /&gt;
{{Blacksmithy}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Colored Material Bonuses==&lt;br /&gt;
{{ColoredIngotDurabilityBonus}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
* Estimated 220,000 ingots to GM&lt;br /&gt;
* Tip: Recycle crafted items to recover and reuse resources&lt;br /&gt;
* What to craft to GM&lt;br /&gt;
** 0-50: Train from a Blacksmith NPC&lt;br /&gt;
** 50-65: Chainmail Gorget&lt;br /&gt;
** 65-70: Chainmail Gloves&lt;br /&gt;
** 70-75: Chainmail Coif&lt;br /&gt;
** 75-85: Platemail Gorget&lt;br /&gt;
** 85-90: Platemail Gloves&lt;br /&gt;
** 90-95: Platemail Helm&lt;br /&gt;
** 95-100: Platemail Arms&lt;br /&gt;
** 100-105: Platemail Legs&lt;br /&gt;
** 105-120: Blacksmithy Repair Kits&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Arms_Lore&amp;diff=6251</id>
		<title>Arms Lore</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Arms_Lore&amp;diff=6251"/>
		<updated>2020-06-11T04:39:30Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]][[File:wiki-armslore.gif|right|link=]]&lt;br /&gt;
Players can use the Arms Lore skill to view stats of weapons and armor. Arms Lore can be used on items up to 12 tiles away.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PvM==&lt;br /&gt;
* Increases the chance of inflicting [[Archery]], [[Fencing]], [[Mace Fighting]], [[Swordsmanship]] and [[Wrestling]] Weapon Special Attacks against creatures by (10% * (Arms Lore Skill / 100))&lt;br /&gt;
* Increasing the damage of attacks with [[Wrestling]] by [[Base Weapon Damage]] * (50% * (Wrestling Skill / 100)) damage on each swing when attacking non-player creatures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Disarm Attacks==&lt;br /&gt;
* Players must have 80 Arms Lore and 80 Weapon skill in their currently equipped weapon (or 80 Wrestling for unarmed) to attempt to make a Disarm attack&lt;br /&gt;
* See [[Disarm]] page to know a lot more about this mechanic&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hamstring==&lt;br /&gt;
Visit the [[Hamstring]] page for more information.&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
* Up to 50.0 skill can be trained by an NPC.&lt;br /&gt;
* Skill gains for Arms Lore up to 70.0 are accelerated in the [[New Player Dungeon]].&lt;br /&gt;
* Arms Lore can be trained through active use.&lt;br /&gt;
* Arms Lore gains passively when the player is in melee combat.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Tracking&amp;diff=6250</id>
		<title>Tracking</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Tracking&amp;diff=6250"/>
		<updated>2020-06-11T04:39:11Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: left;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:tracking-huntingmode.gif|center|link=]]&lt;br /&gt;
[[Category:Skills]]&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
* Tracking success chance is (100% * (Tracking Skill / 100))&lt;br /&gt;
* On a successful tracking attempt, players can see a list of non-hidden targets within (20 + (80 * (Tracking Skill / 100))) spaces&lt;br /&gt;
** Inside dungeons, this tracking distance is halved (10 + (40 * (Tracking Skill / 100))) spaces&lt;br /&gt;
* On a successful tracking attempt players will also see hidden targets, however only up to a base distance that is 10% of their normal tracking distance&lt;br /&gt;
* With the Detect Hidden skill, the distance for tracking hidden targets is improved to (10% + (40% * (Detect Hidden Skill / 100))) of their normal tracking distance&lt;br /&gt;
** Because tracking distance is halved in dungeons, the range at which hidden targets can be tracked is halved as well.&lt;br /&gt;
* 100 Tracking Skill and 0 Detect Hidden a player can track non-hidden targets up to 100 spaces and hidden targets up to 10 spaces away (50 and 5 spaces respectively in a dungeon)&lt;br /&gt;
* 100 Tracking Skill and 50 Detect Hidden skill the player can track hidden players up to 30 spaces away (50 and 15 spaces respectively in a dungeon)&lt;br /&gt;
* 100 Tracking Skill and 100 Detect Hidden skill the player can track hidden players up to 50 spaces away (50 and 25 spaces respectively in a dungeon)&lt;br /&gt;
* Players who are actively tracking any target or have &amp;quot;Hunting&amp;quot; mode currently enable receive a melee and spell damage bonus&lt;br /&gt;
* Players can right-click to cancel the on-screen tracking arrow for their current tracked target and they will still receive the damage bonus against it&lt;br /&gt;
&lt;br /&gt;
==Hunting==&lt;br /&gt;
* Players can activate and deactivate a &amp;quot;Hunting&amp;quot; mode from the Tracking window to automatically make Tracking skill checks at various intervals (still requiring the normal 5 second skill cooldown) against a specific type of player/creature&lt;br /&gt;
* When a new target is successful tracked via the Hunting mode, a Tracking Arrow to the target is placed on screen and the player receives a system message informing them of what they are currently tracking and how many spaces away it is currently&lt;br /&gt;
* Players who are actively tracking any target or have &amp;quot;Hunting&amp;quot; mode currently enable receive a melee and spell damage bonus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:tracking01.png|right|link=]]Players can click arrows to rotate through and select a specific type of player/creature to Hunt, such as:&lt;br /&gt;
&lt;br /&gt;
* Aggressive Creatures&lt;br /&gt;
* Passive Creatures&lt;br /&gt;
* Townsfolk&lt;br /&gt;
* All Players&lt;br /&gt;
* Freely attackable (hostile) players (Red, Orange, or Grey)&lt;br /&gt;
* Orange Players only&lt;br /&gt;
* Red Players only&lt;br /&gt;
* Grey Players only&lt;br /&gt;
* Blue Players only&lt;br /&gt;
* Green Players only&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Based on which &amp;quot;Hunt Frequency&amp;quot; the player has selected, the Tracking system will make Tracking skill checks at various intervals for their currently specified Hunting player/creature type based as follows:&lt;br /&gt;
===Current Combatant===&lt;br /&gt;
* Will constantly make Tracking skill checks, but only against your current combat target&lt;br /&gt;
* IE. Last creature you double-clicked or did damage to&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Always Get Closest===&lt;br /&gt;
* Will constantly make Tracking skill checks and set your tracking target to whatever is closest&lt;br /&gt;
* Ideal for gaining Tracking skill&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Follow Only Individual===&lt;br /&gt;
* Will constantly make Tracking skill checks but only against the last selection you made from the regular Tracking Results window&lt;br /&gt;
* Players should always select this mode when they want to track and follow another player that is likely moving&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New When No Arrow===&lt;br /&gt;
* Will only make Tracking skill checks when you don&#039;t have a Tracking Arrow active on screen&lt;br /&gt;
* Ideal for farming&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New When No Target===&lt;br /&gt;
* Will only make Tracking skill checks when you don&#039;t have a Tracking Arrow active on screen and your last tracked target is no longer trackable, due to being dead or too far away&lt;br /&gt;
* Ideal for farming and having an uncluttered screen&lt;br /&gt;
&lt;br /&gt;
==PvM Bonus==&lt;br /&gt;
* When tracking a creature, the on-screen tracking arrow will update every second with the creature&#039;s new location&lt;br /&gt;
* When attacking any creature while tracking an individual target or in Hunting Mode, add [[Base Weapon Damage]] * (25% * (Tracking Skill / 100)) damage per weapon hit.&lt;br /&gt;
* Increases spell damage against any creature while tracking an individual target or in Hunting Mode by (25% * (Tracking Skill / 100))&lt;br /&gt;
* Increases Effective Barding skill against tracked target or in Hunting Mode by (10 * (Tracking Skill / 100))&lt;br /&gt;
&lt;br /&gt;
==PvP Bonus==&lt;br /&gt;
* When tracking another player, the on-screen tracking arrow will simply point to the player&#039;s last location at the time the tracking skill was made, and will not update it&#039;s location if the player moves unless another tracking attempt is made&lt;br /&gt;
* When attacking any player while tracking an individual target or in Hunting Mode, add [[Base Weapon Damage]] * (10% * (Tracking Skill / 100)) damage per weapon hit.&lt;br /&gt;
* Increases spell damage against any player while tracking an individual target or in Hunting Mode by (10% * (Tracking Skill / 100))&lt;br /&gt;
&lt;br /&gt;
==Hamstring==&lt;br /&gt;
Visit the [[Hamstring]] page for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
* Up to 50.0 skill can be trained by a NPC Ranger vendor&lt;br /&gt;
* Skill gains for Tracking up to 70.0 are accelerated in the [[New Player Dungeon]]&lt;br /&gt;
* 50-70 Use the skill and click the begin hunting button while in the [[New Player Dungeon]]&lt;br /&gt;
* 70-120 Use the skill and click the begin hunting button&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Forensic_Evaluation&amp;diff=6249</id>
		<title>Forensic Evaluation</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Forensic_Evaluation&amp;diff=6249"/>
		<updated>2020-06-11T04:38:46Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]]&amp;lt;div style=&amp;quot;float: left;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:harvesting-forensicevaluation.gif|center|link=]]&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
Players can harvest Leather using a Skinning Knife and have a chance to carve colored leather from corpses. When a player carves a creature&#039;s corpse, they will gain a melee and spell damage bonus, and barding skill bonus as well.&lt;br /&gt;
&lt;br /&gt;
* [[File:resources-leather.png|right|link=]]Players can use Forensic Evaluation or a Skinning Knife and target themselves or the ground nearby to activate &amp;quot;Smart Harvest&amp;quot; which will carve all &amp;quot;grey&amp;quot; notoriety corpses within 2 tiles&lt;br /&gt;
* Carving a creature corpse will automatically open the corpse for the player&lt;br /&gt;
* Players have a chance to carve colored leather from corpses and all leather colors are possible on any creature, provided the player meets the material&#039;s skill requirements&lt;br /&gt;
* All creatures are carvable for leather and meat, and have a chance of special cooking ingredients, scaled based on the player&#039;s Forensic Eval skill&lt;br /&gt;
* The amount of leather and meat when carving corpses is (50% + (150% * (Forensic Skill / 100)) of the base amount for the creature&lt;br /&gt;
* The chance for a player to harvest colored leather instead of regular leather is (4% * (1 + Tool Bonus))&lt;br /&gt;
* You can use it on yourself in order to harvest the closest body.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Harvesting Colored Leather==&lt;br /&gt;
{| class=&amp;quot;contenttable sortable&amp;quot; style=&amp;quot;border: 0px; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Regular Leather===&lt;br /&gt;
* Requires 0 Forensic Eval Skill&lt;br /&gt;
* 82% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Dullhide Leather=== &lt;br /&gt;
[[File:leatherdull.png|left]]&lt;br /&gt;
* Requires 65 Forensic Eval Skill&lt;br /&gt;
* 30% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Shadowhide Leather===&lt;br /&gt;
[[File:leathershadow.png|left]]&lt;br /&gt;
* Requires 70 Forensic Eval Skill&lt;br /&gt;
* 21% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Copperhide Leather===&lt;br /&gt;
[[File:leathercopper.png|left]]&lt;br /&gt;
* Requires 75 Forensic Eval Skill&lt;br /&gt;
* 16% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Bronzehide Leather===&lt;br /&gt;
[[File:leatherbronze.png|left]]&lt;br /&gt;
* Requires 80 Forensic Eval Skill &lt;br /&gt;
* 12% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Goldenhide Leather===&lt;br /&gt;
[[File:leathergolden.png|left]]&lt;br /&gt;
* Requires 85 Forensic Eval Skill &lt;br /&gt;
* 9% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Rosehide Leather===&lt;br /&gt;
[[File:leatherrose.png|left]]&lt;br /&gt;
* Requires 90 Forensic Eval Skill &lt;br /&gt;
* 6% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Verehide Leather===&lt;br /&gt;
[[File:leathervere.png|left]]&lt;br /&gt;
* Requires 95 Forensic Eval Skill&lt;br /&gt;
* 4% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Valehide Leather===&lt;br /&gt;
[[File:leathervale.png|left]]&lt;br /&gt;
* Requires 99 Forensic Eval Skill&lt;br /&gt;
* 2% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Avarhide Leather===&lt;br /&gt;
[[File:leatheravar.png|left]]&lt;br /&gt;
* Requires 110 Forensic Eval Skill &lt;br /&gt;
* 1% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Colored Skinning Knives==&lt;br /&gt;
[[File:harvesting-craftingskinningknife.png|right|link=]]Players using exceptional and colored material Skinning Knives will receive a Tool Bonus to their chance of harvesting colored leather as follows (with all applicable bonuses stacking):&lt;br /&gt;
&lt;br /&gt;
* Exceptional Quality Skinning Knife Tool Bonus: &#039;&#039;&#039;0.04&#039;&#039;&#039;&lt;br /&gt;
* Master Crafted Tool Bonus: &#039;&#039;&#039;0.04&#039;&#039;&#039;&lt;br /&gt;
* Dull Copper Skinning Knife Tool Bonus: &#039;&#039;&#039;0.02&#039;&#039;&#039;&lt;br /&gt;
* Shadow Iron Skinning Knife Tool Bonus: &#039;&#039;&#039;0.04&#039;&#039;&#039;&lt;br /&gt;
* Copper Skinning Knife Tool Bonus: &#039;&#039;&#039;0.06&#039;&#039;&#039;&lt;br /&gt;
* Bronze Skinning Knife Tool Bonus: &#039;&#039;&#039;0.08&#039;&#039;&#039;&lt;br /&gt;
* Gold Skinning Knife Tool Bonus: &#039;&#039;&#039;0.10&#039;&#039;&#039;&lt;br /&gt;
* Agapite Skinning Knife Tool Bonus: &#039;&#039;&#039;0.12&#039;&#039;&#039;&lt;br /&gt;
* Verite Skinning Knife Tool Bonus: &#039;&#039;&#039;0.14&#039;&#039;&#039;&lt;br /&gt;
* Valorite Skinning Knife Tool Bonus: &#039;&#039;&#039;0.16&#039;&#039;&#039;&lt;br /&gt;
* Avarite Skinning Knife Tool Bonus: &#039;&#039;&#039;0.18&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Skinning Maps==&lt;br /&gt;
* When using Skinning Maps, search radius is increased by (100% * (Forensic Eval Skill / 100))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:resourcemap-forensicevalskinning.gif|center|link=Resource Maps]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Buffs==&lt;br /&gt;
&lt;br /&gt;
The Forensic Eval Slayer bonus has been reduced to 3 hours (previously was 12 hours) [https://forums.uooutlands.com/index.php?threads/patch-notes-for-october-3-2019.2514/ Patch Notes 20191003]&lt;br /&gt;
&lt;br /&gt;
===PvM Bonus===&lt;br /&gt;
* The maximum Forensic Eval melee damage bonus that can be achieved against creatures is 30%. Formula: (25% * (Forensic Eval Skill / 100))&lt;br /&gt;
* When attacking a creature, add [[Base Weapon Damage]] * Current Forensic Eval Bonus damage per swing.&lt;br /&gt;
* The maximum Forensic Eval spell damage bonus that can be achieved against creatures is 30%. Formula: (25% * (Forensic Eval Skill / 100))&lt;br /&gt;
* The maximum barding skills bonus that can be achieved is 12%. Formula: (10% * (Forensic Eval Skill / 100))&lt;br /&gt;
&lt;br /&gt;
===PvP Bonus===&lt;br /&gt;
* The maximum Forensic Eval melee damage bonus that can be achieved against other players is 12%. Formula: (10% * (Forensic Eval Skill / 100)) * 40%&lt;br /&gt;
* When attacking a player, add [[Base Weapon Damage]] * Current Forensic Eval Bonus damage per swing.&lt;br /&gt;
* The maximum Forensic Eval spell damage bonus that can be achieved against other players is 12%. Formula: (10% * (Forensic Eval Skill / 100)) * 40%&lt;br /&gt;
&lt;br /&gt;
==Hamstring==&lt;br /&gt;
Visit the [[Hamstring]] page for more information.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Camping&amp;diff=6248</id>
		<title>Camping</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Camping&amp;diff=6248"/>
		<updated>2020-06-11T04:38:19Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: left;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
{{#ev:youtube|https://youtu.be/J36G90qhy-g|alignment|center}}&lt;br /&gt;
[[Category:Skills]]&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
* In order start a campfire a player must use a piece of kindling. This can be acquired by using a dagger on a tree, or through the [[Carpentry]] menu with boards and a carpentry tool (0 Carpentry skill required)&lt;br /&gt;
* When successful Camping skill allows players to create a campfire lasting ten minutes that provides a buff to yourself and others nearby&lt;br /&gt;
* The Camping skill increases a player&#039;s backpack maximum weight capacity and item count&lt;br /&gt;
* With the World Atlas and Camping skill, players can Hike (fast travel) to certain locations they have previously secured a camp at, limited by skill level. &lt;br /&gt;
* In order to unlock these locations, simply secure a campsite within 10 tiles of the coordinates found in your Atlas. &lt;br /&gt;
* Unlocking locations is done on a per character-basis (not stored account-wise)&lt;br /&gt;
* Hiking to a location sends the player to randomized location in a 5 tile radius of the Atlas entry location, or in the case of Townships, anywhere within the town limits. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:wiki-atlasbook.gif|center|link=]]&lt;br /&gt;
&lt;br /&gt;
==Buffs==&lt;br /&gt;
* The Camping skill increases a player&#039;s backpack maximum weight capacity by (200 stones * (Camping Skill / 100))&lt;br /&gt;
* The skill also increases a player&#039;s backpack maximum item count allowed by (50 * (Camping Skill / 100))&lt;br /&gt;
* Campfires made by players take (60 seconds - (45 seconds * (Camping Skill / 100))) seconds to secure, based on the camping skill of the campfire creator&lt;br /&gt;
* Camping buff duration lasts for 3 hours. [https://forums.uooutlands.com/index.php?threads/patch-notes-for-october-3-2019.2514/ Patch Notes 20191003]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PvM===&lt;br /&gt;
* A player at a secure campfire site that they created themselves does an additional [[Base Weapon Damage]] * (25% * (Camping Skill / 100)) damage per weapon hit against creatures.&lt;br /&gt;
* A player at a secure campfire site that they created themselves receive a spell damage bonus against creatures of (25% * (Camping Skill / 100)) &lt;br /&gt;
* A player visiting a secure campfire site created by another player does an additional [[Base Weapon Damage]] * (5% * (Creator&#039;s Camping Skill / 100)) damage per weapon hit against creatures.&lt;br /&gt;
* A player visiting a secure campfire site created by another player receives a spell damage bonus against creatures of (5% * (Creator&#039;s Camping Skill / 100)) - No Camping skill required for visitors&lt;br /&gt;
&lt;br /&gt;
===PvP===&lt;br /&gt;
* A player at a secure campsite that they created themselves does an additional [[Base Weapon Damage]] * (10% * (Camping Skill / 100)) damage per weapon hit against players. &lt;br /&gt;
* A player at a secure campsite that they created themselves receive a spell damage bonus against other players of (10% * (Camping Skill / 100)) &lt;br /&gt;
* A player visiting a secure campfire site created by another player does an additional [[Base Weapon Damage]] * (2% * (Creator&#039;s Camping Skill / 100)) damage per weapon hit against players.&lt;br /&gt;
* A player visiting a secure campfire site created by another player receives a spell damage bonus against other players of (2.5% * (Creator&#039;s Camping Skill / 100))&lt;br /&gt;
&lt;br /&gt;
==Hiking==&lt;br /&gt;
Players can now &amp;quot;Hike&amp;quot; to travel to destinations that can be found within the Atlas, based on their Camping skill.&lt;br /&gt;
&lt;br /&gt;
* At &#039;&#039;&#039;60 Camping Skill&#039;&#039;&#039; players may Hike to &#039;&#039;&#039;Cities, Moongates, and Healer Caravans&#039;&#039;&#039;[[File:wiki-camping03.gif|right|alt=Using the Camping skill allows you to &#039;Fast Travel&#039; to various locations|link=|text-top]]&lt;br /&gt;
* At &#039;&#039;&#039;80 Camping Skill&#039;&#039;&#039; players may Hike to &#039;&#039;&#039;Dungeons and Subterranean areas&#039;&#039;&#039;&lt;br /&gt;
* At &#039;&#039;&#039;100 Camping Skill&#039;&#039;&#039; players may Hike to &#039;&#039;&#039;Shrines and Points of Interest&#039;&#039;&#039;&lt;br /&gt;
* At &#039;&#039;&#039;120 Camping Skill&#039;&#039;&#039; players may Hike to &#039;&#039;&#039;their own Homes and Guildhouses&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When a player hikes to an Atlas destination, they are frozen in place for 10 seconds before being sent to their destination. Players begin with 3 Custom Location entries. Players can unlock 2 additional Custom Location Entries (for all characters on their account) by purchasing the Drifter Player Enhancement. Players can also unlock 4 additional Custom Locations Entries (for all characters on their account) by purchasing the Wayfarer Player Enhancement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In order to hike to a destination:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The player must select the &amp;quot;Hike to Location&amp;quot; button in the Atlas entry for the destination&lt;br /&gt;
* The player must be at a secure campfire site&lt;br /&gt;
* The player must not have been in combat of any type within 30 seconds&lt;br /&gt;
* The player must not have been in combat with any player within 2 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bedrolls==&lt;br /&gt;
* Players can double-click bedrolls from their backpack to place it at their feet.&lt;br /&gt;
* Players can instantly log out using a bedroll if it is placed by a secure campsite&lt;br /&gt;
* Players may not use bedrolls to log out inside dungeons [https://forums.uooutlands.com/index.php?threads/patch-notes-april-28-2019.2102/ Patched 20190428]&lt;br /&gt;
&lt;br /&gt;
[[File:campingbedroll.png|center|link=]]&lt;br /&gt;
&lt;br /&gt;
==Enhancements==&lt;br /&gt;
* Players can increase the amount of custom hiking locations they can mark using the help menu under [[Player_Customizations#Enhancements]]&lt;br /&gt;
&lt;br /&gt;
[[File:campingenhancements.png|center|link=]]&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Tactics&amp;diff=6247</id>
		<title>Tactics</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Tactics&amp;diff=6247"/>
		<updated>2020-06-11T04:37:44Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]]&lt;br /&gt;
==Summary==&lt;br /&gt;
Tactics modifies weapon damage for all melee and ranged weapons.&lt;br /&gt;
&lt;br /&gt;
* From 0 to 100, tactics adds [[Base Weapon Damage]] * (-0.5 + (Tactics Skill / 200)) damage to each swing.&lt;br /&gt;
* From 100.1 and above, tactics adds [[Base Weapon Damage]] * (0.01 * (Tactics Skill - 100)) damage to each swing. In other words, tactics adds 1% of [[Base Weapon Damage]] per point above 100.&lt;br /&gt;
&lt;br /&gt;
==Example Calculations==&lt;br /&gt;
* For a player with 110 tactics, start with your [[Base Weapon Damage]]. Say that value rolls 25.&lt;br /&gt;
* Since tactics is at least 100, the initial damage modifier is 25 * (-0.5 + (100 / 200)) which is 0.&lt;br /&gt;
* There are 10 points over 100, so additionally add 25 * (0.01 * 10) which is 2.5 damage.&lt;br /&gt;
* The final hit, if no other bonuses are present, is then 27.5.&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
&lt;br /&gt;
* Tactics is gained passively through melee combat.&lt;br /&gt;
* Up to 50.0 skill can be trained by weaponsmith NPCs.&lt;br /&gt;
* Skill gains for Tactics up to 70.0 are accelerated in the [[New Player Dungeon]].&lt;br /&gt;
** 50-70 Passively with melee combat in the New Player Dungeon.&lt;br /&gt;
** 70-100 Passively with melee combat.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Anatomy&amp;diff=6246</id>
		<title>Anatomy</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Anatomy&amp;diff=6246"/>
		<updated>2020-06-11T04:37:11Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]]__NOTOC__&lt;br /&gt;
[[File:wiki-anatomy.gif|right|link=]]&lt;br /&gt;
&lt;br /&gt;
==Healing Interaction==&lt;br /&gt;
&lt;br /&gt;
* Minimum Anatomy skill of 60 is required for bandage cure attempts&lt;br /&gt;
* Minimum Anatomy skill of 80 is required for bandage resurrection attempts&lt;br /&gt;
* Players with 100 Healing and at least 80 Anatomy will always have 100% chance to resurrect their target with bandages&lt;br /&gt;
* Bandage [[Healing]] Amounts are ((Healing Skill / 100) * ((Random Value of 40 to 60) * (1 + (0.2 * Anatomy Skill / 100))))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Combat Impact==&lt;br /&gt;
&lt;br /&gt;
* For melee and archery weapons, adds [[Base Weapon Damage]] * (20% * (Anatomy Skill / 100)) damage to each swing.&lt;br /&gt;
* For [[Wrestling]], adds [[Base Weapon Damage]] * (50% * (Anatomy Skill / 100)) damage to each swing against creatures.&lt;br /&gt;
* For [[Wrestling]], adds [[Base Weapon Damage]] * (20% * (Anatomy Skill / 100)) damage to each swing against other players.&lt;br /&gt;
* The above bonuses do not count towards PvP damage caps.&lt;br /&gt;
* Players who have at least 2 different skills above 80 between [[Anatomy]], [[Arms Lore]], [[Forensic Evaluation]], [[Tracking]], and/or [[Wrestling]] can make [[Hamstring]] attempts&lt;br /&gt;
* Note: Tooltips in game will suggest that this bonus is 20% at GM, but that is incorrect.  There is a separate 2x scalar for melee bonuses that is active but does not get reflected in the tooltips or arms lore window.  You can toggle these skill amounts on the test server and look at your weapon damage in the status window if you want confirmation, but the bonuses noted above are correct.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
* Up to 50.0 skill can be trained by a NPC butcher or healer vendor.&lt;br /&gt;
* Skill gains for Anatomy up to 70.0 are accelerated in the [[New Player Dungeon]].&lt;br /&gt;
* Anatomy can be gained passively through combat and use of the [[Healing]] skill.&lt;br /&gt;
* While Anatomy can be gained through active use of the skill; that is a slower method compared to:&lt;br /&gt;
** 50-70 Passively by Healing or Melee Combat in the New Player Dungeon.&lt;br /&gt;
** 70-100 Passively by Healing or Melee Combat&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=UO_Outlands_Wiki:Base_Weapon_Damage&amp;diff=6245</id>
		<title>UO Outlands Wiki:Base Weapon Damage</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=UO_Outlands_Wiki:Base_Weapon_Damage&amp;diff=6245"/>
		<updated>2020-06-11T04:35:59Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: Jaedan moved page UO Outlands Wiki:Base Weapon Damage to Base Weapon Damage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Base Weapon Damage]]&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Base_Weapon_Damage&amp;diff=6244</id>
		<title>Base Weapon Damage</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Base_Weapon_Damage&amp;diff=6244"/>
		<updated>2020-06-11T04:35:58Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: Jaedan moved page UO Outlands Wiki:Base Weapon Damage to Base Weapon Damage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Mechanics]]&lt;br /&gt;
Most damage modifiers on Outlands, such as skills and weapon bonuses, are calculated using a value called base damage. The starting point for base damage is your weapon. To view the base damage range of a weapon, use the [[Arms Lore]] skill on the weapon. When performing an attack, damage is first rolled within the base damage range. Base damage is then modified as follows depending on the target of the attack:&lt;br /&gt;
&lt;br /&gt;
* If attacking another player, the rolled base damage is used without modification.&lt;br /&gt;
* If attacking a tamed creature, the rolled base damage is multiplied by 1.5.&lt;br /&gt;
* If attacking a non-tamed creature, the rolled base damage is multiplied by 2.0.&lt;br /&gt;
&lt;br /&gt;
The final result of this calculation is considered the base damage for all other formulas.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Base_damage&amp;diff=6243</id>
		<title>Base damage</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Base_damage&amp;diff=6243"/>
		<updated>2020-06-11T04:35:44Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: Jaedan moved page Base damage to UO Outlands Wiki:Base Weapon Damage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[UO Outlands Wiki:Base Weapon Damage]]&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Base_Weapon_Damage&amp;diff=6242</id>
		<title>Base Weapon Damage</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Base_Weapon_Damage&amp;diff=6242"/>
		<updated>2020-06-11T04:35:43Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: Jaedan moved page Base damage to UO Outlands Wiki:Base Weapon Damage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Mechanics]]&lt;br /&gt;
Most damage modifiers on Outlands, such as skills and weapon bonuses, are calculated using a value called base damage. The starting point for base damage is your weapon. To view the base damage range of a weapon, use the [[Arms Lore]] skill on the weapon. When performing an attack, damage is first rolled within the base damage range. Base damage is then modified as follows depending on the target of the attack:&lt;br /&gt;
&lt;br /&gt;
* If attacking another player, the rolled base damage is used without modification.&lt;br /&gt;
* If attacking a tamed creature, the rolled base damage is multiplied by 1.5.&lt;br /&gt;
* If attacking a non-tamed creature, the rolled base damage is multiplied by 2.0.&lt;br /&gt;
&lt;br /&gt;
The final result of this calculation is considered the base damage for all other formulas.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Camping&amp;diff=6241</id>
		<title>Camping</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Camping&amp;diff=6241"/>
		<updated>2020-06-11T04:34:43Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: left;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
{{#ev:youtube|https://youtu.be/J36G90qhy-g|alignment|center}}&lt;br /&gt;
[[Category:Skills]]&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
* In order start a campfire a player must use a piece of kindling. This can be acquired by using a dagger on a tree, or through the [[Carpentry]] menu with boards and a carpentry tool (0 Carpentry skill required)&lt;br /&gt;
* When successful Camping skill allows players to create a campfire lasting ten minutes that provides a buff to yourself and others nearby&lt;br /&gt;
* The Camping skill increases a player&#039;s backpack maximum weight capacity and item count&lt;br /&gt;
* With the World Atlas and Camping skill, players can Hike (fast travel) to certain locations they have previously secured a camp at, limited by skill level. &lt;br /&gt;
* In order to unlock these locations, simply secure a campsite within 10 tiles of the coordinates found in your Atlas. &lt;br /&gt;
* Unlocking locations is done on a per character-basis (not stored account-wise)&lt;br /&gt;
* Hiking to a location sends the player to randomized location in a 5 tile radius of the Atlas entry location, or in the case of Townships, anywhere within the town limits. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:wiki-atlasbook.gif|center|link=]]&lt;br /&gt;
&lt;br /&gt;
==Buffs==&lt;br /&gt;
* The Camping skill increases a player&#039;s backpack maximum weight capacity by (200 stones * (Camping Skill / 100))&lt;br /&gt;
* The skill also increases a player&#039;s backpack maximum item count allowed by (50 * (Camping Skill / 100))&lt;br /&gt;
* Campfires made by players take (60 seconds - (45 seconds * (Camping Skill / 100))) seconds to secure, based on the camping skill of the campfire creator&lt;br /&gt;
* Camping buff duration lasts for 3 hours. [https://forums.uooutlands.com/index.php?threads/patch-notes-for-october-3-2019.2514/ Patch Notes 20191003]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PvM===&lt;br /&gt;
* A player at a secure campfire site that they created themselves does an additional [[base damage]] * (25% * (Camping Skill / 100)) damage per weapon hit against creatures.&lt;br /&gt;
* A player at a secure campfire site that they created themselves receive a spell damage bonus against creatures of (25% * (Camping Skill / 100)) &lt;br /&gt;
* A player visiting a secure campfire site created by another player does an additional [[base damage]] * (5% * (Creator&#039;s Camping Skill / 100)) damage per weapon hit against creatures.&lt;br /&gt;
* A player visiting a secure campfire site created by another player receives a spell damage bonus against creatures of (5% * (Creator&#039;s Camping Skill / 100)) - No Camping skill required for visitors&lt;br /&gt;
&lt;br /&gt;
===PvP===&lt;br /&gt;
* A player at a secure campsite that they created themselves does an additional [[base damage]] * (10% * (Camping Skill / 100)) damage per weapon hit against players. &lt;br /&gt;
* A player at a secure campsite that they created themselves receive a spell damage bonus against other players of (10% * (Camping Skill / 100)) &lt;br /&gt;
* A player visiting a secure campfire site created by another player does an additional [[base damage]] * (2% * (Creator&#039;s Camping Skill / 100)) damage per weapon hit against players.&lt;br /&gt;
* A player visiting a secure campfire site created by another player receives a spell damage bonus against other players of (2.5% * (Creator&#039;s Camping Skill / 100))&lt;br /&gt;
&lt;br /&gt;
==Hiking==&lt;br /&gt;
Players can now &amp;quot;Hike&amp;quot; to travel to destinations that can be found within the Atlas, based on their Camping skill.&lt;br /&gt;
&lt;br /&gt;
* At &#039;&#039;&#039;60 Camping Skill&#039;&#039;&#039; players may Hike to &#039;&#039;&#039;Cities, Moongates, and Healer Caravans&#039;&#039;&#039;[[File:wiki-camping03.gif|right|alt=Using the Camping skill allows you to &#039;Fast Travel&#039; to various locations|link=|text-top]]&lt;br /&gt;
* At &#039;&#039;&#039;80 Camping Skill&#039;&#039;&#039; players may Hike to &#039;&#039;&#039;Dungeons and Subterranean areas&#039;&#039;&#039;&lt;br /&gt;
* At &#039;&#039;&#039;100 Camping Skill&#039;&#039;&#039; players may Hike to &#039;&#039;&#039;Shrines and Points of Interest&#039;&#039;&#039;&lt;br /&gt;
* At &#039;&#039;&#039;120 Camping Skill&#039;&#039;&#039; players may Hike to &#039;&#039;&#039;their own Homes and Guildhouses&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When a player hikes to an Atlas destination, they are frozen in place for 10 seconds before being sent to their destination. Players begin with 3 Custom Location entries. Players can unlock 2 additional Custom Location Entries (for all characters on their account) by purchasing the Drifter Player Enhancement. Players can also unlock 4 additional Custom Locations Entries (for all characters on their account) by purchasing the Wayfarer Player Enhancement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In order to hike to a destination:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The player must select the &amp;quot;Hike to Location&amp;quot; button in the Atlas entry for the destination&lt;br /&gt;
* The player must be at a secure campfire site&lt;br /&gt;
* The player must not have been in combat of any type within 30 seconds&lt;br /&gt;
* The player must not have been in combat with any player within 2 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bedrolls==&lt;br /&gt;
* Players can double-click bedrolls from their backpack to place it at their feet.&lt;br /&gt;
* Players can instantly log out using a bedroll if it is placed by a secure campsite&lt;br /&gt;
* Players may not use bedrolls to log out inside dungeons [https://forums.uooutlands.com/index.php?threads/patch-notes-april-28-2019.2102/ Patched 20190428]&lt;br /&gt;
&lt;br /&gt;
[[File:campingbedroll.png|center|link=]]&lt;br /&gt;
&lt;br /&gt;
==Enhancements==&lt;br /&gt;
* Players can increase the amount of custom hiking locations they can mark using the help menu under [[Player_Customizations#Enhancements]]&lt;br /&gt;
&lt;br /&gt;
[[File:campingenhancements.png|center|link=]]&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Forensic_Evaluation&amp;diff=6240</id>
		<title>Forensic Evaluation</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Forensic_Evaluation&amp;diff=6240"/>
		<updated>2020-06-11T04:22:14Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]]&amp;lt;div style=&amp;quot;float: left;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:harvesting-forensicevaluation.gif|center|link=]]&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
Players can harvest Leather using a Skinning Knife and have a chance to carve colored leather from corpses. When a player carves a creature&#039;s corpse, they will gain a melee and spell damage bonus, and barding skill bonus as well.&lt;br /&gt;
&lt;br /&gt;
* [[File:resources-leather.png|right|link=]]Players can use Forensic Evaluation or a Skinning Knife and target themselves or the ground nearby to activate &amp;quot;Smart Harvest&amp;quot; which will carve all &amp;quot;grey&amp;quot; notoriety corpses within 2 tiles&lt;br /&gt;
* Carving a creature corpse will automatically open the corpse for the player&lt;br /&gt;
* Players have a chance to carve colored leather from corpses and all leather colors are possible on any creature, provided the player meets the material&#039;s skill requirements&lt;br /&gt;
* All creatures are carvable for leather and meat, and have a chance of special cooking ingredients, scaled based on the player&#039;s Forensic Eval skill&lt;br /&gt;
* The amount of leather and meat when carving corpses is (50% + (150% * (Forensic Skill / 100)) of the base amount for the creature&lt;br /&gt;
* The chance for a player to harvest colored leather instead of regular leather is (4% * (1 + Tool Bonus))&lt;br /&gt;
* You can use it on yourself in order to harvest the closest body.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Harvesting Colored Leather==&lt;br /&gt;
{| class=&amp;quot;contenttable sortable&amp;quot; style=&amp;quot;border: 0px; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Regular Leather===&lt;br /&gt;
* Requires 0 Forensic Eval Skill&lt;br /&gt;
* 82% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Dullhide Leather=== &lt;br /&gt;
[[File:leatherdull.png|left]]&lt;br /&gt;
* Requires 65 Forensic Eval Skill&lt;br /&gt;
* 30% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Shadowhide Leather===&lt;br /&gt;
[[File:leathershadow.png|left]]&lt;br /&gt;
* Requires 70 Forensic Eval Skill&lt;br /&gt;
* 21% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Copperhide Leather===&lt;br /&gt;
[[File:leathercopper.png|left]]&lt;br /&gt;
* Requires 75 Forensic Eval Skill&lt;br /&gt;
* 16% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Bronzehide Leather===&lt;br /&gt;
[[File:leatherbronze.png|left]]&lt;br /&gt;
* Requires 80 Forensic Eval Skill &lt;br /&gt;
* 12% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Goldenhide Leather===&lt;br /&gt;
[[File:leathergolden.png|left]]&lt;br /&gt;
* Requires 85 Forensic Eval Skill &lt;br /&gt;
* 9% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Rosehide Leather===&lt;br /&gt;
[[File:leatherrose.png|left]]&lt;br /&gt;
* Requires 90 Forensic Eval Skill &lt;br /&gt;
* 6% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Verehide Leather===&lt;br /&gt;
[[File:leathervere.png|left]]&lt;br /&gt;
* Requires 95 Forensic Eval Skill&lt;br /&gt;
* 4% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Valehide Leather===&lt;br /&gt;
[[File:leathervale.png|left]]&lt;br /&gt;
* Requires 99 Forensic Eval Skill&lt;br /&gt;
* 2% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
===Avarhide Leather===&lt;br /&gt;
[[File:leatheravar.png|left]]&lt;br /&gt;
* Requires 110 Forensic Eval Skill &lt;br /&gt;
* 1% Chance when harvesting colored leather&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border: 0px; text-align: left; vertical-align: top;&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Colored Skinning Knives==&lt;br /&gt;
[[File:harvesting-craftingskinningknife.png|right|link=]]Players using exceptional and colored material Skinning Knives will receive a Tool Bonus to their chance of harvesting colored leather as follows (with all applicable bonuses stacking):&lt;br /&gt;
&lt;br /&gt;
* Exceptional Quality Skinning Knife Tool Bonus: &#039;&#039;&#039;0.04&#039;&#039;&#039;&lt;br /&gt;
* Master Crafted Tool Bonus: &#039;&#039;&#039;0.04&#039;&#039;&#039;&lt;br /&gt;
* Dull Copper Skinning Knife Tool Bonus: &#039;&#039;&#039;0.02&#039;&#039;&#039;&lt;br /&gt;
* Shadow Iron Skinning Knife Tool Bonus: &#039;&#039;&#039;0.04&#039;&#039;&#039;&lt;br /&gt;
* Copper Skinning Knife Tool Bonus: &#039;&#039;&#039;0.06&#039;&#039;&#039;&lt;br /&gt;
* Bronze Skinning Knife Tool Bonus: &#039;&#039;&#039;0.08&#039;&#039;&#039;&lt;br /&gt;
* Gold Skinning Knife Tool Bonus: &#039;&#039;&#039;0.10&#039;&#039;&#039;&lt;br /&gt;
* Agapite Skinning Knife Tool Bonus: &#039;&#039;&#039;0.12&#039;&#039;&#039;&lt;br /&gt;
* Verite Skinning Knife Tool Bonus: &#039;&#039;&#039;0.14&#039;&#039;&#039;&lt;br /&gt;
* Valorite Skinning Knife Tool Bonus: &#039;&#039;&#039;0.16&#039;&#039;&#039;&lt;br /&gt;
* Avarite Skinning Knife Tool Bonus: &#039;&#039;&#039;0.18&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Skinning Maps==&lt;br /&gt;
* When using Skinning Maps, search radius is increased by (100% * (Forensic Eval Skill / 100))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:resourcemap-forensicevalskinning.gif|center|link=Resource Maps]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Buffs==&lt;br /&gt;
&lt;br /&gt;
The Forensic Eval Slayer bonus has been reduced to 3 hours (previously was 12 hours) [https://forums.uooutlands.com/index.php?threads/patch-notes-for-october-3-2019.2514/ Patch Notes 20191003]&lt;br /&gt;
&lt;br /&gt;
===PvM Bonus===&lt;br /&gt;
* The maximum Forensic Eval melee damage bonus that can be achieved against creatures is 30%. Formula: (25% * (Forensic Eval Skill / 100))&lt;br /&gt;
* When attacking a creature, add [[base damage]] * Current Forensic Eval Bonus damage per swing.&lt;br /&gt;
* The maximum Forensic Eval spell damage bonus that can be achieved against creatures is 30%. Formula: (25% * (Forensic Eval Skill / 100))&lt;br /&gt;
* The maximum barding skills bonus that can be achieved is 12%. Formula: (10% * (Forensic Eval Skill / 100))&lt;br /&gt;
&lt;br /&gt;
===PvP Bonus===&lt;br /&gt;
* The maximum Forensic Eval melee damage bonus that can be achieved against other players is 12%. Formula: (10% * (Forensic Eval Skill / 100)) * 40%&lt;br /&gt;
* When attacking a player, add [[base damage]] * Current Forensic Eval Bonus damage per swing.&lt;br /&gt;
* The maximum Forensic Eval spell damage bonus that can be achieved against other players is 12%. Formula: (10% * (Forensic Eval Skill / 100)) * 40%&lt;br /&gt;
&lt;br /&gt;
==Hamstring==&lt;br /&gt;
Visit the [[Hamstring]] page for more information.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Tracking&amp;diff=6239</id>
		<title>Tracking</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Tracking&amp;diff=6239"/>
		<updated>2020-06-11T04:18:41Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: left;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:tracking-huntingmode.gif|center|link=]]&lt;br /&gt;
[[Category:Skills]]&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
* Tracking success chance is (100% * (Tracking Skill / 100))&lt;br /&gt;
* On a successful tracking attempt, players can see a list of non-hidden targets within (20 + (80 * (Tracking Skill / 100))) spaces&lt;br /&gt;
** Inside dungeons, this tracking distance is halved (10 + (40 * (Tracking Skill / 100))) spaces&lt;br /&gt;
* On a successful tracking attempt players will also see hidden targets, however only up to a base distance that is 10% of their normal tracking distance&lt;br /&gt;
* With the Detect Hidden skill, the distance for tracking hidden targets is improved to (10% + (40% * (Detect Hidden Skill / 100))) of their normal tracking distance&lt;br /&gt;
** Because tracking distance is halved in dungeons, the range at which hidden targets can be tracked is halved as well.&lt;br /&gt;
* 100 Tracking Skill and 0 Detect Hidden a player can track non-hidden targets up to 100 spaces and hidden targets up to 10 spaces away (50 and 5 spaces respectively in a dungeon)&lt;br /&gt;
* 100 Tracking Skill and 50 Detect Hidden skill the player can track hidden players up to 30 spaces away (50 and 15 spaces respectively in a dungeon)&lt;br /&gt;
* 100 Tracking Skill and 100 Detect Hidden skill the player can track hidden players up to 50 spaces away (50 and 25 spaces respectively in a dungeon)&lt;br /&gt;
* Players who are actively tracking any target or have &amp;quot;Hunting&amp;quot; mode currently enable receive a melee and spell damage bonus&lt;br /&gt;
* Players can right-click to cancel the on-screen tracking arrow for their current tracked target and they will still receive the damage bonus against it&lt;br /&gt;
&lt;br /&gt;
==Hunting==&lt;br /&gt;
* Players can activate and deactivate a &amp;quot;Hunting&amp;quot; mode from the Tracking window to automatically make Tracking skill checks at various intervals (still requiring the normal 5 second skill cooldown) against a specific type of player/creature&lt;br /&gt;
* When a new target is successful tracked via the Hunting mode, a Tracking Arrow to the target is placed on screen and the player receives a system message informing them of what they are currently tracking and how many spaces away it is currently&lt;br /&gt;
* Players who are actively tracking any target or have &amp;quot;Hunting&amp;quot; mode currently enable receive a melee and spell damage bonus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:tracking01.png|right|link=]]Players can click arrows to rotate through and select a specific type of player/creature to Hunt, such as:&lt;br /&gt;
&lt;br /&gt;
* Aggressive Creatures&lt;br /&gt;
* Passive Creatures&lt;br /&gt;
* Townsfolk&lt;br /&gt;
* All Players&lt;br /&gt;
* Freely attackable (hostile) players (Red, Orange, or Grey)&lt;br /&gt;
* Orange Players only&lt;br /&gt;
* Red Players only&lt;br /&gt;
* Grey Players only&lt;br /&gt;
* Blue Players only&lt;br /&gt;
* Green Players only&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Based on which &amp;quot;Hunt Frequency&amp;quot; the player has selected, the Tracking system will make Tracking skill checks at various intervals for their currently specified Hunting player/creature type based as follows:&lt;br /&gt;
===Current Combatant===&lt;br /&gt;
* Will constantly make Tracking skill checks, but only against your current combat target&lt;br /&gt;
* IE. Last creature you double-clicked or did damage to&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Always Get Closest===&lt;br /&gt;
* Will constantly make Tracking skill checks and set your tracking target to whatever is closest&lt;br /&gt;
* Ideal for gaining Tracking skill&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Follow Only Individual===&lt;br /&gt;
* Will constantly make Tracking skill checks but only against the last selection you made from the regular Tracking Results window&lt;br /&gt;
* Players should always select this mode when they want to track and follow another player that is likely moving&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New When No Arrow===&lt;br /&gt;
* Will only make Tracking skill checks when you don&#039;t have a Tracking Arrow active on screen&lt;br /&gt;
* Ideal for farming&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New When No Target===&lt;br /&gt;
* Will only make Tracking skill checks when you don&#039;t have a Tracking Arrow active on screen and your last tracked target is no longer trackable, due to being dead or too far away&lt;br /&gt;
* Ideal for farming and having an uncluttered screen&lt;br /&gt;
&lt;br /&gt;
==PvM Bonus==&lt;br /&gt;
* When tracking a creature, the on-screen tracking arrow will update every second with the creature&#039;s new location&lt;br /&gt;
* When attacking any creature while tracking an individual target or in Hunting Mode, add [[base damage]] * (25% * (Tracking Skill / 100)) damage per weapon hit.&lt;br /&gt;
* Increases spell damage against any creature while tracking an individual target or in Hunting Mode by (25% * (Tracking Skill / 100))&lt;br /&gt;
* Increases Effective Barding skill against tracked target or in Hunting Mode by (10 * (Tracking Skill / 100))&lt;br /&gt;
&lt;br /&gt;
==PvP Bonus==&lt;br /&gt;
* When tracking another player, the on-screen tracking arrow will simply point to the player&#039;s last location at the time the tracking skill was made, and will not update it&#039;s location if the player moves unless another tracking attempt is made&lt;br /&gt;
* When attacking any player while tracking an individual target or in Hunting Mode, add [[base damage]] * (10% * (Tracking Skill / 100)) damage per weapon hit.&lt;br /&gt;
* Increases spell damage against any player while tracking an individual target or in Hunting Mode by (10% * (Tracking Skill / 100))&lt;br /&gt;
&lt;br /&gt;
==Hamstring==&lt;br /&gt;
Visit the [[Hamstring]] page for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
* Up to 50.0 skill can be trained by a NPC Ranger vendor&lt;br /&gt;
* Skill gains for Tracking up to 70.0 are accelerated in the [[New Player Dungeon]]&lt;br /&gt;
* 50-70 Use the skill and click the begin hunting button while in the [[New Player Dungeon]]&lt;br /&gt;
* 70-120 Use the skill and click the begin hunting button&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Arms_Lore&amp;diff=6238</id>
		<title>Arms Lore</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Arms_Lore&amp;diff=6238"/>
		<updated>2020-06-11T04:13:56Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]][[File:wiki-armslore.gif|right|link=]]&lt;br /&gt;
Players can use the Arms Lore skill to view stats of weapons and armor. Arms Lore can be used on items up to 12 tiles away.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PvM==&lt;br /&gt;
* Increases the chance of inflicting [[Archery]], [[Fencing]], [[Mace Fighting]], [[Swordsmanship]] and [[Wrestling]] Weapon Special Attacks against creatures by (10% * (Arms Lore Skill / 100))&lt;br /&gt;
* Increasing the damage of attacks with [[Wrestling]] by [[base damage]] * (50% * (Wrestling Skill / 100)) damage on each swing when attacking non-player creatures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Disarm Attacks==&lt;br /&gt;
* Players must have 80 Arms Lore and 80 Weapon skill in their currently equipped weapon (or 80 Wrestling for unarmed) to attempt to make a Disarm attack&lt;br /&gt;
* See [[Disarm]] page to know a lot more about this mechanic&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hamstring==&lt;br /&gt;
Visit the [[Hamstring]] page for more information.&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
* Up to 50.0 skill can be trained by an NPC.&lt;br /&gt;
* Skill gains for Arms Lore up to 70.0 are accelerated in the [[New Player Dungeon]].&lt;br /&gt;
* Arms Lore can be trained through active use.&lt;br /&gt;
* Arms Lore gains passively when the player is in melee combat.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Anatomy&amp;diff=6237</id>
		<title>Anatomy</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Anatomy&amp;diff=6237"/>
		<updated>2020-06-11T04:12:10Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]]__NOTOC__&lt;br /&gt;
[[File:wiki-anatomy.gif|right|link=]]&lt;br /&gt;
&lt;br /&gt;
==Healing Interaction==&lt;br /&gt;
&lt;br /&gt;
* Minimum Anatomy skill of 60 is required for bandage cure attempts&lt;br /&gt;
* Minimum Anatomy skill of 80 is required for bandage resurrection attempts&lt;br /&gt;
* Players with 100 Healing and at least 80 Anatomy will always have 100% chance to resurrect their target with bandages&lt;br /&gt;
* Bandage [[Healing]] Amounts are ((Healing Skill / 100) * ((Random Value of 40 to 60) * (1 + (0.2 * Anatomy Skill / 100))))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Combat Impact==&lt;br /&gt;
&lt;br /&gt;
* For melee and archery weapons, adds [[base damage]] * (20% * (Anatomy Skill / 100)) damage to each swing.&lt;br /&gt;
* For [[Wrestling]], adds [[base damage]] * (50% * (Anatomy Skill / 100)) damage to each swing against creatures.&lt;br /&gt;
* For [[Wrestling]], adds [[base damage]] * (20% * (Anatomy Skill / 100)) damage to each swing against other players.&lt;br /&gt;
* The above bonuses do not count towards PvP damage caps.&lt;br /&gt;
* Players who have at least 2 different skills above 80 between [[Anatomy]], [[Arms Lore]], [[Forensic Evaluation]], [[Tracking]], and/or [[Wrestling]] can make [[Hamstring]] attempts&lt;br /&gt;
* Note: Tooltips in game will suggest that this bonus is 20% at GM, but that is incorrect.  There is a separate 2x scalar for melee bonuses that is active but does not get reflected in the tooltips or arms lore window.  You can toggle these skill amounts on the test server and look at your weapon damage in the status window if you want confirmation, but the bonuses noted above are correct.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
* Up to 50.0 skill can be trained by a NPC butcher or healer vendor.&lt;br /&gt;
* Skill gains for Anatomy up to 70.0 are accelerated in the [[New Player Dungeon]].&lt;br /&gt;
* Anatomy can be gained passively through combat and use of the [[Healing]] skill.&lt;br /&gt;
* While Anatomy can be gained through active use of the skill; that is a slower method compared to:&lt;br /&gt;
** 50-70 Passively by Healing or Melee Combat in the New Player Dungeon.&lt;br /&gt;
** 70-100 Passively by Healing or Melee Combat&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Base_Weapon_Damage&amp;diff=6236</id>
		<title>Base Weapon Damage</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Base_Weapon_Damage&amp;diff=6236"/>
		<updated>2020-06-11T03:57:38Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Mechanics]]&lt;br /&gt;
Most damage modifiers on Outlands, such as skills and weapon bonuses, are calculated using a value called base damage. The starting point for base damage is your weapon. To view the base damage range of a weapon, use the [[Arms Lore]] skill on the weapon. When performing an attack, damage is first rolled within the base damage range. Base damage is then modified as follows depending on the target of the attack:&lt;br /&gt;
&lt;br /&gt;
* If attacking another player, the rolled base damage is used without modification.&lt;br /&gt;
* If attacking a tamed creature, the rolled base damage is multiplied by 1.5.&lt;br /&gt;
* If attacking a non-tamed creature, the rolled base damage is multiplied by 2.0.&lt;br /&gt;
&lt;br /&gt;
The final result of this calculation is considered the base damage for all other formulas.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Tactics&amp;diff=6235</id>
		<title>Tactics</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Tactics&amp;diff=6235"/>
		<updated>2020-06-11T03:55:14Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Skills]]&lt;br /&gt;
==Summary==&lt;br /&gt;
Tactics modifies weapon damage for all melee and ranged weapons.&lt;br /&gt;
&lt;br /&gt;
* From 0 to 100, tactics adds [[base damage]] * (-0.5 + (Tactics Skill / 200)) damage to each swing.&lt;br /&gt;
* From 100.1 and above, tactics adds [[base damage]] * (0.01 * (Tactics Skill - 100)) damage to each swing. In other words, tactics adds 1% of [[base damage]] per point above 100.&lt;br /&gt;
&lt;br /&gt;
==Example Calculations==&lt;br /&gt;
* For a player with 110 tactics, start with your [[base damage]]. Say that value is 25.&lt;br /&gt;
* Since tactics is at least 100, the initial damage modifier is 25 * (-0.5 + (100 / 200)) which is 0.&lt;br /&gt;
* There are 10 points over 100, so additionally add 25 * (0.01 * 10) which is 2.5 damage.&lt;br /&gt;
* The final hit, if no other bonuses are present, is then 27.5.&lt;br /&gt;
&lt;br /&gt;
==Training==&lt;br /&gt;
&lt;br /&gt;
* Tactics is gained passively through melee combat.&lt;br /&gt;
* Up to 50.0 skill can be trained by weaponsmith NPCs.&lt;br /&gt;
* Skill gains for Tactics up to 70.0 are accelerated in the [[New Player Dungeon]].&lt;br /&gt;
** 50-70 Passively with melee combat in the New Player Dungeon.&lt;br /&gt;
** 70-100 Passively with melee combat.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
	<entry>
		<id>http://wiki.uooutlands.com/index.php?title=Base_Weapon_Damage&amp;diff=6234</id>
		<title>Base Weapon Damage</title>
		<link rel="alternate" type="text/html" href="http://wiki.uooutlands.com/index.php?title=Base_Weapon_Damage&amp;diff=6234"/>
		<updated>2020-06-11T03:54:20Z</updated>

		<summary type="html">&lt;p&gt;Jaedan: Created page with &amp;quot;Category:Mechanics Base Damage is determined by the weapon in use. To view the base damage range of a weapon, use the Arms Lore skill on the weapon. When performing an...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Mechanics]]&lt;br /&gt;
Base Damage is determined by the weapon in use. To view the base damage range of a weapon, use the [[Arms Lore]] skill on the weapon. When performing an attack, damage is first rolled within the base damage range. Base damage is then modified as follows depending on the target:&lt;br /&gt;
&lt;br /&gt;
* If attacking another player, the rolled base damage is used without modification.&lt;br /&gt;
* If attacking a tamed creature, the rolled base damage is multiplied by 1.5.&lt;br /&gt;
* If attacking a non-tamed creature, the rolled base damage is multiplied by 2.0.&lt;br /&gt;
&lt;br /&gt;
The final result of this calculation is considered the base damage for all other formulas.&lt;/div&gt;</summary>
		<author><name>Jaedan</name></author>
	</entry>
</feed>