<?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=QuietMisdreavus</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=QuietMisdreavus"/>
	<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Special:Contributions/QuietMisdreavus"/>
	<updated>2026-04-30T18:19:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Your_Character&amp;diff=9171</id>
		<title>Your Character</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Your_Character&amp;diff=9171"/>
		<updated>2022-10-02T19:39:31Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: /* Sign &amp;amp; Path */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
==Viewable Info==&lt;br /&gt;
{{flink|string|my_name|desc=Returns your character&#039;s name in lowercase.}}&lt;br /&gt;
{{flink|string|my_id|desc=Returns your character ID.}}&lt;br /&gt;
{{flink|int|get_clan_id|desc=Returns the ID number of the character&#039;s current clan.}}&lt;br /&gt;
{{flink|string|get_clan_name|desc=Returns the name of the character&#039;s current clan.}}&lt;br /&gt;
{{Flink|int|my_ascensions|desc=Returns the number of times your character has ascended.}}&lt;br /&gt;
{{flink|class|my_class|desc=Returns your class.}}&lt;br /&gt;
{{flink|int|my_level|desc=Returns your level.}}&lt;br /&gt;
{{flink|int|my_adventures|desc=Returns the number of adventures you have remaining.}}&lt;br /&gt;
{{flink|int|total_turns_played|desc=Returns total turns played since the character was created.}}&lt;br /&gt;
{{flink|int|turns_played}}&lt;br /&gt;
{{flink|int|my_turncount|desc=Both functions return the number of adventures used this ascension.}}&lt;br /&gt;
{{flink|int|my_daycount|desc=Return the number of days used this ascension.}}&lt;br /&gt;
{{flink|stat|my_primestat|desc=Returns the main stat of your current class.}}&lt;br /&gt;
{{flink|int|my_basestat|stat|desc=Returns your base value in the given stat (or substat).}}&lt;br /&gt;
{{flink|int|my_buffedstat|stat|desc=Returns your buffed value in the given stat (or substat).}}&lt;br /&gt;
{{flink|boolean|hippy_stone_broken|desc=Reports if your Hippy Stone is currently broken.}}&lt;br /&gt;
{{flink|int|pvp_attacks_left|desc=Returns number of PvP attacks remaining.}}&lt;br /&gt;
{{flink|int|total_free_rests|desc=Returns the total number of free rests available to your character.}}&lt;br /&gt;
{{flink|int [item]|get_campground|desc=Returns a map of your campground items as integers, keyed by item names.}}&lt;br /&gt;
{{flink|item|get_dwelling|desc=Returns the item corresponding with your dwelling (the item used to get the dwelling).}}&lt;br /&gt;
{{flink|thrall|my_thrall|desc=Returns your current pasta thrall.}}&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
{{flink|int|my_hp|desc=Returns your current HP.}}&lt;br /&gt;
{{flink|int|my_mp|desc=Returns your current MP.}}&lt;br /&gt;
{{flink|int|my_maxhp|desc=Returns your current maximum HP.}}&lt;br /&gt;
{{flink|int|my_maxmp|desc=Returns your current maximum MP.}}&lt;br /&gt;
{{flink|int|my_soulsauce|desc=Returns your current Soulsauce.}}&lt;br /&gt;
{{flink|int|my_audience|desc=Returns your current Audience.}}&lt;br /&gt;
{{flink|int|my_thunder|desc=Returns your current Thunder.}}&lt;br /&gt;
{{flink|int|my_rain|desc=Returns your current Rain.}}&lt;br /&gt;
{{flink|int|my_lightning|desc=Returns your current Lightning.}}&lt;br /&gt;
&lt;br /&gt;
==Familiars and Substitutes==&lt;br /&gt;
{{flink|familiar|my_familiar|desc=Returns your current familiar.}}&lt;br /&gt;
{{flink|int|familiar_weight|familiar|desc=Returns the base weight of the specified familiar.}}&lt;br /&gt;
{{flink|boolean|is_familiar_equipment_locked|desc=Returns lock status of familiar equipment.}}&lt;br /&gt;
{{flink|void|lock_familiar_equipment|boolean|desc=Locks or Unlocks familiar equipment.}}&lt;br /&gt;
{{flink|int|minstrel_level|desc=Reports Clancy&#039;s level.}}&lt;br /&gt;
{{flink|item|minstrel_instrument|desc=Reports Clancy&#039;s equipped item.}}&lt;br /&gt;
{{flink|boolean|minstrel_quest|desc=Reports if Clancy has a new quest for you.}}&lt;br /&gt;
{{flink|string|my_companion|desc=Returns your current companion.}}&lt;br /&gt;
&lt;br /&gt;
==Hidden Info==&lt;br /&gt;
{{flink|string|my_hash|desc=Returns the password hash for your current session.}}&lt;br /&gt;
{{flink|stat|current_hit_stat|desc=Returns the stat currently used to calculate to-hit percentage.}}&lt;br /&gt;
{{flink|int|buffed_hit_stat|desc=Returns the buffed value of your currently used to-hit stat.}}&lt;br /&gt;
{{flink|int|raw_damage_absorption|desc=Returns your current DA total.}}&lt;br /&gt;
{{flink|float|damage_absorption_percent|desc=Returns the percentage of damage mitigated by your DA.}}&lt;br /&gt;
{{flink|int|damage_reduction|desc=Returns the amount of damage reduction your character currently has.}}&lt;br /&gt;
{{flink|float|elemental_resistance|element|desc=Returns the percentage of damage reduction to the given element based on your current resistance to that element.}}&lt;br /&gt;
{{flink|float|combat_rate_modifier|desc=Returns the percentage adjustment to your combat rate.}}&lt;br /&gt;
{{flink|float|initiative_modifier|desc=Returns the percentage adjustment to your chance of gaining initiative.}}&lt;br /&gt;
{{flink|float|experience_bonus|desc=Returns the amount of bonus experience your receive after combat.}}&lt;br /&gt;
{{flink|float|meat_drop_modifier|desc=Returns the percentage adjustment to meat drops after combat.}}&lt;br /&gt;
{{flink|float|item_drop_modifier|desc=Returns the percentage adjustment to item drops after combat.}}&lt;br /&gt;
{{flink|int|monster_level_adjustment|desc=Returns the total +ML you have active, including your sign-specific device.}}&lt;br /&gt;
{{flink|stat|stat_bonus_today}}&lt;br /&gt;
{{flink|stat|stat_bonus_tomorrow|desc=These two functions report on what stat has a stat-day bonus or $stat[none] if it isn&#039;t a stat day.}}&lt;br /&gt;
{{flink|int|current_mcd|desc=Returns the current setting of your sign-specific +ML device.}}&lt;br /&gt;
{{flink|int|weight_adjustment|desc=Returns the cumulative total of all familiar weight adjustments from all sources.}}&lt;br /&gt;
{{flink|boolean|get_ignore_zone_warnings|desc=Returns the value of the KoL option to disable &amp;quot;This area might be too tough for you&amp;quot; warnings.}}&lt;br /&gt;
{{flink|string [location] [int]|get_florist_plants|desc=Returns the a map of all plants currently planted in every location.}}&lt;br /&gt;
&lt;br /&gt;
==Sign &amp;amp; Path==&lt;br /&gt;
{{flink|boolean|can_eat|desc=Reports on whether your characters path allows food consumption.}}&lt;br /&gt;
{{flink|boolean|can_drink|desc=Reports on whether your characters path allows booze consumption}}&lt;br /&gt;
{{flink|boolean|can_interact|desc=Reports on whether your character can access the mall, gift packages, etc.}}&lt;br /&gt;
{{flink|boolean|in_hardcore|desc=Reports on whether your character is under Hardcore restrictions.}}&lt;br /&gt;
{{flink|item|daily_special|desc=Returns the daily special at your sign eatery.}}&lt;br /&gt;
{{flink|boolean|in_moxie_sign}}&lt;br /&gt;
{{flink|boolean|in_muscle_sign}}&lt;br /&gt;
{{flink|boolean|in_mysticality_sign}}&lt;br /&gt;
{{flink|boolean|in_bad_moon|desc=These four functions report on the stat gains granted by your character&#039;s ascension moon sign.}}&lt;br /&gt;
{{flink|path|my_path|desc=The ascension path your character chose.}}&lt;br /&gt;
{{flink|int|my_path_id|desc=The number of the ascension path your character chose.}}&lt;br /&gt;
{{flink|string|my_sign|desc=The moon sign your character ascended under.}}&lt;br /&gt;
&lt;br /&gt;
==Consumption==&lt;br /&gt;
{{flink|int|my_fullness|desc=Returns how full you are.}}&lt;br /&gt;
{{flink|int|fullness_limit|desc=Returns your maximum fullness.}}&lt;br /&gt;
{{flink|int|my_inebriety|desc=Returns your current drunkenness.}}&lt;br /&gt;
{{flink|int|inebriety_limit|desc=Returns your maximum safe drunk (before overdrinking).}}&lt;br /&gt;
{{flink|int|my_spleen_use|desc=Returns your current spleen use.}}&lt;br /&gt;
{{flink|int|spleen_limit|desc=Returns your spleen limit.}}&lt;br /&gt;
&lt;br /&gt;
==Location Availability==&lt;br /&gt;
{{flink|boolean|black_market_available|desc=Returns the availability of the Black Market.}}&lt;br /&gt;
{{flink|boolean|canadia_available|desc=Returns the availability of Little Canadia.}}&lt;br /&gt;
{{flink|boolean|dispensary_available|desc=Returns the availability of the Knob Dispensary.}}&lt;br /&gt;
{{flink|boolean|florist_available|desc=Returns the availability of The Florist Friar&#039;s Cottage.}}&lt;br /&gt;
{{flink|boolean|gnomads_available|desc=Returns the availability of the Gnomish Gnomad Camp.}}&lt;br /&gt;
{{flink|boolean|guild_store_available|desc=Returns the availability of your guild store.}}&lt;br /&gt;
{{flink|boolean|hidden_temple_unlocked|desc=Returns the availability of the Hidden Temple.}}&lt;br /&gt;
{{flink|boolean|hippy_store_available|desc=Returns the availability of the Hippy Store.}}&lt;br /&gt;
{{flink|boolean|knoll_available|desc=Returns the availability of the Degrassi Knoll.}}&lt;br /&gt;
{{flink|boolean|white_citadel_available|desc=Returns the availability of White Citadel.}}&lt;br /&gt;
&lt;br /&gt;
==Misc.==&lt;br /&gt;
{{Flink|string|eudora|desc=Returns your current Eudora correspondent.}}&lt;br /&gt;
{{Flink|boolean|galaktik_cures_discounted|desc=Returns whether Doc&#039;s offers you a discount for quest completion.}}&lt;br /&gt;
{{Flink|int|is_unrestricted|desc=Checks whether a given game resource is available.}}&lt;br /&gt;
{{Flink|int|moon_light|desc=Returns the total lit moon segments.}}&lt;br /&gt;
{{Flink|int|moon_phase|desc=Returns the phase (0-15) of the main moons.}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Proxy_Records&amp;diff=9170</id>
		<title>Proxy Records</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Proxy_Records&amp;diff=9170"/>
		<updated>2022-10-02T19:33:52Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proxy records are special records associated with the special [[Data Types|data types]] available to scripters. These records are always available for the special datatypes. The fields in a proxy record are referenced in the same manner as a [[Data_Structures#Records|record]].&lt;br /&gt;
&lt;br /&gt;
==Special Datatypes==&lt;br /&gt;
&lt;br /&gt;
===bounty===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| plural&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| kol_internal_type&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| number&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| monster&lt;br /&gt;
| monster&lt;br /&gt;
| none&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| location&lt;br /&gt;
| location&lt;br /&gt;
| none&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===class===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| primestat&lt;br /&gt;
| stat&lt;br /&gt;
| Muscle&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===coinmaster===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| token&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| item&lt;br /&gt;
| item&lt;br /&gt;
| none&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| property&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| available_tokens&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| buys&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| sells&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===effect===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| default&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| note&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| all&lt;br /&gt;
| aggregate&lt;br /&gt;
boolean [string] =&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;/images/debug.gif&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| descid&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===element===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;circle.gif&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===familiar===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| hatchling&lt;br /&gt;
| item&lt;br /&gt;
| none&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;debug.gif&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| experience&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| charges&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| drop_name&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| drop_item&lt;br /&gt;
| item&lt;br /&gt;
| none&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| drops_today&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| drops_limit&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| combat&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| physical_damage&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| elemental_damage&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| block&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| delevel&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| hp_during_combat&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mp_during_combat&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| other_action_during_combat&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| hp_after_combat&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mp_after_combat&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| other_action_after_combat&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| passive&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| variable&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===item===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| plural&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| descid&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| smallimage&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelreq&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| quality&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| adventures&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| muscle&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mysticality&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| moxie&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| fullness&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| inebriety&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spleen&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| minhp&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| maxhp&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| minmp&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| maxmp&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| dailyusesleft&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| notes&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| quest&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| gift&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| tradeable&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| discardable&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| combat&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| combat_reusable&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| usable&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| reusable&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| multi&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| fancy&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| candy&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| seller&lt;br /&gt;
| coinmaster&lt;br /&gt;
| none&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| buyer&lt;br /&gt;
| coinmaster&lt;br /&gt;
| none&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| name_length&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===location===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| nocombats&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| combat_percent&lt;br /&gt;
| float&lt;br /&gt;
| 0.0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| zone&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| parent&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| parentdesc&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| environment&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| fire_level&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| bounty&lt;br /&gt;
| bounty&lt;br /&gt;
| none&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| combat_queue&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| noncombat_queue&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| turns_spent&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| kisses&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| recommended_stat&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| water_level&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| wanderers&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===monster===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| base_hp&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| {{f|monster_hp}} (includes modifiers)&lt;br /&gt;
|-&lt;br /&gt;
| base_attack&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| {{f|monster_attack}} (includes modifiers)&lt;br /&gt;
|-&lt;br /&gt;
| base_defense&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| {{f|monster_defense}} (includes modifiers)&lt;br /&gt;
|-&lt;br /&gt;
| raw_hp&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| (excludes modifiers)&lt;br /&gt;
|-&lt;br /&gt;
| raw_attack&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| (excludes modifiers)&lt;br /&gt;
|-&lt;br /&gt;
| raw_defense&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| (excludes modifiers)&lt;br /&gt;
|-&lt;br /&gt;
| base_initiative&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| {{f|monster_initiative}} (includes modifiers)&lt;br /&gt;
|-&lt;br /&gt;
| raw_initiative&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| (excludes modifiers)&lt;br /&gt;
|-&lt;br /&gt;
| element attack_element&lt;br /&gt;
| element&lt;br /&gt;
| none&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| element defense_element&lt;br /&gt;
| element&lt;br /&gt;
| none&lt;br /&gt;
| {{f|monster_element}}&lt;br /&gt;
|-&lt;br /&gt;
| physical_resistance&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| min_meat&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| (excludes modifiers)&lt;br /&gt;
|-&lt;br /&gt;
| max_meat&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| (excludes modifiers)&lt;br /&gt;
|-&lt;br /&gt;
| base_mainstat_exp&lt;br /&gt;
| float&lt;br /&gt;
| 0.0&lt;br /&gt;
| (includes bonus stats from +ML, but not from +stat effects)&lt;br /&gt;
|-&lt;br /&gt;
| phylum&lt;br /&gt;
| phylum&lt;br /&gt;
| none&lt;br /&gt;
| {{f|monster_phylum}}&lt;br /&gt;
|-&lt;br /&gt;
| poison&lt;br /&gt;
| effect&lt;br /&gt;
| none&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| boss&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| dummy&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| images&lt;br /&gt;
| aggregate boolean [string]&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| attributes&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
| A compilation of attack, defense, initiative, element, meat drop, and phylum&lt;br /&gt;
|-&lt;br /&gt;
| random_modifiers&lt;br /&gt;
| aggregate boolean [string]&lt;br /&gt;
|&lt;br /&gt;
| The monster&#039;s random modifiers - like those generated in the One Crazy Random Summer path&lt;br /&gt;
|-&lt;br /&gt;
| manuel_name&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===path===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| avatar&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
| Whether this path overrides the character&#039;s class&lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;blank.gif&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| points&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| The number of path points the current character has accumulated, if available&lt;br /&gt;
|-&lt;br /&gt;
| familiars&lt;br /&gt;
| boolean&lt;br /&gt;
| true&lt;br /&gt;
| Whether the path allows familiars&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===phylum===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| string&lt;br /&gt;
| none&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===servant===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| level&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| experience&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| level1_ability&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| level7_ability&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| level14_ability&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| level21_ability&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===skill===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| level&lt;br /&gt;
| int&lt;br /&gt;
| -1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| string&lt;br /&gt;
| none&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| traincost&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| class&lt;br /&gt;
| class&lt;br /&gt;
| none&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| libram&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| passive&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| buff&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| combat&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| song&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
| Avatar of Boris song&lt;br /&gt;
|-&lt;br /&gt;
| expression&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| summon&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| permable&lt;br /&gt;
| boolean&lt;br /&gt;
| true&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| dailylimit&lt;br /&gt;
| int&lt;br /&gt;
| -1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| timescast&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== slot ===&lt;br /&gt;
Slot does not have any fields.&lt;br /&gt;
&lt;br /&gt;
===stat===&lt;br /&gt;
Stat does not have any fields.&lt;br /&gt;
&lt;br /&gt;
===thrall===&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| level&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| tinyimage&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| skill&lt;br /&gt;
| skill&lt;br /&gt;
| none&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| current_modifiers&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Category:Deprecated_Functions&amp;diff=9169</id>
		<title>Category:Deprecated Functions</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Category:Deprecated_Functions&amp;diff=9169"/>
		<updated>2022-10-02T19:32:32Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Data_Types&amp;diff=9168</id>
		<title>Data Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Data_Types&amp;diff=9168"/>
		<updated>2022-10-02T19:31:48Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: /* path */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
==Primitive Datatypes==&lt;br /&gt;
&lt;br /&gt;
===void===&lt;br /&gt;
Can be thought of better as the absence of a datatype. No value can be assigned to &#039;&#039;&#039;void&#039;&#039;&#039; nor can a value be returned from a function of datatype &#039;&#039;&#039;void&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===boolean===&lt;br /&gt;
A boolean value is either &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;. By default, a boolean variable is set to false.&lt;br /&gt;
&lt;br /&gt;
===int===&lt;br /&gt;
&lt;br /&gt;
A whole number (short for &amp;quot;integer&amp;quot;), either positive or negative (or 0).  The int used by KoLmafia is a 32-bit signed int, meaning it has a maximum value of 2,147,483,647 and a minimum value of -2,147,483,648. The default value of a integer variable is 0.&lt;br /&gt;
&lt;br /&gt;
Be careful when doing math with integers! As with some other strongly-typed languages, numbers are converted to integers at every step of the operation when only integer types are used. For example:&lt;br /&gt;
{{&lt;br /&gt;
CodeSample|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
int a = 1;&lt;br /&gt;
int b = 2;&lt;br /&gt;
print( a / b * 2 );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
Will give the output &amp;quot;0,&amp;quot; not &amp;quot;1&amp;quot; as you may expect. Changing either variable to a float type will &amp;quot;correct&amp;quot; this.&lt;br /&gt;
&lt;br /&gt;
===float===&lt;br /&gt;
&lt;br /&gt;
The float data type is a single-precision 32-bit IEEE 754 floating point. Its range of values is beyond the scope of this discussion, but is specified in [http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.2.3 section 4.2.3 of the Java Language Specification], and a tool to help understand / quickly see how/where imprecisions happen can be found [https://www.h-schmidt.net/FloatConverter/IEEE754.html here].&lt;br /&gt;
&lt;br /&gt;
When assigning to a variable of type float, one should be careful to always enter numbers in decimal form, as unwanted behavior can result from supplying a value that KoLmafia may interpret as an int type without the decimal point.&lt;br /&gt;
&lt;br /&gt;
Note that float is not infinitely precise; it intrinsically rounds off after a certain point. This loss of accuracy is for the sake of storage, but beware of the possibility of small errors compounding from multiple float types.&lt;br /&gt;
{{&lt;br /&gt;
CodeSample|&lt;br /&gt;
description=For instance, try the following code as an example of how rather long post-decimal portions are handled:|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
float f;&lt;br /&gt;
f = 4.9999999;&lt;br /&gt;
print( f );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
The default value of a &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; variable is 0.0.&lt;br /&gt;
&lt;br /&gt;
===string===&lt;br /&gt;
&lt;br /&gt;
A group of characters including, but not limited to: lowercase letters, uppercase characters, numbers, and various control characters. When assigning a value to a string, enclose the desired value in either single quotes (&amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;), double quotes (&amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;) or backticks (&amp;lt;code&amp;gt;`&amp;lt;/code&amp;gt;) (note you must use the same quote type on both ends of the string assignment). If you need to include the same character inside of the string itself, you will need to escape it first with a backslash.&lt;br /&gt;
&lt;br /&gt;
{{&lt;br /&gt;
CodeSample&lt;br /&gt;
|description=For example:&lt;br /&gt;
|code=&amp;lt;syntaxhighlight&amp;gt;string s = &amp;quot;This is my \&amp;quot;friend\&amp;quot; Pete.&amp;quot;;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|moreinfo=Will result in the following being stored to s:&amp;lt;pre&amp;gt;This is my &amp;quot;friend&amp;quot; Pete&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The default value of a string is an empty string, or literally &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When using backticks, you can concatenate expressions into your string using curly braces.&lt;br /&gt;
&lt;br /&gt;
{{&lt;br /&gt;
CodeSample&lt;br /&gt;
|description=For example:&lt;br /&gt;
|code=&amp;lt;syntaxhighlight&amp;gt;string s = `Hello {my_name()}, you have {$item[lime].item_amount()} lime(s)!`;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===buffer===&lt;br /&gt;
&lt;br /&gt;
Similar to a string, but more efficient in certain operations, including concatenation and passing as function arguments. For the most part, you can interchange references to strings and buffers. However, you should test all such actions first, as a few functions require a specific datatype to be supplied as a parameter. (Most notably, those listed under [[String Handling Routines#Regular Expressions|Regular Expressions]].)&lt;br /&gt;
&lt;br /&gt;
==Special Datatypes==&lt;br /&gt;
&lt;br /&gt;
Several datatypes are included in KoLmafia to represent common categories within the KoL universe.&lt;br /&gt;
&lt;br /&gt;
Note that while variables of these types are declared in the same way as for Primitive Datatypes; assigning and referencing them is done differently.&lt;br /&gt;
{{CodeSample|&lt;br /&gt;
description=For example, to declare an item datatype and assign it a value, you would use the following line of code:|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
item it = $item[ broken skull ];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
The default values of any variable of one of the following types is &amp;lt;code&amp;gt;$&#039;&#039;type&#039;&#039;[ none ]&amp;lt;/code&amp;gt;. For example, the default value of a &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; variable is &amp;lt;code&amp;gt;$item[ none ]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===bounty===&lt;br /&gt;
&lt;br /&gt;
([[Bounty#Related Functions|Related Functions]])  ([[Bounty#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
These are the non-items that the bounty hunter asks you to retrieve from monsters around the kingdom. There are quite a lot of them (42 in total) so I won&#039;t list them all here. You can find more about bounties at the {{kolwiki|The Bounty Hunter Hunter&#039;s Shack}}.&lt;br /&gt;
&lt;br /&gt;
===class===&lt;br /&gt;
&lt;br /&gt;
([[Class#Related Functions|Related Functions]])  ([[Class#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Besides $class[ none ], there are six possible values for this datatype:&lt;br /&gt;
&lt;br /&gt;
* Seal Clubber&lt;br /&gt;
* Turtle Tamer&lt;br /&gt;
* Pastamancer&lt;br /&gt;
* Sauceror&lt;br /&gt;
* Disco Bandit&lt;br /&gt;
* Accordion Thief&lt;br /&gt;
&lt;br /&gt;
===coinmaster===&lt;br /&gt;
&lt;br /&gt;
([[Coinmaster#Related Functions|Related Functions]])  ([[Coinmaster#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
All shops that deal with currency other than meat. Known values include:&lt;br /&gt;
&lt;br /&gt;
* {{kolwiki|The Bounty Hunter Hunter&#039;s Shack|Bounty Hunter Hunter}}&lt;br /&gt;
* {{kolwiki|Mr. Store}}&lt;br /&gt;
* {{kolwiki|Hermit}}&lt;br /&gt;
* {{kolwiki|The Shore, Inc. Gift Shop}}&lt;br /&gt;
* {{kolwiki|The Trapper&#039;s Cabin|The Trapper}}&lt;br /&gt;
* {{kolwiki|A Vending Machine|Vending Machine}}&lt;br /&gt;
* {{kolwiki|The Swagger Shop}}&lt;br /&gt;
* {{kolwiki|The Hippy Camp (Wartime)|Dimemaster}}&lt;br /&gt;
* {{kolwiki|The Orcish Frat House|Quartersmaster}}&lt;br /&gt;
* {{kolwiki|BURT|Bugbear Token}}&lt;br /&gt;
* {{kolwiki|Freshwater Fishbonery}}&lt;br /&gt;
* {{kolwiki|Big Brother}}&lt;br /&gt;
* {{kolwiki|The Terrified Eagle Inn}}&lt;br /&gt;
* {{kolwiki|Ticket Redemption Counter|Arcade Ticket Counter}}&lt;br /&gt;
* {{kolwiki|Cashier|Game Shoppe}}&lt;br /&gt;
* {{kolwiki|Cashier|Game Shoppe Snacks}}&lt;br /&gt;
* {{kolwiki|The Isotope Smithery|Isotope Smithery}}&lt;br /&gt;
* {{kolwiki|Dollhawker&#039;s Emporium}}&lt;br /&gt;
* {{kolwiki|The Lunar Lunch-o-Mat|Lunar Lunch-o-Mat}}&lt;br /&gt;
* {{kolwiki|Paul&#039;s Boutique}}&lt;br /&gt;
* {{kolwiki|The Frozen Brogurt Stand}}&lt;br /&gt;
* {{kolwiki|Buff Jimmy&#039;s Souvenir Shop}}&lt;br /&gt;
* {{kolwiki|Taco Dan&#039;s Taco Stand}}&lt;br /&gt;
* {{kolwiki|You&#039;re the Fudge Wizard Now, Dog|Fudge Wand}}&lt;br /&gt;
* {{kolwiki|The Neandermall}}&lt;br /&gt;
* {{kolwiki|Legitimate Shoe Repair, Inc.}}&lt;br /&gt;
* {{kolwiki|warbear black box|Warbear Black Box}}&lt;br /&gt;
* {{kolwiki|The Dinsey Company Store}}&lt;br /&gt;
* {{kolwiki|Internet Meme Shop}}&lt;br /&gt;
&lt;br /&gt;
===effect===&lt;br /&gt;
&lt;br /&gt;
([[Effect#Related Functions|Related Functions]])  ([[Effect#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any effect you can be under in KoL, whether from items, skills, or what-have-you, is valid for this datatype.&lt;br /&gt;
&lt;br /&gt;
The full range, besides $effect[ none ], is too much to list and keep up with here: please see the Wiki {{kolwiki|Effects}} page for more information.&lt;br /&gt;
&lt;br /&gt;
===element===&lt;br /&gt;
&lt;br /&gt;
([[Element#Related Functions|Related Functions]])  ([[Element#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Besides $element[ none ], there are seven possible values for this datatype. (Note that &amp;quot;Bad Spelling&amp;quot; is not considered a true element.)&lt;br /&gt;
Also note that these names are case-sensitive (referencing $element[ Spooky ] will generate an error).&lt;br /&gt;
&lt;br /&gt;
* cold&lt;br /&gt;
* hot&lt;br /&gt;
* sleaze&lt;br /&gt;
* spooky&lt;br /&gt;
* stench&lt;br /&gt;
* slime&lt;br /&gt;
* supercold&lt;br /&gt;
&lt;br /&gt;
===familiar===&lt;br /&gt;
&lt;br /&gt;
([[Familiar#Related Functions|Related Functions]])  ([[Familiar#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any familiar available in KoL is valid for this datatype.&lt;br /&gt;
&lt;br /&gt;
The full range, besides $familiar[ none ], is too much to list and keep up with here: please see the Wiki {{kolwiki|Familiars}} page for more information.&lt;br /&gt;
&lt;br /&gt;
===item===&lt;br /&gt;
&lt;br /&gt;
([[Item#Related Functions|Related Functions]])  ([[Item#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any item in all of KoL is valid for this datatype. Note that unlike most special datatypes, item references can make use of the item ID number.&lt;br /&gt;
{{CodeSample|&lt;br /&gt;
description=For example, you could assign the item plexiglass pants as follows:|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
item it = $item[ 1234 ];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
The full range, besides $item[ none ], is too much to list and keep up with here: please see the Wiki {{kolwiki|Items}} page for more information.&lt;br /&gt;
&lt;br /&gt;
===location===&lt;br /&gt;
&lt;br /&gt;
([[Location#Related Functions|Related Functions]])  ([[Location#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any location one can adventure at in KoL is valid for this datatype.&lt;br /&gt;
&lt;br /&gt;
The full range, besides $location[ none ], is too much to list and keep up with here: please see the Wiki {{kolwiki|Locations}} page for more information.&lt;br /&gt;
&lt;br /&gt;
===monster===&lt;br /&gt;
&lt;br /&gt;
([[Monster#Related Functions|Related Functions]])  ([[Monster#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any monster you can encounter in KoL is valid for this datatype.&lt;br /&gt;
&lt;br /&gt;
The full range, besides $monster[ none ], is too much to list and keep up with here: please see the Wiki {{kolwiki|Monster Compendium}} page for more information.&lt;br /&gt;
&lt;br /&gt;
===path===&lt;br /&gt;
&lt;br /&gt;
([[Path#Related Functions|Related Functions]]) ([[Path#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any ascension path you can choose in Valhalla is valid for this datatype. This includes all {{kolwiki|special challenge paths}}, as well as Standard and the dietary restriction paths (Boozetafarian, Teetotaler, Oxygenarian). The &amp;quot;Unrestricted&amp;quot; path and aftercore are represented as $path[ none ].&lt;br /&gt;
&lt;br /&gt;
The full range, besides $path[ none ], is too much to list and keep up with here. See {{kolwiki|Ascension#Paths}} for more information.&lt;br /&gt;
&lt;br /&gt;
===phylum===&lt;br /&gt;
&lt;br /&gt;
([[Phylum#Related Functions|Related Functions]])  ([[Phylum#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Each monster has a {{kolwiki|Phylum}}. Besides $phylum[none], the possible values for this datatype are:&lt;br /&gt;
&lt;br /&gt;
* beast&lt;br /&gt;
* bug&lt;br /&gt;
* constellation&lt;br /&gt;
* construct&lt;br /&gt;
* demon&lt;br /&gt;
* dude&lt;br /&gt;
* elemental&lt;br /&gt;
* elf&lt;br /&gt;
* fish&lt;br /&gt;
* goblin&lt;br /&gt;
* hippy&lt;br /&gt;
* hobo&lt;br /&gt;
* humanoid&lt;br /&gt;
* horror&lt;br /&gt;
* mer-kin&lt;br /&gt;
* orc&lt;br /&gt;
* penguin&lt;br /&gt;
* pirate&lt;br /&gt;
* plant&lt;br /&gt;
* slime&lt;br /&gt;
* undead&lt;br /&gt;
* weird&lt;br /&gt;
&lt;br /&gt;
===servant===&lt;br /&gt;
&lt;br /&gt;
([[Servant#Related Functions|Related Functions]])  ([[Servant#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Servants are unique to the {{kolwiki|Actually Ed the Undying}} path and located {{kolwiki|The Servants&#039; Quarters}}, replacing familiars.&lt;br /&gt;
&lt;br /&gt;
* Assassin&lt;br /&gt;
* Belly-Dancer&lt;br /&gt;
* Bodyguard&lt;br /&gt;
* Cat&lt;br /&gt;
* Maid&lt;br /&gt;
* Priest&lt;br /&gt;
* Scribe&lt;br /&gt;
&lt;br /&gt;
===skill===&lt;br /&gt;
&lt;br /&gt;
([[Skill#Related Functions|Related Functions]])  ([[Skill#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any skill you can have in KoL, whether permable or not, granted by items, &#039;&#039;etc&#039;&#039;., is valid for this datatype.&lt;br /&gt;
&lt;br /&gt;
The full range, besides $skill[ none ], is too much to list and keep up with here: please see the Wiki {{kolwiki|Skills}} page for more information.&lt;br /&gt;
&lt;br /&gt;
===slot===&lt;br /&gt;
&lt;br /&gt;
([[Slot#Related Functions|Related Functions]])  (slot has no proxy record fields)&lt;br /&gt;
&lt;br /&gt;
Besides $slot[ none ], there are 16 possible values for this datatype.&lt;br /&gt;
&lt;br /&gt;
* hat&lt;br /&gt;
* back&lt;br /&gt;
* weapon&lt;br /&gt;
* off-hand&lt;br /&gt;
* shirt&lt;br /&gt;
* pants&lt;br /&gt;
* acc1&lt;br /&gt;
* acc2&lt;br /&gt;
* acc3&lt;br /&gt;
* familiar&lt;br /&gt;
* sticker1&lt;br /&gt;
* sticker2&lt;br /&gt;
* sticker3&lt;br /&gt;
* fakehand&lt;br /&gt;
* bootspur&lt;br /&gt;
* bootskin&lt;br /&gt;
&lt;br /&gt;
===stat===&lt;br /&gt;
&lt;br /&gt;
([[Stat#Related Functions|Related Functions]])  (stat has no proxy record fields)&lt;br /&gt;
&lt;br /&gt;
Besides $stat[ none ], there are six possible values for this datatype (the last three are for referencing sub-stats).&lt;br /&gt;
&lt;br /&gt;
* muscle&lt;br /&gt;
* mysticality&lt;br /&gt;
* moxie&lt;br /&gt;
* submuscle&lt;br /&gt;
* submysticality&lt;br /&gt;
* submoxie&lt;br /&gt;
&lt;br /&gt;
===thrall===&lt;br /&gt;
&lt;br /&gt;
([[Thrall#Related Functions|Related Functions]])  ([[Thrall#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Pastamancers have the ability to summon {{kolwiki|Pasta Thralls}}. &lt;br /&gt;
&lt;br /&gt;
* Angel Hair Wisp&lt;br /&gt;
* Elbow Macaroni&lt;br /&gt;
* Lasagmbie&lt;br /&gt;
* Penne Dreadful&lt;br /&gt;
* Spaghetti Elemental&lt;br /&gt;
* Spice Ghost&lt;br /&gt;
* Vampieroghi&lt;br /&gt;
* Vermincelli&lt;br /&gt;
&lt;br /&gt;
==aggregate==&lt;br /&gt;
&lt;br /&gt;
An aggregate is a complex datatype composed of two or more primitive or special datatypes. For more information, see [[Data Structures]].&lt;br /&gt;
&lt;br /&gt;
==record==&lt;br /&gt;
&lt;br /&gt;
Records are user-defined datatypes that hold as many sub-datatypes as desired. For more information, see the page for [[Data Structures]].&lt;br /&gt;
&lt;br /&gt;
==Plural Typed Constants==&lt;br /&gt;
&lt;br /&gt;
(see http://kolmafia.us/showthread.php?p=15592, from which this section is reproduced)&lt;br /&gt;
&lt;br /&gt;
Plural typed constants allow you to easily do something with a list of specified objects, without having to replicate code or laboriously build up an array of the objects so that you can iterate over it. Here&#039;s a quick example:&lt;br /&gt;
{{CodeSample|code=&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
foreach weapon in $items[star sword, star staff, star crossbow] {&lt;br /&gt;
   if (available_amount(weapon) &amp;gt; 0) {&lt;br /&gt;
      equip(weapon);&lt;br /&gt;
      break;&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
The syntax is basically the same as the existing typed constant feature, but with an &amp;quot;s&amp;quot; or &amp;quot;es&amp;quot; after the type name. (The &amp;quot;es&amp;quot; case is there so that you can properly pluralize &amp;quot;class&amp;quot;.) The text between the square brackets is interpreted as a comma-separated list of elements, each of which is converted to the specified type as if it were an individual constant. More details:&lt;br /&gt;
* The list can span multiple lines.&lt;br /&gt;
* Whitespace before or after elements is ignored.&lt;br /&gt;
* Completely empty elements are ignored (so that you can leave a comma at the end of the list).&lt;br /&gt;
* You can include a comma or closing square bracket in an element by writing it as &amp;quot;\,&amp;quot; or &amp;quot;\]&amp;quot;.&lt;br /&gt;
* All the other escape sequences allowed in strings are possible, such as &amp;quot;\n&amp;quot; (newline), &amp;quot;\t&amp;quot; (tab), and &amp;quot;\uXXXX&amp;quot; (Unicode character value). To put an actual backslash in an element, you have to write it as &amp;quot;\\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The value generated by a plural constant is of type boolean[type], with the keys being the specified elements, and the boolean value always being true - although you won&#039;t normally do anything with the boolean, you&#039;d use a foreach loop to iterate over the keys. You can assign a plural constant to a variable declared as that type, but note that the value differs from a normal map in three important respects:&lt;br /&gt;
* Since the expression that generates it is syntactically a constant, the value has to be immutable. If you were allowed to change it in any way, those changes would appear in every future use of the same constant.&lt;br /&gt;
* There can be multiple instances of the same key - $ints[1,1,2,3,5,8] is perfectly valid, and will result in the value 1 appearing twice in a foreach loop.&lt;br /&gt;
* The keys will appear in the order you wrote them, rather than being sorted alphanumerically as maps usually do.&lt;br /&gt;
&lt;br /&gt;
In addition to being used in a foreach loop, plural constants also efficiently support membership testing via the &#039;contains&#039; operator. Here&#039;s another example:&lt;br /&gt;
{{CodeSample|code=&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
for hour from 1 to 12 {&lt;br /&gt;
   print(&amp;quot;It&#039;s &amp;quot; + hour + &amp;quot; o&#039;clock.&amp;quot;);&lt;br /&gt;
   if ($ints[10, 2, 4] contains hour) {&lt;br /&gt;
      print(&amp;quot;Time to drink a Dr Pepper!&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
(Yes, that example could just as easily have been done with a switch statement.)&lt;br /&gt;
&lt;br /&gt;
Iterating over an empty list is rather pointless, so plural constants with no elements are given a different meaning: they represent every value of the specified type, where this is practical. (The &#039;none&#039; value, if defined for a given type, is omitted.) The biggest benefit here is $items[], which lets you loop over every defined item, more efficiently than you could otherwise write in a script (since the list is generated once per session and then cached), and without having to hard-code a maximum item ID number in your script. Example:&lt;br /&gt;
{{CodeSample|code=&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
foreach it in $items[] {&lt;br /&gt;
   if (autosell_price(it) == 42) print(it);&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
Enumeration of all possible values works with the following types:&lt;br /&gt;
* $booleans[] - false and true.&lt;br /&gt;
* $items[]&lt;br /&gt;
* $locations[]&lt;br /&gt;
* $classes[]&lt;br /&gt;
* $stats[] - Muscle, Mysticality, Moxie: the substat values are omitted.&lt;br /&gt;
* $skills[]&lt;br /&gt;
* $effects[]&lt;br /&gt;
* $familiars[]&lt;br /&gt;
* $slots[] - includes sticker slots and fake hands, which you might not want to consider as normal slots.&lt;br /&gt;
* $monsters[]&lt;br /&gt;
* $elements[] - includes slime now, and possibly other not-quite-elements like cute in the future.&lt;br /&gt;
&lt;br /&gt;
The remaining types that can be used in plural constants require an explicit list of elements, since there are too many possible values:&lt;br /&gt;
* $ints[] - you don&#039;t have enough RAM to store a list with 4 billion elements.&lt;br /&gt;
* $floats[] - ditto.&lt;br /&gt;
* $strings[] - nobody has that much RAM.&lt;br /&gt;
&lt;br /&gt;
==Custom==&lt;br /&gt;
&lt;br /&gt;
===matcher===&lt;br /&gt;
&lt;br /&gt;
A matcher isn&#039;t really a datatype so much as it&#039;s a class, but it is included here for reference, as it is used much as datatypes are in ASH. It can only be declared through the function {{f|create_matcher}}, using two strings. One is the string to find matches in, the other a regular expression to test against. For more information on using a matcher, see [[Regular Expressions]].&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
Buffers, aggregates, records and matchers are [https://developer.mozilla.org/en-US/docs/Glossary/Mutable mutable]. All other datatypes are immutable.&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Data_Types&amp;diff=9167</id>
		<title>Data Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Data_Types&amp;diff=9167"/>
		<updated>2022-10-02T19:28:41Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
==Primitive Datatypes==&lt;br /&gt;
&lt;br /&gt;
===void===&lt;br /&gt;
Can be thought of better as the absence of a datatype. No value can be assigned to &#039;&#039;&#039;void&#039;&#039;&#039; nor can a value be returned from a function of datatype &#039;&#039;&#039;void&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===boolean===&lt;br /&gt;
A boolean value is either &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;. By default, a boolean variable is set to false.&lt;br /&gt;
&lt;br /&gt;
===int===&lt;br /&gt;
&lt;br /&gt;
A whole number (short for &amp;quot;integer&amp;quot;), either positive or negative (or 0).  The int used by KoLmafia is a 32-bit signed int, meaning it has a maximum value of 2,147,483,647 and a minimum value of -2,147,483,648. The default value of a integer variable is 0.&lt;br /&gt;
&lt;br /&gt;
Be careful when doing math with integers! As with some other strongly-typed languages, numbers are converted to integers at every step of the operation when only integer types are used. For example:&lt;br /&gt;
{{&lt;br /&gt;
CodeSample|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
int a = 1;&lt;br /&gt;
int b = 2;&lt;br /&gt;
print( a / b * 2 );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
Will give the output &amp;quot;0,&amp;quot; not &amp;quot;1&amp;quot; as you may expect. Changing either variable to a float type will &amp;quot;correct&amp;quot; this.&lt;br /&gt;
&lt;br /&gt;
===float===&lt;br /&gt;
&lt;br /&gt;
The float data type is a single-precision 32-bit IEEE 754 floating point. Its range of values is beyond the scope of this discussion, but is specified in [http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.2.3 section 4.2.3 of the Java Language Specification], and a tool to help understand / quickly see how/where imprecisions happen can be found [https://www.h-schmidt.net/FloatConverter/IEEE754.html here].&lt;br /&gt;
&lt;br /&gt;
When assigning to a variable of type float, one should be careful to always enter numbers in decimal form, as unwanted behavior can result from supplying a value that KoLmafia may interpret as an int type without the decimal point.&lt;br /&gt;
&lt;br /&gt;
Note that float is not infinitely precise; it intrinsically rounds off after a certain point. This loss of accuracy is for the sake of storage, but beware of the possibility of small errors compounding from multiple float types.&lt;br /&gt;
{{&lt;br /&gt;
CodeSample|&lt;br /&gt;
description=For instance, try the following code as an example of how rather long post-decimal portions are handled:|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
float f;&lt;br /&gt;
f = 4.9999999;&lt;br /&gt;
print( f );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
The default value of a &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; variable is 0.0.&lt;br /&gt;
&lt;br /&gt;
===string===&lt;br /&gt;
&lt;br /&gt;
A group of characters including, but not limited to: lowercase letters, uppercase characters, numbers, and various control characters. When assigning a value to a string, enclose the desired value in either single quotes (&amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;), double quotes (&amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;) or backticks (&amp;lt;code&amp;gt;`&amp;lt;/code&amp;gt;) (note you must use the same quote type on both ends of the string assignment). If you need to include the same character inside of the string itself, you will need to escape it first with a backslash.&lt;br /&gt;
&lt;br /&gt;
{{&lt;br /&gt;
CodeSample&lt;br /&gt;
|description=For example:&lt;br /&gt;
|code=&amp;lt;syntaxhighlight&amp;gt;string s = &amp;quot;This is my \&amp;quot;friend\&amp;quot; Pete.&amp;quot;;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|moreinfo=Will result in the following being stored to s:&amp;lt;pre&amp;gt;This is my &amp;quot;friend&amp;quot; Pete&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The default value of a string is an empty string, or literally &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When using backticks, you can concatenate expressions into your string using curly braces.&lt;br /&gt;
&lt;br /&gt;
{{&lt;br /&gt;
CodeSample&lt;br /&gt;
|description=For example:&lt;br /&gt;
|code=&amp;lt;syntaxhighlight&amp;gt;string s = `Hello {my_name()}, you have {$item[lime].item_amount()} lime(s)!`;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===buffer===&lt;br /&gt;
&lt;br /&gt;
Similar to a string, but more efficient in certain operations, including concatenation and passing as function arguments. For the most part, you can interchange references to strings and buffers. However, you should test all such actions first, as a few functions require a specific datatype to be supplied as a parameter. (Most notably, those listed under [[String Handling Routines#Regular Expressions|Regular Expressions]].)&lt;br /&gt;
&lt;br /&gt;
==Special Datatypes==&lt;br /&gt;
&lt;br /&gt;
Several datatypes are included in KoLmafia to represent common categories within the KoL universe.&lt;br /&gt;
&lt;br /&gt;
Note that while variables of these types are declared in the same way as for Primitive Datatypes; assigning and referencing them is done differently.&lt;br /&gt;
{{CodeSample|&lt;br /&gt;
description=For example, to declare an item datatype and assign it a value, you would use the following line of code:|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
item it = $item[ broken skull ];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
The default values of any variable of one of the following types is &amp;lt;code&amp;gt;$&#039;&#039;type&#039;&#039;[ none ]&amp;lt;/code&amp;gt;. For example, the default value of a &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; variable is &amp;lt;code&amp;gt;$item[ none ]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===bounty===&lt;br /&gt;
&lt;br /&gt;
([[Bounty#Related Functions|Related Functions]])  ([[Bounty#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
These are the non-items that the bounty hunter asks you to retrieve from monsters around the kingdom. There are quite a lot of them (42 in total) so I won&#039;t list them all here. You can find more about bounties at the {{kolwiki|The Bounty Hunter Hunter&#039;s Shack}}.&lt;br /&gt;
&lt;br /&gt;
===class===&lt;br /&gt;
&lt;br /&gt;
([[Class#Related Functions|Related Functions]])  ([[Class#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Besides $class[ none ], there are six possible values for this datatype:&lt;br /&gt;
&lt;br /&gt;
* Seal Clubber&lt;br /&gt;
* Turtle Tamer&lt;br /&gt;
* Pastamancer&lt;br /&gt;
* Sauceror&lt;br /&gt;
* Disco Bandit&lt;br /&gt;
* Accordion Thief&lt;br /&gt;
&lt;br /&gt;
===coinmaster===&lt;br /&gt;
&lt;br /&gt;
([[Coinmaster#Related Functions|Related Functions]])  ([[Coinmaster#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
All shops that deal with currency other than meat. Known values include:&lt;br /&gt;
&lt;br /&gt;
* {{kolwiki|The Bounty Hunter Hunter&#039;s Shack|Bounty Hunter Hunter}}&lt;br /&gt;
* {{kolwiki|Mr. Store}}&lt;br /&gt;
* {{kolwiki|Hermit}}&lt;br /&gt;
* {{kolwiki|The Shore, Inc. Gift Shop}}&lt;br /&gt;
* {{kolwiki|The Trapper&#039;s Cabin|The Trapper}}&lt;br /&gt;
* {{kolwiki|A Vending Machine|Vending Machine}}&lt;br /&gt;
* {{kolwiki|The Swagger Shop}}&lt;br /&gt;
* {{kolwiki|The Hippy Camp (Wartime)|Dimemaster}}&lt;br /&gt;
* {{kolwiki|The Orcish Frat House|Quartersmaster}}&lt;br /&gt;
* {{kolwiki|BURT|Bugbear Token}}&lt;br /&gt;
* {{kolwiki|Freshwater Fishbonery}}&lt;br /&gt;
* {{kolwiki|Big Brother}}&lt;br /&gt;
* {{kolwiki|The Terrified Eagle Inn}}&lt;br /&gt;
* {{kolwiki|Ticket Redemption Counter|Arcade Ticket Counter}}&lt;br /&gt;
* {{kolwiki|Cashier|Game Shoppe}}&lt;br /&gt;
* {{kolwiki|Cashier|Game Shoppe Snacks}}&lt;br /&gt;
* {{kolwiki|The Isotope Smithery|Isotope Smithery}}&lt;br /&gt;
* {{kolwiki|Dollhawker&#039;s Emporium}}&lt;br /&gt;
* {{kolwiki|The Lunar Lunch-o-Mat|Lunar Lunch-o-Mat}}&lt;br /&gt;
* {{kolwiki|Paul&#039;s Boutique}}&lt;br /&gt;
* {{kolwiki|The Frozen Brogurt Stand}}&lt;br /&gt;
* {{kolwiki|Buff Jimmy&#039;s Souvenir Shop}}&lt;br /&gt;
* {{kolwiki|Taco Dan&#039;s Taco Stand}}&lt;br /&gt;
* {{kolwiki|You&#039;re the Fudge Wizard Now, Dog|Fudge Wand}}&lt;br /&gt;
* {{kolwiki|The Neandermall}}&lt;br /&gt;
* {{kolwiki|Legitimate Shoe Repair, Inc.}}&lt;br /&gt;
* {{kolwiki|warbear black box|Warbear Black Box}}&lt;br /&gt;
* {{kolwiki|The Dinsey Company Store}}&lt;br /&gt;
* {{kolwiki|Internet Meme Shop}}&lt;br /&gt;
&lt;br /&gt;
===effect===&lt;br /&gt;
&lt;br /&gt;
([[Effect#Related Functions|Related Functions]])  ([[Effect#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any effect you can be under in KoL, whether from items, skills, or what-have-you, is valid for this datatype.&lt;br /&gt;
&lt;br /&gt;
The full range, besides $effect[ none ], is too much to list and keep up with here: please see the Wiki {{kolwiki|Effects}} page for more information.&lt;br /&gt;
&lt;br /&gt;
===element===&lt;br /&gt;
&lt;br /&gt;
([[Element#Related Functions|Related Functions]])  ([[Element#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Besides $element[ none ], there are seven possible values for this datatype. (Note that &amp;quot;Bad Spelling&amp;quot; is not considered a true element.)&lt;br /&gt;
Also note that these names are case-sensitive (referencing $element[ Spooky ] will generate an error).&lt;br /&gt;
&lt;br /&gt;
* cold&lt;br /&gt;
* hot&lt;br /&gt;
* sleaze&lt;br /&gt;
* spooky&lt;br /&gt;
* stench&lt;br /&gt;
* slime&lt;br /&gt;
* supercold&lt;br /&gt;
&lt;br /&gt;
===familiar===&lt;br /&gt;
&lt;br /&gt;
([[Familiar#Related Functions|Related Functions]])  ([[Familiar#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any familiar available in KoL is valid for this datatype.&lt;br /&gt;
&lt;br /&gt;
The full range, besides $familiar[ none ], is too much to list and keep up with here: please see the Wiki {{kolwiki|Familiars}} page for more information.&lt;br /&gt;
&lt;br /&gt;
===item===&lt;br /&gt;
&lt;br /&gt;
([[Item#Related Functions|Related Functions]])  ([[Item#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any item in all of KoL is valid for this datatype. Note that unlike most special datatypes, item references can make use of the item ID number.&lt;br /&gt;
{{CodeSample|&lt;br /&gt;
description=For example, you could assign the item plexiglass pants as follows:|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
item it = $item[ 1234 ];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
The full range, besides $item[ none ], is too much to list and keep up with here: please see the Wiki {{kolwiki|Items}} page for more information.&lt;br /&gt;
&lt;br /&gt;
===location===&lt;br /&gt;
&lt;br /&gt;
([[Location#Related Functions|Related Functions]])  ([[Location#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any location one can adventure at in KoL is valid for this datatype.&lt;br /&gt;
&lt;br /&gt;
The full range, besides $location[ none ], is too much to list and keep up with here: please see the Wiki {{kolwiki|Locations}} page for more information.&lt;br /&gt;
&lt;br /&gt;
===monster===&lt;br /&gt;
&lt;br /&gt;
([[Monster#Related Functions|Related Functions]])  ([[Monster#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any monster you can encounter in KoL is valid for this datatype.&lt;br /&gt;
&lt;br /&gt;
The full range, besides $monster[ none ], is too much to list and keep up with here: please see the Wiki {{kolwiki|Monster Compendium}} page for more information.&lt;br /&gt;
&lt;br /&gt;
===path===&lt;br /&gt;
&lt;br /&gt;
([[Path#Related Functions|Related Functions]]) ([[Path#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any ascension path you can choose in Valhalla is valid for this datatype. This includes all {{kolwiki|special challenge paths}}, as well as Standard and the dietary restriction paths (Boozetafarian, Teetotaler, Oxygenarian). The &amp;quot;Unrestricted&amp;quot; path and aftercore are represented as $path[ none ].&lt;br /&gt;
&lt;br /&gt;
===phylum===&lt;br /&gt;
&lt;br /&gt;
([[Phylum#Related Functions|Related Functions]])  ([[Phylum#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Each monster has a {{kolwiki|Phylum}}. Besides $phylum[none], the possible values for this datatype are:&lt;br /&gt;
&lt;br /&gt;
* beast&lt;br /&gt;
* bug&lt;br /&gt;
* constellation&lt;br /&gt;
* construct&lt;br /&gt;
* demon&lt;br /&gt;
* dude&lt;br /&gt;
* elemental&lt;br /&gt;
* elf&lt;br /&gt;
* fish&lt;br /&gt;
* goblin&lt;br /&gt;
* hippy&lt;br /&gt;
* hobo&lt;br /&gt;
* humanoid&lt;br /&gt;
* horror&lt;br /&gt;
* mer-kin&lt;br /&gt;
* orc&lt;br /&gt;
* penguin&lt;br /&gt;
* pirate&lt;br /&gt;
* plant&lt;br /&gt;
* slime&lt;br /&gt;
* undead&lt;br /&gt;
* weird&lt;br /&gt;
&lt;br /&gt;
===servant===&lt;br /&gt;
&lt;br /&gt;
([[Servant#Related Functions|Related Functions]])  ([[Servant#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Servants are unique to the {{kolwiki|Actually Ed the Undying}} path and located {{kolwiki|The Servants&#039; Quarters}}, replacing familiars.&lt;br /&gt;
&lt;br /&gt;
* Assassin&lt;br /&gt;
* Belly-Dancer&lt;br /&gt;
* Bodyguard&lt;br /&gt;
* Cat&lt;br /&gt;
* Maid&lt;br /&gt;
* Priest&lt;br /&gt;
* Scribe&lt;br /&gt;
&lt;br /&gt;
===skill===&lt;br /&gt;
&lt;br /&gt;
([[Skill#Related Functions|Related Functions]])  ([[Skill#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Any skill you can have in KoL, whether permable or not, granted by items, &#039;&#039;etc&#039;&#039;., is valid for this datatype.&lt;br /&gt;
&lt;br /&gt;
The full range, besides $skill[ none ], is too much to list and keep up with here: please see the Wiki {{kolwiki|Skills}} page for more information.&lt;br /&gt;
&lt;br /&gt;
===slot===&lt;br /&gt;
&lt;br /&gt;
([[Slot#Related Functions|Related Functions]])  (slot has no proxy record fields)&lt;br /&gt;
&lt;br /&gt;
Besides $slot[ none ], there are 16 possible values for this datatype.&lt;br /&gt;
&lt;br /&gt;
* hat&lt;br /&gt;
* back&lt;br /&gt;
* weapon&lt;br /&gt;
* off-hand&lt;br /&gt;
* shirt&lt;br /&gt;
* pants&lt;br /&gt;
* acc1&lt;br /&gt;
* acc2&lt;br /&gt;
* acc3&lt;br /&gt;
* familiar&lt;br /&gt;
* sticker1&lt;br /&gt;
* sticker2&lt;br /&gt;
* sticker3&lt;br /&gt;
* fakehand&lt;br /&gt;
* bootspur&lt;br /&gt;
* bootskin&lt;br /&gt;
&lt;br /&gt;
===stat===&lt;br /&gt;
&lt;br /&gt;
([[Stat#Related Functions|Related Functions]])  (stat has no proxy record fields)&lt;br /&gt;
&lt;br /&gt;
Besides $stat[ none ], there are six possible values for this datatype (the last three are for referencing sub-stats).&lt;br /&gt;
&lt;br /&gt;
* muscle&lt;br /&gt;
* mysticality&lt;br /&gt;
* moxie&lt;br /&gt;
* submuscle&lt;br /&gt;
* submysticality&lt;br /&gt;
* submoxie&lt;br /&gt;
&lt;br /&gt;
===thrall===&lt;br /&gt;
&lt;br /&gt;
([[Thrall#Related Functions|Related Functions]])  ([[Thrall#Proxy Record Fields|Proxy Record Fields]])&lt;br /&gt;
&lt;br /&gt;
Pastamancers have the ability to summon {{kolwiki|Pasta Thralls}}. &lt;br /&gt;
&lt;br /&gt;
* Angel Hair Wisp&lt;br /&gt;
* Elbow Macaroni&lt;br /&gt;
* Lasagmbie&lt;br /&gt;
* Penne Dreadful&lt;br /&gt;
* Spaghetti Elemental&lt;br /&gt;
* Spice Ghost&lt;br /&gt;
* Vampieroghi&lt;br /&gt;
* Vermincelli&lt;br /&gt;
&lt;br /&gt;
==aggregate==&lt;br /&gt;
&lt;br /&gt;
An aggregate is a complex datatype composed of two or more primitive or special datatypes. For more information, see [[Data Structures]].&lt;br /&gt;
&lt;br /&gt;
==record==&lt;br /&gt;
&lt;br /&gt;
Records are user-defined datatypes that hold as many sub-datatypes as desired. For more information, see the page for [[Data Structures]].&lt;br /&gt;
&lt;br /&gt;
==Plural Typed Constants==&lt;br /&gt;
&lt;br /&gt;
(see http://kolmafia.us/showthread.php?p=15592, from which this section is reproduced)&lt;br /&gt;
&lt;br /&gt;
Plural typed constants allow you to easily do something with a list of specified objects, without having to replicate code or laboriously build up an array of the objects so that you can iterate over it. Here&#039;s a quick example:&lt;br /&gt;
{{CodeSample|code=&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
foreach weapon in $items[star sword, star staff, star crossbow] {&lt;br /&gt;
   if (available_amount(weapon) &amp;gt; 0) {&lt;br /&gt;
      equip(weapon);&lt;br /&gt;
      break;&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
The syntax is basically the same as the existing typed constant feature, but with an &amp;quot;s&amp;quot; or &amp;quot;es&amp;quot; after the type name. (The &amp;quot;es&amp;quot; case is there so that you can properly pluralize &amp;quot;class&amp;quot;.) The text between the square brackets is interpreted as a comma-separated list of elements, each of which is converted to the specified type as if it were an individual constant. More details:&lt;br /&gt;
* The list can span multiple lines.&lt;br /&gt;
* Whitespace before or after elements is ignored.&lt;br /&gt;
* Completely empty elements are ignored (so that you can leave a comma at the end of the list).&lt;br /&gt;
* You can include a comma or closing square bracket in an element by writing it as &amp;quot;\,&amp;quot; or &amp;quot;\]&amp;quot;.&lt;br /&gt;
* All the other escape sequences allowed in strings are possible, such as &amp;quot;\n&amp;quot; (newline), &amp;quot;\t&amp;quot; (tab), and &amp;quot;\uXXXX&amp;quot; (Unicode character value). To put an actual backslash in an element, you have to write it as &amp;quot;\\&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The value generated by a plural constant is of type boolean[type], with the keys being the specified elements, and the boolean value always being true - although you won&#039;t normally do anything with the boolean, you&#039;d use a foreach loop to iterate over the keys. You can assign a plural constant to a variable declared as that type, but note that the value differs from a normal map in three important respects:&lt;br /&gt;
* Since the expression that generates it is syntactically a constant, the value has to be immutable. If you were allowed to change it in any way, those changes would appear in every future use of the same constant.&lt;br /&gt;
* There can be multiple instances of the same key - $ints[1,1,2,3,5,8] is perfectly valid, and will result in the value 1 appearing twice in a foreach loop.&lt;br /&gt;
* The keys will appear in the order you wrote them, rather than being sorted alphanumerically as maps usually do.&lt;br /&gt;
&lt;br /&gt;
In addition to being used in a foreach loop, plural constants also efficiently support membership testing via the &#039;contains&#039; operator. Here&#039;s another example:&lt;br /&gt;
{{CodeSample|code=&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
for hour from 1 to 12 {&lt;br /&gt;
   print(&amp;quot;It&#039;s &amp;quot; + hour + &amp;quot; o&#039;clock.&amp;quot;);&lt;br /&gt;
   if ($ints[10, 2, 4] contains hour) {&lt;br /&gt;
      print(&amp;quot;Time to drink a Dr Pepper!&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
(Yes, that example could just as easily have been done with a switch statement.)&lt;br /&gt;
&lt;br /&gt;
Iterating over an empty list is rather pointless, so plural constants with no elements are given a different meaning: they represent every value of the specified type, where this is practical. (The &#039;none&#039; value, if defined for a given type, is omitted.) The biggest benefit here is $items[], which lets you loop over every defined item, more efficiently than you could otherwise write in a script (since the list is generated once per session and then cached), and without having to hard-code a maximum item ID number in your script. Example:&lt;br /&gt;
{{CodeSample|code=&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
foreach it in $items[] {&lt;br /&gt;
   if (autosell_price(it) == 42) print(it);&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
Enumeration of all possible values works with the following types:&lt;br /&gt;
* $booleans[] - false and true.&lt;br /&gt;
* $items[]&lt;br /&gt;
* $locations[]&lt;br /&gt;
* $classes[]&lt;br /&gt;
* $stats[] - Muscle, Mysticality, Moxie: the substat values are omitted.&lt;br /&gt;
* $skills[]&lt;br /&gt;
* $effects[]&lt;br /&gt;
* $familiars[]&lt;br /&gt;
* $slots[] - includes sticker slots and fake hands, which you might not want to consider as normal slots.&lt;br /&gt;
* $monsters[]&lt;br /&gt;
* $elements[] - includes slime now, and possibly other not-quite-elements like cute in the future.&lt;br /&gt;
&lt;br /&gt;
The remaining types that can be used in plural constants require an explicit list of elements, since there are too many possible values:&lt;br /&gt;
* $ints[] - you don&#039;t have enough RAM to store a list with 4 billion elements.&lt;br /&gt;
* $floats[] - ditto.&lt;br /&gt;
* $strings[] - nobody has that much RAM.&lt;br /&gt;
&lt;br /&gt;
==Custom==&lt;br /&gt;
&lt;br /&gt;
===matcher===&lt;br /&gt;
&lt;br /&gt;
A matcher isn&#039;t really a datatype so much as it&#039;s a class, but it is included here for reference, as it is used much as datatypes are in ASH. It can only be declared through the function {{f|create_matcher}}, using two strings. One is the string to find matches in, the other a regular expression to test against. For more information on using a matcher, see [[Regular Expressions]].&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
Buffers, aggregates, records and matchers are [https://developer.mozilla.org/en-US/docs/Glossary/Mutable mutable]. All other datatypes are immutable.&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Template:Deprecated&amp;diff=9166</id>
		<title>Template:Deprecated</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Template:Deprecated&amp;diff=9166"/>
		<updated>2022-10-02T19:23:49Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: solid 1px red; margin: 0.2em; padding: 1em; background-color: #fff8dc; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;This function is deprecated{{#if: {{mafiaref|}}|&amp;amp;nbsp;in KoLmafia {{{mafiaref}}}}}.&#039;&#039;&#039;&lt;br /&gt;
{{#if: {{more_info|}}|&amp;lt;p&amp;gt;{{{more_info}}}&amp;lt;/p&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Deprecated Functions]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template can be used on a function page (outside of the FunctionPage template) to indicate that the function&lt;br /&gt;
is deprecated. The &amp;lt;code&amp;gt;mafiaref&amp;lt;/code&amp;gt; parameter can be used to indicate which KoLmafia version the function&lt;br /&gt;
was deprecated in. The &amp;lt;code&amp;gt;more_info&amp;lt;/code&amp;gt; parameter can be used to provide more details, such as an alternative&lt;br /&gt;
function that can be used instead.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Deprecated|&lt;br /&gt;
mafiaref=31337|&lt;br /&gt;
more_info=Use this other function instead.}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This renders as:&lt;br /&gt;
&lt;br /&gt;
{{Deprecated|&lt;br /&gt;
mafiaref=31337|&lt;br /&gt;
more_info=Use this other function instead.}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Path_name_to_id&amp;diff=9165</id>
		<title>Path name to id</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Path_name_to_id&amp;diff=9165"/>
		<updated>2022-10-02T19:23:01Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{deprecated|mafiaref=r26713|more_info=Use &amp;lt;code&amp;gt;[[to_path]](name).id&amp;lt;/code&amp;gt; instead.}}&lt;br /&gt;
{{&lt;br /&gt;
#vardefine:name|path_name_to_id}}{{&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|name}}|&lt;br /&gt;
p1desc={{Pspan|name}} is the full, exact, case-sensitive name of the path to convert.|&lt;br /&gt;
}}|&lt;br /&gt;
&lt;br /&gt;
function_description=Returns the specified path {{pspan|name}} as its {{kolwiki|Paths_by_number|path number}}.|&lt;br /&gt;
&lt;br /&gt;
code1={{CodeSample|&lt;br /&gt;
title=Code Samples|&lt;br /&gt;
description=Following example shows basic path_name_to_id operations.||&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
string first = &amp;quot;Bees Hate You&amp;quot;;&lt;br /&gt;
string second = &amp;quot;G-Lover&amp;quot;;&lt;br /&gt;
string third = &amp;quot;Live. Ascend. Repeat.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
print(first+&amp;quot; gives &amp;quot;+path_name_to_id(first)+&amp;quot;.&amp;quot;);&lt;br /&gt;
print(second+&amp;quot; gives &amp;quot;+path_name_to_id(second)+&amp;quot;.&amp;quot;);&lt;br /&gt;
print(third+&amp;quot; gives &amp;quot;+path_name_to_id(third)+&amp;quot;.&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;|&lt;br /&gt;
moreinfo=&lt;br /&gt;
Gives the following output.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bees Hate You gives 4.&lt;br /&gt;
G-Lover gives 33.&lt;br /&gt;
Live. Ascend. Repeat. gives 31.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}|&lt;br /&gt;
&lt;br /&gt;
see_also={{SeeAlso|my_path|my_path_id|path_id_to_name}}|&lt;br /&gt;
special=Returns -1 if given an incorrect/unknown name. Also, &amp;quot;Unrestricted&amp;quot; and &amp;quot;Aftercore&amp;quot; are not valid inputs for 0. &amp;quot;None&amp;quot; is instead expected.|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Datatype Conversions]]&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Path_id_to_name&amp;diff=9164</id>
		<title>Path id to name</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Path_id_to_name&amp;diff=9164"/>
		<updated>2022-10-02T19:22:10Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{deprecated|mafiaref=r26713|more_info=Use &amp;lt;code&amp;gt;[[to_path]](id).name&amp;lt;/code&amp;gt; instead.}}&lt;br /&gt;
{{&lt;br /&gt;
#vardefine:name|path_id_to_name}}{{&lt;br /&gt;
#vardefine:return_type|string}}{{&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|int|id}}|&lt;br /&gt;
p1desc={{Pspan|id}} is the {{kolwiki|Paths_by_number|ID of the path}} to convert|&lt;br /&gt;
}}|&lt;br /&gt;
&lt;br /&gt;
function_description=Returns the name of the specified path {{pspan|id}}.|&lt;br /&gt;
&lt;br /&gt;
code1={{CodeSample|&lt;br /&gt;
title=Code Samples|&lt;br /&gt;
description=Following example shows basic path_id_to_name operations.||&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
int first = 3;&lt;br /&gt;
int second = 7;&lt;br /&gt;
int third = 24;&lt;br /&gt;
&lt;br /&gt;
print(first+&amp;quot; gives &amp;quot;+path_id_to_name(first)+&amp;quot;.&amp;quot;);&lt;br /&gt;
print(second+&amp;quot; gives &amp;quot;+path_id_to_name(second)+&amp;quot;.&amp;quot;);&lt;br /&gt;
print(third+&amp;quot; gives &amp;quot;+path_id_to_name(third)+&amp;quot;.&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;|&lt;br /&gt;
moreinfo=&lt;br /&gt;
Gives the following output.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
3 gives Oxygenarian.&lt;br /&gt;
7 gives Trendy.&lt;br /&gt;
24 gives One Crazy Random Summer.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}|&lt;br /&gt;
&lt;br /&gt;
see_also={{SeeAlso|my_path|my_path_id|path_name_to_id}}|&lt;br /&gt;
special=Returns &amp;quot;None&amp;quot; when submitting an ID which doesn&#039;t have a known path tied to, such as 5 (never released), or 60 (not yet known). Also, the 3 first unknown paths return &amp;quot;Path {{Pspan|id}}&amp;quot;, for internal reasons (as of writing this, for example, 40, 41 and 42 return &amp;quot;Path 40&amp;quot;, &amp;quot;Path 41&amp;quot; and &amp;quot;Path 42&amp;quot;.|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Datatype Conversions]]&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=My_path&amp;diff=9163</id>
		<title>My path</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=My_path&amp;diff=9163"/>
		<updated>2022-10-02T19:20:32Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&lt;br /&gt;
#vardefine:name|my_path}}{{&lt;br /&gt;
#vardefine:return_type|path}}{{&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;
}}|&lt;br /&gt;
&lt;br /&gt;
function_description=Returns the path your character chose upon ascension ($path[ none ] when in aftercore).|&lt;br /&gt;
&lt;br /&gt;
code1={{CodeSample|&lt;br /&gt;
title=Code Samples|&lt;br /&gt;
description=This prints something different based on whether or not you are in a {{kolwiki|Bees Hate You}} ascension path.|&lt;br /&gt;
code=&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
if(my_path() == $path[Bees Hate You])&lt;br /&gt;
   print(&amp;quot;I&#039;m doing a Bees Hate You run.&amp;quot;);&lt;br /&gt;
else print(&amp;quot;Bees do not hate me, thank goodness.&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}|&lt;br /&gt;
see_also={{SeeAlso|my_path_id|path_id_to_name|path_name_to_id|my_sign|knoll_available|canadia_available|gnomads_available}}|&lt;br /&gt;
special=This function returns &amp;quot;None&amp;quot; when not logged in.|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Your Character]]&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=My_path_id&amp;diff=9162</id>
		<title>My path id</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=My_path_id&amp;diff=9162"/>
		<updated>2022-10-02T19:14:48Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{deprecated|mafiaref=r26713|more_info=Use &amp;lt;code&amp;gt;[[my_path]]().id&amp;lt;/code&amp;gt; instead.}}&lt;br /&gt;
{{&lt;br /&gt;
#vardefine:name|my_path_id}}{{&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;
}}|&lt;br /&gt;
&lt;br /&gt;
function_description=Returns the {{kolwiki|Paths_by_number|ID of the path}} your character chose upon ascension (&amp;quot;0&amp;quot; when in aftercore).|&lt;br /&gt;
&lt;br /&gt;
see_also={{SeeAlso|my_path|path_id_to_name|path_name_to_id|my_sign|knoll_available|canadia_available|gnomads_available}}|&lt;br /&gt;
special=This function returns &amp;quot;0&amp;quot; when not logged in.|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Your Character]]&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Template:Deprecated&amp;diff=9161</id>
		<title>Template:Deprecated</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Template:Deprecated&amp;diff=9161"/>
		<updated>2022-10-02T19:05:43Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: Created page with &amp;quot;&amp;lt;includeonly&amp;gt; &amp;lt;div style=&amp;quot;border: solid 1px red; margin: 0.2em; padding: 1em; background-color: #fff8dc; text-align: center;&amp;quot;&amp;gt; &amp;#039;&amp;#039;&amp;#039;This function is deprecated{{#if: {{mafiaref|...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: solid 1px red; margin: 0.2em; padding: 1em; background-color: #fff8dc; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;This function is deprecated{{#if: {{mafiaref|}}|&amp;amp;nbsp;in KoLmafia {{{mafiaref}}}}}.&#039;&#039;&#039;&lt;br /&gt;
{{#if: {{more_info|}}|&amp;lt;p&amp;gt;{{{more_info}}}&amp;lt;/p&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template can be used on a function page (outside of the FunctionPage template) to indicate that the function&lt;br /&gt;
is deprecated. The &amp;lt;code&amp;gt;mafiaref&amp;lt;/code&amp;gt; parameter can be used to indicate which KoLmafia version the function&lt;br /&gt;
was deprecated in. The &amp;lt;code&amp;gt;more_info&amp;lt;/code&amp;gt; parameter can be used to provide more details, such as an alternative&lt;br /&gt;
function that can be used instead.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Deprecated|&lt;br /&gt;
mafiaref=31337|&lt;br /&gt;
more_info=Use this other function instead.}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This renders as:&lt;br /&gt;
&lt;br /&gt;
{{Deprecated|&lt;br /&gt;
mafiaref=31337|&lt;br /&gt;
more_info=Use this other function instead.}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=To_path&amp;diff=9160</id>
		<title>To path</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=To_path&amp;diff=9160"/>
		<updated>2022-10-02T18:12:09Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: Created page with &amp;quot;{{ #vardefine:name|to_path}}{{ #vardefine:return_type|path}}{{  FunctionPage| name={{#var:name}}|  function1={{Function| name={{#var:name}}| aggregate={{#var:aggregate}}| retu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&lt;br /&gt;
#vardefine:name|to_path}}{{&lt;br /&gt;
#vardefine:return_type|path}}{{&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|int|id}}|&lt;br /&gt;
p1desc={{Pspan|id}} is the path ID to convert|&lt;br /&gt;
}}|&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|name}}|&lt;br /&gt;
p1desc={{Pspan|name}} is the path name to convert|&lt;br /&gt;
}}|&lt;br /&gt;
&lt;br /&gt;
function_description=Returns the specified path {{pspan|name}} or {{pspan|id}} as a path.|&lt;br /&gt;
&lt;br /&gt;
code1={{CodeSample|&lt;br /&gt;
title=Code Samples|&lt;br /&gt;
description=Following example shows basic to_path operations.||&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
print(to_path(&amp;quot;StAnDaRd&amp;quot;), &amp;quot;green&amp;quot;);&lt;br /&gt;
print(to_path(&amp;quot;stand&amp;quot;), &amp;quot;red&amp;quot;);&lt;br /&gt;
print(&amp;quot;&amp;quot;);&lt;br /&gt;
if (to_path(&amp;quot;StAnDaRd&amp;quot;) == my_path())&lt;br /&gt;
   print(&amp;quot;I&#039;m in a Standard run!&amp;quot;, &amp;quot;green&amp;quot;);&lt;br /&gt;
else print(&amp;quot;I am not in Standard...&amp;quot;, &amp;quot;blue&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;|&lt;br /&gt;
moreinfo=&lt;br /&gt;
It gives the following output (for characters in a Standard ascension).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Standard&lt;br /&gt;
none&lt;br /&gt;
&lt;br /&gt;
I&#039;m in a Standard run!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}|&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Datatype Conversions]]&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
	<entry>
		<id>https://wiki.kolmafia.us/index.php?title=Path&amp;diff=9159</id>
		<title>Path</title>
		<link rel="alternate" type="text/html" href="https://wiki.kolmafia.us/index.php?title=Path&amp;diff=9159"/>
		<updated>2022-10-02T17:47:56Z</updated>

		<summary type="html">&lt;p&gt;QuietMisdreavus: Created page with &amp;quot;{{DISPLAYTITLE:path}}  This data represents the kinds of ascension paths your character can take. In addition to $path[ none ], this includes all the {{kolwiki|special challen...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:path}}&lt;br /&gt;
&lt;br /&gt;
This data represents the kinds of ascension paths your character can take. In addition to $path[ none ],&lt;br /&gt;
this includes all the {{kolwiki|special challenge paths}} available, as well as Standard and the&lt;br /&gt;
dietary restriction ascension paths (Boozetafarian, Teetotaler, Oxygenarian).&lt;br /&gt;
&lt;br /&gt;
==Related Functions==&lt;br /&gt;
&lt;br /&gt;
{{Flink|path|to_path|strict_string/int}}&lt;br /&gt;
{{Flink|path|my_path}}&lt;br /&gt;
{{Flink|int|to_int|path}}&lt;br /&gt;
{{Flink|int|my_path_id}}&lt;br /&gt;
{{Flink|string|path_id_to_name|int}}&lt;br /&gt;
{{Flink|int|path_name_to_id|string}}&lt;br /&gt;
&lt;br /&gt;
==Proxy Record Fields==&lt;br /&gt;
&lt;br /&gt;
Here are the proxy record fields for paths.  Proxy records are discussed in more &lt;br /&gt;
detail [[Proxy Records|here]].&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1px&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- | style=&amp;quot;background-color: #F2F2F2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Data type&lt;br /&gt;
! Default value&lt;br /&gt;
! ASH Accessor Function / Notes&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| avatar&lt;br /&gt;
| boolean&lt;br /&gt;
| false&lt;br /&gt;
| Whether this path overrides the character&#039;s class&lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| string&lt;br /&gt;
| &amp;quot;blank.gif&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| points&lt;br /&gt;
| int&lt;br /&gt;
| 0&lt;br /&gt;
| The number of path points the current character has accumulated, if available&lt;br /&gt;
|-&lt;br /&gt;
| familiars&lt;br /&gt;
| boolean&lt;br /&gt;
| true&lt;br /&gt;
| Whether the path allows familiars&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]] [[Category:Data Types]]&lt;/div&gt;</summary>
		<author><name>QuietMisdreavus</name></author>
	</entry>
</feed>