<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.kolmafia.us/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Winterbay</id>
	<title>Kolmafia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kolmafia.us/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Winterbay"/>
	<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Special:Contributions/Winterbay"/>
	<updated>2026-04-24T22:55:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Compiling_from_Source&amp;diff=2900</id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Compiling_from_Source&amp;diff=2900"/>
		<updated>2014-08-20T12:45:14Z</updated>

		<summary type="html">&lt;p&gt;Winterbay: /* MacOSX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To contribute to the Mafia project, you&#039;ll need to be able to install the Java Development Kit, connect to the SVN and be comfortable writing Java Code. Instructions for the first two are included below:&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
# Download and install the Java Development Kit, available here: http://java.sun.com/javase/downloads/index.jsp&lt;br /&gt;
# Download and install Subversion, available here: http://www.collab.net/downloads/subversion/&lt;br /&gt;
# Download and install Tortoise SVN (or of course, another SVN program), available here: http://tortoisesvn.tigris.org/&lt;br /&gt;
# Download and install WinAnt, available here: http://code.google.com/p/winant/&lt;br /&gt;
# Connect to the SVN server and download the source code for the Mafia Project. Using Tortoise SVN, you have to right-click on your desktop, select &amp;quot;SVN Checkout&amp;quot;, and put the URL of the repository as &amp;quot;svn://svn.code.sf.net/p/kolmafia/code/&amp;quot;. Leave all other settings as they are, and click OK.&lt;br /&gt;
# Copy C:/Program Files/WinAnt/bin/ant.bat to your Desktop/kolmafia/ folder. If you have set up WinAnt correctly (and it&#039;s hard not to - there aren&#039;t many options) then double clicking on this file should compile the program.&lt;br /&gt;
# Compiling creates a &amp;quot;build&amp;quot; and &amp;quot;dist&amp;quot; folder. The end program is in dist/Kolmafia.jar.&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
&lt;br /&gt;
# Install Sun Java Development Kit ( debian: apt-get install sun-java6-jdk )&lt;br /&gt;
# Install Subversion ( debian: apt-get install svn )&lt;br /&gt;
# Install Ant ( debian: apt-get install ant )&lt;br /&gt;
# Connect to the SVN server and download the source code for the Mafia Project. ( svn checkout svn://svn.code.sf.net/p/kolmafia/code/ kolmafia )&lt;br /&gt;
# Verify tou are using sun-java with ( debian: update-alternatives --all )&lt;br /&gt;
# I had to change $JAVA_HOME to compile ( export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.12 )&lt;br /&gt;
# Compile kolmafia with Ant ( debian: cd kolmafia &amp;amp;&amp;amp; ant debian )&lt;br /&gt;
# Install kolmafia ( debian: cd dist &amp;amp;&amp;amp; dpkg -i kolmafia*.deb )&lt;br /&gt;
&lt;br /&gt;
==MacOSX==&lt;br /&gt;
&lt;br /&gt;
# Install the appropriate developer tools for your version of MacOSX from the Mac Dev Center (http://developer.apple.com/devcenter/mac/index.action) or from your original OS install disks.&lt;br /&gt;
# Open a new terminal window and navigate to the directory to which you wish to create kolmafia (e.g. cd ~/Projects, or some similar directory)&lt;br /&gt;
# Connect to the SVN server and download the source code for the Mafia Project. (svn checkout &amp;lt;nowiki&amp;gt;svn://svn.code.sf.net/p/kolmafia/code/&amp;lt;/nowiki&amp;gt; kolmafia )&lt;br /&gt;
# Compile kolmafia with Ant (cd kolmafia &amp;amp;&amp;amp; ant jarbundler) (use ant daily jarbundler after the initial install to update kol and build in one step)&lt;br /&gt;
# copy the application to your preferred location: (cp ./dist/KoLMafia.app /Applications)&lt;br /&gt;
&lt;br /&gt;
[[Category:Tech Support]]&lt;/div&gt;</summary>
		<author><name>Winterbay</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Trigger&amp;diff=6849</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Trigger&amp;diff=6849"/>
		<updated>2012-09-29T15:04:31Z</updated>

		<summary type="html">&lt;p&gt;Winterbay: Fix formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:trigger (CLI)}}&lt;br /&gt;
This is a CLI command to add triggers to your mood, or remove all triggers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;trigger clear&#039;&#039;&#039; will remove all triggers from your mood&lt;br /&gt;
* &#039;&#039;&#039;trigger autofill&#039;&#039;&#039; will add triggers for all your buffing skills. This could be troublesome if you have Flavour of Magic since it will add triggers for all 5 elemental types. &lt;br /&gt;
* Parameters for adding a trigger are: [type,] effect [, action]&lt;br /&gt;
** Possible types are gain_effect, lose_effect, unconditional&lt;br /&gt;
** For an unconditional trigger, the effect is ignored and may be left blank, but you still need commas around that place-holder, see below.&lt;br /&gt;
** action is CLI command to be executed when that condition is fulfilled&lt;br /&gt;
&lt;br /&gt;
For example, you can tell your mood to auto-olfact Goth Giants whenever you lose the effect &amp;quot;On the Trail&amp;quot;, like this:&lt;br /&gt;
:&amp;lt;pre&amp;gt;trigger lose_effect, On the Trail, olfact monster Goth Giant&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of an unconditional trigger to abort adventuring when a hunter brain has been found that you can eat:&lt;br /&gt;
:&amp;lt;pre&amp;gt;trigger unconditional, , ashq if(item_amount($item[hunter brain]) &amp;gt; 0 &amp;amp;&amp;amp; my_fullness() &amp;lt; fullness_limit()) {abort();}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There can be no other command following trigger on a line. This is so that you can use a semi-colon to enable a multiple actions with a trigger like this:&lt;br /&gt;
:&amp;lt;pre&amp;gt;trigger lose_effect, Form of...Bird!, gong bird;use 5 yummy death watch beetle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:CLI Commands]]&lt;/div&gt;</summary>
		<author><name>Winterbay</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Trigger&amp;diff=6848</id>
		<title>Trigger</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Trigger&amp;diff=6848"/>
		<updated>2012-09-29T15:04:03Z</updated>

		<summary type="html">&lt;p&gt;Winterbay: Add example of unconditional trigger to make the extra comma more obvious&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:trigger (CLI)}}&lt;br /&gt;
This is a CLI command to add triggers to your mood, or remove all triggers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;trigger clear&#039;&#039;&#039; will remove all triggers from your mood&lt;br /&gt;
* &#039;&#039;&#039;trigger autofill&#039;&#039;&#039; will add triggers for all your buffing skills. This could be troublesome if you have Flavour of Magic since it will add triggers for all 5 elemental types. &lt;br /&gt;
* Parameters for adding a trigger are: [type,] effect [, action]&lt;br /&gt;
** Possible types are gain_effect, lose_effect, unconditional&lt;br /&gt;
** For an unconditional trigger, the effect is ignored and may be left blank, but you still need commas around that place-holder, see below.&lt;br /&gt;
** action is CLI command to be executed when that condition is fulfilled&lt;br /&gt;
&lt;br /&gt;
For example, you can tell your mood to auto-olfact Goth Giants whenever you lose the effect &amp;quot;On the Trail&amp;quot;, like this:&lt;br /&gt;
:&amp;lt;pre&amp;gt;trigger lose_effect, On the Trail, olfact monster Goth Giant&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of an unconditional trigger to abort adventuring when a hunter brain has been found that you can eat:&lt;br /&gt;
:&amp;lt;pre&amp;gt;trigger unconditional, , ashq if(item_amount($item[hunter brain]) &amp;gt; 0 &amp;amp;&amp;amp; my_fullness() &amp;lt; fullness_limit()) {abort();}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There can be no other command following trigger on a line. This is so that you can use a semi-colon to enable a multiple actions with a trigger like this:&lt;br /&gt;
:&amp;lt;pre&amp;gt;trigger lose_effect, Form of...Bird!, gong bird;use 5 yummy death watch beetle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:CLI Commands]]&lt;/div&gt;</summary>
		<author><name>Winterbay</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Zlib&amp;diff=7275</id>
		<title>Zlib</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Zlib&amp;diff=7275"/>
		<updated>2012-05-09T19:27:25Z</updated>

		<summary type="html">&lt;p&gt;Winterbay: /* Adventuring Functions */ Fix layout of tower_items-function&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}{{DISPLAYTITLE:ZLib (zlib.ash)}}&lt;br /&gt;
{{Attention|&lt;br /&gt;
This page details the use of functions in a script library. The information here is only useful to those who have followed the included steps to make use of these functions; they are not built-in to KoLmafia.&lt;br /&gt;
}}&lt;br /&gt;
== About ZLib ==&lt;br /&gt;
ZLib is a function library intended to make life easier for both script authors and script users.  A more detailed introduction, as well as the current version and instructions on installing it, can be found in the [http://kolmafia.us/showthread.php?2072 ZLib thread].&lt;br /&gt;
&lt;br /&gt;
== String Functions ==&lt;br /&gt;
&lt;br /&gt;
{{HideLink|excise}}{{Function|&lt;br /&gt;
name=excise|&lt;br /&gt;
return_type=string|&lt;br /&gt;
parameter1={{Param|string|source}}|&lt;br /&gt;
parameter2={{Param|string|start}}|&lt;br /&gt;
parameter3={{Param|string|end}}|&lt;br /&gt;
p1desc=The original {{pspan|source}} string|&lt;br /&gt;
p2desc={{pspan|start}} after this string|&lt;br /&gt;
p3desc={{pspan|end}} before this string|&lt;br /&gt;
}}&lt;br /&gt;
This function returns a portion of the {{pspan|source}} string, from after the first occurrence of {{pspan|start}} to just before the first occurrence of {{pspan|end}}. If either {{pspan|start}} or {{pspan|end}} are missing, it will return an empty string. You can also supply either {{pspan|start}} or {{pspan|end}} as blank strings to specify the actual start or end of the {{pspan|source}} string.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|equals}}{{Function|&lt;br /&gt;
name=equals|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|string|s1}}|&lt;br /&gt;
parameter2={{Param|string|s2}}|&lt;br /&gt;
p1desc=The first string.|&lt;br /&gt;
p2desc=The string to compare with s1.|&lt;br /&gt;
}}&lt;br /&gt;
Since string comparisons in ASH using == and != are case-insensitive, this function allows you to strictly compare two strings, including case sensitivity.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|vprint}}{{Function|&lt;br /&gt;
name=vprint|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|string|message}}|&lt;br /&gt;
parameter2={{Param|int|level}}|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=vprint|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|string|message}}|&lt;br /&gt;
parameter2={{Param|string|color}}|&lt;br /&gt;
parameter3={{Param|int|level}}|&lt;br /&gt;
p1desc={{pspan|message}} and {{pspan|color}} are used as in the function {{f|print}}|&lt;br /&gt;
p2desc={{pspan|level}} controls the return value and specifies the verbosity level of the message|&lt;br /&gt;
}}&lt;br /&gt;
This function is an enhanced version of the ASH function {{f|print}}.  The {{pspan|message}} and optional {{pspan|color}} parameters are exactly like in print(), but the {{pspan|level}} parameter gives you a lot of additional control.  Specifically, it allows you to control the return value, specify the verbosity level of the output, and maybe even abort the script.&lt;br /&gt;
&lt;br /&gt;
First, the return value.  If level is positive, it returns true.  If negative, it returns false.  If level is 0, vprint() will abort with the specified message. You can see now that vprint effectively replaces both {{f|abort}} and print.  I recommend it as your go-to function anytime you need to show anything in the CLI, for any reason.&lt;br /&gt;
&lt;br /&gt;
Having a boolean return value (as opposed to ASH&#039;s print returning void) allows you to include helpful information in your script easily, without needing to significantly edit your code.  For example:&lt;br /&gt;
{{CodeSample|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
// add debugging info to an if check:&lt;br /&gt;
if (somevar == 2 &amp;amp;&amp;amp; vprint(&amp;quot;somevar equals 2&amp;quot;,10)) dosomething();&lt;br /&gt;
// add additional info to a return true/false:&lt;br /&gt;
if (everythingsgreat) return vprint(&amp;quot;Everything&#039;s great!&amp;quot;,7);&lt;br /&gt;
   else return vprint(&amp;quot;Everything is not great.&amp;quot;,-7);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Secondly, level represents the verbosity of the message.  ZLib includes a script setting called &amp;quot;verbosity&amp;quot;.  Users can adjust this value to specify how verbose they want scripts to be.  If they set it to 1, they want the script to print almost nothing -- only the most important messages.  If they set it to 10, they want it to print a lot of details.  The level of each vprint command thus determines whether or not the message will actually be printed.  If the absolute value of level is more than verbosity, the message will not be printed.  For example, a user with the default verbosity of 3 would not see any of the example messages given above.  This allows users to control the chattiness of scripts, and allows authors to include helpful debugging print statements which can be shown by setting verbosity high.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommendations for Verbosity Levels in vprint()&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0: abort error&lt;br /&gt;
&lt;br /&gt;
+/- 1: absolutely essential (and non-cluttering) information -- use very sparingly, since a verbosity of 1 is basically &amp;quot;silent mode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
+/- 2: important and useful info -- this should generally be your base level for your most important messages&lt;br /&gt;
&lt;br /&gt;
+/- 4: interesting but non-essential information&lt;br /&gt;
&lt;br /&gt;
+/- 6: info which an overly curious person might like to see on their CLI&lt;br /&gt;
&lt;br /&gt;
+/- 10: details which are only helpful for debugging, such as &amp;quot;begin/end functionname()&amp;quot; or &amp;quot;current value of variable: value&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will allow users who want extra levels of detail printed to see that detail without cluttering the CLI for users who don&#039;t prefer to see all the details. In addition, it allows users to specify a verbosity of 0 to see ONLY mafia output (no script output at all), which could prove handy.&lt;br /&gt;
&lt;br /&gt;
The color parameter is optional.  If you omit it, the default color is black for positive values of level, and red for negative values. Usually, you won&#039;t be calling vprint() with the color parameter, unless you want to specify a different color or override the default colors.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|vprint_html}}{{Function|&lt;br /&gt;
name=vprint_html|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|string|message}}|&lt;br /&gt;
parameter2={{Param|int|level}}|&lt;br /&gt;
p1desc={{pspan|message}} is used as in the function {{f|print_html}}|&lt;br /&gt;
p2desc={{pspan|level}} is a verbosity reference|&lt;br /&gt;
}}&lt;br /&gt;
Same as vprint() above, but wraps {{f|print_html}}.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|normalized}}{{Function|&lt;br /&gt;
name=normalized|&lt;br /&gt;
return_type=string|&lt;br /&gt;
parameter1={{Param|string|mixvar}}|&lt;br /&gt;
parameter2={{Param|string|type}}|&lt;br /&gt;
p1desc={{pspan|mixvar}} is the string to normalize|&lt;br /&gt;
p2desc={{pspan|type}} is the datatype to normalize to, which can be any primitive type or any typed constant.  You can also specify &amp;quot;list of &amp;lt;type&amp;gt;&amp;quot;, for a comma-delimited list of the given type.|&lt;br /&gt;
}}&lt;br /&gt;
Returns {{pspan|mixvar}}, normalized to the specified KoLmafia {{pspan|type}}. For example, normalized(&amp;quot;badger&amp;quot;, &amp;quot;familiar&amp;quot;) would return &amp;quot;Astral Badger&amp;quot;.  It can also normalize comma-delimited lists of any of these types if you specify &amp;quot;list of &amp;lt;type&amp;gt;&amp;quot; for {{pspan|type}}.  For example, normalized(&amp;quot;bloop, dair go, possess&amp;quot;, &amp;quot;list of monster&amp;quot;) would return &amp;quot;Blooper, Dairy Goat, Possessed Silverware Drawer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|join}}{{Function|&lt;br /&gt;
name=join|&lt;br /&gt;
return_type=string|&lt;br /&gt;
parameter1={{Param|string [int]|pieces|ag=t}}|&lt;br /&gt;
parameter2={{Param|string|glue}}|&lt;br /&gt;
p1desc={{pspan|pieces}} is a map of strings which you want to join into a single string.|&lt;br /&gt;
p2desc={{pspan|glue}} is the string to put between the pieces.|&lt;br /&gt;
}}&lt;br /&gt;
This function is the opposite of the ASH function {{f|split_string}}.  It joins {{pspan|pieces}}together, inserting {{pspan|glue}} between each piece, and returns the assembly as a single string.  Useful for working with comma-delimited lists (or anything-delimited lists, actually).&lt;br /&gt;
&lt;br /&gt;
{{HideLink|rnum}}{{Function|&lt;br /&gt;
name=rnum|&lt;br /&gt;
return_type=string|&lt;br /&gt;
parameter1={{Param|int|n}}|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=rnum|&lt;br /&gt;
return_type=string|&lt;br /&gt;
parameter1={{Param|float|n}}|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=rnum|&lt;br /&gt;
return_type=string|&lt;br /&gt;
parameter1={{Param|float|n}}|&lt;br /&gt;
parameter2={{Param|int|place}}|&lt;br /&gt;
p1desc={{pspan|n}} is a number|&lt;br /&gt;
p2desc={{pspan|place}} is the number of decimal places to round to|&lt;br /&gt;
}}&lt;br /&gt;
Returns your number {{pspan|n}} as a human-readable string. For ints, this means it adds commas where appropriate. For floats, it also rounds to the nearest {{pspan|place}} after the decimal. Default {{pspan|place}} for the float-only version is 2, although it may display fewer digits if they are 0&#039;s. Examples: rnum(12580) =&amp;gt; &amp;quot;12,580&amp;quot;, rnum(3.14152964,3) =&amp;gt; &amp;quot;3.142&amp;quot;, rnum(4.00008) =&amp;gt; &amp;quot;4&amp;quot;, rnum(123456789.87654321) =&amp;gt; &amp;quot;123,456,789.88&amp;quot;. Recommended as a substitute for to_string(int).&lt;br /&gt;
&lt;br /&gt;
== Number Functions ==&lt;br /&gt;
&lt;br /&gt;
{{HideLink|abs}}{{Function|&lt;br /&gt;
name=abs|&lt;br /&gt;
return_type=float|&lt;br /&gt;
parameter1={{Param|float|n}}|&lt;br /&gt;
p1desc={{pspan|n}} is any number.|&lt;br /&gt;
}}&lt;br /&gt;
Returns the absolute value of the number {{pspan|n}}.  Don&#039;t worry if you are working with integers, it will still work just fine.  This function already exists in many programming languages; ZLib makes it handily available in ASH.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|minmax}}{{Function|&lt;br /&gt;
name=minmax|&lt;br /&gt;
return_type=float|&lt;br /&gt;
parameter1={{Param|float|a}}|&lt;br /&gt;
parameter2={{Param|float|min}}|&lt;br /&gt;
parameter3={{Param|float|max}}|&lt;br /&gt;
p1desc={{pspan|a}} is the original number|&lt;br /&gt;
p2desc={{pspan|min}} is the minimum return value|&lt;br /&gt;
p3desc={{pspan|max}} is the maximum return value|&lt;br /&gt;
}}&lt;br /&gt;
Returns {{pspan|a}}, but no less than {{pspan|min}} and no more than {{pspan|max}}.  Another function common to many languages.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|set_avg}}{{Function|&lt;br /&gt;
name=set_avg|&lt;br /&gt;
return_type=void|&lt;br /&gt;
parameter1={{Param|float|to_add}}|&lt;br /&gt;
parameter2={{Param|string|which_prop}}|&lt;br /&gt;
p1desc={{pspan|to_add}} is the data point to add|&lt;br /&gt;
p2desc={{pspan|which_prop}} is the property to add data to|&lt;br /&gt;
}}&lt;br /&gt;
Useful for adding spading to scripts. Adds one more statistic to an average value being stored in a property. For example, calling this script three times with the values 2, 4, and 6 for {{pspan|to_add}} would result in the property {{pspan|which_prop}} containing &amp;quot;4.0:3&amp;quot;, with 4.0 being the average of the three numbers added and 3 being the amount of numbers averaged.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|get_avg}}{{Function|&lt;br /&gt;
name=get_avg|&lt;br /&gt;
return_type=float|&lt;br /&gt;
parameter1={{Param|string|which_prop}}|&lt;br /&gt;
p1desc={{pspan|which_prop}} is the property to access|&lt;br /&gt;
}}&lt;br /&gt;
Returns an average value set by set_avg().&lt;br /&gt;
&lt;br /&gt;
{{HideLink|eval}}{{Function|&lt;br /&gt;
name=eval|&lt;br /&gt;
return_type=float|&lt;br /&gt;
parameter1={{Param|string|expression}}|&lt;br /&gt;
parameter2={{Param|float [string]|values|ag=t}}|&lt;br /&gt;
p1desc={{pspan|expression}} is the base expression|&lt;br /&gt;
p2desc={{pspan|values}} is a map of values to replace|&lt;br /&gt;
}}&lt;br /&gt;
By Jason Harper. Evaluates {{pspan|expression}} as a math expression, and allows you to substitute {{pspan|values}} for variables, as described in much greater detail here. A brief version of this documentation is also included in ZLib. (NB: This section needs more infoz.)&lt;br /&gt;
&lt;br /&gt;
== Script Functions ==&lt;br /&gt;
&lt;br /&gt;
{{HideLink|check_version}}{{Function|&lt;br /&gt;
name=check_version|&lt;br /&gt;
return_type=string|&lt;br /&gt;
parameter1={{Param|string|software}}|&lt;br /&gt;
parameter2={{Param|string|property}}|&lt;br /&gt;
parameter3={{Param|string|this_version}}|&lt;br /&gt;
parameter4={{Param|int|thread}}|&lt;br /&gt;
p1desc={{pspan|software}} is the script name, which must match the page source of the {{pspan|thread}} being parsed|&lt;br /&gt;
p2desc={{pspan|property}} is used as part of the name of the property saved to user preferences|&lt;br /&gt;
p3desc={{pspan|this_version}} is the version of the script currently running|&lt;br /&gt;
p4desc={{pspan|thread}} is the script&#039;s thread-number on kolmafia.us|&lt;br /&gt;
}}&lt;br /&gt;
Server-friendly once-daily version-checking. If the user hasn&#039;t checked yet today, visits the specified {{pspan|thread}} on the kolmafia.us forums to find the current version of your script. The thread must include &amp;lt;nowiki&amp;gt;&amp;quot;&amp;lt;b&amp;gt;&amp;lt;/nowiki&amp;gt;{{pspan|software}} {{pspan|version}}&amp;lt;nowiki&amp;gt;&amp;lt;/b&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt; for the version info to be successfully parsed. Optionally, you may include &amp;lt;nowiki&amp;gt;&amp;quot;[requires revision XXXX]&amp;quot;&amp;lt;/nowiki&amp;gt; somewhere in your post if you want to indicate a required minimum revision of mafia. If a new version is available, it alerts the user in large text and provides an update link.  The return value is a blank string unless an update is found, in which case it is a &amp;lt;nowiki&amp;gt;&amp;lt;div class=&#039;versioninfo&#039;&amp;gt;&amp;lt;/nowiki&amp;gt; containing the update message. This allows this function to work equally well for relay scripts. The current version (and the last date checked) is stored in a data file &amp;quot;zversions.txt&amp;quot;.  Example:&lt;br /&gt;
{{CodeSample|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
check_version(&amp;quot;Hardcore Checklist&amp;quot;,&amp;quot;checklist&amp;quot;,&amp;quot;1.2.7&amp;quot;,1045);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{HideLink|load_current_map}}{{Function|&lt;br /&gt;
name=load_current_map|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|string|map_name}}|&lt;br /&gt;
parameter2={{Param|aggregate|destination}}|&lt;br /&gt;
p1desc={{pspan|map_name}} is the name of the map, without the file extension|&lt;br /&gt;
p2desc={{pspan|destination}} is a previously-declared map to load with data|&lt;br /&gt;
}}&lt;br /&gt;
Acts as a wrapper for the built-in {{f|file_to_map}} with automatic update capability. The first time the function is called for a given map each day, it will check [http://zachbardon.com/mafiatools/autoupdate.php Zarqon&#039;s Map Manager] to see if an update for the given {{pspan|map_name}} is available, and if so will load from there. Otherwise, it merely loads it from disk. (Note: you should not include a file extension, such as &amp;quot;.txt&amp;quot; in the {{pspan|map_name}} parameter.)&lt;br /&gt;
&lt;br /&gt;
{{HideLink|setvar}}{{Function|&lt;br /&gt;
name=setvar|&lt;br /&gt;
return_type=void|&lt;br /&gt;
parameter1={{Param|string|name}}|&lt;br /&gt;
parameter2={{Param|mixed|dfault}}|&lt;br /&gt;
p1desc={{pspan|name}} is the name of the setting|&lt;br /&gt;
p1desc={{pspan|dfault}} can be any primitive or ASH type (e.g. item, effect, coinmaster, etc.), but not an array, map, or record.|&lt;br /&gt;
}}&lt;br /&gt;
This function ensures that a ZLib script setting called {{pspan|name}} exists.  If not, it creates it and sets it to {{pspan|default}}.  If the setting already exists, it does nothing.  Note that this function does not edit existing settings.  That is done by calling ZLib in the CLI.&lt;br /&gt;
&lt;br /&gt;
==== For Users ====&lt;br /&gt;
&lt;br /&gt;
* Script settings are now all saved in one place, separate from mafia properties. I&#039;ve read more than one post wishing that script-defined settings and mafia properties would be separate. This provides a solution.&lt;br /&gt;
* Script settings are independent from scripts. This means that you will no longer need to edit scripts to adjust your settings. Further, when you download a script update, the script will still use your saved settings and you won&#039;t need to reset them!&lt;br /&gt;
* To see all of your current settings, type &amp;quot;zlib vars&amp;quot; in the CLI. You can also type &amp;quot;zlib &amp;lt;whatever&amp;gt;&amp;quot; to see a list of current settings and values containing &amp;lt;whatever&amp;gt;.  To change a setting, type &amp;quot;zlib settingname = value&amp;quot;. If you&#039;re adjusting threshold, you can use &amp;quot;up&amp;quot; or &amp;quot;down&amp;quot; as the value to adjust your threshold relatively. This is almost exactly as convenient as mafia settings (possibly more so since you don&#039;t need to open a text file to find setting names!).&lt;br /&gt;
* If for some reason you prefer to open a text file, ZLib settings are stored in a file called vars_myname.txt in your data directory.&lt;br /&gt;
* Scripts that use Zlib script settings will only create these settings when you run them for the first time.  Attempting to edit a nonexisting setting won&#039;t work, so you&#039;ll need to run a script once (then, usually, mash the ESC key before it actually does anything) before you can configure it.  Script documentation should tell you which settings to change to get your desired behavior.&lt;br /&gt;
&lt;br /&gt;
==== For Script Authors ====&lt;br /&gt;
&lt;br /&gt;
* Script settings may now be used across scripts, in exactly the same way that mafia properties are. Basically, this works almost exactly like mafia properties, except that new settings can only be created by setvar() or manually editing the file (&amp;quot;zlib nonexistentsetting = value&amp;quot; will fail).&lt;br /&gt;
* Settings are only stored if you run a script that defines/uses them. So your settings file will not contain any extraneous unused settings.&lt;br /&gt;
* Script authors can now test for a setting&#039;s existence, which means you can check to see if a user has used a given script. It&#039;s almost as good as a script_exists() function. This can allow scripts to work together with other scripts, if they exist!&lt;br /&gt;
* Scripts with overlapping or related functionality can be designed to access a single shared setting, in much the same way that my scripts have until now all shared a &amp;quot;threshold&amp;quot; mafia setting. Changing a single setting can now change the behavior of every script that accesses that setting.&lt;br /&gt;
&lt;br /&gt;
==== Functional Details ====&lt;br /&gt;
&lt;br /&gt;
When importing ZLib, it loads a map of your script settings from vars_myname.txt. It is a basic string[string] map called vars. To access a script setting within an ASH script, use vars[varname]. To check if a setting exists you can simply use if (vars contains varname).&lt;br /&gt;
&lt;br /&gt;
When a script calls setvar(&amp;quot;threshold&amp;quot;,4), ZLib checks to see if a variable called &amp;quot;threshold&amp;quot; already exists in vars. If so, since dfault is an integer, it ensures that the value is an integer using normalize() (saving changes if necessary), but unless normalization changed the value, nothing else happens.  If &amp;quot;threshold&amp;quot; does not exist in vars, it creates it, sets it to 4, and saves the updated map back to vars_myname.txt.&lt;br /&gt;
&lt;br /&gt;
==== Choosing Setting Names ====&lt;br /&gt;
&lt;br /&gt;
The file of script settings will contain all script settings, sorted alphabetically. Also, there is no way to detect if a setting is unused, so if you decide to change the name, the old setting will never be deleted. &#039;&#039;&#039;Please think carefully about your setting names.&#039;&#039;&#039; If you have a setting named &amp;quot;setting1&amp;quot;, a user will probably not have a clue which script that is for or what it does. True, this can be overcome with documentation, but it is far better to have settings that make sense just by looking at them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommendations:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Use a name that clearly identifies what the setting is/does.&lt;br /&gt;
&lt;br /&gt;
2. Prefix your setting names with a script identifier. For example, here are some of my One-Click Wossname script settings:&lt;br /&gt;
&lt;br /&gt;
{{CodeSample|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
setvar(&amp;quot;ocw_warplan&amp;quot;,&amp;quot;optimal&amp;quot;);&lt;br /&gt;
setvar(&amp;quot;ocw_change_to_meat&amp;quot;,true);&lt;br /&gt;
setvar(&amp;quot;ocw_nunspeed&amp;quot;,false);&lt;br /&gt;
setvar(&amp;quot;defaultoutfit&amp;quot;,&amp;quot;current&amp;quot;);&lt;br /&gt;
setvar(&amp;quot;ocw_f_default&amp;quot;,&amp;quot;zombie&amp;quot;);&lt;br /&gt;
setvar(&amp;quot;ocw_m_default&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
Those settings which are specific to OCW are prefixed with &amp;quot;ocw_&amp;quot; so as to be found together in the settings file. However, some of the settings are usable across scripts, and are not so prefixed. For example, the &amp;quot;defaultoutfit&amp;quot; will be used by nearly all of my adventuring scripts that swap outfits, so no prefix is given.&lt;br /&gt;
&lt;br /&gt;
== Adventuring Functions ==&lt;br /&gt;
&lt;br /&gt;
{{HideLink|be_good}}{{Function|&lt;br /&gt;
name=be_good|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|string|johnny}}|&lt;br /&gt;
p1desc={{pspan|johnny}} is the thing you want to check -- usually an item or familiar|&lt;br /&gt;
}}&lt;br /&gt;
This function, originally created to check whether items were allowed in the Bees Hate You path, has been expanded to an all-purpose check to see whether something is acceptable in your current path.  For example, in a Trendy path, outdated items would not be_good.  Likewise, during Bees Hate You, a familiar containing a &#039;b&#039; would not be_good.  In Fistcore, anything you hold in your hands is not allowed.  And so forth.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|tower_items}}{{Function|&lt;br /&gt;
name=tower_items|&lt;br /&gt;
aggregate=true|&lt;br /&gt;
return_type=boolean [string]|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=tower_items|&lt;br /&gt;
aggregate=true|&lt;br /&gt;
return_type=boolean [string]|&lt;br /&gt;
parameter1={{Param|boolean|combat_safe}}|&lt;br /&gt;
p1desc={{pspan|combat_safe}} is optional.  Supply it as true if you are in combat.|&lt;br /&gt;
}}&lt;br /&gt;
This handy function returns a map of the items you definitely need (value: true) or might need (value: false) to climb the tower.  You can check (tower_items() contains X) to determine whether an item has a nonzero chance of being required for the tower, or check tower_items(X) to determine whether an item has a 100% chance of being needed (i.e. it was indicated necessary by your telescope).  If you haven&#039;t yet checked your telescope yet this run, it will also do that to populate the relevant mafia properties, unless you have supplied the optional {{pspan|combat_safe}} parameter as true (you can&#039;t access your telescope during combat).&lt;br /&gt;
&lt;br /&gt;
{{HideLink|have_item}}{{Function|&lt;br /&gt;
name=have_item|&lt;br /&gt;
return_type=int|&lt;br /&gt;
parameter1={{Param|string|to_lookup}}|&lt;br /&gt;
p1desc={{pspan|to_lookup}} is the item to count|&lt;br /&gt;
}}&lt;br /&gt;
A residual function, used by the following and probably in several other scripts. Returns the amount of an item you have both in your inventory and equipped. Similar but not equivalent to the ASH function {{f|available_amount}}, since this function completely ignores your closet and storage.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|isxpartof}}{{Function|&lt;br /&gt;
name=isxpartof|&lt;br /&gt;
return_type=float|&lt;br /&gt;
parameter1={{Param|item|child}}|&lt;br /&gt;
parameter2={{Param|item|ancestor}}|&lt;br /&gt;
p1desc={{pspan|child}} is the ingredient/component you want to check.|&lt;br /&gt;
p2desc={{pspan|ancestor}} is the concoction you want to check.|&lt;br /&gt;
}}&lt;br /&gt;
In the sentence &amp;quot;child is X part of ancestor&amp;quot;, this function returns X.  It assumes the minimum amount of other ingredients necessary.  For example, isxpartof($item[white pixel], $item[digital key]) returns 0.033333335 (1/30), since 30 white pixels are needed.  However, isxpartof($item[red pixel], $item[digital key]) returns 0.03125 (1/32), assuming 1 each of green and blue pixels and 29 other white pixels (rather than 30 each RGB pixels -- 1/90).  This function is used by has_goal(item) but may have uses in your own script.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|has_goal}}{{Function|&lt;br /&gt;
name=has_goal|&lt;br /&gt;
return_type=float|&lt;br /&gt;
parameter1={{Param|item|check_me}}|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=has_goal|&lt;br /&gt;
return_type=float|&lt;br /&gt;
parameter1={{Param|monster|check_me}}|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=has_goal|&lt;br /&gt;
return_type=float|&lt;br /&gt;
parameter1={{Param|location|check_me}}|&lt;br /&gt;
p1desc={{pspan|check_me}} is the item, monster or locationto check|&lt;br /&gt;
}}&lt;br /&gt;
At the base of this function is the item parameter version, which returns the chance that the item {{pspan|check_me}} is or results in a goal. If the item is itself a goal or it&#039;s your current bounty item, returns 1.0. Otherwise, returns what percentage of a goal the item is, which could be nonzero in two cases: 1) you could get a goal by using the item (returns the chance of success), or 2) the item is an ingredient of a goal.  For example, with a goal of black pepper, has_goal($item[black picnic basket]) would return 0.58.&lt;br /&gt;
&lt;br /&gt;
When supplied a monster as the parameter for {{pspan|check_me}}, returns the percent chance that encountering the given monster will result in a goal, taking into account +items, pickpocket availability (and +pickpocket), and Torso. For instance, with no +item and black pepper as a goal, has_goal($monster[black widow]) would return 0.087 (0.58 basket contains pepper * 0.15 basket drop rate). Also note that it will add multiple goals together, so with white pixels as a goal, a Blooper would return 2.1.&lt;br /&gt;
&lt;br /&gt;
When supplied a location as the parameter for {{pspan|check_me}}, returns the chance that adventuring at a given location will yield a goal. For our black pepper example, has_goal($location[black forest]) would return 0.0174 (0.2 black widow appearance rate * 0.087 chance that a widow has black pepper). Presently this accounts for combat frequency modifiers but not Olfaction, and it will be off for areas with noncombats that grant goals, because it assumes that all noncombats do not yield items.&lt;br /&gt;
&lt;br /&gt;
These functions also have an optional boolean parameter, usespec.  If supplied as true, these functions will use speculative values.  (See &amp;quot;whatif&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
{{HideLink|obtain}}{{Function|&lt;br /&gt;
name=obtain|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|int|qty}}|&lt;br /&gt;
parameter2={{Param|string|condition}}|&lt;br /&gt;
parameter3={{Param|location|place}}|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=obtain|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|int|qty}}|&lt;br /&gt;
parameter2={{Param|string|condition}}|&lt;br /&gt;
parameter3={{Param|location|place}}|&lt;br /&gt;
parameter4={{Param|string|filter}}|&lt;br /&gt;
p1desc={{pspan|qty}} is the quantity of the item or choice adventure desired|&lt;br /&gt;
p2desc={{pspan|condition}} is the item or choice adventure to use as a goal|&lt;br /&gt;
p3desc={{pspan|location}} is the place to adventure to obtain your goal|&lt;br /&gt;
p4desc={{pspan|filter}} is an optional combat filter used the same as in {{f|adventure}}|&lt;br /&gt;
}}&lt;br /&gt;
Attempts to get {{pspan|qty}} (minus existing) of {{pspan|condition}}, either by purchasing (if you have the KoLmafia preference set), pulling from Hangk&#039;s, or adventuring at the specified {{pspan|place}}. It also works with choice adventures.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|use_upto}}{{Function|&lt;br /&gt;
name=use_upto|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|int|qty}}|&lt;br /&gt;
parameter2={{Param|item|thing}}|&lt;br /&gt;
parameter3={{Param|boolean|purchase}}|&lt;br /&gt;
p1desc={{pspan|qty}} is the quantity to use|&lt;br /&gt;
p2desc={{pspan|thing}} is the item to use|&lt;br /&gt;
p3desc={{pspan|purchase}} is true if KoLmafia should purchase extras if you don&#039;t already have {{pspan|qty}}|&lt;br /&gt;
}}&lt;br /&gt;
Gets (if purchase is true) and uses {{pspan|qty}} of the item(s) {{pspan|thing}} if possible. Otherwise, uses as many as you have up to {{pspan|qty}}.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|resist}}{{Function|&lt;br /&gt;
name=resist|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|element|resist_it}}|&lt;br /&gt;
parameter2={{Param|boolean|really}}|&lt;br /&gt;
p1desc={{pspan|resist_it}} is the element to resist|&lt;br /&gt;
p2desc={{pspan|really}} is true to actually attemp resistance, false to check only|&lt;br /&gt;
}}&lt;br /&gt;
Returns whether you are able to resist a given element {{pspan|resist_it}}, or if {{pspan|really}} is true, attempts to actually achieve that resistance (casting buffs, changing gear, or equipping your Exotic Parrot) and returns its success.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|my_defstat}}{{Function|&lt;br /&gt;
name=my_defstat|&lt;br /&gt;
return_type=int|&lt;br /&gt;
parameter1={{Param|boolean|usespec}}|&lt;br /&gt;
p1desc={{pspan|usespec}} is optional.  If true, uses speculative values rather than real values.|&lt;br /&gt;
}}&lt;br /&gt;
Returns the value of your buffed defense stat, taking into account Hero of the Half-Shell.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|get_safemox}}{{Function|&lt;br /&gt;
name=get_safemox|&lt;br /&gt;
return_type=int|&lt;br /&gt;
parameter1={{Param|location|where}}|&lt;br /&gt;
p1desc={{pspan|where}} is the location to check for safe moxie|&lt;br /&gt;
}}&lt;br /&gt;
Using mafia&#039;s location/monster data, returns the safe moxie of a given zone {{pspan|where}}.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|auto_mcd}}{{Function|&lt;br /&gt;
name=auto_mcd|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|int|check_me}}|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=auto_mcd|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|monster|check_me}}|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=auto_mcd|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|location|check_me}}|&lt;br /&gt;
p1desc={{pspan|check_me}} is the int, monster or location to check|&lt;br /&gt;
}}&lt;br /&gt;
If your ZLib setting &amp;quot;automcd&amp;quot; is true, automatically adjusts your mind-control device for maximum stat gains based on safe moxie and your ZLib &amp;quot;threshold&amp;quot; setting. Does not adjust for MCD-sensitive areas (certain bosses, Slime Tube), or areas with no known combats. Returns true unless KoLmafia is unable to do so, even though the script thinks it should be capable (still returns true if you can&#039;t currently access an mcd-changing device).&lt;br /&gt;
&lt;br /&gt;
{{HideLink|best_fam}}{{Function|&lt;br /&gt;
name=best_fam|&lt;br /&gt;
return_type=familiar|&lt;br /&gt;
parameter1={{Param|string|type}}|&lt;br /&gt;
p1desc={{pspan|type}} is the type of familiar ability to check for|&lt;br /&gt;
}}&lt;br /&gt;
Returns your heaviest familiar of a given type (currently possible: items, meat, produce, stat, delevel). If your ZLib &amp;quot;is_100_run&amp;quot; setting is anything other than $familiar[none], returns that familiar (so you don&#039;t have to make the check in your script).&lt;br /&gt;
&lt;br /&gt;
== Kmail Functions ==&lt;br /&gt;
&lt;br /&gt;
{{HideLink|load_kmail}}{{Function|&lt;br /&gt;
name=load_kmail|&lt;br /&gt;
return_type=void|&lt;br /&gt;
parameter1={{Param|string|calledby}}|&lt;br /&gt;
p1desc={{pspan|calledby}} is optional and allows you to specify the name of the script calling this function, which will be submitted when the script visits api.php. The default value is &amp;quot;ZLib-powered-script&amp;quot;.|&lt;br /&gt;
}}&lt;br /&gt;
This function parses your kmail inbox in a single server hit and loads it into the global variable &amp;quot;mail&amp;quot;, which is of type kmessage[int].  A kmessage is a record type, with the following fields:&lt;br /&gt;
{{CodeSample|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
record kmessage {&lt;br /&gt;
   int id;                   // message id&lt;br /&gt;
   string type;              // possible values observed thus far: normal, giftshop&lt;br /&gt;
   int fromid;               // sender&#039;s playerid (0 for npc&#039;s)&lt;br /&gt;
   int azunixtime;           // KoL server&#039;s unix timestamp&lt;br /&gt;
   string message;           // message (not including items/meat)&lt;br /&gt;
   int[item] items;          // items included in the message&lt;br /&gt;
   int meat;                 // meat included in the message&lt;br /&gt;
   string fromname;          // sender&#039;s playername&lt;br /&gt;
   string localtime;         // your local time according to your KoL account, human-readable string&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Thus, after calling this function your inbox is very easy to work with.  You can foreach over each message if you like, accessing the fields for details.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|process_kmail}}{{Function|&lt;br /&gt;
name=process_kmail|&lt;br /&gt;
return_type=void|&lt;br /&gt;
parameter1={{Param|string|functionname}}|&lt;br /&gt;
p1desc={{pspan|functionname}} specifies the name of a function designed to parse kmail.|&lt;br /&gt;
}}&lt;br /&gt;
If you liked load_kmail(), you&#039;ll like this even better.  First off, this function loads your kmail into the mail variable if you haven&#039;t already done so.  Next, it calls a function named {{pspan|functionname}} on each kmail message.  The function must be at top level, accept a single kmessage parameter, and return a boolean.  For each kmail in your inbox, if the called function returns true, that message will be deleted once all messages have been processed.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a simple example which will delete all messages from your lovely Pen Pal:&lt;br /&gt;
{{CodeSample|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
boolean no_penpal(kmessage m) {&lt;br /&gt;
   if (m.fromname == &amp;quot;Your Pen Pal&amp;quot;) return true;&lt;br /&gt;
   return false;&lt;br /&gt;
}&lt;br /&gt;
process_kmail(&amp;quot;no_penpal&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{HideLink|send_gift}}{{Function|&lt;br /&gt;
name=send_gift|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|string|recipient}}|&lt;br /&gt;
parameter2={{Param|string|message}}|&lt;br /&gt;
parameter3={{Param|int_meat}}|&lt;br /&gt;
parameter4={{Param|int [item]|goodies|ag=t}}|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=send_gift|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|string|recipient}}|&lt;br /&gt;
parameter2={{Param|string|message}}|&lt;br /&gt;
parameter3={{Param|int|meat}}|&lt;br /&gt;
parameter4={{Param|int [item]|goodies|ag=t}}|&lt;br /&gt;
parameter5={{Param|string|inside_note}}|&lt;br /&gt;
p1desc={{pspan|recipient}} is the player to send to|&lt;br /&gt;
p2desc={{pspan|message}} is the outside message|&lt;br /&gt;
p3desc={{pspan|meat}} is the amount of meat to send|&lt;br /&gt;
p4desc={{pspan|goodies}} is a map of items &amp;amp; amounts to send|&lt;br /&gt;
p5desc={{pspan|inside_note}} is an optional inside message|&lt;br /&gt;
}}&lt;br /&gt;
Sends a gift to a player. Able to split large amounts of items. Returns true if the package is sent and false if not. See kmail() below.&lt;br /&gt;
&lt;br /&gt;
{{HideLink|kmail}}{{Function|&lt;br /&gt;
name=kmail|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|string|recipient}}|&lt;br /&gt;
parameter2={{Param|string|message}}|&lt;br /&gt;
parameter3={{Param|int_meat}}|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=kmail|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|string|recipient}}|&lt;br /&gt;
parameter2={{Param|string|message}}|&lt;br /&gt;
parameter3={{Param|int_meat}}|&lt;br /&gt;
parameter4={{Param|int [item]|goodies|ag=t}}|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=kmail|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|string|recipient}}|&lt;br /&gt;
parameter2={{Param|string|message}}|&lt;br /&gt;
parameter3={{Param|int|meat}}|&lt;br /&gt;
parameter4={{Param|int [item]|goodies|ag=t}}|&lt;br /&gt;
parameter5={{Param|string|inside_note}}|&lt;br /&gt;
p1desc={{pspan|recipient}} is the player to send to|&lt;br /&gt;
p2desc={{pspan|message}} is the outside message|&lt;br /&gt;
p3desc={{pspan|meat}} is the amount of meat to send|&lt;br /&gt;
p4desc={{pspan|goodies}} is an optional map of items &amp;amp; amounts to send|&lt;br /&gt;
p5desc={{pspan|inside_note}} is an optional inside message if sent as a gift|&lt;br /&gt;
}}&lt;br /&gt;
{{Function|&lt;br /&gt;
name=kmail|&lt;br /&gt;
return_type=boolean|&lt;br /&gt;
parameter1={{Param|kmessage|km}}|&lt;br /&gt;
p1desc={{pspan|km}} allows you to send a kmail supplied in kmessage format.  The only thing unusual here is that the &amp;quot;fromname&amp;quot; field will be used as the recipient.  The other fields will be used appropriately to call the above kmail function.|&lt;br /&gt;
}}&lt;br /&gt;
Sends a kmail to player {{pspan|recipient}}, returning true if the kmail is successfully sent. Handles splitting the {{pspan|message}} into multiple messages if the number of item types in {{pspan|goodies}} is too large. Returns the result of send_gift() if the intended {{pspan|recipient}} is unable to receive the {{pspan|message}} due to being in HC or somesuch. Note that you can also specify the {{pspan|inside_note}} to be used inside gifts in that case. Use &amp;quot;\n&amp;quot; to specify a new line in the {{pspan|message}}.&lt;br /&gt;
&lt;br /&gt;
== More Information ==&lt;br /&gt;
&amp;lt;p&amp;gt;See the thread for ZLib on the mafia forum [http://kolmafia.us/showthread.php?2072 here].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]][[Category:ASH Function Libraries]]&lt;/div&gt;</summary>
		<author><name>Winterbay</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Auto-stops&amp;diff=6631</id>
		<title>Auto-stops</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Auto-stops&amp;diff=6631"/>
		<updated>2011-07-21T12:17:15Z</updated>

		<summary type="html">&lt;p&gt;Winterbay: Adding missing auto-stop&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auto-stops are places where mafia&#039;s automation will automatically stop, just as the name suggests. Except for the Ultra-Rare monsters, these are all KoL non-combats. If mafia detects one of these auto-stop non-combats then automation will cease immediately after the encounter.&lt;br /&gt;
&lt;br /&gt;
There is just one trick to using auto-stops: mafia will only auto-stop when there are no conditions set (although it will always auto-stop on Ultra-Rare monsters). If conditions are set then mafia will continue automation until it reaches those conditions and stop normally. This is to prevent auto-stops from interfering with regular automation.&lt;br /&gt;
&lt;br /&gt;
* Sleazy Back Alley: {{kolwiki|Under the Knife}} (only if the corresponding choice adventure setting is set to &amp;quot;switch genders&amp;quot;.)&lt;br /&gt;
* The Haunted Pantry: {{kolwiki|The Manor in Which You&#039;re Accustomed}}&lt;br /&gt;
* The Ruins of Fernswarthy&#039;s Tower: {{kolwiki|Take a Dusty Look!}}&lt;br /&gt;
* Misspelled Cemetary: {{kolwiki|A Grave Situation}}&lt;br /&gt;
* Haunted Library: {{kolwiki|Take a Look, it&#039;s in a Book! (Rise)|Rise}} and {{kolwiki|Take a Look, it&#039;s in a Book! (Fall)|Fall}} of Take a Look, it&#039;s in a Book!&lt;br /&gt;
* Whitey&#039;s Grove: {{kolwiki|It&#039;s A Sign!}}&lt;br /&gt;
* Teleportitis: {{kolwiki|The Oracle Will See You Now}}&lt;br /&gt;
* Barrrney&#039;s Barrr: &lt;br /&gt;
*# {{kolwiki|This Adventure Bites}}&lt;br /&gt;
*# {{kolwiki|Step Up to the Table, Put the Ball in Play}}&lt;br /&gt;
* The Poop Deck: {{kolwiki|It&#039;s Always Swordfish}}&lt;br /&gt;
* The Palindome: {{kolwiki|Drawn Onward}}&lt;br /&gt;
* The Laboratory: {{kolwiki|Mr. Alarm}}&lt;br /&gt;
* The Haunted Ballroom: {{kolwiki|We&#039;ll All Be Flat}}&lt;br /&gt;
* Arid, Extra-Dry Desert: Auto-stops every time you need to start adventuring at the Oasis or if you need to get an item:&lt;br /&gt;
*# {{kolwiki|Let&#039;s Make a Deal!}} (Before you find the Oasis and get Ultrahydrated.)&lt;br /&gt;
*# {{kolwiki|A Sietch in Time}}&lt;br /&gt;
*# {{kolwiki|No Colors Anymore}} (without can of black paint). With paint, adventuring continues to Walk Without Rhythm.&lt;br /&gt;
*# {{kolwiki|Walk Without Rhythm}}&lt;br /&gt;
*# {{kolwiki|Walk Without Rhythm 2}} (Only occurs if you didn&#039;t have a drum machine at previous auto-stop.)&lt;br /&gt;
*# {{kolwiki|The Sleeper Has Awakened}}&lt;br /&gt;
* Orcish Frat House: {{kolwiki|I Just Wanna Fly}}&lt;br /&gt;
* The Orcish Frat House (Bombed Back to the Stone Age): {{kolwiki|Me Just Want Fly}}&lt;br /&gt;
* The Mer-Kin Outpost: {{kolwiki| Granny, Does Your Dogfish Bite?}}&lt;br /&gt;
* Anemone Mine: {{kolwiki| Not a Micro Fish}}&lt;br /&gt;
* &#039;&#039;&#039;Bad Moon&#039;&#039;&#039;: All special Bad Moon adventures {{kolwiki|Bad_Moon|listed here|#Special_Adventures}}.&lt;br /&gt;
* Agua de vida: Auto-stop when a bottle is consumed.&lt;br /&gt;
* Auto-stop when a demon name is learned and opens mini-browser to display it.&lt;br /&gt;
* Auto-stop when a hobo code is learned and opens mini-browser to display it.&lt;br /&gt;
* Auto-stop when an Ultra Rare adventure is encountered and opens mini-browser to display it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{CodeSample|description=Unlocking the White Citadel can make use of the auto-stop to be this simple.|&lt;br /&gt;
code=&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
adventure( my_adventures(), $location[whitey&#039;s grove] );&lt;br /&gt;
adventure( my_adventures(), $location[white citadel );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
{{CodeSample|description=Unlocking the Pyramid, using the magic of auto-stops. Note that this assumes you have enough adventures to complete it. A better script would check the questlog to verify current quest progress before beginning adventuring.|&lt;br /&gt;
code=&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
cli_execute(&amp;quot;condition clear&amp;quot;);   # conditions must be clear or stops won&#039;t be automatic.&lt;br /&gt;
# Adventure until: A Sietch in Time&lt;br /&gt;
adventure( my_adventures(), $location[Desert (Ultrahydrated)] );&lt;br /&gt;
cli_execute(&amp;quot;condition set 1 stone rose, 1 drum machine&amp;quot;);&lt;br /&gt;
adventure( my_adventures(), $location[Oasis] );&lt;br /&gt;
# Adventure until: Walk Without Rhythm&lt;br /&gt;
retrieve_item(1, $item[can of black paint]);&lt;br /&gt;
adventure( my_adventures(), $location[Desert (Ultrahydrated)] );&lt;br /&gt;
cli_execute(&amp;quot;condition set worm-riding manual pages 3-15&amp;quot;);&lt;br /&gt;
adventure( my_adventures(), $location[Oasis] );&lt;br /&gt;
# Adventure until: The Sleeper Has Awakened&lt;br /&gt;
adventure( my_adventures(), $location[Desert (Ultrahydrated)] );&lt;br /&gt;
# Equip wormhooks, use drum machine and then re-equip original weapon.&lt;br /&gt;
cli_execute(&amp;quot;checkpoint; equip worm hooks; use drum machine; outfit checkpoint&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Automation]]&lt;/div&gt;</summary>
		<author><name>Winterbay</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Last_index_of&amp;diff=5500</id>
		<title>Last index of</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Last_index_of&amp;diff=5500"/>
		<updated>2011-07-06T21:53:04Z</updated>

		<summary type="html">&lt;p&gt;Winterbay: Adding three parameter version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&lt;br /&gt;
#vardefine:name|last_index_of}}{{&lt;br /&gt;
#vardefine:return_type|int}}{{&lt;br /&gt;
&lt;br /&gt;
FunctionPage|&lt;br /&gt;
name={{#var:name}}|&lt;br /&gt;
&lt;br /&gt;
function1={{Function|&lt;br /&gt;
name={{#var:name}}|&lt;br /&gt;
aggregate={{#var:aggregate}}|&lt;br /&gt;
return_type={{#var:return_type}}|&lt;br /&gt;
return_also={{#var:return_also}}|&lt;br /&gt;
parameter1={{Param|string|search}}|&lt;br /&gt;
parameter2={{Param|string|find}}|&lt;br /&gt;
}}|&lt;br /&gt;
&lt;br /&gt;
function2={{Function|&lt;br /&gt;
name={{#var:name}}|&lt;br /&gt;
aggregate={{#var:aggregate}}|&lt;br /&gt;
return_type={{#var:return_type}}|&lt;br /&gt;
return_also={{#var:return_also}}|&lt;br /&gt;
parameter1={{Param|string|search}}|&lt;br /&gt;
parameter2={{Param|string|find}}|&lt;br /&gt;
parameter3={{Param|int|end}}|&lt;br /&gt;
p1desc={{Pspan|search}} in the string to search in|&lt;br /&gt;
p2desc={{Pspan|find}} is the string you&#039;re trying to find|&lt;br /&gt;
p3desc={{Pspan|end}} is the (optional) ending position (i.e. where the string is truncated before the search is performed)|&lt;br /&gt;
}}|&lt;br /&gt;
&lt;br /&gt;
function_description=This function searches through the string {{pspan|search}}, looking for the string {{pspan|find}}. This function returns the position where {{pspan|find}} last occurs in {{pspan|search}}. This function returns a 0-indexed value, meaning that the first character of {{pspan|search}} counts as 0.|&lt;br /&gt;
&lt;br /&gt;
code1={{CodeSample|&lt;br /&gt;
title=Code Sample|&lt;br /&gt;
description=Returns the last instance of the phrase &amp;quot;la&amp;quot; in the following phrase.|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
last_index_of( &amp;quot;I&#039;m not listening, la la la la&amp;quot; , &amp;quot;la&amp;quot; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;|&lt;br /&gt;
moreinfo=&lt;br /&gt;
Would result in:&lt;br /&gt;
&amp;lt;pre&amp;gt;Returned: 28&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}|&lt;br /&gt;
&lt;br /&gt;
code2={{CodeSample|&lt;br /&gt;
description=Returns the last instance of the phrase &amp;quot;la&amp;quot;, ignoring the last three characters.|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
string example = &amp;quot;I&#039;m not listening, la la la la&amp;quot;;&lt;br /&gt;
last_index_of( example , &amp;quot;la&amp;quot; , length(example) - 3 );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;|&lt;br /&gt;
moreinfo=&lt;br /&gt;
Would result in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Returned: 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}|&lt;br /&gt;
&lt;br /&gt;
see_also={{SeeAlso|index_of}}|&lt;br /&gt;
special=If {{pspan|find}} does not occur in {{pspan|search}}, this function returns -1.|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:String Handling Routines]]&lt;/div&gt;</summary>
		<author><name>Winterbay</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=KoLmafia_Properties&amp;diff=1263</id>
		<title>KoLmafia Properties</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=KoLmafia_Properties&amp;diff=1263"/>
		<updated>2011-01-27T10:31:52Z</updated>

		<summary type="html">&lt;p&gt;Winterbay: /* Per-Account Variables */ I doubt that the default value for _gapBuffs is &amp;quot;Greatest American Pants buffs&amp;quot;...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
Inside your KoLmafia &amp;quot;settings&amp;quot; directory, you should find several files. KoLmafia properties are stored in the files that end with &amp;quot;_prefs.txt&amp;quot;. One of these files will start with &amp;quot;GLOBAL&amp;quot;; the settings inside are shared by all characters using the program (and some of these properties are needed by KoLmafia even when no character is logged in). The other files ending with &amp;quot;_prefs.txt&amp;quot; will start with the name of a character, one for each who has been logged in to date. (Note: the names will all be converted to lowercase.)&lt;br /&gt;
&lt;br /&gt;
==Choice Adventures==&lt;br /&gt;
A large number of the preferences saved by KoLmafia are used to determine the default behavior when a choice adventure is automated (either through auto-adventuring or use of the &amp;quot;auto&amp;quot; button in the relay browser). The number of choice adventures in KoL is too large and too often updated to list each individual preference here. Please consult the main wiki&#039;s [http://kol.coldfront.net/thekolwiki/index.php/Choice_Adventures_by_Number Choice Adventures by Number] page for a comprehensive list. Note that each preference follows the same numbering scheme as KoL itself. For example, the adventure &amp;quot;Minnesota Incorporeals&amp;quot; is number 77 in KoL, and its KoLmafia preference is &amp;quot;choiceAdventure77&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Each choiceAdventure is set to a number, which corresponds to which choice you want to make from the available options in KoL (or in the GUI, in the case that mafia provides more options than KoL).  According to Holatuwol ([http://kolmafia.us/index.php/topic,1155.0.html here]), the settings map to &amp;quot;X=pick the Xth Option&amp;quot; and &amp;quot;X+1=pick an item you don&#039;t have&amp;quot; (i.e., complete the outfit). Many preferences also have a &amp;quot;Show in [Mini] Browser&amp;quot; option, which corresponds to a setting of 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a list of all the Property variables included in KoLmafia. It was automatically generated from r7582. Note that, however, the latest (and most up-to-date) data is located in Mafia&#039;s internally-stored datafile defaults.txt (available for viewing at [https://kolmafia.svn.sourceforge.net/svnroot/kolmafia/src/data/defaults.txt the SourceForge page]).&lt;br /&gt;
&lt;br /&gt;
==Global Variables==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Variable Name&lt;br /&gt;
!  scope=&amp;quot;col&amp;quot; width=&amp;quot;300&amp;quot; | Default Value&lt;br /&gt;
!  Notes&lt;br /&gt;
|-&lt;br /&gt;
|  addChatCommandLine&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  addCreationQueue&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  addStatusBarToFrames&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  allowCloseableDesktopTabs&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  allowNegativeTally&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  allowNonMoodBurning&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  alwaysGetBreakfast&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  autoLogin&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  allowSocketTimeout&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  autoHighlightOnFocus&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  autoPlantHardcore&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  autoPlantSoftcore&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  autoSatisfyWithCloset&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  autoSatisfyWithMall&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  autoSatisfyWithNPCs&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  autoSatisfyWithStash&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  breakfastHardcore&lt;br /&gt;
|  Advanced Saucecrafting,Pastamastery,Advanced Cocktailcrafting&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  breakfastSoftcore&lt;br /&gt;
|  Advanced Saucecrafting,Pastamastery,Advanced Cocktailcrafting&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  browserBookmarks&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  cacheMallSearches&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  charsheetDropdown&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  chatBeep&lt;br /&gt;
|  false&lt;br /&gt;
|  Beep on private message in chat&lt;br /&gt;
|-&lt;br /&gt;
|  chatFontSize&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  chatLinksUseRelay&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  chatStyle&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  cloverProtectActive&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  combatHotkey0&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  combatHotkey1&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  combatHotkey2&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  combatHotkey3&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  combatHotkey4&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  combatHotkey5&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  combatHotkey6&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  combatHotkey7&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  combatHotkey8&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  combatHotkey9&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  commandLineNamespace&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  connectViaAddress&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  cookies.inventory&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  copyAsHTML&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  createHackerSummons&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  customizedTabs&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  debugPathnames&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  defaultBorderColor&lt;br /&gt;
|  blue&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  defaultDropdown1&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  defaultDropdown2&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  defaultDropdownSplit&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  defaultLimit&lt;br /&gt;
|  5&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  defaultLoginServer&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  displayName&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  eSoluScriptType&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  getBreakfast&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  grabCloversHardcore&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  grabCloversSoftcore&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  greenScreenProtection&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  grimoireSkillsHardcore&lt;br /&gt;
|  none&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  grimoireSkillsSoftcore&lt;br /&gt;
|  Summon Hilarious Objects&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  guiUsesOneWindow&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  harvestGardenHardcore&lt;br /&gt;
|  none&lt;br /&gt;
|  The crop that breakfast will harvest, if in your garden.&lt;br /&gt;
|-&lt;br /&gt;
|  harvestGardenSoftcore&lt;br /&gt;
|  none&lt;br /&gt;
|  The crop that breakfast will harvest, if in your garden.&lt;br /&gt;
|-&lt;br /&gt;
|  hideServerDebugText&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  highlightList&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  http.proxyHost&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  http.proxyPassword&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  http.proxyPort&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  http.proxyUser&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  initialDesktop&lt;br /&gt;
|  AdventureFrame,CommandDisplayFrame,&amp;lt;br /&amp;gt;MallSearchFrame,GearChangeFrame,SkillBuffFrame &lt;br /&gt;
|  starting tab configuration&lt;br /&gt;
|-&lt;br /&gt;
|  initialFrames&lt;br /&gt;
|  RecentEventsFrame&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  innerChatColor&lt;br /&gt;
|  #ffa98c&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  innerTabColor&lt;br /&gt;
|  #8ca9ff&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  itemManagerIndex&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBuffRequestType&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastRelayUpdate&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastRssUpdate&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastRssVersion&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastUserAgent&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastUsername&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  libramSkillsHardcore&lt;br /&gt;
|  none&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  libramSkillsSoftcore&lt;br /&gt;
|  none&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logAcquiredItems&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logBattleAction&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logBrowserInteractions&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logChatMessages&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logDecoratedResponses&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logFamiliarActions&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logGainMessages&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logReadableHTML&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  loginRecoveryHardcore&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  loginRecoverySoftcore&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  loginScript&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  loginServerName&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  loginWindowLogo&lt;br /&gt;
|  lantern.jpg&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logMonsterHealth&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logoutScript&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logReverseOrder&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logStatGains&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logStatusEffects&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  logStatusOnLogin&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  mementoListActive&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  mergeHobopolisChat&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  outerChatColor&lt;br /&gt;
|  #b4460f&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  outerTabColor&lt;br /&gt;
|  #0f46b4&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  pathedSummonsHardcore&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  pathedSummonsSoftcore&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  preferredWebBrowser&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  previousNotifyList&lt;br /&gt;
|  &amp;lt;&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  previousUpdateVersion&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  protectAgainstOverdrink&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  proxySet&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  readManualHardcore&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  readManualSoftcore&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayAddsCustomCombat&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayAddsGraphicalCLI&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayAddsKoLSimulator&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayAddsQuickScripts&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayAddsRestoreLinks&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayAddsRoundNumber&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayAddsUpArrowLinks&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayAddsUseLinks&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayAddsWikiLinks&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayAllowsOverrides&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayBrowserOnly&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayBrowserOnly&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayFormatsChatText&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayHidesJunkMallItems&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayMaintainsEffects&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayMaintainsHealth&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayMaintainsMana&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayTextualizesEffects&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayTrimsZapList&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayUsesCachedImages&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayUsesInlineLinks&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayUsesIntegratedChat&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayViewsCustomItems&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  removeMalignantEffects&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  saveSettingsOnSet&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  saveState&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  saveStateActive&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  scriptButtonPosition&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  scriptList&lt;br /&gt;
|  restore hp | restore mp&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  showAllRequests&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  stealthLogin&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  swingLookAndFeel&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  switchEquipmentForBuffs&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  tomeSkillsHardcore&lt;br /&gt;
|  Summon Snowcone&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  tomeSkillsSoftcore&lt;br /&gt;
|  Summon Snowcone&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  toolbarPosition&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useChatMonitor&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useChatToolbar&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useContactsFrame&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useCrimboToysHardcore&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useCrimboToysSoftcore&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useDecoratedTabs&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useLastUserAgent&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useSeparateChannels&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useShinyTabbedChat&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useSystemTrayIcon&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useTabbedChatFrame&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useToolbars&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  useZoneComboBox&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  userAgent&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  visitLoungeHardcore&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  visitLoungeSoftcore&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  visitRumpusHardcore&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  visitRumpusSoftcore&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Per-Account Variables==&lt;br /&gt;
Choice adventure preferences have been omitted (see above).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Variable Name&lt;br /&gt;
!  scope=&amp;quot;col&amp;quot; width=&amp;quot;300&amp;quot; | Default Value&lt;br /&gt;
!  Notes&lt;br /&gt;
|-&lt;br /&gt;
|  autoAbortThreshold&lt;br /&gt;
|  -0.05&lt;br /&gt;
|  Abort adventuring at this percentage of HP. (-0.05 means if HP restoration failed)&lt;br /&gt;
|-&lt;br /&gt;
|  autoAntidote&lt;br /&gt;
|  0&lt;br /&gt;
|  Use antidotes in combat&lt;br /&gt;
|-&lt;br /&gt;
|  autoBuyPriceLimit&lt;br /&gt;
|  20000&lt;br /&gt;
|  Don&#039;t auto purchase anything that costs more than this&lt;br /&gt;
|-&lt;br /&gt;
|  autoEntangle&lt;br /&gt;
|  false&lt;br /&gt;
|  Use Entangling Noodles at the beginning of combat&lt;br /&gt;
|-&lt;br /&gt;
|  autoManaRestore&lt;br /&gt;
|  true&lt;br /&gt;
|  Restore MP in combat&lt;br /&gt;
|-&lt;br /&gt;
|  autoOlfact&lt;br /&gt;
|  &lt;br /&gt;
|  Automatically cast Olfaction&lt;br /&gt;
|-&lt;br /&gt;
|  autoPotionID&lt;br /&gt;
|  false&lt;br /&gt;
|  Attempt to ID ! potions in combat&lt;br /&gt;
|-&lt;br /&gt;
|  autoPutty&lt;br /&gt;
|  &lt;br /&gt;
|  Automatically use Spooky Putty&lt;br /&gt;
|-&lt;br /&gt;
|  autoRepairBoxServants&lt;br /&gt;
|  true&lt;br /&gt;
|  Create in-a-boxen before cooking or mixing &lt;br /&gt;
|-&lt;br /&gt;
|  autoSphereID&lt;br /&gt;
|  false&lt;br /&gt;
|  Attempt to ID spheres from the Hidden City&lt;br /&gt;
|-&lt;br /&gt;
|  autoSteal&lt;br /&gt;
|  true&lt;br /&gt;
|  Attempt to pickpocket in combat&lt;br /&gt;
|-&lt;br /&gt;
|  autostartGalaktikQuest&lt;br /&gt;
|  true&lt;br /&gt;
|  Get Doc Galaktik&#039;s Quest at the start of ascension&lt;br /&gt;
|-&lt;br /&gt;
|  availableDimes&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  availableLucre&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  availableQuarters&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  availableSandDollars&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  barrelGoal&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  barrelLayout&lt;br /&gt;
|  ?????????&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  basementMallPrices&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  battleAction&lt;br /&gt;
|  attack with weapon&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  betweenBattleScript&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  birdformCold&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  birdformHot&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  birdformRoc&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  birdformSleaze&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  birdformSpooky&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  birdformStench&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  blackPuddingsDefeated&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  blankOutUsed&lt;br /&gt;
|  0&lt;br /&gt;
|  Tracks current amount of active Blank-out&lt;br /&gt;
|-&lt;br /&gt;
|  breakfastCompleted&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  buffBotCasting&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  buffBotMessageDisposal&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  buffBotPhilanthropyType&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  burrowgrubHiveUsed&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  burrowgrubSummonsRemaining&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  buyScript&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  cameraMonster&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  cellarLayout&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  chatbotScript&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  chatbotScriptExecuted&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  chosenTrip&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  clanAttacksEnabled&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  cocktailSummons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  concertVisited&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  currentBountyItem&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  currentFullness&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  currentHippyStore&lt;br /&gt;
|  none&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  currentJunkyardTool&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  currentJunkyardLocation&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  currentMojoFilters&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  currentMood&lt;br /&gt;
|  default&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  currentNunneryMeat&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  currentPvpVictories&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  currentSpleenUse&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  currentWheelPosition&lt;br /&gt;
|  muscle&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  customCombatScript&lt;br /&gt;
|  default&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  dailyDungeonDone&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  defaultAutoAttack&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  defaultFlowerLossMessage&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  defaultFlowerWinMessage&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  demonName1&lt;br /&gt;
|  &lt;br /&gt;
|  Name of demon that gives pies&lt;br /&gt;
|-&lt;br /&gt;
|  demonName2&lt;br /&gt;
|  &lt;br /&gt;
|  Name of demon that gives Preternatural Greed&lt;br /&gt;
|-&lt;br /&gt;
|  demonName3&lt;br /&gt;
|  &lt;br /&gt;
|  Name of demon that gives Fit To Be Tide&lt;br /&gt;
|-&lt;br /&gt;
|  demonName4&lt;br /&gt;
|  &lt;br /&gt;
|  Name of demon that gives Big Flaming Whip&lt;br /&gt;
|-&lt;br /&gt;
|  demonName5&lt;br /&gt;
|  &lt;br /&gt;
|  Name of demon that gives Demonic Taint&lt;br /&gt;
|-&lt;br /&gt;
|  demonName6&lt;br /&gt;
|  Tatter&lt;br /&gt;
|  Name of demon that gives pile of smoking rags&lt;br /&gt;
|-&lt;br /&gt;
|  demonName7&lt;br /&gt;
|  Ak&#039;gyxoth&lt;br /&gt;
|  Name of demon that gives drinks&lt;br /&gt;
|-&lt;br /&gt;
|  demonName8&lt;br /&gt;
|  &lt;br /&gt;
|  Name of demon found in the Nemesis&#039; Lair&lt;br /&gt;
|-&lt;br /&gt;
|  demonName9&lt;br /&gt;
|  &lt;br /&gt;
|  Name of demon that gives Burning, Man&lt;br /&gt;
|-&lt;br /&gt;
|  demonSummoned&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  expressCardUsed&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  extraRolloverAdventures&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  flyeredML&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  fossilB&lt;br /&gt;
|  0&lt;br /&gt;
|  Number of bat teeth on the fossilized necklace&lt;br /&gt;
|-&lt;br /&gt;
|  fossilD&lt;br /&gt;
|  0&lt;br /&gt;
|  Number of demon teeth on the fossilized necklace&lt;br /&gt;
|-&lt;br /&gt;
|  fossilN&lt;br /&gt;
|  0&lt;br /&gt;
|  Number of baboon teeth on the fossilized necklace&lt;br /&gt;
|-&lt;br /&gt;
|  fossilP&lt;br /&gt;
|  0&lt;br /&gt;
|  Number of spider teeth on the fossilized necklace&lt;br /&gt;
|-&lt;br /&gt;
|  fossilS&lt;br /&gt;
|  0&lt;br /&gt;
|  Number of serpent teeth on the fossilized necklace&lt;br /&gt;
|-&lt;br /&gt;
|  fossilW&lt;br /&gt;
|  0&lt;br /&gt;
|  Number of wyrm teeth on the fossilized necklace&lt;br /&gt;
|-&lt;br /&gt;
|  fratboysDefeated&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  friarsBlessingReceived&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  gongPath&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  gourdItemCount&lt;br /&gt;
|  5&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  grimoire1Summons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  grimoire2Summons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  guardTurtlesFreed&lt;br /&gt;
|  0&lt;br /&gt;
|  Number of times that [http://kol.coldfront.net/thekolwiki/index.php/Cold-Blooded_Warm_Fuzzies guard turtles have been freed] this ascension.&lt;br /&gt;
|-&lt;br /&gt;
|  guyMadeOfBeesCount&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  guyMadeOfBeesDefeated&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  heroDonationBoris&lt;br /&gt;
|  0&lt;br /&gt;
|  Meat donated to Boris&lt;br /&gt;
|-&lt;br /&gt;
|  heroDonationJarlsberg&lt;br /&gt;
|  0&lt;br /&gt;
|  Meat donated to Jarlsberg&lt;br /&gt;
|-&lt;br /&gt;
|  heroDonationSneakyPete&lt;br /&gt;
|  0&lt;br /&gt;
|  Meat donated to Sneaky Pete&lt;br /&gt;
|-&lt;br /&gt;
|  hiddenCityLayout&lt;br /&gt;
|  0000000000000000000000000&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  hiddenCitySquare&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  hippiesDefeated&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  hpAutoRecovery&lt;br /&gt;
|  -0.05&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  hpAutoRecoveryItems&lt;br /&gt;
|  cannelloni cocoon;scroll of drastic healing;tongue of the walrus;lasagna bandages;doc galaktik&#039;s ailment ointment&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  hpAutoRecoveryTarget&lt;br /&gt;
|  1.0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  invalidBuffMessage&lt;br /&gt;
|  You sent an amount which does not correspond to a valid buff amount.&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  kingLiberated&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  knownAscensions&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastAdventure&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBarrelSmashed&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBangPotion819&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBangPotion820&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBangPotion821&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBangPotion822&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBangPotion823&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBangPotion824&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBangPotion825&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBangPotion826&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBangPotion827&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBangPotionReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBarrelSmashed&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBattlefieldReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastBreakfast&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastCellarReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastChanceBurn&lt;br /&gt;
|  &lt;br /&gt;
|  CLI command executed at lastChanceThreshold (&amp;quot;#&amp;quot; is replaced by the amount of MP to burn)&lt;br /&gt;
|-&lt;br /&gt;
|  lastChanceThreshold&lt;br /&gt;
|  100&lt;br /&gt;
|  amount of unburned MP at which alternatives to extending existing buffs will be considered&lt;br /&gt;
|-&lt;br /&gt;
|  lastCouncilVisit&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastCounterDay&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDustyBottle2271&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDustyBottle2272&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDustyBottle2273&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDustyBottle2274&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDustyBottle2275&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDustyBottle2276&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDustyBottleReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfDiceRolls&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfDigitRunes&lt;br /&gt;
|  -------&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfEquipmentRunes&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfFactoryItem118&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfFactoryItem119&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfFactoryItem120&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfFactoryItem360&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfFactoryItem361&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfFactoryItem362&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfFactoryItem363&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfFactoryItem364&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfFactoryItem365&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfFactoryItem910&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfFactoryItem3199&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfOfficeItem3208&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfOfficeItem3209&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfOfficeItem3210&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfOfficeItem3211&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfOfficeItem3212&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfOfficeItem3213&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfOfficeItem3214&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfOreRunes&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfFactoryReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfHopper1&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfHopper2&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfHopper3&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastDwarfHopper4&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastEVHelmetValue&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastEVHelmetReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastEmptiedStorage&lt;br /&gt;
|  -1&lt;br /&gt;
|  Number of the last ascension that Hangk&#039;s storage was emptied.&lt;br /&gt;
|-&lt;br /&gt;
|  lastFilthClearance&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastGalleryUnlock&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastGuildStoreOpen&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastGuyMadeOfBeesReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastHiddenCityAscension&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastFratboyCall&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastHippyCall&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastKingLiberation&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastLouvreMap&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastMessageId&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastMiningReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPaperStripReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPaperStrip3144&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPaperStrip4138&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPaperStrip4139&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPaperStrip4140&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPaperStrip4141&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPaperStrip4142&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPaperStrip4143&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPaperStrip4144&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPastamancerGhostReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPirateEphemera&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPirateEphemeraReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPirateInsult1&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPirateInsult2&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPirateInsult3&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPirateInsult4&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPirateInsult5&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPirateInsult6&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPirateInsult7&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPirateInsult8&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPirateInsultReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastPyramidReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastQuartetAscension&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastQuartetRequest&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastSecondFloorUnlock&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastSemirareReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastStoneSphere2174&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastStoneSphere2175&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastStoneSphere2176&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastStoneSphere2177&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastStoneSphereReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastTavernAscension&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastTavernSquare&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastTelescopeReset&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastTowerClimb&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastVioletFogMap&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  lastZapperWand&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  libramSummons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  libraryCardUsed&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  louvreDesiredGoal&lt;br /&gt;
|  7&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  louvreGoal&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  louvreLayout&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  louvreOverride&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  luckySewerAdventure&lt;br /&gt;
|  stolen accordion&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  manaBurnSummonThreshold&lt;br /&gt;
|  10&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  manaBurningThreshold&lt;br /&gt;
|  -0.05&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  maxManaBurn&lt;br /&gt;
|  1000&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mayflyExperience&lt;br /&gt;
| 0&lt;br /&gt;
| Uses of mayfly bait necklace. Reset each ascension.&lt;br /&gt;
|-&lt;br /&gt;
|  mineLayout1&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  mineLayout2&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  mineLayout3&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  moleTunnelLevel&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  mpAutoRecovery&lt;br /&gt;
|  0.0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  mpAutoRecoveryItems&lt;br /&gt;
|  phonics down;knob goblin superseltzer;mountain stream soda;magical mystery juice;knob goblin seltzer;cherry cloaca cola;soda water&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  mpAutoRecoveryTarget&lt;br /&gt;
|  0.3&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  munchiesPillsUsed&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  noodleSummons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  nunsVisits&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  oceanAction&lt;br /&gt;
|  savecontinue&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  oceanDestination&lt;br /&gt;
|  manual&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  olfactedMonster&lt;br /&gt;
|  unknown&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  oscusSodaUsed&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  outrageousSombreroUsed&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  pastamancerGhostExperience&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  pastamancerGhostName&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  pastamancerGhostSummons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  pastamancerGhostType&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  plantingDate&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  plantingDay&lt;br /&gt;
|  -1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  plantingLength&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  plantingScript&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  postAscensionScript&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  preAscensionScript&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  preBlackbirdFamiliar&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  prismaticSummons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  pyramidPosition&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  pyramidBombUsed&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  rageGlandVented&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  reagentSummons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  recentLocations&lt;br /&gt;
|  5&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  recoveryScript&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  relayCounters&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  requireBoxServants&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  requireSewerTestItems&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  retrieveContacts&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  seaodesFound&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  semirareCounter&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  semirareLocation&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  serverAddsCustomCombat&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  setAutoAttack&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  showGainsPerUnit&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  sideDefeated&lt;br /&gt;
|  neither&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  sidequestArenaCompleted&lt;br /&gt;
|  none&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  sidequestFarmCompleted&lt;br /&gt;
|  none&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  sidequestJunkyardCompleted&lt;br /&gt;
|  none&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  sidequestLighthouseCompleted&lt;br /&gt;
|  none&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  sidequestNunsCompleted&lt;br /&gt;
|  none&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  sidequestOrchardCompleted&lt;br /&gt;
|  none&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  skillLevel46&lt;br /&gt;
|  2&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  skillLevel47&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  skillLevel48&lt;br /&gt;
|  2&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  slimelingFullness&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  sortByRoom&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  spadingData&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  spiceMelangeUsed&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  spookyPuttyCopiesMade&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  spookyPuttyMonster&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  stationaryButton1&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  stationaryButton2&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  stationaryButton3&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  stationaryButton4&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  stationaryButton5&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  styxPixieVisited&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  tavernLayout&lt;br /&gt;
|  0000000000000000000000000&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  telescope1&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  telescope2&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  telescope3&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  telescope4&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  telescope5&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  telescope6&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  telescope7&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  telescopeLookedHigh&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  telescopeUpgrades&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  tempuraSummons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  thanksMessage&lt;br /&gt;
|  Thank you for the donation!&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  timesRested&lt;br /&gt;
|  99&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  tomeSummons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  trapperOre&lt;br /&gt;
|  chrome ore&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  usable1HWeapons&lt;br /&gt;
|  3&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  usable1xAccs&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  usable2HWeapons&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  usable3HWeapons&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  usableAccessories&lt;br /&gt;
|  3&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  usableHats&lt;br /&gt;
|  2&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  usableOffhands&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  usableOther&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  usablePants&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  usableShirts&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  violetFogGoal&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  violetFogLayout&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  warProgress&lt;br /&gt;
|  unstarted&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  welcomeBackAdv&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _absintheDrops&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _aguaDrops&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _astralDrops&lt;br /&gt;
|  0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|  _bagOfCandy&lt;br /&gt;
|  false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|  _bagOTricksUsed&lt;br /&gt;
|  false&lt;br /&gt;
|  Has the Bag of Tricks been used today?&lt;br /&gt;
|-&lt;br /&gt;
|  _ballpit&lt;br /&gt;
|  false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|  _banderRunaways&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _brickoFights&lt;br /&gt;
|  Number of times Bricko monsters have been fought today&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _cameraUsed&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _candySummons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _chipBags&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _crimboTree&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _deluxeKlawSummons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _gapBuffs&lt;br /&gt;
|  0&lt;br /&gt;
|  Greatest American Pants buffs&lt;br /&gt;
|-&lt;br /&gt;
|  _gibbererAdv&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _gongDrops&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _hotTubSoaks&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _ironicMoustache&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _klawSummons&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _lastZomboEye&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _leafblowerML&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _legendaryBeat&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _lookingGlass&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _lunchBreak&lt;br /&gt;
|  false&lt;br /&gt;
|  Has the Lunch Break skill been used?&lt;br /&gt;
|-&lt;br /&gt;
| _mayflySummons&lt;br /&gt;
| 0&lt;br /&gt;
| Mayfly summonings today&lt;br /&gt;
|-&lt;br /&gt;
|  _navelRunaways&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _photocopyUsed&lt;br /&gt;
|  false&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _pieDrops&lt;br /&gt;
|  0&lt;br /&gt;
|  Number of pies made by Knob Goblin Organ Grinder&lt;br /&gt;
|-&lt;br /&gt;
|  _piePartsCount&lt;br /&gt;
|  0&lt;br /&gt;
|  Number of organs collected by Organ Grinder for the next pie&lt;br /&gt;
|-&lt;br /&gt;
|  _poolGames&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _riftletAdv&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _sealFigurineUses&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _sealsSummoned&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  _skateBuff1&lt;br /&gt;
|  false&lt;br /&gt;
|  lutz&lt;br /&gt;
|-&lt;br /&gt;
|  _skateBuff2&lt;br /&gt;
|  false&lt;br /&gt;
|  comet&lt;br /&gt;
|-&lt;br /&gt;
|  _skateBuff3&lt;br /&gt;
|  false&lt;br /&gt;
|  band shell&lt;br /&gt;
|-&lt;br /&gt;
|  _skateBuff4&lt;br /&gt;
|  false&lt;br /&gt;
|  skate eels&lt;br /&gt;
|-&lt;br /&gt;
|  _skateBuff5&lt;br /&gt;
|  false&lt;br /&gt;
|  merry-go-round&lt;br /&gt;
|-&lt;br /&gt;
|  _userMods&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  unknownRecipe3542&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  unknownRecipe3543&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  unknownRecipe3544&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  unknownRecipe3545&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  unknownRecipe3546&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  unknownRecipe3547&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  unknownRecipe3548&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  unknownRecipe3749&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  unknownRecipe3751&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  unknownRecipe4172&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  unknownRecipe4173&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  unknownRecipe4174&lt;br /&gt;
|  true&lt;br /&gt;
|  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==User-defined variables==&lt;br /&gt;
In addition to setting the variables that KoLmafia predefines, you can also create any others to cover any information you wish.  As you do so, keep in mind that while you can clear a variable&amp;amp;#8217;s value to the null string, there is currently no way to delete a key (aside from editing the .txt file in the text processor of your choice and deleting the line that contains the key).&lt;br /&gt;
{{SeeAlso|get_property|set_property}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Winterbay</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Talk:Alias&amp;diff=6714</id>
		<title>Talk:Alias</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Talk:Alias&amp;diff=6714"/>
		<updated>2010-06-07T15:38:15Z</updated>

		<summary type="html">&lt;p&gt;Winterbay: Removing an alias?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A question: How do you anti-assign an alias? &amp;quot;alias =&amp;gt;&amp;quot; does not work... [[User:Winterbay|Winterbay]] 15:38, 7 June 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Winterbay</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Item_drops_array&amp;diff=5933</id>
		<title>Item drops array</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Item_drops_array&amp;diff=5933"/>
		<updated>2010-05-16T10:12:05Z</updated>

		<summary type="html">&lt;p&gt;Winterbay: Added missing } in the example code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&lt;br /&gt;
#vardefine:name|item_drops_array}}{{&lt;br /&gt;
#vardefine:return_type|record [int]}}{{&lt;br /&gt;
#vardefine:aggregate|yes}}{{&lt;br /&gt;
&lt;br /&gt;
FunctionPage|&lt;br /&gt;
name={{#var:name}}|&lt;br /&gt;
function_category=Item Management|&lt;br /&gt;
&lt;br /&gt;
function1={{Function|&lt;br /&gt;
name={{#var:name}}|&lt;br /&gt;
aggregate={{#var:aggregate}}|&lt;br /&gt;
return_type={{#var:return_type}}|&lt;br /&gt;
return_also={{#var:return_also}}&lt;br /&gt;
}}|&lt;br /&gt;
function2={{Function|&lt;br /&gt;
name={{#var:name}}|&lt;br /&gt;
aggregate={{#var:aggregate}}|&lt;br /&gt;
return_type={{#var:return_type}}|&lt;br /&gt;
return_also={{#var:return_also}}|&lt;br /&gt;
parameter1={{Param|monster|check_me}}|&lt;br /&gt;
p1desc={{Pspan|check_me}} is the (optional) monster to check.|&lt;br /&gt;
}}|&lt;br /&gt;
&lt;br /&gt;
function_description=Returns an array of records with three fields:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
record {&lt;br /&gt;
   item drop;&lt;br /&gt;
   int rate;&lt;br /&gt;
   string type;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
The &#039;type&#039; field has these currently possible values:&lt;br /&gt;
* &amp;quot;&amp;quot; - normal item drop, base drop rate in the &#039;rate&#039; field.&lt;br /&gt;
* &amp;quot;0&amp;quot; - no drop rate information available, &#039;rate&#039; will be zero.&lt;br /&gt;
* &amp;quot;n&amp;quot; - not pickpocketable, but otherwise drops according to &#039;rate&#039;.&lt;br /&gt;
* &amp;quot;c&amp;quot; - conditional drop.&lt;br /&gt;
* &amp;quot;p&amp;quot; - pickpocket-only.&lt;br /&gt;
* &amp;quot;b&amp;quot; - bounty item, &#039;rate&#039; is meaningless.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
Since this is the first function to return a record, it cannot be stored to a variable, and thus the only way to access the data is by iterating over the elements in the array.|&lt;br /&gt;
&lt;br /&gt;
code1={{CodeSample|&lt;br /&gt;
title=Code Samples|&lt;br /&gt;
description=Prints all information Mafia has regarding the item drops of a certain monster.|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
void drops(monster mob){&lt;br /&gt;
   print(&amp;quot;Monster: &amp;quot; + mob);&lt;br /&gt;
   foreach index, rec in item_drops_array(mob) &lt;br /&gt;
      print(&amp;quot;item: &amp;quot;+rec.drop+&amp;quot;, drop rate: &amp;quot;+rec.rate+&amp;quot;, type: &amp;quot;+rec.type);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{CodeSample|&lt;br /&gt;
description=Saves item drop information in a custom-defined map for later usage.|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
void main() {&lt;br /&gt;
record dropdata {&lt;br /&gt;
   item drop;&lt;br /&gt;
   int rate;&lt;br /&gt;
   string type;&lt;br /&gt;
};&lt;br /&gt;
dropdata [int] loc_mon_it;&lt;br /&gt;
dropdata [monster][int] all_mon_drops;&lt;br /&gt;
foreach i1, mob in get_monsters($location[Orc Chasm])&lt;br /&gt;
   foreach index, rec in item_drops_array(mob) {&lt;br /&gt;
      all_mon_drops [mob][index].drop = rec.drop;&lt;br /&gt;
      all_mon_drops [mob][index].rate = rec.rate;&lt;br /&gt;
      all_mon_drops [mob][index].type = rec.type;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
foreach mob, index, data in all_mon_drops {&lt;br /&gt;
   string rate = data.rate + &amp;quot;%&amp;quot;;&lt;br /&gt;
   if(data.type == &amp;quot;0&amp;quot;)&lt;br /&gt;
      rate = &amp;quot;unknown rate&amp;quot;;&lt;br /&gt;
   if(data.type != &amp;quot;p&amp;quot; &amp;amp;&amp;amp; data.type != &amp;quot;b&amp;quot;)&lt;br /&gt;
      print(mob+&amp;quot;, drops &amp;quot;+data.drop+&amp;quot; @ &amp;quot;+rate);&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}|&lt;br /&gt;
&lt;br /&gt;
see_also={{SeeAlso|meat_drop|item_drops}}|&lt;br /&gt;
special=The zero-parameter form returns the last monster encountered (the current one, if used in combat).|&lt;br /&gt;
more_info=see [http://kolmafia.us/showthread.php?3866 this thread].|&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Winterbay</name></author>
	</entry>
</feed>