<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://gswiki.play.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=HORIBU1</id>
	<title>GemStone IV Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://gswiki.play.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=HORIBU1"/>
	<link rel="alternate" type="text/html" href="https://gswiki.play.net/Special:Contributions/HORIBU1"/>
	<updated>2026-10-14T12:37:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.12</generator>
	<entry>
		<id>https://gswiki.play.net/index.php?title=User:WHIGHTCNIGHT/EG_Fishing&amp;diff=266649</id>
		<title>User:WHIGHTCNIGHT/EG Fishing</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=User:WHIGHTCNIGHT/EG_Fishing&amp;diff=266649"/>
		<updated>2026-10-13T14:58:10Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: initial creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Ebon Gate Fishing&#039;&#039;&#039; is the fishing activity on the four haunted fishing docks along the Gleyminn Anni River during the [[Ebon Gate Festival]]. It uses the Artisan-era [[Fishing]] system (&amp;lt;code&amp;gt;FISH CAST&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;FISH REEL&amp;lt;/code&amp;gt;, lures and sinkers) with a few event-specific twists:&lt;br /&gt;
* every visit to a dock costs [[Soul shard|soul shards]];&lt;br /&gt;
* every landed fish teleports you back off the dock;&lt;br /&gt;
* every fish holds a prize.&lt;br /&gt;
&lt;br /&gt;
This page covers the whole cycle from buying gear to filleting the catch. It also includes an analysis of roughly 640 logged Ebon Gate fights (October 10–13, 2026) covering cast distance, depth, rarity, line wear, time of day and skill gain.&lt;br /&gt;
&lt;br /&gt;
For the general fishing system, see [[Fishing]], [[Fishing equipment]], [[Verb:FISHING]], [[Fishing guide]] and [[List of fish]].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Quick start ==&lt;br /&gt;
# Buy a rod, line, a lure for each depth, and the two sinkers at [[EHShop:Rodnir&#039;s Bait and Tackle|Rodnir&#039;s Bait and Tackle]] in Evermore Hollow.&lt;br /&gt;
# String the rod: &amp;lt;code&amp;gt;PULL&amp;lt;/code&amp;gt; your spool to snap off a length of line, then &amp;lt;code&amp;gt;PUT&amp;lt;/code&amp;gt; the length on your rod.&lt;br /&gt;
# &amp;lt;code&amp;gt;PUT&amp;lt;/code&amp;gt; a lure on the rod. Add a sinker if you want to fish deeper than the surface.&lt;br /&gt;
# Take a raft along the Gleyminn Anni River to a dock entrance and &amp;lt;code&amp;gt;GO DOCK&amp;lt;/code&amp;gt; twice (50 soul shards).&lt;br /&gt;
# &amp;lt;code&amp;gt;FISH CAST NEAR|MIDDLE|FAR&amp;lt;/code&amp;gt; and wait for &amp;quot;&#039;&#039;You feel a brief jerk on your line…&#039;&#039;&amp;quot;.&lt;br /&gt;
# &amp;lt;code&amp;gt;FISH REEL&amp;lt;/code&amp;gt; until &amp;quot;&#039;&#039;…one final tug and the &amp;lt;fish&amp;gt; comes wriggling to the surface!&#039;&#039;&amp;quot;.&lt;br /&gt;
# You&#039;re teleported back to the entrance. &amp;lt;code&amp;gt;CUT&amp;lt;/code&amp;gt; the fish with a dagger to get its prize, then repeat.&lt;br /&gt;
&lt;br /&gt;
== Equipment ==&lt;br /&gt;
=== Where to buy ===&lt;br /&gt;
&#039;&#039;&#039;[[EHShop:Rodnir&#039;s Bait and Tackle|Rodnir&#039;s Bait and Tackle]]&#039;&#039;&#039; in Evermore Hollow (Lich room 31969, room 8084321) sells everything needed. Prices are in soul shards. They have varied during the event; see the shop page for current listings.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Item !! Use !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| a twisted black fishing pole adorned with tiny fish skulls&amp;lt;br/&amp;gt;a bleached bone fishing rod bound with knotted jute twine&amp;lt;br/&amp;gt;a short rattan fishing stick with a dark cork-wrapped handle || Rod || The rods are cosmetic variants of one another.&lt;br /&gt;
|-&lt;br /&gt;
| a ball of dark braided fishing wire&amp;lt;br/&amp;gt;a spool of thin silvery fishing line || Line || 50 lengths per spool. &amp;lt;code&amp;gt;LOOK&amp;lt;/code&amp;gt; at the braided wire: &amp;quot;&#039;&#039;looks exceptionally strong&#039;&#039;&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| a leaf-topped grey mandrake lure with tiny thorn teeth || &#039;&#039;&#039;Surface&#039;&#039;&#039; lure || +16 surface, +12 middle, +12 deep&lt;br /&gt;
|-&lt;br /&gt;
| a pale carved skull-shaped lure with granite-inset eyes || &#039;&#039;&#039;Middle&#039;&#039;&#039; lure || +12 surface, +16 middle, +12 deep&lt;br /&gt;
|-&lt;br /&gt;
| a twisted iron ebon gate lure dangling a tiny gold key || &#039;&#039;&#039;Bottom&#039;&#039;&#039; lure || +12 surface, +12 middle, +16 deep&lt;br /&gt;
|-&lt;br /&gt;
| a shimmering blown glass weight flecked with glitter || Sinker || &amp;quot;&#039;&#039;heavy enough to sink a line to the middle depths&#039;&#039;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| a translucent glaes weight with gleaming metallic veins || Sinker || &amp;quot;&#039;&#039;heavy enough to sink a line to the bottom&#039;&#039;&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also on sale next door in Rodnir&#039;s Folly: the [[Super-Fish-All Tackle Box]] (holds line, lures and weights, and can be unlocked to hold fish), [[Bugs 2 Lure Jig]]s, fishing hats, and the Life Aquatic collection items.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filleting knife:&#039;&#039;&#039; bring any dagger. Every Ebon Gate fish in the sample was &amp;quot;&#039;&#039;completely eviscerated&#039;&#039;&amp;quot; (no usable fillet) when cut open, but the prize was always found. The fillet bonuses described on [[Fishing]] don&#039;t matter here.&lt;br /&gt;
&lt;br /&gt;
=== Rigging the rod ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Command !! Game message&lt;br /&gt;
|-&lt;br /&gt;
| Snap a length off a spool || &amp;lt;code&amp;gt;PULL MY WIRE&amp;lt;/code&amp;gt; || &#039;&#039;You uncoil a bit of wire from your braided fishing wire and snap it off swiftly.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| String the rod || &amp;lt;code&amp;gt;PUT MY LENGTH ON MY POLE&amp;lt;/code&amp;gt; || &#039;&#039;You coil some of your braided fishing wire around the reel of your black fishing pole before threading the remainder through its guides.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Attach a lure || &amp;lt;code&amp;gt;PUT MY LURE ON MY POLE&amp;lt;/code&amp;gt; || &#039;&#039;You carefully fasten your … near to the fishhook dangling from your fishing rod.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Attach a sinker || &amp;lt;code&amp;gt;PUT MY WEIGHT ON MY POLE&amp;lt;/code&amp;gt; || &#039;&#039;Using some slack from your line, you deftly string your glaes weight onto your black fishing pole.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Remove a lure or sinker || &amp;lt;code&amp;gt;GET LURE FROM MY POLE&amp;lt;/code&amp;gt; || Refer to gear by noun plus at most one adjective: &amp;quot;grey lure&amp;quot; works, but &amp;quot;grey mandrake lure&amp;quot; does not.&lt;br /&gt;
|-&lt;br /&gt;
| Cut off the line || &amp;lt;code&amp;gt;CUT MY POLE&amp;lt;/code&amp;gt; || &#039;&#039;With a swift, sharp tug, you snap the line of your black fishing pole.  Your skull-shaped lure and blown glass weight fall to the ground at your feet.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Check the rod || &amp;lt;code&amp;gt;LOOK MY POLE&amp;lt;/code&amp;gt; || Shows how far out the line is, the depth, the line condition, and the lure and its bonuses.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Things to know:&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;CUT&amp;lt;/code&amp;gt; only works with a lure on the line.&#039;&#039;&#039; With no lure the game refuses, so attach a lure before cutting off a worn line.&lt;br /&gt;
* &#039;&#039;&#039;Everything on the line drops at your feet when you cut it.&#039;&#039;&#039; Items at your feet stop you from moving: &amp;quot;&#039;&#039;As you prepare to move away, you remember the … still placed alongside you.&#039;&#039;&amp;quot; Pick them back up.&lt;br /&gt;
* &#039;&#039;&#039;You can&#039;t restring a line that&#039;s still intact.&#039;&#039;&#039; Cut it first.&lt;br /&gt;
* Spool size: 50 lengths. A length strings one rod.&lt;br /&gt;
&lt;br /&gt;
=== Line condition ===&lt;br /&gt;
&amp;lt;code&amp;gt;LOOK MY POLE&amp;lt;/code&amp;gt; reports the line&#039;s condition. It wears with every fight:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Stage !! Message&lt;br /&gt;
|-&lt;br /&gt;
| 1 || &#039;&#039;The pole&#039;s line looks to be in excellent condition.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 2 || &#039;&#039;The pole&#039;s line looks to be in decent condition.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 3 || &#039;&#039;The pole&#039;s line looks to be showing signs of use.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &#039;&#039;The pole&#039;s line looks to be frayed and in danger of snapping soon.&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
Replace the line once it reaches &#039;&#039;&#039;frayed&#039;&#039;&#039;. A snap mid-fight loses the fish, the line, the lure and the sinker: &amp;quot;&#039;&#039;The line of your black fishing pole strains and breaks with a sharp *SNAP*!&#039;&#039;&amp;quot; Afterwards, &amp;lt;code&amp;gt;LOOK MY POLE&amp;lt;/code&amp;gt; shows &amp;quot;&#039;&#039;The line of black fishing pole has snapped and will need to be replaced.&#039;&#039;&amp;quot; With frayed lines replaced, only 2 lines snapped in 637 catches. How fast a line wears depends heavily on [[#Line wear and the 300-foot limit|cast distance]].&lt;br /&gt;
&lt;br /&gt;
== The docks ==&lt;br /&gt;
There are four docks, each reached from its own entrance on the Gleyminn Anni River. The moss-covered rafts travel between the entrances. The rafts at the Misty Waters entrance sometimes don&#039;t come.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! Dock !! Entrance (Lich ID / room) !! Fishing spots (Lich ID / room)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Stream of Reflections || 31834 / 8083431 &#039;&#039;Gleyminn Anni River, Island&#039;&#039; || 32116 / 8085010, 32117 / 8085009, 32118 / 8085008&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Misty Waters || 31846 / 8083429 &#039;&#039;Gleyminn Anni River, Rocky Path&#039;&#039; || 32126 / 8085004, 32127 / 8085003, 32128 / 8085002&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Mold Marsh || 32074 / 8083430 &#039;&#039;Gleyminn Anni River, Shore&#039;&#039; || 32120 / 8085007, 32121 / 8085006, 32122 / 8085005&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Moss Pond || 32073 / 8083432 &#039;&#039;Gleyminn Anni River, Shore&#039;&#039; || 32123 / 8085012, 32124 / 8085013, 32125 / 8085011&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entry fee ===&lt;br /&gt;
&amp;lt;code&amp;gt;GO DOCK&amp;lt;/code&amp;gt; at an entrance:&lt;br /&gt;
* &#039;&#039;A horrific, ghostly apparition steps in front of you and states, &amp;quot;It will cost 50 soul shards to visit the dock.  If you wish to pay the cost and continue, GO dock again.&amp;quot;&#039;&#039;&lt;br /&gt;
* &#039;&#039;A horrific, ghostly apparition swirls around you and collects 50 soul shards.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Teleport after every catch ===&lt;br /&gt;
Landing a fish ends your visit: &amp;quot;&#039;&#039;Flashing, prismatic lights swirl around you, pulling you out of the area!&#039;&#039;&amp;quot; You land back at the dock&#039;s entrance, so &#039;&#039;&#039;every fish costs 50 soul shards&#039;&#039;&#039;. A snapped line doesn&#039;t teleport you, so you can restring on the dock and recast without paying again.&lt;br /&gt;
&lt;br /&gt;
=== Overfishing ===&lt;br /&gt;
Fishing holes elsewhere can become overfished (&amp;quot;&#039;&#039;It looks like this area has been heavily overfished.&#039;&#039;&amp;quot;). Overfishing is &#039;&#039;&#039;disabled&#039;&#039;&#039; at Ebon Gate (confirmed by a GM). Every spot on a dock is the same, and sharing a spot with other players has no penalty.&lt;br /&gt;
&lt;br /&gt;
=== Sharing a dock ===&lt;br /&gt;
You&#039;ll see your neighbours&#039; fishing messages in the third person. Only lines that say &#039;&#039;&#039;your&#039;&#039;&#039; are about you. For example:&lt;br /&gt;
* &#039;&#039;With a sudden surge, the catch yanks the line of Lakishiie&#039;s rod forward…&#039;&#039; (not yours)&lt;br /&gt;
* &#039;&#039;The line of your black fishing pole whips forward…&#039;&#039; (yours)&lt;br /&gt;
&lt;br /&gt;
== Fishing, step by step ==&lt;br /&gt;
=== 1. Casting ===&lt;br /&gt;
&amp;lt;code&amp;gt;FISH CAST NEAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FISH CAST MIDDLE&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;FISH CAST FAR&amp;lt;/code&amp;gt; (7 seconds roundtime):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Distance !! Landing message !! Line lands at&lt;br /&gt;
|-&lt;br /&gt;
| Near || &#039;&#039;…before landing with a soft *plink* right off of the side of the dock.&#039;&#039; || ~88 ft&lt;br /&gt;
|-&lt;br /&gt;
| Middle || &#039;&#039;…landing with a soft *plink* a good distance from the dock.&#039;&#039; || ~184 ft&lt;br /&gt;
|-&lt;br /&gt;
| Far || &#039;&#039;…landing with a soft *plink* quite a large distance from the dock.&#039;&#039; || ~274 ft&lt;br /&gt;
|}&lt;br /&gt;
Other replies: &#039;&#039;You must be holding a fishing rod.&#039;&#039;, &#039;&#039;You can&#039;t cast without a free hand.&#039;&#039;, &#039;&#039;You&#039;ve already cast the line…&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The depth comes from the sinker, and &amp;lt;code&amp;gt;LOOK MY POLE&amp;lt;/code&amp;gt; confirms it:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Sinker !! Depth !! Look message&lt;br /&gt;
|-&lt;br /&gt;
| none || Surface || &#039;&#039;Judging from the tiny, frenetic twitches traveling along the line, the … lure attached to it is skimming the surface of the water.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| blown glass weight || Middle || &#039;&#039;The faint, rolling twitches traveling along the line suggest that the … lure attached to it is drifting on the currents of the water&#039;s middle depths.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| glaes weight || Bottom || &#039;&#039;The line is almost completely still, leading you to believe that the … lure attached to it is resting on the bottom.&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 2. Waiting for a bite ===&lt;br /&gt;
While the line sits, the game makes a &#039;&#039;&#039;bite roll every 30 seconds&#039;&#039;&#039;, starting 30 s after the cast. Each roll is shown as, e.g., &amp;lt;code&amp;gt;[Fishing result: 102 (Open d100: 77)]&amp;lt;/code&amp;gt;.&lt;br /&gt;
* A result of &#039;&#039;&#039;101 or more&#039;&#039;&#039; hooks a fish. A result of exactly 100 still misses.&lt;br /&gt;
* The modifier (result minus the d100) is set by &#039;&#039;&#039;cast distance&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Cast !! Bite modifier !! d100 needed !! Hook chance per roll !! Median wait&lt;br /&gt;
|-&lt;br /&gt;
| Near || +26 || 75+ || ~26% || ~65 s&lt;br /&gt;
|-&lt;br /&gt;
| Middle || +31 || 70+ || ~31% || ~60 s&lt;br /&gt;
|-&lt;br /&gt;
| Far || +36 || 65+ || ~36% || ~63 s&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Depth did not change the modifier&#039;&#039;&#039; when each lure was used at its own depth (mandrake at the surface, skull in the middle, ebon gate on the bottom). The +16 bonus applied equally at all three depths.&lt;br /&gt;
* Fishing level adds a little: about +0.2 per level. See [[#Fishing level and skill gain|Fishing level]].&lt;br /&gt;
* Waiting doesn&#039;t need any input from you. There&#039;s no need to reel while waiting.&lt;br /&gt;
&lt;br /&gt;
The game picks one of several flavour messages for a missed roll, regardless of how close the roll came, for example:&lt;br /&gt;
* &#039;&#039;A few bubbles drift lazily to the surface, but the line of your … remains still.&#039;&#039;&lt;br /&gt;
* &#039;&#039;You watch intently as the line of your … drifts, but the depths remain unyieldingly calm, even the fish unimpressed with your efforts.&#039;&#039;&lt;br /&gt;
* &#039;&#039;You feel a faint tremor through the line of your …--a false hope, as it is only the current…&#039;&#039;&lt;br /&gt;
* &#039;&#039;A faint shimmer of light catches on the … lure of your … as it bobs in the water, but nothing rises from the depths to investigate.&#039;&#039;&lt;br /&gt;
* &#039;&#039;You wait patiently as the … lure of your … drifts aimlessly in the current.  No curious fish take notice.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A hook:&lt;br /&gt;
: &#039;&#039;You feel a brief jerk on your line before it begins to reel out wildly.  You manage to yank your black fishing pole back to set the hook.  The pole bends and its tip dips as the catch on your line weaves back and forth in a frantic effort to escape!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WEIGH MY POLE&amp;lt;/code&amp;gt; while a fish is on reports its weight: &amp;quot;&#039;&#039;You carefully examine the black fishing pole and determine that the weight is about 4 pounds.&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== 3. The fight ===&lt;br /&gt;
Each &amp;lt;code&amp;gt;FISH REEL&amp;lt;/code&amp;gt; (about 6–8 seconds roundtime) is a roll against the fish. Between your reels, the fish takes its own turns and pulls line back out. A result of 100+ is a success, and the message only tells you whether the roll passed or failed:&lt;br /&gt;
* &#039;&#039;&#039;Reel gains line:&#039;&#039;&#039; &#039;&#039;Your muscles work in steady rhythm as the line of your … tightens and the reel clicks smoothly.&#039;&#039;, &#039;&#039;Your grip steadies as you reel your …, the tension on the line taut but controlled.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Reel fails:&#039;&#039;&#039; &#039;&#039;Your … groans in protest as you try unsuccessfully to reel in your catch…&#039;&#039;, &#039;&#039;You brace yourself and reel with all your strength, but the line feels locked in place.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fish turn, you hold it:&#039;&#039;&#039; &#039;&#039;Your catch fights, sending small ripples across the water.  You maintain control…&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fish turn, it takes line:&#039;&#039;&#039; &#039;&#039;With a sudden surge, the catch yanks the line of your … forward…&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fish turn at the line&#039;s limit:&#039;&#039;&#039; &#039;&#039;Your … bends alarmingly as the fish at the end of your line jerks and tugs violently in its attempt to escape.  You have no more slack to let loose!&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Landed:&#039;&#039;&#039; &#039;&#039;You give your … one final tug and the rainbow roosterfish comes wriggling to the surface!  Moving swiftly, you quickly unhook it from the line and take hold of it tightly.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Progress&#039;&#039;&#039; (sometimes shown): &#039;&#039;Your hook is now about 23 feet away.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Every fight has two stages.&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;The fish is fresh.&#039;&#039;&#039; For about the first &#039;&#039;&#039;100 seconds&#039;&#039;&#039; (about 15–16 reels) the reel modifier sits around &#039;&#039;&#039;−23&#039;&#039;&#039; (it was −25 at level 0), so reels almost never gain line. The fish pulls the line out toward the 300 ft limit.&lt;br /&gt;
# &#039;&#039;&#039;The fish tires.&#039;&#039;&#039; The modifier suddenly jumps by about &#039;&#039;&#039;+70&#039;&#039;&#039; (to about +48), nearly every reel gains line, and the fish comes in.&lt;br /&gt;
&lt;br /&gt;
It&#039;s the reeling that tires the fish. In a test, resting 180 s before reeling left the modifier flat, and the fish tired 13 reels after the reeling began. &#039;&#039;&#039;Reel straight away and keep reeling.&#039;&#039;&#039; A fight lasts about &#039;&#039;&#039;200–230 seconds / 30–36 reels&#039;&#039;&#039;, almost regardless of distance, depth, rarity or fish weight.&lt;br /&gt;
&lt;br /&gt;
=== 4. The catch and its prize ===&lt;br /&gt;
After the teleport, cut the fish open: &amp;lt;code&amp;gt;CUT MY &amp;lt;fish&amp;gt; WITH MY DAGGER&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &#039;&#039;You cut into the iridescent roosterfish&#039;s flesh and after a few deft strokes, completely eviscerate the poor creature.  Brushing guts and scales off both your hands and dagger, you wonder if that particular type of fish just wasn&#039;t meant for filleting.&#039;&#039;&lt;br /&gt;
: &#039;&#039;In addition, you find a slice of golden requiem sunstone inside the roosterfish&#039;s belly.  You toss the remaining carcass aside.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Every Ebon Gate fish held a prize&#039;&#039;&#039; (625 of 625). &amp;lt;code&amp;gt;FISH TOTAL&amp;lt;/code&amp;gt; tallies your catches by rarity. Ebon Gate fish have no &amp;quot;&#039;&#039;It is of … quality&#039;&#039;&amp;quot; line when you &amp;lt;code&amp;gt;LOOK&amp;lt;/code&amp;gt; at them, so check which &amp;lt;code&amp;gt;FISH TOTAL&amp;lt;/code&amp;gt; count went up to find out a catch&#039;s rarity.&lt;br /&gt;
&lt;br /&gt;
== Fish ==&lt;br /&gt;
Each depth has its own fish. The ichor-covered tendrils and the tentacled aberration appear at every depth.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Rarity !! Surface (no sinker) !! Middle (blown glass) !! Bottom (glaes)&lt;br /&gt;
|-&lt;br /&gt;
| Common || glowing butterflyfish || giant ratfish || viridian-spined lionfish&amp;lt;br/&amp;gt;long-spined lionfish&lt;br /&gt;
|-&lt;br /&gt;
| Uncommon || aquamarine parrotfish&amp;lt;br/&amp;gt;pale yellow parrotfish&amp;lt;br/&amp;gt;viridian parrotfish || green-black frogfish&amp;lt;br/&amp;gt;grey and brown frogfish || six-horned cowfish&amp;lt;br/&amp;gt;four-horned cowfish&lt;br /&gt;
|-&lt;br /&gt;
| Rare || multihued roosterfish&amp;lt;br/&amp;gt;iridescent roosterfish&amp;lt;br/&amp;gt;rainbow roosterfish || floppy-finned dogfish&amp;lt;br/&amp;gt;dark umber dogfish || violet-spined hogfish&amp;lt;br/&amp;gt;ichor-covered tendrils (sometimes)&lt;br /&gt;
|-&lt;br /&gt;
| Epic || yellow-finned batfish&amp;lt;br/&amp;gt;ichor-covered tendrils || jagged-toothed tigerfish&amp;lt;br/&amp;gt;ichor-covered tendrils || three-eyed catfish&amp;lt;br/&amp;gt;ichor-covered tendrils (sometimes)&lt;br /&gt;
|-&lt;br /&gt;
| Legendary || tentacled aberration || tentacled aberration || tentacled aberration&lt;br /&gt;
|-&lt;br /&gt;
| Weight || 2–5 lb || 4–9 lb || 7–14 lb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rarity odds ===&lt;br /&gt;
From one character&#039;s &amp;lt;code&amp;gt;FISH TOTAL&amp;lt;/code&amp;gt; after 637 Ebon Gate catches:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Rarity !! Count !! Share&lt;br /&gt;
|-&lt;br /&gt;
| Common || 258 || 40.5%&lt;br /&gt;
|-&lt;br /&gt;
| Uncommon || 170 || 26.7%&lt;br /&gt;
|-&lt;br /&gt;
| Rare || 119 || 18.7%&lt;br /&gt;
|-&lt;br /&gt;
| Epic || 66 || 10.4%&lt;br /&gt;
|-&lt;br /&gt;
| Legendary || 24 || 3.8%&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Lines snapped&#039;&#039; || 2 ||&lt;br /&gt;
|}&lt;br /&gt;
Rare-or-better fish were about a third of catches at every depth (surface 36%, middle 32%, bottom 28%), and epic and legendary odds were the same at every depth (about 14%). &#039;&#039;&#039;Depth mainly decides the species and weight, not the odds of a rarer fish.&#039;&#039;&#039; Rarer fish didn&#039;t fight any longer:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Rarity !! Fights !! Average fight !! Reels !! Average weight&lt;br /&gt;
|-&lt;br /&gt;
| Common || 258 || 214 s || 33.5 || 5.7 lb&lt;br /&gt;
|-&lt;br /&gt;
| Uncommon || 164 || 215 s || 33.8 || 5.6 lb&lt;br /&gt;
|-&lt;br /&gt;
| Rare || 116 || 214 s || 33.3 || 5.1 lb&lt;br /&gt;
|-&lt;br /&gt;
| Epic || 63 || 222 s || 34.6 || 5.8 lb&lt;br /&gt;
|-&lt;br /&gt;
| Legendary || 24 || 220 s || 34.1 || 6.0 lb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Prizes ===&lt;br /&gt;
Prizes come from a shared pool, whatever the fish&#039;s rarity or depth. Common finds include:&lt;br /&gt;
* vellum and parchment pages&lt;br /&gt;
* skirt pins and spider pins&lt;br /&gt;
* wispstone, auroraline, everine, agate and soulstone gems&lt;br /&gt;
* horsehair pendants and wrist-cuffs&lt;br /&gt;
* tombstones, coffins (containers, so empty them before selling) and tarantulas&lt;br /&gt;
* bottles, dyes and masks&lt;br /&gt;
* occasionally a glittery fishing lure&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;ridge-edged painted wooden coin&#039;&#039;&#039; (the token used at the Bittermere Woods wishing well) came from &#039;&#039;&#039;12 of 635 catches (~2%)&#039;&#039;&#039;, from fish of every rarity and depth and at every distance and dock. Its find message is the same as any other prize&#039;s.&lt;br /&gt;
&lt;br /&gt;
== Analysis ==&lt;br /&gt;
&#039;&#039;The data comes from automated fishing logs ([[Lich]] &amp;lt;code&amp;gt;tfish&amp;lt;/code&amp;gt; v2.0.0 with verbose debugging) of one character at Stream of Reflections, October 10–13, 2026. The character&#039;s fishing level went from 0 to 20 over that time. About 640 fights were logged, about 450 of them in an even rotation of all nine cast distance × depth pairs, with each depth using its own lure. All times are Eastern, which is the game&#039;s clock.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Cast distance ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Near !! Middle !! Far&lt;br /&gt;
|-&lt;br /&gt;
| Bite modifier || +26 || +31 || +36&lt;br /&gt;
|-&lt;br /&gt;
| Line lands at || ~88 ft || ~184 ft || ~274 ft&lt;br /&gt;
|-&lt;br /&gt;
| Median wait for a bite || ~65 s || ~60 s || ~63 s&lt;br /&gt;
|-&lt;br /&gt;
| Average fight || ~205 s || ~223 s || ~224 s&lt;br /&gt;
|-&lt;br /&gt;
| Cast to landed fish || ~326 s || ~307 s || ~320 s&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;No more slack&amp;quot; turns per fight || 0.0 || 1.1 || 4.9&lt;br /&gt;
|-&lt;br /&gt;
| Fish landed per line || ~11.5 || ~8.8 || ~6.5&lt;br /&gt;
|-&lt;br /&gt;
| Rare or better || 36% || 34% || 27%&lt;br /&gt;
|}&lt;br /&gt;
* Near&#039;s shorter fights don&#039;t make up for its slower bites. &#039;&#039;&#039;Middle is the most efficient&#039;&#039;&#039;, by about 5%.&lt;br /&gt;
* Far puts the most strain on the line for no gain in speed, and it had the lowest share of rare-or-better fish in the sample.&lt;br /&gt;
* Near makes a line last the longest.&lt;br /&gt;
&lt;br /&gt;
=== Line wear and the 300-foot limit ===&lt;br /&gt;
The line can run out to at most &#039;&#039;&#039;300 feet&#039;&#039;&#039;. While the fish is fresh it pulls toward that limit, and each fish turn there gives &amp;quot;&#039;&#039;You have no more slack to let loose!&#039;&#039;&amp;quot;. Lines wear faster under that strain:&lt;br /&gt;
* A far cast already starts at ~274 ft, so it reaches the limit about 5 times a fight. A line lasts about 6–7 fish.&lt;br /&gt;
* A near cast starting at ~88 ft never reached it. A line lasts about 11–12 fish.&lt;br /&gt;
&lt;br /&gt;
Line is cheap next to the dock fee, so this mostly costs time spent restringing.&lt;br /&gt;
&lt;br /&gt;
=== Depth ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Depth !! Fights !! Common !! Uncommon !! Rare !! Epic !! Legendary !! Average weight&lt;br /&gt;
|-&lt;br /&gt;
| Surface || 147 || 34% || 29% || 22% || 10% || 4% || ~3.5 lb&lt;br /&gt;
|-&lt;br /&gt;
| Middle || 146 || 43% || 25% || 18% || 9% || 5% || ~5.9 lb&lt;br /&gt;
|-&lt;br /&gt;
| Bottom || 146 || 45% || 27% || 14% || 10% || 4% || ~10.0 lb&lt;br /&gt;
|}&lt;br /&gt;
Epic and legendary odds were the same at every depth. The surface gave slightly more rare fish, but that difference is about the size of the random spread for ~146 fights each. Fish a depth for its species and weight.&lt;br /&gt;
&lt;br /&gt;
=== Time of day ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Eastern time !! Fights !! Average bite wait !! Hook chance per roll !! Average fight !! Rare or better&lt;br /&gt;
|-&lt;br /&gt;
| 00–03 || 60 || 121 s || 25% || 209 s || 31%&lt;br /&gt;
|-&lt;br /&gt;
| 03–06 || 62 || 110 s || 27% || 210 s || 34%&lt;br /&gt;
|-&lt;br /&gt;
| 06–09 || 69 || 87 s || 34% || 200 s || 30%&lt;br /&gt;
|-&lt;br /&gt;
| 09–12 || 42 || 120 s || 25% || 212 s || 32%&lt;br /&gt;
|-&lt;br /&gt;
| 12–15 || 31 || 101 s || 29% || 245 s || 45%&lt;br /&gt;
|-&lt;br /&gt;
| 15–18 || 30 || 134 s || 23% || 230 s || 30%&lt;br /&gt;
|-&lt;br /&gt;
| 18–21 || 41 || 92 s || 32% || 212 s || 42%&lt;br /&gt;
|-&lt;br /&gt;
| 21–24 || 58 || 108 s || 28% || 217 s || 31%&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;No time-of-day effect was found.&#039;&#039;&#039; The bite modifier changed from day to day (fishing level), not with the hour. The swings above are within the random spread for 30–70 fights per block.&lt;br /&gt;
&lt;br /&gt;
=== Fishing level and skill gain ===&lt;br /&gt;
Each skill gain shows: &amp;quot;&#039;&#039;Satisfaction surges through you as you gain new insights into the art of fishing!&#039;&#039;&amp;quot; Check your level with &amp;lt;code&amp;gt;FISH STATUS&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Fishing Level: 15&lt;br /&gt;
Active Perks:&lt;br /&gt;
    none&lt;br /&gt;
You will unlock your second Fishing Perk when you achieve level 25 in Fishing.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Levels are capped at 5 per day&#039;&#039;&#039; at Ebon Gate. The logged character went 0 → 5 → 10 → 15 → 20 on consecutive days, and the count starts over at &#039;&#039;&#039;midnight Eastern&#039;&#039;&#039;.&lt;br /&gt;
* Skill gains came with landed fish of any rarity.&lt;br /&gt;
* Each level added about &#039;&#039;&#039;+0.2&#039;&#039;&#039; to the bite and reel modifiers. The reel modifier at the start of a fight went from −25 at level 0 to about −20.5 at level 20. That&#039;s minor next to cast distance (+5 per step).&lt;br /&gt;
* Perk slots open at levels 10, 25, 50 and 100 (see [[Fishing]]).&lt;br /&gt;
&lt;br /&gt;
Which catch of the day each level came on:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Day !! Catch numbers !! Day&#039;s last level at&lt;br /&gt;
|-&lt;br /&gt;
| Oct 11 || 1, 4, 6, 13, 15 || 01:25&lt;br /&gt;
|-&lt;br /&gt;
| Oct 12 || 2, 4, 9, 12, 16 || 01:27&lt;br /&gt;
|-&lt;br /&gt;
| Oct 13 (after the GM change) || 17, 20, 45, 68, 101 || 09:31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== October 12 changes ===&lt;br /&gt;
A GM posted on October 12:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Fish have had their stamina significantly reduced, but there is a much lower chance to rank up in fishing on the EG grounds now.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Ranking up:&#039;&#039;&#039; clearly lower. The day&#039;s 5 levels took about 100 catches instead of about 15.&lt;br /&gt;
* &#039;&#039;&#039;Fish stamina:&#039;&#039;&#039; not yet visible. Fights logged up to October 13 10:20 still averaged ~215 s, and the fish still tired at ~100 s. The character stayed logged in throughout, so the change may only apply after logging in again or a game reboot.&lt;br /&gt;
&lt;br /&gt;
=== Throughput and cost ===&lt;br /&gt;
* About &#039;&#039;&#039;10–11 fish an hour&#039;&#039;&#039; while fishing continuously.&lt;br /&gt;
* About &#039;&#039;&#039;525 soul shards an hour&#039;&#039;&#039; in dock fees, plus a line every ~9 fish and lures and sinkers that only run out when a line snaps.&lt;br /&gt;
&lt;br /&gt;
== Recommendations ==&lt;br /&gt;
* &#039;&#039;&#039;Cast middle.&#039;&#039;&#039; It gives the most fish per hour, and lines last longer than at far. Cast near if you&#039;d rather restring less often.&lt;br /&gt;
* &#039;&#039;&#039;Use the matching lure for your depth&#039;&#039;&#039; (mandrake at the surface, skull with blown glass, ebon gate with glaes).&lt;br /&gt;
* &#039;&#039;&#039;Choose a depth for the fish you want&#039;&#039;&#039; (species and weight), not for rarity.&lt;br /&gt;
* &#039;&#039;&#039;Reel immediately and keep reeling.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Replace frayed lines before casting.&#039;&#039;&#039; Attach a lure first so &amp;lt;code&amp;gt;CUT&amp;lt;/code&amp;gt; works, and pick up what falls at your feet.&lt;br /&gt;
* &#039;&#039;&#039;Gaining skill&#039;&#039;&#039; is limited to 5 levels a day, starting over at midnight Eastern.&lt;br /&gt;
&lt;br /&gt;
== Automation ==&lt;br /&gt;
The [[Lich]] script &amp;lt;code&amp;gt;tfish&amp;lt;/code&amp;gt; (elanthia-online/scripts, v2.0.0+) automates all of the above:&lt;br /&gt;
* entering the dock and paying the fee;&lt;br /&gt;
* casting, waiting and reeling;&lt;br /&gt;
* replacing worn lines (&amp;lt;code&amp;gt;replace_line_at&amp;lt;/code&amp;gt;);&lt;br /&gt;
* lures for each depth (&amp;lt;code&amp;gt;lure_surface&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lure_middle&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lure_deep&amp;lt;/code&amp;gt;);&lt;br /&gt;
* cycling the sinker and cast distance (&amp;lt;code&amp;gt;cycle_weights&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cycle_distance&amp;lt;/code&amp;gt;);&lt;br /&gt;
* filleting and stashing prizes, with an &amp;lt;code&amp;gt;announce_finds&amp;lt;/code&amp;gt; report;&lt;br /&gt;
* picking a dock (&amp;lt;code&amp;gt;dock&amp;lt;/code&amp;gt;: 1–4 or a name).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;;tfish check&amp;lt;/code&amp;gt; confirms your gear and &amp;lt;code&amp;gt;;tfish list&amp;lt;/code&amp;gt; shows your settings.&lt;br /&gt;
&lt;br /&gt;
== Open questions ==&lt;br /&gt;
* What message does a fish that escapes without snapping the line give?&lt;br /&gt;
* Does the Tier 5 &amp;quot;&#039;&#039;…probably deserves a close inspection&#039;&#039;&amp;quot; prize message exist in the new system?&lt;br /&gt;
* Does the October 12 stamina change apply after logging in again?&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Fishing]]&lt;br /&gt;
* [[Fishing equipment]]&lt;br /&gt;
* [[Verb:FISHING]]&lt;br /&gt;
* [[Fishing guide]]&lt;br /&gt;
* [[List of fish]]&lt;br /&gt;
* [[Fishing/Legacy fishing system]]&lt;br /&gt;
* [[Ebon Gate Festival]]&lt;br /&gt;
* [[Soul shard]]&lt;br /&gt;
* [[EHShop:Rodnir&#039;s Bait and Tackle]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Fishing system]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=266002</id>
		<title>Lich:Software/Installation</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=266002"/>
		<updated>2026-10-08T21:29:11Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Lich Changelog */ add changelog for 5.21.0 and 5.22.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
=About=&lt;br /&gt;
&lt;br /&gt;
Lich is an add-on scripting engine that works alongside existing front ends.  The most common installation is a combination of Lich on Windows using the Wrayth or Wizard FE. Lich is also used by many on both MacOS and multiple Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=Installing the Latest Stable Release=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The latest stable lich version is 5.22.0 supporting Ruby 4.0 - published October 8, 2026&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==In-Place Upgrade==&lt;br /&gt;
&lt;br /&gt;
If you are on an older version of Lich 5 and want to upgrade to the most current version, you can choose to either upgrade Lich5 only or both Lich 5 and Ruby. If you&#039;re currently on Lich 4, able to check by running the command &amp;lt;CODE&amp;gt;;e echo LICH_VERSION&amp;lt;/CODE&amp;gt;, go to the [[#Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)|upgrade from Lich 4 section]].&lt;br /&gt;
&lt;br /&gt;
For each section, please follow the directions/commands one at a time.&lt;br /&gt;
&lt;br /&gt;
===Lich 5 Only===&lt;br /&gt;
&lt;br /&gt;
====Lich 5.7 or newer====&lt;br /&gt;
# You must be running Ruby 4.0 or greater for Lich 5.19 +.  If unsure, please update both (see below)!&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Run this command in-game &amp;lt;CODE&amp;gt;;lich5-update --update&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
====Lich 5.6 or older====&lt;br /&gt;
Please proceed to updating both Ruby and Lich 5&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 4.0 &amp;amp; Lich 5===&lt;br /&gt;
This method is for Windows only. Linux and MacOS users, please do a Lich 5 only update and update Ruby manually via normal install/update methods for the OS.&lt;br /&gt;
&lt;br /&gt;
# Logout of all characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall existing Ruby4Lich5 installs from Programs &amp;amp; Features control panel, or alternatively, rename your existing Ruby4Lich5 folder to Ruby4Lich5save. (Defaults to C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the installer and be sure to have both Ruby and Lich 5 option selected&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich &amp;amp; Ruby!&lt;br /&gt;
&lt;br /&gt;
===Ruby 4.0 Only===&lt;br /&gt;
Use this to upgrade to the newest version of Ruby only if you&#039;re already on the latest version of Lich5 and now want to update Ruby afterwards. If you&#039;re not already on the latest version of Lich5, please use previous section steps instead.&lt;br /&gt;
# Logout of all instances/characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall your existing Ruby4Lich5 install via Programs &amp;amp; Features (ensure it&#039;s now gone, default location was C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the new installer and choose to only install Ruby Only&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version Ruby!&lt;br /&gt;
&lt;br /&gt;
==Windows New Installation==&lt;br /&gt;
&lt;br /&gt;
{{blue|These instructions are not for DragonRealms. [[#Ecosystem Information|For those scroll to the bottom]].}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows 11 / 10 / 8 / 7&#039;&#039;&#039; users: you can download the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and install everything you need automatically. Click on the &#039;&#039;&#039;Ruby4Lich5.exe&#039;&#039;&#039; and download it to your computer then double click on the executable in your default download folder. Note, a user may need to adjust their browser or security settings to allow download and installation.&lt;br /&gt;
If you have never played before, follow the &#039;New Installation&#039; instructions. If you have played before, and have used Lich before, follow the &#039;Upgrade Installation&#039; instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Installation for Lich 5 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Please log into the game of your choice through the Simutronics website first&#039;&#039;&#039;.  Install the launcher (not SGE), and install your FrontEnd of Choice.  The Wrayth FrontEnd is presently the supported FrontEnd, but Wizard will work as well, if you are nostalgic.  After you&#039;ve logged in, log out and continue.&lt;br /&gt;
# Download and Run the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe  Installer]. You will receive the Microsoft Warning because this is not distributed through the MS Store.  Click on &#039;More Info&#039; and then select the &#039;Run Anyway&#039; button.&lt;br /&gt;
# The installation may take a few minutes, especially on non-SSD harddrives.&lt;br /&gt;
# A Lich5 folder will be placed on your desktop after the install is finished, open that folder and double click the lich.rbw file contained inside to start Lich&#039;s Game Entry window.&lt;br /&gt;
# Use your existing Simutronics Account and Password and click connect.  Then select the character you wish to play, and select the FrontEnd you wish to use.  Then click the Play button.&lt;br /&gt;
# Your game FrontEnd should start, and you should see Lich5 initializing.  You will see it downloading files - these are the map files, wait for the download to finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
This option is deprecated.  Lich 5 architectures are not compatible with Lich 4. Back up your existing Lich 4 folder, uninstall any existing Ruby executables, and then follow the instructions for a new install above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional assistance in installation can be found in the scripting channel of the GemStone [https://discord.gg/KF9Wr8u Discord].&lt;br /&gt;
&lt;br /&gt;
==MacOS==&lt;br /&gt;
There two common options for playing Gemstone IV on a Mac is either to play natively with Avalon or to use virtualization software such as Parallels with Wrayth/WizardFE. Below are the options on how to do that.&lt;br /&gt;
&lt;br /&gt;
===Native Avalon===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. This process works well for Mac OS Catalina and Big Sur. If you have not updated your Mac OS yet, these instructions may work depending on your actual version.  If you run into a snag, follow the contact instructions provided.&lt;br /&gt;
&lt;br /&gt;
===Parallels Windows===&lt;br /&gt;
With the latest releases of Ruby4Lich5 installer, you can now follow the normal Windows installation for both Intel and Apple silicon based Apple computers.&lt;br /&gt;
&lt;br /&gt;
To install Wrayth/WizardFE, Lich, and Ruby via Parallels you will need to do a few various steps as outlined below. Please note, the rubyw file in C:\Ruby4Lich5\X.X.X\bin may be set to run in compatibility mode for windows 7.  On an ARM Mac running parallels, this may causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file could fixe this issue if it was enabled.&lt;br /&gt;
&lt;br /&gt;
The following steps are to be done AFTER you&#039;ve successfully installed Wrayth/WizardFE and can login normally without Lich5 on the machine. Once you&#039;ve done that and can successful connect normally, then follow these steps:&lt;br /&gt;
# Download and install [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and use default options presented during install&lt;br /&gt;
# Double click the lich.rbw file that is now located in the extracted Lich5 location you did above. Login and play as usual.&lt;br /&gt;
&lt;br /&gt;
==Chromebook &amp;amp; Debian variants==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-debian&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-debian&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Debian/Chromebooks. Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1.&#039;&#039;&#039; &lt;br /&gt;
Update the list of available software and make sure some requirements are installed:&lt;br /&gt;
&amp;lt;!-- don&#039;t think I&#039;m gonna include this stuff but might as well not delete it.&lt;br /&gt;
:&amp;lt;small&amp;gt;sudo: as a super-user&amp;lt;/small&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;apt-get: Debian&#039;s software repository&amp;lt;/small&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;-y: answer all questions yes&amp;lt;/small&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get -y update&lt;br /&gt;
sudo apt-get -y install autoconf bison build-essential curl libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libsqlite3-dev git unzip libcairo2-dev libgirepository1.0-dev libgtk-3-dev gobject-introspection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing Ruby installation rather than installing from scratch, skip steps 2, 3, and 4.  Instead, update your ruby-build with the following command, and then proceed to Step 5.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2.&#039;&#039;&#039;&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3.&#039;&#039;&#039;&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4.&#039;&#039;&#039;&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Arch Linux &amp;amp; Arch-based distributions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-arch&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-arch&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
Update the system and install required dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pacman -Syu&lt;br /&gt;
sudo pacman -S --needed base-devel openssl libyaml readline zlib ncurses libffi gdbm sqlite git unzip curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby 3.4.5 and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fedora==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-fedora&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-fedora&amp;quot;&amp;gt;&lt;br /&gt;
Currently supported versions of Fedora&lt;br /&gt;
* 41 uses Ruby 3.3&lt;br /&gt;
* 42 uses Ruby 3.4&lt;br /&gt;
* 43 uses Ruby 3.4&lt;br /&gt;
All of which are currently compatible with Lich 5.7.0 or higher.&lt;br /&gt;
&lt;br /&gt;
1. Update The Base Installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf -y update&lt;br /&gt;
$ sudo dnf -y install vim git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Install required Ruby and Development packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf install -y autoconf bison cairo-devel curl gcc gdbm gdbm-devel gdk-pixbuf2-devel glib2-devel \&lt;br /&gt;
gobject-introspection-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5a. Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5b. Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Popular Scripts=&lt;br /&gt;
{{#section:Lich:Script Repository|popularscripts}}&lt;br /&gt;
&lt;br /&gt;
=Ecosystem Information=&lt;br /&gt;
&lt;br /&gt;
* DragonRealms Variant - [https://elanthipedia.play.net/Lich_script_repository#Setup_and_Installation Setup and Install instructions]&lt;br /&gt;
&lt;br /&gt;
=Lich Changelog=&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-changelog&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-changelog&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.22.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add opt-in bounded script execution guards (#1575)&lt;br /&gt;
* add static-only map route selection (#1577)&lt;br /&gt;
* bounded fput with max_resends, interrupt, resend_transient and failure symbols (#1587)&lt;br /&gt;
* Spell.results_regex, the lines cast waits on, exposed (#1590)&lt;br /&gt;
* add Events, a script-to-script notification primitive; combat emits on it (#1619)&lt;br /&gt;
* add deterministic hook priorities (#1621)&lt;br /&gt;
* Map.boundary_rooms_for(ids), the perimeter of any set of rooms (#1660)&lt;br /&gt;
* sticky ever_hostile? keeps Sympathy&#039;d creatures in targets (#1665)&lt;br /&gt;
* --pipe -g honours the frontend flag, and --sentinel requests the origin marker (#1677)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* add trustworthy combat observation provenance (#1576)&lt;br /&gt;
* Lich::Gemstone::Stance, a shared stance setter (#1578)&lt;br /&gt;
* Lich::Stash.wield and Stash.hands put named items into hands (#1579)&lt;br /&gt;
* Lich::Gemstone::Mana.pulse, the MANA PULSE verb once (#1580)&lt;br /&gt;
* Lich::Gemstone::Bank, Currency refresh, and WEALTH parser lines (#1581)&lt;br /&gt;
* PSM command and results_regex readers, factored out of use (#1583)&lt;br /&gt;
* Lich::Gemstone::Fog, the ways home on the spell and society readers (#1584)&lt;br /&gt;
* Combat::Messages - non-combat message families as observer events (#1586)&lt;br /&gt;
* society command readers, factored out of use (#1589)&lt;br /&gt;
* Group.join, the follower&#039;s side of Group.add (#1591)&lt;br /&gt;
* emit post-commit combat recorder receipts (#1592)&lt;br /&gt;
* combat definition supplements from a player YAML file (#1607)&lt;br /&gt;
* message definitions from the player supplement file (#1608)&lt;br /&gt;
* creature library - abilities from session logs, limbs flags, triggers as hash of arrays (#1623)&lt;br /&gt;
* expose exact server creature health from crtrStatus (#1661)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* fix spec stub race breaking FFI loads, gate WindowsCredentialManager to Windows (fixes #1542) (#1573)&lt;br /&gt;
* setup_files uses content hash for cache freshness (#1596) (#1599)&lt;br /&gt;
* creatures registry housekeeping independent of Combat::Tracker (#1603)&lt;br /&gt;
* place effect-list.xml backups in the update snapshot folder (#1606)&lt;br /&gt;
* retain discovery ownership through cleanup (#1612)&lt;br /&gt;
* Initial Lich state update and detachable-client split GS/DR (#1617)&lt;br /&gt;
* bound move()&#039;s remedy retries, record why a move failed, lift it into Lich::Common::Move (#1622)&lt;br /&gt;
* update puts to Lich.log (#1630)&lt;br /&gt;
* create detachable-client session file without --login (#1656)&lt;br /&gt;
* converge server_time_offset instead of resetting it every prompt (#1663)&lt;br /&gt;
* plain-language lich5-update messages when GitHub fails (#1687)&lt;br /&gt;
* Inventory.refresh waits out roundtime before sending (#1688)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* update HOW pattern to accommodate various soul states (#1620)&lt;br /&gt;
* restore script halt in DRCC.get_crafting_item on missing item (#1624)&lt;br /&gt;
* halt script when too distracted to turn recipe book (#1625)&lt;br /&gt;
* equipmentmanager energy bow handling (#1662)&lt;br /&gt;
* report when DRC.rummage can&#039;t read a container (#1671)&lt;br /&gt;
* DRCI.get_item? confirms #&amp;lt;id&amp;gt; gets by the item id in hand (#1674)&lt;br /&gt;
* DRCT.sell_item references the item through DRCI.item_ref (#1675)&lt;br /&gt;
* DRCA.do_buffs filters day/night spells without mutating settings (#1680)&lt;br /&gt;
* DRCI.tie_item? no longer reports an empty pouch as tied (#1684)&lt;br /&gt;
* DRC.play_song? keeps climbing and performance songs across instrument switches (#1686)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Injured cache lives on the class and keys on an injury fingerprint (#1582)&lt;br /&gt;
* infomon - a spell&#039;s start message refreshes a refreshable timer (#1585)&lt;br /&gt;
* Group.broken? waits on Lich::Claim::Lock, the constant that exists (#1588)&lt;br /&gt;
* combat module - hunt-log audit: interrupted-swing resume, status attribution by event, spell-loss cause, live defs (#1593)&lt;br /&gt;
* QStrike prices MSTRIKE&#039;s own stamina cost (#1594)&lt;br /&gt;
* combat module - a stand-up message later in the chunk outranks an earlier knockdown crit (#1595)&lt;br /&gt;
* track spell cooldowns on the characters a spell locks out (#1597)&lt;br /&gt;
* catalog missing deity-specific strike lines for Divine Wrath (335) (#1598)&lt;br /&gt;
* combat module - Rysk/Dreadt log audit: Holy Weapon release model, held maneuver rolls, AoE roll attribution, live defs (#1600)&lt;br /&gt;
* Combat defs add thrust as a basic attack (#1615)&lt;br /&gt;
* preserve group state after ambiguous disband reply (#1629)&lt;br /&gt;
* target ridden mounts before their first crtrStatus (#1669)&lt;br /&gt;
* snapshot Effects registries so scripts can&#039;t break the XML parser (#1672)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.21.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add --refresh-characters and --add-character CLI flags (#1504)&lt;br /&gt;
* add --active-session-dir to decouple Active Sessions coordination from --temp (#1520)&lt;br /&gt;
* add read model for the inventoryManager extended feed (#1524)&lt;br /&gt;
* GUI add configurable frontend registry (#1558)&lt;br /&gt;
* add HTTPS web-login fallback for when EAccess (7910) is unreachable (#1570)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* player-supplied custom prep/cast/invoke messages (#1528)&lt;br /&gt;
* opt-in cambrinth charge distribution across configured items (#1549)&lt;br /&gt;
* populate GameObj from INV LIST full refresh (02 of 05) (#1554)&lt;br /&gt;
* non-destructive upsert for INV SEARCH / category scrapes (03 of 05) (#1556)&lt;br /&gt;
* reconcile GameObj containers on hand pickup (04 of 05) (#1557)&lt;br /&gt;
* [DRCC] add shared private-forge helpers (#1560)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* creature template library - measured combat data, HP/speed censuses, messaging (#1539)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* enforce Script#pause at every blocking/mutating checkpoint (#1537)&lt;br /&gt;
* always report missing gems on stderr; only wait on a dialog without a tty (#1544)&lt;br /&gt;
* dispatch --help and --version before the GTK require (#1546)&lt;br /&gt;
* global_def update deprecated method calls to include caller info (#1550)&lt;br /&gt;
* normalize colons in Lich::Util.normalize_lookup (#1561)&lt;br /&gt;
* Script.log respects --log-dir/LOG_DIR override; use File.join for paths in script.rb (#1572)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* drvariables add more data to VOL_MAP (#1536)&lt;br /&gt;
* pin capped skills to 34 in DRSkill.clear_mind (#1548)&lt;br /&gt;
* match lowercase &amp;quot;it&#039;s already open&amp;quot; when opening a container (#1553)&lt;br /&gt;
* normalize capitalized leading articles in inventory scrape names (01 of 05) (#1555)&lt;br /&gt;
* make INV LIST refresh atomic and warn on interruption (05 of 05) (#1563)&lt;br /&gt;
* refresh before_name/after_name on a name-preserving container move (#1564)&lt;br /&gt;
* do not re-add a held item as worn inventory on inv scrape (#1565)&lt;br /&gt;
* evict orphaned identity-index entries on a name-changing upsert (#1566)&lt;br /&gt;
* unpause the exact scripts safe_pause_list paused, by object (#1574)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1540)&lt;br /&gt;
* correct messaging drift in 13 crit table patterns (#1547)&lt;br /&gt;
* combat module - event defs, observer emissions, replay-verified parsing, SQLite recorder (#1559)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.20.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* bound EAccess auth with a timeout so a stalled SGE backend can&#039;t hang Lich silently (#1502)&lt;br /&gt;
* Linux WINE and Wrayth FE detection (#1517)&lt;br /&gt;
* update Gemstone game-code validations (#1518)&lt;br /&gt;
* preserve bundled display-state tags on quiet-suppressed chunks (#1530)&lt;br /&gt;
* prevent a stray formatting character from appearing in Saga during quiet script output (#1532)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* make $safe_pause_lock holder immune to pause (#1525)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* critranks.rb tolerate nil table rows, fix reload!, index patterns … (#1522)&lt;br /&gt;
* combat module hardening - ordered processing, 22x faster parsing, double-count fix (#1523)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.20.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add concurrent runtime I/O and multi-client detach support (#1459)&lt;br /&gt;
* --bind-address speaks the same keywords as --detachable-client (#1461)&lt;br /&gt;
* GUI Launcher Improvements (#1463)&lt;br /&gt;
* Add supervised child script APIs (01 of 06) (#1474)&lt;br /&gt;
* Add forced script teardown command (06 of 06) (#1479)&lt;br /&gt;
* teardown and distinguishable errors for Script.run_child (#1501)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRCMM.moon_weapon_duration - read a moon weapon&#039;s remaining life (#1483)&lt;br /&gt;
* id-based creature tracking from crtrStatus + assess (#1485)&lt;br /&gt;
* capture room UID from &amp;lt;nav&amp;gt; tag; stop enforcing ShowRoomID; opt-in room-id placement (#1491)&lt;br /&gt;
* user-extensible scroll substitutions via settings (01 of 06) (#1512)&lt;br /&gt;
* user-extensible boxes and trash receptacles (03 of 06) (#1514)&lt;br /&gt;
* user-extensible summoned-weapon adjectives (04 of 06) (#1515)&lt;br /&gt;
* user-extensible flavor-text stripping (05 of 06) (#1516)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* gameobj add full_name matcher to type/sellable classification (#1453)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* prevent empty/partial GameObj registry reads during mid-stream refresh (#1370)&lt;br /&gt;
* no-op Gtk.lich_main_quit when no main loop is nested (#1464)&lt;br /&gt;
* correct path-flag aliases and document all path options (#1472)&lt;br /&gt;
* Synchronize script lifecycle transitions (02 of 06) (#1475)&lt;br /&gt;
* Coordinate script shutdown draining (03 of 06) (#1476)&lt;br /&gt;
* Harden script lifecycle ownership (05 of 06) (#1478)&lt;br /&gt;
* surface the underlying LoadError in dependency alerts (#1480)&lt;br /&gt;
* extract game-agnostic CreatureBase into lib/common (#1484)&lt;br /&gt;
* bound GemCheck alert dialogs with a timeout so they can&#039;t hang forever (#1488)&lt;br /&gt;
* identify Genie as the frontend for headless launches (#1490)&lt;br /&gt;
* restore detachable client disconnect notice to stdout (#1492)&lt;br /&gt;
* harden detachable client teardown and escape init payload (#1493)&lt;br /&gt;
* resolve GameObj status visibility during staged  refresh (#1497)&lt;br /&gt;
* compact client write queue instead of ending the session (#1498)&lt;br /&gt;
* scrub startup credentials once login completes (#1499)&lt;br /&gt;
* Honor Simu-side teardown for 10 seconds (#1505)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* resolve no-UID rooms carrying a stored UID instead of returning nil (#1467)&lt;br /&gt;
* equipmanager.rb - reliable ranged-weapon transitions - stow ammo after unload + verify offhand wield hand (#1468)&lt;br /&gt;
* common-healing.rb -  DRCH.bind_wound: only dispose a dislodged item while it is in hand (#1469)&lt;br /&gt;
* preserve game RealID in room title (GS parity for &amp;quot;;display roomid title&amp;quot;) (#1500)&lt;br /&gt;
* Refine need_buffs? logic for non-recast spells to correctly check cyclic spells. (#1503)&lt;br /&gt;
* reduce symbol-torn scale scrolls to gettable noun (#1506)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* lower game socket keepalive idle from 120s to 30s (#1449)&lt;br /&gt;
* resilient ActiveSessions ownership + shutdown watchdog (#1452)&lt;br /&gt;
* Quit Gtk.main cleanly (#1455)&lt;br /&gt;
* Refactor regex to string comparisons for ARGV options (#1456)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* ingest newly-exposed mindState experience and roommeta room fields (#1450)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add character generator support via EAccess protocol (#1384)&lt;br /&gt;
* Add modern script command shutdown method (#1385)&lt;br /&gt;
* migrate the server-stream parser from REXML to Ox, with pipe-mode benchmark harness and DR parser coverage (#1396)&lt;br /&gt;
* enumerate script subdirs with file glob (#1397)&lt;br /&gt;
* add --bind-address option to set listen socket address (#1405)&lt;br /&gt;
* add central method to determine lich ver (#1417)&lt;br /&gt;
* setup_files: support scripts/data/custom for user data overrides (#1431)&lt;br /&gt;
* Modify running? method to support optional exact matching of script names (#1436)&lt;br /&gt;
* keyword bind hosts for the detachable client (tailscale/lan/any) (#1437)&lt;br /&gt;
* add roomlinks/roommono toggles for room display (#1438)&lt;br /&gt;
* self-healing gem requires (#1439)&lt;br /&gt;
* various Saga FE compatibility tweaks (#1443)&lt;br /&gt;
* add macOS limited gem recovery (#1448)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Capture combat position from the balance status line (#1400)&lt;br /&gt;
* detect scheduled shutdown and expose it on DRParser (#1409)&lt;br /&gt;
* xmlparser: add structured parser for the assess (combat situation) stream (#1413)&lt;br /&gt;
* Implement DRCA.need_buffs? method for buff checks (#1428)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* anchor Infomon parser regex unions to line start (#1391)&lt;br /&gt;
* creature xml additions (#1425)&lt;br /&gt;
* add creature template library (#1427)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* surface a failed Game.open in the connect timeout (#1408)&lt;br /&gt;
* bound long-session memory growth (index/hook/watchfor/buffer leaks) (#1410)&lt;br /&gt;
* improve and harden shutdown (#1416)&lt;br /&gt;
* use bundler to check for required Ruby gems (#1420)&lt;br /&gt;
* pin lich directory for gemfile check (#1423)&lt;br /&gt;
* Show CLI login ARGV for SAL connections (#1424)&lt;br /&gt;
* increase read timeout on idle socket to 300 seconds (#1426)&lt;br /&gt;
* monkeypatch gi for memoryreleaser / asyncprocessor until patched upstream (#1429)&lt;br /&gt;
* Mapdb sort tags by downcase and original case (#1433)&lt;br /&gt;
* stop locking the load path at boot; keep Gemfile.lock in sync on self-update (#1434)&lt;br /&gt;
* minimum Ruby 4.0 required &amp;amp; migrate Ruby version check (#1444)&lt;br /&gt;
* align --announce with --update for Ruby version (#1447)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* BalanceValue regex to match combat status lines (#1398)&lt;br /&gt;
* equipmanager.rb - Fix unload weapon detection when AimTimerDialog tag is prepended (#1414)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* global_defs update pushStream regex to include &#039;reserve&#039; id (#1379)&lt;br /&gt;
* psms Warcry.available? correction (#1387)&lt;br /&gt;
* xmlparser support new field exp, climate, terrain XML feeds (#1388)&lt;br /&gt;
* global_defs move() update regex for standing condition (#1407)&lt;br /&gt;
* Currency add method to retrieve aevit event currency (#1411)&lt;br /&gt;
* Stash check result type before comparing regex for wear_to_inv (#1430)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.18.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-crafting add method for creating mechanisms (#1375)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* stringproc normalize CRLF | CR to LF (#1378)&lt;br /&gt;
* rubocop custom cop ascii only cleanup (#1382)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* equipmanager update to assume missing items aren&#039;t worn (#1376)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1326)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Script module replace MemoryReleaser with GC.start for cleanup (#1364)&lt;br /&gt;
* Add sqlite busy timeout policy to core (#1365)&lt;br /&gt;
* Script#kill remove GC.start and add optional instrumentation (#1368)&lt;br /&gt;
* reorder shutdown ala MahtraDR and detect script teardown de... (#1369)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* harden custom repo identity, collision, and contract boundaries (#1333)&lt;br /&gt;
* stop SessionLifecycle before closing database on normal exit (#1334)&lt;br /&gt;
* harden FeatureFlags for closed db handle (#1335)&lt;br /&gt;
* SynchronizedSocket write resilience and zombie client elimination (#1338)&lt;br /&gt;
* correct RP timing issue for release notes (#1348)&lt;br /&gt;
* gate object cleanup in GTK queue (#1354)&lt;br /&gt;
* recover from cross-process zombie in ActiveSessions service (#1355)&lt;br /&gt;
* Improve shutdown session state handling (#1359)&lt;br /&gt;
* non-ascii hygeine to address rubocop errors (#1360)&lt;br /&gt;
* Remove debug log IO from heartbeat tick loop (#1363)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRC text2num correction for thousand (#1343)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Overwatch add REVEALED_EXPLODES regex pattern (#1356)&lt;br /&gt;
* Stash add_to_bag result type check before regex compare (#1357)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* enable heartbeat-driven failover for ActiveSessions service owner (#1340)&lt;br /&gt;
* copy Gemfile and LICENSE during self-update (#1345)&lt;br /&gt;
* Add top-level parse_args/display_args bridge to global_defs (#1346)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* replace undefined custom_require in check_moonwatch (#1336)&lt;br /&gt;
* set_stance places 100 in the correct positional slot (#1337)&lt;br /&gt;
* cache SlackBot users list to prevent API throttling (#1342)&lt;br /&gt;
* Add CORE_AUTOSTART sentinel to skip dependency.lic autostart helpers (#1344)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon Status.cutthroat? Effect Debuff correction (#1331)&lt;br /&gt;
* add support for RESERVE xml in GameObj.reserve (#1341)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* custom 3rd-party repo support for ScriptSync (#1285)&lt;br /&gt;
* Add get_settings, get_data, start_scripts_if_available to core (#1305)&lt;br /&gt;
* Add Map.apply_wayto_overrides for personal map overrides (#1306)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Decouple SetupFiles from script-scoped echo and XML feed timing (#1304)&lt;br /&gt;
* Add game flags and obsolete script warnings to DRInfomon startup (#1307)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* use :__unset for --without-frontend CLI request YAML matches (#1301)&lt;br /&gt;
* prevent zombie server deadlock in Active Sessions accept loop (#1302)&lt;br /&gt;
* improve MacOS keychain system check for older OS variants (#1310)&lt;br /&gt;
* stub sync_all_repos to prevent leaked thread in games_spec (#1311)&lt;br /&gt;
* enforce beta confirmation 10s timeout (#1315)&lt;br /&gt;
* use send(:respond) in StatusReporter fallback path (#1316)&lt;br /&gt;
* ensure SessionLifecycle.stop runs on abnormal exit (#1317)&lt;br /&gt;
* address ActiveSessions lifecycle hot path feature-flag polling (#1325)&lt;br /&gt;
* catch ECONNRESET in _puts and bound walk_to retry depth (#1327)&lt;br /&gt;
* safeguard gtk logo.png loading (#1329)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Add InnCheckedOut pattern to parser (#1309)&lt;br /&gt;
* Claim corrections to handle mounts in room_players stream (#1324)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
* repair regression on gui button reenable from refactor (#1297)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Mutli-launch persistent login GUI (#1245)&lt;br /&gt;
* Remove Windows OS CMD prompt flash (#1255)&lt;br /&gt;
* guard against broken pipe errors in Game._puts and send_to_client (#1260)&lt;br /&gt;
* add timeout safety to fput to prevent infinite hangs (#1261)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* anchor stow success pattern to prevent fan close recovery bypass (#1254)&lt;br /&gt;
* add bounded recursion depth limits to 9 methods (#1257)&lt;br /&gt;
* stow_helper failure detection + unload_weapon ammo recovery (#1259)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add InstanceSettings for core Settings API access (#1233)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Overwatch module into core (#1201)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* fix GameObj container initialization and add clear_all_containers (#1226)&lt;br /&gt;
* GameObj object dedupe &amp;amp; GC (#1234)&lt;br /&gt;
* script.rb show Script.kill source (#1235)&lt;br /&gt;
* Exit quickly on CLI authentication failure (#1237)&lt;br /&gt;
* suppress wine detection noise and skip when unneeded (#1244)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DR modules fixes and enhancements (#1232)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* psms.rb add additional failure matches (#1238)&lt;br /&gt;
* Bounty parser fix regex pattern for skin retrieval task (#1242)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* add retry with exponential backoff for all login authentication (#1205)&lt;br /&gt;
* update.rb allow for bugfix betas and branch updates (#1211)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb bug in _key transformation (#1216)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Change server_time_offset in XMLParser to be float instead of int (#1184)&lt;br /&gt;
* change encodings in main.rb to wizard FE only (#1199)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon parser.rb update Account.subscription/type (#1192)&lt;br /&gt;
* spell.rb add last_cast to track last time casted (#1193)&lt;br /&gt;
* stash.rb additional improvements with ReadyList/StowList (#1197)&lt;br /&gt;
* Infomon parser.rb bug in EnhanciveEnd (#1198)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add Genie map cross-reference fields to the DragonRealms map data model (#1169)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRExpMonitor move into core lich (#1154)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* add Enhancive module for enhancive item bonus tracking (#1113)&lt;br /&gt;
* add QStrike module for optimal stamina-based RT reduction (#1114)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* remove strip! from settingsInfo replacement (#1161)&lt;br /&gt;
* map_base.rb sort JSON better (#1171)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* logbook_item recovery when crafted item not in hand (#1175)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* xmlparser.rb capture additional death messaging (#1158)&lt;br /&gt;
* stash.rb ReadyList sheath handling and update inventory checks (#1166)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* allow --add-account to run without yaml and dat (#1143)&lt;br /&gt;
* enable --login for multi-variable custom launch commands (#1144)&lt;br /&gt;
* update.rb pervent update if MIN_RUBY not met (#1146)&lt;br /&gt;
* messaging.rb return &amp;quot;&amp;quot; for xml_encode with Wizard (#1147)&lt;br /&gt;
* prevent closing connection on module reload (#1148)&lt;br /&gt;
* Allow hmr to work on global_defs.rb (#1156)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* buffer split room obj lines and merge instead of appending closing tag to broken line (#1149)&lt;br /&gt;
* add buffering for multiline room players (#1151)&lt;br /&gt;
* add verify_script def here instead of depending on dependency (#1155)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb added updated_at field to upsert_batch (#1145)&lt;br /&gt;
* stowlist.rb check method fix when dead (#1152)&lt;br /&gt;
* readylist.rb check method fix when dead (#1153)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* util.rb only show gem installing debug messaging if gem mis… (#1131)&lt;br /&gt;
* add --gs and --dr, refactor argv_options to helpers (#1133)&lt;br /&gt;
* fix multiple custom entries, improvements to yaml save (#1134)&lt;br /&gt;
* login_tab_utils.rb expand helper text show Warlock (#1135)&lt;br /&gt;
* update CLI for YAML security signature, add auto-convert fo… (#1136)&lt;br /&gt;
* remove password parameter from debug logging in all cases (#1137)&lt;br /&gt;
* reduce minimum GUI window footprint for non-tabbed view (#1138)&lt;br /&gt;
* remove double save in YAML to preserve yaml.bak integrity (#1139)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* stash.rb additional improvements (#1132)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* force system gem install if RubyGems fails (#1126)&lt;br /&gt;
* gui_login prevent destroying window if already destroyed (#1127)&lt;br /&gt;
* add window size / position saves to login GUI (#1128)&lt;br /&gt;
* non tabbed saved entries in reduced button / font size (not… (#1129)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* account manager sorting GUI fix (#1123)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* install_gem_requirements update available gems after install (#1120)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* password_cipher.rb upcase account_name for key (#1118)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* validator.rb change sleep to should_sleep named param (#1116)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* add base stats capture from &#039;info full&#039; command (#1115)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Refocus Frontend (#960)&lt;br /&gt;
* socket configurator to better guard TCPSocket (#976)&lt;br /&gt;
* add simplified DB maintenance (#991)&lt;br /&gt;
* TextStripper module support for XML, HTML, Markdown (#1055)&lt;br /&gt;
* Login modernization and refactor to yaml (#1063)&lt;br /&gt;
* Ruby Memory Releaser module (#1066)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* support meta:trashcan tag for DRCI.dispose_trash (#966)&lt;br /&gt;
* Add GameObj.inv support for DR items (#1080)&lt;br /&gt;
* DRCS allow custom adjective for summoned weapons (#1088)&lt;br /&gt;
* DRParser support for new exp window xml stream elements (rested exp, tdps, favors) (#1104)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Add Armaments (Weapon, Armor, and Shield) Module (#911)&lt;br /&gt;
* add creature module, including Hinterwilds creatures (#1002)&lt;br /&gt;
* Creature module combat tracking (#1003)&lt;br /&gt;
* track time of last total_experience record (#1030)&lt;br /&gt;
* add Injured class for checking ability to perform actions (#1035)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* map dijkstra optimization (#1061)&lt;br /&gt;
* update.rb keep script/data file incase of error on update (#1070)&lt;br /&gt;
* ensure proxy path is set for non-destructive array write-th… (#1073)&lt;br /&gt;
* [lib][global-defs] - move update (#1079)&lt;br /&gt;
* GameObj force new objects ID to be string (#1087)&lt;br /&gt;
* xmlparser.rb gate GSL exits sending behind @send_fake_tags (#1103)&lt;br /&gt;
* change Hash[] pair key conversion to use to_h for Ruby 4.0 (#1108)&lt;br /&gt;
* move gui-login.rb to Ruby standard gui_login.rb (#1111)&lt;br /&gt;
* update location for currency and move game-loader.rb to Ruby standard gameloader.rb (#1112)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRCA allow custom spell prep messaging (#1089)&lt;br /&gt;
* Update Slackbot error handling, and lnet management (#1091)&lt;br /&gt;
* Fix exp mods parsing for DR (#1102)&lt;br /&gt;
* equipmanager.rb support for custom messaging in forester&#039;s longbow (#1105)&lt;br /&gt;
* Fix hang in equipment manager when game doesn&#039;t respond to commands (#1110)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon additional CHE resign regex (#1067)&lt;br /&gt;
* Resource tracking for sorcerer shadow essence (#1085)&lt;br /&gt;
* cman.rb add hamstring regex for already lying down target (#1090)&lt;br /&gt;
* cman.rb hamstring regex update when can&#039;t perform on target (#1092)&lt;br /&gt;
* Bounty parser.rb FWI guard regex update (#1096)&lt;br /&gt;
* currency.rb track gold (#1109)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.12&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (general)&lt;br /&gt;
    Update module strip markdown comments (#1056)&lt;br /&gt;
    Vars/UserVars module fixes and corrections (#1057)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    Infomon parse fix for singular currency (#1051)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (dr)&lt;br /&gt;
    add bput match for system updates preventing actions (#1034)&lt;br /&gt;
    drdefs.rb npc parsing (#1038)&lt;br /&gt;
    Fix container reference in get_item_from_eddy_portal method (#1039)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    bounty location regex needs to match &amp;quot;under&amp;quot; (#1037)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.10&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: games.rb catch additional error for nested single/double quotes (#1031)&lt;br /&gt;
    dr: change keys for DR_SKILLS_DATA[:guild_skill_aliases] to be strings instead of symbols (#1032)&lt;br /&gt;
    gs: Bounty parser for SG npcs matching (#1027)&lt;br /&gt;
    gs: match READY/STOW items with a/an/some inside the link (#1026)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.9&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    gs: StowList/ReadyList reset bug if non-default keys added #1019&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: script.rb show custom at script exit as well (#993)&lt;br /&gt;
    all: Updated update.rb for single trunk and release please (#1001)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.7&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): ensure updates do not target detached proxy views #990 &lt;br /&gt;
fix(gs): bounty parser and move fixes for sailor&#039;s grief #987 &lt;br /&gt;
fix(gs): Infomon xmlparser.rb Ready/Stow fix for LONG before exist #988 &lt;br /&gt;
fix(gs): gameobj.rb for Sailor&#039;s Grief ghostly/boss/guild tentacles #989 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): settings.rb update to preserve root of derived views #975&lt;br /&gt;
fix(all): show custom in various script output when custom script #967&lt;br /&gt;
fix(dr): drparser.rb update for PlayedSubscription #983&lt;br /&gt;
fix(gs): include store location for ReadyList #977&lt;br /&gt;
fix(gs): infomon parser.rb update for ACCOUNT output varies #979&lt;br /&gt;
fix(gs): global_defs.rb move def update for Hive traps #980&lt;br /&gt;
fix(gs): activespell.rb prevent removal of RF Penalty #981&lt;br /&gt;
fix(gs): add .compact to input of Disk.find_by_name #982&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): update.rb word boundary for abbreviations #971&lt;br /&gt;
fix(dr): equipmanager.rb Fix for changed game output. #969&lt;br /&gt;
fix(dr): common-arcana.rb Regalia fix for changed game output. #970&lt;br /&gt;
fix(dr): common-items.rb Fix for changed inventory command output #973&lt;br /&gt;
fix(gs): StowList missing space in capture in xmlparser.rb #963&lt;br /&gt;
fix(gs): stowlist.rb wait for RT when issuing check #964&lt;br /&gt;
fix(gs): readylist.rb wait for RT when issuing check #965&lt;br /&gt;
fix(gs): Bounty heirloom return msg&#039;ing update #972&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
build(all): installer.yml use windows-2022 #950&lt;br /&gt;
fix(all): restore Wrayth / Wizard script execution ability #952&lt;br /&gt;
fix(all): database_adapter.rb error handling improvement #956&lt;br /&gt;
fix(dr): common-items.rb wear/remove messaging additions #949&lt;br /&gt;
fix(dr): games.rb - ignore UIDs for Frostbite mapping #951&lt;br /&gt;
fix(dr): map_dr.rb prevent inadvertent settings changes #958&lt;br /&gt;
fix(gs): GameObj targets for new Sailor&#039;s Grief tentacle npc #948&lt;br /&gt;
fix(gs): map_gs.rb remove delete_if to prevent bad settings #957&lt;br /&gt;
fix(gs): weapon.rb assault break if no targets #962&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): limitedarray.rb max_size increase #946&lt;br /&gt;
fix(all): uservars.rb update for vars method missing #940&lt;br /&gt;
fix(dr): drparser.rb to set ShowRoomID to on if turned off #945&lt;br /&gt;
fix(gs): change namespace accessors to Ruby 2.6 compatible #944&lt;br /&gt;
fix(gs): infomon state reset on status prompt #943&lt;br /&gt;
fix(gs): Societies to check membership for various methods #942&lt;br /&gt;
fix(gs): standardize warcry.rb to match other PSMS #941&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(gs): infomon parser.rb for profile full name matching #938&lt;br /&gt;
fix(gs): force PROFILE FULL to sync CHE info for infomon #937&lt;br /&gt;
fix(dr): Tighten checks on releasing invisibility for thieves #936&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): gameobj.rb - add type? method for explicit type check #928&lt;br /&gt;
- fix(all): messaging.rb encoding issue #933&lt;br /&gt;
- fix(gs): Various CMan cost corrections #932&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- feat(all): settings.rb - proposal for sequel based Settings #591, #875, #889, #896, #927&lt;br /&gt;
- feat(all): util.rb add Ruby gem install helper method #861&lt;br /&gt;
- feat(all): messaging.rb add cmd link method #866&lt;br /&gt;
- refactor(all): games.rb modernization #849, #882, #924&lt;br /&gt;
- fix(all): add class extensions #800&lt;br /&gt;
- fix(all): lich.rb deprecated FE message #852&lt;br /&gt;
- fix(all): messaging.rb fix XML encoding for wizard and avalon #853&lt;br /&gt;
- fix(all): lich.rb class variable not initialized #855&lt;br /&gt;
- fix(all): log.rb force msg to String for regexp comparison #856&lt;br /&gt;
- fix(all): global_defs.rb bug in fput #864&lt;br /&gt;
- fix(all): messaging.rb xml_encode mono method msg #868&lt;br /&gt;
- fix(all): script.rb class to is_a? checks #878&lt;br /&gt;
- fix(all): gameobj.rb deeper lookup #885&lt;br /&gt;
- fix(all): messaging.rb debug not compared to falseclass #887&lt;br /&gt;
- fix(all): change class to is_a? checks #91-3&lt;br /&gt;
- fix(all): Util.issue_command allow single line captures #918&lt;br /&gt;
- fix(dr): drparser.rb casing for Premium status check #842&lt;br /&gt;
- fix(dr): map_dr.rb Don&#039;t assign UID of zero to rooms #844&lt;br /&gt;
- fix(dr): drparser.rb add $last_logoff tracking #851&lt;br /&gt;
- fix(dr): update message patterns in common-items #859&lt;br /&gt;
- fix(dr): add moon_visible?(moon) convenience method to common-moonmage #860&lt;br /&gt;
- fix(dr): exp mods output is not enclosed in preset xml tags anymore #870&lt;br /&gt;
- fix(dr): update.rb beta send validation for genie lich char #880&lt;br /&gt;
- fix(dr): Update regex and parsing for active spells #894&lt;br /&gt;
- fix(dr): add &#039;You scoop&#039; match pattern to common-items #900&lt;br /&gt;
- fix(dr): add missing match patterns #901&lt;br /&gt;
- fix(dr): common-items: add and fix match strings #904&lt;br /&gt;
- fix(dr): Add missing matches for common-items #905&lt;br /&gt;
- fix(dr): Release Khri Vanish if Thief, when going visible #906&lt;br /&gt;
- fix(dr): Fix race condition when clearing and repopulating XMLData.dr_active_spells #907&lt;br /&gt;
- fix(dr): Fix SLS release pattern #908&lt;br /&gt;
- fix(dr): resolve race condition in DR crafting_magic_routine #914&lt;br /&gt;
- fix(dr): xmlparser.rb - Fix XMLData.dr_active_spells race condition #915&lt;br /&gt;
- fix(dr): xmlparser.rb - Clear out spells properly #916&lt;br /&gt;
- fix(dr): drparser.rb update for Platinum account status #922&lt;br /&gt;
- feat(gs): gameobj.rb allow for custom gameobj data #848&lt;br /&gt;
- feat(gs): PSMS updates, including CMan.use #865, #874, #881, #890, #899&lt;br /&gt;
- feat(gs): ReadyList &amp;amp; StowList classes for item tracking #884&lt;br /&gt;
- feat(gs): Breakout and Buildout Societes #919&lt;br /&gt;
- fix(gs): infomon parsing for CHE membership #841&lt;br /&gt;
- fix(gs): map_gs.rb for no UID when hexdigest used #843&lt;br /&gt;
- fix(gs): warcry.rb yowlp :buff to string instead of regexp #847&lt;br /&gt;
- fix(gs): group.rb multiple corrections #850, #869, #883&lt;br /&gt;
- fix(gs): Bounty parser.rb fix for HW &amp;amp; KF guard return #862&lt;br /&gt;
- fix(gs): Bounty task.rb fix for assigned? and Ruby 2.6 #863&lt;br /&gt;
- fix(gs): stash.rb stale sheaths recheck #867&lt;br /&gt;
- fix(gs): allow spell.rb casting to take a force_stance parameter #902&lt;br /&gt;
- fix(gs): update Infomon parsing for new ACCOUNT output format #903&lt;br /&gt;
- fix(gs): PSMS cost for multiple cost types &amp;amp; add Excoriate feat #912&lt;br /&gt;
- fix(gs): Feat excoriate regex correction #920&lt;br /&gt;
- fix(gs): weapon PSM affordable check against Glorious Momentum #926&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): restore @theme_state and add to CLI capability #795&lt;br /&gt;
- fix(all): retire gtk2 monkey patch for gtk3 #823&lt;br /&gt;
- fix(all): games.rb XMLData.name wait till both not NIL and not EMPTY #826&lt;br /&gt;
- fix(all): standardize xmlparser game instance #827&lt;br /&gt;
- fix(all): games.rb fix multiple single and double quote in XML #832,836,837&lt;br /&gt;
- fix(dr): games.rb - optional hide Room Title display of Real IDs with FLAG on #782&lt;br /&gt;
- chore(dr): common-moonmage - refactor of peer_telescope #783&lt;br /&gt;
- fix(dr): move HMR load to common before for dragonrealms #784&lt;br /&gt;
- fix(dr): common-crafting.rb minor edit to add &amp;quot;You tuck&amp;quot; #787&lt;br /&gt;
- fix(dr): common-arcana.rb - remove unecessary pause from discern code #792&lt;br /&gt;
- fix(dr): drparser.rb Restore Premium status checking #834&lt;br /&gt;
- fix(gs): migrate PSMS.name_normal to Lich::Util.normalize_name #790,833&lt;br /&gt;
- fix(gs): add Char.che to know current character&#039;s CHE #791&lt;br /&gt;
- fix(gs): FEAT and Infomon module parsing of new Covert Art feats. #796&lt;br /&gt;
- fix(gs): add Currency.gemstone_dust and fix redsteel mark capture #797&lt;br /&gt;
- fix(gs): FEAT Covert Arts colon normalization and stamina costs #799&lt;br /&gt;
- fix(gs): escape dash in regex for HouseCHE #824&lt;br /&gt;
- fix(gs): disk.rb comparison helpers #828&lt;br /&gt;
- fix(gs): allow for Group.disks to show self disk in array #829&lt;br /&gt;
- fix(gs): feat.rb Covert Arts throw poison costs 15 stam #830&lt;br /&gt;
- fix(gs): add missing Feat.use ability #831&lt;br /&gt;
- fix(gs): multiple CritRanks updates #801-822&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- [all] - chore: Namespace &amp;amp; File Path Updates #713&lt;br /&gt;
- [all] - [argv_options.rb] bugfix: correct darkmode to work via CLI #693&lt;br /&gt;
- [all] - [games.rb] feat: make show Room Exits of non-StringProc/Obvious Exits toggable for all games #699&lt;br /&gt;
- [all] - [games.rb] feat: toggleable display of StringProcs with clickable links #751&lt;br /&gt;
- [all] - [gui-manual-login.rb] fix: change label to Wrayth #720&lt;br /&gt;
- [all] - [gui-saved-login.rb] fix: update Stormfront label #721&lt;br /&gt;
- [all] - [update.rb] fix: purge old LIB folder prior to update release #729&lt;br /&gt;
- [all] - [util.rb] bugfix: allow issue_command to use fput or put #715&lt;br /&gt;
- [all] - [xmlparser.rb] feat: add XMLData.room_name attribute #685&lt;br /&gt;
- [all] - [main.rb] fix: create session file in regular connect method #733&lt;br /&gt;
- [all] - [init.rb] bugfix: error for Windows DISPLAY variable #735&lt;br /&gt;
- [all] - [main.rb] fix: Mudlet support #736&lt;br /&gt;
- [all] - [wine.rb] fix: add --no-wine CLI flag prevent WINE startup&lt;br /&gt;
- [all] - [init.rb] fix: add --no-gtk CLI flag prevent GTK3 gem load&lt;br /&gt;
- [dr] - [games.rb] feat: DRinfomon and common files as core lich libraries #686&lt;br /&gt;
- [dr] - [games.rb] chore: add DR requires here #690&lt;br /&gt;
- [dr] - [games.rb] fix: add Room# display for DR #697&lt;br /&gt;
- [dr] - [games.rb] bugfix: Genie FE real ID#s not supported, hide by default #728&lt;br /&gt;
- [dr] - [drdefs.rb] bugfix: fix for Shadow Servants #710&lt;br /&gt;
- [dr] - [map_dr.rb] fix: cleanup and support for UIDs #719&lt;br /&gt;
- [dr] - [xmldata.rb] bugfix: add support for DR Room IDs #716&lt;br /&gt;
- [dr] - [xmlparser.rb] feat: XMLData - adding dr_active_spells #691&lt;br /&gt;
- [gs] - [games.rb] bugfix: support for pre/post room name txt #683&lt;br /&gt;
- [gs] - [group.rb] chore: update to account for hold #701&lt;br /&gt;
- [gs] - [resource.rb] feat: add additional tracking of covert art charges #714&lt;br /&gt;
- [gs] - [spell.rb] bugfix: Spell.affordable? 515 release #687&lt;br /&gt;
- [gs] - [stash.rb] bugfix: sheath_bags when not found #694&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: missing real ID in nav #684&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: Claim module obvious hiding #717&lt;br /&gt;
- [gs] - [sk.rb] feat: Self-Knowledge functionality in core #748&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: Simu XML breaking change RoomID #679&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [crit_tables] fix: CritRanks regex fixes (multiple files and changes) #671&lt;br /&gt;
-o- [GS4] - [spellsong.rb] fix: Correct Spellsong sync method #674&lt;br /&gt;
-o- [GS4] - [parser.rb] fix: thorn status regex correction #673&lt;br /&gt;
-o- [All] - [xmlparser.rb] fix: Split out if elif block to account for DR having multiple… #670&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: percentconcentration #676&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: update move failure message to handle attack and casting #667&lt;br /&gt;
-o- [All] - [init.rb] fix: update required ruby check messaging #669&lt;br /&gt;
-o- [All] - [sessionvars.rb] feat: new module SessionVars for non-persistent variable storage #666&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [DR] - [games.rb] bugfix: tweak XML rewrite section #662&lt;br /&gt;
-o- [GS4] - [crit_tables] bugfix: additional crit table regex corrections #663&lt;br /&gt;
-o- [GS4] - [ascension.rb] bugfix: add new Transcend Destiny to lookups #661&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: regexp escape txt #660&lt;br /&gt;
-o- [GS4] - [disruption_critical_table.rb] Bugfix in regex #659&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [games.rb] bugfix: prevent race condition in games thread #656 &lt;br /&gt;
-o- [All] - [init.rb] bugfix: address WINE variance between linux / installs #655&lt;br /&gt;
-o- [GS4] - [gs][stash.rb] bugfix: wear code improvement #657 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [main.rb] bugfix: correct encoding for WizardFE PR #640&lt;br /&gt;
-o- [All] - [games.rb] bugfix: correct logic for room detection when using CLI --start-scripts PR #639&lt;br /&gt;
-o- [All] - [DB_Store.rb] feat: add direct support for Simu RENAME and CHANGE PROF PR #633&lt;br /&gt;
-o- [All] - chore: breakout code to individual files for easier management PR #617&lt;br /&gt;
-o- [All] - [lich.rbw] chore: add deprecated msg to old Settings/GameSettings/CharSettings methods PR #589&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add new --dark-mode CLI option PR #583&lt;br /&gt;
-o- [All] - [global_defs.rb] bugfix: monsterbold fix for additional clients PR #581&lt;br /&gt;
-o- [All] - [update.rb] feat: update core scripts from source on Lich5 update/install PR #579&lt;br /&gt;
-o- [All] - [log.rb] feat: add new Log module copied from Olib PR #577&lt;br /&gt;
-o- [All] - [numeric.rb] feat: add days/hours/minutes/seconds methods to numerics PR #623&lt;br /&gt;
-o- [All] - [messaging.rb] feat: WizardFE Voln window support #647&lt;br /&gt;
-o- [All] - [init.rb] bugfix: WINE entries for Linux / MacOS #649&lt;br /&gt;
-o- [DR] - [lich.rbw] bugfix: cleanup downstream hook exclusions PR #593&lt;br /&gt;
-o- [DR] - [global_defs.rb] bugfix: missing climb failure message PR #592&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: show non-standard Effects in `;magic` output PR #641&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: fix WARCRY duplication results / add WALL OF THORNS effect detection PR #634 / PR #637&lt;br /&gt;
-o- [GS4] - [critranks.rb] feat: add critical rank resolution tables and methods PR #625&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: to support regex for active? &amp;amp; time_left PR #590&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: add implicit NPC death monitoring PR #588&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: change PSM to be stored as type.mnemonic PR #587&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: strip_xml multiline fix PR #584&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: fix sack detection to use Stash.container(param) PR #578&lt;br /&gt;
-o- [GS4] - [spell.rb] feat: Spell.after_stance #644 &lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: for Claim module #646&lt;br /&gt;
-o- [GS4] - [infomon] feat: track Voln favor via RESOURCE output #648&lt;br /&gt;
-o- [GS4] - [gameobj.rb] feat: add Bandit hidden target API #650&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: proper leader detection from GROUP output&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back depracted Char.maxvitals with msging to switch to new Char.max_vitals methods&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: group.check syntax change&lt;br /&gt;
-o- [GS4] - [spell.rb] bugfix: affordable? Char.mana parenthesis logic&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] -  feat: sqlite3 gem syntax code cleanup PR#553&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: remove unused Setting, GameSetting, CharSetting PR#542&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: scrub login key from error message popups PR#548&lt;br /&gt;
-o- [All] - [messaging.rb] bugfix: color mismatch WizardFE white txt PR#554&lt;br /&gt;
-o- [All] - [lich.rb] feat: add new Lich.deprecated method to aid in deprecating older API calls PR#523&lt;br /&gt;
-o- [GS4] - [char.rb] feat: log method_missing calls PR#552&lt;br /&gt;
-o- [GS4] - [char.rb] feat: add missing global_def related methods PR#523&lt;br /&gt;
-o- [GS4] - [global_defs.rb] feat: deprecate various Char module methods PR#523&lt;br /&gt;
-o- [GS4] - [spellsong.rb] bugfix: cache spellsong duration calc PR#551&lt;br /&gt;
-o- [GS4] - [effects.rb] feat: Effects module breakout PR#549&lt;br /&gt;
-o- [GS4] - [group.rb][disk.rb] feat: Group &amp;amp; Disk class PR#532&lt;br /&gt;
-o- [GS4] - [activespell.rb] feat: add duration change messaging, off by default, see ;help for details PR#487&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add Game:Character to debug log file ouput&lt;br /&gt;
-o- [All] - [init.rb] feat: add milliseconds to debug filename&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: reorder parsing of $SERVERSTRING to avoid certain conflicts&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: update for new Empath resource and sleep/bind messaging&lt;br /&gt;
-o- [GS4] - [status.rb] bugfix: bound? calmed? and sleeping? support for spellnames flag being off&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: additional creature dying messaging to check against XML dead not being sent&lt;br /&gt;
-o- [GS4] - [gameobj.rb] bugfix: remove sorcerer arms and animates from GameObj.targets&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - Ruby 3.3 compatibility&lt;br /&gt;
-o- [All] - [lich.rbw] feat: adds .sources for up/downstream hooks&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: don&#039;t use WINE for custom frontends&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back Char.stance&lt;br /&gt;
-o- [GS4] - [claim.rb] feat: new module and associated changes to xmlparser&lt;br /&gt;
-o- [GS4] - [experience.rb] feat: percent experience options&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow for negative TNL exp value&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow hyphenated last names in character names&lt;br /&gt;
-o- [GS4] - [parser.rb] feat: update resource matching for new Bard service&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: catch more shield removal messages&lt;br /&gt;
-o- [GS4] - [util.rb] bugfix: underscore issue for PSMs&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.7.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Supports Ruby 3.2 - security enhancements and huge speed improvements for regex&lt;br /&gt;
-o- New libraries/modules/classes: Account, HMR (Hot Module Reloading)&lt;br /&gt;
-o- GS4 Infomon now baked into Lich5 as a library, no more need to run standalone script&lt;br /&gt;
-o- New GS4 libraries/modules/classes: Ascension, Bounty, Currency, Experience, Resources, Society, Status, Warcry&lt;br /&gt;
-o- Updates to existing libraries/modules/classes: Armor, Util, Weapon, Spell, GameObj, Messaging&lt;br /&gt;
-o- Several Bugfixes for lots of things&lt;br /&gt;
-o- Lots of code cleanup&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML errors&lt;br /&gt;
-o- Adds the DR Plat instance for Frostbite FE&lt;br /&gt;
-o- Adds ‘ball’ as the noun used for ‘ball and chain’&lt;br /&gt;
-o- Adds the movement result ‘slip in the mud and fall flat’&lt;br /&gt;
-o- Corrects stamina cost for the feature Dispel Magic&lt;br /&gt;
-o- Plus all the latest script updates from Elanthia-Online!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML to limit login errors (DR)&lt;br /&gt;
-o- Fix for XMLData.active_spells to properly register wizard &#039;recovery&#039; spell cooldowns&lt;br /&gt;
-o- Messaging updates to remove error in Wizard FE encodings&lt;br /&gt;
-o- Corrects for error in detecting PSM skill changes (cman) via warrior / rogue guild lessons&lt;br /&gt;
-o- Deprecates LNet script from master repository&lt;br /&gt;
-o- Miscellaneous small bug squashing&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.6.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- (DragonRealms) Support for Genie and Frostbite frontends&lt;br /&gt;
-o- (GemStone) Changed methods to improve ;go2 speed and reduce lich.db3 calls&lt;br /&gt;
-o- (GemStone) Updates to support silver_count function&lt;br /&gt;
-o- (Both) Changed method for updating lich ecosystem&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.5.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for DragonRealms&lt;br /&gt;
-o- Updated support for scripts like BigShot&lt;br /&gt;
-o- Providing the LichID and UID on Profanity&lt;br /&gt;
-o- Spell.force_incant, .force_channel, and .force_evoke&lt;br /&gt;
-o- Standardized message method for script authors&lt;br /&gt;
-o- Sundry small improvements / fixes and changes&lt;br /&gt;
-o- And the creme de la creme - a custom directory&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.4.0&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Simu Room IDs (formally called &#039;unique ID&#039; or &#039;uid&#039; for Lich) added to Map, mapDB where known, and ;go2 for navigation (courtesy Xanlin and with our thanks!) ;go2 u7120 for all you ex-GMs out there. &lt;br /&gt;
-o- Room titles will now display the Lich ID and / or the UID for the room based on user selections - default is on for both, and enabled / disabled via Lich.display_lichid or Lich.display_uid toggles that can be set to on / off or true / false. (;e Lich.display_lichid=true/false and ;e Lich.display_uid=true/false) You can remove that rnum from your autostart now! To gain the benefit of the UID deployment, be sure to ;repo download-mapdb&lt;br /&gt;
-o- REQUESTS: Drop 5 minute timeout function from Lich&lt;br /&gt;
-o- waitrt? and waitcastrt? will still pause activities, but will return TRUE or FALSE in keeping with the Ruby functionname? tradition (no more failing to get a weapon out due to RT from climbing!)&lt;br /&gt;
-o- empty_hands and fill_hands will now check to see if the character is in roundtime before trying to put away or retrieve held items&lt;br /&gt;
-o- Infomon received an update that keeps spell timers in sync with the information received from the server - no more need to immediately do a spell active in game to get the right times to display for various legacy scripts and ;magic after visiting the invoker or using an SK item&lt;br /&gt;
-o- Lich now provides a facility to get current coins on the character that is a bit more agnostic to data changes from Simu - Lich::Util.silver_count&lt;br /&gt;
-o- Various other small tidbits to help ease maintenance and future development&lt;br /&gt;
-o- PLEASE NOTE:  This update is required for the newest Bigshot (released today!) and for future eloot and eherbs scripts (release RSN)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.3.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Added support for Wrayth (renamed Stormfront) installations &lt;br /&gt;
-o- Converted Linux | WINE login methods to &#039;method 0&#039;, does not use Simu launcher&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.2.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for STOWing items irrespective of special item scripts&lt;br /&gt;
-o- Improved query support for Effects and CMans&lt;br /&gt;
-o- Fix Lich bug to respect the &#039;groupmovement&#039; flag in game&lt;br /&gt;
-o- Fix Lich round time calculations (more aggressive timing)&lt;br /&gt;
-o- Dark Mode is now a thing&lt;br /&gt;
-o- Lich4 Style GUI layout available&lt;br /&gt;
-o- Several file location changes to support future code change efforts&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.19&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Benefit: Monks with Mental Acuity (all 3 of you) rejoice - stamina casting!&lt;br /&gt;
-o- Benefit: PSM3 included, no charge. No hair remaining, either!&lt;br /&gt;
-o- Benefit: Ok, stay seated: Some of your various SF spell duration windows may work. . . better? Yes, not perfect, but better. No pictures, please!&lt;br /&gt;
-o- Updated infomon that properly detects Cloak of Shadows on those pesky sorcerers, and the Raise Dead Cooldown periods for those wondrous clerics.&lt;br /&gt;
-o- A new update process for Lich 5 - tired of having to download that script over and over just to update? Get yourself a copy of lich5-update.lic. Note, if you already have it, you&#039;re set! If not - ;jinx script install lich5-update --repo=elanthia-online&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Updated the method used to log onto SIMU servers.&lt;br /&gt;
-o- Added the Animalist item specifics to Lich5&#039;s empty and fill hands routines&lt;br /&gt;
-o- Improved Invoker messages for Avalon and Wizard FEs (no change for SF FE)&lt;br /&gt;
-o- Improved cleanup and store methods when player EXIT&#039;s or QUIT&#039;s game&lt;br /&gt;
-o- Crafted two new methods (stash_hands and equip_hands) for future script use&lt;br /&gt;
-o- Some behind-the-scenes cleanup to improve maintaining the Lich5 ecosystem&lt;br /&gt;
-o- Add Spell Active improvements&lt;br /&gt;
-o- Add PSM and Ranger improvements&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
* [[Mac Installation - Lich (software)]]&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
[[Category:New Player]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=266001</id>
		<title>Lich:Software/Installation</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=266001"/>
		<updated>2026-10-08T21:27:21Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Installing the Latest Stable Release */ update to 5.22.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
=About=&lt;br /&gt;
&lt;br /&gt;
Lich is an add-on scripting engine that works alongside existing front ends.  The most common installation is a combination of Lich on Windows using the Wrayth or Wizard FE. Lich is also used by many on both MacOS and multiple Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=Installing the Latest Stable Release=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The latest stable lich version is 5.22.0 supporting Ruby 4.0 - published October 8, 2026&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==In-Place Upgrade==&lt;br /&gt;
&lt;br /&gt;
If you are on an older version of Lich 5 and want to upgrade to the most current version, you can choose to either upgrade Lich5 only or both Lich 5 and Ruby. If you&#039;re currently on Lich 4, able to check by running the command &amp;lt;CODE&amp;gt;;e echo LICH_VERSION&amp;lt;/CODE&amp;gt;, go to the [[#Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)|upgrade from Lich 4 section]].&lt;br /&gt;
&lt;br /&gt;
For each section, please follow the directions/commands one at a time.&lt;br /&gt;
&lt;br /&gt;
===Lich 5 Only===&lt;br /&gt;
&lt;br /&gt;
====Lich 5.7 or newer====&lt;br /&gt;
# You must be running Ruby 4.0 or greater for Lich 5.19 +.  If unsure, please update both (see below)!&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Run this command in-game &amp;lt;CODE&amp;gt;;lich5-update --update&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
====Lich 5.6 or older====&lt;br /&gt;
Please proceed to updating both Ruby and Lich 5&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 4.0 &amp;amp; Lich 5===&lt;br /&gt;
This method is for Windows only. Linux and MacOS users, please do a Lich 5 only update and update Ruby manually via normal install/update methods for the OS.&lt;br /&gt;
&lt;br /&gt;
# Logout of all characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall existing Ruby4Lich5 installs from Programs &amp;amp; Features control panel, or alternatively, rename your existing Ruby4Lich5 folder to Ruby4Lich5save. (Defaults to C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the installer and be sure to have both Ruby and Lich 5 option selected&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich &amp;amp; Ruby!&lt;br /&gt;
&lt;br /&gt;
===Ruby 4.0 Only===&lt;br /&gt;
Use this to upgrade to the newest version of Ruby only if you&#039;re already on the latest version of Lich5 and now want to update Ruby afterwards. If you&#039;re not already on the latest version of Lich5, please use previous section steps instead.&lt;br /&gt;
# Logout of all instances/characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall your existing Ruby4Lich5 install via Programs &amp;amp; Features (ensure it&#039;s now gone, default location was C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the new installer and choose to only install Ruby Only&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version Ruby!&lt;br /&gt;
&lt;br /&gt;
==Windows New Installation==&lt;br /&gt;
&lt;br /&gt;
{{blue|These instructions are not for DragonRealms. [[#Ecosystem Information|For those scroll to the bottom]].}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows 11 / 10 / 8 / 7&#039;&#039;&#039; users: you can download the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and install everything you need automatically. Click on the &#039;&#039;&#039;Ruby4Lich5.exe&#039;&#039;&#039; and download it to your computer then double click on the executable in your default download folder. Note, a user may need to adjust their browser or security settings to allow download and installation.&lt;br /&gt;
If you have never played before, follow the &#039;New Installation&#039; instructions. If you have played before, and have used Lich before, follow the &#039;Upgrade Installation&#039; instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Installation for Lich 5 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Please log into the game of your choice through the Simutronics website first&#039;&#039;&#039;.  Install the launcher (not SGE), and install your FrontEnd of Choice.  The Wrayth FrontEnd is presently the supported FrontEnd, but Wizard will work as well, if you are nostalgic.  After you&#039;ve logged in, log out and continue.&lt;br /&gt;
# Download and Run the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe  Installer]. You will receive the Microsoft Warning because this is not distributed through the MS Store.  Click on &#039;More Info&#039; and then select the &#039;Run Anyway&#039; button.&lt;br /&gt;
# The installation may take a few minutes, especially on non-SSD harddrives.&lt;br /&gt;
# A Lich5 folder will be placed on your desktop after the install is finished, open that folder and double click the lich.rbw file contained inside to start Lich&#039;s Game Entry window.&lt;br /&gt;
# Use your existing Simutronics Account and Password and click connect.  Then select the character you wish to play, and select the FrontEnd you wish to use.  Then click the Play button.&lt;br /&gt;
# Your game FrontEnd should start, and you should see Lich5 initializing.  You will see it downloading files - these are the map files, wait for the download to finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
This option is deprecated.  Lich 5 architectures are not compatible with Lich 4. Back up your existing Lich 4 folder, uninstall any existing Ruby executables, and then follow the instructions for a new install above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional assistance in installation can be found in the scripting channel of the GemStone [https://discord.gg/KF9Wr8u Discord].&lt;br /&gt;
&lt;br /&gt;
==MacOS==&lt;br /&gt;
There two common options for playing Gemstone IV on a Mac is either to play natively with Avalon or to use virtualization software such as Parallels with Wrayth/WizardFE. Below are the options on how to do that.&lt;br /&gt;
&lt;br /&gt;
===Native Avalon===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. This process works well for Mac OS Catalina and Big Sur. If you have not updated your Mac OS yet, these instructions may work depending on your actual version.  If you run into a snag, follow the contact instructions provided.&lt;br /&gt;
&lt;br /&gt;
===Parallels Windows===&lt;br /&gt;
With the latest releases of Ruby4Lich5 installer, you can now follow the normal Windows installation for both Intel and Apple silicon based Apple computers.&lt;br /&gt;
&lt;br /&gt;
To install Wrayth/WizardFE, Lich, and Ruby via Parallels you will need to do a few various steps as outlined below. Please note, the rubyw file in C:\Ruby4Lich5\X.X.X\bin may be set to run in compatibility mode for windows 7.  On an ARM Mac running parallels, this may causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file could fixe this issue if it was enabled.&lt;br /&gt;
&lt;br /&gt;
The following steps are to be done AFTER you&#039;ve successfully installed Wrayth/WizardFE and can login normally without Lich5 on the machine. Once you&#039;ve done that and can successful connect normally, then follow these steps:&lt;br /&gt;
# Download and install [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and use default options presented during install&lt;br /&gt;
# Double click the lich.rbw file that is now located in the extracted Lich5 location you did above. Login and play as usual.&lt;br /&gt;
&lt;br /&gt;
==Chromebook &amp;amp; Debian variants==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-debian&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-debian&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Debian/Chromebooks. Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1.&#039;&#039;&#039; &lt;br /&gt;
Update the list of available software and make sure some requirements are installed:&lt;br /&gt;
&amp;lt;!-- don&#039;t think I&#039;m gonna include this stuff but might as well not delete it.&lt;br /&gt;
:&amp;lt;small&amp;gt;sudo: as a super-user&amp;lt;/small&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;apt-get: Debian&#039;s software repository&amp;lt;/small&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;-y: answer all questions yes&amp;lt;/small&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get -y update&lt;br /&gt;
sudo apt-get -y install autoconf bison build-essential curl libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libsqlite3-dev git unzip libcairo2-dev libgirepository1.0-dev libgtk-3-dev gobject-introspection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing Ruby installation rather than installing from scratch, skip steps 2, 3, and 4.  Instead, update your ruby-build with the following command, and then proceed to Step 5.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2.&#039;&#039;&#039;&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3.&#039;&#039;&#039;&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4.&#039;&#039;&#039;&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Arch Linux &amp;amp; Arch-based distributions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-arch&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-arch&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
Update the system and install required dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pacman -Syu&lt;br /&gt;
sudo pacman -S --needed base-devel openssl libyaml readline zlib ncurses libffi gdbm sqlite git unzip curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby 3.4.5 and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fedora==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-fedora&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-fedora&amp;quot;&amp;gt;&lt;br /&gt;
Currently supported versions of Fedora&lt;br /&gt;
* 41 uses Ruby 3.3&lt;br /&gt;
* 42 uses Ruby 3.4&lt;br /&gt;
* 43 uses Ruby 3.4&lt;br /&gt;
All of which are currently compatible with Lich 5.7.0 or higher.&lt;br /&gt;
&lt;br /&gt;
1. Update The Base Installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf -y update&lt;br /&gt;
$ sudo dnf -y install vim git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Install required Ruby and Development packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf install -y autoconf bison cairo-devel curl gcc gdbm gdbm-devel gdk-pixbuf2-devel glib2-devel \&lt;br /&gt;
gobject-introspection-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5a. Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5b. Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Popular Scripts=&lt;br /&gt;
{{#section:Lich:Script Repository|popularscripts}}&lt;br /&gt;
&lt;br /&gt;
=Ecosystem Information=&lt;br /&gt;
&lt;br /&gt;
* DragonRealms Variant - [https://elanthipedia.play.net/Lich_script_repository#Setup_and_Installation Setup and Install instructions]&lt;br /&gt;
&lt;br /&gt;
=Lich Changelog=&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-changelog&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-changelog&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.20.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* bound EAccess auth with a timeout so a stalled SGE backend can&#039;t hang Lich silently (#1502)&lt;br /&gt;
* Linux WINE and Wrayth FE detection (#1517)&lt;br /&gt;
* update Gemstone game-code validations (#1518)&lt;br /&gt;
* preserve bundled display-state tags on quiet-suppressed chunks (#1530)&lt;br /&gt;
* prevent a stray formatting character from appearing in Saga during quiet script output (#1532)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* make $safe_pause_lock holder immune to pause (#1525)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* critranks.rb tolerate nil table rows, fix reload!, index patterns … (#1522)&lt;br /&gt;
* combat module hardening - ordered processing, 22x faster parsing, double-count fix (#1523)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.20.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add concurrent runtime I/O and multi-client detach support (#1459)&lt;br /&gt;
* --bind-address speaks the same keywords as --detachable-client (#1461)&lt;br /&gt;
* GUI Launcher Improvements (#1463)&lt;br /&gt;
* Add supervised child script APIs (01 of 06) (#1474)&lt;br /&gt;
* Add forced script teardown command (06 of 06) (#1479)&lt;br /&gt;
* teardown and distinguishable errors for Script.run_child (#1501)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRCMM.moon_weapon_duration - read a moon weapon&#039;s remaining life (#1483)&lt;br /&gt;
* id-based creature tracking from crtrStatus + assess (#1485)&lt;br /&gt;
* capture room UID from &amp;lt;nav&amp;gt; tag; stop enforcing ShowRoomID; opt-in room-id placement (#1491)&lt;br /&gt;
* user-extensible scroll substitutions via settings (01 of 06) (#1512)&lt;br /&gt;
* user-extensible boxes and trash receptacles (03 of 06) (#1514)&lt;br /&gt;
* user-extensible summoned-weapon adjectives (04 of 06) (#1515)&lt;br /&gt;
* user-extensible flavor-text stripping (05 of 06) (#1516)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* gameobj add full_name matcher to type/sellable classification (#1453)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* prevent empty/partial GameObj registry reads during mid-stream refresh (#1370)&lt;br /&gt;
* no-op Gtk.lich_main_quit when no main loop is nested (#1464)&lt;br /&gt;
* correct path-flag aliases and document all path options (#1472)&lt;br /&gt;
* Synchronize script lifecycle transitions (02 of 06) (#1475)&lt;br /&gt;
* Coordinate script shutdown draining (03 of 06) (#1476)&lt;br /&gt;
* Harden script lifecycle ownership (05 of 06) (#1478)&lt;br /&gt;
* surface the underlying LoadError in dependency alerts (#1480)&lt;br /&gt;
* extract game-agnostic CreatureBase into lib/common (#1484)&lt;br /&gt;
* bound GemCheck alert dialogs with a timeout so they can&#039;t hang forever (#1488)&lt;br /&gt;
* identify Genie as the frontend for headless launches (#1490)&lt;br /&gt;
* restore detachable client disconnect notice to stdout (#1492)&lt;br /&gt;
* harden detachable client teardown and escape init payload (#1493)&lt;br /&gt;
* resolve GameObj status visibility during staged  refresh (#1497)&lt;br /&gt;
* compact client write queue instead of ending the session (#1498)&lt;br /&gt;
* scrub startup credentials once login completes (#1499)&lt;br /&gt;
* Honor Simu-side teardown for 10 seconds (#1505)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* resolve no-UID rooms carrying a stored UID instead of returning nil (#1467)&lt;br /&gt;
* equipmanager.rb - reliable ranged-weapon transitions - stow ammo after unload + verify offhand wield hand (#1468)&lt;br /&gt;
* common-healing.rb -  DRCH.bind_wound: only dispose a dislodged item while it is in hand (#1469)&lt;br /&gt;
* preserve game RealID in room title (GS parity for &amp;quot;;display roomid title&amp;quot;) (#1500)&lt;br /&gt;
* Refine need_buffs? logic for non-recast spells to correctly check cyclic spells. (#1503)&lt;br /&gt;
* reduce symbol-torn scale scrolls to gettable noun (#1506)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* lower game socket keepalive idle from 120s to 30s (#1449)&lt;br /&gt;
* resilient ActiveSessions ownership + shutdown watchdog (#1452)&lt;br /&gt;
* Quit Gtk.main cleanly (#1455)&lt;br /&gt;
* Refactor regex to string comparisons for ARGV options (#1456)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* ingest newly-exposed mindState experience and roommeta room fields (#1450)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add character generator support via EAccess protocol (#1384)&lt;br /&gt;
* Add modern script command shutdown method (#1385)&lt;br /&gt;
* migrate the server-stream parser from REXML to Ox, with pipe-mode benchmark harness and DR parser coverage (#1396)&lt;br /&gt;
* enumerate script subdirs with file glob (#1397)&lt;br /&gt;
* add --bind-address option to set listen socket address (#1405)&lt;br /&gt;
* add central method to determine lich ver (#1417)&lt;br /&gt;
* setup_files: support scripts/data/custom for user data overrides (#1431)&lt;br /&gt;
* Modify running? method to support optional exact matching of script names (#1436)&lt;br /&gt;
* keyword bind hosts for the detachable client (tailscale/lan/any) (#1437)&lt;br /&gt;
* add roomlinks/roommono toggles for room display (#1438)&lt;br /&gt;
* self-healing gem requires (#1439)&lt;br /&gt;
* various Saga FE compatibility tweaks (#1443)&lt;br /&gt;
* add macOS limited gem recovery (#1448)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Capture combat position from the balance status line (#1400)&lt;br /&gt;
* detect scheduled shutdown and expose it on DRParser (#1409)&lt;br /&gt;
* xmlparser: add structured parser for the assess (combat situation) stream (#1413)&lt;br /&gt;
* Implement DRCA.need_buffs? method for buff checks (#1428)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* anchor Infomon parser regex unions to line start (#1391)&lt;br /&gt;
* creature xml additions (#1425)&lt;br /&gt;
* add creature template library (#1427)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* surface a failed Game.open in the connect timeout (#1408)&lt;br /&gt;
* bound long-session memory growth (index/hook/watchfor/buffer leaks) (#1410)&lt;br /&gt;
* improve and harden shutdown (#1416)&lt;br /&gt;
* use bundler to check for required Ruby gems (#1420)&lt;br /&gt;
* pin lich directory for gemfile check (#1423)&lt;br /&gt;
* Show CLI login ARGV for SAL connections (#1424)&lt;br /&gt;
* increase read timeout on idle socket to 300 seconds (#1426)&lt;br /&gt;
* monkeypatch gi for memoryreleaser / asyncprocessor until patched upstream (#1429)&lt;br /&gt;
* Mapdb sort tags by downcase and original case (#1433)&lt;br /&gt;
* stop locking the load path at boot; keep Gemfile.lock in sync on self-update (#1434)&lt;br /&gt;
* minimum Ruby 4.0 required &amp;amp; migrate Ruby version check (#1444)&lt;br /&gt;
* align --announce with --update for Ruby version (#1447)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* BalanceValue regex to match combat status lines (#1398)&lt;br /&gt;
* equipmanager.rb - Fix unload weapon detection when AimTimerDialog tag is prepended (#1414)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* global_defs update pushStream regex to include &#039;reserve&#039; id (#1379)&lt;br /&gt;
* psms Warcry.available? correction (#1387)&lt;br /&gt;
* xmlparser support new field exp, climate, terrain XML feeds (#1388)&lt;br /&gt;
* global_defs move() update regex for standing condition (#1407)&lt;br /&gt;
* Currency add method to retrieve aevit event currency (#1411)&lt;br /&gt;
* Stash check result type before comparing regex for wear_to_inv (#1430)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.18.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-crafting add method for creating mechanisms (#1375)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* stringproc normalize CRLF | CR to LF (#1378)&lt;br /&gt;
* rubocop custom cop ascii only cleanup (#1382)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* equipmanager update to assume missing items aren&#039;t worn (#1376)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1326)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Script module replace MemoryReleaser with GC.start for cleanup (#1364)&lt;br /&gt;
* Add sqlite busy timeout policy to core (#1365)&lt;br /&gt;
* Script#kill remove GC.start and add optional instrumentation (#1368)&lt;br /&gt;
* reorder shutdown ala MahtraDR and detect script teardown de... (#1369)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* harden custom repo identity, collision, and contract boundaries (#1333)&lt;br /&gt;
* stop SessionLifecycle before closing database on normal exit (#1334)&lt;br /&gt;
* harden FeatureFlags for closed db handle (#1335)&lt;br /&gt;
* SynchronizedSocket write resilience and zombie client elimination (#1338)&lt;br /&gt;
* correct RP timing issue for release notes (#1348)&lt;br /&gt;
* gate object cleanup in GTK queue (#1354)&lt;br /&gt;
* recover from cross-process zombie in ActiveSessions service (#1355)&lt;br /&gt;
* Improve shutdown session state handling (#1359)&lt;br /&gt;
* non-ascii hygeine to address rubocop errors (#1360)&lt;br /&gt;
* Remove debug log IO from heartbeat tick loop (#1363)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRC text2num correction for thousand (#1343)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Overwatch add REVEALED_EXPLODES regex pattern (#1356)&lt;br /&gt;
* Stash add_to_bag result type check before regex compare (#1357)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* enable heartbeat-driven failover for ActiveSessions service owner (#1340)&lt;br /&gt;
* copy Gemfile and LICENSE during self-update (#1345)&lt;br /&gt;
* Add top-level parse_args/display_args bridge to global_defs (#1346)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* replace undefined custom_require in check_moonwatch (#1336)&lt;br /&gt;
* set_stance places 100 in the correct positional slot (#1337)&lt;br /&gt;
* cache SlackBot users list to prevent API throttling (#1342)&lt;br /&gt;
* Add CORE_AUTOSTART sentinel to skip dependency.lic autostart helpers (#1344)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon Status.cutthroat? Effect Debuff correction (#1331)&lt;br /&gt;
* add support for RESERVE xml in GameObj.reserve (#1341)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* custom 3rd-party repo support for ScriptSync (#1285)&lt;br /&gt;
* Add get_settings, get_data, start_scripts_if_available to core (#1305)&lt;br /&gt;
* Add Map.apply_wayto_overrides for personal map overrides (#1306)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Decouple SetupFiles from script-scoped echo and XML feed timing (#1304)&lt;br /&gt;
* Add game flags and obsolete script warnings to DRInfomon startup (#1307)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* use :__unset for --without-frontend CLI request YAML matches (#1301)&lt;br /&gt;
* prevent zombie server deadlock in Active Sessions accept loop (#1302)&lt;br /&gt;
* improve MacOS keychain system check for older OS variants (#1310)&lt;br /&gt;
* stub sync_all_repos to prevent leaked thread in games_spec (#1311)&lt;br /&gt;
* enforce beta confirmation 10s timeout (#1315)&lt;br /&gt;
* use send(:respond) in StatusReporter fallback path (#1316)&lt;br /&gt;
* ensure SessionLifecycle.stop runs on abnormal exit (#1317)&lt;br /&gt;
* address ActiveSessions lifecycle hot path feature-flag polling (#1325)&lt;br /&gt;
* catch ECONNRESET in _puts and bound walk_to retry depth (#1327)&lt;br /&gt;
* safeguard gtk logo.png loading (#1329)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Add InnCheckedOut pattern to parser (#1309)&lt;br /&gt;
* Claim corrections to handle mounts in room_players stream (#1324)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
* repair regression on gui button reenable from refactor (#1297)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Mutli-launch persistent login GUI (#1245)&lt;br /&gt;
* Remove Windows OS CMD prompt flash (#1255)&lt;br /&gt;
* guard against broken pipe errors in Game._puts and send_to_client (#1260)&lt;br /&gt;
* add timeout safety to fput to prevent infinite hangs (#1261)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* anchor stow success pattern to prevent fan close recovery bypass (#1254)&lt;br /&gt;
* add bounded recursion depth limits to 9 methods (#1257)&lt;br /&gt;
* stow_helper failure detection + unload_weapon ammo recovery (#1259)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add InstanceSettings for core Settings API access (#1233)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Overwatch module into core (#1201)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* fix GameObj container initialization and add clear_all_containers (#1226)&lt;br /&gt;
* GameObj object dedupe &amp;amp; GC (#1234)&lt;br /&gt;
* script.rb show Script.kill source (#1235)&lt;br /&gt;
* Exit quickly on CLI authentication failure (#1237)&lt;br /&gt;
* suppress wine detection noise and skip when unneeded (#1244)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DR modules fixes and enhancements (#1232)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* psms.rb add additional failure matches (#1238)&lt;br /&gt;
* Bounty parser fix regex pattern for skin retrieval task (#1242)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* add retry with exponential backoff for all login authentication (#1205)&lt;br /&gt;
* update.rb allow for bugfix betas and branch updates (#1211)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb bug in _key transformation (#1216)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Change server_time_offset in XMLParser to be float instead of int (#1184)&lt;br /&gt;
* change encodings in main.rb to wizard FE only (#1199)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon parser.rb update Account.subscription/type (#1192)&lt;br /&gt;
* spell.rb add last_cast to track last time casted (#1193)&lt;br /&gt;
* stash.rb additional improvements with ReadyList/StowList (#1197)&lt;br /&gt;
* Infomon parser.rb bug in EnhanciveEnd (#1198)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add Genie map cross-reference fields to the DragonRealms map data model (#1169)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRExpMonitor move into core lich (#1154)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* add Enhancive module for enhancive item bonus tracking (#1113)&lt;br /&gt;
* add QStrike module for optimal stamina-based RT reduction (#1114)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* remove strip! from settingsInfo replacement (#1161)&lt;br /&gt;
* map_base.rb sort JSON better (#1171)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* logbook_item recovery when crafted item not in hand (#1175)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* xmlparser.rb capture additional death messaging (#1158)&lt;br /&gt;
* stash.rb ReadyList sheath handling and update inventory checks (#1166)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* allow --add-account to run without yaml and dat (#1143)&lt;br /&gt;
* enable --login for multi-variable custom launch commands (#1144)&lt;br /&gt;
* update.rb pervent update if MIN_RUBY not met (#1146)&lt;br /&gt;
* messaging.rb return &amp;quot;&amp;quot; for xml_encode with Wizard (#1147)&lt;br /&gt;
* prevent closing connection on module reload (#1148)&lt;br /&gt;
* Allow hmr to work on global_defs.rb (#1156)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* buffer split room obj lines and merge instead of appending closing tag to broken line (#1149)&lt;br /&gt;
* add buffering for multiline room players (#1151)&lt;br /&gt;
* add verify_script def here instead of depending on dependency (#1155)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb added updated_at field to upsert_batch (#1145)&lt;br /&gt;
* stowlist.rb check method fix when dead (#1152)&lt;br /&gt;
* readylist.rb check method fix when dead (#1153)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* util.rb only show gem installing debug messaging if gem mis… (#1131)&lt;br /&gt;
* add --gs and --dr, refactor argv_options to helpers (#1133)&lt;br /&gt;
* fix multiple custom entries, improvements to yaml save (#1134)&lt;br /&gt;
* login_tab_utils.rb expand helper text show Warlock (#1135)&lt;br /&gt;
* update CLI for YAML security signature, add auto-convert fo… (#1136)&lt;br /&gt;
* remove password parameter from debug logging in all cases (#1137)&lt;br /&gt;
* reduce minimum GUI window footprint for non-tabbed view (#1138)&lt;br /&gt;
* remove double save in YAML to preserve yaml.bak integrity (#1139)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* stash.rb additional improvements (#1132)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* force system gem install if RubyGems fails (#1126)&lt;br /&gt;
* gui_login prevent destroying window if already destroyed (#1127)&lt;br /&gt;
* add window size / position saves to login GUI (#1128)&lt;br /&gt;
* non tabbed saved entries in reduced button / font size (not… (#1129)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* account manager sorting GUI fix (#1123)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* install_gem_requirements update available gems after install (#1120)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* password_cipher.rb upcase account_name for key (#1118)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* validator.rb change sleep to should_sleep named param (#1116)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* add base stats capture from &#039;info full&#039; command (#1115)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Refocus Frontend (#960)&lt;br /&gt;
* socket configurator to better guard TCPSocket (#976)&lt;br /&gt;
* add simplified DB maintenance (#991)&lt;br /&gt;
* TextStripper module support for XML, HTML, Markdown (#1055)&lt;br /&gt;
* Login modernization and refactor to yaml (#1063)&lt;br /&gt;
* Ruby Memory Releaser module (#1066)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* support meta:trashcan tag for DRCI.dispose_trash (#966)&lt;br /&gt;
* Add GameObj.inv support for DR items (#1080)&lt;br /&gt;
* DRCS allow custom adjective for summoned weapons (#1088)&lt;br /&gt;
* DRParser support for new exp window xml stream elements (rested exp, tdps, favors) (#1104)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Add Armaments (Weapon, Armor, and Shield) Module (#911)&lt;br /&gt;
* add creature module, including Hinterwilds creatures (#1002)&lt;br /&gt;
* Creature module combat tracking (#1003)&lt;br /&gt;
* track time of last total_experience record (#1030)&lt;br /&gt;
* add Injured class for checking ability to perform actions (#1035)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* map dijkstra optimization (#1061)&lt;br /&gt;
* update.rb keep script/data file incase of error on update (#1070)&lt;br /&gt;
* ensure proxy path is set for non-destructive array write-th… (#1073)&lt;br /&gt;
* [lib][global-defs] - move update (#1079)&lt;br /&gt;
* GameObj force new objects ID to be string (#1087)&lt;br /&gt;
* xmlparser.rb gate GSL exits sending behind @send_fake_tags (#1103)&lt;br /&gt;
* change Hash[] pair key conversion to use to_h for Ruby 4.0 (#1108)&lt;br /&gt;
* move gui-login.rb to Ruby standard gui_login.rb (#1111)&lt;br /&gt;
* update location for currency and move game-loader.rb to Ruby standard gameloader.rb (#1112)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRCA allow custom spell prep messaging (#1089)&lt;br /&gt;
* Update Slackbot error handling, and lnet management (#1091)&lt;br /&gt;
* Fix exp mods parsing for DR (#1102)&lt;br /&gt;
* equipmanager.rb support for custom messaging in forester&#039;s longbow (#1105)&lt;br /&gt;
* Fix hang in equipment manager when game doesn&#039;t respond to commands (#1110)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon additional CHE resign regex (#1067)&lt;br /&gt;
* Resource tracking for sorcerer shadow essence (#1085)&lt;br /&gt;
* cman.rb add hamstring regex for already lying down target (#1090)&lt;br /&gt;
* cman.rb hamstring regex update when can&#039;t perform on target (#1092)&lt;br /&gt;
* Bounty parser.rb FWI guard regex update (#1096)&lt;br /&gt;
* currency.rb track gold (#1109)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.12&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (general)&lt;br /&gt;
    Update module strip markdown comments (#1056)&lt;br /&gt;
    Vars/UserVars module fixes and corrections (#1057)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    Infomon parse fix for singular currency (#1051)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (dr)&lt;br /&gt;
    add bput match for system updates preventing actions (#1034)&lt;br /&gt;
    drdefs.rb npc parsing (#1038)&lt;br /&gt;
    Fix container reference in get_item_from_eddy_portal method (#1039)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    bounty location regex needs to match &amp;quot;under&amp;quot; (#1037)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.10&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: games.rb catch additional error for nested single/double quotes (#1031)&lt;br /&gt;
    dr: change keys for DR_SKILLS_DATA[:guild_skill_aliases] to be strings instead of symbols (#1032)&lt;br /&gt;
    gs: Bounty parser for SG npcs matching (#1027)&lt;br /&gt;
    gs: match READY/STOW items with a/an/some inside the link (#1026)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.9&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    gs: StowList/ReadyList reset bug if non-default keys added #1019&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: script.rb show custom at script exit as well (#993)&lt;br /&gt;
    all: Updated update.rb for single trunk and release please (#1001)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.7&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): ensure updates do not target detached proxy views #990 &lt;br /&gt;
fix(gs): bounty parser and move fixes for sailor&#039;s grief #987 &lt;br /&gt;
fix(gs): Infomon xmlparser.rb Ready/Stow fix for LONG before exist #988 &lt;br /&gt;
fix(gs): gameobj.rb for Sailor&#039;s Grief ghostly/boss/guild tentacles #989 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): settings.rb update to preserve root of derived views #975&lt;br /&gt;
fix(all): show custom in various script output when custom script #967&lt;br /&gt;
fix(dr): drparser.rb update for PlayedSubscription #983&lt;br /&gt;
fix(gs): include store location for ReadyList #977&lt;br /&gt;
fix(gs): infomon parser.rb update for ACCOUNT output varies #979&lt;br /&gt;
fix(gs): global_defs.rb move def update for Hive traps #980&lt;br /&gt;
fix(gs): activespell.rb prevent removal of RF Penalty #981&lt;br /&gt;
fix(gs): add .compact to input of Disk.find_by_name #982&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): update.rb word boundary for abbreviations #971&lt;br /&gt;
fix(dr): equipmanager.rb Fix for changed game output. #969&lt;br /&gt;
fix(dr): common-arcana.rb Regalia fix for changed game output. #970&lt;br /&gt;
fix(dr): common-items.rb Fix for changed inventory command output #973&lt;br /&gt;
fix(gs): StowList missing space in capture in xmlparser.rb #963&lt;br /&gt;
fix(gs): stowlist.rb wait for RT when issuing check #964&lt;br /&gt;
fix(gs): readylist.rb wait for RT when issuing check #965&lt;br /&gt;
fix(gs): Bounty heirloom return msg&#039;ing update #972&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
build(all): installer.yml use windows-2022 #950&lt;br /&gt;
fix(all): restore Wrayth / Wizard script execution ability #952&lt;br /&gt;
fix(all): database_adapter.rb error handling improvement #956&lt;br /&gt;
fix(dr): common-items.rb wear/remove messaging additions #949&lt;br /&gt;
fix(dr): games.rb - ignore UIDs for Frostbite mapping #951&lt;br /&gt;
fix(dr): map_dr.rb prevent inadvertent settings changes #958&lt;br /&gt;
fix(gs): GameObj targets for new Sailor&#039;s Grief tentacle npc #948&lt;br /&gt;
fix(gs): map_gs.rb remove delete_if to prevent bad settings #957&lt;br /&gt;
fix(gs): weapon.rb assault break if no targets #962&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): limitedarray.rb max_size increase #946&lt;br /&gt;
fix(all): uservars.rb update for vars method missing #940&lt;br /&gt;
fix(dr): drparser.rb to set ShowRoomID to on if turned off #945&lt;br /&gt;
fix(gs): change namespace accessors to Ruby 2.6 compatible #944&lt;br /&gt;
fix(gs): infomon state reset on status prompt #943&lt;br /&gt;
fix(gs): Societies to check membership for various methods #942&lt;br /&gt;
fix(gs): standardize warcry.rb to match other PSMS #941&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(gs): infomon parser.rb for profile full name matching #938&lt;br /&gt;
fix(gs): force PROFILE FULL to sync CHE info for infomon #937&lt;br /&gt;
fix(dr): Tighten checks on releasing invisibility for thieves #936&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): gameobj.rb - add type? method for explicit type check #928&lt;br /&gt;
- fix(all): messaging.rb encoding issue #933&lt;br /&gt;
- fix(gs): Various CMan cost corrections #932&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- feat(all): settings.rb - proposal for sequel based Settings #591, #875, #889, #896, #927&lt;br /&gt;
- feat(all): util.rb add Ruby gem install helper method #861&lt;br /&gt;
- feat(all): messaging.rb add cmd link method #866&lt;br /&gt;
- refactor(all): games.rb modernization #849, #882, #924&lt;br /&gt;
- fix(all): add class extensions #800&lt;br /&gt;
- fix(all): lich.rb deprecated FE message #852&lt;br /&gt;
- fix(all): messaging.rb fix XML encoding for wizard and avalon #853&lt;br /&gt;
- fix(all): lich.rb class variable not initialized #855&lt;br /&gt;
- fix(all): log.rb force msg to String for regexp comparison #856&lt;br /&gt;
- fix(all): global_defs.rb bug in fput #864&lt;br /&gt;
- fix(all): messaging.rb xml_encode mono method msg #868&lt;br /&gt;
- fix(all): script.rb class to is_a? checks #878&lt;br /&gt;
- fix(all): gameobj.rb deeper lookup #885&lt;br /&gt;
- fix(all): messaging.rb debug not compared to falseclass #887&lt;br /&gt;
- fix(all): change class to is_a? checks #91-3&lt;br /&gt;
- fix(all): Util.issue_command allow single line captures #918&lt;br /&gt;
- fix(dr): drparser.rb casing for Premium status check #842&lt;br /&gt;
- fix(dr): map_dr.rb Don&#039;t assign UID of zero to rooms #844&lt;br /&gt;
- fix(dr): drparser.rb add $last_logoff tracking #851&lt;br /&gt;
- fix(dr): update message patterns in common-items #859&lt;br /&gt;
- fix(dr): add moon_visible?(moon) convenience method to common-moonmage #860&lt;br /&gt;
- fix(dr): exp mods output is not enclosed in preset xml tags anymore #870&lt;br /&gt;
- fix(dr): update.rb beta send validation for genie lich char #880&lt;br /&gt;
- fix(dr): Update regex and parsing for active spells #894&lt;br /&gt;
- fix(dr): add &#039;You scoop&#039; match pattern to common-items #900&lt;br /&gt;
- fix(dr): add missing match patterns #901&lt;br /&gt;
- fix(dr): common-items: add and fix match strings #904&lt;br /&gt;
- fix(dr): Add missing matches for common-items #905&lt;br /&gt;
- fix(dr): Release Khri Vanish if Thief, when going visible #906&lt;br /&gt;
- fix(dr): Fix race condition when clearing and repopulating XMLData.dr_active_spells #907&lt;br /&gt;
- fix(dr): Fix SLS release pattern #908&lt;br /&gt;
- fix(dr): resolve race condition in DR crafting_magic_routine #914&lt;br /&gt;
- fix(dr): xmlparser.rb - Fix XMLData.dr_active_spells race condition #915&lt;br /&gt;
- fix(dr): xmlparser.rb - Clear out spells properly #916&lt;br /&gt;
- fix(dr): drparser.rb update for Platinum account status #922&lt;br /&gt;
- feat(gs): gameobj.rb allow for custom gameobj data #848&lt;br /&gt;
- feat(gs): PSMS updates, including CMan.use #865, #874, #881, #890, #899&lt;br /&gt;
- feat(gs): ReadyList &amp;amp; StowList classes for item tracking #884&lt;br /&gt;
- feat(gs): Breakout and Buildout Societes #919&lt;br /&gt;
- fix(gs): infomon parsing for CHE membership #841&lt;br /&gt;
- fix(gs): map_gs.rb for no UID when hexdigest used #843&lt;br /&gt;
- fix(gs): warcry.rb yowlp :buff to string instead of regexp #847&lt;br /&gt;
- fix(gs): group.rb multiple corrections #850, #869, #883&lt;br /&gt;
- fix(gs): Bounty parser.rb fix for HW &amp;amp; KF guard return #862&lt;br /&gt;
- fix(gs): Bounty task.rb fix for assigned? and Ruby 2.6 #863&lt;br /&gt;
- fix(gs): stash.rb stale sheaths recheck #867&lt;br /&gt;
- fix(gs): allow spell.rb casting to take a force_stance parameter #902&lt;br /&gt;
- fix(gs): update Infomon parsing for new ACCOUNT output format #903&lt;br /&gt;
- fix(gs): PSMS cost for multiple cost types &amp;amp; add Excoriate feat #912&lt;br /&gt;
- fix(gs): Feat excoriate regex correction #920&lt;br /&gt;
- fix(gs): weapon PSM affordable check against Glorious Momentum #926&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): restore @theme_state and add to CLI capability #795&lt;br /&gt;
- fix(all): retire gtk2 monkey patch for gtk3 #823&lt;br /&gt;
- fix(all): games.rb XMLData.name wait till both not NIL and not EMPTY #826&lt;br /&gt;
- fix(all): standardize xmlparser game instance #827&lt;br /&gt;
- fix(all): games.rb fix multiple single and double quote in XML #832,836,837&lt;br /&gt;
- fix(dr): games.rb - optional hide Room Title display of Real IDs with FLAG on #782&lt;br /&gt;
- chore(dr): common-moonmage - refactor of peer_telescope #783&lt;br /&gt;
- fix(dr): move HMR load to common before for dragonrealms #784&lt;br /&gt;
- fix(dr): common-crafting.rb minor edit to add &amp;quot;You tuck&amp;quot; #787&lt;br /&gt;
- fix(dr): common-arcana.rb - remove unecessary pause from discern code #792&lt;br /&gt;
- fix(dr): drparser.rb Restore Premium status checking #834&lt;br /&gt;
- fix(gs): migrate PSMS.name_normal to Lich::Util.normalize_name #790,833&lt;br /&gt;
- fix(gs): add Char.che to know current character&#039;s CHE #791&lt;br /&gt;
- fix(gs): FEAT and Infomon module parsing of new Covert Art feats. #796&lt;br /&gt;
- fix(gs): add Currency.gemstone_dust and fix redsteel mark capture #797&lt;br /&gt;
- fix(gs): FEAT Covert Arts colon normalization and stamina costs #799&lt;br /&gt;
- fix(gs): escape dash in regex for HouseCHE #824&lt;br /&gt;
- fix(gs): disk.rb comparison helpers #828&lt;br /&gt;
- fix(gs): allow for Group.disks to show self disk in array #829&lt;br /&gt;
- fix(gs): feat.rb Covert Arts throw poison costs 15 stam #830&lt;br /&gt;
- fix(gs): add missing Feat.use ability #831&lt;br /&gt;
- fix(gs): multiple CritRanks updates #801-822&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- [all] - chore: Namespace &amp;amp; File Path Updates #713&lt;br /&gt;
- [all] - [argv_options.rb] bugfix: correct darkmode to work via CLI #693&lt;br /&gt;
- [all] - [games.rb] feat: make show Room Exits of non-StringProc/Obvious Exits toggable for all games #699&lt;br /&gt;
- [all] - [games.rb] feat: toggleable display of StringProcs with clickable links #751&lt;br /&gt;
- [all] - [gui-manual-login.rb] fix: change label to Wrayth #720&lt;br /&gt;
- [all] - [gui-saved-login.rb] fix: update Stormfront label #721&lt;br /&gt;
- [all] - [update.rb] fix: purge old LIB folder prior to update release #729&lt;br /&gt;
- [all] - [util.rb] bugfix: allow issue_command to use fput or put #715&lt;br /&gt;
- [all] - [xmlparser.rb] feat: add XMLData.room_name attribute #685&lt;br /&gt;
- [all] - [main.rb] fix: create session file in regular connect method #733&lt;br /&gt;
- [all] - [init.rb] bugfix: error for Windows DISPLAY variable #735&lt;br /&gt;
- [all] - [main.rb] fix: Mudlet support #736&lt;br /&gt;
- [all] - [wine.rb] fix: add --no-wine CLI flag prevent WINE startup&lt;br /&gt;
- [all] - [init.rb] fix: add --no-gtk CLI flag prevent GTK3 gem load&lt;br /&gt;
- [dr] - [games.rb] feat: DRinfomon and common files as core lich libraries #686&lt;br /&gt;
- [dr] - [games.rb] chore: add DR requires here #690&lt;br /&gt;
- [dr] - [games.rb] fix: add Room# display for DR #697&lt;br /&gt;
- [dr] - [games.rb] bugfix: Genie FE real ID#s not supported, hide by default #728&lt;br /&gt;
- [dr] - [drdefs.rb] bugfix: fix for Shadow Servants #710&lt;br /&gt;
- [dr] - [map_dr.rb] fix: cleanup and support for UIDs #719&lt;br /&gt;
- [dr] - [xmldata.rb] bugfix: add support for DR Room IDs #716&lt;br /&gt;
- [dr] - [xmlparser.rb] feat: XMLData - adding dr_active_spells #691&lt;br /&gt;
- [gs] - [games.rb] bugfix: support for pre/post room name txt #683&lt;br /&gt;
- [gs] - [group.rb] chore: update to account for hold #701&lt;br /&gt;
- [gs] - [resource.rb] feat: add additional tracking of covert art charges #714&lt;br /&gt;
- [gs] - [spell.rb] bugfix: Spell.affordable? 515 release #687&lt;br /&gt;
- [gs] - [stash.rb] bugfix: sheath_bags when not found #694&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: missing real ID in nav #684&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: Claim module obvious hiding #717&lt;br /&gt;
- [gs] - [sk.rb] feat: Self-Knowledge functionality in core #748&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: Simu XML breaking change RoomID #679&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [crit_tables] fix: CritRanks regex fixes (multiple files and changes) #671&lt;br /&gt;
-o- [GS4] - [spellsong.rb] fix: Correct Spellsong sync method #674&lt;br /&gt;
-o- [GS4] - [parser.rb] fix: thorn status regex correction #673&lt;br /&gt;
-o- [All] - [xmlparser.rb] fix: Split out if elif block to account for DR having multiple… #670&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: percentconcentration #676&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: update move failure message to handle attack and casting #667&lt;br /&gt;
-o- [All] - [init.rb] fix: update required ruby check messaging #669&lt;br /&gt;
-o- [All] - [sessionvars.rb] feat: new module SessionVars for non-persistent variable storage #666&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [DR] - [games.rb] bugfix: tweak XML rewrite section #662&lt;br /&gt;
-o- [GS4] - [crit_tables] bugfix: additional crit table regex corrections #663&lt;br /&gt;
-o- [GS4] - [ascension.rb] bugfix: add new Transcend Destiny to lookups #661&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: regexp escape txt #660&lt;br /&gt;
-o- [GS4] - [disruption_critical_table.rb] Bugfix in regex #659&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [games.rb] bugfix: prevent race condition in games thread #656 &lt;br /&gt;
-o- [All] - [init.rb] bugfix: address WINE variance between linux / installs #655&lt;br /&gt;
-o- [GS4] - [gs][stash.rb] bugfix: wear code improvement #657 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [main.rb] bugfix: correct encoding for WizardFE PR #640&lt;br /&gt;
-o- [All] - [games.rb] bugfix: correct logic for room detection when using CLI --start-scripts PR #639&lt;br /&gt;
-o- [All] - [DB_Store.rb] feat: add direct support for Simu RENAME and CHANGE PROF PR #633&lt;br /&gt;
-o- [All] - chore: breakout code to individual files for easier management PR #617&lt;br /&gt;
-o- [All] - [lich.rbw] chore: add deprecated msg to old Settings/GameSettings/CharSettings methods PR #589&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add new --dark-mode CLI option PR #583&lt;br /&gt;
-o- [All] - [global_defs.rb] bugfix: monsterbold fix for additional clients PR #581&lt;br /&gt;
-o- [All] - [update.rb] feat: update core scripts from source on Lich5 update/install PR #579&lt;br /&gt;
-o- [All] - [log.rb] feat: add new Log module copied from Olib PR #577&lt;br /&gt;
-o- [All] - [numeric.rb] feat: add days/hours/minutes/seconds methods to numerics PR #623&lt;br /&gt;
-o- [All] - [messaging.rb] feat: WizardFE Voln window support #647&lt;br /&gt;
-o- [All] - [init.rb] bugfix: WINE entries for Linux / MacOS #649&lt;br /&gt;
-o- [DR] - [lich.rbw] bugfix: cleanup downstream hook exclusions PR #593&lt;br /&gt;
-o- [DR] - [global_defs.rb] bugfix: missing climb failure message PR #592&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: show non-standard Effects in `;magic` output PR #641&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: fix WARCRY duplication results / add WALL OF THORNS effect detection PR #634 / PR #637&lt;br /&gt;
-o- [GS4] - [critranks.rb] feat: add critical rank resolution tables and methods PR #625&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: to support regex for active? &amp;amp; time_left PR #590&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: add implicit NPC death monitoring PR #588&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: change PSM to be stored as type.mnemonic PR #587&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: strip_xml multiline fix PR #584&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: fix sack detection to use Stash.container(param) PR #578&lt;br /&gt;
-o- [GS4] - [spell.rb] feat: Spell.after_stance #644 &lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: for Claim module #646&lt;br /&gt;
-o- [GS4] - [infomon] feat: track Voln favor via RESOURCE output #648&lt;br /&gt;
-o- [GS4] - [gameobj.rb] feat: add Bandit hidden target API #650&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: proper leader detection from GROUP output&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back depracted Char.maxvitals with msging to switch to new Char.max_vitals methods&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: group.check syntax change&lt;br /&gt;
-o- [GS4] - [spell.rb] bugfix: affordable? Char.mana parenthesis logic&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] -  feat: sqlite3 gem syntax code cleanup PR#553&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: remove unused Setting, GameSetting, CharSetting PR#542&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: scrub login key from error message popups PR#548&lt;br /&gt;
-o- [All] - [messaging.rb] bugfix: color mismatch WizardFE white txt PR#554&lt;br /&gt;
-o- [All] - [lich.rb] feat: add new Lich.deprecated method to aid in deprecating older API calls PR#523&lt;br /&gt;
-o- [GS4] - [char.rb] feat: log method_missing calls PR#552&lt;br /&gt;
-o- [GS4] - [char.rb] feat: add missing global_def related methods PR#523&lt;br /&gt;
-o- [GS4] - [global_defs.rb] feat: deprecate various Char module methods PR#523&lt;br /&gt;
-o- [GS4] - [spellsong.rb] bugfix: cache spellsong duration calc PR#551&lt;br /&gt;
-o- [GS4] - [effects.rb] feat: Effects module breakout PR#549&lt;br /&gt;
-o- [GS4] - [group.rb][disk.rb] feat: Group &amp;amp; Disk class PR#532&lt;br /&gt;
-o- [GS4] - [activespell.rb] feat: add duration change messaging, off by default, see ;help for details PR#487&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add Game:Character to debug log file ouput&lt;br /&gt;
-o- [All] - [init.rb] feat: add milliseconds to debug filename&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: reorder parsing of $SERVERSTRING to avoid certain conflicts&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: update for new Empath resource and sleep/bind messaging&lt;br /&gt;
-o- [GS4] - [status.rb] bugfix: bound? calmed? and sleeping? support for spellnames flag being off&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: additional creature dying messaging to check against XML dead not being sent&lt;br /&gt;
-o- [GS4] - [gameobj.rb] bugfix: remove sorcerer arms and animates from GameObj.targets&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - Ruby 3.3 compatibility&lt;br /&gt;
-o- [All] - [lich.rbw] feat: adds .sources for up/downstream hooks&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: don&#039;t use WINE for custom frontends&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back Char.stance&lt;br /&gt;
-o- [GS4] - [claim.rb] feat: new module and associated changes to xmlparser&lt;br /&gt;
-o- [GS4] - [experience.rb] feat: percent experience options&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow for negative TNL exp value&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow hyphenated last names in character names&lt;br /&gt;
-o- [GS4] - [parser.rb] feat: update resource matching for new Bard service&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: catch more shield removal messages&lt;br /&gt;
-o- [GS4] - [util.rb] bugfix: underscore issue for PSMs&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.7.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Supports Ruby 3.2 - security enhancements and huge speed improvements for regex&lt;br /&gt;
-o- New libraries/modules/classes: Account, HMR (Hot Module Reloading)&lt;br /&gt;
-o- GS4 Infomon now baked into Lich5 as a library, no more need to run standalone script&lt;br /&gt;
-o- New GS4 libraries/modules/classes: Ascension, Bounty, Currency, Experience, Resources, Society, Status, Warcry&lt;br /&gt;
-o- Updates to existing libraries/modules/classes: Armor, Util, Weapon, Spell, GameObj, Messaging&lt;br /&gt;
-o- Several Bugfixes for lots of things&lt;br /&gt;
-o- Lots of code cleanup&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML errors&lt;br /&gt;
-o- Adds the DR Plat instance for Frostbite FE&lt;br /&gt;
-o- Adds ‘ball’ as the noun used for ‘ball and chain’&lt;br /&gt;
-o- Adds the movement result ‘slip in the mud and fall flat’&lt;br /&gt;
-o- Corrects stamina cost for the feature Dispel Magic&lt;br /&gt;
-o- Plus all the latest script updates from Elanthia-Online!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML to limit login errors (DR)&lt;br /&gt;
-o- Fix for XMLData.active_spells to properly register wizard &#039;recovery&#039; spell cooldowns&lt;br /&gt;
-o- Messaging updates to remove error in Wizard FE encodings&lt;br /&gt;
-o- Corrects for error in detecting PSM skill changes (cman) via warrior / rogue guild lessons&lt;br /&gt;
-o- Deprecates LNet script from master repository&lt;br /&gt;
-o- Miscellaneous small bug squashing&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.6.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- (DragonRealms) Support for Genie and Frostbite frontends&lt;br /&gt;
-o- (GemStone) Changed methods to improve ;go2 speed and reduce lich.db3 calls&lt;br /&gt;
-o- (GemStone) Updates to support silver_count function&lt;br /&gt;
-o- (Both) Changed method for updating lich ecosystem&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.5.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for DragonRealms&lt;br /&gt;
-o- Updated support for scripts like BigShot&lt;br /&gt;
-o- Providing the LichID and UID on Profanity&lt;br /&gt;
-o- Spell.force_incant, .force_channel, and .force_evoke&lt;br /&gt;
-o- Standardized message method for script authors&lt;br /&gt;
-o- Sundry small improvements / fixes and changes&lt;br /&gt;
-o- And the creme de la creme - a custom directory&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.4.0&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Simu Room IDs (formally called &#039;unique ID&#039; or &#039;uid&#039; for Lich) added to Map, mapDB where known, and ;go2 for navigation (courtesy Xanlin and with our thanks!) ;go2 u7120 for all you ex-GMs out there. &lt;br /&gt;
-o- Room titles will now display the Lich ID and / or the UID for the room based on user selections - default is on for both, and enabled / disabled via Lich.display_lichid or Lich.display_uid toggles that can be set to on / off or true / false. (;e Lich.display_lichid=true/false and ;e Lich.display_uid=true/false) You can remove that rnum from your autostart now! To gain the benefit of the UID deployment, be sure to ;repo download-mapdb&lt;br /&gt;
-o- REQUESTS: Drop 5 minute timeout function from Lich&lt;br /&gt;
-o- waitrt? and waitcastrt? will still pause activities, but will return TRUE or FALSE in keeping with the Ruby functionname? tradition (no more failing to get a weapon out due to RT from climbing!)&lt;br /&gt;
-o- empty_hands and fill_hands will now check to see if the character is in roundtime before trying to put away or retrieve held items&lt;br /&gt;
-o- Infomon received an update that keeps spell timers in sync with the information received from the server - no more need to immediately do a spell active in game to get the right times to display for various legacy scripts and ;magic after visiting the invoker or using an SK item&lt;br /&gt;
-o- Lich now provides a facility to get current coins on the character that is a bit more agnostic to data changes from Simu - Lich::Util.silver_count&lt;br /&gt;
-o- Various other small tidbits to help ease maintenance and future development&lt;br /&gt;
-o- PLEASE NOTE:  This update is required for the newest Bigshot (released today!) and for future eloot and eherbs scripts (release RSN)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.3.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Added support for Wrayth (renamed Stormfront) installations &lt;br /&gt;
-o- Converted Linux | WINE login methods to &#039;method 0&#039;, does not use Simu launcher&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.2.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for STOWing items irrespective of special item scripts&lt;br /&gt;
-o- Improved query support for Effects and CMans&lt;br /&gt;
-o- Fix Lich bug to respect the &#039;groupmovement&#039; flag in game&lt;br /&gt;
-o- Fix Lich round time calculations (more aggressive timing)&lt;br /&gt;
-o- Dark Mode is now a thing&lt;br /&gt;
-o- Lich4 Style GUI layout available&lt;br /&gt;
-o- Several file location changes to support future code change efforts&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.19&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Benefit: Monks with Mental Acuity (all 3 of you) rejoice - stamina casting!&lt;br /&gt;
-o- Benefit: PSM3 included, no charge. No hair remaining, either!&lt;br /&gt;
-o- Benefit: Ok, stay seated: Some of your various SF spell duration windows may work. . . better? Yes, not perfect, but better. No pictures, please!&lt;br /&gt;
-o- Updated infomon that properly detects Cloak of Shadows on those pesky sorcerers, and the Raise Dead Cooldown periods for those wondrous clerics.&lt;br /&gt;
-o- A new update process for Lich 5 - tired of having to download that script over and over just to update? Get yourself a copy of lich5-update.lic. Note, if you already have it, you&#039;re set! If not - ;jinx script install lich5-update --repo=elanthia-online&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Updated the method used to log onto SIMU servers.&lt;br /&gt;
-o- Added the Animalist item specifics to Lich5&#039;s empty and fill hands routines&lt;br /&gt;
-o- Improved Invoker messages for Avalon and Wizard FEs (no change for SF FE)&lt;br /&gt;
-o- Improved cleanup and store methods when player EXIT&#039;s or QUIT&#039;s game&lt;br /&gt;
-o- Crafted two new methods (stash_hands and equip_hands) for future script use&lt;br /&gt;
-o- Some behind-the-scenes cleanup to improve maintaining the Lich5 ecosystem&lt;br /&gt;
-o- Add Spell Active improvements&lt;br /&gt;
-o- Add PSM and Ranger improvements&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
* [[Mac Installation - Lich (software)]]&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
[[Category:New Player]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot/Changelog&amp;diff=265715</id>
		<title>Lich:Script Bigshot/Changelog</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Bigshot/Changelog&amp;diff=265715"/>
		<updated>2026-10-03T16:28:00Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Change Log */ update to 5.16.6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
== Change Log ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre{{log2|background=none|border=none|margin-left=none|margin-right=none|font-size=93%}}&amp;gt;&lt;br /&gt;
  v5.16.6  (2026-09-27)&lt;br /&gt;
    - fix: bigshot could get stuck spamming failed target attempts on a creature that had already fully decayed/left the room, instead of picking a new one&lt;br /&gt;
  v5.16.5  (2026-09-23)&lt;br /&gt;
    - fix: mounts (e.g. a gigas&#039;s battle mastodon) were ignored as targets until something else hurt them first&lt;br /&gt;
    - fix: Rangers leading a group with a follower count (e.g. ;bigshot head 2) would try to track the number instead of hunting normally&lt;br /&gt;
  v5.16.4  (2026-09-21)&lt;br /&gt;
    - fix: a follower would keep trying to attack on its own, spamming failed target attempts, if the group leader stopped running bigshot while everyone stayed grouped - followers now stand down until the leader is hunting again&lt;br /&gt;
  v5.16.3  (2026-09-21)&lt;br /&gt;
    - fix: a follower could get stuck spamming failed target attempts on a creature the group leader had already killed, instead of picking a new target&lt;br /&gt;
  v5.16.2  (2026-09-16)&lt;br /&gt;
    - fix: bigshot would stop attacking a creature as soon as it was made sympathetic (e.g. by Sympathy 1120), even though it was still fighting back&lt;br /&gt;
    - fix: remove unnecessary strip_xml type parameter being sent, which was causing unneeded multi-line detection unnecessarily&lt;br /&gt;
    - fix: stop a constant-redefinition warning on subsequent runs without restarting Lich&lt;br /&gt;
  v5.16.1  (2026-09-13)&lt;br /&gt;
    - added lying command check&lt;br /&gt;
  v5.16.0  (2026-08-13)&lt;br /&gt;
    - creature tracking is more accurate right after a kill or a room change, so targeting and looting are less likely to grab a stale target&lt;br /&gt;
    - added checks for more creature states (calm, disoriented, hovering, immobilized, kneeling, sitting, sleeping, stunned, webbed, flying, rooted) and creature types (mounts, riders, mini-bosses, and more), so combat commands react to them correctly&lt;br /&gt;
    - added checks for wounds, critical hits, and smites, so combat maneuvers can respond to them&lt;br /&gt;
    - fixed a rare timing issue where looting could get interrupted mid-action if bigshot and the loot script were paused and resumed at nearly the same moment (e.g. by ecleanse), sometimes skipping or cutting off a loot/skin action&lt;br /&gt;
    - coup de grace attempts are now double-checked right before they&#039;re sent, so bigshot stops wasting stamina on attempts that were already going to fail&lt;br /&gt;
    - added an empowered&amp;lt;N&amp;gt; command option to skip a move when a strong enough Empowered buff is already active, so it can&#039;t get overwritten by a weaker recast&lt;br /&gt;
    - added a thp&amp;lt;N&amp;gt; command option to only use a move when the target&#039;s health is at or below a set percentage&lt;br /&gt;
    - fixed the buff&amp;lt;N&amp;gt; command option silently doing nothing&lt;br /&gt;
    - added debug logging that tracks a target&#039;s health and status from when it&#039;s first engaged through every command tried against it to its death, for troubleshooting combat behavior&lt;br /&gt;
  v5.15.4  (2026-08-05)&lt;br /&gt;
    - add additional messaging for cmd_unravel&lt;br /&gt;
  v5.15.3  (2026-07-29)&lt;br /&gt;
    - fix to remove EXPERIENCE scraping for field exp, require new Lich to get it automatically from feed&lt;br /&gt;
  v5.15.2  (2026-07-27)&lt;br /&gt;
    - fix priority hunt not retargeting when a higher priority creature arrives mid-fight&lt;br /&gt;
    - compare target list rank instead of identity so a lower ranked creature never wins a check&lt;br /&gt;
    - match priority targets with the same anchored name and noun rules used to select them&lt;br /&gt;
    - keep the current target when a priority retarget has no replacement to offer&lt;br /&gt;
    - fix eachtarget commands skipping every creature except the highest ranked one&lt;br /&gt;
    - fix follower priority check reading an instance variable that was never set&lt;br /&gt;
    - remove the unused room npc snapshot thread and its globals&lt;br /&gt;
  v5.15.1  (2026-07-23)&lt;br /&gt;
    - fix cmd_force re-issuing a maneuver on a passing roll&lt;br /&gt;
  v5.15.0  (2026-07-19)&lt;br /&gt;
    - add repeatdelay command check, throttles a command to once per N seconds per room, clears on room change&lt;br /&gt;
    - bugfix for once command check raising when a creature has no prior commands&lt;br /&gt;
  v5.14.4  (2026-07-15)&lt;br /&gt;
    - fix some beast belly edge cases&lt;br /&gt;
  v5.14.3  (2026-07-13)&lt;br /&gt;
    - fix missing essence regex pattern&lt;br /&gt;
  v5.14.2  (2026-07-06)&lt;br /&gt;
    - fix cmd_shields missing regex&lt;br /&gt;
  v5.14.1  (2026-06-18)&lt;br /&gt;
    - remove greedy prone check for bullrush&lt;br /&gt;
  v5.14.0  (2026-06-17)&lt;br /&gt;
    - add new sacrifice command&lt;br /&gt;
    - bugfix for creature escape result regex check&lt;br /&gt;
  v5.13.3  (2026-06-16)&lt;br /&gt;
    - bugfix for looting when in resting status&lt;br /&gt;
  v5.13.2  (2026-06-15)&lt;br /&gt;
    - bugfix in run_script to only do box_in_hand if hunting&lt;br /&gt;
  v5.13.1  (2026-06-14)&lt;br /&gt;
    - bugfix in resonance cmd&lt;br /&gt;
  v5.13.0  (2026-05-17)&lt;br /&gt;
    - add new resonance command for casting bolts&lt;br /&gt;
    - add new UNHIDE event to allow for unhiding before fogging&lt;br /&gt;
  v5.12.8  (2026-05-14)&lt;br /&gt;
    - use gameobj id for wandolier instead of name after being found&lt;br /&gt;
  v5.12.7  (2026-05-07)&lt;br /&gt;
    - allow for wandolier command to take a noreserve option, defaults to use RESERVE system&lt;br /&gt;
  v5.12.6  (2026-05-02)&lt;br /&gt;
    - fix for boundary building to set a new status while building boundary list, useful for scripts like teleport.lic&lt;br /&gt;
  v5.12.5  (2026-04-22)&lt;br /&gt;
    - fix final_loot to now work for solo as well, helps pickup left behind loot by other players, poof&#039;d creature loot, etc.&lt;br /&gt;
  v5.12.4  (2026-04-10)&lt;br /&gt;
    - fix for cmd_tether spell hindrance loop&lt;br /&gt;
  v5.12.3  (2026-03-25)&lt;br /&gt;
    - change to wander_stance if single_stop called (bigshot quick)&lt;br /&gt;
  v5.12.2  (2026-03-11)&lt;br /&gt;
    - fix to catch max inventory quantity item messaging&lt;br /&gt;
    - fix in cmd_depress for result check&lt;br /&gt;
  v5.12.1  (2026-02-08)&lt;br /&gt;
    - fix for cast_signs/cmd_rapid to prevent double casting due to 0sec castRT.&lt;br /&gt;
  v5.12.0  (2026-02-08)&lt;br /&gt;
    - add ES/EB/EC/ED for spell, buff, cooldown, and debuff command checks&lt;br /&gt;
  v5.11.4  (2026-01-14)&lt;br /&gt;
    - add splashy command check for Rooms that are splashy(wet)&lt;br /&gt;
    - add essence command check to check for sorcerer shadow essence&lt;br /&gt;
    - unhide if hidden as a head/leader to allow followers to join&lt;br /&gt;
    - add ATTACK event to attack routine if followers get separated&lt;br /&gt;
    - allow non-incant spell COMMANDs to respect extra cast/evoke/channel&lt;br /&gt;
    - force GROUP OPEN after disband when doing independent travel&lt;br /&gt;
  v5.11.3  (2026-01-12)&lt;br /&gt;
    - bugfix in follower rejoining leader&lt;br /&gt;
    - bugfix for missing id&#039;s in attack stance, wander stance, and stand up&lt;br /&gt;
  v5.11.2  (2026-01-09)&lt;br /&gt;
    - optimize get_valid_neighbors to eval timeto as being valid numerics&lt;br /&gt;
  v5.11.1  (2026-01-09)&lt;br /&gt;
    - bugfix in sort_npcs&lt;br /&gt;
  v5.11.0  (2025-11-29)&lt;br /&gt;
    - add support for boon creatures&lt;br /&gt;
    - add toggle to stop for dead group members&lt;br /&gt;
    - refactor find_routine, ma_looter, check_mind, ready_to_hunt?, and ready_to_rest?&lt;br /&gt;
    - removed gather_ammo (no longer used since archery update)&lt;br /&gt;
    - reworked debug process&lt;br /&gt;
    - refactor attack loop for followers&lt;br /&gt;
    - only call group open call if grouped&lt;br /&gt;
    - refactor escape from oozes, crawlers, and roa&#039;ters&lt;br /&gt;
    - removed voln_favor method for Lich::Resources.voln_favor&lt;br /&gt;
    - update default fried to be 100 and removed value check&lt;br /&gt;
    - refactor sort_npcs so if valid targets is left blank it targets everything&lt;br /&gt;
    - removed target check from check_required_values&lt;br /&gt;
  v5.10.0  (2025-10-31)&lt;br /&gt;
    - update BSAreaRooms&lt;br /&gt;
    - fix MA so leader has group open&lt;br /&gt;
    - tighten follower loop&lt;br /&gt;
    - MA lead can identify expected group number at startup eg ;bigshot head 3&lt;br /&gt;
    - head/tail can now be started in any order&lt;br /&gt;
    - removed old companion_check method&lt;br /&gt;
    - bugfix when using negative mana value in cmd_spell&lt;br /&gt;
    - refactor group class&lt;br /&gt;
    - bugfix for bigclaim when follower is hidden&lt;br /&gt;
    - update cmd sleep to not change stance&lt;br /&gt;
    - add command for valid creatures similiar to mob&lt;br /&gt;
    - bugfix in disarm if target has no weapon&lt;br /&gt;
    - add gemstone support&lt;br /&gt;
  v5.9.13  (2025-10-27)&lt;br /&gt;
    - fix for dhurl command to respect ambush settings and additional messaging&lt;br /&gt;
  v5.9.12  (2025-10-24)&lt;br /&gt;
    - bugfix for stance dancing for unarmed and force being respected with AND commands&lt;br /&gt;
  v5.9.11  (2025-10-11)&lt;br /&gt;
    - bugfix for encumbrance command check&lt;br /&gt;
  v5.9.10  (2025-10-03)&lt;br /&gt;
    - bugfix in cmd_spell targetting to send proper gameobj ID# string&lt;br /&gt;
  v5.9.9  (2025-10-02)&lt;br /&gt;
    - add missing $rest_reasons&lt;br /&gt;
  v5.9.8  (2025-09-30)&lt;br /&gt;
    - bugfix for cmd_rapid to use cooldown instead of penalty check&lt;br /&gt;
  v5.9.7  (2025-09-30)&lt;br /&gt;
    - bugfix when Spell[597].active? in cast_signs&lt;br /&gt;
  v5.9.6  (2025-09-09)&lt;br /&gt;
    - add support for 902 and 411 (doesn&#039;t work with UAC)&lt;br /&gt;
    - remove custom issue_command for Lich method&lt;br /&gt;
    - added cast_spell method&lt;br /&gt;
    - updated Society Abilities/Spells/CMan section to ignore rapidfire cool down: 515 (ignore) or rapidfire (ignore)&lt;br /&gt;
  v5.9.5  (2025-07-22)&lt;br /&gt;
    - remove companion_check calls as no longer needed with migration to GameObj.targets for valid creatures&lt;br /&gt;
    - add check_disks param to bigclaim? method&lt;br /&gt;
    - add claim check to attack_break and need_to_loot (ignoring disk check)&lt;br /&gt;
    - add coupdegrace buff check and command check&lt;br /&gt;
    - increase bs_move timeout from 2 to 5&lt;br /&gt;
  v5.9.4  (2025-07-08)&lt;br /&gt;
    - bugfix for leader final loot to only work if claim is true&lt;br /&gt;
  v5.9.3  (2025-07-02)&lt;br /&gt;
    - bugfix for shield bash if using CMan instead of shield&lt;br /&gt;
    - bugfix for FORCE cmd to stop checking older lines if it found a proper attack messaging but failed the match&lt;br /&gt;
    - bugfix for cmd_tether to end if link is broken&lt;br /&gt;
  v5.9.2  (2025-06-30)&lt;br /&gt;
    - bugfix in cmd_tether potential npc logic&lt;br /&gt;
  v5.9.1  (2025-06-27)&lt;br /&gt;
    - Fix for head/tails bs_wander groupcheck logic&lt;br /&gt;
  v5.9.0  (2025-04-03)&lt;br /&gt;
    - Convert over to use Group and Claim modules from core Lich5&lt;br /&gt;
    - bugfix in cmd_assaults for confusion&lt;br /&gt;
    - add additional logic to cmd_unravel for creature gone/dead&lt;br /&gt;
    - bugfix in bs_put for bleedthru numbers merged with wait time (EXP output: Level: 100...wait 1 seconds.)&lt;br /&gt;
    - bugfix in creeping_dread typo name&lt;br /&gt;
    - attempts as head to pull tail members to feet if not standing prior to returning to resting&lt;br /&gt;
    - adds cmd_depress for 1015/Song of Depression usage&lt;br /&gt;
    - adds cmd_phase for 704/Phase to purpose prep/cast with NPC as target due to special use of changing non-corp to corp undead&lt;br /&gt;
    - adds final room loot option for leader in head/tail&lt;br /&gt;
    - add disarm weapon to cmd_cman&lt;br /&gt;
    - bugfix break PSM loop early if not affordable after wait messaging&lt;br /&gt;
    - cleanup class detection logic to use is_a? logic instead&lt;br /&gt;
    - bugfix in cmd_force to search newest msg to oldest via reget reversing&lt;br /&gt;
    - add Feat support for Chastise &amp;amp; Excoriate&lt;br /&gt;
    - add Righteous Rebuke command check (rebuke)&lt;br /&gt;
    - add Ardor of the Scourge command check (scourge)&lt;br /&gt;
    - add Glorious Momentum command check (momentum)&lt;br /&gt;
    - fix depart monitor to use ewaggle instead of waggle&lt;br /&gt;
    - fix clean value setting for rest_till_exp &amp;amp; rest_till_mana&lt;br /&gt;
  v5.8.5  (2025-03-28)&lt;br /&gt;
    - bugfix for follower resting commands use running a script&lt;br /&gt;
    - add cooldown detection to cmd_spell and 140/919/211/215/219/1619/1650&lt;br /&gt;
  v5.8.4  (2025-03-19)&lt;br /&gt;
    - remove deprecated calls&lt;br /&gt;
  v5.8.3  (2025-03-10)&lt;br /&gt;
    - bugfix in run_script to use exact naming of script that was started&lt;br /&gt;
  v5.8.2  (2025-02-26)&lt;br /&gt;
    - bugfix in run_script needing EXACT match for Script.running? check. Script.start is not exact. Causing issues&lt;br /&gt;
    - bugfix in command_check split_check&lt;br /&gt;
  v5.8.1  (2025-02-26)&lt;br /&gt;
    - add garrote command to buffXX command check validity for Enh. Agility buff&lt;br /&gt;
    - add garrote command check for active buff check&lt;br /&gt;
    - cleanup command check regex to simplify&lt;br /&gt;
  v5.8.0  (2025-02-20)&lt;br /&gt;
    - add custom fog option&lt;br /&gt;
    - option to force resting if looting leaves a box in your hand&lt;br /&gt;
    - enable pre-rest commands to call scripts eg. script go2 place&lt;br /&gt;
    - bugfix in tether command&lt;br /&gt;
    - add ancient &amp;amp; !ancient command checks for grizzled/ancient creatures&lt;br /&gt;
    - add animate &amp;amp; !animate command checks for if you have an animate present or not&lt;br /&gt;
    - change command_checks to lamdas for optimization&lt;br /&gt;
  v5.7.10 (2025-02-18)&lt;br /&gt;
    - add option for cmd_tether to recast upon death and transfer of dots&lt;br /&gt;
  v5.7.9  (2025-02-15)&lt;br /&gt;
    - fix stand() to not stand if casting 608 and kneeling with a crossbow in hand&lt;br /&gt;
  v5.7.8  (2025-02-11)&lt;br /&gt;
    - update $bigshot_status to utilize :ready instead of :hunting when clear to hunt&lt;br /&gt;
    - update $bigshot_status to :hunting when arrived in do_hunt() and actually starts hunting&lt;br /&gt;
  v5.7.7  (2025-02-10)&lt;br /&gt;
    - bugfix in cmd_curse due to custom prep/curse logic&lt;br /&gt;
  v5.7.6  (2025-02-08)&lt;br /&gt;
    - bugfix where claims was including characters disk&lt;br /&gt;
  v5.7.5  (2025-01-30)&lt;br /&gt;
    - bugfix in resting method for fog_return&lt;br /&gt;
  v5.7.4  (2025-01-22)&lt;br /&gt;
    - adjust loop delay for efury and tether&lt;br /&gt;
  v5.7.3  (2025-01-20)&lt;br /&gt;
    - added command tether to have spell 706 wait until completion&lt;br /&gt;
    - update to efury command&lt;br /&gt;
    - fix for constant redefinition Ruby warnings&lt;br /&gt;
  v5.7.2  (2025-01-15)&lt;br /&gt;
    - added implosion(720) cooldown&lt;br /&gt;
    - added check for voidwalker buff from 720&lt;br /&gt;
  v5.7.1  (2025-01-13)&lt;br /&gt;
    - added client input into debug file&lt;br /&gt;
  v5.7.0  (2025-01-12)&lt;br /&gt;
    - added debug logging to file&lt;br /&gt;
  v5.6.11 (2025-01-02)&lt;br /&gt;
    - added cmd_rapid for rapidfire/515 usage&lt;br /&gt;
    - added rapid/!rapid command check for current rapidfire buff&lt;br /&gt;
    - bugfix for room claim with disks if SET DESCRIPTION is off&lt;br /&gt;
  v5.6.10 (2024-12-22)&lt;br /&gt;
    - added optional stand-up stance selection&lt;br /&gt;
    - bugfix for surge in cmd_surge and command_check&lt;br /&gt;
    - bugfix for burst in command_check&lt;br /&gt;
  v5.6.9  (2024-12-09)&lt;br /&gt;
    - bugfix for group members in room claim&lt;br /&gt;
    - bugfix for weapon reactions to be done in @HUNTING_STANCE&lt;br /&gt;
  v5.6.8  (2024-12-06)&lt;br /&gt;
    - additional regex for rooted debuff&lt;br /&gt;
    - bugfix for leader waiting to regroup during rest cycle&lt;br /&gt;
  v5.6.7  (2024-12-06)&lt;br /&gt;
    - bugfix for follower not attacking&lt;br /&gt;
    - add cmd_wandolier (using fresh wand container and wand name)&lt;br /&gt;
  v5.6.6  (2024-12-02)&lt;br /&gt;
    - typo in load_settings: &#039;maxstamina&#039; should be maxstamina&lt;br /&gt;
  v5.6.5  (2024-11-23)&lt;br /&gt;
    - added test method, usage: ;bigshot test &amp;lt;method&amp;gt; &amp;lt;arg1&amp;gt; &amp;lt;arg2&amp;gt; etc.&lt;br /&gt;
    - added ;bigshot list to display initialized values&lt;br /&gt;
    - bugfix for out of mana default not an integer&lt;br /&gt;
    - update to check_required_values&lt;br /&gt;
    - update to load_settings&lt;br /&gt;
    - bugfix to allow follower to sit when resting&lt;br /&gt;
    - bugfix updating spin button settings&lt;br /&gt;
    - $rest_reason wasn&#039;t being reset before next hunt&lt;br /&gt;
    - bugfix in profile sorting&lt;br /&gt;
    - bugfix for leader to wait for wounded follower&lt;br /&gt;
    - bugfix unnecessary groupcheck in pre_hunt method&lt;br /&gt;
  v5.6.4  (2024-11-18)&lt;br /&gt;
    - bugfix for ready_to_hunt stamina check when set to 100&lt;br /&gt;
  v5.6.3  (2024-11-14)&lt;br /&gt;
    - bugfix for the command check when rooted&lt;br /&gt;
  v5.6.2  (2024-11-13&lt;br /&gt;
    - prevent UAC from trying to kick when rooted&lt;br /&gt;
  v5.6.1  (2024-11-13)&lt;br /&gt;
    - bugfix in bandit tracking&lt;br /&gt;
    - bugfix in loot() method&lt;br /&gt;
    - add msg in class BSAreaRooms if open boundary&lt;br /&gt;
  v5.6.0  (2024-09-11)&lt;br /&gt;
    - new room claim process inspired by ;overwatch and Lich::Claim&lt;br /&gt;
    - additional targeting for bandits&lt;br /&gt;
    - bugfix on confusion status to confused&lt;br /&gt;
  v5.5.0  (2024-08-24)&lt;br /&gt;
    - rework of debug messaging&lt;br /&gt;
    - removed duplicate calls to methods&lt;br /&gt;
    - once command update for force&lt;br /&gt;
    - updated check_required_values for integer Use&lt;br /&gt;
    - set defaults for integer settings&lt;br /&gt;
    - support for worn items with wield command&lt;br /&gt;
  v5.4.5  (2024-08-20)&lt;br /&gt;
    - update spinButton to save properly when manually entered&lt;br /&gt;
  v5.4.4  (2024-08-19)&lt;br /&gt;
    - remove unused GUI elements&lt;br /&gt;
  v5.4.3  (2024-08-19)&lt;br /&gt;
    - updated wander wait to a spin button&lt;br /&gt;
    - bugfix for missing id on lte_boost&lt;br /&gt;
    - update OOM spin button to allow for negatives&lt;br /&gt;
    - updated OOM check for negative values&lt;br /&gt;
  v5.4.2  (2024-08-17)&lt;br /&gt;
    - bugfix in cmd_spell to set Spell&#039;s @@after_stance to prevent forced stance dancing when hunting_stance is offensive&lt;br /&gt;
  v5.4.1  (2024-08-14)&lt;br /&gt;
    - room command check logic correction&lt;br /&gt;
  v5.4.0  (2024-08-07)&lt;br /&gt;
    - UI updates&lt;br /&gt;
    - Notes section added on profiles tab&lt;br /&gt;
    - percent_stamina added as a should_hunt? parameter&lt;br /&gt;
    - wander stance added&lt;br /&gt;
  v5.3.17 (2024-08-05)&lt;br /&gt;
    - added 506/celerity check&lt;br /&gt;
    - fix for hunt_monitor not working for followers&lt;br /&gt;
  v5.3.16 (2024-08-04)&lt;br /&gt;
    - fix for ROOM being missed in command_check regex&lt;br /&gt;
  v5.3.15 (2024-07-25)&lt;br /&gt;
    - add ROOM command check, Performs the command a single time only per room, clears on room change&lt;br /&gt;
  v5.3.14 (2024-07-24)&lt;br /&gt;
    - bugfix for reset_variables&lt;br /&gt;
  v5.3.13 (2024-07-19)&lt;br /&gt;
    - bugfix for head/tail random looting&lt;br /&gt;
    - bugfix for smite tracking in a group&lt;br /&gt;
  v5.3.12 (2024-07-13)&lt;br /&gt;
    - update profile_current and save_profile_name when using CLI profile load/save&lt;br /&gt;
    - bugfix ready_to_rest? should_rest lambda logic&lt;br /&gt;
  v5.3.11 (2024-06-20)&lt;br /&gt;
    - fix to break from cmd_assault command on cooldown if loop repeated&lt;br /&gt;
  v5.3.10 (2024-06-15)&lt;br /&gt;
    - added support for Seanette&#039;s Shout in Society/Abilities/Spells/Cmans section of the hunting tab&lt;br /&gt;
  v5.3.9 (2024-05-29)&lt;br /&gt;
    - add additional missing cmd_assault regex matching&lt;br /&gt;
  v5.3.8 (2024-05-18)&lt;br /&gt;
    - remove superfluous check for escorts, not needed since they are not valid targets&lt;br /&gt;
  v5.3.7 (2024-05-01)&lt;br /&gt;
    - fix for Char.prof/Char.level to Stats.prof/Stats.level&lt;br /&gt;
  v5.3.6 (2024-04-28)&lt;br /&gt;
    - add additional custom disk noun&lt;br /&gt;
  v5.3.5 (2024-04-24)&lt;br /&gt;
    - handle all the new custom disk nouns&lt;br /&gt;
  v5.3.4 (2024-03-29)&lt;br /&gt;
    - fix to add Tangle Weed (610) status of &amp;quot;entangled&amp;quot; to the PRONE regex&lt;br /&gt;
    - fix for kweed command to use EVOKE instead of stancing&lt;br /&gt;
  v5.3.3 (2024-03-15)&lt;br /&gt;
    - fix for cmd_briar to use MEASURE instead of LOOK due to gamefeed issue with extended show descriptions&lt;br /&gt;
    - fix for cmd_briar to support UCS worn gear and two weapon combat&lt;br /&gt;
  v5.3.2 (2024-03-12)&lt;br /&gt;
    - bugfix in check_required_values&lt;br /&gt;
  v5.3.1 (2024-03-11)&lt;br /&gt;
    - bugfix for UIDs in boundary rooms and new boundary return outside of hunting area feature&lt;br /&gt;
    - added cmd_curse command for Sorcerer spell Curse 715&lt;br /&gt;
    - added cmd_store command to store left, right or both, but only if something is in those hands&lt;br /&gt;
  v5.3.0 (2023-11-29)&lt;br /&gt;
    - added boundary return if character ends up outside hunting area&lt;br /&gt;
    - added option to double cast on fog options when returning from the Rift&lt;br /&gt;
    - added support for warcry holler buff&lt;br /&gt;
    - fixed bug in stand method when command is an array&lt;br /&gt;
    - fixed command to standardize to downcase&lt;br /&gt;
    - fixed bug in head/tail looting where the leader wasn&#039;t waiting for the follower to loot&lt;br /&gt;
    - removed $bigshot_briar in favor of Spell[9105]&lt;br /&gt;
    - added toggle to check for favor before using voln symbol on hunting tab&lt;br /&gt;
    - expanded need_to_loot method for 1108 kills&lt;br /&gt;
    - added escape for temporal rift&lt;br /&gt;
    - added eachtarget command that attacks each creature in the room eg. (eachtarget force incant 917 until 101 (once), incant 903 (x10))&lt;br /&gt;
    - removed change log comments before 5.0.0 and updated wiki&lt;br /&gt;
  v5.2.2 (2023-11-21)&lt;br /&gt;
    - bugfix causing bs_wander to delay 0.5 seconds longer than needed&lt;br /&gt;
    - added Roa&#039;ter and Ooze escape check in bs_wander&lt;br /&gt;
  v5.2.1 (2023-11-15)&lt;br /&gt;
    - add new efury, caststop, and wield cmd&lt;br /&gt;
    - redo unravel/barddispel cmd&lt;br /&gt;
  v5.2.0 (2023-10-02)&lt;br /&gt;
    - general adjustment to group hunting&lt;br /&gt;
    - additions to group looting for exclude individuals as well as allowing for changing looter based on encumbrance&lt;br /&gt;
    - changes to try and prevent leaving stray bandits&lt;br /&gt;
    - update to prevent targeting 709 arms&lt;br /&gt;
    - allows multiple rally rooms just separate with commas&lt;br /&gt;
    - added multiple return room waypoints&lt;br /&gt;
    - added support for ranger tracking. Usage ;bigshot &amp;lt;options&amp;gt; &amp;lt;creature&amp;gt; example: ;bigshot single giant rat&lt;br /&gt;
  v5.1.10 (2023-09-28)&lt;br /&gt;
    - bugfix for ;bigshot quick occassionally stopping when another character enters the room&lt;br /&gt;
    - changed BIGSHOT_VERSION variable to pull version from title block&lt;br /&gt;
    - bugfix for display output&lt;br /&gt;
  v5.1.9 (2023-09-24)&lt;br /&gt;
    - fix to debug variable being hard set at launch to false.&lt;br /&gt;
    - add CLI debug option to toggle debug value between true/false.&lt;br /&gt;
  v5.1.8 (2023-09-18)&lt;br /&gt;
    - add acid &amp;amp; steam to incant 518 allowances in cmd_spell&lt;br /&gt;
  v5.1.7 (2023-09-16)&lt;br /&gt;
    - bugfix wracking not considering active COL signs&lt;br /&gt;
    - added RT check for wand method&lt;br /&gt;
  v5.1.6 (2023-09-12)&lt;br /&gt;
    - bugfix for cmd_force when target has 115&lt;br /&gt;
  v5.1.5 (2023-08-30)&lt;br /&gt;
    - bugfix for calling escape_rooms for tail&lt;br /&gt;
  v5.1.4 (2023-08-30)&lt;br /&gt;
    - bugfix for Roa&#039;ter and Ooze escape for head/tail&lt;br /&gt;
  v5.1.3 (2023-08-26)&lt;br /&gt;
    - add 335/Divine Wrath cooldown check in cmd_spell to not cast&lt;br /&gt;
    - change cmd_spell to use Spell.force_incant for incanted spells instead of bs_put&lt;br /&gt;
  v5.1.2 (2023-08-21)&lt;br /&gt;
    - fix incorrect regex match for mighty blow&lt;br /&gt;
  v5.1.1 (2023-08-14)&lt;br /&gt;
    - fix missing regex match for censer command check&lt;br /&gt;
  v5.1.0 (2023-08-07)&lt;br /&gt;
    - add ooze_escape for getting out of Ooze, Innards in HW.&lt;br /&gt;
  v5.0.0 (2023-7-19)&lt;br /&gt;
    - move method spell_is_selfcast? inside Bigshot class&lt;br /&gt;
    - corrected deadmans typo&lt;br /&gt;
    - moved Setup class outside main Bigshot block&lt;br /&gt;
    - renamed various methods to snake case&lt;br /&gt;
    - removed changlog notes older than 4.17.0 and updated changelog on wiki&lt;br /&gt;
    - bugfix for bearhug complete_regex and in the command check&lt;br /&gt;
    - retry RT commands for warrior and rogue guild cmans&lt;br /&gt;
    - added rooted to status check&lt;br /&gt;
    - bugfix in check_target_vitals&lt;br /&gt;
    - bugfix in cast_signs undefined method `=~&#039; for false:FalseClass&lt;br /&gt;
  v4.17.6 (2023-07-11)&lt;br /&gt;
    - will perform one final loot call if OOM, bounty complete, dread, or fried before resting&lt;br /&gt;
    - bugfix in cast signs for KS+Mental Acuity Monk&lt;br /&gt;
  v4.17.5 (2023-07-05)&lt;br /&gt;
    - Added support for MA hunting single loop&lt;br /&gt;
  v4.17.4 (2023-06-29)&lt;br /&gt;
    - Expanded UCS followup attack tracking to work with PSM attacks.&lt;br /&gt;
    - Added UCS tier command checks  tier3, !tier3, ect.&lt;br /&gt;
  v4.17.3 (2023-06-24)&lt;br /&gt;
    - Added support for sneaking while hunting.&lt;br /&gt;
  v4.17.2 (2023-06-21)&lt;br /&gt;
    - Added missing regex for fury completion.&lt;br /&gt;
  v4.17.1 (2023-06-13)&lt;br /&gt;
    - Reconfigure assume aspect&lt;br /&gt;
    - Removed check that could cause nerves to get blown.&lt;br /&gt;
    - Added cman ki focus&lt;br /&gt;
  v4.17.0 (2023-06-04)&lt;br /&gt;
    - Skip infomon.lic check if on newer Lich versions&lt;br /&gt;
  v4.16.3 (2023-05-20)&lt;br /&gt;
    - Update for groupcheck to strip XML from $grouplist&lt;br /&gt;
  v4.16.2 (2023-05-19)&lt;br /&gt;
    - Update for GROUP output display&lt;br /&gt;
  v4.16.1 (2023-05-16)&lt;br /&gt;
    - Add burst of swiftness&lt;br /&gt;
  v4.16.0 (2023-04-06)&lt;br /&gt;
    - Add bard command unravel to dispel and stop&lt;br /&gt;
    - Add bard command barddispel to dispel single spell from target&lt;br /&gt;
    - Add once command check to perform a command one time on a specific target only. Resets on room change.&lt;br /&gt;
    - bugfix for barrange and using bolts&lt;br /&gt;
  v4.15.6 (2023-04-04)&lt;br /&gt;
    - Add cman sbash to cmans as was missing&lt;br /&gt;
  v4.15.5 (2023-03-15)&lt;br /&gt;
    - Rubocop cleanup&lt;br /&gt;
    - replace script.vars with Script.current.vars&lt;br /&gt;
  v4.15.4 (2023-03-13)&lt;br /&gt;
    - add additional missing 709 arms to exclude for NPCs check&lt;br /&gt;
  v4.15.3 (2023-03-02)&lt;br /&gt;
    - bugfix for cmd_shields&lt;br /&gt;
  v4.15.2 (2023-03-01)&lt;br /&gt;
    - bugfix to allow cmd_weapons to work if using more than base Mnemonic&lt;br /&gt;
    - bugfix to allow cmd_shields to work if using more than base Mnemonic&lt;br /&gt;
    - bugfix to allow cmd_cmans to work if using more than base Mnemonic&lt;br /&gt;
    - bugfix to allow cmd_bearhug to work if using more than base Mnemonic&lt;br /&gt;
    - bugfix to allow cmd_rogue_cmans to work if using more than base Mnemonic&lt;br /&gt;
  v4.15.1 (2023-02-18)&lt;br /&gt;
    - initial bugfix(s) for Ruby 3.x compliance&lt;br /&gt;
    - fix for exiting cmd_force if command check fails on cmd&lt;br /&gt;
  v4.15.0 (2023-02-18)&lt;br /&gt;
    - add tonis/1035 command&lt;br /&gt;
    - bugfix to not try to pull dead people up&lt;br /&gt;
  v4.14.8 (2023-02-11)&lt;br /&gt;
    - moved bounty check to after looting to avoid excessive game feed&lt;br /&gt;
  v4.14.7 (2023-02-09)&lt;br /&gt;
    - added missing room claim check&lt;br /&gt;
  v4.14.6 (2023-02-06)&lt;br /&gt;
    - fix head/tail issues with claim&lt;br /&gt;
    - cleaned up also here detection&lt;br /&gt;
    - cleaned up cast_signs to not spam song status for bards&lt;br /&gt;
  v4.14.5 (2023-02-03)&lt;br /&gt;
    - regex fix for hunt monitor claim_room&lt;br /&gt;
    - fix in bs_wander method for &#039;approach lone target only&#039;&lt;br /&gt;
  v4.14.4 (2023-02-02)&lt;br /&gt;
    - fix second target aquisition to use valid_targets?&lt;br /&gt;
    - fix odd issue that would cause you to loot existing corpses in specific scenarios.&lt;br /&gt;
  v4.14.3 (2023-02-01)&lt;br /&gt;
    - fixed bigshot quick group room claim&lt;br /&gt;
    - fixed regex to prevent attacks from removing people from claim&lt;br /&gt;
  v4.14.2 (2023-01-31)&lt;br /&gt;
    - updates to room claim system ;e UserVars.show_claim = true/false to echo when room is claimed.&lt;br /&gt;
  v4.14.1 (2023-01-28)&lt;br /&gt;
    - bugfix for GTK display if old settings contained integer for certain fields&lt;br /&gt;
    - bugfix to allow cmd_assault to work if using more than Mnemonic (ie fury punch)&lt;br /&gt;
    - add new regex result for cmd_cmans for sattack&lt;br /&gt;
    - remove spam/unspam as waitrt?/waitcastrt? updated in Lich5 to be faster by default&lt;br /&gt;
  v4.14.0 (2023-01-25)&lt;br /&gt;
    - add new slayer command for 240&lt;br /&gt;
    - fix for wander_wait to use should_flee?&lt;br /&gt;
  v4.13.18 (2023-01-24)&lt;br /&gt;
    - introduced room claim system to prevent poaching.&lt;br /&gt;
  v4.13.17 (2023-01-23)&lt;br /&gt;
    - move wander_wait to prevent poaching&lt;br /&gt;
  v4.13.16 (2023-01-21)&lt;br /&gt;
    - added support to rest for debuffs: Wall of Thorn Poison, Confusion, Creeping Dread, and Crushing Dread&lt;br /&gt;
  v4.13.15 (2023-01-12)&lt;br /&gt;
    - Add 1650 cooldown check for cast_signs&lt;br /&gt;
  v4.13.14 (2023-01-12)&lt;br /&gt;
    - add bounty check while resting and in bounty mode&lt;br /&gt;
  v4.13.13 (2022-12-03)&lt;br /&gt;
    - add bounty check while resting and in bounty mode&lt;br /&gt;
  v4.13.12 (2022-12-01)&lt;br /&gt;
    - reset bounty_eval when bounty complete&lt;br /&gt;
  v4.13.11&lt;br /&gt;
    - bounty mode will only exit if bounty is complete or child present&lt;br /&gt;
  v4.13.10 (2022-11-30)&lt;br /&gt;
    - bug fix for comparison of bonded weapon return&lt;br /&gt;
  v4.13.9 (2022-11-30)&lt;br /&gt;
    - bug fix for extra kills not being in monsterbold&lt;br /&gt;
  v4.13.8 (2022-11-18)&lt;br /&gt;
    - convert directory lookups to File.join to prevent OS pathname issues&lt;br /&gt;
    - bug fix for poaching on rally_point and starting room&lt;br /&gt;
    - bug fix for cmd_assume&lt;br /&gt;
    - fix for cmd_hide using bs_put instead of fput&lt;br /&gt;
    - bug fix to create UserVars.op on first run&lt;br /&gt;
    - remove message() override color and update calls to use yellow to retain previous coloring&lt;br /&gt;
  v4.13.7 (2022-11-14)&lt;br /&gt;
    - bugfix for overkill hunting&lt;br /&gt;
  v4.13.6 (2022-11-10)&lt;br /&gt;
    - rearranged command tab for clarity&lt;br /&gt;
    - removed profile checkboxes for ebounty, not needed&lt;br /&gt;
    - added bounty_eval to support bounty mode and ebounty completion&lt;br /&gt;
  v4.13.5 (2022-11-7)&lt;br /&gt;
    - bug fix for MA looter&lt;br /&gt;
  v4.13.4 (2022-11-7)&lt;br /&gt;
    - bug fix for split, buff, and other checks&lt;br /&gt;
  v4.13.3 (2022-11-7)&lt;br /&gt;
    - bug fix for censure command&lt;br /&gt;
  v4.13.2 (2022-11-5)&lt;br /&gt;
    - added support to designate a looter for head/tail operations: See Misc tab&lt;br /&gt;
    - added check for ...wait issue on routines&lt;br /&gt;
    - reorganized the commands a little more to help with troubleshooting&lt;br /&gt;
  v4.13.1 (2022-11-03)&lt;br /&gt;
    Typo fixes in cman regex&lt;br /&gt;
  v4.13.0 (2022-11-03)&lt;br /&gt;
    Added profile support to UI&lt;br /&gt;
    ***************************&lt;br /&gt;
    Changed file save location&lt;br /&gt;
    /scripts/bigshot_profiles to Lich5/data/GSIV/&amp;lt;charname&amp;gt;/bigshot_profiles.  &lt;br /&gt;
    Lich5/data/GSIV/Rinualdo/bigshot_profiles as an example.&lt;br /&gt;
    Existing profiles will need to be resaved or migrated over. &lt;br /&gt;
    ***************************&lt;br /&gt;
    Added standard Lich messaging functionality &lt;br /&gt;
    Reorganized UI menu and locations&lt;br /&gt;
    Code cleanup.&lt;br /&gt;
    Support for future (RSN) ebounty script&lt;br /&gt;
    Fix to allow 640 blocked attacks to work for wait_for_attack&lt;br /&gt;
    Fix to only account for renewal mana if bard and have renewal costs&lt;br /&gt;
    Support for uid&#039;s for hunting and resting&lt;br /&gt;
    Fix for percent_mind to more accurately gauge current mind full status&lt;br /&gt;
  v4.12.12 (2022-10-28)&lt;br /&gt;
    Fix for waitcastrt? before commands unless command can be executed during castrt&lt;br /&gt;
    Fix for quickhunt targets when given an attack routine&lt;br /&gt;
  v4.12.11 (2022-09-18)&lt;br /&gt;
    Fixed calls to kill hunting scripts started with args&lt;br /&gt;
  v4.12.10 (2022-08-21)&lt;br /&gt;
    Added tumbleweed to list of tangleweed nouns&lt;br /&gt;
  v4.12.9 (2022-08-08)&lt;br /&gt;
    Bugfix for 9625/burst of swiftness&lt;br /&gt;
  v4.12.8 (2022-08-07)&lt;br /&gt;
    Added support for Burst of Swiftness. 9625 in society box.&lt;br /&gt;
    Added kneeling command check (k) (!k)&lt;br /&gt;
    Will no longer attempt to stand when hidden and kneeling.&lt;br /&gt;
  v4.12.7 (2022-07-27)&lt;br /&gt;
    Added checkbox to opt out of mstrike on unarmed combat.  &lt;br /&gt;
  v4.12.6 (2022-07-24)&lt;br /&gt;
    Gave frozen it&#039;s own command check&lt;br /&gt;
    Expanded support for dislodge firing only on specific locations.&lt;br /&gt;
    Commented out ammo gathering.&lt;br /&gt;
  v4.12.5 (2022-07-21)&lt;br /&gt;
    Fixed shield bash to work for both shield and cman skills.&lt;br /&gt;
    1040 now has a checkbox to auto shout if you or group member could benefit.&lt;br /&gt;
    Will no longer pull kneeling people to their feet.&lt;br /&gt;
    Will no longer attempt to pull the dead to their feet.&lt;br /&gt;
  v4.12.4 (2022-07-01)&lt;br /&gt;
    Add command check for tailwind.&lt;br /&gt;
    Fixed briar command with briar weapon in off hand of twc.&lt;br /&gt;
    Fixed bigshot quick standing around waiting for mana.&lt;br /&gt;
  v4.12.3 (2022-07-01)&lt;br /&gt;
    Add check to deadman&#039;s switch to only work in Shattered.&lt;br /&gt;
  v4.12.2 (2022-06-08)&lt;br /&gt;
    Add checks for Divergence cooldown spells for hunting tab abilities/spells/cmans&lt;br /&gt;
    Changed boon detection to look at gameobj-data.xml TYPE instead of hardcoded name adjective check&lt;br /&gt;
  v4.12.1 (2022-06-01)&lt;br /&gt;
    Add SSR to force results check&lt;br /&gt;
    Add additional weed/kweed for Tangle Weed 610&lt;br /&gt;
    Adjusted hunt logic to prevent fleeing when someone enters.&lt;br /&gt;
  v4.12.0 (2022-05-24)&lt;br /&gt;
    Update various GameObj.npcs to use GameObj.targets&lt;br /&gt;
    Add familiar gate(930) as a fog option&lt;br /&gt;
    Add cmd_leech to cast Mana Leech/516&lt;br /&gt;
    Fix for spell cleave cman to not attempt if on cooldown&lt;br /&gt;
  v4.11.4 (2022-05-20)&lt;br /&gt;
    Fix for cmd_ambush to switch to attack if not hidden&lt;br /&gt;
    Update flee_message tooltip to state uses XML feed not plain text&lt;br /&gt;
  v4.11.3 (2022-05-01)&lt;br /&gt;
    Fixed dhurl with the new aim messaging&lt;br /&gt;
    Adjusted location of waitrt in command checks&lt;br /&gt;
    Changed do_hunt() to use no_players() instead of no_players_hunt() to prevent poaching in first room of the hunt.&lt;br /&gt;
  v4.11.2 (2022-04-29)&lt;br /&gt;
    Added a waitrt? to cmd_spell routine.&lt;br /&gt;
  v4.11.1 (2022-04-23)&lt;br /&gt;
    Fixed bug with cast_signs() assuming bards are always singing.&lt;br /&gt;
    Cleaned up RoaterEscape(), it will now open containers to look for dagger type weapon.&lt;br /&gt;
	Roater&#039;s and Rift Crawlers are pretty much identical in this aspect. No changes needed to work for both.&lt;br /&gt;
    Added waitrt? to command checks to prevent check from clearing while in rt from previous move.&lt;br /&gt;
  v4.11.0 (2022-04-15)&lt;br /&gt;
    Adjusted hide to specify number of attempts to try and hide if failing: hide 2   &lt;br /&gt;
	Added Swift Justice tracking command check: (justice) (!justice) to use skill when swift justice has charges or has no charges.&lt;br /&gt;
  v4.10.1 (2022-04-04)&lt;br /&gt;
    Update consecrate to not return from hunt if blessing a sanctified weapon&lt;br /&gt;
  v4.10.0 (2022-04-02)&lt;br /&gt;
    Fixed pummel buff check from crushing blows to concussive blows.&lt;br /&gt;
    Added stomp command for Tremors.&lt;br /&gt;
  v4.9.0 (2022-03-24)&lt;br /&gt;
    Added support for briar weapons. Will check for buff and check status of weapons charge.&lt;br /&gt;
    Added support for assume aspect. Will alternate between aspects or evoke for one aspect.&lt;br /&gt;
    Added support for cman stance perfection. Put 10,20,30,ect in attack stance box.&lt;br /&gt;
    Fixed dhurl command knowing weapon auto returned from bond.		&lt;br /&gt;
  v4.8.7 (2022-03-12)&lt;br /&gt;
    Fixed mstrike cooldown and debuff checks.&lt;br /&gt;
    Added Barkskin cooldown support. Add 605 to your society abilities box.&lt;br /&gt;
    Added song renewal mana cost check to cast_signs()&lt;br /&gt;
    Fix for animated slushes registering as animates&lt;br /&gt;
    Added (censer) command check to attempt a 320 before the command.&lt;br /&gt;
    Added hurl command. Will hurl and recover item.&lt;br /&gt;
    Fix familiar check to not cause familiar to return  &lt;br /&gt;
  v4.8.6 (2022-03-10)&lt;br /&gt;
    Fixed conflict with 1040 and warcry shout. Simply &#039;1040&#039; to use 1040 not shout 1040.&lt;br /&gt;
    Fixed missing msg from bullrush and forced prone check for bullrush/twin weapon.&lt;br /&gt;
    Update for disk detection of group members&lt;br /&gt;
  v4.8.5 (2022-03-10)&lt;br /&gt;
    Added attempt mana pulse on 130 fog option if not enough mana&lt;br /&gt;
  v4.8.4 (2022-03-08)&lt;br /&gt;
    Fixed 9605 in society box, integrated surge in hunting commands.&lt;br /&gt;
    Added command switch to refresh buffs based on duration.&lt;br /&gt;
  v4.8.3 (2022-03-08)&lt;br /&gt;
    Fixed global variable call for standing&lt;br /&gt;
  v4.8.2 (2022-03-08)&lt;br /&gt;
    Added version check for Infomon due to new Effects/Cmans&lt;br /&gt;
  v4.8.1 (2022-03-08)&lt;br /&gt;
    Added version check for Lich due to new Effects/Cmans&lt;br /&gt;
  v4.8.0 (2022-03-07)&lt;br /&gt;
    Integrated weapon/shield/cman skills and warcries.&lt;br /&gt;
    barrage(!barrage) will only barrage if you don&#039;t have the buff&lt;br /&gt;
    bellow all, will aoe bellow vs bellow target, will single target bellow&lt;br /&gt;
  v4.7.7 (2022-03-02)&lt;br /&gt;
    Add option to Stop for Deaders on Hunting tab&lt;br /&gt;
    When enabled, bigshot will PAUSE when it encounters a dead player&lt;br /&gt;
  v4.7.6 (2022-03-02)&lt;br /&gt;
    Updated Fog options to include Sigil of Escape&lt;br /&gt;
  v4.7.5 (2022-02-02)&lt;br /&gt;
    Updated needs bless logic to to remove false positives (most cases)&lt;br /&gt;
  v4.7.4 (2022-01-29)&lt;br /&gt;
    Updated target logic to ignore sorcerer animates.&lt;br /&gt;
    Updated loot subroutine to flag looting active - prevent BS from forcing stand&lt;br /&gt;
  v4.7.3 (2022-01-25)&lt;br /&gt;
    Updated bless routines to current text and provide option to continue hunt.&lt;br /&gt;
    Disabled default startup sound value. Uncomment print &amp;quot;\a&amp;quot; unless $bigshot_quick if function is desired.&lt;br /&gt;
  v4.7.2 (2021-12-14)&lt;br /&gt;
    Updated GTK version detection for proper display in dark-mode&lt;br /&gt;
  v4.7.1 (2021-12-12)&lt;br /&gt;
     Adding bigshot single run mode accessed via ;bigshot single  &lt;br /&gt;
  v4.7.0 (2021-08-11)&lt;br /&gt;
    -Updated group and event namespace to prevent future conflicts&lt;br /&gt;
    -Consolidated Changelog and updated it on the GS wiki&lt;br /&gt;
  v4.6.0 (2021-08-06)&lt;br /&gt;
    -Separated bigshot_monitor to only run while hunting (to resolve lag in very active rooms)&lt;br /&gt;
    -Added initial automatic weapon reactions&lt;br /&gt;
  v4.5.0 (2021-06-25)&lt;br /&gt;
    -Add fog only if encumbered or injured checkbox&lt;br /&gt;
  v4.4.0 (2021-06-25)&lt;br /&gt;
    -Add flee from voids option to general tab&lt;br /&gt;
  v4.3.4 (2021-05-29)&lt;br /&gt;
    -Updated UAC mstrike to always use tier3 for auto-tiering&lt;br /&gt;
  v4.3.3 (2021-05-12)&lt;br /&gt;
    -Revise GTK3 check to be more compatible with older versions of GTK that don&#039;t support Gtk::Version calls&lt;br /&gt;
  v4.3.2 (2021-05-02)&lt;br /&gt;
    -Updated Etheral Censer to be used in signs based on the cooldown refreshes&lt;br /&gt;
  v4.3.1 (2021-04-30)&lt;br /&gt;
    -Added regex for stance changing when using STANCE VERBOSE&lt;br /&gt;
  v4.3.0 (2021-04-13)&lt;br /&gt;
    -Add flee from boon/boss/glamour mobs checkbox on attacking tab&lt;br /&gt;
  v4.2.4 (2021-03-02)&lt;br /&gt;
    -Fix cast roundtime regex match for chan&lt;br /&gt;
  v4.2.3 (2021-02-10)&lt;br /&gt;
    -Fixes cman&#039;s to be usable with the force until option.&lt;br /&gt;
  v4.2.2 (2021-01-19)&lt;br /&gt;
    -Fix for certain values getting set when opening GUI, overwriting own settings&lt;br /&gt;
  v4.2.1 (2021-01-12)&lt;br /&gt;
    -Fixed stand() def to not stand if xbow kneel/fire&lt;br /&gt;
    -Update buffer check for SMR result txt&lt;br /&gt;
  v4.2.0 (2021-01-03)&lt;br /&gt;
    -Removed 1617 from forced stance change&lt;br /&gt;
    -Added customizable interaction monitoring panel&lt;br /&gt;
  v4.1.1 (2020-12-31)&lt;br /&gt;
    -Added cleanup from selfcast check in bigshot PR #374&lt;br /&gt;
    -Included v3.93 updates&lt;br /&gt;
    -Added loot room option when no loot script is defined&lt;br /&gt;
    -Migrated v3 changelog to gswiki&lt;br /&gt;
    -Updated Version Control&lt;br /&gt;
  v4.1 (2020-12-31)&lt;br /&gt;
    -Added GTK2/GTK3 dual logic for compatability&lt;br /&gt;
  v4.0 (2020-08-13)&lt;br /&gt;
    -Fix for ambush (Head/Neck/Eyes), no longer get stuck ambushing a head/neck over and over&lt;br /&gt;
    -Archery Updates&lt;br /&gt;
       Change aim location based on target actual status&lt;br /&gt;
       BUGFIX:Aiming should now actually function as intended when switching targets&lt;br /&gt;
       --TODO!Crossbows should now work with Bigshot, see pre-fire commands for details&lt;br /&gt;
    -Group logic changes&lt;br /&gt;
       Followers can now stay in the resting area and wait to run scripts/commands until leader is done&lt;br /&gt;
          To do this, have the leader disband before running their scripts. With quiet followers selected&lt;br /&gt;
          Followers attempt to not execute scripts/actions until the leader is in the rest area with them (regardless of disband)&lt;br /&gt;
       Quiet Followers can be toggled off (not recommended)&lt;br /&gt;
       Followers will now wait to cast signs until hunt is about to begin&lt;br /&gt;
       Leader will no longer begin hunt until all followers are present and ready to go&lt;br /&gt;
       --TODO!Leader will wait at rallypoint for entire group to arrive before moving to hunt starting room&lt;br /&gt;
            If this feature is selected, the leader will not wait to hunt when at hunt starting room after rallypoint check&lt;br /&gt;
       BUGFIX:Fix for fatal recursion cause by obvious hiding players&lt;br /&gt;
       --TODO!Group should move more intelligently when seeking leader if group is broken&lt;br /&gt;
       BUGFIX:Group will now be more responsive to commands&lt;br /&gt;
    -Major UCS updates&lt;br /&gt;
        BUGFIX:Will now use Tier 3 attack when tiered up to 3 and no follow up available for everything, not just jab&lt;br /&gt;
        BUGFIX:Updates to UCS Mstrike, should no longer do open mstrikes when at or below threshhold instead of targetted mstrike&lt;br /&gt;
        UCS mstrike threshold merged with MStrike tab threshold&lt;br /&gt;
        --Still to be done: Per creature tier ups&lt;br /&gt;
    -Bigshot now has the ability to turn some individual checks on and off&lt;br /&gt;
          Functionality allows for custom hunting scripts to be built using Bigshot logic&lt;br /&gt;
          Added ability to send custom &amp;quot;fput&amp;quot; to Group&lt;br /&gt;
          Added ability to send custom &amp;quot;client_put&amp;quot; to Group&lt;br /&gt;
  v3.92 (2020-07-08)&lt;br /&gt;
    -Added LTE support for followers, overkill support for followers, &amp;amp; fried hunting commands for followers&lt;br /&gt;
  v3.91 (2020-06-16)&lt;br /&gt;
    -Added longterm boost usage option&lt;br /&gt;
  v3.90 (2020-05-19)&lt;br /&gt;
    -Minor fix to add a delay to 130/sym of return/1020 return option case in RT&lt;br /&gt;
  v3.89 (2020-03-28)&lt;br /&gt;
    -Crude fix for archery update, BLANK out your ammo &amp;amp; ammo container setting to NOT attempt to get ammo any longer&lt;br /&gt;
  v3.88 (2020-03-28)&lt;br /&gt;
    -Fixed a bug with obvious_hiding_player detection (Probably, at least)&lt;br /&gt;
    -Fixed a bug with poaching when other players are present&lt;br /&gt;
    -Cleaned out changelog history after updating wiki&lt;br /&gt;
    -Re-organized global variables and requires statements (alphabetized)&lt;br /&gt;
    -Added a sleep between resting_commands and hunting_prep_commands to prevent issues&lt;br /&gt;
    -Replaced all pause commands with sleep&lt;br /&gt;
    -Updated all sleep commands to follow proper syntax&lt;br /&gt;
  v3.87 (2020-19-11)&lt;br /&gt;
    -Added overkill counter for extra killed monsters&lt;br /&gt;
    -Tooltip updates&lt;br /&gt;
    -Formatting changes to make script more easily read&lt;br /&gt;
  v3.86 (2020-03-11)&lt;br /&gt;
    -Added outside &amp;amp; !outside command checks&lt;br /&gt;
  v3.85 (2020-02-28)&lt;br /&gt;
    -Resolved `block in setup` error when running setup in Fedora&lt;br /&gt;
  v3.84 (2020-02-15)&lt;br /&gt;
    -Fix a bug with &amp;quot;obvious hiding&amp;quot; players detection&lt;br /&gt;
  v3.83 (2020-02-13)&lt;br /&gt;
    -Added check for &amp;quot;obvious hiding&amp;quot; players (SET ObviousHiding ON)&lt;br /&gt;
  v3.82 (2020-02-02)&lt;br /&gt;
    -Added a v &amp;amp; !v command checks for checking spirit&lt;br /&gt;
    -Possible fix for FOG_RETURN not loading when doing ;bigshot setup properly&lt;br /&gt;
    -Added ;bigshot profile support&lt;br /&gt;
      ;bigshot profile load &amp;lt;name here, no spaces&amp;gt;&lt;br /&gt;
      ;bigshot profile save &amp;lt;name here, no spaces&amp;gt;&lt;br /&gt;
      Allows saving of bigshot profiles as YAML files, saved in your LICH\scripts\bigshot_profiles folder&lt;br /&gt;
  v3.81 (2019-09-06)&lt;br /&gt;
    -Fix for wands with extra descriptors in hand vs grab name&lt;br /&gt;
    -Add 1020 as an option for fleeing&lt;br /&gt;
  v3.80 (2019-08-01)&lt;br /&gt;
    -Exit cleanly from bounty mode&lt;br /&gt;
    -Don&#039;t count regenerating troll kings when deciding if there&#039;s enough enemies to flee&lt;br /&gt;
    -Treat intense shimmering circles like clouds when deciding to flee&lt;br /&gt;
    -Don&#039;t require Gtk if $bigshot_headless is defined&lt;br /&gt;
  v3.79 (2019-05-25)&lt;br /&gt;
    -Removed 309 from hardcoded selfcast list&lt;br /&gt;
  v3.78 (2019-05-10)&lt;br /&gt;
    -Missed a few settings for flying&lt;br /&gt;
  v3.77 (2019-05-10)&lt;br /&gt;
    -Added flying/!flying as command checks for attacks&lt;br /&gt;
  v3.76 (2018-07-04)&lt;br /&gt;
    -Fixed INCANT command to respect Spell.stance setting&lt;br /&gt;
  v3.75 (2018-07-02)&lt;br /&gt;
    -Fix ;bigshot bounty&lt;br /&gt;
    -Don&#039;t flee from your own group even if they&#039;re not hunting&lt;br /&gt;
  v3.74 (2018-04-30)&lt;br /&gt;
    -Added water as option for cmd_spell extra variable&lt;br /&gt;
  v3.73 (2018-04-22)&lt;br /&gt;
    -Add flee from webs option&lt;br /&gt;
    -Add 917 to not stance offensive if using incant&lt;br /&gt;
  v3.72 (2017-10-10)&lt;br /&gt;
    -Fix bug in berserk&lt;br /&gt;
  v3.71 (2017-10-08)&lt;br /&gt;
    -Attack line now recognizes &amp;quot;wand&amp;quot; by itself&lt;br /&gt;
    -Fix GameObjAdd autostart&lt;br /&gt;
  v3.70 (2017-09-28)&lt;br /&gt;
    -Fix download loop of GameObjAdd.lic&lt;br /&gt;
  v3.69 (2016-09-20)&lt;br /&gt;
    -Wont stance offensive for the spell 703 anymore&lt;br /&gt;
    -Fixes for delayed looting&lt;br /&gt;
    -option to pull players to there feet, Defaults to on&lt;br /&gt;
      -Only pulls the player to there feet if their is an aggressive npc in the room with them&lt;br /&gt;
  v3.68 (2016-09-14)&lt;br /&gt;
    -option to stance defensive before looting if not all the creatures in room are dead&lt;br /&gt;
    -wracking option now will use &amp;quot;Symbol of Mana&amp;quot; for voln peoples :)&lt;br /&gt;
    -Performs the bless routine if needed when you wander or go to rest now&lt;br /&gt;
    -Added a delayed looting option&lt;br /&gt;
      -skips looting when creature still alive in the room or its been less than 15 seconds since the last creature died&lt;br /&gt;
    -Will now try to escape from the inside of a roa&#039;ter if you get swallowed&lt;br /&gt;
  v3.67 (2016-08-31)&lt;br /&gt;
    -Optimization for priority checks, wont run that section of code so often anymore.&lt;br /&gt;
    -Manual aiming for unarmed combat routine. Command is &amp;quot;unarmed &amp;lt;punch/kick/grapple/jab&amp;gt; &amp;lt;aim location&amp;gt;&amp;quot;&lt;br /&gt;
      -Will swap to the default aiming when you can&#039;t reach what your aiming at or its already missing.&lt;br /&gt;
  v3.66 (2016-08-29)&lt;br /&gt;
    -Only checks for group members if there are other pcs in the room&lt;br /&gt;
    -Won&#039;t loot in the Duskruin Arena anymore&lt;br /&gt;
  v3.65 (2016-08-28)&lt;br /&gt;
    -Fixes for targeting, fleeing, and priority targeting&lt;br /&gt;
      -This should let bigshot work in the duskruin arena&lt;br /&gt;
  v3.64 (2016-08-23)&lt;br /&gt;
    -Changed Celerity option to only recast if you have less than 3 seconds left&lt;br /&gt;
    -Changed so it doesn&#039;t change into your attacking stance before casting&lt;br /&gt;
    -Changed Fog return option to be an option pulldown instead of a checkbox, defaults to None&lt;br /&gt;
  v3.63 (2016-08-23)&lt;br /&gt;
    -Added option to use Celerity (506) for any command.&lt;br /&gt;
      -Will cast if you dont have it on you or you have less than 6 seconds or so left on haste.&lt;br /&gt;
      -Just add haste or 506 to the front of any command you want it to be cast before.&lt;br /&gt;
      -example: &amp;quot;506 kill target&amp;quot; or &amp;quot;haste kill target(x3),525(pcs)&amp;quot;&lt;br /&gt;
  v3.62 (2016-08-23)&lt;br /&gt;
    -UAC Mstrike no longer will ignore the number of creatures in the room in some instances.&lt;br /&gt;
    -Option to flee the room when player-defined message from the game happen&lt;br /&gt;
      -Check the Attacking tab for box to input your text&lt;br /&gt;
    -Fixed issue with bigshot not targeting &amp;quot;do not count these&amp;quot; targets&lt;br /&gt;
    -Fixed issue with force command until # not working correctly&lt;br /&gt;
  v3.61 (2016-08-15)&lt;br /&gt;
    -Fix for new fogging option triggering at weird times.&lt;br /&gt;
  v3.60 (2016-08-15)&lt;br /&gt;
    -Fix for ;bigshot quick not working correctly when you dont have any quickhunt targets.&lt;br /&gt;
    -Option to use Spirit Guide (130) or Voln Symbol of Return when going to rest. Option is on Rest Tab.&lt;br /&gt;
  v3.59 (2016-08-13)&lt;br /&gt;
    -To prevent me having to duplicate code, Bigshot will now download GameObjAdd.lic and make it autostart&lt;br /&gt;
    -Spells should no longer target npcs when they are meant to target you. Let me know if something happens otherwise.&lt;br /&gt;
  v3.58 (2016-08-07)&lt;br /&gt;
    -companions and familiars should now be excluded from fleeing and targeting stuff&lt;br /&gt;
    -companions and familiars count for poaching checks now just like a disk does&lt;br /&gt;
      -this check only works for solo hunters, group bigshot hunters will ignore this&lt;br /&gt;
    -Ambushers that are part of your group should no longer trigger the poaching routine&lt;br /&gt;
    -Bigshot will on first run for a Ranger with a companion set your companion to a variable.&lt;br /&gt;
      -You can reset this variable with ;bigshot ranger or ;bigshot companion&lt;br /&gt;
  v3.57 (2016-08-04)&lt;br /&gt;
    -Bigshot won&#039;t consider arms(709) and demons(725) as room creatures for targeting or fleeing purposes&lt;br /&gt;
    -Priority should now ignore some NPCs when it does its calculations&lt;br /&gt;
  v3.56 (2016-08-02)&lt;br /&gt;
    -Think I have all the Reim mobs handled&lt;br /&gt;
    -Fix for Multi-account hunting...oops&lt;br /&gt;
    -other minor tweaks&lt;br /&gt;
  v3.55 (2016-07-31)&lt;br /&gt;
    -Target tracking for Aura of the Arkati (1614). Wont cast again on something that is affected.&lt;br /&gt;
    -More Reim creatures added, Still missing creatures from the gypsy camp probably, celestial types&lt;br /&gt;
    -New Command check: noncorporeal - Will see if current creature is non-corporeal undead&lt;br /&gt;
    -New Command check: pcs - Will check for other non-grouped players in the room&lt;br /&gt;
  v3.54 (2016-07-30)&lt;br /&gt;
    -REIM! Quick update for some support for reim creatures&lt;br /&gt;
    -Smite tracks individual mobs now, So if you switch creatures before killing it, will smite the new one&lt;br /&gt;
    -Fixed the lag issue&lt;br /&gt;
  v3.53 (2016-07-29)&lt;br /&gt;
    -Incant should now work for any incant combination&lt;br /&gt;
    -Bless can now bless two weapons that lose bless in same attack&lt;br /&gt;
  v3.52 (2016-07-27)&lt;br /&gt;
    -Changed variable tracking to be downstream hook instead of exec script&lt;br /&gt;
      -Please let me know if anything doesn&#039;t work like it did in the previous versions&lt;br /&gt;
    -Tracking added for Corrupt Essence (703), will no longer repeatedly cast and waste that precious mana&lt;br /&gt;
      -You can also cast it open as &amp;quot;incant 703 open&amp;quot;&lt;br /&gt;
    -Added flee from vines option to first tab of ;bigshot setup&lt;br /&gt;
  v3.51 (2016-07-25)&lt;br /&gt;
    -Special coding for 1700. Wont stance offensive for &amp;quot;incant 1700&amp;quot;, Will stance offensive for &amp;quot;incant 1700 evoke&amp;quot;&lt;br /&gt;
    -Fix for ;Bigshot quick not working when your quickhunt targets was empty&lt;br /&gt;
  v3.50 (2016-07-24)&lt;br /&gt;
    -Untargetable and Targetable lists now use the name instead of noun. Option to clear these so they can start fresh using ;bigshot reset. This will fix the issue for being unable to target guards in warcamps.&lt;br /&gt;
    -Targetable and Untargetable are now listed in ;bigshot display&lt;br /&gt;
    -Fix for Head/Tail Routine. Head wasn&#039;t waiting for the tail members to join bigshot group.&lt;br /&gt;
  v3.49 (2016-07-24)&lt;br /&gt;
    -Updated berserk to use Spell.cast functionality, should now use STOP BERSERK when no alive mobs in the room.&lt;br /&gt;
    -Command check added for poison and disease&lt;br /&gt;
    -Fixed some options that were out of place, oops&lt;br /&gt;
    -Tail should now use scripts when performing pre-hunt commands&lt;br /&gt;
    -Head should wait for tails to be out of RT before heading to rest now&lt;br /&gt;
    -Incant should no longer fry your nerves when you dont have enough mana.&lt;br /&gt;
    -Changed incant to use wands when you dont have enough mana.&lt;br /&gt;
      -Also checks your target before incanting, so you always target the correct creature&lt;br /&gt;
    -Changed wand routine to be able to use multiple wand types, &amp;quot;use this wand type&amp;quot; now takes comma seperated wands &amp;quot;use this wand type&amp;quot; example: &amp;quot;aquamarine wand, bloodwood wand, etc&amp;quot;&lt;br /&gt;
    -Changed incant, spell and wand routines to return to attack stance option instead of stance defensive.&lt;br /&gt;
    -Fixed bug with bless routine, maybe&lt;br /&gt;
    -Option to use Voln SMITE in UAC routine now, instead of always doing it.&lt;br /&gt;
  v3.48 (2016-07-20)&lt;br /&gt;
    -Added Consecrate(1604) to bless routine&lt;br /&gt;
    -Quickhunt targets code update and fixes&lt;br /&gt;
    -Made bless work with identical weapons&lt;br /&gt;
  v3.47 (2016-07-19)&lt;br /&gt;
    -fix for blessing weapons&lt;br /&gt;
  v3.46 (2016-07-19)&lt;br /&gt;
    -now tries to pull someone to their feet when they are lying down/kneeling/etc.&lt;br /&gt;
    -Rewrote the bless option to bless anything that runs out of a bless.&lt;br /&gt;
      -Now located on Attacking Tab as a checkbox&lt;br /&gt;
      -Returns you to your resting area if you can&#039;t bless things.&lt;br /&gt;
    -Added a priority targeting option to hunting tab.&lt;br /&gt;
      -Will switch target based on the order of your valid targets, whenever its attacking.&lt;br /&gt;
    -Added Quickhunt targets, These always are first in terms of priority (Quickhunt targets, room targets)&lt;br /&gt;
    -You can use the (a)|(b)|(etc) in here instead of just the Quickhunt routine every time.&lt;br /&gt;
  v3.45 (2016-07-09)&lt;br /&gt;
    -better code for checking for an escort, less error prone now (:&lt;br /&gt;
    -fixed rare issue with ambusher jumping out of hiding just as go to move and it screwing up bigshot&lt;br /&gt;
    -UAC Bless option changed so that you can leave it blank and it wont stop hunting. Has tooltip explaining different options.&lt;br /&gt;
  v3.44 (2016-07-01)&lt;br /&gt;
    -Fix for the fix for the fix!!&lt;br /&gt;
    -Added a check for spell 608 to skip if already hidden&lt;br /&gt;
    -Added hidden and !hidden a command check, hidden only works when your hiding, !hidden when your not hiding&lt;br /&gt;
  v3.43 (2016-07-01)&lt;br /&gt;
    -Fix for the Fix :(&lt;br /&gt;
  v3.42 (2016-06-30)&lt;br /&gt;
    -Fix for mob command check due to recent change&lt;br /&gt;
    -Optimized the escort npc check&lt;br /&gt;
  v3.41 (2016-06-30)&lt;br /&gt;
    -Fixed Head/Tail bigshot hunting&lt;br /&gt;
  V3.40 (2016-06-30)&lt;br /&gt;
    -Mstrike will now cast 1107 and 1607 when appropriate&lt;br /&gt;
    -Quick Hunting mode tweaked so that it works when your in a group, or in a room that isn&#039;t mapped&lt;br /&gt;
    -added inverse command checks, put a ! in front of the command check, i.e kill(!h60)&lt;br /&gt;
    -Doesn&#039;t count escorts anymore for NPC checks&lt;br /&gt;
  V3.39 (2016-06-26)&lt;br /&gt;
    -Quick Hunting mode added - Just start bigshot with the variable quick - ;bigshot quick&lt;br /&gt;
      -Quick Mode overrides your currently setup targets and targets the current room npcs&lt;br /&gt;
      -Wandering, Fleeing and Resting is disabled&lt;br /&gt;
      -Bigshot exits when no NPCS found in room&lt;br /&gt;
      -Uses Quick Hunting Commands&lt;br /&gt;
    -Supports up to 10 (A-J) different attack routines now.&lt;br /&gt;
      -Moved all the attack routines to new tab, Commands&lt;br /&gt;
    -Moved few options to the attacking tab&lt;br /&gt;
  v3.38 (2016-06-25)&lt;br /&gt;
    -added command check for target not being prone or target being undead&lt;br /&gt;
      -current checks are mana/stamina/health(percentage)/encumbrance/unarmed tiering/mobs in room/target not prone/target undead&lt;br /&gt;
      -m/s/h/e/tier/mob/prone/undead respectively&lt;br /&gt;
      -Prone means target is sleeping|webbed|stunned|kneeling|sitting|lying down|prone|frozen|held in place&lt;br /&gt;
  v3.37 (2016-06-24)&lt;br /&gt;
    -can now have two or more checks for a command. i.e kill(mob3 s20 h80) 3 mobs in room, stamina is above 20, health is above 80%&lt;br /&gt;
      -must all be inside the () and seperated with a space&lt;br /&gt;
      -current checks are mana/stamina/health(percentage)/encumbrance/unarmed tiering/mobs in room&lt;br /&gt;
      -m/s/h/e/tier/mob respectively&lt;br /&gt;
  v3.36 (2016-06-23)&lt;br /&gt;
    -Added option for adjusting wander time between rooms (Found on Hunting Map Tab)&lt;br /&gt;
  v3.35 (2016-06-14)&lt;br /&gt;
    -Added option for attacks to only trigger when certain number of creatures are in the room.&lt;br /&gt;
      -Just add (mob#) to the attack you want to do&lt;br /&gt;
    -Fixes for unarmed combat getting stalled&lt;br /&gt;
    -Now attempts to soothe (1205) when appropriate&lt;br /&gt;
  v3.34 (2016-06-08)&lt;br /&gt;
    -Added aiming for archery to the Hunting tab in setup.&lt;br /&gt;
      -Will change location once you stick the place your aiming at, looping until the creature is dead&lt;br /&gt;
    -Made gathering ammo a bit more specific about what its grabbing and where its putting it. &lt;br /&gt;
      -Also works with bolts and darts now if you gathered things to the ground.&lt;br /&gt;
  v3.33 (2016-06-06)&lt;br /&gt;
    -Fix for creatures leaving room and script getting stuck (Hopefully)&lt;br /&gt;
    -Fix for loot script activating during roundtime&lt;br /&gt;
    -Fix for issue with targeting using creatures name or noun&lt;br /&gt;
  v3.32 (2016-06-02)&lt;br /&gt;
    -Changed aiming for UAC to continue until if finds something you can hit or just hits them like normal&lt;br /&gt;
    -Added Voln Smite to command, use Smite in your hunting commands&lt;br /&gt;
    -Rewrote Ambush again! Now has the option to pick locations you want to ambush at on the hunting page&lt;br /&gt;
      -Also supports it from the hunting command i.e. &amp;quot;ambush head&amp;quot;&lt;br /&gt;
      -If left blank without picking any options in setup will default to Head, Right Leg, Left Leg, Chest&lt;br /&gt;
  v3.31 (2016-06-02)&lt;br /&gt;
    -Changed up the ambush command so it ambushes what you said to ambush first, then attempts right leg, left leg, then chest&lt;br /&gt;
    -Added an option to trigger the mstrike during UAC combat, other MSTRIKE options apply&lt;br /&gt;
    -Few fixes to MSTRIKE routine, now checks number of creatures in room as an equal or greater&lt;br /&gt;
    -Fixed bug caused when doing commands like &amp;quot;stance for and kill target&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  Edits by Hazado: (2016-06-01)&lt;br /&gt;
  V3.3 (2016-06-01)&lt;br /&gt;
    -Added UAC combat! Start it with hunting command &amp;quot;unarmed punch/jab/kick/grapple&amp;quot;&lt;br /&gt;
    -Added options for UAC in setup&lt;br /&gt;
    -Added options for MSTRIKEing in setup&lt;br /&gt;
    -Rewrote MSTRIKE routine&lt;br /&gt;
    -can now check mana/stamina/health(percentage)/encumbrance/unarmed tiering inside the hunting commands&lt;br /&gt;
    -Changed wander routine to hit every room in area instead of random wandering&lt;br /&gt;
  &lt;br /&gt;
  Edits by Zhiart: (2016-03-25)&lt;br /&gt;
    -Added new ambush command for legging a critter and then go for the head as long as they are prone (Code by SashaFierce)&lt;br /&gt;
  &lt;br /&gt;
  v3.2 (2/27/2016)&lt;br /&gt;
    -Added changes to fix incant loot issues (might work)&lt;br /&gt;
    -Added ability to detect renaming of bigshot without destroying exec scripts&lt;br /&gt;
    -Converted exec scripts to strings to allow =&amp;gt;quiet&lt;br /&gt;
  &lt;br /&gt;
  Edits by Kalros: (2015-11-2015)&lt;br /&gt;
  v3.1&lt;br /&gt;
    -Fixed Disk poaching.&lt;br /&gt;
    -Fixed First room poaching.&lt;br /&gt;
    -Removed group poaching logic.&lt;br /&gt;
    -Ambush detection via Exec Script.  It will leave the room if it detects an ambush line.&lt;br /&gt;
    -Rewrote and updated wander targeting sections. Fixes some target related bugs.&lt;br /&gt;
    -Moved WAIT command to exec to prevent line buffer issues and make more responsive&lt;br /&gt;
  &lt;br /&gt;
  3.0 (2015-05-30):&lt;br /&gt;
  stop trying to attack monsters that aren&#039;t in the room (wild guess, untested)&lt;br /&gt;
  bumped version up from 2.12052012 to 3.0, because 2.12052012 is a stupid version format&lt;br /&gt;
  added message to trust script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=265691</id>
		<title>Lich:Script Bigshot</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=265691"/>
		<updated>2026-10-02T13:43:37Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Hunting Commands */ update sacrifice cmd description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Bigshot is a fully automated hunting script for GemStone IV. It handles combat routines, movement to and from hunting areas, target selection, and attack execution.&lt;br /&gt;
AFK scripting on any server other than Shattered is a violation of game policy.&lt;br /&gt;
{{TOCright| limit=2}}&lt;br /&gt;
==Changelog==&lt;br /&gt;
*[[Script Bigshot/Changelog|Script Bigshot Changelog]]&lt;br /&gt;
==About Bigshot==&lt;br /&gt;
===What Does Bigshot Do?===&lt;br /&gt;
&lt;br /&gt;
Using a series of menus and command inputs, Bigshot lets you create a modular, customizable, and fully automated hunting script. With just a few clicks and tweaks, you can go from scripting rats to the Rift.&lt;br /&gt;
&lt;br /&gt;
===How Do I Get It?===&lt;br /&gt;
&lt;br /&gt;
Grab it from the repository: &amp;lt;CODE&amp;gt;;repository download Bigshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How Do I Make It Go?===&lt;br /&gt;
Initial setup is accessed through &amp;lt;CODE&amp;gt;;bigshot setup&amp;lt;/CODE&amp;gt;. This opens a configuration window with several tabs for setting up your hunting routine.&lt;br /&gt;
&lt;br /&gt;
As with most scripts, the SETUP command opens a graphical user interface. Use &amp;lt;CODE&amp;gt;;bigshot setup&amp;lt;/CODE&amp;gt; to open the dialog. The window contains the following tabs:&lt;br /&gt;
* &#039;&#039;&#039;Profile&#039;&#039;&#039; - Save and load profile configurations. Profiles are saved to your &amp;lt;CODE&amp;gt;\Lich5\data\&amp;lt;GSServer&amp;gt;\&amp;lt;charname&amp;gt;\bigshot_profiles&amp;lt;/CODE&amp;gt; directory (e.g., &amp;lt;CODE&amp;gt;\Lich5\data\GSIV\Rinualdo\bigshot_profiles&amp;lt;/CODE&amp;gt;). Note: if you previously used Bigshot, the file location has changed from the old &amp;lt;CODE&amp;gt;\Lich5\scripts\bigshot_profiles&amp;lt;/CODE&amp;gt; folder. You can copy/paste your old profiles to the new location.&lt;br /&gt;
* &#039;&#039;&#039;Resting&#039;&#039;&#039; - Configure your resting routine, rest location, and conditions that trigger resting.&lt;br /&gt;
* &#039;&#039;&#039;Hunting&#039;&#039;&#039; - Create a hunting map using boundaries, set your starting room, configure attack/wander stances, and define pre-hunt behavior.&lt;br /&gt;
* &#039;&#039;&#039;Attacking&#039;&#039;&#039; - Configure ambush aiming, flee conditions, bless behavior, weapon reactions, and similar combat flags.&lt;br /&gt;
* &#039;&#039;&#039;Commands&#039;&#039;&#039; - Define your valid targets and associated attack routines. See sample routines below.&lt;br /&gt;
* &#039;&#039;&#039;Boon Creatures&#039;&#039;&#039; - Configure how Bigshot handles boss/boon creatures on a per-ability basis (fight, ignore, or flee).&lt;br /&gt;
* &#039;&#039;&#039;Misc&#039;&#039;&#039; - UAC options, MSTRIKE options, ammo/wand configuration, and MA grouping settings.&lt;br /&gt;
* &#039;&#039;&#039;Monitoring&#039;&#039;&#039; - Interaction monitoring, deadman&#039;s switch, depart behavior, and debug options.&lt;br /&gt;
&lt;br /&gt;
Each tab is covered in detail further on.&lt;br /&gt;
&lt;br /&gt;
===Other Commands===&lt;br /&gt;
Beyond the setup GUI, Bigshot has several command-line options:&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt; - A special hunting mode that kills everything in your current room, then quits. It will not wander or attempt to rest. Uses its own separate hunting commands and targets (configured on the Commands tab).&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot head&amp;lt;/CODE&amp;gt; / &amp;lt;CODE&amp;gt;;bigshot tail&amp;lt;/CODE&amp;gt; - Multi-account hunting on a single computer. All characters must be set up for the same hunting area. Following characters run &amp;lt;CODE&amp;gt;;bigshot tail&amp;lt;/CODE&amp;gt;, then the leader runs &amp;lt;CODE&amp;gt;;bigshot head&amp;lt;/CODE&amp;gt;. The leader can optionally specify the expected group size, e.g., &amp;lt;CODE&amp;gt;;bigshot head 3&amp;lt;/CODE&amp;gt;. Head and tail can be started in any order.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot display&amp;lt;/CODE&amp;gt; - Shows all your current settings.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot reset&amp;lt;/CODE&amp;gt; - Resets your targetable and untargetable lists. Useful if Bigshot will not target something it should.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot profile save &amp;lt;name&amp;gt;&amp;lt;/CODE&amp;gt; - Saves a profile in YAML format to your character&#039;s profile folder. Also accessible via the Profiles tab.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot profile load &amp;lt;name&amp;gt;&amp;lt;/CODE&amp;gt; - Loads a profile from your character&#039;s profile folder. Also accessible via the Profiles tab.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot single&amp;lt;/CODE&amp;gt; - Executes a single hunting routine, returns to your resting location, and then exits.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot list&amp;lt;/CODE&amp;gt; - Displays all initialized variable values (useful for troubleshooting).&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot test &amp;lt;method&amp;gt; &amp;lt;args&amp;gt;&amp;lt;/CODE&amp;gt; - Runs a specific internal method for testing purposes.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot help&amp;lt;/CODE&amp;gt; - Prints a quick-reference table of every command-line option listed in this section. Typing an option Bigshot doesn&#039;t recognize prints this same help (with a warning naming the bad option) instead of silently doing nothing.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot &amp;lt;mode&amp;gt; &amp;lt;creature&amp;gt;&amp;lt;/CODE&amp;gt; - Rangers only: combine one of the modes above (&amp;lt;CODE&amp;gt;solo&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;single&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;bounty&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;quick&amp;lt;/CODE&amp;gt;, or &amp;lt;CODE&amp;gt;once&amp;lt;/CODE&amp;gt;) with a creature name to TRACK toward that creature instead of wandering, e.g., &amp;lt;CODE&amp;gt;;bigshot single giant rat&amp;lt;/CODE&amp;gt;. A creature name with no mode in front of it (just &amp;lt;CODE&amp;gt;;bigshot giant rat&amp;lt;/CODE&amp;gt;) is not recognized.&lt;br /&gt;
&lt;br /&gt;
==The Profile Tab==&lt;br /&gt;
* &#039;&#039;&#039;Load Profile&#039;&#039;&#039; - Load an existing saved profile. The dropdown will be empty if no profiles have been saved yet.&lt;br /&gt;
* &#039;&#039;&#039;Current Profile&#039;&#039;&#039; - Displays the name of the currently loaded profile.&lt;br /&gt;
* &#039;&#039;&#039;Save Profile&#039;&#039;&#039; - Enter any name for your profile and click Save. Once saved, the profile will appear in the Load Profile dropdown.&lt;br /&gt;
* &#039;&#039;&#039;Notes&#039;&#039;&#039; - A freeform text area for any notes you want to associate with the profile.&lt;br /&gt;
&lt;br /&gt;
==The Resting Tab==&lt;br /&gt;
This tab controls where and how Bigshot rests between hunts. During rest mode, Bigshot checks your mind state, hit points, wound status, mana, and spirit. Once all conditions defined in the &amp;quot;Should Hunt?&amp;quot; section are met, Bigshot leaves rest mode and begins a new hunt.&lt;br /&gt;
&lt;br /&gt;
===Where to Rest===&lt;br /&gt;
* &#039;&#039;&#039;room id&#039;&#039;&#039; - The room Bigshot returns to for resting. Uses room numbers from Map/Go2. Supports both Lich IDs and SimuIDs (prefix SimuIDs with &amp;quot;u&amp;quot;, e.g., &amp;lt;CODE&amp;gt;228&amp;lt;/CODE&amp;gt; for Town Square Central or &amp;lt;CODE&amp;gt;u7120&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
* &#039;&#039;&#039;return waypoints&#039;&#039;&#039; - Optional intermediate room IDs that Bigshot will pass through when returning to rest. Separate multiple waypoints with commas.&lt;br /&gt;
* &#039;&#039;&#039;pre-rest commands&#039;&#039;&#039; - Commands executed before entering rest mode. Example: &amp;lt;CODE&amp;gt;shea, wear shield, sit, stance offensive, rest&amp;lt;/CODE&amp;gt;. This will sheathe your weapon, wear your shield, sit down, enter offensive stance, and use the REST verb. You can also call scripts here using the &amp;lt;CODE&amp;gt;script&amp;lt;/CODE&amp;gt; prefix, e.g., &amp;lt;CODE&amp;gt;script go2 place&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;active resting scripts&#039;&#039;&#039; - Scripts that run upon entering rest mode for between-hunt tasks such as selling loot, spelling up, or healing. Example: &amp;lt;CODE&amp;gt;eloot sell, waggle, eherbs&amp;lt;/CODE&amp;gt;. This will sell via eloot, spell up via waggle, then use herbs from your PACK to heal wounds.&lt;br /&gt;
* &#039;&#039;&#039;Fog Option&#039;&#039;&#039; - Determines how Bigshot returns to rest. Options include:&lt;br /&gt;
** &#039;&#039;&#039;None&#039;&#039;&#039; - Walk normally (no teleportation).&lt;br /&gt;
** &#039;&#039;&#039;130&#039;&#039;&#039; - Uses [[Spirit Guide (130)]] first; falls back to Symbol of Return if it fails.&lt;br /&gt;
** &#039;&#039;&#039;Symbol of Return&#039;&#039;&#039; - Uses Voln [[Symbol of Return]] first; falls back to 130 if it fails.&lt;br /&gt;
** &#039;&#039;&#039;Traveler&#039;s Song (1020)&#039;&#039;&#039; - Attempts [[Traveler&#039;s Song (1020)]] once, then continues.&lt;br /&gt;
** &#039;&#039;&#039;Familiar Gate (930)&#039;&#039;&#039; - Attempts [[Familiar Gate (930)]] to summon a portal and walk through it. Will perform a mana pulse if not enough mana is detected.&lt;br /&gt;
** &#039;&#039;&#039;Sigil of Escape&#039;&#039;&#039; - Uses [[Sigil of Escape]].&lt;br /&gt;
** &#039;&#039;&#039;Custom&#039;&#039;&#039; - Allows a comma-separated list of custom commands to perform.&lt;br /&gt;
* &#039;&#039;&#039;Fog ONLY if wounded or encumbered&#039;&#039;&#039; - When checked, Bigshot will only use the fog option if you are actually wounded or encumbered. Otherwise it walks normally.&lt;br /&gt;
* &#039;&#039;&#039;Fog twice from the Rift&#039;&#039;&#039; - When checked, Bigshot will double-cast the fog spell when returning from the Rift (useful since the Rift requires two uses to escape).&lt;br /&gt;
&lt;br /&gt;
===Should Rest?===&lt;br /&gt;
Bigshot evaluates these conditions to decide when to leave a hunt and return to rest.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Triggers resting when your mind has reached this threshold. Generally set to 100 (fried). Default is 100.&lt;br /&gt;
* &#039;&#039;&#039;and extra kills &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of additional monsters to kill after reaching your &amp;quot;when percent mind&amp;quot; threshold and after LTE boosts are used. Set to 0 to rest immediately upon reaching the mind threshold.&lt;br /&gt;
* &#039;&#039;&#039;and used lte boosts &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of LTE (Long-Term Experience) boosts Bigshot will attempt to use after reaching the mind threshold. Set to 0 to skip LTE boosts entirely.&lt;br /&gt;
* &#039;&#039;&#039;or percent mana &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your mana percentage is at or below this value. Can be set to 0, but leaving a small buffer is useful (e.g., for Unlock (406) to open the WL Graveyard gate). If you encounter an &amp;quot;OOM&amp;quot; error, try setting this to 1.&lt;br /&gt;
* &#039;&#039;&#039;or percent encumbrance &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your encumbrance reaches or exceeds this percentage.&lt;br /&gt;
* &#039;&#039;&#039;or wounded eval&#039;&#039;&#039;&lt;br /&gt;
** Allows you to set a Ruby evaluation expression to determine if you are too wounded to continue. Can trigger on bleeding, specific wound levels, inability to cast, scars, and more.&lt;br /&gt;
&lt;br /&gt;
The following is a wounded evaluation that will rest whenever you have any level II wounds:&lt;br /&gt;
&amp;lt;PRE&amp;gt;XMLData.injuries.any?{|key,value| value[&amp;quot;wound&amp;quot;] &amp;gt; 1} || Char.percent_health &amp;lt;= 70&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The following is a wound evaluation that will take you home if you can no longer cast (bleeding, nerves, level 2 head/eyes, bad scars, etc.):&lt;br /&gt;
&amp;lt;PRE&amp;gt;bleeding? || Char.percent_health &amp;lt;= 25 || [Wounds.head, Scars.head, Wounds.leftEye, Scars.leftEye, Wounds.rightEye, Scars.rightEye, Wounds.nsys, Scars.nsys].max &amp;gt; 1 ||  [Wounds.leftArm, Wounds.leftHand, Wounds.rightArm, Wounds.rightHand, Scars.leftArm, Scars.leftHand, Scars.rightArm, Scars.rightHand].max &amp;gt; 2 || ([Wounds.leftArm, Wounds.leftHand, Scars.leftArm, Scars.leftHand].max + [Wounds.rightArm, Wounds.rightHand, Scars.rightArm, Scars.rightHand].max) &amp;gt;= 3&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The following can be appended to either wound evaluation above to also rest upon having popped muscles:&lt;br /&gt;
&amp;lt;PRE&amp;gt;|| Effects::Debuffs.active?(&amp;quot;Overexerted&amp;quot;)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;when creeping dread &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your creeping dread level reaches or exceeds this value.&lt;br /&gt;
* &#039;&#039;&#039;when crushing dread &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your crushing dread level reaches or exceeds this value.&lt;br /&gt;
* &#039;&#039;&#039;Wall of Thorns Poison&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when you are affected by Wall of Thorns poison.&lt;br /&gt;
* &#039;&#039;&#039;Confusion Debuff&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when you are affected by the non-dispellable Confusion debuff.&lt;br /&gt;
* &#039;&#039;&#039;Box in hand&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest if looting leaves a box in your hand.&lt;br /&gt;
&lt;br /&gt;
==The Hunting Tab==&lt;br /&gt;
This tab controls when and where Bigshot hunts, any pre-hunt preparation, and the map boundaries for wandering.&lt;br /&gt;
&lt;br /&gt;
===The Hunting Map===&lt;br /&gt;
Your hunting map consists of &#039;&#039;&#039;Boundaries&#039;&#039;&#039; (rooms Bigshot will never enter) and a &#039;&#039;&#039;Starting Room&#039;&#039;&#039; (the first room Bigshot moves to when a hunt begins). These function similarly to the boundaries in the ;Wander script, but are stored in Bigshot&#039;s own configuration files.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;starting room ID&#039;&#039;&#039; - The first room Bigshot travels to when beginning a hunt. Set this to any room within your boundaries.&lt;br /&gt;
* &#039;&#039;&#039;boundary rooms&#039;&#039;&#039; - Rooms that act as walls. Bigshot will never enter a boundary room.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;X-X-B - A - 0 - 0 - 0&lt;br /&gt;
|   |&lt;br /&gt;
X-X-X&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the diagram above, &amp;quot;B&amp;quot; is a boundary room and &amp;quot;A&amp;quot; is outside the hunting area. Rooms marked &amp;quot;0&amp;quot; are the huntable area. Bigshot will wander freely among the &amp;quot;0&amp;quot; rooms but never cross into &amp;quot;B&amp;quot; or &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Boundary room IDs are separated by commas. Some popular examples:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rift Boundaries:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Plane 1: 2635, 12101, 12208&lt;br /&gt;
Plane 2: 2605, 2635, 12093&lt;br /&gt;
Plane 3: 2635, 12089, 12152&lt;br /&gt;
Plane 4: 12122, 12207, 12235&lt;br /&gt;
Plane 5: 2579&lt;br /&gt;
North Scatter: 12151, 12254, 12256, 12249, 12247, 12241&lt;br /&gt;
South Scatter: 12151, 12219, 12217, 12233, 12237, 12239&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maaghara Boundaries:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;9734&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Confluence Boundaries:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;2300, 3519, 228, 188, 1932, 10855, 3668, 1438, 1005&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Imagine a hunting area that is a six-room square. To enter this square, you must GO DOORWAY from room A. You would set room A (outside the square, before the doorway) as a boundary. Then set room B (just inside the square) as the starting room. Bigshot will move to room B and wander within the bounded area until your &amp;quot;Should Rest?&amp;quot; conditions are met.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;rally point rooms&#039;&#039;&#039; - Optional intermediate room IDs Bigshot will pass through on the way to the hunting area. Separate multiple rooms with commas.&lt;br /&gt;
&lt;br /&gt;
===Hunting Settings===&lt;br /&gt;
* &#039;&#039;&#039;wait before wandering to another room&#039;&#039;&#039; - Time in seconds Bigshot waits before leaving a room to look for creatures. Default is 0.3. Set to 0 for fastest (but spammy) movement.&lt;br /&gt;
* &#039;&#039;&#039;attack stance&#039;&#039;&#039; - The stance Bigshot switches to when issuing attack commands. Bigshot remains in defensive stance until an attack is triggered, then stances to your specified attack stance. Recognizes all game stances from Offensive through Defensive.&lt;br /&gt;
* &#039;&#039;&#039;wander stance&#039;&#039;&#039; - The stance Bigshot uses while moving between rooms. Defaults to Defensive.&lt;br /&gt;
* &#039;&#039;&#039;stand up stance&#039;&#039;&#039; - The stance Bigshot enters when standing up after being knocked down. Defaults to Defensive.&lt;br /&gt;
* &#039;&#039;&#039;pre-hunt commands&#039;&#039;&#039; - Commands executed before Bigshot uses Go2 to travel to your starting room. Example: &amp;lt;CODE&amp;gt;gird, stance defensive&amp;lt;/CODE&amp;gt;. This ensures your weapon is readied and you are in defensive stance before traveling. Use this line for short-lived combat spells like 1605 (Arm of the Arkati).&lt;br /&gt;
* &#039;&#039;&#039;active hunting scripts&#039;&#039;&#039; - Scripts that run while Bigshot is in hunt mode. Use these for complex behaviors that Bigshot does not natively support (e.g., keeping certain spells active or executing CMANs based on conditions).&lt;br /&gt;
* &#039;&#039;&#039;society abilities/spells/cmans&#039;&#039;&#039; - Abilities Bigshot keeps active during a hunt. Enter numerical designations separated by commas. For example, entering &amp;lt;CODE&amp;gt;506&amp;lt;/CODE&amp;gt; keeps Haste up, recasting whenever it wears off. Hover over this field in the GUI for a list of supported values. Supported options include spells that can be ignored by rapidfire cooldown: e.g., &amp;lt;CODE&amp;gt;515 (ignore)&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;rapidfire (ignore)&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;loot script&#039;&#039;&#039; - The script Bigshot calls to loot your kills (e.g., &amp;lt;CODE&amp;gt;eloot&amp;lt;/CODE&amp;gt;). Make sure the loot script is properly configured via its own SETUP command, or Bigshot may error.&lt;br /&gt;
* &#039;&#039;&#039;wracking spirit &amp;gt;=&#039;&#039;&#039; - If your spirit is greater than or equal to this value, Bigshot will WRACK for mana. Setting it to 6 will wrack down to 5 spirit. Only functions when the wracking checkbox is enabled.&lt;br /&gt;
* &#039;&#039;&#039;Use sign of wracking/sigil of power&#039;&#039;&#039; - Checkbox to enable wracking.&lt;br /&gt;
* &#039;&#039;&#039;Check for favor before using Voln symbols&#039;&#039;&#039; - Checkbox to verify you have sufficient favor before casting Voln society symbols.&lt;br /&gt;
* &#039;&#039;&#039;Priority hunt&#039;&#039;&#039; - When enabled, Bigshot targets creatures in the order listed in your valid targets field. If a higher-priority creature enters the room, Bigshot switches to it. When using &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt;, quickhunt targets take priority, followed by any remaining targets in room order.&lt;br /&gt;
* &#039;&#039;&#039;Delay looting&#039;&#039;&#039; - Delays the looting of creatures in a room.&lt;br /&gt;
* &#039;&#039;&#039;Defensive stance before looting&#039;&#039;&#039; - Switches to defensive stance before looting begins.&lt;br /&gt;
* &#039;&#039;&#039;Pull players to feet&#039;&#039;&#039; - Attempts to pull players to their feet when passing them.&lt;br /&gt;
* &#039;&#039;&#039;Stop for dead players&#039;&#039;&#039; - Pauses Bigshot if you encounter a dead player.&lt;br /&gt;
* &#039;&#039;&#039;Troubadour&#039;s Rally&#039;&#039;&#039; - Enables the use of Troubadour&#039;s Rally during hunts.&lt;br /&gt;
* &#039;&#039;&#039;Sneaky Sneaky&#039;&#039;&#039; - Sneak around while moving through the hunting area.&lt;br /&gt;
&lt;br /&gt;
===Should Hunt?===&lt;br /&gt;
Bigshot evaluates these conditions to determine if you are ready to begin a hunt from rest.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Setting this to 51 will wait until &amp;quot;Clear&amp;quot;. Setting it to 65 will wait until &amp;quot;Muddled&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;and percent mana &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The percentage of your maximum mana that must be present before hunting. Setting below 50 results in short hunts if you cast frequently. Generally set to 95 or higher.&lt;br /&gt;
* &#039;&#039;&#039;and CHECK spirit &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Bigshot checks that your current spirit value is at least this amount. Make sure this is high enough that Bigshot will not immediately hunt after DEPARTing if you have the &amp;quot;Depart / re-run&amp;quot; option enabled on the Monitoring tab.&lt;br /&gt;
* &#039;&#039;&#039;and percent stamina &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The percentage of your maximum stamina that must be present before hunting. Useful for melee-heavy builds that rely on stamina for CMANs and MSTRIKEs.&lt;br /&gt;
&lt;br /&gt;
==The Attacking Tab==&lt;br /&gt;
This tab controls aiming, flee conditions, and various combat behavior toggles.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Ambush aiming locations (head, etc)&#039;&#039;&#039; - The order Bigshot aims when ambushing. Default is head, right leg, left leg, chest. Bigshot cycles through these and skips locations that are too injured or unreachable.&lt;br /&gt;
* &#039;&#039;&#039;Archery aiming locations (head, etc)&#039;&#039;&#039; - The order Bigshot aims when using archery attacks. Loops through your aiming list.&lt;br /&gt;
* &#039;&#039;&#039;flee if enemy count is &amp;gt;&#039;&#039;&#039; - Flees the room if the total number of enemies exceeds this value. Set to 1 to engage only single targets.&lt;br /&gt;
* &#039;&#039;&#039;...but don&#039;t count these&#039;&#039;&#039; - Bigshot ignores these monsters when evaluating flee count. Useful when low-level monsters are mixed into your hunting area.&lt;br /&gt;
* &#039;&#039;&#039;...and always flee from&#039;&#039;&#039; - Bigshot immediately flees from these monsters. Useful when your hunting area has higher-level or dangerous monsters mixed in.&lt;br /&gt;
* &#039;&#039;&#039;flee from environment message&#039;&#039;&#039; - Bigshot flees whenever the game sends a message matching this text (uses XML regex matching). Note:  This does not work when using &amp;lt;CODE&amp;gt;;bigshot quick.&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;wait before wandering to another room&#039;&#039;&#039; - Time in seconds before moving to a new room. Default is 0.3. Set to 0 to move instantly (can be spammy for others in the area).&lt;br /&gt;
* &#039;&#039;&#039;Approach lone targets only&#039;&#039;&#039; - Forces Bigshot to only begin combat against creatures that are alone in a room.&lt;br /&gt;
* &#039;&#039;&#039;Bless weapon?&#039;&#039;&#039; - Performs a Consecrate (1604), then a Cleric Bless or Voln Bless on any weapon that loses its bless during hunting. If unable to bless during hunting, Bigshot returns to the rest area and quits.&lt;br /&gt;
* &#039;&#039;&#039;Activate weapon reactions&#039;&#039;&#039; - Initiates reactive strikes when the opportunity presents itself.&lt;br /&gt;
* &#039;&#039;&#039;Flee from clouds&#039;&#039;&#039; - Flees from cloud spells such as 125 (Call Lightning/Ominous Cloud), 1704 (Stun Cloud), and 1713 (Death Cloud).&lt;br /&gt;
* &#039;&#039;&#039;Flee from vines&#039;&#039;&#039; - Flees from vine spells such as 610 (Tangle Weed).&lt;br /&gt;
* &#039;&#039;&#039;Flee from webs&#039;&#039;&#039; - Flees from webs.&lt;br /&gt;
* &#039;&#039;&#039;Flee from voids&#039;&#039;&#039; - Flees from voids.&lt;br /&gt;
&lt;br /&gt;
==Commands Tab==&lt;br /&gt;
This is the core of Bigshot — where you define your attack routines.&lt;br /&gt;
&lt;br /&gt;
===Hunting Commands===&lt;br /&gt;
* &#039;&#039;&#039;hunting commands (a)&#039;&#039;&#039; - The primary commands Bigshot executes when in a room with a valid target. Commands are separated by commas. Bigshot recognizes most hunting verbs; unrecognized commands are sent directly as-is via fput. The following are recognized hunting commands:&lt;br /&gt;
** &#039;&#039;&#039;kill&#039;&#039;&#039; - Attacks using the KILL verb.&lt;br /&gt;
** &#039;&#039;&#039;incant &amp;lt;spell number&amp;gt;&#039;&#039;&#039; - Casts the specified spell with INCANT. Automatically stances into offensive for bolt and stance-sensitive spells. You can CHANNEL via &amp;lt;CODE&amp;gt;INCANT SET CHANNEL &amp;lt;spell&amp;gt;&amp;lt;/CODE&amp;gt; (a standard GSIV verb) or by setting &amp;lt;CODE&amp;gt;SET ChannelIncant ON&amp;lt;/CODE&amp;gt;, which will CHANNEL an INCanted spell if you are in a stance higher than neutral.&lt;br /&gt;
** &#039;&#039;&#039;channel &amp;lt;spell number&amp;gt;&#039;&#039;&#039; - Channels the specified spell at the target. Requires a stance higher than neutral to have effect.&lt;br /&gt;
** &#039;&#039;&#039;&amp;lt;spell number&amp;gt;&#039;&#039;&#039; - Casts the specified spell using PREPARE and CAST.&lt;br /&gt;
** &#039;&#039;&#039;wand&#039;&#039;&#039; - Gets a wand from your specified container and WAVEs it at the target.&lt;br /&gt;
** &#039;&#039;&#039;wandolier &amp;lt;stance&amp;gt; &amp;lt;noreserve&amp;gt;&#039;&#039;&#039; - Similar to wand, but designed for wandoliers. Gets a wand from the fresh wand container and waves it; rubs the container if no wands are found. Default waves in offensive stance and automatically adds the wand to your RESERVE list. Use &amp;lt;CODE&amp;gt;wandolier defensive&amp;lt;/CODE&amp;gt; to wave in a different stance, and add &amp;lt;CODE&amp;gt;noreserve&amp;lt;/CODE&amp;gt; to skip the RESERVE step, e.g., &amp;lt;CODE&amp;gt;wandolier defensive noreserve&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;resonance &amp;lt;spell id&amp;gt; &amp;lt;spell id&amp;gt; ...&#039;&#039;&#039; - Casts Resonance Bolt, picking randomly among the listed spell numbers each time (never repeating the one it just used back-to-back). Example: &amp;lt;CODE&amp;gt;resonance 511 512 513&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;sacrifice&#039;&#039;&#039; - Performs a sacrifice on the current target&#039;s corpse. Only attempts it when you have 2+ spirit, the ability is off cooldown, and the corpse appraises as suitable for sacrifice.&lt;br /&gt;
** &#039;&#039;&#039;fire&#039;&#039;&#039; - Gets ammunition from your specified container and FIREs at the target. Aims based on Archery aiming settings on the Attacking tab.&lt;br /&gt;
** &#039;&#039;&#039;aim &amp;lt;location&amp;gt;&#039;&#039;&#039; - Aims at the specified body location.&lt;br /&gt;
** &#039;&#039;&#039;ambush&#039;&#039;&#039; - Uses the AMBUSH verb to attack, aiming based on Attacking tab settings. Can also aim dynamically: &amp;lt;CODE&amp;gt;ambush head&amp;lt;/CODE&amp;gt; overrides default settings for that attack.&lt;br /&gt;
** &#039;&#039;&#039;wait &amp;lt;time&amp;gt;&#039;&#039;&#039; - Stance dances by going into Defensive stance for the specified time (in seconds). Bigshot will exit early if the target swings or casts, then evaluate the rest of the attack routine from your attack stance.&lt;br /&gt;
** &#039;&#039;&#039;mstrike&#039;&#039;&#039; - Executes MSTRIKE based on cooldown and stamina. Has its own options page under the Misc tab. Can also be used with UAC: &amp;lt;CODE&amp;gt;mstrike punch&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;berserk&#039;&#039;&#039; - Executes the BERSERK verb and waits until it fades.&lt;br /&gt;
** &#039;&#039;&#039;throw&#039;&#039;&#039; - Empties hands, attempts throw, then retrieves the items you emptied.&lt;br /&gt;
** &#039;&#039;&#039;weed/kweed&#039;&#039;&#039; - Casts 610 at the target. Using &amp;lt;CODE&amp;gt;kweed&amp;lt;/CODE&amp;gt; forces EVOKE 610, ensuring the damage version.&lt;br /&gt;
** &#039;&#039;&#039;curse &amp;lt;type&amp;gt;&#039;&#039;&#039; - Preps 715 and uses the specified curse type. Valid types: Clumsy, Weakness, Darkness, Itch, Hex, Pox, Nightmare, Star. Skips &amp;quot;curse star&amp;quot; if the buff is already active.&lt;br /&gt;
** &#039;&#039;&#039;unarmed &amp;lt;type&amp;gt;&#039;&#039;&#039; - Uses the Bigshot UAC routine. Valid types: punch, jab, kick, grapple. The routine uses appropriate attacks to rank up and applies MSTRIKE based on MSTRIKE options. Example: &amp;lt;CODE&amp;gt;unarmed jab&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;smite&#039;&#039;&#039; - Performs an [[Order of Voln]] [[Kai&#039;s_Smite|Smite]] on the target until successful.&lt;br /&gt;
** &#039;&#039;&#039;leech&#039;&#039;&#039; - Performs a [[Mana Leech (516)]] on the target if cooldown is under 15 minutes.&lt;br /&gt;
** &#039;&#039;&#039;script &amp;lt;script name&amp;gt;&#039;&#039;&#039; - Executes a specified custom attack script.&lt;br /&gt;
** &#039;&#039;&#039;hide&#039;&#039;&#039; - Repeatedly attempts to hide until successful or gives up.&lt;br /&gt;
** &#039;&#039;&#039;sleep &amp;lt;nostance&amp;gt;&#039;&#039;&#039; - Pauses Bigshot for the specified number of seconds. Example: &amp;lt;CODE&amp;gt;sleep 10&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;sleep 10 nostance&amp;lt;/CODE&amp;gt;. Useful for timed hunting, e.g., &amp;lt;CODE&amp;gt;410, sleep 15&amp;lt;/CODE&amp;gt; will E-wave, then wait 15 seconds before re-evaluating.&lt;br /&gt;
** &#039;&#039;&#039;stance &amp;lt;stance&amp;gt;&#039;&#039;&#039; - Changes stance. Example: &amp;lt;CODE&amp;gt;stance defensive&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;nudgeweapons&#039;&#039;&#039; - Moves all weapons on the ground to an adjacent room. Useful for casting Implosion (720).&lt;br /&gt;
** &#039;&#039;&#039;force &amp;lt;cmd&amp;gt; until &amp;lt;endroll&amp;gt;&#039;&#039;&#039; - Repeats a command until a desired endroll is achieved. Example: &amp;lt;CODE&amp;gt;force incant 1002 until 101&amp;lt;/CODE&amp;gt;. Only works for standard swings/spells/CMANs.&lt;br /&gt;
** &#039;&#039;&#039;eachtarget &amp;lt;cmd&amp;gt;&#039;&#039;&#039; - Issues the command against each valid target in the room.&lt;br /&gt;
** &#039;&#039;&#039;efury &amp;lt;fire|cold&amp;gt;&#039;&#039;&#039; - Casts Earthen Fury (917) on the target and waits for the DOT to end or 12 seconds to pass.&lt;br /&gt;
** &#039;&#039;&#039;caststop &amp;lt;spell&amp;gt;&#039;&#039;&#039; - Casts the spell and immediately stops it after casting.&lt;br /&gt;
** &#039;&#039;&#039;wield &amp;lt;noun&amp;gt; &amp;lt;left|right&amp;gt;&#039;&#039;&#039; - Wields a new item in the specified hand and stores the current item.&lt;br /&gt;
** &#039;&#039;&#039;store&#039;&#039;&#039; - Stores items in left, right, or both hands (only if something is in those hands).&lt;br /&gt;
** &#039;&#039;&#039;tether &amp;lt;recast&amp;gt;&#039;&#039;&#039; - Casts 706 with built-in wait logic. The optional &amp;lt;CODE&amp;gt;recast&amp;lt;/CODE&amp;gt; flag will auto-recast 706 on creature death and transfer DOTs to a new target.&lt;br /&gt;
** &#039;&#039;&#039;unravel &amp;lt;spell&amp;gt;&#039;&#039;&#039; - Casts 1013 (Song of Unravelling). Optionally specify a spell number to target against the creature.&lt;br /&gt;
** &#039;&#039;&#039;depress&#039;&#039;&#039; - Casts 1015 (Song of Depression) with built-in logic.&lt;br /&gt;
** &#039;&#039;&#039;phase&#039;&#039;&#039; - Force-casts 704 (Phase) using PREP/CAST, required for NPC targeting to convert non-corporeal to corporeal undead.&lt;br /&gt;
&lt;br /&gt;
===Additional Command Sets===&lt;br /&gt;
* &#039;&#039;&#039;hunting commands (b) through (j)&#039;&#039;&#039; - Additional attack routines tied to creature flags. When you flag a creature in your valid targets (e.g., &amp;lt;CODE&amp;gt;niirsha(b)&amp;lt;/CODE&amp;gt;), Bigshot uses the matching command set. This allows different attack strategies for different creature types.&lt;br /&gt;
* &#039;&#039;&#039;fried hunting commands&#039;&#039;&#039; - Commands executed specifically when your mind is fried. Useful in group hunting where you still want to contribute.&lt;br /&gt;
* &#039;&#039;&#039;quick hunting commands&#039;&#039;&#039; - Commands executed when using &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;valid targets&#039;&#039;&#039; - The monsters you are hunting. Bigshot works best with creature NOUNs (e.g., &amp;lt;CODE&amp;gt;ogre&amp;lt;/CODE&amp;gt; instead of &amp;lt;CODE&amp;gt;a large ogre&amp;lt;/CODE&amp;gt;). Use commas to separate multiple targets: &amp;lt;CODE&amp;gt;manticore, thrak&amp;lt;/CODE&amp;gt;. If left blank, Bigshot will target everything in the room. Supports regex for advanced matching.&lt;br /&gt;
* &#039;&#039;&#039;quickhunt targets&#039;&#039;&#039; - Designated targets for the &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
===PSM3 Integration===&lt;br /&gt;
Bigshot supports weapon/shield skills and warcries. Assaults wait until they finish or are interrupted. The following are recognized PSM3 commands:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assaults&#039;&#039;&#039; (wait until completed/interrupted):&lt;br /&gt;
* barrage, flurry, fury, gthrusts, pummel, thrash&lt;br /&gt;
* fury can specify a default attack: &amp;lt;CODE&amp;gt;fury punch&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;fury kick&amp;lt;/CODE&amp;gt; (defaults to jab)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setups&#039;&#039;&#039; (execute on cooldown — pair with prone/stun/root checks):&lt;br /&gt;
* charge, cripple, dizzyingswing, pindown, twinhammer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AOE&#039;&#039;&#039; (execute on cooldown — limit with mob checks):&lt;br /&gt;
* clash, cyclone, pulverize, volley, wblade, whirlwind&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warcries:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;shout&#039;&#039;&#039; - Performs warcry Shout. Must use a command check or it will shout every loop: &amp;lt;CODE&amp;gt;shout(!shout)&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;shout(buff10 s25)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;yowlp&#039;&#039;&#039; - Performs warcry Yowlp. Must use a command check: &amp;lt;CODE&amp;gt;yowlp(!yowlp)&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;yowlp(buff10 s10)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;holler&#039;&#039;&#039; - Performs warcry Holler, taunting all mobs. Example: &amp;lt;CODE&amp;gt;holler(s60)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;bellow, growl, cry&#039;&#039;&#039; - Offensive warcries. Use with &amp;lt;CODE&amp;gt;target&amp;lt;/CODE&amp;gt; for single target or &amp;lt;CODE&amp;gt;all&amp;lt;/CODE&amp;gt; for AOE.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shield Skills:&#039;&#039;&#039;&lt;br /&gt;
* shield bash, shield charge, shield pin, shield push, shield strike, shield trample, shield throw&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Combat Maneuvers:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;surge&#039;&#039;&#039; - Keeps Surge of Strength active. &amp;lt;CODE&amp;gt;surge&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;surge(surge)&amp;lt;/CODE&amp;gt; casts even on cooldown; &amp;lt;CODE&amp;gt;surge(!surge)&amp;lt;/CODE&amp;gt; only casts when not on cooldown.&lt;br /&gt;
* &#039;&#039;&#039;bearhug, bullrush, coupdegrace, cpress, cutthroat, dirtkick, disarm, dislodge, divert, eviscerate, exsanguinate, eyepoke, feint, footstomp, garrote, gkick, hamstring, haymaker, headbutt, kifocus, kneebash, leapattack, mblow, mug, nosetweak, sattack, sblow, scleave, shroud, spunch, sthieve, subdue, sunder, sweep, swiftkick, tackle, templeshot, throatchop, trip, truestrike, vaultkick&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;dislodge &amp;lt;location&amp;gt;&#039;&#039;&#039; - Dislodge from the specified location: &amp;lt;CODE&amp;gt;dislodge eye neck&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;stomp&#039;&#039;&#039; - Performs a stomp attack. Channels 909 if not already active. You can also add 909 to the society abilities field to keep it active.&lt;br /&gt;
* &#039;&#039;&#039;dhurl&#039;&#039;&#039; - Hurls your weapon and recovers it. Works with weapon bonding auto-return and the RECOVER verb.&lt;br /&gt;
* &#039;&#039;&#039;assume &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt;&#039;&#039;&#039; - Cycles between two aspects, or evokes a single aspect. Also works in the society abilities box: &amp;lt;CODE&amp;gt;650 &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt;&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;briar &amp;lt;weapon&amp;gt;&#039;&#039;&#039; - Activates the AS buff on briar weapons. Tracks weapon charge and uses on cooldown.&lt;br /&gt;
* &#039;&#039;&#039;stance perfection&#039;&#039;&#039; - Put 10, 20, 30, etc. in your attack stance box to take advantage of stance perfection.&lt;br /&gt;
* &#039;&#039;&#039;chastise, excoriate&#039;&#039;&#039; - Performs the FEAT if available and affordable.&lt;br /&gt;
&lt;br /&gt;
===Gemstone Activation===&lt;br /&gt;
To use a gemstone-activated ability, use &amp;lt;CODE&amp;gt;jewel &amp;lt;mnemonic&amp;gt;&amp;lt;/CODE&amp;gt;. Bigshot automatically avoids usage if the ability is on cooldown. Supported gemstone mnemonics:&lt;br /&gt;
* bloodboil - Blood Boil&lt;br /&gt;
* spellblade - Spellblade&#039;s Fury&lt;br /&gt;
* arcascend - Arcanist&#039;s Ascendancy&lt;br /&gt;
* geospite - Geomancer&#039;s Spite&lt;br /&gt;
* forceofwill - Force of Will&lt;br /&gt;
* arcaneintensity - Arcane Intensity&lt;br /&gt;
* arcaneopus - Arcane Opus&lt;br /&gt;
* bloodsiphon - Blood Siphon&lt;br /&gt;
* bloodwell - Blood Wellspring&lt;br /&gt;
* epossess - Evanescent Possession&lt;br /&gt;
* manawellspring - Mana Wellspring&lt;br /&gt;
* spiritwell - Spirit Wellspring&lt;br /&gt;
* stamwell - Stamina Wellspring&lt;br /&gt;
* terrortribute - Terror&#039;s Tribute&lt;br /&gt;
* arcblade - Arcanist&#039;s Blade&lt;br /&gt;
* arcwill - Arcanist&#039;s Will&lt;br /&gt;
* imaerabalm - Imaera&#039;s Balm&lt;br /&gt;
* reckless - Reckless Precision&lt;br /&gt;
* unearthchains - Unearthly Chains&lt;br /&gt;
* witchhunt - Witchhunter&#039;s Ascendancy&lt;br /&gt;
* manashield - Mana Shield&lt;br /&gt;
* arcaneaegis - Arcane Aegis&lt;br /&gt;
&lt;br /&gt;
You may need to run &#039;&#039;&#039;SKILLS FULL&#039;&#039;&#039;, &#039;&#039;&#039;CMAN INFO&#039;&#039;&#039;, &#039;&#039;&#039;WEAPON INFO&#039;&#039;&#039;, or &#039;&#039;&#039;SHIELD INFO&#039;&#039;&#039; if you have recently changed training or if skills are being skipped.&lt;br /&gt;
&lt;br /&gt;
===Additional Options===&lt;br /&gt;
* &#039;&#039;&#039;haste&#039;&#039;&#039; or &#039;&#039;&#039;506&#039;&#039;&#039; - Placing this in front of any command casts 506 (Haste) before executing the command. Only casts if Haste is not currently active or has less than 3 seconds remaining.&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 10, haste kill (x3)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;slayer&#039;&#039;&#039; or &#039;&#039;&#039;240&#039;&#039;&#039; - Placing this in front of any command casts 240 before executing. Will not recast if already active.&lt;br /&gt;
&amp;lt;PRE&amp;gt;slayer 302 (x99)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Command Checks===&lt;br /&gt;
Command checks let you add conditions to any command. The format is:&lt;br /&gt;
&amp;lt;CODE&amp;gt;COMMAND (CHECKS)(REPETITIONS)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;CODE&amp;gt;hamstring (mob1 prone)(x2)&amp;lt;/CODE&amp;gt;. The (x#) repetition must be in a separate set of parentheses. Note that (xx) is shorthand for (x5), not unlimited.&lt;br /&gt;
&lt;br /&gt;
Checks can be combined inside a single set of parentheses with spaces between them. Example: &amp;lt;CODE&amp;gt;kill(m20 s5 e20)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each check also has an inverse — prefix with &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to negate. Example: &amp;lt;CODE&amp;gt;kill(!m20 !s5 !e20)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resource and Status Checks====&lt;br /&gt;
* &#039;&#039;&#039;s#&#039;&#039;&#039; - Requires at least # stamina.&lt;br /&gt;
* &#039;&#039;&#039;m#&#039;&#039;&#039; - Requires at least # mana.&lt;br /&gt;
* &#039;&#039;&#039;h#&#039;&#039;&#039; - Requires health to be at or above #% (percentage, not fixed).&lt;br /&gt;
* &#039;&#039;&#039;v#&#039;&#039;&#039; - Requires at least # spirit.&lt;br /&gt;
* &#039;&#039;&#039;e#&#039;&#039;&#039; - Requires encumbrance percentage to be at or below #.&lt;br /&gt;
* &#039;&#039;&#039;essence#&#039;&#039;&#039; - Requires at least # Shadow Essence (Sorcerer).&lt;br /&gt;
* &#039;&#039;&#039;thp#&#039;&#039;&#039; - Requires the &#039;&#039;target&#039;s&#039;&#039; health to be at or below #% (this is the target&#039;s health, unlike h# above which checks your own). &amp;lt;CODE&amp;gt;(!thp#)&amp;lt;/CODE&amp;gt; requires the target&#039;s health to be above #%. If Bigshot can&#039;t determine the target&#039;s health, the command is skipped.&lt;br /&gt;
&lt;br /&gt;
====Creature Checks====&lt;br /&gt;
* &#039;&#039;&#039;mob#&#039;&#039;&#039; - Requires at least # NPCs in the room. Only useful for 2 or more creatures.&lt;br /&gt;
&amp;lt;PRE&amp;gt;To further clarify the mob# implementation:&lt;br /&gt;
1 mob, mob2: 1 IS less than 2 — attack does NOT proceed.&lt;br /&gt;
2 mobs, mob2: 2 IS NOT less than 2 — attack CAN proceed.&lt;br /&gt;
1 mob, !mob2: 1 IS NOT more than 2 — attack CAN proceed.&lt;br /&gt;
2 mobs, !mob2: 2 IS NOT more than 2 — attack CAN proceed.&lt;br /&gt;
3 mobs, !mob2: 3 IS more than 2 — attack does NOT proceed.&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;valid#&#039;&#039;&#039; - Like mob#, but only counts valid targets you are actively targeting in current settings.&lt;br /&gt;
* &#039;&#039;&#039;tier#&#039;&#039;&#039; - Checks your current UAC tier (1, 2, 3). Performs the command if your tier is equal to or greater than #. &amp;lt;CODE&amp;gt;(!tier3)&amp;lt;/CODE&amp;gt; skips the command at tier 3.&lt;br /&gt;
* &#039;&#039;&#039;prone&#039;&#039;&#039; - Checks that the target is NOT sleeping, webbed, stunned, kneeling, sitting, lying down, prone, frozen, or held in place. Performs the command if none of those apply.&lt;br /&gt;
* &#039;&#039;&#039;frozen&#039;&#039;&#039; - Similar to prone but broken out separately. Useful for archers against non-corporeal creatures that deflect ranged attacks. Corporeal creatures that are stunned will break this check.&lt;br /&gt;
* &#039;&#039;&#039;undead&#039;&#039;&#039; - Performs the command if the target is undead.&lt;br /&gt;
* &#039;&#039;&#039;flying&#039;&#039;&#039; - Performs the command if the target is flying.&lt;br /&gt;
* &#039;&#039;&#039;rooted&#039;&#039;&#039; - Performs the command if the target is rooted.&lt;br /&gt;
* &#039;&#039;&#039;noncorporeal&#039;&#039;&#039; - Performs the command if the NPC is [[noncorporeal|non-corporeal]] undead.&lt;br /&gt;
* &#039;&#039;&#039;ancient&#039;&#039;&#039; - Checks for grizzled/ancient creatures.&lt;br /&gt;
&lt;br /&gt;
The following checks read the target&#039;s live status directly from the game feed, so they can be more precise than the umbrella &#039;&#039;&#039;prone&#039;&#039;&#039; check above. Each performs the command only when the target IS in that state (add &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to require that it is NOT):&lt;br /&gt;
* &#039;&#039;&#039;calm&#039;&#039;&#039; - Target is calmed.&lt;br /&gt;
* &#039;&#039;&#039;disoriented&#039;&#039;&#039; - Target is disoriented.&lt;br /&gt;
* &#039;&#039;&#039;hovering&#039;&#039;&#039; - Target is hovering.&lt;br /&gt;
* &#039;&#039;&#039;immobilized&#039;&#039;&#039; - Target is immobilized (note: this checks the opposite condition of the existing &#039;&#039;&#039;frozen&#039;&#039;&#039; check above, which performs its command only when the target is NOT frozen).&lt;br /&gt;
* &#039;&#039;&#039;kneeling&#039;&#039;&#039; - Target is kneeling.&lt;br /&gt;
* &#039;&#039;&#039;sitting&#039;&#039;&#039; - Target is sitting.&lt;br /&gt;
* &#039;&#039;&#039;sleeping&#039;&#039;&#039; - Target is sleeping.&lt;br /&gt;
* &#039;&#039;&#039;stunned&#039;&#039;&#039; - Target is stunned.&lt;br /&gt;
* &#039;&#039;&#039;webbed&#039;&#039;&#039; - Target is webbed.&lt;br /&gt;
* &#039;&#039;&#039;lying&#039;&#039;&#039; - Target is lying down (prone).&lt;br /&gt;
&lt;br /&gt;
Creature type/classification checks, also read from the game feed. Each performs the command only when the target carries that classification (add &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to require that it does not):&lt;br /&gt;
* &#039;&#039;&#039;mount&#039;&#039;&#039; - Target is a mount.&lt;br /&gt;
* &#039;&#039;&#039;rider&#039;&#039;&#039; - Target is riding a mount.&lt;br /&gt;
* &#039;&#039;&#039;mini_boss&#039;&#039;&#039; - Target is flagged as a mini-boss.&lt;br /&gt;
* &#039;&#039;&#039;ascension_boss&#039;&#039;&#039; - Target is flagged as an Ascension boss.&lt;br /&gt;
* &#039;&#039;&#039;ascended&#039;&#039;&#039; - Target carries the &amp;quot;ascended&amp;quot; classification.&lt;br /&gt;
* &#039;&#039;&#039;challenging&#039;&#039;&#039; - Target is flagged as a tougher &amp;quot;challenging&amp;quot; variant.&lt;br /&gt;
* &#039;&#039;&#039;inferior&#039;&#039;&#039; - Target is flagged as a weaker &amp;quot;inferior&amp;quot; variant.&lt;br /&gt;
* &#039;&#039;&#039;disengaged&#039;&#039;&#039; - Target has disengaged from combat.&lt;br /&gt;
* &#039;&#039;&#039;sympathetic&#039;&#039;&#039; - Target is flagged as sympathetic (non-hostile).&lt;br /&gt;
&lt;br /&gt;
Wound and critical-hit checks:&lt;br /&gt;
* &#039;&#039;&#039;wounded&#039;&#039;&#039; - Performs the command only when the target&#039;s health is at or below 25% (a fixed threshold; use &#039;&#039;&#039;thp#&#039;&#039;&#039; above for a custom percentage). &amp;lt;CODE&amp;gt;(!wounded)&amp;lt;/CODE&amp;gt; requires health above 25%.&lt;br /&gt;
* &#039;&#039;&#039;fatalcrit&#039;&#039;&#039; - Performs the command only when the target has already suffered a fatal critical hit. &amp;lt;CODE&amp;gt;(!fatalcrit)&amp;lt;/CODE&amp;gt; requires that it has not.&lt;br /&gt;
* &#039;&#039;&#039;smote&#039;&#039;&#039; - Performs the command only when the target has already been hit with Voln Smite. &amp;lt;CODE&amp;gt;(!smote)&amp;lt;/CODE&amp;gt; requires that it has not been.&lt;br /&gt;
&lt;br /&gt;
Target-specific UCS positioning checks — these read the &#039;&#039;target&#039;s&#039;&#039; individual unarmed-combat positioning, unlike the &#039;&#039;&#039;tier#&#039;&#039;&#039; checks above which track your own overall UAC tier. Each performs the command only when your positioning against &#039;&#039;that specific target&#039;&#039; matches (add &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to require that it does not):&lt;br /&gt;
* &#039;&#039;&#039;ucsdecent&#039;&#039;&#039; - Positioning is &amp;quot;decent&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ucsgood&#039;&#039;&#039; - Positioning is &amp;quot;good&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ucsexcellent&#039;&#039;&#039; - Positioning is &amp;quot;excellent&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ucstierup&#039;&#039;&#039; - A tier-up follow-up is available.&lt;br /&gt;
&lt;br /&gt;
====Self Checks====&lt;br /&gt;
* &#039;&#039;&#039;hidden&#039;&#039;&#039; - Performs the command if you are currently hidden.&lt;br /&gt;
* &#039;&#039;&#039;poison&#039;&#039;&#039; - Performs the command if you are currently poisoned.&lt;br /&gt;
* &#039;&#039;&#039;disease&#039;&#039;&#039; - Performs the command if you are currently diseased.&lt;br /&gt;
* &#039;&#039;&#039;pcs&#039;&#039;&#039; - Performs the command if there are PCs in the room that are not in your group.&lt;br /&gt;
* &#039;&#039;&#039;outside&#039;&#039;&#039; - Performs the command if the room is outdoors.&lt;br /&gt;
* &#039;&#039;&#039;splashy&#039;&#039;&#039; - Checks if the room is &amp;quot;splashy&amp;quot; (wet) via Room.tags. Useful for avoiding lightning attacks in wet rooms.&lt;br /&gt;
* &#039;&#039;&#039;k#&#039;&#039;&#039; - Performs the command only while you are kneeling. The number is required by the syntax but its value doesn&#039;t matter (e.g. &amp;lt;CODE&amp;gt;k1&amp;lt;/CODE&amp;gt;). &amp;lt;CODE&amp;gt;(!k#)&amp;lt;/CODE&amp;gt; performs the command only while you are NOT kneeling.&lt;br /&gt;
&lt;br /&gt;
====Timing Checks====&lt;br /&gt;
* &#039;&#039;&#039;once&#039;&#039;&#039; - Performs the command once per target. Resets on room change.&lt;br /&gt;
* &#039;&#039;&#039;room&#039;&#039;&#039; - Performs the command once per room. Resets on room change.&lt;br /&gt;
* &#039;&#039;&#039;repeatdelay#&#039;&#039;&#039; - Throttles the command to once every # seconds per room, regardless of which target it&#039;s used against. Resets on room change. Example: &amp;lt;CODE&amp;gt;holler(repeatdelay60)&amp;lt;/CODE&amp;gt; will not Holler again for 60 seconds after it last went off in that room.&lt;br /&gt;
&lt;br /&gt;
====Buff Checks====&lt;br /&gt;
* &#039;&#039;&#039;barrage&#039;&#039;&#039; - Checks for the Enhanced Dexterity buff from Barrage.&lt;br /&gt;
* &#039;&#039;&#039;fury&#039;&#039;&#039; - Checks for the Enhanced Constitution buff from Fury.&lt;br /&gt;
* &#039;&#039;&#039;flurry&#039;&#039;&#039; - Checks for the Slashing Strikes buff from Flurry.&lt;br /&gt;
* &#039;&#039;&#039;pummel&#039;&#039;&#039; - Checks for the Concussive Blows buff from Pummel.&lt;br /&gt;
* &#039;&#039;&#039;thrash&#039;&#039;&#039; - Checks for the Forceful Blows buff from Thrash.&lt;br /&gt;
* &#039;&#039;&#039;vigor&#039;&#039;&#039; - Checks for the Tangleweed Vigor buff.&lt;br /&gt;
* &#039;&#039;&#039;reflex&#039;&#039;&#039; - Checks for the Arcane Reflex buff from Nature&#039;s Touch.&lt;br /&gt;
* &#039;&#039;&#039;tailwind&#039;&#039;&#039; - Checks for the Tailwind buff from Breeze.&lt;br /&gt;
* &#039;&#039;&#039;shout&#039;&#039;&#039; - Checks for the Empowered buff from Shout.&lt;br /&gt;
* &#039;&#039;&#039;yowlp&#039;&#039;&#039; - Checks for Yertie&#039;s Yowlp buff from Yowlp.&lt;br /&gt;
* &#039;&#039;&#039;holler&#039;&#039;&#039; - Checks for Horland&#039;s Holler buff from Holler.&lt;br /&gt;
* &#039;&#039;&#039;voidweaver&#039;&#039;&#039; - Checks for the Voidweaver buff from Implosion (720).&lt;br /&gt;
* &#039;&#039;&#039;justice&#039;&#039;&#039; - Checks for charges of Swift Justice. &amp;lt;CODE&amp;gt;(justice)&amp;lt;/CODE&amp;gt; acts with charges; &amp;lt;CODE&amp;gt;(!justice)&amp;lt;/CODE&amp;gt; acts with no charges.&lt;br /&gt;
* &#039;&#039;&#039;surge&#039;&#039;&#039; - Checks for Surge of Strength buff.&lt;br /&gt;
* &#039;&#039;&#039;rebuke&#039;&#039;&#039; - Checks for Righteous Rebuke buff.&lt;br /&gt;
* &#039;&#039;&#039;scourge&#039;&#039;&#039; - Checks for Ardor of the Scourge buff.&lt;br /&gt;
* &#039;&#039;&#039;momentum&#039;&#039;&#039; - Checks for Glorious Momentum buff.&lt;br /&gt;
* &#039;&#039;&#039;coupdegrace&#039;&#039;&#039; - Checks for the Empowered buff from Coup de Grace.&lt;br /&gt;
* &#039;&#039;&#039;animate&#039;&#039;&#039; - Checks for whether you have an animate present.&lt;br /&gt;
* &#039;&#039;&#039;empowered#&#039;&#039;&#039; - Skips the command if an Empowered buff of +# or greater is already active, so a strong Coup de Grace bonus can&#039;t get overwritten by a weaker recast. &amp;lt;CODE&amp;gt;(!empowered#)&amp;lt;/CODE&amp;gt; skips unless already at +# or greater.&lt;br /&gt;
* &#039;&#039;&#039;buffXX&#039;&#039;&#039; - Fires the ability when the buff duration is &amp;lt;= XX seconds remaining. Supported for barrage, bearhug, coupdegrace, flurry, fury, garrote, pummel, shout, thrash, weed/kweed, yowlp.&lt;br /&gt;
* &#039;&#039;&#039;censer&#039;&#039;&#039; - Attempts to cast 320 before your command, checking mana and cooldown. Examples: &amp;lt;CODE&amp;gt;309(censer)&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;335(censer mob3)&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;attack(censer)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
** If the command is a spell, censer only casts if you have mana for both 320 and the spell.&lt;br /&gt;
** If the command is not a spell, censer only checks you have enough mana for 320.&lt;br /&gt;
&lt;br /&gt;
====Effects Checks====&lt;br /&gt;
* &#039;&#039;&#039;ES&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Spells effect is active&lt;br /&gt;
* &#039;&#039;&#039;EB&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Buffs effect is active&lt;br /&gt;
* &#039;&#039;&#039;EC&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Cooldowns effect is active&lt;br /&gt;
* &#039;&#039;&#039;ED&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Debuffs effect is active&lt;br /&gt;
&lt;br /&gt;
===Example Attack Routines===&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 10, kill (x3)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Waits 10 seconds for the monster to swing or cast, then counter-attacks from your specified attack stance. Swings three times, then goes back to defensive and waits again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 15, incant 505, incant 903 (xx)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Waits 15 seconds, then INCants 505 (Hand of Tonis) to knock down or stun the target. Follows up with repeated casts of 903 (Minor Water) until the target is dead (up to 5 times).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;stance defensive and incant 1615, kill (x100)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Casts 1615 (Divine Strike) from defensive stance, then uses KILL continuously until the target is dead or 100 swings (whichever comes first).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;force feint until 101, kill (x2)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Uses FEINT against the target until a successful endroll, then hits twice before trying FEINT again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;stance defensive and hide, ambush left leg&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Hides from defensive stance, then ambushes the target&#039;s left leg. Repeats (hides again) after roundtime.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;incant 720(m50), incant 708, incant 702 channel(xx)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Casts 720 (Implosion) if you have 50+ mana, then INCants 708 (Limb Disruption) at the default aim location, then channels 702 (Mana Disruption) up to 5 times or until dead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;prep 708, cast at left leg / prep 708 channel at left leg, incant 719 (m50)(x1), incant 702 (xx)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Prepares 708 and CASTs at the left leg. The second variant prepares and CHANNELs at the left leg. Then casts 719 (Dark Catalyst) once if 50+ mana. Finally, INCants 702 until the creature is dead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 30, unarmed punch&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Waits 30 seconds or until the target attacks, then begins UAC combat using Punch to tier up.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;shield charge (s15 prone), ambush, mstrike&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Shield charges the target if you have 15+ stamina and the target is NOT prone. Then ambushes based on Attacking tab settings (cycling through configured aim locations). Then MSTRIKEs — focused if below the creature threshold, unfocused if at or above it. Use &amp;lt;CODE&amp;gt;mstrike target&amp;lt;/CODE&amp;gt; to always focus, or set unfocused threshold very high.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;bellow all, wblade(mob3), flurry(!flurry), attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
AOE bellows, then Whirling Blade if 3+ targets. Flurries if the Slashing Strikes buff is not active. Falls back to basic attack.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;holler, shield throw(mob3), flurry, thrash, attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Taunts with Holler, Shield Throws if 3+ targets, Flurries on cooldown, Thrashes on cooldown, and attacks as a fallback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;shroud(s35 !hidden mob2), divert (s25 hidden mob2), ambush(hidden), flurry, attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
If 2+ mobs: hides with Shroud (35 stamina, not already hidden), then Diverts one target (25 stamina, must be hidden). Ambushes if hidden, Flurries on cooldown, attacks as fallback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;surge(!surge), bullrush, bearhug, pummel, attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Keeps Surge active (casting only when not on cooldown). Bullrush to apply vulnerable, Bearhug (faster on vulnerable targets), Pummel on cooldown, attack as fallback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;surge, shout(buff10), shield strike, pummel(buff60), attack(x2)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Keeps Surge active (casting even during cooldown for 60 stamina). Shouts when less than 11 seconds remain on the buff. Shield Strikes, Pummels once per minute, finishes with 2 attacks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;pindown(mob4), volley(mob2), weed(!vigor !reflex), barrage(!barrage), incant 616 (m16 reflex), fire&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Pin Down if 4+ targets, Volley if 2+ targets. Tangleweed if missing Vigor and Reflex buffs. Barrage if missing Enhanced Dexterity. Spike Thorn (616) if 16+ mana and Arcane Reflex is active. Fire as fallback.&lt;br /&gt;
&lt;br /&gt;
===Hunting Target Examples===&lt;br /&gt;
All examples below work for both &amp;quot;valid targets&amp;quot; and &amp;quot;quickhunt targets.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A simple target list using default commands (a) for each creature:&lt;br /&gt;
&amp;lt;PRE&amp;gt;crazed zombie, niirsha, sacristan spirit&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using different command sets per creature — (a) for zombies and spirits, (b) for niirsha:&lt;br /&gt;
&amp;lt;PRE&amp;gt;crazed zombie(a), niirsha(b), sacristan spirit(a)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Including [[:Category:Boss creatures|Boss Creature]] variations as valid targets using regex:&lt;br /&gt;
&amp;lt;PRE&amp;gt;(?:adroit |afflicted |apt |barbed |belligerent |blurry |canny |combative |dazzling |deft |diseased |drab |dreary |ethereal |flashy |flexile |flickering |flinty |frenzied |ghastly |ghostly |gleaming |glittering |glorious |glowing |grotesque |hardy |illustrious |indistinct |keen |lanky |luminous |lustrous |muculent |nebulous |oozing |pestilent |radiant |raging |ready |resolute |robust |rune-covered |shadowy |shielded |shifting |shimmering |shining |sickly green |sinuous |slimy |sparkling |spindly |spiny |stalwart |steadfast |stout |tattooed |tenebrous |tough |twinkling |unflinching |unyielding |wavering |wispy )?crazed zombie, niirsha, sacristan spirit&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advanced regex for Grimswarm hunting with different commands per class:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:dissembler|sorcerer|sorceress|warlock|witch)(a)&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:barbarian|blackguard|fighter|marauder|soldier|warrior)(b)&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:adept|archmage|elementalist|mage|warmage)(c)&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:hunter|huntmaster|huntmistress|ranger)(d)&lt;br /&gt;
(?:seasoned )?(?:dwarven|elven|halfling|erithian|human|giantman|half-krolvin|gnomish|half-elven) (?:thief|rogue|bandit|mugger|outlaw|highwayman|marauder|brigand|thug|robber)(e)&lt;br /&gt;
(?:shopkeeper|innkeeper|bartender|patrol leader|bandit lord|bandit lady|gypsy queen|gypsy king|guard captain|wall captain|drill sergeant|stable hostler|dungeon master|master torturer|butler|cook|&lt;br /&gt;
knight captain|foreign dignitary|royal prince|royal princess|royal jester|royal emperor|royal empress)(f)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To target everything in the room: &amp;lt;CODE&amp;gt;(?:.*)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boon Creatures Tab==&lt;br /&gt;
Boss creatures (also called the Boss Creature System) upgrades newly created creatures into bosses, minibosses, or packs. Upgraded creatures have their level and basic stats boosted, and are granted a number of special abilities called &#039;&#039;&#039;boons&#039;&#039;&#039;, which are denoted by a special adjective in the creature&#039;s name. Players have alternatively called these &amp;quot;glam critters,&amp;quot; &amp;quot;gifted creatures,&amp;quot; or &amp;quot;boosted critters.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additional details are available on the GemStone Wiki: [https://gswiki.play.net/Category:Boss_creatures Category:Boss creatures]&lt;br /&gt;
&lt;br /&gt;
The Boon Creatures tab provides granular control over how Bigshot handles each boon ability. Bigshot uses the ASSESS verb to identify which boons a creature has, then checks your configuration to decide how to respond.&lt;br /&gt;
&lt;br /&gt;
===How It Works===&lt;br /&gt;
For each boon ability, you can choose one of three actions:&lt;br /&gt;
* &#039;&#039;&#039;Common&#039;&#039;&#039; - Treat as a normal target and fight it. Uses your hunting commands to kill. Still requires proper valid target matching to engage. This is also the default behavior if no selection is made.&lt;br /&gt;
* &#039;&#039;&#039;Ignore&#039;&#039;&#039; - Skip this creature entirely; do not engage it.&lt;br /&gt;
* &#039;&#039;&#039;Flee&#039;&#039;&#039; - Immediately flee from the room when this boon type is detected.&lt;br /&gt;
&lt;br /&gt;
===Master Toggle===&lt;br /&gt;
At the top of the tab is an &#039;&#039;&#039;All Boon Creatures&#039;&#039;&#039; section with Common, Ignore, and Flee checkboxes. These act as master toggles — checking one will set every individual boon ability across all groups to that action. If all individual items are already set to the same action and you uncheck the &amp;quot;All&amp;quot; toggle, everything gets unchecked.&lt;br /&gt;
&lt;br /&gt;
===Boon Groups===&lt;br /&gt;
The individual boon abilities are organized into four collapsible groups, each with its own group-level toggle row (&amp;quot;Entire Group&amp;quot;) and individual per-ability rows:&lt;br /&gt;
&lt;br /&gt;
====Immunity====&lt;br /&gt;
Boons that make the creature resistant or immune to certain damage types or effects.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Crit Death Immune || resolute, unflinching || Similar to constructs or golems&lt;br /&gt;
|-&lt;br /&gt;
| Damage Padding || flinty, tough ||&lt;br /&gt;
|-&lt;br /&gt;
| Elem Negation || sparkling, shining || Absorbs elemental magic attacks&lt;br /&gt;
|-&lt;br /&gt;
| Magic Resistance || rune-covered, tattooed || Reduces magic damage by 50%&lt;br /&gt;
|-&lt;br /&gt;
| Physical Negation || indistinct, nebulous || Physical damage resist shield&lt;br /&gt;
|-&lt;br /&gt;
| Stun Immune || steadfast, unyielding ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Offensive====&lt;br /&gt;
Boons that enhance the creature&#039;s offensive capabilities.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Boosted Offense || combative, belligerent ||&lt;br /&gt;
|-&lt;br /&gt;
| Cheat Death || glorious, illustrious || Raises self after death&lt;br /&gt;
|-&lt;br /&gt;
| Counter Attack || apt, ready || SMR counter-attack&lt;br /&gt;
|-&lt;br /&gt;
| Crit Weighting || shimmering, gleaming ||&lt;br /&gt;
|-&lt;br /&gt;
| Dmg Weighting || barbed, spiny ||&lt;br /&gt;
|-&lt;br /&gt;
| Dispelling || dazzling, flashy || Spirit Dispel (119) and Elem Dispel (417)&lt;br /&gt;
|-&lt;br /&gt;
| Elemental Flares || glittering ||&lt;br /&gt;
|-&lt;br /&gt;
| Frenzy || raging, frenzied ||&lt;br /&gt;
|-&lt;br /&gt;
| Mind Blast || canny, keen ||&lt;br /&gt;
|-&lt;br /&gt;
| Parting Shot || dreary, drab || Deals damage one last time upon death&lt;br /&gt;
|-&lt;br /&gt;
| Poisonous || sickly green, oozing || SMR poison gas cloud&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Defensive====&lt;br /&gt;
Boons that enhance the creature&#039;s defensive capabilities.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Blink || flickering, wavering || Temporary phase ability&lt;br /&gt;
|-&lt;br /&gt;
| Bolt Shield || shielded ||&lt;br /&gt;
|-&lt;br /&gt;
| Boosted Defense || sinuous, flexile || High damage padding (+12 CER)&lt;br /&gt;
|-&lt;br /&gt;
| Confuse || blurry, shifting || May give hard RT for casting at them&lt;br /&gt;
|-&lt;br /&gt;
| Crit Padding || stout, hardy ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Stats / Misc====&lt;br /&gt;
Boons that affect the creature&#039;s stats, resistances, or grant miscellaneous special abilities.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Boosted HP || robust, stalwart ||&lt;br /&gt;
|-&lt;br /&gt;
| Boosted Mana || luminous, lustrous ||&lt;br /&gt;
|-&lt;br /&gt;
| Diseased || pestilent, afflicted, diseased ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Spells - Elem || glowing ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Spells - Spirit || radiant ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Spells - Other || twinkling ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethereal || ethereal, wispy, ghostly || Noncorporeal undead. No Sheer Fear.&lt;br /&gt;
|-&lt;br /&gt;
| Jack of All Trades || adroit, deft ||&lt;br /&gt;
|-&lt;br /&gt;
| Regeneration || slimy, muculent || Similar to Troll&#039;s Blood (1125)&lt;br /&gt;
|-&lt;br /&gt;
| Soul Stealing || tenebrous, shadowy || May possess 1204, 1601, and 1712&lt;br /&gt;
|-&lt;br /&gt;
| Terrifying || ghastly, grotesque || Pre-attack SMR can force player into defensive&lt;br /&gt;
|-&lt;br /&gt;
| Weaken || spindly, lanky || Weaker creature than normal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Usage Tips===&lt;br /&gt;
* If you are a melee character who struggles with &#039;&#039;&#039;Stun Immune&#039;&#039;&#039; or &#039;&#039;&#039;Crit Death Immune&#039;&#039;&#039; creatures, set those to Ignore or Flee while leaving others on Common.&lt;br /&gt;
* Casters may want to Flee from &#039;&#039;&#039;Dispelling&#039;&#039;&#039; and &#039;&#039;&#039;Magic Resistance&#039;&#039;&#039; boons.&lt;br /&gt;
* &#039;&#039;&#039;Weaken&#039;&#039;&#039; is actually beneficial — the creature is weaker than normal, so leaving it on Common is usually best.&lt;br /&gt;
* &#039;&#039;&#039;Cheat Death&#039;&#039;&#039; creatures will revive after dying; consider Ignore if your build cannot handle killing them twice.&lt;br /&gt;
* The configuration is saved per profile, so you can have different boon strategies for different hunting areas.&lt;br /&gt;
&lt;br /&gt;
== Misc Tab==&lt;br /&gt;
Various specialized configuration options.&lt;br /&gt;
&lt;br /&gt;
===UAC Options===&lt;br /&gt;
Options for configuring Unarmed Combat (UAC):&lt;br /&gt;
* &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039; - The attack used when you have reached &amp;quot;excellent&amp;quot; positioning. Options: jab, punch, grapple, or kick.&lt;br /&gt;
* &#039;&#039;&#039;Aim at location (head, etc)&#039;&#039;&#039; - Used for aimed UAC combat, which requires ambush training to be effective. Leave blank if you do not want to aim.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE when creatures equal or greater&#039;&#039;&#039; - How many creatures must be present before using MSTRIKE during UAC.&lt;br /&gt;
* &#039;&#039;&#039;Use Voln SMITE?&#039;&#039;&#039; - Will perform a Voln SMITE on [[Non-corporeal]] undead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quick Setup:&#039;&#039;&#039; Bigshot only requires minimal configuration for UAC to work well:&lt;br /&gt;
# &#039;&#039;&#039;UAC options:&#039;&#039;&#039; Set your &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039; (jab, punch, grapple, or kick).&lt;br /&gt;
# &#039;&#039;&#039;Commands tab:&#039;&#039;&#039; Set your &#039;&#039;&#039;hunting commands (a)&#039;&#039;&#039; to &#039;&#039;&#039;unarmed jab&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Important notes about UAC in Bigshot:&lt;br /&gt;
* &amp;lt;CODE&amp;gt;unarmed jab&amp;lt;/CODE&amp;gt; can be replaced with any UAC attack type (e.g., &amp;lt;CODE&amp;gt;unarmed punch&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
* UAC follow-up strikes take priority over the base or Tier 3 attack.&lt;br /&gt;
* Tier 3 attacks are only used when positioning is &amp;quot;excellent&amp;quot;.&lt;br /&gt;
* There is almost no reason to use anything other than &amp;lt;CODE&amp;gt;unarmed jab&amp;lt;/CODE&amp;gt; as the hunting command and either &amp;lt;CODE&amp;gt;grapple&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;kick&amp;lt;/CODE&amp;gt; as the Tier 3 attack.&lt;br /&gt;
&lt;br /&gt;
===MSTRIKE Options===&lt;br /&gt;
Options for when and how MSTRIKE should be used:&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown stamina requirement&#039;&#039;&#039; - How much stamina you need before Bigshot will MSTRIKE during the MSTRIKE cooldown period. Be careful setting this too low, as it can pop your muscles. Leave blank to use your max stamina.&lt;br /&gt;
* &#039;&#039;&#039;QUICKSTRIKE stamina requirement&#039;&#039;&#039; - Stamina required for using QUICKSTRIKE during the MSTRIKE routine.&lt;br /&gt;
* &#039;&#039;&#039;Unfocused MSTRIKE when creatures equal or greater&#039;&#039;&#039; - Number of creatures in the room before Bigshot uses an unfocused (AOE) MSTRIKE instead of a focused one. Default is 2.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown&#039;&#039;&#039; - Toggle to allow MSTRIKEing during the cooldown period.&lt;br /&gt;
* &#039;&#039;&#039;Use QUICKSTRIKE for MSTRIKE&#039;&#039;&#039; - Toggle to use QUICKSTRIKE instead of normal MSTRIKE.&lt;br /&gt;
&lt;br /&gt;
===Ammo/Wands===&lt;br /&gt;
Settings for ammunition and wand management. If your attack routine uses FIRE or WAND verbs, these fields must be configured or Bigshot will hang.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;find ammo in this container&#039;&#039;&#039; - The container holding your ammunition (quiver, backpack, etc.). Leave BLANK if using FIRE without retrieving ammo (post-Archery 2020 Update).&lt;br /&gt;
* &#039;&#039;&#039;use this ammo type&#039;&#039;&#039; - The noun of your ammo type. Leave BLANK to use FIRE without retrieving ammo. Be precise with the noun — Bigshot is sensitive to exact naming here.&lt;br /&gt;
* &#039;&#039;&#039;fresh wand container&#039;&#039;&#039; - The container Bigshot checks for fresh wands to WAVE.&lt;br /&gt;
* &#039;&#039;&#039;dead wand container&#039;&#039;&#039; - The container where Bigshot deposits used-up wands.&lt;br /&gt;
* &#039;&#039;&#039;use this wand type&#039;&#039;&#039; - The specific wand type(s) to use. Bigshot only pulls these for WAVEing. Separate multiple types with commas. Example: &amp;lt;CODE&amp;gt;aquamarine wand, bloodwood wand&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Hide while waiting to pick up ammo&#039;&#039;&#039; - Bigshot will hide when gathering spent arrows and bolts.&lt;br /&gt;
* &#039;&#039;&#039;Use wands when out of mana&#039;&#039;&#039; - When out of mana, Bigshot pulls the specified wand type, stances to your attack stance, and WAVEs at valid targets until out of wands or resting conditions are met.&lt;br /&gt;
&lt;br /&gt;
===MA Grouping===&lt;br /&gt;
Multi-account grouping options:&lt;br /&gt;
* &#039;&#039;&#039;Looter name&#039;&#039;&#039; - The name of the character designated as the looter in Head/Tail configuration.&lt;br /&gt;
* &#039;&#039;&#039;No-looting list&#039;&#039;&#039; - Comma-separated list of characters who should never be assigned looting duty.&lt;br /&gt;
* &#039;&#039;&#039;Random looting&#039;&#039;&#039; - Distributes looting randomly based on encumbrance rather than assigning a fixed looter.&lt;br /&gt;
* &#039;&#039;&#039;Leader final loot&#039;&#039;&#039; - Allows the leader to perform a final loot pass before leaving a room.&lt;br /&gt;
* &#039;&#039;&#039;Travel TO hunting grounds independently&#039;&#039;&#039; - When enabled, group members travel to the hunting area on their own rather than as a group. Bigshot will disband the group and force GROUP OPEN after disbanding.&lt;br /&gt;
* &#039;&#039;&#039;Travel FROM hunting grounds independently&#039;&#039;&#039; - When enabled, group members return from the hunting area on their own.&lt;br /&gt;
* &#039;&#039;&#039;Stop for dead group members&#039;&#039;&#039; - Pauses the group if a follower dies during a hunt.&lt;br /&gt;
&lt;br /&gt;
==Monitoring Tab==&lt;br /&gt;
Options for safety, interaction monitoring, and debugging.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Monitor interaction&#039;&#039;&#039; - Pops up a window whenever Bigshot detects that someone or something is trying to interact with you. Customizable monitor strings and safe strings can be configured.&lt;br /&gt;
* &#039;&#039;&#039;Engage deadman&#039;s switch&#039;&#039;&#039; - Forces Bigshot to quit GemStone IV when your character drops below 40% health, allowing you to log back on and assess the situation manually.&lt;br /&gt;
* &#039;&#039;&#039;Depart/rerun if dead&#039;&#039;&#039; - Forces a DEPART (waking up in the Temple with low spirit), then restarts Bigshot for a fresh hunt. Make sure your &amp;quot;CHECK spirit &amp;gt;=&amp;quot; value in Should Hunt? is set high enough to recover before the next hunt.&lt;br /&gt;
* &#039;&#039;&#039;Quiet followers&#039;&#039;&#039; - Followers wait until the leader finishes both actions and resting scripts before beginning their own.&lt;br /&gt;
* &#039;&#039;&#039;Ignore disk objects&#039;&#039;&#039; - Ignores disk objects when evaluating room claims and other checks.&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
Bigshot provides detailed debug options for troubleshooting. Use these commands in-game:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
|                       Bigshot Debug Help v5.16.0                          |&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
| Debug options have changed to be more helpful.                            |&lt;br /&gt;
+--------------------------------------+------------------------------------+&lt;br /&gt;
| ;bigshot debug file                  | Toggles logging to a file &amp;lt;on/off&amp;gt; |&lt;br /&gt;
| ;bigshot debug all &amp;lt;true/false&amp;gt;      |  Toggles true/false all the things |&lt;br /&gt;
| ;bigshot debug check                 |       Lists current debug settings |&lt;br /&gt;
| ;bigshot debug combat &amp;lt;true/false&amp;gt;   |         Combat and Creature Status |&lt;br /&gt;
| ;bigshot debug commands &amp;lt;true/false&amp;gt; |     Attacking and Casting Commands |&lt;br /&gt;
| ;bigshot debug status &amp;lt;true/false&amp;gt;   |    Status Checks of your Character |&lt;br /&gt;
| ;bigshot debug system &amp;lt;true/false&amp;gt;   |                   System processes |&lt;br /&gt;
|                                      |                                    |&lt;br /&gt;
| Options can be combined:                                                  |&lt;br /&gt;
|           ;bigshot debug combat commands status &amp;lt;true/false&amp;gt;              |&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Debug log files are stored in your Lich5 logs directory under &amp;lt;CODE&amp;gt;debug/&amp;lt;Game&amp;gt;-&amp;lt;CharacterName&amp;gt;/bigshot.log&amp;lt;/CODE&amp;gt; and rotate daily.&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;CODE&amp;gt;debug combat&amp;lt;/CODE&amp;gt; enabled, the log also tracks each target&#039;s health and status from the moment Bigshot first engages it, through every command tried against it, to its death — useful for figuring out why a particular command check fired or didn&#039;t fire against a specific creature.&lt;br /&gt;
&lt;br /&gt;
==Ingame Screenshot==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:bigshot-1.PNG|Profiles&lt;br /&gt;
File:bigshot-2.PNG|Resting&lt;br /&gt;
File:bigshot-3.PNG|Hunting&lt;br /&gt;
File:bigshot-4.PNG|Attacking&lt;br /&gt;
File:bigshot-5.PNG|Commands&lt;br /&gt;
File:bigshot-6.PNG|Misc&lt;br /&gt;
File:bigshot-7.PNG|Monitoring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
* Info originally taken from http://forum.gsplayers.com/showthread.php?t=57651&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
{{top}}&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Gemstones&amp;diff=265681</id>
		<title>Gemstones</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Gemstones&amp;diff=265681"/>
		<updated>2026-09-30T18:29:19Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Updates: */ place closing tag back after visual edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
Gemstones are powerful character-boosting artifacts that creatures in [[Ascension]] hunting areas can drop upon being looted by characters who have defeated the [[Silver-scaled_cold_wyrm|wyrm]] and completed the ensuing mission [[Gemstone Quest Guide|quest]], [[A Sparkling Ascent]]. Gemstones can be equipped through the {{boldmono|[[Verb:GEM|GEM]]}} interface, starting with one equipment slot upon completing the quest and upgrading to as many as five slots.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable|font-size:95%;margin-left:2em;}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;8&amp;quot; | Gemstone Slot Unlocks&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Slot&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Ascension Experience Required&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Silver&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | Slot 1&lt;br /&gt;
| Quest&lt;br /&gt;
| Quest&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | Slot 2&lt;br /&gt;
| 1,000,000&lt;br /&gt;
| 5,000,000&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | Slot 3&lt;br /&gt;
| 2,500,000&lt;br /&gt;
| 10,000,000&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | Slot 4&lt;br /&gt;
| 4,500,000&lt;br /&gt;
| 25,000,000&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | Slot 5&lt;br /&gt;
| 7,500,000&lt;br /&gt;
| 50,000,000&lt;br /&gt;
|}&lt;br /&gt;
* Total of 90,000,000 silver to unlock all five slots.&lt;br /&gt;
&lt;br /&gt;
A Gemstone generates with up to three properties, each categorized as common, regional, rare, or legendary. (For more details on these properties, see [[Gemstone Property List|the Gemstone Property List]].)&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable|font-size:95%;margin-left:2em;}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Properties&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Qualities&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |First Property&lt;br /&gt;
|Common or Regional&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |Second Property&lt;br /&gt;
|Common, Regional or Rare&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |Third Property&lt;br /&gt;
|Legendary&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The first property can only be common or regional. If it generates with a second property, that property can be common, regional, or rare. The third property can only be legendary and only has a chance to generate on the Gemstone if that Gemstone&#039;s second property is rare.&lt;br /&gt;
* Players may only equip one Gemstone with a legendary property at a time.&lt;br /&gt;
&lt;br /&gt;
Ultimately, characters maximizing all five slots of the Gemstone System may have a maximum of 11 equipped properties: one Gemstone will have a common/regional property, a rare property, and a legendary property while the next 2 Gemstones will have a common/regional and a common/regional/rare property. This gives a maximum of 3 rares total. With the last 2 being limited to common/regional and common/regional. The following table illustrates:&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable|font-size:95%;margin-left:2em;}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Properties&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Qualities&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |1st Gemstone&lt;br /&gt;
|Common/Regional plus Rare plus Legendary&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |2nd Gemstone&lt;br /&gt;
|Common/Regional plus Common/Regional/Rare&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |3rd Gemstone&lt;br /&gt;
|Common/Regional plus Common/Regional/Rare&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |4th Gemstone&lt;br /&gt;
|Common/Regional plus Common/Regional&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |5th Gemstone&lt;br /&gt;
|Common/Regional plus Common/Regional&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Drop Rates==&lt;br /&gt;
&lt;br /&gt;
* You can obtain a maximum of 1 Gemstone per week and 3 per month.&lt;br /&gt;
* The chance for a weekly Gemstone to drop is reset on Sunday.&lt;br /&gt;
* The chance for the monthly Gemstones to drop is reset on the 1st of the month.&lt;br /&gt;
* You must have earned killing contribution before searching a critter for the chance to drop a gemstone. A contributor is anyone who directly assists in incapacitating, hindering, or killing the creature. This includes Binding, Tackling, Cheapshotting, E-waving, and the like. It does not include indirect assistance, such as spelling up your buddy, Guard or Protect, group-boosting warcries, etc.  Similarly to how odds improve for a violet orb drop from the Arena in Duskruin.&lt;br /&gt;
* An individual must be eligible for both a weekly and a monthly gemstone in order to receive contribution or be eligible for a drop: If a gemstone drops on Sunday, January 31st, the individual would be ineligible for a gemstone drop through Saturday, even with their monthly allocation was reset, because they had received their weekly.&lt;br /&gt;
* The first gemstone of a month is easier to find than the second or third.&lt;br /&gt;
* There is no limit on the amount of [[Gemstone dust|dust]] you can find, but the chance of finding it goes down as you find more. This chance resets each week.&lt;br /&gt;
&lt;br /&gt;
==FAQ:==&lt;br /&gt;
;Q.  Can you equip and unequip Gemstones at will?&lt;br /&gt;
:A.  Yes.&lt;br /&gt;
&lt;br /&gt;
;Q.  How much does it cost to unbind a gemstone?&lt;br /&gt;
:A.  It costs 1-4m to permanently remove the lesser binding. [[https://gswiki.play.net/Gemstones#Unbind|Unbinding Gemstones]]&lt;br /&gt;
&lt;br /&gt;
;Q.  Can you Shatter a Gemstone without unbinding it?&lt;br /&gt;
:A.  Yes, if the gemstone is lesser bound to you.  No, if the gemstone is lesser bound to someone else.&lt;br /&gt;
&lt;br /&gt;
;Q.  How much does it cost to Shatter a Gemstone?&lt;br /&gt;
:A.  Shattering a Gemstone is free, but it must be unbound.&lt;br /&gt;
&lt;br /&gt;
;Q.  If you unbind a lesser bind, and you pass it to someone, can they use it, and give it back, or does it lesser bind every time it&#039;s equipped?&lt;br /&gt;
:A.  Yes.  Equipping a gemstone causes it to lesser bind.  Reshaping or amplifying causes a greater binding to the character, which is &#039;&#039;&#039;permanent and irreversible&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
;Q.  How many gems can you find per week?&lt;br /&gt;
:A.  One per character, per week. Capped at 3 in a month.&lt;br /&gt;
&lt;br /&gt;
;Q.  When does resets occur for per month and per week?&lt;br /&gt;
:A.  One per week reset occurs on Sundays at 12:00am EST. The same as Lumnis&lt;br /&gt;
:A.  The monthly reset occurs on the 1st of the month. &#039;&#039;(Might need this to be validated still)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Gemstone Modifications:==&lt;br /&gt;
&lt;br /&gt;
Done with the Artificier in:&lt;br /&gt;
Rawknuckle&#039;s, Watering Hole - 29877(u7503251)&lt;br /&gt;
===Costs===&lt;br /&gt;
NOTE: Prices are currently based on information provided during testing and may be inaccurate for the release.&lt;br /&gt;
&lt;br /&gt;
===Reshape===&lt;br /&gt;
Reshaping a Gemstone will cause all properties of said Gemstone to reroll into new properties of the same rarity.&amp;lt;br&amp;gt;&lt;br /&gt;
Reshaping causes &#039;&#039;&#039;permanent binding&#039;&#039;&#039; to the character.&lt;br /&gt;
Reshape costs double for every additional reroll. The scaling cost resets weekly.&amp;lt;br&amp;gt;&lt;br /&gt;
Premium Accounts get a 25% discount.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Viscous vial of violet vodka]] will either remove one reshape from your weekly total if imbibed, or grant a 75% discount to the silver cost if held while you order the reshape from the Artificer.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable|font-size:95%;margin-left:2em;}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Rarity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Dust&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Regular Cost&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Premium Cost&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |Common/Regional&lt;br /&gt;
| 10&lt;br /&gt;
| 250,000&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |2 Common/Regional&lt;br /&gt;
| 20&lt;br /&gt;
| 500,000&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |Common/Regional + Rare&lt;br /&gt;
| 40&lt;br /&gt;
| 750,000&lt;br /&gt;
| 562,500&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |Common/Regional + Rare + Legendary&lt;br /&gt;
| 90&lt;br /&gt;
| 1,750,000&lt;br /&gt;
| 1,312,500&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Amplify===&lt;br /&gt;
The amplify option will upgrade one property of a Gemstone. This will &#039;&#039;&#039;permanently bind&#039;&#039;&#039; the Gemstone to that character.&lt;br /&gt;
{|&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; {{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Tier&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Dust&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Silvers&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |2/5&lt;br /&gt;
|15&lt;br /&gt;
|1,000,000&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |3/5&lt;br /&gt;
|30&lt;br /&gt;
|1,500,000&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |4/5&lt;br /&gt;
|45&lt;br /&gt;
|2,000,000&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |5/5&lt;br /&gt;
|60&lt;br /&gt;
|2,500,000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; {{prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Tier&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Dust&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Silvers&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |2/3&lt;br /&gt;
|45 &lt;br /&gt;
|2,500,000 &lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |3/3&lt;br /&gt;
|105&lt;br /&gt;
|4,500,000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Unbind===&lt;br /&gt;
The Unbind cost of a Gemstone is the total of each rarity cost on that Gemstone.&amp;lt;br&amp;gt;&lt;br /&gt;
A Gemstone that is lesser bound to someone else must be unbound before shattering.&amp;lt;br&amp;gt;&lt;br /&gt;
A Gemstone that is lesser bound to yourself can be shattered for free.&amp;lt;br&amp;gt;&lt;br /&gt;
Unbinding a lesser bind is permanent unless you amplify or reshape the Gemstone, which will greater bind it. Note: changes are pending (not finalized) that would cause EQUIP/UNEQUIP to cause lesser binding&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable|font-size:95%;margin-left:2em;}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Rarity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Silvers&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |Common/Regional&lt;br /&gt;
|1,000,000&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |2 Common/Regional&lt;br /&gt;
|2,000,000&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |Common plus Rare&lt;br /&gt;
|3,000,000&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |Common/Regional + Rare + Legendary&lt;br /&gt;
|7,000,000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Shatter===&lt;br /&gt;
Shattering a Gemstone turns it into dust. There is no cost for this service.&lt;br /&gt;
&lt;br /&gt;
Shattering gemstones will now refund 80% of dust spent upgrading the gemstone. This is raised from the previous refund of 2 dust per upgrade.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable|font-size:95%;margin-left:2em;}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Rarity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Dust&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |Common/Regional&lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |2 Common/Regional&lt;br /&gt;
|20&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |Common/Regional + Rare&lt;br /&gt;
|40&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |Common/Regional + Rare + Legendary&lt;br /&gt;
|90&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Dust===&lt;br /&gt;
Your first dust purchased from the artificer costs 500k. Every additional dust costs 2.5x the previous one.&lt;br /&gt;
The scaling cost resets weekly. Dust found by looting creatures has no impact on these costs.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable|font-size:95%;margin-left:2em;}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Count&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |Silvers&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |1&lt;br /&gt;
|500,000&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |2&lt;br /&gt;
|1,250,000&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |3&lt;br /&gt;
|3,125,000&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |4&lt;br /&gt;
|7,812,500&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; |5&lt;br /&gt;
|19,531,250&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Collection==&lt;br /&gt;
{{boldmono|GEM COLLECT &amp;lt;the gemstone in question&amp;gt;}} will add a gemstone to your collection. Your collection can contain up to 25 gemstones.  Gemstones in your collection aren&#039;t offering you any benefit, but do not take up inventory space.  If you want to receive benefit, you have to {{boldmono|GEM EQUIP &amp;lt;gemstone #&amp;gt;}}. At that point it will become one of your equipped gemstones.&lt;br /&gt;
&lt;br /&gt;
==Gemstone Properties==&lt;br /&gt;
&lt;br /&gt;
[[Gemstone Property List]]&lt;br /&gt;
&lt;br /&gt;
==Updates:==&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
Gemstone 4 Your Group&lt;br /&gt;
Ascension Gemstones now have a chance to be looted by your eligible party members when you search a creature. Ineligible party members will not infringe upon chances to find a Gemstone, and the searcher does not need to be eligible to find a Gemstone for eligible party members to have a chance to find one.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Announcement: Ascension Gemstones are live!]]&lt;br /&gt;
* [[Gemstones/saved posts]]&lt;br /&gt;
* [[GemstoneRebalance-Sep-29-2026]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Gemstones]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Pale_scaled_shaper&amp;diff=265666</id>
		<title>Pale scaled shaper</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Pale_scaled_shaper&amp;diff=265666"/>
		<updated>2026-09-29T15:08:58Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Other Information */ fix visual edit deletion of closing tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Creature start2 &amp;lt;!-- See Help:Creatures for full instructions on editing creature pages and copy/paste code. Copy/pasting code from existing creature page may result in missing fields --&amp;gt;&lt;br /&gt;
| level =  102&amp;lt;!-- This will also be used at the end of the page in the near level creature template --&amp;gt;&lt;br /&gt;
| family = Humanoid &amp;lt;!-- Add creature to family page list, which will be linked on preview/save --&amp;gt;&lt;br /&gt;
| type =  Biped&amp;lt;!-- Creature body type --&amp;gt;&lt;br /&gt;
| otherclass = Living&lt;br /&gt;
| area =  Sanctum&amp;lt;!-- For multiple areas, add area2, area3, area4 (through 8) fields if needed --&amp;gt;&lt;br /&gt;
| bcs = Yes &amp;lt;!-- All new creatures are BCS --&amp;gt;&lt;br /&gt;
| hitpoints = 265&lt;br /&gt;
| roundtime = ?&lt;br /&gt;
}}&lt;br /&gt;
{{Creature attack attributes2 &amp;lt;!-- ALL WEAPONS, SPELLS AND MANEUVERS WILL LINK AUTOMATICALLY.  --&amp;gt;&lt;br /&gt;
| PA1 =  &amp;lt;!-- Physical attacks insert up to PA10 and corresponding value/range up to PAJ --&amp;gt;&lt;br /&gt;
| PAA = &lt;br /&gt;
| BT1 = Major Fire&amp;lt;!-- Bolt spells insert up to BT10 and corresponding value/range up to BTJ --&amp;gt;&lt;br /&gt;
| BTA = +454 &lt;br /&gt;
| WD1 = Disintegrate&amp;lt;!-- Warding spells insert up to WD10 and corresponding value/range up to WDJ --&amp;gt;&lt;br /&gt;
| WD2 = Cloak of Shadows&lt;br /&gt;
| WD3 =  &lt;br /&gt;
| WDA = +353&lt;br /&gt;
| WDB = +431&lt;br /&gt;
| OS1 = Gas cloud&amp;lt;!-- Miscellaneous offensive spells (non-bolt and non-warding) insert up to OS10 --&amp;gt;&lt;br /&gt;
| OS2 = Major Elemental Wave&lt;br /&gt;
| OS3 = Spiritual Abolition&lt;br /&gt;
| OS4 = Condemn&lt;br /&gt;
| MN1 =  &amp;lt;!-- Combat Maneuvers insert up to MN10 --&amp;gt;&lt;br /&gt;
| AB1 = &lt;br /&gt;
| ABA = &amp;lt;!-- Special abilities right column, use respective corresponding right column as needed for misc info --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Creature defense attributes2 &amp;lt;!-- Replace ? with value or range, but do not include when the creature is under the effects of disabling statuses (stun/knockdown/interference/curse/etc.) --&amp;gt;&lt;br /&gt;
| asg = 1&amp;lt;!-- Insert asg # and template will automatically convert to include type of armor --&amp;gt;&lt;br /&gt;
| IMM1 = &lt;br /&gt;
| Melee = 555+&lt;br /&gt;
| Ranged = 429-616&lt;br /&gt;
| Bolt = ?&lt;br /&gt;
| UDF = ?&lt;br /&gt;
| BarTD = ?&lt;br /&gt;
| CleTD = ?&lt;br /&gt;
| EmpTD = ?&lt;br /&gt;
| PalTD = 349&lt;br /&gt;
| RanTD = 368&lt;br /&gt;
| SorTD = ?&lt;br /&gt;
| WizTD = ?&lt;br /&gt;
| MjETD = 470-483&lt;br /&gt;
| MnETD = ?&lt;br /&gt;
| MjSTD = ?&lt;br /&gt;
| MnSTD = ?&lt;br /&gt;
| MnMTD = ?&lt;br /&gt;
| DSP1 =  Spirit Warding I&amp;lt;!-- Defensive spells insert up to DSP15, they will automatically link --&amp;gt;&lt;br /&gt;
| DSP2 =  Spirit Warding II&lt;br /&gt;
| DSP3 =  Lesser Shroud&lt;br /&gt;
| DSP4 = Cloak of Shadows&lt;br /&gt;
| DSP5 = Spirit Shield&lt;br /&gt;
| DSP6 = Bravery&lt;br /&gt;
| DSP7 = Thurfel&#039;s Ward&lt;br /&gt;
| DSp8 = Elemental Focus&lt;br /&gt;
| SDA1 =  &amp;lt;!-- Special defensive abilities list insert up to SDA10, these will not link automatically --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Creature special other|Summons sidewinder cobras}} &amp;lt;!-- Replace ? with unique special ability, such as raising others, summoning another creature, turning bodies into zombies, etc. Remove entire template if the creature does not have a unique non-offensive or non-defensive special ability --&amp;gt;&lt;br /&gt;
{{Creature treasure&lt;br /&gt;
 | coins = Yes&lt;br /&gt;
 | magic items = Yes&lt;br /&gt;
 | gems = Yes&lt;br /&gt;
 | boxes = Yes&lt;br /&gt;
 | other = None&lt;br /&gt;
 | skin = None&lt;br /&gt;
}}&lt;br /&gt;
{{Creature end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=26em}}&amp;gt;A pale scaled shaper is far taller than a woman ought to be, with a stretched appearance like that of a doll tugged by battling children.  That is, if she is even female: the pale robes that she wears, with their faint appliqued patterns of winking copper scales, betray only the most suggestive promise of a feminine form beneath.  There is something upsettingly inhuman about the shaper&#039;s face, which has the shape and proportions of a human&#039;s, but eyes that glow like green embers and a dusting of ridged scales on its cheeks and brow.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hunting Strategies==&lt;br /&gt;
&lt;br /&gt;
Shapers spawn with [[Wall of Force (140)]] and [[Cloak of Shadows (712)]] (with retributive [[Condemn (309)]]) active) as well as [[Soul Ward (319)]]. However, if you can overcome their DS, their lack of armor leaves them vulnerable. They will occasionally cast [[Major Elemental Wave (435)]] back-to-back along with [[Divine Wrath (335)]] rarely via the evoke version.&lt;br /&gt;
&lt;br /&gt;
Shapers will automatically stand from prone, even if stunned. This happens 3-5 seconds after being knocked down. Grizzled shapers (generated by [[Adventurer&#039;s Guild]] bounties) can stand up and prepare or cast a spell on the same action.&lt;br /&gt;
&lt;br /&gt;
On very rare occasions, shapers can used the evoked version of Condemn, causing 10 damage cycles instantly. This may only be possible after a shaper has killed someone.&lt;br /&gt;
&lt;br /&gt;
==Other Information==&lt;br /&gt;
&lt;br /&gt;
Shapers will turn dead adventurers, [[Lithe veiled sentinel|Lithe Veiled Sentinels]], and [[Deathsworn fanatic|Deathsworn Fanatics]] into a [[Shambling lurk|Shambling Lurk]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=26em}}&amp;gt;&lt;br /&gt;
A pale scaled shaper stoops and places a hand on your chest.  Green-tinged light spews from her hand, suffusing your flesh.  For a moment, you feel nothing but incredible heat and power flowing through you, but something goes terribly wrong, and a cold hand tugs at your soul.  Your last living sight is that of your flesh sloughing away like serpentskin, giving rise to something shambling and heinous. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Shapers can summon [[sidewinder]] cobras on occasion if given enough time. The sidewinders can be skinned.&lt;br /&gt;
&lt;br /&gt;
{{Nearlevel&lt;br /&gt;
|levelm2 = 100&lt;br /&gt;
|levelm1 = 101&lt;br /&gt;
|level = 102&lt;br /&gt;
|levelp1 = 103&lt;br /&gt;
|levelp2 = 104&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Sparkling_Ascent&amp;diff=265504</id>
		<title>Sparkling Ascent</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Sparkling_Ascent&amp;diff=265504"/>
		<updated>2026-09-22T18:21:29Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Details */ add link to gemstone quest guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questinfo&lt;br /&gt;
|quest=A Sparkling Ascent&lt;br /&gt;
|type=Permanent&lt;br /&gt;
|pageintro=It is available via the {{boldmono|QUEST}} verb.  Completion of this quest provides access to [[gemstones]] and additional quests.&lt;br /&gt;
}}&lt;br /&gt;
==Details==&lt;br /&gt;
A detailed player guide is available at [[Gemstone Quest Guide]] but be warned as there are many spoilers inside.&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[Category:Gemstones]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265503</id>
		<title>Empyrean Onslaughts</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265503"/>
		<updated>2026-09-22T18:18:44Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: added link to sparkling ascent quest&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questinfo&lt;br /&gt;
|quest = Empyrean Onslaughts&lt;br /&gt;
|type = Permanent&lt;br /&gt;
|prerequisite = [[Shadow&#039;s Descent]] is required for event credit&lt;br /&gt;
|pageintro = Use {{boldmono|[[Verb:GEM|GEM ONSLAUGHT]]}} to check whether an onslaught is currently active, where it&#039;s happening, and how much time remains. Onslaughts are timed invasion events that rotate across four [[:Category:Ascension Hunting Grounds|Ascension hunting zones]]: [[Hinterwilds]], [[Moonsedge]], [[The Hive]], and [[Sailor&#039;s Grief]]. When an onslaught is active, invasion portals appear in the targeted zone and transport you to the Empyrean fleet. Each onslaught runs for four hours before the fleet withdraws.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
In order to be eligible for event credit for the various Empyrean Onslaughts timed quests, you must first complete [[Shadow&#039;s Descent]], which is the introductory quest for Empyrean Onslaughts and requires prior completion of a [[Sparkling Ascent]]. See that article for detailed information on the quest. Completing Shadow&#039;s Descent unlocks [[Gemstone codex|Gemstone Codices]], the weekly/monthly repeatable quests, and the GEM ONSLAUGHT command.&lt;br /&gt;
&lt;br /&gt;
==Empyrean Airship Raids==&lt;br /&gt;
Slaying Empyrean during an active Onslaught has a chance to open a swirling portal into one of the Syndicate&#039;s airships. Fighting your way upward through the ship takes you through multi-deck combat encounters connected by mechanical lifts, with progressively increasing difficulty at higher decks. Airship raids support groups of up to five adventurers.&lt;br /&gt;
&lt;br /&gt;
==Repeatable Quests==&lt;br /&gt;
Four new repeatable quests offer ongoing Empyrean content, available in weekly and monthly variants. They involve hunting aboard Empyrean airships or defending the ground during an active Onslaught, and reward [[Gemstone codex|Gemstone Codices]], experience, and fame. Check QUEST LIST for availability after completing [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Geodes==&lt;br /&gt;
[[Gemstone geode|Gemstone Geodes]] are a collectible drop containing two [[Gemstones]] inside. Use GEM FIXATE to shift focus to finding Gemstone geodes at the expense of other kinds of loot. When found you can then choose which of the two gemstones inside the geode to extract.&lt;br /&gt;
&lt;br /&gt;
==GEM Commands==&lt;br /&gt;
*&#039;&#039;&#039;GEM FIXATE&#039;&#039;&#039; &amp;amp;ndash; Sacrifice a portion of your weekly silver generation potential in exchange for an increased chance of finding Gemstones and receiving them inside a Geode.&lt;br /&gt;
*&#039;&#039;&#039;GEM STATUS&#039;&#039;&#039; &amp;amp;ndash; Check whether you are currently eligible for Gemstone drops.&lt;br /&gt;
*&#039;&#039;&#039;GEM ONSLAUGHT&#039;&#039;&#039; &amp;amp;ndash; Sense the presence and location of any active Onslaught. Requires completion of [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Codices==&lt;br /&gt;
[[Gemstone codex|Gemstone Codices]] are one-time-use items that overwrite a property on one of your Gemstones with a new one, via the [[Gaunt masked artificer|masked Gemstone Artificer]].&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
===System Updates===&lt;br /&gt;
;Gem and Dust Rate Increase&lt;br /&gt;
Ascension Gemstones and Dust will now drop at an increased rate from Empyrean foes. Completion of Shadow&#039;s Descent is required to be eligible for this increased rate. The rate is further increased on Empyrean Airships, and is increased further on higher elevation Airships.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Empyrean Onslaughts/saved posts|Saved posts]]&lt;br /&gt;
*[[Announcement:Empyrean Onslaughts]]&lt;br /&gt;
*[https://discordapp.com/channels/226045346399256576/1505233733559521430 Discussion:Empyrean Onslaughts and Codices]&lt;br /&gt;
&lt;br /&gt;
[[Category:Permanent quests]]&lt;br /&gt;
[[Category:Gemstones]]&lt;br /&gt;
[[Category:Ascension Hunting Grounds]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265502</id>
		<title>Empyrean Onslaughts</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265502"/>
		<updated>2026-09-22T18:08:40Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Repeatable Quests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questinfo&lt;br /&gt;
|quest = Empyrean Onslaughts&lt;br /&gt;
|type = Permanent&lt;br /&gt;
|prerequisite = [[Shadow&#039;s Descent]] is required for event credit&lt;br /&gt;
|pageintro = Use {{boldmono|[[Verb:GEM|GEM ONSLAUGHT]]}} to check whether an onslaught is currently active, where it&#039;s happening, and how much time remains. Onslaughts are timed invasion events that rotate across four [[:Category:Ascension Hunting Grounds|Ascension hunting zones]]: [[Hinterwilds]], [[Moonsedge]], [[The Hive]], and [[Sailor&#039;s Grief]]. When an onslaught is active, invasion portals appear in the targeted zone and transport you to the Empyrean fleet. Each onslaught runs for four hours before the fleet withdraws.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
In order to be eligible for event credit for the various Empyrean Onslaughts timed quests, you must first complete [[Shadow&#039;s Descent]], which is the introductory quest for Empyrean Onslaughts and requires prior completion of &amp;quot;A Sparkling Ascent.&amp;quot; See that article for detailed information on the quest. Completing Shadow&#039;s Descent unlocks [[Gemstone codex|Gemstone Codices]], the weekly/monthly repeatable quests, and the GEM ONSLAUGHT command.&lt;br /&gt;
&lt;br /&gt;
==Empyrean Airship Raids==&lt;br /&gt;
Slaying Empyrean during an active Onslaught has a chance to open a swirling portal into one of the Syndicate&#039;s airships. Fighting your way upward through the ship takes you through multi-deck combat encounters connected by mechanical lifts, with progressively increasing difficulty at higher decks. Airship raids support groups of up to five adventurers.&lt;br /&gt;
&lt;br /&gt;
==Repeatable Quests==&lt;br /&gt;
Four new repeatable quests offer ongoing Empyrean content, available in weekly and monthly variants. They involve hunting aboard Empyrean airships or defending the ground during an active Onslaught, and reward [[Gemstone codex|Gemstone Codices]], experience, and fame. Check QUEST LIST for availability after completing [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Geodes==&lt;br /&gt;
[[Gemstone geode|Gemstone Geodes]] are a collectible drop containing two [[Gemstones]] inside. Use GEM FIXATE to shift focus to finding Gemstone geodes at the expense of other kinds of loot. When found you can then choose which of the two gemstones inside the geode to extract.&lt;br /&gt;
&lt;br /&gt;
==GEM Commands==&lt;br /&gt;
*&#039;&#039;&#039;GEM FIXATE&#039;&#039;&#039; &amp;amp;ndash; Sacrifice a portion of your weekly silver generation potential in exchange for an increased chance of finding Gemstones and receiving them inside a Geode.&lt;br /&gt;
*&#039;&#039;&#039;GEM STATUS&#039;&#039;&#039; &amp;amp;ndash; Check whether you are currently eligible for Gemstone drops.&lt;br /&gt;
*&#039;&#039;&#039;GEM ONSLAUGHT&#039;&#039;&#039; &amp;amp;ndash; Sense the presence and location of any active Onslaught. Requires completion of [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Codices==&lt;br /&gt;
[[Gemstone codex|Gemstone Codices]] are one-time-use items that overwrite a property on one of your Gemstones with a new one, via the [[Gaunt masked artificer|masked Gemstone Artificer]].&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
===System Updates===&lt;br /&gt;
;Gem and Dust Rate Increase&lt;br /&gt;
Ascension Gemstones and Dust will now drop at an increased rate from Empyrean foes. Completion of Shadow&#039;s Descent is required to be eligible for this increased rate. The rate is further increased on Empyrean Airships, and is increased further on higher elevation Airships.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Empyrean Onslaughts/saved posts|Saved posts]]&lt;br /&gt;
*[[Announcement:Empyrean Onslaughts]]&lt;br /&gt;
*[https://discordapp.com/channels/226045346399256576/1505233733559521430 Discussion:Empyrean Onslaughts and Codices]&lt;br /&gt;
&lt;br /&gt;
[[Category:Permanent quests]]&lt;br /&gt;
[[Category:Gemstones]]&lt;br /&gt;
[[Category:Ascension Hunting Grounds]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265501</id>
		<title>Empyrean Onslaughts</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265501"/>
		<updated>2026-09-22T18:06:25Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Gemstone Geodes */ minor wording change for clarity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questinfo&lt;br /&gt;
|quest = Empyrean Onslaughts&lt;br /&gt;
|type = Permanent&lt;br /&gt;
|prerequisite = [[Shadow&#039;s Descent]] is required for event credit&lt;br /&gt;
|pageintro = Use {{boldmono|[[Verb:GEM|GEM ONSLAUGHT]]}} to check whether an onslaught is currently active, where it&#039;s happening, and how much time remains. Onslaughts are timed invasion events that rotate across four [[:Category:Ascension Hunting Grounds|Ascension hunting zones]]: [[Hinterwilds]], [[Moonsedge]], [[The Hive]], and [[Sailor&#039;s Grief]]. When an onslaught is active, invasion portals appear in the targeted zone and transport you to the Empyrean fleet. Each onslaught runs for four hours before the fleet withdraws.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
In order to be eligible for event credit for the various Empyrean Onslaughts timed quests, you must first complete [[Shadow&#039;s Descent]], which is the introductory quest for Empyrean Onslaughts and requires prior completion of &amp;quot;A Sparkling Ascent.&amp;quot; See that article for detailed information on the quest. Completing Shadow&#039;s Descent unlocks [[Gemstone codex|Gemstone Codices]], the weekly/monthly repeatable quests, and the GEM ONSLAUGHT command.&lt;br /&gt;
&lt;br /&gt;
==Empyrean Airship Raids==&lt;br /&gt;
Slaying Empyrean during an active Onslaught has a chance to open a swirling portal into one of the Syndicate&#039;s airships. Fighting your way upward through the ship takes you through multi-deck combat encounters connected by mechanical lifts, with progressively increasing difficulty at higher decks. Airship raids support groups of up to five adventurers.&lt;br /&gt;
&lt;br /&gt;
==Repeatable Quests==&lt;br /&gt;
Four new repeatable [[Verb:QUEST|quests]] offer ongoing Empyrean content, available in weekly and monthly variants. They involve hunting aboard Empyrean airships or defending the ground during an active Onslaught, and reward [[Gemstone codex|Gemstone Codices]], experience, and fame. Check QUEST LIST for availability after completing [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Geodes==&lt;br /&gt;
[[Gemstone geode|Gemstone Geodes]] are a collectible drop containing two [[Gemstones]] inside. Use GEM FIXATE to shift focus to finding Gemstone geodes at the expense of other kinds of loot. When found you can then choose which of the two gemstones inside the geode to extract.&lt;br /&gt;
&lt;br /&gt;
==GEM Commands==&lt;br /&gt;
*&#039;&#039;&#039;GEM FIXATE&#039;&#039;&#039; &amp;amp;ndash; Sacrifice a portion of your weekly silver generation potential in exchange for an increased chance of finding Gemstones and receiving them inside a Geode.&lt;br /&gt;
*&#039;&#039;&#039;GEM STATUS&#039;&#039;&#039; &amp;amp;ndash; Check whether you are currently eligible for Gemstone drops.&lt;br /&gt;
*&#039;&#039;&#039;GEM ONSLAUGHT&#039;&#039;&#039; &amp;amp;ndash; Sense the presence and location of any active Onslaught. Requires completion of [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Codices==&lt;br /&gt;
[[Gemstone codex|Gemstone Codices]] are one-time-use items that overwrite a property on one of your Gemstones with a new one, via the [[Gaunt masked artificer|masked Gemstone Artificer]].&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
===System Updates===&lt;br /&gt;
;Gem and Dust Rate Increase&lt;br /&gt;
Ascension Gemstones and Dust will now drop at an increased rate from Empyrean foes. Completion of Shadow&#039;s Descent is required to be eligible for this increased rate. The rate is further increased on Empyrean Airships, and is increased further on higher elevation Airships.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Empyrean Onslaughts/saved posts|Saved posts]]&lt;br /&gt;
*[[Announcement:Empyrean Onslaughts]]&lt;br /&gt;
*[https://discordapp.com/channels/226045346399256576/1505233733559521430 Discussion:Empyrean Onslaughts and Codices]&lt;br /&gt;
&lt;br /&gt;
[[Category:Permanent quests]]&lt;br /&gt;
[[Category:Gemstones]]&lt;br /&gt;
[[Category:Ascension Hunting Grounds]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265500</id>
		<title>Empyrean Onslaughts</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265500"/>
		<updated>2026-09-22T18:03:32Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Empyrean Airship Raids */ correct group size to 5 from 6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questinfo&lt;br /&gt;
|quest = Empyrean Onslaughts&lt;br /&gt;
|type = Permanent&lt;br /&gt;
|prerequisite = [[Shadow&#039;s Descent]] is required for event credit&lt;br /&gt;
|pageintro = Use {{boldmono|[[Verb:GEM|GEM ONSLAUGHT]]}} to check whether an onslaught is currently active, where it&#039;s happening, and how much time remains. Onslaughts are timed invasion events that rotate across four [[:Category:Ascension Hunting Grounds|Ascension hunting zones]]: [[Hinterwilds]], [[Moonsedge]], [[The Hive]], and [[Sailor&#039;s Grief]]. When an onslaught is active, invasion portals appear in the targeted zone and transport you to the Empyrean fleet. Each onslaught runs for four hours before the fleet withdraws.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
In order to be eligible for event credit for the various Empyrean Onslaughts timed quests, you must first complete [[Shadow&#039;s Descent]], which is the introductory quest for Empyrean Onslaughts and requires prior completion of &amp;quot;A Sparkling Ascent.&amp;quot; See that article for detailed information on the quest. Completing Shadow&#039;s Descent unlocks [[Gemstone codex|Gemstone Codices]], the weekly/monthly repeatable quests, and the GEM ONSLAUGHT command.&lt;br /&gt;
&lt;br /&gt;
==Empyrean Airship Raids==&lt;br /&gt;
Slaying Empyrean during an active Onslaught has a chance to open a swirling portal into one of the Syndicate&#039;s airships. Fighting your way upward through the ship takes you through multi-deck combat encounters connected by mechanical lifts, with progressively increasing difficulty at higher decks. Airship raids support groups of up to five adventurers.&lt;br /&gt;
&lt;br /&gt;
==Repeatable Quests==&lt;br /&gt;
Four new repeatable [[Verb:QUEST|quests]] offer ongoing Empyrean content, available in weekly and monthly variants. They involve hunting aboard Empyrean airships or defending the ground during an active Onslaught, and reward [[Gemstone codex|Gemstone Codices]], experience, and fame. Check QUEST LIST for availability after completing [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Geodes==&lt;br /&gt;
[[Gemstone geode|Gemstone Geodes]] are a collectible drop containing two [[Gemstones]]. Use GEM FIXATE to shift focus between the two housed Gemstones, then break the geode to extract the one you want.&lt;br /&gt;
&lt;br /&gt;
==GEM Commands==&lt;br /&gt;
*&#039;&#039;&#039;GEM FIXATE&#039;&#039;&#039; &amp;amp;ndash; Sacrifice a portion of your weekly silver generation potential in exchange for an increased chance of finding Gemstones and receiving them inside a Geode.&lt;br /&gt;
*&#039;&#039;&#039;GEM STATUS&#039;&#039;&#039; &amp;amp;ndash; Check whether you are currently eligible for Gemstone drops.&lt;br /&gt;
*&#039;&#039;&#039;GEM ONSLAUGHT&#039;&#039;&#039; &amp;amp;ndash; Sense the presence and location of any active Onslaught. Requires completion of [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Codices==&lt;br /&gt;
[[Gemstone codex|Gemstone Codices]] are one-time-use items that overwrite a property on one of your Gemstones with a new one, via the [[Gaunt masked artificer|masked Gemstone Artificer]].&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
===System Updates===&lt;br /&gt;
;Gem and Dust Rate Increase&lt;br /&gt;
Ascension Gemstones and Dust will now drop at an increased rate from Empyrean foes. Completion of Shadow&#039;s Descent is required to be eligible for this increased rate. The rate is further increased on Empyrean Airships, and is increased further on higher elevation Airships.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Empyrean Onslaughts/saved posts|Saved posts]]&lt;br /&gt;
*[[Announcement:Empyrean Onslaughts]]&lt;br /&gt;
*[https://discordapp.com/channels/226045346399256576/1505233733559521430 Discussion:Empyrean Onslaughts and Codices]&lt;br /&gt;
&lt;br /&gt;
[[Category:Permanent quests]]&lt;br /&gt;
[[Category:Gemstones]]&lt;br /&gt;
[[Category:Ascension Hunting Grounds]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265499</id>
		<title>Empyrean Onslaughts</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265499"/>
		<updated>2026-09-22T18:02:55Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: add bold to GEM ONSLAUGHT in intro paragraph&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questinfo&lt;br /&gt;
|quest = Empyrean Onslaughts&lt;br /&gt;
|type = Permanent&lt;br /&gt;
|prerequisite = [[Shadow&#039;s Descent]] is required for event credit&lt;br /&gt;
|pageintro = Use {{boldmono|[[Verb:GEM|GEM ONSLAUGHT]]}} to check whether an onslaught is currently active, where it&#039;s happening, and how much time remains. Onslaughts are timed invasion events that rotate across four [[:Category:Ascension Hunting Grounds|Ascension hunting zones]]: [[Hinterwilds]], [[Moonsedge]], [[The Hive]], and [[Sailor&#039;s Grief]]. When an onslaught is active, invasion portals appear in the targeted zone and transport you to the Empyrean fleet. Each onslaught runs for four hours before the fleet withdraws.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
In order to be eligible for event credit for the various Empyrean Onslaughts timed quests, you must first complete [[Shadow&#039;s Descent]], which is the introductory quest for Empyrean Onslaughts and requires prior completion of &amp;quot;A Sparkling Ascent.&amp;quot; See that article for detailed information on the quest. Completing Shadow&#039;s Descent unlocks [[Gemstone codex|Gemstone Codices]], the weekly/monthly repeatable quests, and the GEM ONSLAUGHT command.&lt;br /&gt;
&lt;br /&gt;
==Empyrean Airship Raids==&lt;br /&gt;
Slaying Empyrean during an active Onslaught has a chance to open a swirling portal into one of the Syndicate&#039;s airships. Fighting your way upward through the ship takes you through multi-deck combat encounters connected by mechanical lifts, with progressively increasing difficulty at higher decks. Airship raids support groups of up to six adventurers.&lt;br /&gt;
&lt;br /&gt;
==Repeatable Quests==&lt;br /&gt;
Four new repeatable [[Verb:QUEST|quests]] offer ongoing Empyrean content, available in weekly and monthly variants. They involve hunting aboard Empyrean airships or defending the ground during an active Onslaught, and reward [[Gemstone codex|Gemstone Codices]], experience, and fame. Check QUEST LIST for availability after completing [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Geodes==&lt;br /&gt;
[[Gemstone geode|Gemstone Geodes]] are a collectible drop containing two [[Gemstones]]. Use GEM FIXATE to shift focus between the two housed Gemstones, then break the geode to extract the one you want.&lt;br /&gt;
&lt;br /&gt;
==GEM Commands==&lt;br /&gt;
*&#039;&#039;&#039;GEM FIXATE&#039;&#039;&#039; &amp;amp;ndash; Sacrifice a portion of your weekly silver generation potential in exchange for an increased chance of finding Gemstones and receiving them inside a Geode.&lt;br /&gt;
*&#039;&#039;&#039;GEM STATUS&#039;&#039;&#039; &amp;amp;ndash; Check whether you are currently eligible for Gemstone drops.&lt;br /&gt;
*&#039;&#039;&#039;GEM ONSLAUGHT&#039;&#039;&#039; &amp;amp;ndash; Sense the presence and location of any active Onslaught. Requires completion of [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Codices==&lt;br /&gt;
[[Gemstone codex|Gemstone Codices]] are one-time-use items that overwrite a property on one of your Gemstones with a new one, via the [[Gaunt masked artificer|masked Gemstone Artificer]].&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
===System Updates===&lt;br /&gt;
;Gem and Dust Rate Increase&lt;br /&gt;
Ascension Gemstones and Dust will now drop at an increased rate from Empyrean foes. Completion of Shadow&#039;s Descent is required to be eligible for this increased rate. The rate is further increased on Empyrean Airships, and is increased further on higher elevation Airships.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Empyrean Onslaughts/saved posts|Saved posts]]&lt;br /&gt;
*[[Announcement:Empyrean Onslaughts]]&lt;br /&gt;
*[https://discordapp.com/channels/226045346399256576/1505233733559521430 Discussion:Empyrean Onslaughts and Codices]&lt;br /&gt;
&lt;br /&gt;
[[Category:Permanent quests]]&lt;br /&gt;
[[Category:Gemstones]]&lt;br /&gt;
[[Category:Ascension Hunting Grounds]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265498</id>
		<title>Empyrean Onslaughts</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265498"/>
		<updated>2026-09-22T18:01:32Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: add additional categories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questinfo&lt;br /&gt;
|quest = Empyrean Onslaughts&lt;br /&gt;
|type = Permanent&lt;br /&gt;
|prerequisite = [[Shadow&#039;s Descent]] is required for event credit&lt;br /&gt;
|pageintro = Use [[Verb:GEM|GEM ONSLAUGHT]] to check whether an onslaught is currently active, where it&#039;s happening, and how much time remains. Onslaughts are timed invasion events that rotate across four [[:Category:Ascension Hunting Grounds|Ascension hunting zones]]: [[Hinterwilds]], [[Moonsedge]], [[The Hive]], and [[Sailor&#039;s Grief]]. When an onslaught is active, invasion portals appear in the targeted zone and transport you to the Empyrean fleet. Each onslaught runs for four hours before the fleet withdraws.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
In order to be eligible for event credit for the various Empyrean Onslaughts timed quests, you must first complete [[Shadow&#039;s Descent]], which is the introductory quest for Empyrean Onslaughts and requires prior completion of &amp;quot;A Sparkling Ascent.&amp;quot; See that article for detailed information on the quest. Completing Shadow&#039;s Descent unlocks [[Gemstone codex|Gemstone Codices]], the weekly/monthly repeatable quests, and the GEM ONSLAUGHT command.&lt;br /&gt;
&lt;br /&gt;
==Empyrean Airship Raids==&lt;br /&gt;
Slaying Empyrean during an active Onslaught has a chance to open a swirling portal into one of the Syndicate&#039;s airships. Fighting your way upward through the ship takes you through multi-deck combat encounters connected by mechanical lifts, with progressively increasing difficulty at higher decks. Airship raids support groups of up to six adventurers.&lt;br /&gt;
&lt;br /&gt;
==Repeatable Quests==&lt;br /&gt;
Four new repeatable [[Verb:QUEST|quests]] offer ongoing Empyrean content, available in weekly and monthly variants. They involve hunting aboard Empyrean airships or defending the ground during an active Onslaught, and reward [[Gemstone codex|Gemstone Codices]], experience, and fame. Check QUEST LIST for availability after completing [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Geodes==&lt;br /&gt;
[[Gemstone geode|Gemstone Geodes]] are a collectible drop containing two [[Gemstones]]. Use GEM FIXATE to shift focus between the two housed Gemstones, then break the geode to extract the one you want.&lt;br /&gt;
&lt;br /&gt;
==GEM Commands==&lt;br /&gt;
*&#039;&#039;&#039;GEM FIXATE&#039;&#039;&#039; &amp;amp;ndash; Sacrifice a portion of your weekly silver generation potential in exchange for an increased chance of finding Gemstones and receiving them inside a Geode.&lt;br /&gt;
*&#039;&#039;&#039;GEM STATUS&#039;&#039;&#039; &amp;amp;ndash; Check whether you are currently eligible for Gemstone drops.&lt;br /&gt;
*&#039;&#039;&#039;GEM ONSLAUGHT&#039;&#039;&#039; &amp;amp;ndash; Sense the presence and location of any active Onslaught. Requires completion of [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Codices==&lt;br /&gt;
[[Gemstone codex|Gemstone Codices]] are one-time-use items that overwrite a property on one of your Gemstones with a new one, via the [[Gaunt masked artificer|masked Gemstone Artificer]].&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
===System Updates===&lt;br /&gt;
;Gem and Dust Rate Increase&lt;br /&gt;
Ascension Gemstones and Dust will now drop at an increased rate from Empyrean foes. Completion of Shadow&#039;s Descent is required to be eligible for this increased rate. The rate is further increased on Empyrean Airships, and is increased further on higher elevation Airships.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Empyrean Onslaughts/saved posts|Saved posts]]&lt;br /&gt;
*[[Announcement:Empyrean Onslaughts]]&lt;br /&gt;
*[https://discordapp.com/channels/226045346399256576/1505233733559521430 Discussion:Empyrean Onslaughts and Codices]&lt;br /&gt;
&lt;br /&gt;
[[Category:Permanent quests]]&lt;br /&gt;
[[Category:Gemstones]]&lt;br /&gt;
[[Category:Ascension Hunting Grounds]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265497</id>
		<title>Empyrean Onslaughts</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265497"/>
		<updated>2026-09-22T18:00:28Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: remove redundant line&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questinfo&lt;br /&gt;
|quest = Empyrean Onslaughts&lt;br /&gt;
|type = Permanent&lt;br /&gt;
|prerequisite = [[Shadow&#039;s Descent]] is required for event credit&lt;br /&gt;
|pageintro = Use [[Verb:GEM|GEM ONSLAUGHT]] to check whether an onslaught is currently active, where it&#039;s happening, and how much time remains. Onslaughts are timed invasion events that rotate across four [[:Category:Ascension Hunting Grounds|Ascension hunting zones]]: [[Hinterwilds]], [[Moonsedge]], [[The Hive]], and [[Sailor&#039;s Grief]]. When an onslaught is active, invasion portals appear in the targeted zone and transport you to the Empyrean fleet. Each onslaught runs for four hours before the fleet withdraws.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
In order to be eligible for event credit for the various Empyrean Onslaughts timed quests, you must first complete [[Shadow&#039;s Descent]], which is the introductory quest for Empyrean Onslaughts and requires prior completion of &amp;quot;A Sparkling Ascent.&amp;quot; See that article for detailed information on the quest. Completing Shadow&#039;s Descent unlocks [[Gemstone codex|Gemstone Codices]], the weekly/monthly repeatable quests, and the GEM ONSLAUGHT command.&lt;br /&gt;
&lt;br /&gt;
==Empyrean Airship Raids==&lt;br /&gt;
Slaying Empyrean during an active Onslaught has a chance to open a swirling portal into one of the Syndicate&#039;s airships. Fighting your way upward through the ship takes you through multi-deck combat encounters connected by mechanical lifts, with progressively increasing difficulty at higher decks. Airship raids support groups of up to six adventurers.&lt;br /&gt;
&lt;br /&gt;
==Repeatable Quests==&lt;br /&gt;
Four new repeatable [[Verb:QUEST|quests]] offer ongoing Empyrean content, available in weekly and monthly variants. They involve hunting aboard Empyrean airships or defending the ground during an active Onslaught, and reward [[Gemstone codex|Gemstone Codices]], experience, and fame. Check QUEST LIST for availability after completing [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Geodes==&lt;br /&gt;
[[Gemstone geode|Gemstone Geodes]] are a collectible drop containing two [[Gemstones]]. Use GEM FIXATE to shift focus between the two housed Gemstones, then break the geode to extract the one you want.&lt;br /&gt;
&lt;br /&gt;
==GEM Commands==&lt;br /&gt;
*&#039;&#039;&#039;GEM FIXATE&#039;&#039;&#039; &amp;amp;ndash; Sacrifice a portion of your weekly silver generation potential in exchange for an increased chance of finding Gemstones and receiving them inside a Geode.&lt;br /&gt;
*&#039;&#039;&#039;GEM STATUS&#039;&#039;&#039; &amp;amp;ndash; Check whether you are currently eligible for Gemstone drops.&lt;br /&gt;
*&#039;&#039;&#039;GEM ONSLAUGHT&#039;&#039;&#039; &amp;amp;ndash; Sense the presence and location of any active Onslaught. Requires completion of [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Codices==&lt;br /&gt;
[[Gemstone codex|Gemstone Codices]] are one-time-use items that overwrite a property on one of your Gemstones with a new one, via the [[Gaunt masked artificer|masked Gemstone Artificer]].&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
===System Updates===&lt;br /&gt;
;Gem and Dust Rate Increase&lt;br /&gt;
Ascension Gemstones and Dust will now drop at an increased rate from Empyrean foes. Completion of Shadow&#039;s Descent is required to be eligible for this increased rate. The rate is further increased on Empyrean Airships, and is increased further on higher elevation Airships.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Empyrean Onslaughts/saved posts|Saved posts]]&lt;br /&gt;
*[[Announcement:Empyrean Onslaughts]]&lt;br /&gt;
*[https://discordapp.com/channels/226045346399256576/1505233733559521430 Discussion:Empyrean Onslaughts and Codices]&lt;br /&gt;
&lt;br /&gt;
[[Category:Permanent quests]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265496</id>
		<title>Empyrean Onslaughts</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265496"/>
		<updated>2026-09-22T17:59:54Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: minor layout template corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questinfo&lt;br /&gt;
|quest = Empyrean Onslaughts&lt;br /&gt;
|type = Permanent&lt;br /&gt;
|prerequisite = [[Shadow&#039;s Descent]] is required for event credit&lt;br /&gt;
|pageintro = &#039;&#039;&#039;Empyrean Onslaughts&#039;&#039;&#039; is a [[Permanent quest|permanent quest]], which is always available as long as its prerequisites are met.&lt;br /&gt;
Use [[Verb:GEM|GEM ONSLAUGHT]] to check whether an onslaught is currently active, where it&#039;s happening, and how much time remains. Onslaughts are timed invasion events that rotate across four [[:Category:Ascension Hunting Grounds|Ascension hunting zones]]: [[Hinterwilds]], [[Moonsedge]], [[The Hive]], and [[Sailor&#039;s Grief]]. When an onslaught is active, invasion portals appear in the targeted zone and transport you to the Empyrean fleet. Each onslaught runs for four hours before the fleet withdraws.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
In order to be eligible for event credit for the various Empyrean Onslaughts timed quests, you must first complete [[Shadow&#039;s Descent]], which is the introductory quest for Empyrean Onslaughts and requires prior completion of &amp;quot;A Sparkling Ascent.&amp;quot; See that article for detailed information on the quest. Completing Shadow&#039;s Descent unlocks [[Gemstone codex|Gemstone Codices]], the weekly/monthly repeatable quests, and the GEM ONSLAUGHT command.&lt;br /&gt;
&lt;br /&gt;
==Empyrean Airship Raids==&lt;br /&gt;
Slaying Empyrean during an active Onslaught has a chance to open a swirling portal into one of the Syndicate&#039;s airships. Fighting your way upward through the ship takes you through multi-deck combat encounters connected by mechanical lifts, with progressively increasing difficulty at higher decks. Airship raids support groups of up to six adventurers.&lt;br /&gt;
&lt;br /&gt;
==Repeatable Quests==&lt;br /&gt;
Four new repeatable [[Verb:QUEST|quests]] offer ongoing Empyrean content, available in weekly and monthly variants. They involve hunting aboard Empyrean airships or defending the ground during an active Onslaught, and reward [[Gemstone codex|Gemstone Codices]], experience, and fame. Check QUEST LIST for availability after completing [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Geodes==&lt;br /&gt;
[[Gemstone geode|Gemstone Geodes]] are a collectible drop containing two [[Gemstones]]. Use GEM FIXATE to shift focus between the two housed Gemstones, then break the geode to extract the one you want.&lt;br /&gt;
&lt;br /&gt;
==GEM Commands==&lt;br /&gt;
*&#039;&#039;&#039;GEM FIXATE&#039;&#039;&#039; &amp;amp;ndash; Sacrifice a portion of your weekly silver generation potential in exchange for an increased chance of finding Gemstones and receiving them inside a Geode.&lt;br /&gt;
*&#039;&#039;&#039;GEM STATUS&#039;&#039;&#039; &amp;amp;ndash; Check whether you are currently eligible for Gemstone drops.&lt;br /&gt;
*&#039;&#039;&#039;GEM ONSLAUGHT&#039;&#039;&#039; &amp;amp;ndash; Sense the presence and location of any active Onslaught. Requires completion of [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Codices==&lt;br /&gt;
[[Gemstone codex|Gemstone Codices]] are one-time-use items that overwrite a property on one of your Gemstones with a new one, via the [[Gaunt masked artificer|masked Gemstone Artificer]].&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
===System Updates===&lt;br /&gt;
;Gem and Dust Rate Increase&lt;br /&gt;
Ascension Gemstones and Dust will now drop at an increased rate from Empyrean foes. Completion of Shadow&#039;s Descent is required to be eligible for this increased rate. The rate is further increased on Empyrean Airships, and is increased further on higher elevation Airships.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Empyrean Onslaughts/saved posts|Saved posts]]&lt;br /&gt;
*[[Announcement:Empyrean Onslaughts]]&lt;br /&gt;
*[https://discordapp.com/channels/226045346399256576/1505233733559521430 Discussion:Empyrean Onslaughts and Codices]&lt;br /&gt;
&lt;br /&gt;
[[Category:Permanent quests]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265495</id>
		<title>Empyrean Onslaughts</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Empyrean_Onslaughts&amp;diff=265495"/>
		<updated>2026-09-22T17:58:07Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: Add additional info from the Announcement article that was missing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|title = Empyrean Onslaughts&lt;br /&gt;
|Type = Permanent&lt;br /&gt;
|Prerequisites = [[Shadow&#039;s Descent]] is required for event credit&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Empyrean Onslaughts&#039;&#039;&#039; is a [[Permanent quest|permanent quest]], which is always available as long as its prerequisites are met.&lt;br /&gt;
Use [[Verb:GEM|GEM ONSLAUGHT]] to check whether an onslaught is currently active, where it&#039;s happening, and how much time remains. Onslaughts are timed invasion events that rotate across four [[:Category:Ascension Hunting Grounds|Ascension hunting zones]]: [[Hinterwilds]], [[Moonsedge]], [[The Hive]], and [[Sailor&#039;s Grief]]. When an onslaught is active, invasion portals appear in the targeted zone and transport you to the Empyrean fleet. Each onslaught runs for four hours before the fleet withdraws.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
In order to be eligible for event credit for the various Empyrean Onslaughts timed quests, you must first complete [[Shadow&#039;s Descent]], which is the introductory quest for Empyrean Onslaughts and requires prior completion of &amp;quot;A Sparkling Ascent.&amp;quot; See that article for detailed information on the quest. Completing Shadow&#039;s Descent unlocks [[Gemstone codex|Gemstone Codices]], the weekly/monthly repeatable quests, and the GEM ONSLAUGHT command.&lt;br /&gt;
&lt;br /&gt;
==Empyrean Airship Raids==&lt;br /&gt;
Slaying Empyrean during an active Onslaught has a chance to open a swirling portal into one of the Syndicate&#039;s airships. Fighting your way upward through the ship takes you through multi-deck combat encounters connected by mechanical lifts, with progressively increasing difficulty at higher decks. Airship raids support groups of up to six adventurers.&lt;br /&gt;
&lt;br /&gt;
==Repeatable Quests==&lt;br /&gt;
Four new repeatable [[Verb:QUEST|quests]] offer ongoing Empyrean content, available in weekly and monthly variants. They involve hunting aboard Empyrean airships or defending the ground during an active Onslaught, and reward [[Gemstone codex|Gemstone Codices]], experience, and fame. Check QUEST LIST for availability after completing [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Geodes==&lt;br /&gt;
[[Gemstone geode|Gemstone Geodes]] are a collectible drop containing two [[Gemstones]]. Use GEM FIXATE to shift focus between the two housed Gemstones, then break the geode to extract the one you want.&lt;br /&gt;
&lt;br /&gt;
==GEM Commands==&lt;br /&gt;
*&#039;&#039;&#039;GEM FIXATE&#039;&#039;&#039; &amp;amp;ndash; Sacrifice a portion of your weekly silver generation potential in exchange for an increased chance of finding Gemstones and receiving them inside a Geode.&lt;br /&gt;
*&#039;&#039;&#039;GEM STATUS&#039;&#039;&#039; &amp;amp;ndash; Check whether you are currently eligible for Gemstone drops.&lt;br /&gt;
*&#039;&#039;&#039;GEM ONSLAUGHT&#039;&#039;&#039; &amp;amp;ndash; Sense the presence and location of any active Onslaught. Requires completion of [[Shadow&#039;s Descent]].&lt;br /&gt;
&lt;br /&gt;
==Gemstone Codices==&lt;br /&gt;
[[Gemstone codex|Gemstone Codices]] are one-time-use items that overwrite a property on one of your Gemstones with a new one, via the [[Gaunt masked artificer|masked Gemstone Artificer]].&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
===System Updates===&lt;br /&gt;
;Gem and Dust Rate Increase&lt;br /&gt;
Ascension Gemstones and Dust will now drop at an increased rate from Empyrean foes. Completion of Shadow&#039;s Descent is required to be eligible for this increased rate. The rate is further increased on Empyrean Airships, and is increased further on higher elevation Airships.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Empyrean Onslaughts/saved posts|Saved posts]]&lt;br /&gt;
*[[Announcement:Empyrean Onslaughts]]&lt;br /&gt;
*[https://discordapp.com/channels/226045346399256576/1505233733559521430 Discussion:Empyrean Onslaughts and Codices]&lt;br /&gt;
&lt;br /&gt;
[[Category:Permanent quests]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Ebounty&amp;diff=265248</id>
		<title>Lich:Script Ebounty</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Ebounty&amp;diff=265248"/>
		<updated>2026-09-16T23:32:29Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: add Third-Party Software category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
{{TOCright| limit=2}}&lt;br /&gt;
EBounty is a management script for automating [[Adventurer&#039;s Guild]] bounty tasks. It handles the full lifecycle of obtaining, executing, and turning in bounties.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; AFK scripting on any server other than Shattered is a violation of game policy.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This page documents EBounty &#039;&#039;&#039;v1.12.3&#039;&#039;&#039;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
EBounty automates the Adventurer&#039;s Guild bounty workflow:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
1. Request a bounty from the Adventurer&#039;s Guild.&lt;br /&gt;
2. If the bounty type is acceptable (based on your settings), execute the task.&lt;br /&gt;
3. If no acceptable bounty is available, run a Bigshot hunting routine using your default profile.&lt;br /&gt;
4. Once the bounty is complete, turn it in (if not saturated on experience).&lt;br /&gt;
5. When the bounty cooldown expires, request a new task.&lt;br /&gt;
6. Repeat.&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EBounty relies on [[Bigshot]] for all combat-related operations. &#039;&#039;&#039;You must configure your Bigshot profiles before setting up EBounty.&#039;&#039;&#039; It also uses companion scripts for specific task types: &amp;lt;CODE&amp;gt;;echild&amp;lt;/CODE&amp;gt; for rescue tasks, &amp;lt;CODE&amp;gt;;escortgo2&amp;lt;/CODE&amp;gt; for escort tasks, &amp;lt;CODE&amp;gt;;eherbs&amp;lt;/CODE&amp;gt; for healing, and &amp;lt;CODE&amp;gt;;eloot&amp;lt;/CODE&amp;gt; for selling loot. Each of these can be overridden with a custom script of your choice.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Download EBounty from the script repository:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;repo download ebounty&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since EBounty is actively developed and game changes can affect its functionality, it is strongly recommended to enable auto-updates:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;repo set-updatable ebounty&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Lich Version Requirement===&lt;br /&gt;
EBounty requires &#039;&#039;&#039;Lich 5.19.0 or newer&#039;&#039;&#039;. The script checks your Lich version on startup and refuses to run (with an update notice) on anything older. Newer releases occasionally raise this floor, so keep Lich current alongside the script.&lt;br /&gt;
&lt;br /&gt;
===Required Dependencies===&lt;br /&gt;
EBounty will check for and notify you of any missing dependencies when it starts. The following scripts are needed based on your configuration:&lt;br /&gt;
* &#039;&#039;&#039;bigshot&#039;&#039;&#039; — Always required (unless using &amp;quot;Just the Basics&amp;quot; mode)&lt;br /&gt;
* &#039;&#039;&#039;eherbs&#039;&#039;&#039; — Required for healing unless you specify a custom healing script or enable &amp;quot;Skip healing&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;eloot&#039;&#039;&#039; — Required for selling unless you specify a custom selling script&lt;br /&gt;
* &#039;&#039;&#039;echild&#039;&#039;&#039; — Required if you enable Rescue bounties (unless you specify a custom rescue script)&lt;br /&gt;
* &#039;&#039;&#039;escortgo2&#039;&#039;&#039; — Required if you enable Escort bounties (unless you specify a custom escort script)&lt;br /&gt;
&lt;br /&gt;
The dependency check is skipped entirely when &amp;quot;Just the basics&amp;quot; is enabled (either as a saved setting or via &amp;lt;CODE&amp;gt;;ebounty basic&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
Open the configuration window with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;ebounty setup&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This opens a GUI with eight tabs: &#039;&#039;&#039;General&#039;&#039;&#039;, &#039;&#039;&#039;Resting&#039;&#039;&#039;, &#039;&#039;&#039;Foraging&#039;&#039;&#039;, &#039;&#039;&#039;Heirloom&#039;&#039;&#039;, &#039;&#039;&#039;Bandits&#039;&#039;&#039;, &#039;&#039;&#039;Escort&#039;&#039;&#039;, &#039;&#039;&#039;Exclusions&#039;&#039;&#039;, and &#039;&#039;&#039;Profiles&#039;&#039;&#039;. All changes in the GUI are saved automatically.&lt;br /&gt;
&lt;br /&gt;
At minimum, you need to:&lt;br /&gt;
# Enable the bounty types you want on the &#039;&#039;&#039;General&#039;&#039;&#039; tab.&lt;br /&gt;
# Select a &#039;&#039;&#039;Gem/Default&#039;&#039;&#039; profile on the &#039;&#039;&#039;Profiles&#039;&#039;&#039; tab (this is the Bigshot profile used between bounties).&lt;br /&gt;
# Add creature names and associate Bigshot profiles on the &#039;&#039;&#039;Profiles&#039;&#039;&#039; tab for any creatures you expect to hunt.&lt;br /&gt;
&lt;br /&gt;
Once configured, start EBounty by simply running:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;ebounty&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; EBounty must be started from a mapped room.&lt;br /&gt;
&lt;br /&gt;
Every option in the GUI also has a setting name that can be changed from the command line — see [[#Command Line Interface (CLI)|Command Line Interface]] below.&lt;br /&gt;
&lt;br /&gt;
==General Tab==&lt;br /&gt;
The General tab controls which bounty types you accept, core behavior options, support scripts, and task limits.&lt;br /&gt;
&lt;br /&gt;
===Bounty Types===&lt;br /&gt;
Enable or disable each bounty type using the checkboxes. When a bounty type is unchecked, EBounty will automatically ask the Guild to remove that type if received. Available types:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bounty Type !! CLI value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Boss Creature || &amp;lt;CODE&amp;gt;boss_culling&amp;lt;/CODE&amp;gt; || Hunt a dangerous (boss-level) creature&lt;br /&gt;
|-&lt;br /&gt;
| Culling || &amp;lt;CODE&amp;gt;culling&amp;lt;/CODE&amp;gt; || Kill a specified number of a particular creature&lt;br /&gt;
|-&lt;br /&gt;
| Escort || &amp;lt;CODE&amp;gt;escort&amp;lt;/CODE&amp;gt; || Escort an NPC between two towns (uses &amp;lt;CODE&amp;gt;;escortgo2&amp;lt;/CODE&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Foraging || &amp;lt;CODE&amp;gt;foraging&amp;lt;/CODE&amp;gt; || Gather herbs from the wild (see the Foraging tab for options)&lt;br /&gt;
|-&lt;br /&gt;
| Gem Collecting || &amp;lt;CODE&amp;gt;gem_collecting&amp;lt;/CODE&amp;gt; || Collect specific gems by hunting creatures&lt;br /&gt;
|-&lt;br /&gt;
| Heirloom (loot) || &amp;lt;CODE&amp;gt;heirloom_loot&amp;lt;/CODE&amp;gt; || Recover an heirloom by looting a creature&lt;br /&gt;
|-&lt;br /&gt;
| Heirloom (search) || &amp;lt;CODE&amp;gt;heirloom_search&amp;lt;/CODE&amp;gt; || Recover an heirloom by searching rooms (see the Heirloom tab for options)&lt;br /&gt;
|-&lt;br /&gt;
| Kill Bandits || &amp;lt;CODE&amp;gt;kill_bandits&amp;lt;/CODE&amp;gt; || Suppress bandit activity in an area (see the Bandits tab for options)&lt;br /&gt;
|-&lt;br /&gt;
| Rescue || &amp;lt;CODE&amp;gt;rescue&amp;lt;/CODE&amp;gt; || Rescue a lost child (uses &amp;lt;CODE&amp;gt;;echild&amp;lt;/CODE&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Skinning || &amp;lt;CODE&amp;gt;skinning&amp;lt;/CODE&amp;gt; || Collect creature skins&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Misc Options===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option !! Setting name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Rest when mind full || &amp;lt;CODE&amp;gt;exp_pause&amp;lt;/CODE&amp;gt; || When enabled, EBounty will return to your resting location once your experience pool is full. When disabled, it continues hunting until the bounty is complete or another rest condition (injury, low mana, etc.) is triggered.&lt;br /&gt;
|-&lt;br /&gt;
| Keep hunting || &amp;lt;CODE&amp;gt;keep_hunting&amp;lt;/CODE&amp;gt; || When enabled and no creature-specific Bigshot profile is found, EBounty will use your Gem/Default profile to continue hunting instead of exiting. &#039;&#039;&#039;Cannot be used together with &amp;quot;Rest when mind full&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Skip healing || &amp;lt;CODE&amp;gt;skip_healing&amp;lt;/CODE&amp;gt; || Disables automatic healing between tasks.&lt;br /&gt;
|-&lt;br /&gt;
| Run one bounty and quit || &amp;lt;CODE&amp;gt;once_and_done&amp;lt;/CODE&amp;gt; || EBounty will complete a single bounty and then stop.&lt;br /&gt;
|-&lt;br /&gt;
| Get new bounty before quitting || &amp;lt;CODE&amp;gt;new_bounty_on_exit&amp;lt;/CODE&amp;gt; || (Only applies when &amp;quot;Run one bounty and quit&amp;quot; is enabled; the checkbox is greyed out otherwise.) Grabs the next task from the Guild before exiting.&lt;br /&gt;
|-&lt;br /&gt;
| Just the basics || &amp;lt;CODE&amp;gt;basic&amp;lt;/CODE&amp;gt; || Only picks up and turns in bounties based on your settings. No automatic hunting, healing, or other routines are performed. Useful if you want to manage combat yourself. Also skips the dependency check and the Gem/Default profile requirement, and returns you to the room you started in on exit.&lt;br /&gt;
|-&lt;br /&gt;
| Use vouchers || &amp;lt;CODE&amp;gt;use_vouchers&amp;lt;/CODE&amp;gt; || EBounty will use Adventurer&#039;s Guild vouchers to reroll tasks until a desired bounty type is obtained.&lt;br /&gt;
|-&lt;br /&gt;
| Use bounty boosts || &amp;lt;CODE&amp;gt;use_boosts&amp;lt;/CODE&amp;gt; / &amp;lt;CODE&amp;gt;boost_type&amp;lt;/CODE&amp;gt; || Activates a bounty boost before hunting. Use the adjacent dropdown to select which bounty type to target when boosted (Any, Kill, Heirloom, Skin, Gem, Escort, Herb, Dangerous, Child, or Bandit).&lt;br /&gt;
|-&lt;br /&gt;
| Remove bounty if heirloom item is missing || &amp;lt;CODE&amp;gt;remove_heirloom&amp;lt;/CODE&amp;gt; || If enabled and the heirloom item gets lost, EBounty will automatically remove the bounty.&lt;br /&gt;
|-&lt;br /&gt;
| Rejoin group before quitting || &amp;lt;CODE&amp;gt;return_to_group&amp;lt;/CODE&amp;gt; || If you started EBounty while in a group, it will attempt to rejoin the group leader before exiting.&lt;br /&gt;
|-&lt;br /&gt;
| Ranger Track || &amp;lt;CODE&amp;gt;ranger_track&amp;lt;/CODE&amp;gt; || (Rangers only — the checkbox is disabled for other professions.) Uses the Track ability on cooldown to locate bounty targets.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Support Scripts===&lt;br /&gt;
These fields let you override the default helper scripts. Each field accepts a script name optionally followed by parameters, and multiple scripts may be separated by commas.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field !! Setting name !! Default !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Healing Script || &amp;lt;CODE&amp;gt;healing_script&amp;lt;/CODE&amp;gt; || &amp;lt;CODE&amp;gt;eherbs&amp;lt;/CODE&amp;gt; || Runs when your character is injured between tasks.&lt;br /&gt;
|-&lt;br /&gt;
| Death Recovery Script || &amp;lt;CODE&amp;gt;death_script&amp;lt;/CODE&amp;gt; || &#039;&#039;(none)&#039;&#039; || Runs if your character dies. If configured, EBounty starts a watcher that stops bigshot/go2, runs this script, and restarts EBounty automatically with the same command-line arguments. If left blank, EBounty simply exits on death.&lt;br /&gt;
|-&lt;br /&gt;
| Selling Script || &amp;lt;CODE&amp;gt;selling_script&amp;lt;/CODE&amp;gt; || &amp;lt;CODE&amp;gt;eloot&amp;lt;/CODE&amp;gt; || Runs to sell loot and deposit silvers.&lt;br /&gt;
|-&lt;br /&gt;
| Hording Script || &amp;lt;CODE&amp;gt;hording_script&amp;lt;/CODE&amp;gt; || &#039;&#039;(none)&#039;&#039; || Runs before a gem bounty (optional). Enter the script name followed by any necessary parameters (e.g., &amp;lt;CODE&amp;gt;HoardingScriptName param1 param2&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| Escort Script || &amp;lt;CODE&amp;gt;escort_script&amp;lt;/CODE&amp;gt; || &amp;lt;CODE&amp;gt;escortgo2&amp;lt;/CODE&amp;gt; || Handles escort bounty travel.&lt;br /&gt;
|-&lt;br /&gt;
| Rescue Script || &amp;lt;CODE&amp;gt;rescue_script&amp;lt;/CODE&amp;gt; || &amp;lt;CODE&amp;gt;echild&amp;lt;/CODE&amp;gt; || Handles child rescue bounties.&lt;br /&gt;
|-&lt;br /&gt;
| Gem History || &amp;lt;CODE&amp;gt;gem_history&amp;lt;/CODE&amp;gt; || &#039;&#039;(none)&#039;&#039; || An optional script that runs after receiving a gem bounty, useful for tracking which gems are requested.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Task Limits===&lt;br /&gt;
Set maximum values for how many items to collect per bounty type. These caps help prevent excessively long tasks. All are spin buttons with a maximum of 100.&lt;br /&gt;
* &#039;&#039;&#039;Max Culling Kills&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;culling_max&amp;lt;/CODE&amp;gt;, default 30) — Maximum number of creatures to kill for a culling bounty.&lt;br /&gt;
* &#039;&#039;&#039;Max Gems&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;gem_max&amp;lt;/CODE&amp;gt;, default 30) — Maximum number of gems to collect.&lt;br /&gt;
* &#039;&#039;&#039;Max Herbs&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;herb_max&amp;lt;/CODE&amp;gt;, default 30) — Maximum number of herbs to forage.&lt;br /&gt;
* &#039;&#039;&#039;Max Skins&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;skin_max&amp;lt;/CODE&amp;gt;, default 30) — Maximum number of skins to collect.&lt;br /&gt;
* &#039;&#039;&#039;# of Extra Skins&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;extra_skin&amp;lt;/CODE&amp;gt;, default 0) — How many additional skins to collect beyond the bounty requirement before turning in.&lt;br /&gt;
&lt;br /&gt;
==Resting Tab==&lt;br /&gt;
The Resting tab controls where your character rests between tasks and during downtime. &#039;&#039;&#039;Only one resting method can be active at a time&#039;&#039;&#039; — selecting one will deactivate the others.&lt;br /&gt;
&lt;br /&gt;
===Resting Methods===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option !! Setting name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Use Nearest Table || &amp;lt;CODE&amp;gt;table_rest&amp;lt;/CODE&amp;gt; || Travels to the nearest mapped table and sits at it.&lt;br /&gt;
|-&lt;br /&gt;
| Use Bigshot Resting Room || &amp;lt;CODE&amp;gt;bigshot_rest&amp;lt;/CODE&amp;gt; || Uses the resting room configured in your current Bigshot profile.&lt;br /&gt;
|-&lt;br /&gt;
| Use Custom Resting Area(s) || &amp;lt;CODE&amp;gt;custom_rest&amp;lt;/CODE&amp;gt; + &amp;lt;CODE&amp;gt;resting_room&amp;lt;/CODE&amp;gt; || Enter one or more room numbers (comma-separated) in the text field below. If multiple rooms are listed, one will be selected at random. Supports room IDs and UIDs.&lt;br /&gt;
|-&lt;br /&gt;
| Use Random Resting Areas || &amp;lt;CODE&amp;gt;rest_random&amp;lt;/CODE&amp;gt; || Picks a random [[supernode]] in your current town, drawn from the per-town lists below.&lt;br /&gt;
|-&lt;br /&gt;
| Use Script to Handle Resting Location || &amp;lt;CODE&amp;gt;use_script&amp;lt;/CODE&amp;gt; + &amp;lt;CODE&amp;gt;use_script_name&amp;lt;/CODE&amp;gt; || Runs a custom script to manage where you rest. Enter the script name and any parameters in the field below (e.g., &amp;lt;CODE&amp;gt;myscript param1 param2&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no resting method is selected, EBounty defaults to the Nexus (on Shattered) or town center (on Prime).&lt;br /&gt;
&lt;br /&gt;
===Per-Town Resting Locations===&lt;br /&gt;
Below the resting method checkboxes, you can customize the random resting room pools for each town. Each field contains a comma-separated list of room IDs that EBounty will randomly choose from when using the &amp;quot;Use Random Resting Areas&amp;quot; option. Room IDs and UIDs are both accepted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Town !! Setting name&lt;br /&gt;
|-&lt;br /&gt;
| Hinter Wilds || &amp;lt;CODE&amp;gt;hw_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Icemule Trace || &amp;lt;CODE&amp;gt;icemule_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Kharam Dzu (Teras) || &amp;lt;CODE&amp;gt;teras_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Kraken&#039;s Fall || &amp;lt;CODE&amp;gt;kf_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mist Harbor || &amp;lt;CODE&amp;gt;fwi_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| River&#039;s Rest || &amp;lt;CODE&amp;gt;rr_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sailor&#039;s Grief || &amp;lt;CODE&amp;gt;contempt_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Solhaven || &amp;lt;CODE&amp;gt;solhaven_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ta&#039;Illistim || &amp;lt;CODE&amp;gt;illy_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ta&#039;Vaalor || &amp;lt;CODE&amp;gt;vaalor_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wehnimer&#039;s Landing || &amp;lt;CODE&amp;gt;landing_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Zul Logoth || &amp;lt;CODE&amp;gt;zul_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; the shipped defaults for several of these differ between Prime and Shattered (GSF), because the room IDs differ between instances. If you copy a settings file between instances, re-check these fields.&lt;br /&gt;
&lt;br /&gt;
===Additional Resting Options===&lt;br /&gt;
* &#039;&#039;&#039;Join Character&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;join_player&amp;lt;/CODE&amp;gt; + &amp;lt;CODE&amp;gt;join_list&amp;lt;/CODE&amp;gt;) — When enabled, EBounty will try to join a specific character when resting. Enter one or more character names (comma-separated) in the field; it will try each in order.&lt;br /&gt;
* &#039;&#039;&#039;Use Buff Script&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;use_buff_script&amp;lt;/CODE&amp;gt; + &amp;lt;CODE&amp;gt;buff_script&amp;lt;/CODE&amp;gt;) — When enabled, EBounty will run a buff script each time it returns to the resting location. Enter the script name and parameters below.&lt;br /&gt;
&lt;br /&gt;
==Foraging Tab==&lt;br /&gt;
The Foraging tab configures how EBounty handles herb-gathering bounties. This tab has three sections.&lt;br /&gt;
&lt;br /&gt;
===Foraging Options===&lt;br /&gt;
Enable spells, abilities, and behaviors to use while foraging. These help with safety and efficiency. All of these are stored in the &amp;lt;CODE&amp;gt;forage_options&amp;lt;/CODE&amp;gt; array setting; the CLI value for each is listed below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option !! CLI value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Run from creatures || &amp;lt;CODE&amp;gt;run&amp;lt;/CODE&amp;gt; || Flee the room if creatures appear.&lt;br /&gt;
|-&lt;br /&gt;
| Hide when foraging || &amp;lt;CODE&amp;gt;hiding&amp;lt;/CODE&amp;gt; || Attempt to hide before foraging.&lt;br /&gt;
|-&lt;br /&gt;
| Rogue Gambits: Stealth || &amp;lt;CODE&amp;gt;use_gambit&amp;lt;/CODE&amp;gt; || Use the Rogue Stealth gambit while foraging.&lt;br /&gt;
|-&lt;br /&gt;
| Nature&#039;s Bounty (604) || &amp;lt;CODE&amp;gt;use_604&amp;lt;/CODE&amp;gt; || Cast spell 604 to improve foraging results.&lt;br /&gt;
|-&lt;br /&gt;
| Nature&#039;s Bounty Evoke (604) || &amp;lt;CODE&amp;gt;use_604evoke&amp;lt;/CODE&amp;gt; || Evoke spell 604 instead of casting.&lt;br /&gt;
|-&lt;br /&gt;
| Camouflage (608) || &amp;lt;CODE&amp;gt;use_608&amp;lt;/CODE&amp;gt; || Cast spell 608 to stay hidden.&lt;br /&gt;
|-&lt;br /&gt;
| Celerity (506) || &amp;lt;CODE&amp;gt;use_506&amp;lt;/CODE&amp;gt; || Cast spell 506 for faster actions.&lt;br /&gt;
|-&lt;br /&gt;
| Mass Calm (619) || &amp;lt;CODE&amp;gt;use_619&amp;lt;/CODE&amp;gt; || Cast spell 619 to pacify creatures.&lt;br /&gt;
|-&lt;br /&gt;
| Wizard&#039;s Shield (919) || &amp;lt;CODE&amp;gt;use_919&amp;lt;/CODE&amp;gt; || Cast spell 919 for additional protection.&lt;br /&gt;
|-&lt;br /&gt;
| Minor Sanctuary (213) || &amp;lt;CODE&amp;gt;use_213&amp;lt;/CODE&amp;gt; || Cast spell 213 for a protective sanctuary.&lt;br /&gt;
|-&lt;br /&gt;
| Song of Peace (1011) || &amp;lt;CODE&amp;gt;use_1011&amp;lt;/CODE&amp;gt; || Sing Song of Peace to prevent creature attacks.&lt;br /&gt;
|-&lt;br /&gt;
| Song of Tonis (1035) || &amp;lt;CODE&amp;gt;use_1035&amp;lt;/CODE&amp;gt; || Sing Song of Tonis for speed.&lt;br /&gt;
|-&lt;br /&gt;
| Wall of Force (140) || &amp;lt;CODE&amp;gt;use_140&amp;lt;/CODE&amp;gt; || Cast spell 140 for a defensive barrier.&lt;br /&gt;
|-&lt;br /&gt;
| Assume Aspect (650) Yierka || &amp;lt;CODE&amp;gt;use_650&amp;lt;/CODE&amp;gt; || Assume the Yierka aspect for enhanced foraging.&lt;br /&gt;
|-&lt;br /&gt;
| Grasp of the Grave (709) || &amp;lt;CODE&amp;gt;use_709&amp;lt;/CODE&amp;gt; || Cast spell 709 to immobilize creatures.&lt;br /&gt;
|-&lt;br /&gt;
| Sigil of Resolve || &amp;lt;CODE&amp;gt;use_resolve&amp;lt;/CODE&amp;gt; || Activate the Sigil of Resolve.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
EBounty checks for the &amp;lt;CODE&amp;gt;nomagic&amp;lt;/CODE&amp;gt; room tag before casting any of these.&lt;br /&gt;
&lt;br /&gt;
===Pre-Foraging===&lt;br /&gt;
* &#039;&#039;&#039;Pre-Foraging Commands&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;forage_prep_commands&amp;lt;/CODE&amp;gt;) — In-game commands to execute before each foraging session.&lt;br /&gt;
* &#039;&#039;&#039;Active Foraging Scripts&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;forage_prep_scripts&amp;lt;/CODE&amp;gt;) — Scripts to run alongside foraging (comma-separated for multiple).&lt;br /&gt;
&lt;br /&gt;
===Post-Foraging===&lt;br /&gt;
* &#039;&#039;&#039;Post-Foraging Commands&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;forage_post_commands&amp;lt;/CODE&amp;gt;) — In-game commands to execute after foraging is complete.&lt;br /&gt;
* &#039;&#039;&#039;Post-Foraging Scripts&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;forage_post_scripts&amp;lt;/CODE&amp;gt;) — Scripts to run after foraging finishes.&lt;br /&gt;
&lt;br /&gt;
==Heirloom Tab==&lt;br /&gt;
The Heirloom tab configures how EBounty handles heirloom &#039;&#039;search&#039;&#039; bounties (where you must search rooms to find the item, not loot it from a creature). This tab mirrors the Foraging tab structure with three sections.&lt;br /&gt;
&lt;br /&gt;
===Search Options===&lt;br /&gt;
Enable spells and behaviors to use while searching for heirloom items. All of these are stored in the &amp;lt;CODE&amp;gt;heirloom_options&amp;lt;/CODE&amp;gt; array setting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option !! CLI value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Run from creatures || &amp;lt;CODE&amp;gt;run&amp;lt;/CODE&amp;gt; || Flee the room if creatures appear.&lt;br /&gt;
|-&lt;br /&gt;
| Presence (402) || &amp;lt;CODE&amp;gt;use_402&amp;lt;/CODE&amp;gt; || Cast spell 402 to detect nearby items.&lt;br /&gt;
|-&lt;br /&gt;
| Minor Sanctuary (213) || &amp;lt;CODE&amp;gt;use_213&amp;lt;/CODE&amp;gt; || Cast spell 213 for protection.&lt;br /&gt;
|-&lt;br /&gt;
| Song of Peace (1011) || &amp;lt;CODE&amp;gt;use_1011&amp;lt;/CODE&amp;gt; || Sing Song of Peace to prevent attacks.&lt;br /&gt;
|-&lt;br /&gt;
| Celerity (506) || &amp;lt;CODE&amp;gt;use_506&amp;lt;/CODE&amp;gt; || Cast spell 506 for speed.&lt;br /&gt;
|-&lt;br /&gt;
| Mass Calm (619) || &amp;lt;CODE&amp;gt;use_619&amp;lt;/CODE&amp;gt; || Cast spell 619 to pacify creatures.&lt;br /&gt;
|-&lt;br /&gt;
| Wizard&#039;s Shield (919) || &amp;lt;CODE&amp;gt;use_919&amp;lt;/CODE&amp;gt; || Cast spell 919 for protection.&lt;br /&gt;
|-&lt;br /&gt;
| Wall of Force (140) || &amp;lt;CODE&amp;gt;use_140&amp;lt;/CODE&amp;gt; || Cast spell 140 for defense.&lt;br /&gt;
|-&lt;br /&gt;
| Grasp of the Grave (709) || &amp;lt;CODE&amp;gt;use_709&amp;lt;/CODE&amp;gt; || Cast spell 709 to immobilize creatures.&lt;br /&gt;
|-&lt;br /&gt;
| Song of Tonis (1035) || &amp;lt;CODE&amp;gt;use_1035&amp;lt;/CODE&amp;gt; || Sing Song of Tonis for speed.&lt;br /&gt;
|-&lt;br /&gt;
| Flag right hand || &amp;lt;CODE&amp;gt;use_right&amp;lt;/CODE&amp;gt; || By default, found heirloom items are placed on the ground. Enable this to have the item go to your right hand instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Pre-Heirloom Searching===&lt;br /&gt;
* &#039;&#039;&#039;Pre-Searching Commands&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;heirloom_prep_commands&amp;lt;/CODE&amp;gt;) — In-game commands to execute before beginning the search.&lt;br /&gt;
* &#039;&#039;&#039;Active Searching Scripts&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;heirloom_prep_scripts&amp;lt;/CODE&amp;gt;) — Scripts to run alongside searching.&lt;br /&gt;
&lt;br /&gt;
===Post-Heirloom Searching===&lt;br /&gt;
* &#039;&#039;&#039;Post-Searching Commands&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;heirloom_post_commands&amp;lt;/CODE&amp;gt;) — In-game commands to execute after the heirloom is found.&lt;br /&gt;
* &#039;&#039;&#039;Post-Searching Scripts&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;heirloom_post_scripts&amp;lt;/CODE&amp;gt;) — Scripts to run after searching finishes.&lt;br /&gt;
&lt;br /&gt;
==Bandits Tab==&lt;br /&gt;
The Bandits tab configures how EBounty handles bandit suppression bounties.&lt;br /&gt;
&lt;br /&gt;
===Wander Timing===&lt;br /&gt;
* &#039;&#039;&#039;Wait this long before moving rooms&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;wander_wait&amp;lt;/CODE&amp;gt;, default &amp;lt;CODE&amp;gt;0.5&amp;lt;/CODE&amp;gt;) — Controls the delay (in seconds) that EBounty waits in each room before moving on while searching for bandits. This is a decimal value. Adjust this to allow time for bandits to appear.&lt;br /&gt;
&lt;br /&gt;
===Bad Room List===&lt;br /&gt;
A twelve-row table where you can define rooms to avoid during bandit hunting. Each row has two fields:&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;location1&amp;lt;/CODE&amp;gt; … &amp;lt;CODE&amp;gt;location12&amp;lt;/CODE&amp;gt;) — A reference label for the area (does not need to be exact; this is for your convenience only).&lt;br /&gt;
* &#039;&#039;&#039;Bad Room Numbers&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;bad_room1&amp;lt;/CODE&amp;gt; … &amp;lt;CODE&amp;gt;bad_room12&amp;lt;/CODE&amp;gt;) — A comma-separated list of room IDs or UIDs to skip in that area (e.g., &amp;lt;CODE&amp;gt;228, 188, u76564564&amp;lt;/CODE&amp;gt;). UIDs are supported and recommended for instance compatibility.&lt;br /&gt;
&lt;br /&gt;
Twelve locations can be configured so you can exclude problematic rooms across all areas where bandits spawn.&lt;br /&gt;
&lt;br /&gt;
===Crawl Area Cap===&lt;br /&gt;
Bandit and location-based bounties are capped at &#039;&#039;&#039;100 rooms&#039;&#039;&#039; of hunting area. If the bounty location maps to more rooms than that, EBounty walks outward from the nearest room and keeps a single contiguous region of up to 100 rooms; the remaining rooms are automatically added as hunting boundaries so Bigshot will not wander past them. This keeps very large areas from turning into extremely long crawls.&lt;br /&gt;
&lt;br /&gt;
==Escort Tab==&lt;br /&gt;
The Escort tab configures how EBounty handles escort bounties — tasks where you accompany an NPC between two towns.&lt;br /&gt;
&lt;br /&gt;
===Travel Preferences===&lt;br /&gt;
A grid of checkboxes showing origin and destination town pairs. Enable the routes you are willing to accept. Only bounties matching your enabled routes will be accepted; others will be dropped.&lt;br /&gt;
&lt;br /&gt;
The six towns are Wehnimer&#039;s Landing, Solhaven, Icemule Trace, Ta&#039;Illistim, Ta&#039;Vaalor, and Zul Logoth, giving 30 directional routes. The routes are stored in the &amp;lt;CODE&amp;gt;escort_types&amp;lt;/CODE&amp;gt; array using the form &amp;lt;CODE&amp;gt;&amp;amp;lt;origin&amp;amp;gt;_to_&amp;amp;lt;destination&amp;amp;gt;&amp;lt;/CODE&amp;gt;, where each town is one of &amp;lt;CODE&amp;gt;landing&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;solhaven&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;icemule&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;illy&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;vaalor&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;zul&amp;lt;/CODE&amp;gt; — for example &amp;lt;CODE&amp;gt;landing_to_solhaven&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;illy_to_vaalor&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pre-Escort===&lt;br /&gt;
* &#039;&#039;&#039;Pre-Escort Commands&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;escort_prep_commands&amp;lt;/CODE&amp;gt;) — In-game commands to execute before starting the escort.&lt;br /&gt;
* &#039;&#039;&#039;Active Escort Scripts&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;escort_prep_scripts&amp;lt;/CODE&amp;gt;) — Scripts to run alongside the escort.&lt;br /&gt;
&lt;br /&gt;
===Post-Escort===&lt;br /&gt;
* &#039;&#039;&#039;Post-Escort Commands&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;escort_post_commands&amp;lt;/CODE&amp;gt;) — In-game commands to execute after the escort is complete.&lt;br /&gt;
* &#039;&#039;&#039;Post-Escort Scripts&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;escort_post_scripts&amp;lt;/CODE&amp;gt;) — Scripts to run after the escort finishes.&lt;br /&gt;
&lt;br /&gt;
==Exclusions Tab==&lt;br /&gt;
The Exclusions tab lets you define things EBounty should never accept a bounty for. There are four exclusion lists, and each supports regular expressions for pattern matching. Add items one at a time using the text field and &#039;&#039;&#039;Add&#039;&#039;&#039; button. Select an item and click &#039;&#039;&#039;Remove&#039;&#039;&#039; to delete it. Entries are de-duplicated and kept sorted.&lt;br /&gt;
&lt;br /&gt;
===Creature Exclusions===&lt;br /&gt;
(&amp;lt;CODE&amp;gt;creature_exclude&amp;lt;/CODE&amp;gt;) Creature nouns you do not want to hunt. If a bounty targets an excluded creature, EBounty will reject it. Enter the creature noun exactly as it appears in-game (e.g., &amp;lt;CODE&amp;gt;troll&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;griffin&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Herb Exclusions===&lt;br /&gt;
(&amp;lt;CODE&amp;gt;herb_exclude&amp;lt;/CODE&amp;gt;) Herb names you do not want to forage. If a foraging bounty requests an excluded herb, EBounty will reject it.&lt;br /&gt;
&lt;br /&gt;
===Gem Exclusions===&lt;br /&gt;
(&amp;lt;CODE&amp;gt;gem_exclude&amp;lt;/CODE&amp;gt;) Gem names you do not want to collect. If a gem bounty requests an excluded gem, EBounty will reject it.&lt;br /&gt;
&lt;br /&gt;
===Location Exclusions===&lt;br /&gt;
(&amp;lt;CODE&amp;gt;location_exclude&amp;lt;/CODE&amp;gt;) Location/area names you do not want to visit for bounties. If a bounty sends you to an excluded location, EBounty will reject it.&lt;br /&gt;
&lt;br /&gt;
==Profiles Tab==&lt;br /&gt;
The Profiles tab is &#039;&#039;&#039;the most critical tab for combat&#039;&#039;&#039;. This is where you tell EBounty which Bigshot profile to use for each creature. The dropdown menus automatically populate with all Bigshot profiles found in your Bigshot profiles folder (&amp;lt;CODE&amp;gt;&amp;amp;lt;data dir&amp;amp;gt;/&amp;amp;lt;game&amp;amp;gt;/&amp;amp;lt;character&amp;amp;gt;/bigshot_profiles&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Gem/Default Profile===&lt;br /&gt;
At the top of the tab, select your &#039;&#039;&#039;Gem/Default&#039;&#039;&#039; Bigshot profile (&amp;lt;CODE&amp;gt;default_profile&amp;lt;/CODE&amp;gt;). This is the profile EBounty uses when:&lt;br /&gt;
* Waiting for a bounty timer to expire (hunts using this profile to fill time).&lt;br /&gt;
* No specific creature profile is matched.&lt;br /&gt;
* Running gem bounties.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This field is required.&#039;&#039;&#039; EBounty will not start without a default profile selected. The two exceptions are &amp;quot;Just the basics&amp;quot; mode and standalone CLI foraging (&amp;lt;CODE&amp;gt;;ebounty forage …&amp;lt;/CODE&amp;gt;), neither of which loads a combat profile.&lt;br /&gt;
&lt;br /&gt;
===Bandits Profile===&lt;br /&gt;
Below the default, select a profile specifically for bandit bounties (&amp;lt;CODE&amp;gt;bandits_profile&amp;lt;/CODE&amp;gt;). The &#039;&#039;&#039;Only Kill Bounty Creatures&#039;&#039;&#039; checkbox next to it (&amp;lt;CODE&amp;gt;kill_bandits&amp;lt;/CODE&amp;gt;) determines whether EBounty should ignore non-bandit creatures during bandit tasks.&lt;br /&gt;
&lt;br /&gt;
===Creature Profiles (A through J)===&lt;br /&gt;
Ten rows (A–J) are available for mapping creatures to Bigshot profiles. Each row has three fields:&lt;br /&gt;
* &#039;&#039;&#039;Creature Names&#039;&#039;&#039; (left, &amp;lt;CODE&amp;gt;names_a&amp;lt;/CODE&amp;gt; … &amp;lt;CODE&amp;gt;names_j&amp;lt;/CODE&amp;gt;) — Enter the full creature noun(s) for this profile. You can enter multiple creatures separated by commas or each on a separate line.&lt;br /&gt;
* &#039;&#039;&#039;Associated Profile&#039;&#039;&#039; (right dropdown, &amp;lt;CODE&amp;gt;profile_a&amp;lt;/CODE&amp;gt; … &amp;lt;CODE&amp;gt;profile_j&amp;lt;/CODE&amp;gt;) — Select the Bigshot profile to use when fighting these creatures.&lt;br /&gt;
* &#039;&#039;&#039;Only Kill Bounty Creatures&#039;&#039;&#039; (checkbox, &amp;lt;CODE&amp;gt;kill_a&amp;lt;/CODE&amp;gt; … &amp;lt;CODE&amp;gt;kill_j&amp;lt;/CODE&amp;gt;) — When checked, EBounty will only attack the specific bounty creature and ignore all other creatures in the hunting area.&lt;br /&gt;
&lt;br /&gt;
Rows are matched in order A through J, and the &#039;&#039;&#039;last&#039;&#039;&#039; matching row wins, so put your most specific entries later in the list if a creature name could match more than one row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Critical:&#039;&#039;&#039; Creature names must match exactly as they appear in-game. Partial or abbreviated names will not work.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Example !! Correct?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;executioner&amp;lt;/CODE&amp;gt; || &amp;amp;#10060; &#039;&#039;&#039;Wrong&#039;&#039;&#039; — too generic&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;triton executioner&amp;lt;/CODE&amp;gt; || &amp;amp;#9989; &#039;&#039;&#039;Correct&#039;&#039;&#039; — full creature noun&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If a creature is not listed in the Exclusions tab and no matching Creature Name can be found in any profile row, EBounty will either use the Gem/Default profile to keep hunting (if &amp;quot;Keep hunting&amp;quot; is enabled on the General tab) or return to the resting spot and exit.&lt;br /&gt;
&lt;br /&gt;
==Command Line Interface (CLI)==&lt;br /&gt;
&lt;br /&gt;
EBounty supports several commands that can be run directly from the game without opening the GUI. Anything that is not a recognized command prints the help table, so &amp;lt;CODE&amp;gt;;ebounty help&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;;ebounty ?&amp;lt;/CODE&amp;gt;, and any typo all behave the same way.&lt;br /&gt;
&lt;br /&gt;
===Running EBounty===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty&amp;lt;/CODE&amp;gt; || Start the main bounty loop using your saved settings. Must be run from a mapped room.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty once&amp;lt;/CODE&amp;gt; || Single run with &#039;&#039;&#039;full&#039;&#039;&#039; features: temporarily forces &amp;quot;Run one bounty and quit&amp;quot; on and &amp;quot;Just the basics&amp;quot; off, then exits after one bounty. Your saved settings are restored on exit.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty basic&amp;lt;/CODE&amp;gt; || Single run with &#039;&#039;&#039;just the basics&#039;&#039;&#039; enabled — picks up and turns in bounties only, no hunting, healing, or support scripts. The override is not written to your saved settings.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty setup&amp;lt;/CODE&amp;gt; || Open the GUI configuration window.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Both &amp;lt;CODE&amp;gt;once&amp;lt;/CODE&amp;gt; and &amp;lt;CODE&amp;gt;basic&amp;lt;/CODE&amp;gt; apply their override only for that run; the previous values are restored when the script ends.&lt;br /&gt;
&lt;br /&gt;
===Information Commands===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty help&amp;lt;/CODE&amp;gt; || Display a summary of available commands. (Any unrecognized argument does the same.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty list&amp;lt;/CODE&amp;gt; || Display all current settings and their values, filling in defaults for anything unset.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty bounty&amp;lt;/CODE&amp;gt; || Show a table of details for your current active bounty.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty creature&amp;lt;/CODE&amp;gt; || Show the creature associated with your current bounty.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty location&amp;lt;/CODE&amp;gt; || Show the location associated with your current bounty.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty version&amp;lt;/CODE&amp;gt; || Display the current EBounty version number. &amp;lt;CODE&amp;gt;;ebounty ver&amp;lt;/CODE&amp;gt; also works — in fact any first argument containing &amp;quot;ver&amp;quot; is treated as a version request.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty test&amp;lt;/CODE&amp;gt; || Display the script version followed by a raw dump of every setting. Useful when reporting a bug.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Utility Commands===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty remove&amp;lt;/CODE&amp;gt; || Remove your current bounty (travels to the Guild to request removal, then returns you to the room you started in). Must be run from a mapped room.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty load&amp;lt;/CODE&amp;gt; || Reload all settings from the saved configuration file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty debug&amp;lt;/CODE&amp;gt; || Toggle verbose debug output on or off. This is saved to your settings file, so it persists until you toggle it back off.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CLI Settings===&lt;br /&gt;
You can change any individual setting without opening the GUI:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;ebounty settings &amp;amp;lt;key&amp;amp;gt; &amp;amp;lt;value&amp;amp;gt;&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;ebounty setup &amp;amp;lt;key&amp;amp;gt; &amp;amp;lt;value&amp;amp;gt;&amp;lt;/CODE&amp;gt; is accepted as an alias for the same thing. Setting names are case-insensitive, and hyphens are treated as underscores, so &amp;lt;CODE&amp;gt;;ebounty settings Skip-Healing true&amp;lt;/CODE&amp;gt; is the same as &amp;lt;CODE&amp;gt;;ebounty settings skip_healing true&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For a quick in-game reminder of the syntax for each value type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;ebounty settings help&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each setting has a type, and the value you supply must match it:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type !! Accepted values !! Example&lt;br /&gt;
|-&lt;br /&gt;
| Boolean || &amp;lt;CODE&amp;gt;on&amp;lt;/CODE&amp;gt;/&amp;lt;CODE&amp;gt;true&amp;lt;/CODE&amp;gt;/&amp;lt;CODE&amp;gt;yes&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;off&amp;lt;/CODE&amp;gt;/&amp;lt;CODE&amp;gt;false&amp;lt;/CODE&amp;gt;/&amp;lt;CODE&amp;gt;no&amp;lt;/CODE&amp;gt;. &#039;&#039;&#039;Must be lowercase&#039;&#039;&#039; — &amp;lt;CODE&amp;gt;True&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;YES&amp;lt;/CODE&amp;gt; will be rejected. || &amp;lt;CODE&amp;gt;;ebounty settings skip_healing true&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Integer || A whole number. || &amp;lt;CODE&amp;gt;;ebounty settings culling_max 30&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Float || A decimal number. || &amp;lt;CODE&amp;gt;;ebounty settings wander_wait 1.5&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Array || Space-separated values. The list is &#039;&#039;&#039;replaced&#039;&#039;&#039;, not appended to. || &amp;lt;CODE&amp;gt;;ebounty settings bounty_types culling gem_collecting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| String || All remaining words, joined with single spaces. || &amp;lt;CODE&amp;gt;;ebounty settings selling_script eloot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quoting commas.&#039;&#039;&#039; Several String settings (the per-town resting lists, &amp;lt;CODE&amp;gt;resting_room&amp;lt;/CODE&amp;gt;, the &amp;lt;CODE&amp;gt;bad_room&#039;&#039;N&#039;&#039;&amp;lt;/CODE&amp;gt; fields, the &amp;lt;CODE&amp;gt;location&#039;&#039;N&#039;&#039;&amp;lt;/CODE&amp;gt; labels) store comma-separated values. Because a String setting joins the remaining arguments with spaces, quote the whole value as a single argument to preserve the commas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
;ebounty settings zul_resting &amp;quot;1005, 5751&amp;quot;&lt;br /&gt;
;ebounty settings bad_room1 &amp;quot;228, 188, u76564564&amp;quot;&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes and gotchas:&#039;&#039;&#039;&lt;br /&gt;
* Array values are not validated. A misspelled bounty type or forage option is saved as-is and silently does nothing — check your work with &amp;lt;CODE&amp;gt;;ebounty list&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* If the key is not recognized, EBounty prints an error along with the full list of valid setting names.&lt;br /&gt;
* A value that does not match the setting&#039;s type stops the script with an error rather than saving a bad value.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;ebounty list&amp;lt;/CODE&amp;gt; shows the &#039;&#039;general&#039;&#039; category only. The internal &amp;lt;CODE&amp;gt;debug&amp;lt;/CODE&amp;gt; setting is not listed there, but it is still settable (use &amp;lt;CODE&amp;gt;;ebounty debug&amp;lt;/CODE&amp;gt; to toggle it).&lt;br /&gt;
* Setting updates are applied to the settings file on disk. If EBounty is already running, use &amp;lt;CODE&amp;gt;;ebounty load&amp;lt;/CODE&amp;gt; — or restart it — to pick the change up.&lt;br /&gt;
* CLI setting updates only recognize keys that already exist in your saved settings file. If you have never opened &amp;lt;CODE&amp;gt;;ebounty setup&amp;lt;/CODE&amp;gt;, open and close it once so the full set of defaults is written out.&lt;br /&gt;
&lt;br /&gt;
===Foraging via CLI===&lt;br /&gt;
EBounty can forage herbs independently of bounties using the command line. This mode does not require a Gem/Default profile, and it returns you to the room you started in when it finishes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty forage bounty&amp;lt;/CODE&amp;gt; || Automatically detects your current foraging bounty and completes it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty forage bounty &amp;quot;&amp;amp;lt;BOUNTY text&amp;amp;gt;&amp;quot;&amp;lt;/CODE&amp;gt; || Parses a pasted line of &amp;lt;CODE&amp;gt;BOUNTY&amp;lt;/CODE&amp;gt; output instead of reading your live bounty, and forages from that. Useful for a task you have not accepted yet, or for testing.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty forage &amp;quot;herb name&amp;quot; &amp;amp;lt;quantity&amp;amp;gt;&amp;lt;/CODE&amp;gt; || Searches the closest 10 rooms for the specified herb.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty forage &amp;quot;herb name&amp;quot; &amp;amp;lt;quantity&amp;amp;gt; &amp;quot;location&amp;quot;&amp;lt;/CODE&amp;gt; || Searches all rooms at the specified location for the herb.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
;ebounty forage bounty&lt;br /&gt;
;ebounty forage bounty &amp;quot;You have been tasked to gather 7 acantha leaves from the Upper Trollfang. You have not yet found any.&amp;quot;&lt;br /&gt;
;ebounty forage &amp;quot;acantha leaf&amp;quot; 7&lt;br /&gt;
;ebounty forage &amp;quot;acantha leaf&amp;quot; 7 &amp;quot;Upper Trollfang&amp;quot;&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running &amp;lt;CODE&amp;gt;;ebounty forage&amp;lt;/CODE&amp;gt; with missing or malformed arguments prints this syntax list rather than starting.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Please start ebounty in a mapped room.&amp;quot;&#039;&#039;&#039; — &amp;lt;CODE&amp;gt;;ebounty&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;;ebounty once&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;;ebounty basic&amp;lt;/CODE&amp;gt;, and &amp;lt;CODE&amp;gt;;ebounty remove&amp;lt;/CODE&amp;gt; all need a mapped room to return to. Move somewhere the Lich map knows and try again.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Please select a Gem/Default profile in Profiles tab.&amp;quot;&#039;&#039;&#039; — Set &amp;lt;CODE&amp;gt;default_profile&amp;lt;/CODE&amp;gt; on the Profiles tab. This is not required for &amp;lt;CODE&amp;gt;;ebounty basic&amp;lt;/CODE&amp;gt; or standalone CLI foraging.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;You must also download the following script(s) to use ebounty&amp;quot;&#039;&#039;&#039; — Install the listed dependency with &amp;lt;CODE&amp;gt;;repo download &amp;amp;lt;name&amp;amp;gt;&amp;lt;/CODE&amp;gt;, or blank the matching support-script field and supply your own.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;No Profile found for &amp;amp;lt;creature&amp;amp;gt;&amp;quot;&#039;&#039;&#039; — Add the full creature noun to a Creature Names row on the Profiles tab, add it to the Creature Exclusions list, or enable &amp;quot;Keep hunting&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Script requires a newer Lich&#039;&#039;&#039; — Update Lich; EBounty requires 5.19.0 or newer.&lt;br /&gt;
* &#039;&#039;&#039;Reporting a bug&#039;&#039;&#039; — Include the output of &amp;lt;CODE&amp;gt;;ebounty test&amp;lt;/CODE&amp;gt;, and turn on &amp;lt;CODE&amp;gt;;ebounty debug&amp;lt;/CODE&amp;gt; to capture verbose output leading up to the problem.&lt;br /&gt;
&lt;br /&gt;
==Ingame Screenshots==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:ebounty-1.PNG|General&lt;br /&gt;
File:ebounty-2.PNG|Escort&lt;br /&gt;
File:ebounty-3.PNG|Profiles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-customtoggle-mychangelog&amp;quot; style=&amp;quot;color:#0000ff&amp;quot;&amp;gt;Click to expand&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-mychangelog&amp;quot;&amp;gt;&lt;br /&gt;
  v1.12.3 (2026-08-17)&lt;br /&gt;
    - fix rgambit usage when not hidden to just put away instead&lt;br /&gt;
    - fix to grab new bounty when available instead of waiting for should_hunt? to be true&lt;br /&gt;
  v1.12.2 (2026-08-14)&lt;br /&gt;
    - add ;ebounty settings help output covering CLI syntax for each setting value type (boolean/integer/float/array/string)&lt;br /&gt;
    - reference ;ebounty settings help from the main help output&lt;br /&gt;
    - bugfix: coerce_setting_value did not handle Float settings (e.g. wander_wait), causing ;ebounty settings wander_wait &amp;lt;value&amp;gt; to error out&lt;br /&gt;
  v1.12.1 (2026-08-14)&lt;br /&gt;
    - update help output to document previously undocumented CLI options: once, settings &amp;lt;key&amp;gt; &amp;lt;value&amp;gt;, debug, test, version&lt;br /&gt;
  v1.12.0 (2026-08-14)&lt;br /&gt;
    - add CLI support for ;ebounty basic (single run with just the basics enabled, without changing saved settings)&lt;br /&gt;
  v1.11.3 (2026-08-01)&lt;br /&gt;
    - fix to remove EXPERIENCE scraping for field exp, require new Lich to get it automatically from feed&lt;br /&gt;
  v1.11.2 (2026-07-08)&lt;br /&gt;
    - properly set start room ID&lt;br /&gt;
  v1.11.1 (2026-07-05)&lt;br /&gt;
    - add red trafel mushroom &amp;amp; black hook mushroom to find herb stow list method&lt;br /&gt;
  v1.11.0 (2026-06-07)&lt;br /&gt;
    - cap bandit/location crawl area at 100 rooms (Task::MAX_CRAWL_ROOMS)&lt;br /&gt;
    - add Task.limit_crawl_area BFS to select a contiguous region from the nearest room&lt;br /&gt;
    - excluded location rooms beyond the cap are added to location_boundaries automatically&lt;br /&gt;
  v1.10.1 (2026-05-25)&lt;br /&gt;
    - fix for forage_find to use distance calc of 90 for nearest only&lt;br /&gt;
    - fix for no forageable item found when foraging in rift due to inside/outside rooms changing&lt;br /&gt;
  v1.10.0 (2026-04-16)&lt;br /&gt;
    - add support to use alternative BOUNTY text with ;ebounty forage bounty &amp;quot;BOUNTY output here&amp;quot;&lt;br /&gt;
    - fix new mushroom PnC issues not calculating proper amounts in forage_bounty&lt;br /&gt;
  v1.9.7 (2026-03-01)&lt;br /&gt;
    - bugfix expedite vouchers when already ready to get new task&lt;br /&gt;
  v1.9.6 (2026-02-17)&lt;br /&gt;
    - bugfix to not try searching SG for taskmaster when already in room&lt;br /&gt;
  v1.9.5 (2026-02-06)&lt;br /&gt;
    - bugfix in forage_bounty when using optional location in CLI argument&lt;br /&gt;
  v1.9.4 (2026-02-04)&lt;br /&gt;
    - optimize location_list finding in forage_find room logic&lt;br /&gt;
  v1.9.3 (2026-02-04)&lt;br /&gt;
    - bugfix in forage_find room&lt;br /&gt;
  v1.9.2 (2026-01-27)&lt;br /&gt;
    - add CLI support for ;ebounty forage bounty&lt;br /&gt;
    - add CLI support for ;ebounty forage &amp;quot;herb&amp;quot; &amp;lt;qty&amp;gt; &amp;quot;location&amp;quot;&lt;br /&gt;
    - bugfix in heirloom_search and forage_bounty to use Claim.mine? instead of checkpcs&lt;br /&gt;
    - anchor ending gem names in search functions to prevent false matching on other items&lt;br /&gt;
    - fix resting spot for SG shattered&lt;br /&gt;
    - fix forage tag in starting room crash&lt;br /&gt;
    - fix between script(s) added erroneous commas between script parameters&lt;br /&gt;
  v1.9.1 (2026-01-18)&lt;br /&gt;
    - bugfix for running gem tracking script&lt;br /&gt;
  v1.9.0 (2026-01-08)&lt;br /&gt;
    - added support for ranger track&lt;br /&gt;
  v1.8.1 (2025-12-24)&lt;br /&gt;
    - added option to regroup before quiting if started in group&lt;br /&gt;
  v1.8.0 (2025-11-18)&lt;br /&gt;
    - added option to get a new bounty before quitting when set to &amp;quot;Run one bounty and quit&amp;quot;&lt;br /&gt;
  v1.7.5 (2025-11-11)&lt;br /&gt;
    - bugfix in minimum Lich required checks&lt;br /&gt;
  v1.7.4 (2025-11-11)&lt;br /&gt;
    - bugfix for go2_rest - settings[:resting_room] converted to array and current_room a string&lt;br /&gt;
  v1.7.3 (2025-10-01)&lt;br /&gt;
   - updates for Sailor&#039;s Grief&lt;br /&gt;
   - added support for uids&lt;br /&gt;
   - bugfix for saving settings&lt;br /&gt;
   - general code cleanup&lt;br /&gt;
  v1.7.2 (2025-09-08)&lt;br /&gt;
    - change requirement to 5.12.5 due to heirloom text change&lt;br /&gt;
  v1.7.1 (2025-09-07)&lt;br /&gt;
    - bugfix for change in Heirloom return messaging&lt;br /&gt;
  v1.7.0 (2025-09-05)&lt;br /&gt;
    - add option to select boost bounty type&lt;br /&gt;
  v1.6.5 (2025-08-15)&lt;br /&gt;
    - bugfix for stowing herbs&lt;br /&gt;
  v1.6.4 (2025-08-05)&lt;br /&gt;
    - remove version check for bigshot&lt;br /&gt;
  v1.6.3 (2025-08-03)&lt;br /&gt;
    - bugfix mana check when changing aspect while 650 is active&lt;br /&gt;
    - bugfix for hiding is 608 doesn&#039;t work&lt;br /&gt;
  v1.6.2 (2025-04-21)&lt;br /&gt;
    - bugfix for NPCs not populating quickly upon room entry with large amount of other characters&lt;br /&gt;
  v1.6.1 (2025-04-21)&lt;br /&gt;
    - bugfix for HW bounty turnin&lt;br /&gt;
  v1.6.0 (2025-03-29)&lt;br /&gt;
    - remove custom bounty and use Lich Bounty API&lt;br /&gt;
    - remove custom issue_command to Lich::Util.issue_command&lt;br /&gt;
    - remove depreciated code&lt;br /&gt;
    - update references of ego2 to escortgo2&lt;br /&gt;
  v1.5.6 (2025-03-27)&lt;br /&gt;
    - bugfix for set_eval not adding additional skins to skinning bounty amount&lt;br /&gt;
  v1.5.5 (2025-03-19)&lt;br /&gt;
    - remove deprecated Lich calls&lt;br /&gt;
  v1.5.4 (2025-03-10)&lt;br /&gt;
    - another bugfix for bundled skins&lt;br /&gt;
  v1.5.3 (2025-03-08)&lt;br /&gt;
    - bugfix when counting bundled skins&lt;br /&gt;
  v1.5.2 (2025-02-09)&lt;br /&gt;
    - bugfix when only foraging and needing healed&lt;br /&gt;
  v1.5.1 (2025-01-07)&lt;br /&gt;
    - bugfix for forage turn-in&lt;br /&gt;
  v1.5.0 (2024-12-24)&lt;br /&gt;
    - added buffing option when resting&lt;br /&gt;
    - added using a script to handling resting location&lt;br /&gt;
    - added option to rest at nearest table&lt;br /&gt;
    - added remove bounty if heirloom item gets lost&lt;br /&gt;
    - bugfix for bounty eval not setting EBounty.data.complete_mind&lt;br /&gt;
    - bugfix for ask_guard in HW&lt;br /&gt;
  v1.4.5 (2024-11-26)&lt;br /&gt;
    - added option to use the bigshot setting for a resting location&lt;br /&gt;
    - bugfix for profile dropdown sorting&lt;br /&gt;
    - bugfix stop script from looping if started without child in room&lt;br /&gt;
  v1.4.4 (2024-11-22)&lt;br /&gt;
    - bugfix in should_hunt&lt;br /&gt;
  v1.4.3 (2024-11-18)&lt;br /&gt;
    - missing criteria in should_hunt?&lt;br /&gt;
    - bugfix in wait_for_bounty&lt;br /&gt;
    - removed EBounty.data.wait - no longer used&lt;br /&gt;
  v1.4.2 (2024-11-16)&lt;br /&gt;
    - bugfix for when to rest&lt;br /&gt;
  v1.4.1 (2024-11-07)&lt;br /&gt;
    - will continue hunting after bounty complete until Bigshot Should Rest? is met&lt;br /&gt;
    - bugfix in setup - prevent toggling both Rest when mind is full and Keep Hunting&lt;br /&gt;
    - bug fix for should_hunt? spamming an experience check&lt;br /&gt;
    - bug fix for should_hunt? exp_pause incorrectly included&lt;br /&gt;
  v1.4.0 (2024-08-23)&lt;br /&gt;
    - expanded resting options&lt;br /&gt;
    - added optional death recovery support&lt;br /&gt;
    - added spinbutton for room delay for bandit bounties&lt;br /&gt;
    - asks the alchemist in HW for bounties instead of the tavernkeeper since he keeps moving&lt;br /&gt;
    - bugfix in gem bounty running hording script with parameters&lt;br /&gt;
    - bugfix in bandit hunting variables&lt;br /&gt;
    - removed script change log before v1.3.0 - full log: https://gswiki.play.net/Lich:Script_Ebounty&lt;br /&gt;
  v1.3.11 (2024-09-24)&lt;br /&gt;
    - fix to allow for CLI foraging without setting Gem/Default profile&lt;br /&gt;
  v1.3.10 (2024-08-19)&lt;br /&gt;
    - bugfix for ask_guard response&lt;br /&gt;
  v1.3.9 (2024-08-14)&lt;br /&gt;
    - logic fix when once_and_done is set and rejected bounty not exiting (but going out to hunt instead)&lt;br /&gt;
  v1.3.8 (2024-07-12)&lt;br /&gt;
    - add timer to not spam INFO during should_hunt? method&lt;br /&gt;
  v1.3.7 (2024-07-08)&lt;br /&gt;
    - add quiet info command to should_hunt? method to refresh stats&lt;br /&gt;
  v1.3.6 (2024-06-23)&lt;br /&gt;
    - update ebounty fog routine to match bigshot&lt;br /&gt;
  v1.3.5 (2024-05-15)&lt;br /&gt;
    - add exit if gembounty complete but using eloot sell excludes gems&lt;br /&gt;
  v1.3.4 (2024-05-01)&lt;br /&gt;
    - Change Char.prof to Stats.prof&lt;br /&gt;
  v1.3.3 (2024-04-13)&lt;br /&gt;
    - bug in escort task acceptance&lt;br /&gt;
  v1.3.2 (2024-04-09)&lt;br /&gt;
    - bug in forage for 1011 song of peace usage&lt;br /&gt;
  v1.3.1 (2024-04-01)&lt;br /&gt;
    - updated keep_hunting not to run in bigshot bounty mode. Also, added better messaging for why&lt;br /&gt;
    - consolidated herbalist names and switched to ID for turnin&lt;br /&gt;
    - updated wiki changelog&lt;br /&gt;
    - removed change log before v1.1.14 - full log: https://gswiki.play.net/Lich:Script_Ebounty&lt;br /&gt;
  v1.3.0 (2024-03-17)&lt;br /&gt;
    - added exclusion options for individual gems and locations&lt;br /&gt;
    - added help section&lt;br /&gt;
    - bugfix for UI title&lt;br /&gt;
    - removed shattered specific actions not referenced in UI (requesting spells and healing in the nexus)&lt;br /&gt;
  v1.2.2 (2024-03-03)&lt;br /&gt;
    - bugfix for gem hoarding scripts that handle selling gems&lt;br /&gt;
  v1.2.1 (2024-02-25)&lt;br /&gt;
    - bugfix for condition where ebounty may be repeatedly invoke eherbs&lt;br /&gt;
  v1.2.0 (2024-02-09)&lt;br /&gt;
    - added toggle to skip healing&lt;br /&gt;
    - added individual script options for rescue, escort, and hording&lt;br /&gt;
  v1.1.37 (2024-01-08)&lt;br /&gt;
    - add option to HIDE back for no-magic rooms if enabled to hide.&lt;br /&gt;
  v1.1.36 (2024-01-06)&lt;br /&gt;
    - remove forced HIDE for foraging put in by error.&lt;br /&gt;
  v1.1.35 (2024-01-02)&lt;br /&gt;
    - added check for nomagic tag before casting spells.&lt;br /&gt;
  v1.1.34 (2023-11-16)&lt;br /&gt;
    - bugfix in location check for foraging&lt;br /&gt;
  v1.1.33 (2023-11-10)&lt;br /&gt;
    - bugfix to stop trying to hand in herbs if completed&lt;br /&gt;
    - added check for having enough herbs for turnin&lt;br /&gt;
  v1.1.32 (2023-10-13)&lt;br /&gt;
    - update hunting settings to use bigshot fried setting instead of setting to 100&lt;br /&gt;
  v1.1.31 (2023-09-27)&lt;br /&gt;
    - bugfix when asking taskmaster for bounty in crowded room&lt;br /&gt;
  v1.1.30 (2023-09-26)&lt;br /&gt;
    - bugfix for closing containers&lt;br /&gt;
  v1.1.29 (2023-09-23)&lt;br /&gt;
    - bugfix to initialize settings when using stand alone foraging&lt;br /&gt;
  v1.1.28 (2023-09-23)&lt;br /&gt;
    - bugfix for checking if 604 is active&lt;br /&gt;
  v1.1.27 (2023-09-17)&lt;br /&gt;
    - bugfix for CLI foraging exiting when &amp;quot;just the basics&amp;quot; option toggled true&lt;br /&gt;
    - bugfix for black void check when foraging&lt;br /&gt;
  v1.1.26 (2023-09-09)&lt;br /&gt;
    - bugfix for CLI setting values to true/false with Ruby 3.2&lt;br /&gt;
  v1.1.25 (2023-07-10)&lt;br /&gt;
    - bugfix for HW guard&lt;br /&gt;
    - bugfix for Ta&#039;Vaalor guards&lt;br /&gt;
    - bugfix for rejecting heirloom taskers&lt;br /&gt;
    - turn portals off for escorts&lt;br /&gt;
  v1.1.24 (2023-07-10)&lt;br /&gt;
    - bugfix for HW taskmaster&lt;br /&gt;
  v1.1.23 (2023-07-05)&lt;br /&gt;
    - keep silvers based on eloot setting&lt;br /&gt;
  v1.1.22 (2023-06-19)&lt;br /&gt;
    - changed the resting room to default to your bigshot profile&lt;br /&gt;
    - should recognize the correct town to turn in bounties&lt;br /&gt;
  v1.1.22 (2023-06-11)&lt;br /&gt;
    - removed need to set a resting room&lt;br /&gt;
  v1.1.21 (2023-06-11)&lt;br /&gt;
    - bugfix for missing category in tasks&lt;br /&gt;
  v1.1.20 (2023-06-04)&lt;br /&gt;
    - prep for new Lich 5.7.0 infomon.lic &amp;amp; effect-list.xml change&lt;br /&gt;
  v1.1.19 (2023-05-21)&lt;br /&gt;
    - bugfix for string error when finding rooms&lt;br /&gt;
    - bugfix for heirloom turnin&lt;br /&gt;
    - added support to wait for shattered healbot&lt;br /&gt;
  v1.1.18 (2023-05-21)&lt;br /&gt;
    - bugfix for escort tasks&lt;br /&gt;
  v1.1.17 (2023-05-17)&lt;br /&gt;
    - added missing escort locations&lt;br /&gt;
    - bugfix for foraging using an heirloom setting&lt;br /&gt;
    - bugfix for CLI herb gathering&lt;br /&gt;
  v1.1.16 (2023-04-22)&lt;br /&gt;
    - bugfix for RR purser&lt;br /&gt;
  v1.1.15 (2023-04-11)&lt;br /&gt;
    - bugfix bandit bounty locations&lt;br /&gt;
    - bugfix in dangerous creature regex&lt;br /&gt;
  v1.1.14 (2023-04-11)&lt;br /&gt;
    - bugfix for CLI&lt;br /&gt;
    - switched bounty_check to use Bounty API regex&lt;br /&gt;
    - moved 213 into loop during foraging so it checks each time in case the spell wears off&lt;br /&gt;
    - removed list of alternate foraging herb commands. Instead using in-game bounty xml for correct forage syntax&lt;br /&gt;
    - added option to hunt with default profile instead of exiting when no profile found&lt;br /&gt;
  v1.1.13 (2023-03-16)&lt;br /&gt;
    - added sigil of resolve to foraging&lt;br /&gt;
    - added flag righthand for heirloom search bounties&lt;br /&gt;
    - replace script.vars with Script.current.vars&lt;br /&gt;
    - run loot script only if loot at end of hunt&lt;br /&gt;
    - added strip for extra spaced in herb bounties&lt;br /&gt;
    - added check for right hand flag to make sure it gets turned off&lt;br /&gt;
  v1.1.12 (2023-03-16)&lt;br /&gt;
    - bugfix in rescue task regex&lt;br /&gt;
    - changed bundle measuring to not be silent to prevent unintented screen scroll&lt;br /&gt;
  v1.1.11 (2023-03-05)&lt;br /&gt;
    - bugfix in string literal&lt;br /&gt;
  v1.1.10 (2023-03-05)&lt;br /&gt;
    - reverted string literal changes back&lt;br /&gt;
    - fixed bug in child bounty&lt;br /&gt;
  v1.1.9 (2023-03-05)&lt;br /&gt;
    - reverted string literal changes&lt;br /&gt;
  v1.1.8 (2023-03-04)&lt;br /&gt;
    - added herb exclusions, rubocop fixes&lt;br /&gt;
  v1.1.7 (2023-03-02)&lt;br /&gt;
    - bug fix depositing silver&lt;br /&gt;
  v1.1.6 (2023-02-28)&lt;br /&gt;
    - fixed looting script from running in town&lt;br /&gt;
  v1.1.5 (2023-02-28)&lt;br /&gt;
    - fixed regex error in herb task location&lt;br /&gt;
  v1.1.4 (2023-02-23)&lt;br /&gt;
    - fixed regex error in targeting&lt;br /&gt;
  v1.1.3 (2023-02-23)&lt;br /&gt;
    - Added check for npcs in heirloom search&lt;br /&gt;
  v1.1.2 (2023-02-04)&lt;br /&gt;
    - added support for keeping silvers&lt;br /&gt;
  v1.1.1 (2023-02-01)&lt;br /&gt;
    - bug fix for foraging spells (waitcastrt? for assume yierka)&lt;br /&gt;
    - rearranged post-hunt sequence to mimic bigshot functionality.&lt;br /&gt;
    -fixed forage/heirloom search using empty_hands&lt;br /&gt;
  v1.1.0 (2023-01-27)&lt;br /&gt;
    - added pre and post hunt commands and scripts for foraging, heirloom search, and escorts&lt;br /&gt;
    - added bad room entries for bandits that will accept UID&#039;s&lt;br /&gt;
    - added spell support for heirloom search bounties&lt;br /&gt;
    - added 1035 to foraging and heirloom searching&lt;br /&gt;
    - think I finally squashed the repeating Song of Peace bug&lt;br /&gt;
  v1.0.32 (2023-01-26)&lt;br /&gt;
    - bugfix for heirloom searching&lt;br /&gt;
  v1.0.31 (2023-01-24)&lt;br /&gt;
    - reordered casting of song of peace during foraging and stopping it when done.&lt;br /&gt;
    - added a double check for heirloom searching&lt;br /&gt;
  v1.0.30 (2023-01-23)&lt;br /&gt;
    - fix bad Widowmaker Rd room#&lt;br /&gt;
  v1.0.29 (2023-01-23)&lt;br /&gt;
    - fix bugfix in variable list from v1.0.29&lt;br /&gt;
  v1.0.28 (2023-01-23)&lt;br /&gt;
    - added herbalist to Mist Harbor&lt;br /&gt;
  v1.0.27 (2023-01-22)&lt;br /&gt;
    - refreshed spell active before casting foraging helper spells&lt;br /&gt;
    - add check for silver deposit after bounty turn-in&lt;br /&gt;
    - fixed bug in bundled skin eval&lt;br /&gt;
  v1.0.26 (2023-01-21)&lt;br /&gt;
    - fixed bug in herb turnin when caught in RT&lt;br /&gt;
    - fixed prep-hunt command to run scripts consistent with bigshot functionality&lt;br /&gt;
  v1.0.25 (2023-01-19)&lt;br /&gt;
    - Fix badlist rooms and add bad logging road rooms&lt;br /&gt;
  v1.0.24 (2023-01-19)&lt;br /&gt;
    - Correct another typo in herb finding method&lt;br /&gt;
  v1.0.23 (2023-01-16)&lt;br /&gt;
    - Correct typo in herb finding method&lt;br /&gt;
  v1.0.22 (2023-01-12)&lt;br /&gt;
    - Change EBounty.data.location_start to use nearest instead of first in list&lt;br /&gt;
  v1.0.21 (2023-01-02)&lt;br /&gt;
    - typo in bug fix&lt;br /&gt;
  v1.0.20 (2023-01-02)&lt;br /&gt;
    -bug fix moves minor sanct outside foraging loop to stop it spamming&lt;br /&gt;
  v1.0.19 (2023-01-01)&lt;br /&gt;
    -bug fix to stop voucher use when bounty boost is active&lt;br /&gt;
  v1.0.18 (2023-01-01)&lt;br /&gt;
    - added bounty boost to available options&lt;br /&gt;
    - added foraging enhancements - see foraging tab on ui&lt;br /&gt;
    - changed the herb searching routine to  try and eliminate false positives/negatives&lt;br /&gt;
    - updated infomon and spell-list version requirements to support 650 tracking&lt;br /&gt;
    - added CLI herb foraging independent of bounty - ;ebounty forage &amp;quot;&amp;lt;type of herb&amp;gt;&amp;quot; &amp;lt;number to find&amp;gt;&lt;br /&gt;
  v1.0.17 (2022-12-27)&lt;br /&gt;
    - ensuring following scripts are stopped before starting ebounty: go2, echild, ego2, bigshot&lt;br /&gt;
  v1.0.16 (2022-12-22)&lt;br /&gt;
    - typo fix for the bugfix for herbalist rooms using UID&#039;s&lt;br /&gt;
  v1.0.15 (2022-12-22)&lt;br /&gt;
    - bugfix for herbalist rooms using UID&#039;s&lt;br /&gt;
  v1.0.14 (2022-12-20)&lt;br /&gt;
    - updated herbalist rooms to use UID&#039;s for instance compatibility&lt;br /&gt;
  v1.0.13 (2022-12-19)&lt;br /&gt;
    - add regex for opening an item&lt;br /&gt;
  v1.0.12 (2022-12-15)&lt;br /&gt;
    - made resting room a required parameter&lt;br /&gt;
    - consolidated odd herb names&lt;br /&gt;
  v1.0.11 (2022-12-12)&lt;br /&gt;
    - foraging name match fix&lt;br /&gt;
  v1.0.10 (2022-12-11)&lt;br /&gt;
    - fixed foraging herb matching bug&lt;br /&gt;
  v1.0.9 (2022-12-09)&lt;br /&gt;
    - bug fix for checkbounty not populating quickly&lt;br /&gt;
  v1.0.8 (2022-12-06)&lt;br /&gt;
    - moved post hunt routine to after forage turn-in to avoid trashing foraged item &lt;br /&gt;
    - bug fix for foraging in the red forest&lt;br /&gt;
  v1.0.7 (2022-12-05)&lt;br /&gt;
    - bug fix for hunting sequence resting&lt;br /&gt;
  v1.0.6 (2022-12-5)&lt;br /&gt;
    - fixed bug in rescue bounty sequencing.&lt;br /&gt;
  v1.0.5 (2022-12-3)&lt;br /&gt;
    - bugfix for bounty_eval&lt;br /&gt;
    - various foraging name corrections&lt;br /&gt;
    - pre/post hunting bigshot routines (from default profile) added to escort bounties&lt;br /&gt;
  v1.0.4 (2022-11-30)&lt;br /&gt;
    - bug fix on container opening&lt;br /&gt;
    - adjusted hunting sequence due to bigshot bounty_eval changing&lt;br /&gt;
    - set bounty_eval to empty string on exit&lt;br /&gt;
    - updated required versions to Lich 5.6.2, Bigshot 4.13.12, and Infomon 1.18.16&lt;br /&gt;
    - regex fix for completed task&lt;br /&gt;
  v1.0.3 (2022-11-28)&lt;br /&gt;
    - changed container method to use &amp;quot;inventory container&amp;quot; instead of GameObj.inv&lt;br /&gt;
  v1.0.2 (2022-11-27)&lt;br /&gt;
    - Fix to targeting not using bigshot routines&lt;br /&gt;
  v1.0.1 (2022-11-26)&lt;br /&gt;
    - hedgehog sack messaging&lt;br /&gt;
    - fixed herb names&lt;br /&gt;
    - support for Bigshot fogging options&lt;br /&gt;
    - child bounty fail bug&lt;br /&gt;
    - Fix for grizzled targeting when user only kills bounty creatures&lt;br /&gt;
  v1.0.0 (2022-05-18)&lt;br /&gt;
    - initial framework and ui&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Ebounty&amp;diff=265247</id>
		<title>Lich:Script Ebounty</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Ebounty&amp;diff=265247"/>
		<updated>2026-09-16T23:30:52Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: additional documentation and updates to latest version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
{{TOCright| limit=2}}&lt;br /&gt;
EBounty is a management script for automating [[Adventurer&#039;s Guild]] bounty tasks. It handles the full lifecycle of obtaining, executing, and turning in bounties.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; AFK scripting on any server other than Shattered is a violation of game policy.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This page documents EBounty &#039;&#039;&#039;v1.12.3&#039;&#039;&#039;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
EBounty automates the Adventurer&#039;s Guild bounty workflow:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
1. Request a bounty from the Adventurer&#039;s Guild.&lt;br /&gt;
2. If the bounty type is acceptable (based on your settings), execute the task.&lt;br /&gt;
3. If no acceptable bounty is available, run a Bigshot hunting routine using your default profile.&lt;br /&gt;
4. Once the bounty is complete, turn it in (if not saturated on experience).&lt;br /&gt;
5. When the bounty cooldown expires, request a new task.&lt;br /&gt;
6. Repeat.&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EBounty relies on [[Bigshot]] for all combat-related operations. &#039;&#039;&#039;You must configure your Bigshot profiles before setting up EBounty.&#039;&#039;&#039; It also uses companion scripts for specific task types: &amp;lt;CODE&amp;gt;;echild&amp;lt;/CODE&amp;gt; for rescue tasks, &amp;lt;CODE&amp;gt;;escortgo2&amp;lt;/CODE&amp;gt; for escort tasks, &amp;lt;CODE&amp;gt;;eherbs&amp;lt;/CODE&amp;gt; for healing, and &amp;lt;CODE&amp;gt;;eloot&amp;lt;/CODE&amp;gt; for selling loot. Each of these can be overridden with a custom script of your choice.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Download EBounty from the script repository:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;repo download ebounty&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since EBounty is actively developed and game changes can affect its functionality, it is strongly recommended to enable auto-updates:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;repo set-updatable ebounty&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Lich Version Requirement===&lt;br /&gt;
EBounty requires &#039;&#039;&#039;Lich 5.19.0 or newer&#039;&#039;&#039;. The script checks your Lich version on startup and refuses to run (with an update notice) on anything older. Newer releases occasionally raise this floor, so keep Lich current alongside the script.&lt;br /&gt;
&lt;br /&gt;
===Required Dependencies===&lt;br /&gt;
EBounty will check for and notify you of any missing dependencies when it starts. The following scripts are needed based on your configuration:&lt;br /&gt;
* &#039;&#039;&#039;bigshot&#039;&#039;&#039; — Always required (unless using &amp;quot;Just the Basics&amp;quot; mode)&lt;br /&gt;
* &#039;&#039;&#039;eherbs&#039;&#039;&#039; — Required for healing unless you specify a custom healing script or enable &amp;quot;Skip healing&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;eloot&#039;&#039;&#039; — Required for selling unless you specify a custom selling script&lt;br /&gt;
* &#039;&#039;&#039;echild&#039;&#039;&#039; — Required if you enable Rescue bounties (unless you specify a custom rescue script)&lt;br /&gt;
* &#039;&#039;&#039;escortgo2&#039;&#039;&#039; — Required if you enable Escort bounties (unless you specify a custom escort script)&lt;br /&gt;
&lt;br /&gt;
The dependency check is skipped entirely when &amp;quot;Just the basics&amp;quot; is enabled (either as a saved setting or via &amp;lt;CODE&amp;gt;;ebounty basic&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
Open the configuration window with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;ebounty setup&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This opens a GUI with eight tabs: &#039;&#039;&#039;General&#039;&#039;&#039;, &#039;&#039;&#039;Resting&#039;&#039;&#039;, &#039;&#039;&#039;Foraging&#039;&#039;&#039;, &#039;&#039;&#039;Heirloom&#039;&#039;&#039;, &#039;&#039;&#039;Bandits&#039;&#039;&#039;, &#039;&#039;&#039;Escort&#039;&#039;&#039;, &#039;&#039;&#039;Exclusions&#039;&#039;&#039;, and &#039;&#039;&#039;Profiles&#039;&#039;&#039;. All changes in the GUI are saved automatically.&lt;br /&gt;
&lt;br /&gt;
At minimum, you need to:&lt;br /&gt;
# Enable the bounty types you want on the &#039;&#039;&#039;General&#039;&#039;&#039; tab.&lt;br /&gt;
# Select a &#039;&#039;&#039;Gem/Default&#039;&#039;&#039; profile on the &#039;&#039;&#039;Profiles&#039;&#039;&#039; tab (this is the Bigshot profile used between bounties).&lt;br /&gt;
# Add creature names and associate Bigshot profiles on the &#039;&#039;&#039;Profiles&#039;&#039;&#039; tab for any creatures you expect to hunt.&lt;br /&gt;
&lt;br /&gt;
Once configured, start EBounty by simply running:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;ebounty&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; EBounty must be started from a mapped room.&lt;br /&gt;
&lt;br /&gt;
Every option in the GUI also has a setting name that can be changed from the command line — see [[#Command Line Interface (CLI)|Command Line Interface]] below.&lt;br /&gt;
&lt;br /&gt;
==General Tab==&lt;br /&gt;
The General tab controls which bounty types you accept, core behavior options, support scripts, and task limits.&lt;br /&gt;
&lt;br /&gt;
===Bounty Types===&lt;br /&gt;
Enable or disable each bounty type using the checkboxes. When a bounty type is unchecked, EBounty will automatically ask the Guild to remove that type if received. Available types:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bounty Type !! CLI value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Boss Creature || &amp;lt;CODE&amp;gt;boss_culling&amp;lt;/CODE&amp;gt; || Hunt a dangerous (boss-level) creature&lt;br /&gt;
|-&lt;br /&gt;
| Culling || &amp;lt;CODE&amp;gt;culling&amp;lt;/CODE&amp;gt; || Kill a specified number of a particular creature&lt;br /&gt;
|-&lt;br /&gt;
| Escort || &amp;lt;CODE&amp;gt;escort&amp;lt;/CODE&amp;gt; || Escort an NPC between two towns (uses &amp;lt;CODE&amp;gt;;escortgo2&amp;lt;/CODE&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Foraging || &amp;lt;CODE&amp;gt;foraging&amp;lt;/CODE&amp;gt; || Gather herbs from the wild (see the Foraging tab for options)&lt;br /&gt;
|-&lt;br /&gt;
| Gem Collecting || &amp;lt;CODE&amp;gt;gem_collecting&amp;lt;/CODE&amp;gt; || Collect specific gems by hunting creatures&lt;br /&gt;
|-&lt;br /&gt;
| Heirloom (loot) || &amp;lt;CODE&amp;gt;heirloom_loot&amp;lt;/CODE&amp;gt; || Recover an heirloom by looting a creature&lt;br /&gt;
|-&lt;br /&gt;
| Heirloom (search) || &amp;lt;CODE&amp;gt;heirloom_search&amp;lt;/CODE&amp;gt; || Recover an heirloom by searching rooms (see the Heirloom tab for options)&lt;br /&gt;
|-&lt;br /&gt;
| Kill Bandits || &amp;lt;CODE&amp;gt;kill_bandits&amp;lt;/CODE&amp;gt; || Suppress bandit activity in an area (see the Bandits tab for options)&lt;br /&gt;
|-&lt;br /&gt;
| Rescue || &amp;lt;CODE&amp;gt;rescue&amp;lt;/CODE&amp;gt; || Rescue a lost child (uses &amp;lt;CODE&amp;gt;;echild&amp;lt;/CODE&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Skinning || &amp;lt;CODE&amp;gt;skinning&amp;lt;/CODE&amp;gt; || Collect creature skins&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Misc Options===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option !! Setting name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Rest when mind full || &amp;lt;CODE&amp;gt;exp_pause&amp;lt;/CODE&amp;gt; || When enabled, EBounty will return to your resting location once your experience pool is full. When disabled, it continues hunting until the bounty is complete or another rest condition (injury, low mana, etc.) is triggered.&lt;br /&gt;
|-&lt;br /&gt;
| Keep hunting || &amp;lt;CODE&amp;gt;keep_hunting&amp;lt;/CODE&amp;gt; || When enabled and no creature-specific Bigshot profile is found, EBounty will use your Gem/Default profile to continue hunting instead of exiting. &#039;&#039;&#039;Cannot be used together with &amp;quot;Rest when mind full&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Skip healing || &amp;lt;CODE&amp;gt;skip_healing&amp;lt;/CODE&amp;gt; || Disables automatic healing between tasks.&lt;br /&gt;
|-&lt;br /&gt;
| Run one bounty and quit || &amp;lt;CODE&amp;gt;once_and_done&amp;lt;/CODE&amp;gt; || EBounty will complete a single bounty and then stop.&lt;br /&gt;
|-&lt;br /&gt;
| Get new bounty before quitting || &amp;lt;CODE&amp;gt;new_bounty_on_exit&amp;lt;/CODE&amp;gt; || (Only applies when &amp;quot;Run one bounty and quit&amp;quot; is enabled; the checkbox is greyed out otherwise.) Grabs the next task from the Guild before exiting.&lt;br /&gt;
|-&lt;br /&gt;
| Just the basics || &amp;lt;CODE&amp;gt;basic&amp;lt;/CODE&amp;gt; || Only picks up and turns in bounties based on your settings. No automatic hunting, healing, or other routines are performed. Useful if you want to manage combat yourself. Also skips the dependency check and the Gem/Default profile requirement, and returns you to the room you started in on exit.&lt;br /&gt;
|-&lt;br /&gt;
| Use vouchers || &amp;lt;CODE&amp;gt;use_vouchers&amp;lt;/CODE&amp;gt; || EBounty will use Adventurer&#039;s Guild vouchers to reroll tasks until a desired bounty type is obtained.&lt;br /&gt;
|-&lt;br /&gt;
| Use bounty boosts || &amp;lt;CODE&amp;gt;use_boosts&amp;lt;/CODE&amp;gt; / &amp;lt;CODE&amp;gt;boost_type&amp;lt;/CODE&amp;gt; || Activates a bounty boost before hunting. Use the adjacent dropdown to select which bounty type to target when boosted (Any, Kill, Heirloom, Skin, Gem, Escort, Herb, Dangerous, Child, or Bandit).&lt;br /&gt;
|-&lt;br /&gt;
| Remove bounty if heirloom item is missing || &amp;lt;CODE&amp;gt;remove_heirloom&amp;lt;/CODE&amp;gt; || If enabled and the heirloom item gets lost, EBounty will automatically remove the bounty.&lt;br /&gt;
|-&lt;br /&gt;
| Rejoin group before quitting || &amp;lt;CODE&amp;gt;return_to_group&amp;lt;/CODE&amp;gt; || If you started EBounty while in a group, it will attempt to rejoin the group leader before exiting.&lt;br /&gt;
|-&lt;br /&gt;
| Ranger Track || &amp;lt;CODE&amp;gt;ranger_track&amp;lt;/CODE&amp;gt; || (Rangers only — the checkbox is disabled for other professions.) Uses the Track ability on cooldown to locate bounty targets.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Support Scripts===&lt;br /&gt;
These fields let you override the default helper scripts. Each field accepts a script name optionally followed by parameters, and multiple scripts may be separated by commas.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field !! Setting name !! Default !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Healing Script || &amp;lt;CODE&amp;gt;healing_script&amp;lt;/CODE&amp;gt; || &amp;lt;CODE&amp;gt;eherbs&amp;lt;/CODE&amp;gt; || Runs when your character is injured between tasks.&lt;br /&gt;
|-&lt;br /&gt;
| Death Recovery Script || &amp;lt;CODE&amp;gt;death_script&amp;lt;/CODE&amp;gt; || &#039;&#039;(none)&#039;&#039; || Runs if your character dies. If configured, EBounty starts a watcher that stops bigshot/go2, runs this script, and restarts EBounty automatically with the same command-line arguments. If left blank, EBounty simply exits on death.&lt;br /&gt;
|-&lt;br /&gt;
| Selling Script || &amp;lt;CODE&amp;gt;selling_script&amp;lt;/CODE&amp;gt; || &amp;lt;CODE&amp;gt;eloot&amp;lt;/CODE&amp;gt; || Runs to sell loot and deposit silvers.&lt;br /&gt;
|-&lt;br /&gt;
| Hording Script || &amp;lt;CODE&amp;gt;hording_script&amp;lt;/CODE&amp;gt; || &#039;&#039;(none)&#039;&#039; || Runs before a gem bounty (optional). Enter the script name followed by any necessary parameters (e.g., &amp;lt;CODE&amp;gt;HoardingScriptName param1 param2&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| Escort Script || &amp;lt;CODE&amp;gt;escort_script&amp;lt;/CODE&amp;gt; || &amp;lt;CODE&amp;gt;escortgo2&amp;lt;/CODE&amp;gt; || Handles escort bounty travel.&lt;br /&gt;
|-&lt;br /&gt;
| Rescue Script || &amp;lt;CODE&amp;gt;rescue_script&amp;lt;/CODE&amp;gt; || &amp;lt;CODE&amp;gt;echild&amp;lt;/CODE&amp;gt; || Handles child rescue bounties.&lt;br /&gt;
|-&lt;br /&gt;
| Gem History || &amp;lt;CODE&amp;gt;gem_history&amp;lt;/CODE&amp;gt; || &#039;&#039;(none)&#039;&#039; || An optional script that runs after receiving a gem bounty, useful for tracking which gems are requested.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Task Limits===&lt;br /&gt;
Set maximum values for how many items to collect per bounty type. These caps help prevent excessively long tasks. All are spin buttons with a maximum of 100.&lt;br /&gt;
* &#039;&#039;&#039;Max Culling Kills&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;culling_max&amp;lt;/CODE&amp;gt;, default 30) — Maximum number of creatures to kill for a culling bounty.&lt;br /&gt;
* &#039;&#039;&#039;Max Gems&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;gem_max&amp;lt;/CODE&amp;gt;, default 30) — Maximum number of gems to collect.&lt;br /&gt;
* &#039;&#039;&#039;Max Herbs&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;herb_max&amp;lt;/CODE&amp;gt;, default 30) — Maximum number of herbs to forage.&lt;br /&gt;
* &#039;&#039;&#039;Max Skins&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;skin_max&amp;lt;/CODE&amp;gt;, default 30) — Maximum number of skins to collect.&lt;br /&gt;
* &#039;&#039;&#039;# of Extra Skins&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;extra_skin&amp;lt;/CODE&amp;gt;, default 0) — How many additional skins to collect beyond the bounty requirement before turning in.&lt;br /&gt;
&lt;br /&gt;
==Resting Tab==&lt;br /&gt;
The Resting tab controls where your character rests between tasks and during downtime. &#039;&#039;&#039;Only one resting method can be active at a time&#039;&#039;&#039; — selecting one will deactivate the others.&lt;br /&gt;
&lt;br /&gt;
===Resting Methods===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option !! Setting name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Use Nearest Table || &amp;lt;CODE&amp;gt;table_rest&amp;lt;/CODE&amp;gt; || Travels to the nearest mapped table and sits at it.&lt;br /&gt;
|-&lt;br /&gt;
| Use Bigshot Resting Room || &amp;lt;CODE&amp;gt;bigshot_rest&amp;lt;/CODE&amp;gt; || Uses the resting room configured in your current Bigshot profile.&lt;br /&gt;
|-&lt;br /&gt;
| Use Custom Resting Area(s) || &amp;lt;CODE&amp;gt;custom_rest&amp;lt;/CODE&amp;gt; + &amp;lt;CODE&amp;gt;resting_room&amp;lt;/CODE&amp;gt; || Enter one or more room numbers (comma-separated) in the text field below. If multiple rooms are listed, one will be selected at random. Supports room IDs and UIDs.&lt;br /&gt;
|-&lt;br /&gt;
| Use Random Resting Areas || &amp;lt;CODE&amp;gt;rest_random&amp;lt;/CODE&amp;gt; || Picks a random [[supernode]] in your current town, drawn from the per-town lists below.&lt;br /&gt;
|-&lt;br /&gt;
| Use Script to Handle Resting Location || &amp;lt;CODE&amp;gt;use_script&amp;lt;/CODE&amp;gt; + &amp;lt;CODE&amp;gt;use_script_name&amp;lt;/CODE&amp;gt; || Runs a custom script to manage where you rest. Enter the script name and any parameters in the field below (e.g., &amp;lt;CODE&amp;gt;myscript param1 param2&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no resting method is selected, EBounty defaults to the Nexus (on Shattered) or town center (on Prime).&lt;br /&gt;
&lt;br /&gt;
===Per-Town Resting Locations===&lt;br /&gt;
Below the resting method checkboxes, you can customize the random resting room pools for each town. Each field contains a comma-separated list of room IDs that EBounty will randomly choose from when using the &amp;quot;Use Random Resting Areas&amp;quot; option. Room IDs and UIDs are both accepted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Town !! Setting name&lt;br /&gt;
|-&lt;br /&gt;
| Hinter Wilds || &amp;lt;CODE&amp;gt;hw_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Icemule Trace || &amp;lt;CODE&amp;gt;icemule_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Kharam Dzu (Teras) || &amp;lt;CODE&amp;gt;teras_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Kraken&#039;s Fall || &amp;lt;CODE&amp;gt;kf_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mist Harbor || &amp;lt;CODE&amp;gt;fwi_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| River&#039;s Rest || &amp;lt;CODE&amp;gt;rr_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sailor&#039;s Grief || &amp;lt;CODE&amp;gt;contempt_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Solhaven || &amp;lt;CODE&amp;gt;solhaven_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ta&#039;Illistim || &amp;lt;CODE&amp;gt;illy_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ta&#039;Vaalor || &amp;lt;CODE&amp;gt;vaalor_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wehnimer&#039;s Landing || &amp;lt;CODE&amp;gt;landing_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Zul Logoth || &amp;lt;CODE&amp;gt;zul_resting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; the shipped defaults for several of these differ between Prime and Shattered (GSF), because the room IDs differ between instances. If you copy a settings file between instances, re-check these fields.&lt;br /&gt;
&lt;br /&gt;
===Additional Resting Options===&lt;br /&gt;
* &#039;&#039;&#039;Join Character&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;join_player&amp;lt;/CODE&amp;gt; + &amp;lt;CODE&amp;gt;join_list&amp;lt;/CODE&amp;gt;) — When enabled, EBounty will try to join a specific character when resting. Enter one or more character names (comma-separated) in the field; it will try each in order.&lt;br /&gt;
* &#039;&#039;&#039;Use Buff Script&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;use_buff_script&amp;lt;/CODE&amp;gt; + &amp;lt;CODE&amp;gt;buff_script&amp;lt;/CODE&amp;gt;) — When enabled, EBounty will run a buff script each time it returns to the resting location. Enter the script name and parameters below.&lt;br /&gt;
&lt;br /&gt;
==Foraging Tab==&lt;br /&gt;
The Foraging tab configures how EBounty handles herb-gathering bounties. This tab has three sections.&lt;br /&gt;
&lt;br /&gt;
===Foraging Options===&lt;br /&gt;
Enable spells, abilities, and behaviors to use while foraging. These help with safety and efficiency. All of these are stored in the &amp;lt;CODE&amp;gt;forage_options&amp;lt;/CODE&amp;gt; array setting; the CLI value for each is listed below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option !! CLI value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Run from creatures || &amp;lt;CODE&amp;gt;run&amp;lt;/CODE&amp;gt; || Flee the room if creatures appear.&lt;br /&gt;
|-&lt;br /&gt;
| Hide when foraging || &amp;lt;CODE&amp;gt;hiding&amp;lt;/CODE&amp;gt; || Attempt to hide before foraging.&lt;br /&gt;
|-&lt;br /&gt;
| Rogue Gambits: Stealth || &amp;lt;CODE&amp;gt;use_gambit&amp;lt;/CODE&amp;gt; || Use the Rogue Stealth gambit while foraging.&lt;br /&gt;
|-&lt;br /&gt;
| Nature&#039;s Bounty (604) || &amp;lt;CODE&amp;gt;use_604&amp;lt;/CODE&amp;gt; || Cast spell 604 to improve foraging results.&lt;br /&gt;
|-&lt;br /&gt;
| Nature&#039;s Bounty Evoke (604) || &amp;lt;CODE&amp;gt;use_604evoke&amp;lt;/CODE&amp;gt; || Evoke spell 604 instead of casting.&lt;br /&gt;
|-&lt;br /&gt;
| Camouflage (608) || &amp;lt;CODE&amp;gt;use_608&amp;lt;/CODE&amp;gt; || Cast spell 608 to stay hidden.&lt;br /&gt;
|-&lt;br /&gt;
| Celerity (506) || &amp;lt;CODE&amp;gt;use_506&amp;lt;/CODE&amp;gt; || Cast spell 506 for faster actions.&lt;br /&gt;
|-&lt;br /&gt;
| Mass Calm (619) || &amp;lt;CODE&amp;gt;use_619&amp;lt;/CODE&amp;gt; || Cast spell 619 to pacify creatures.&lt;br /&gt;
|-&lt;br /&gt;
| Wizard&#039;s Shield (919) || &amp;lt;CODE&amp;gt;use_919&amp;lt;/CODE&amp;gt; || Cast spell 919 for additional protection.&lt;br /&gt;
|-&lt;br /&gt;
| Minor Sanctuary (213) || &amp;lt;CODE&amp;gt;use_213&amp;lt;/CODE&amp;gt; || Cast spell 213 for a protective sanctuary.&lt;br /&gt;
|-&lt;br /&gt;
| Song of Peace (1011) || &amp;lt;CODE&amp;gt;use_1011&amp;lt;/CODE&amp;gt; || Sing Song of Peace to prevent creature attacks.&lt;br /&gt;
|-&lt;br /&gt;
| Song of Tonis (1035) || &amp;lt;CODE&amp;gt;use_1035&amp;lt;/CODE&amp;gt; || Sing Song of Tonis for speed.&lt;br /&gt;
|-&lt;br /&gt;
| Wall of Force (140) || &amp;lt;CODE&amp;gt;use_140&amp;lt;/CODE&amp;gt; || Cast spell 140 for a defensive barrier.&lt;br /&gt;
|-&lt;br /&gt;
| Assume Aspect (650) Yierka || &amp;lt;CODE&amp;gt;use_650&amp;lt;/CODE&amp;gt; || Assume the Yierka aspect for enhanced foraging.&lt;br /&gt;
|-&lt;br /&gt;
| Grasp of the Grave (709) || &amp;lt;CODE&amp;gt;use_709&amp;lt;/CODE&amp;gt; || Cast spell 709 to immobilize creatures.&lt;br /&gt;
|-&lt;br /&gt;
| Sigil of Resolve || &amp;lt;CODE&amp;gt;use_resolve&amp;lt;/CODE&amp;gt; || Activate the Sigil of Resolve.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
EBounty checks for the &amp;lt;CODE&amp;gt;nomagic&amp;lt;/CODE&amp;gt; room tag before casting any of these.&lt;br /&gt;
&lt;br /&gt;
===Pre-Foraging===&lt;br /&gt;
* &#039;&#039;&#039;Pre-Foraging Commands&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;forage_prep_commands&amp;lt;/CODE&amp;gt;) — In-game commands to execute before each foraging session.&lt;br /&gt;
* &#039;&#039;&#039;Active Foraging Scripts&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;forage_prep_scripts&amp;lt;/CODE&amp;gt;) — Scripts to run alongside foraging (comma-separated for multiple).&lt;br /&gt;
&lt;br /&gt;
===Post-Foraging===&lt;br /&gt;
* &#039;&#039;&#039;Post-Foraging Commands&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;forage_post_commands&amp;lt;/CODE&amp;gt;) — In-game commands to execute after foraging is complete.&lt;br /&gt;
* &#039;&#039;&#039;Post-Foraging Scripts&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;forage_post_scripts&amp;lt;/CODE&amp;gt;) — Scripts to run after foraging finishes.&lt;br /&gt;
&lt;br /&gt;
==Heirloom Tab==&lt;br /&gt;
The Heirloom tab configures how EBounty handles heirloom &#039;&#039;search&#039;&#039; bounties (where you must search rooms to find the item, not loot it from a creature). This tab mirrors the Foraging tab structure with three sections.&lt;br /&gt;
&lt;br /&gt;
===Search Options===&lt;br /&gt;
Enable spells and behaviors to use while searching for heirloom items. All of these are stored in the &amp;lt;CODE&amp;gt;heirloom_options&amp;lt;/CODE&amp;gt; array setting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option !! CLI value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Run from creatures || &amp;lt;CODE&amp;gt;run&amp;lt;/CODE&amp;gt; || Flee the room if creatures appear.&lt;br /&gt;
|-&lt;br /&gt;
| Presence (402) || &amp;lt;CODE&amp;gt;use_402&amp;lt;/CODE&amp;gt; || Cast spell 402 to detect nearby items.&lt;br /&gt;
|-&lt;br /&gt;
| Minor Sanctuary (213) || &amp;lt;CODE&amp;gt;use_213&amp;lt;/CODE&amp;gt; || Cast spell 213 for protection.&lt;br /&gt;
|-&lt;br /&gt;
| Song of Peace (1011) || &amp;lt;CODE&amp;gt;use_1011&amp;lt;/CODE&amp;gt; || Sing Song of Peace to prevent attacks.&lt;br /&gt;
|-&lt;br /&gt;
| Celerity (506) || &amp;lt;CODE&amp;gt;use_506&amp;lt;/CODE&amp;gt; || Cast spell 506 for speed.&lt;br /&gt;
|-&lt;br /&gt;
| Mass Calm (619) || &amp;lt;CODE&amp;gt;use_619&amp;lt;/CODE&amp;gt; || Cast spell 619 to pacify creatures.&lt;br /&gt;
|-&lt;br /&gt;
| Wizard&#039;s Shield (919) || &amp;lt;CODE&amp;gt;use_919&amp;lt;/CODE&amp;gt; || Cast spell 919 for protection.&lt;br /&gt;
|-&lt;br /&gt;
| Wall of Force (140) || &amp;lt;CODE&amp;gt;use_140&amp;lt;/CODE&amp;gt; || Cast spell 140 for defense.&lt;br /&gt;
|-&lt;br /&gt;
| Grasp of the Grave (709) || &amp;lt;CODE&amp;gt;use_709&amp;lt;/CODE&amp;gt; || Cast spell 709 to immobilize creatures.&lt;br /&gt;
|-&lt;br /&gt;
| Song of Tonis (1035) || &amp;lt;CODE&amp;gt;use_1035&amp;lt;/CODE&amp;gt; || Sing Song of Tonis for speed.&lt;br /&gt;
|-&lt;br /&gt;
| Flag right hand || &amp;lt;CODE&amp;gt;use_right&amp;lt;/CODE&amp;gt; || By default, found heirloom items are placed on the ground. Enable this to have the item go to your right hand instead.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Pre-Heirloom Searching===&lt;br /&gt;
* &#039;&#039;&#039;Pre-Searching Commands&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;heirloom_prep_commands&amp;lt;/CODE&amp;gt;) — In-game commands to execute before beginning the search.&lt;br /&gt;
* &#039;&#039;&#039;Active Searching Scripts&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;heirloom_prep_scripts&amp;lt;/CODE&amp;gt;) — Scripts to run alongside searching.&lt;br /&gt;
&lt;br /&gt;
===Post-Heirloom Searching===&lt;br /&gt;
* &#039;&#039;&#039;Post-Searching Commands&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;heirloom_post_commands&amp;lt;/CODE&amp;gt;) — In-game commands to execute after the heirloom is found.&lt;br /&gt;
* &#039;&#039;&#039;Post-Searching Scripts&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;heirloom_post_scripts&amp;lt;/CODE&amp;gt;) — Scripts to run after searching finishes.&lt;br /&gt;
&lt;br /&gt;
==Bandits Tab==&lt;br /&gt;
The Bandits tab configures how EBounty handles bandit suppression bounties.&lt;br /&gt;
&lt;br /&gt;
===Wander Timing===&lt;br /&gt;
* &#039;&#039;&#039;Wait this long before moving rooms&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;wander_wait&amp;lt;/CODE&amp;gt;, default &amp;lt;CODE&amp;gt;0.5&amp;lt;/CODE&amp;gt;) — Controls the delay (in seconds) that EBounty waits in each room before moving on while searching for bandits. This is a decimal value. Adjust this to allow time for bandits to appear.&lt;br /&gt;
&lt;br /&gt;
===Bad Room List===&lt;br /&gt;
A twelve-row table where you can define rooms to avoid during bandit hunting. Each row has two fields:&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;location1&amp;lt;/CODE&amp;gt; … &amp;lt;CODE&amp;gt;location12&amp;lt;/CODE&amp;gt;) — A reference label for the area (does not need to be exact; this is for your convenience only).&lt;br /&gt;
* &#039;&#039;&#039;Bad Room Numbers&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;bad_room1&amp;lt;/CODE&amp;gt; … &amp;lt;CODE&amp;gt;bad_room12&amp;lt;/CODE&amp;gt;) — A comma-separated list of room IDs or UIDs to skip in that area (e.g., &amp;lt;CODE&amp;gt;228, 188, u76564564&amp;lt;/CODE&amp;gt;). UIDs are supported and recommended for instance compatibility.&lt;br /&gt;
&lt;br /&gt;
Twelve locations can be configured so you can exclude problematic rooms across all areas where bandits spawn.&lt;br /&gt;
&lt;br /&gt;
===Crawl Area Cap===&lt;br /&gt;
Bandit and location-based bounties are capped at &#039;&#039;&#039;100 rooms&#039;&#039;&#039; of hunting area. If the bounty location maps to more rooms than that, EBounty walks outward from the nearest room and keeps a single contiguous region of up to 100 rooms; the remaining rooms are automatically added as hunting boundaries so Bigshot will not wander past them. This keeps very large areas from turning into extremely long crawls.&lt;br /&gt;
&lt;br /&gt;
==Escort Tab==&lt;br /&gt;
The Escort tab configures how EBounty handles escort bounties — tasks where you accompany an NPC between two towns.&lt;br /&gt;
&lt;br /&gt;
===Travel Preferences===&lt;br /&gt;
A grid of checkboxes showing origin and destination town pairs. Enable the routes you are willing to accept. Only bounties matching your enabled routes will be accepted; others will be dropped.&lt;br /&gt;
&lt;br /&gt;
The six towns are Wehnimer&#039;s Landing, Solhaven, Icemule Trace, Ta&#039;Illistim, Ta&#039;Vaalor, and Zul Logoth, giving 30 directional routes. The routes are stored in the &amp;lt;CODE&amp;gt;escort_types&amp;lt;/CODE&amp;gt; array using the form &amp;lt;CODE&amp;gt;&amp;amp;lt;origin&amp;amp;gt;_to_&amp;amp;lt;destination&amp;amp;gt;&amp;lt;/CODE&amp;gt;, where each town is one of &amp;lt;CODE&amp;gt;landing&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;solhaven&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;icemule&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;illy&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;vaalor&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;zul&amp;lt;/CODE&amp;gt; — for example &amp;lt;CODE&amp;gt;landing_to_solhaven&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;illy_to_vaalor&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pre-Escort===&lt;br /&gt;
* &#039;&#039;&#039;Pre-Escort Commands&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;escort_prep_commands&amp;lt;/CODE&amp;gt;) — In-game commands to execute before starting the escort.&lt;br /&gt;
* &#039;&#039;&#039;Active Escort Scripts&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;escort_prep_scripts&amp;lt;/CODE&amp;gt;) — Scripts to run alongside the escort.&lt;br /&gt;
&lt;br /&gt;
===Post-Escort===&lt;br /&gt;
* &#039;&#039;&#039;Post-Escort Commands&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;escort_post_commands&amp;lt;/CODE&amp;gt;) — In-game commands to execute after the escort is complete.&lt;br /&gt;
* &#039;&#039;&#039;Post-Escort Scripts&#039;&#039;&#039; (&amp;lt;CODE&amp;gt;escort_post_scripts&amp;lt;/CODE&amp;gt;) — Scripts to run after the escort finishes.&lt;br /&gt;
&lt;br /&gt;
==Exclusions Tab==&lt;br /&gt;
The Exclusions tab lets you define things EBounty should never accept a bounty for. There are four exclusion lists, and each supports regular expressions for pattern matching. Add items one at a time using the text field and &#039;&#039;&#039;Add&#039;&#039;&#039; button. Select an item and click &#039;&#039;&#039;Remove&#039;&#039;&#039; to delete it. Entries are de-duplicated and kept sorted.&lt;br /&gt;
&lt;br /&gt;
===Creature Exclusions===&lt;br /&gt;
(&amp;lt;CODE&amp;gt;creature_exclude&amp;lt;/CODE&amp;gt;) Creature nouns you do not want to hunt. If a bounty targets an excluded creature, EBounty will reject it. Enter the creature noun exactly as it appears in-game (e.g., &amp;lt;CODE&amp;gt;troll&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;griffin&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Herb Exclusions===&lt;br /&gt;
(&amp;lt;CODE&amp;gt;herb_exclude&amp;lt;/CODE&amp;gt;) Herb names you do not want to forage. If a foraging bounty requests an excluded herb, EBounty will reject it.&lt;br /&gt;
&lt;br /&gt;
===Gem Exclusions===&lt;br /&gt;
(&amp;lt;CODE&amp;gt;gem_exclude&amp;lt;/CODE&amp;gt;) Gem names you do not want to collect. If a gem bounty requests an excluded gem, EBounty will reject it.&lt;br /&gt;
&lt;br /&gt;
===Location Exclusions===&lt;br /&gt;
(&amp;lt;CODE&amp;gt;location_exclude&amp;lt;/CODE&amp;gt;) Location/area names you do not want to visit for bounties. If a bounty sends you to an excluded location, EBounty will reject it.&lt;br /&gt;
&lt;br /&gt;
==Profiles Tab==&lt;br /&gt;
The Profiles tab is &#039;&#039;&#039;the most critical tab for combat&#039;&#039;&#039;. This is where you tell EBounty which Bigshot profile to use for each creature. The dropdown menus automatically populate with all Bigshot profiles found in your Bigshot profiles folder (&amp;lt;CODE&amp;gt;&amp;amp;lt;data dir&amp;amp;gt;/&amp;amp;lt;game&amp;amp;gt;/&amp;amp;lt;character&amp;amp;gt;/bigshot_profiles&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Gem/Default Profile===&lt;br /&gt;
At the top of the tab, select your &#039;&#039;&#039;Gem/Default&#039;&#039;&#039; Bigshot profile (&amp;lt;CODE&amp;gt;default_profile&amp;lt;/CODE&amp;gt;). This is the profile EBounty uses when:&lt;br /&gt;
* Waiting for a bounty timer to expire (hunts using this profile to fill time).&lt;br /&gt;
* No specific creature profile is matched.&lt;br /&gt;
* Running gem bounties.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This field is required.&#039;&#039;&#039; EBounty will not start without a default profile selected. The two exceptions are &amp;quot;Just the basics&amp;quot; mode and standalone CLI foraging (&amp;lt;CODE&amp;gt;;ebounty forage …&amp;lt;/CODE&amp;gt;), neither of which loads a combat profile.&lt;br /&gt;
&lt;br /&gt;
===Bandits Profile===&lt;br /&gt;
Below the default, select a profile specifically for bandit bounties (&amp;lt;CODE&amp;gt;bandits_profile&amp;lt;/CODE&amp;gt;). The &#039;&#039;&#039;Only Kill Bounty Creatures&#039;&#039;&#039; checkbox next to it (&amp;lt;CODE&amp;gt;kill_bandits&amp;lt;/CODE&amp;gt;) determines whether EBounty should ignore non-bandit creatures during bandit tasks.&lt;br /&gt;
&lt;br /&gt;
===Creature Profiles (A through J)===&lt;br /&gt;
Ten rows (A–J) are available for mapping creatures to Bigshot profiles. Each row has three fields:&lt;br /&gt;
* &#039;&#039;&#039;Creature Names&#039;&#039;&#039; (left, &amp;lt;CODE&amp;gt;names_a&amp;lt;/CODE&amp;gt; … &amp;lt;CODE&amp;gt;names_j&amp;lt;/CODE&amp;gt;) — Enter the full creature noun(s) for this profile. You can enter multiple creatures separated by commas or each on a separate line.&lt;br /&gt;
* &#039;&#039;&#039;Associated Profile&#039;&#039;&#039; (right dropdown, &amp;lt;CODE&amp;gt;profile_a&amp;lt;/CODE&amp;gt; … &amp;lt;CODE&amp;gt;profile_j&amp;lt;/CODE&amp;gt;) — Select the Bigshot profile to use when fighting these creatures.&lt;br /&gt;
* &#039;&#039;&#039;Only Kill Bounty Creatures&#039;&#039;&#039; (checkbox, &amp;lt;CODE&amp;gt;kill_a&amp;lt;/CODE&amp;gt; … &amp;lt;CODE&amp;gt;kill_j&amp;lt;/CODE&amp;gt;) — When checked, EBounty will only attack the specific bounty creature and ignore all other creatures in the hunting area.&lt;br /&gt;
&lt;br /&gt;
Rows are matched in order A through J, and the &#039;&#039;&#039;last&#039;&#039;&#039; matching row wins, so put your most specific entries later in the list if a creature name could match more than one row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Critical:&#039;&#039;&#039; Creature names must match exactly as they appear in-game. Partial or abbreviated names will not work.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Example !! Correct?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;executioner&amp;lt;/CODE&amp;gt; || &amp;amp;#10060; &#039;&#039;&#039;Wrong&#039;&#039;&#039; — too generic&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;triton executioner&amp;lt;/CODE&amp;gt; || &amp;amp;#9989; &#039;&#039;&#039;Correct&#039;&#039;&#039; — full creature noun&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If a creature is not listed in the Exclusions tab and no matching Creature Name can be found in any profile row, EBounty will either use the Gem/Default profile to keep hunting (if &amp;quot;Keep hunting&amp;quot; is enabled on the General tab) or return to the resting spot and exit.&lt;br /&gt;
&lt;br /&gt;
==Command Line Interface (CLI)==&lt;br /&gt;
&lt;br /&gt;
EBounty supports several commands that can be run directly from the game without opening the GUI. Anything that is not a recognized command prints the help table, so &amp;lt;CODE&amp;gt;;ebounty help&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;;ebounty ?&amp;lt;/CODE&amp;gt;, and any typo all behave the same way.&lt;br /&gt;
&lt;br /&gt;
===Running EBounty===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty&amp;lt;/CODE&amp;gt; || Start the main bounty loop using your saved settings. Must be run from a mapped room.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty once&amp;lt;/CODE&amp;gt; || Single run with &#039;&#039;&#039;full&#039;&#039;&#039; features: temporarily forces &amp;quot;Run one bounty and quit&amp;quot; on and &amp;quot;Just the basics&amp;quot; off, then exits after one bounty. Your saved settings are restored on exit.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty basic&amp;lt;/CODE&amp;gt; || Single run with &#039;&#039;&#039;just the basics&#039;&#039;&#039; enabled — picks up and turns in bounties only, no hunting, healing, or support scripts. The override is not written to your saved settings.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty setup&amp;lt;/CODE&amp;gt; || Open the GUI configuration window.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Both &amp;lt;CODE&amp;gt;once&amp;lt;/CODE&amp;gt; and &amp;lt;CODE&amp;gt;basic&amp;lt;/CODE&amp;gt; apply their override only for that run; the previous values are restored when the script ends.&lt;br /&gt;
&lt;br /&gt;
===Information Commands===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty help&amp;lt;/CODE&amp;gt; || Display a summary of available commands. (Any unrecognized argument does the same.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty list&amp;lt;/CODE&amp;gt; || Display all current settings and their values, filling in defaults for anything unset.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty bounty&amp;lt;/CODE&amp;gt; || Show a table of details for your current active bounty.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty creature&amp;lt;/CODE&amp;gt; || Show the creature associated with your current bounty.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty location&amp;lt;/CODE&amp;gt; || Show the location associated with your current bounty.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty version&amp;lt;/CODE&amp;gt; || Display the current EBounty version number. &amp;lt;CODE&amp;gt;;ebounty ver&amp;lt;/CODE&amp;gt; also works — in fact any first argument containing &amp;quot;ver&amp;quot; is treated as a version request.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty test&amp;lt;/CODE&amp;gt; || Display the script version followed by a raw dump of every setting. Useful when reporting a bug.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Utility Commands===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty remove&amp;lt;/CODE&amp;gt; || Remove your current bounty (travels to the Guild to request removal, then returns you to the room you started in). Must be run from a mapped room.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty load&amp;lt;/CODE&amp;gt; || Reload all settings from the saved configuration file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty debug&amp;lt;/CODE&amp;gt; || Toggle verbose debug output on or off. This is saved to your settings file, so it persists until you toggle it back off.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CLI Settings===&lt;br /&gt;
You can change any individual setting without opening the GUI:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;ebounty settings &amp;amp;lt;key&amp;amp;gt; &amp;amp;lt;value&amp;amp;gt;&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;ebounty setup &amp;amp;lt;key&amp;amp;gt; &amp;amp;lt;value&amp;amp;gt;&amp;lt;/CODE&amp;gt; is accepted as an alias for the same thing. Setting names are case-insensitive, and hyphens are treated as underscores, so &amp;lt;CODE&amp;gt;;ebounty settings Skip-Healing true&amp;lt;/CODE&amp;gt; is the same as &amp;lt;CODE&amp;gt;;ebounty settings skip_healing true&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For a quick in-game reminder of the syntax for each value type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CODE&amp;gt;;ebounty settings help&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each setting has a type, and the value you supply must match it:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type !! Accepted values !! Example&lt;br /&gt;
|-&lt;br /&gt;
| Boolean || &amp;lt;CODE&amp;gt;on&amp;lt;/CODE&amp;gt;/&amp;lt;CODE&amp;gt;true&amp;lt;/CODE&amp;gt;/&amp;lt;CODE&amp;gt;yes&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;off&amp;lt;/CODE&amp;gt;/&amp;lt;CODE&amp;gt;false&amp;lt;/CODE&amp;gt;/&amp;lt;CODE&amp;gt;no&amp;lt;/CODE&amp;gt;. &#039;&#039;&#039;Must be lowercase&#039;&#039;&#039; — &amp;lt;CODE&amp;gt;True&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;YES&amp;lt;/CODE&amp;gt; will be rejected. || &amp;lt;CODE&amp;gt;;ebounty settings skip_healing true&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Integer || A whole number. || &amp;lt;CODE&amp;gt;;ebounty settings culling_max 30&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Float || A decimal number. || &amp;lt;CODE&amp;gt;;ebounty settings wander_wait 1.5&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Array || Space-separated values. The list is &#039;&#039;&#039;replaced&#039;&#039;&#039;, not appended to. || &amp;lt;CODE&amp;gt;;ebounty settings bounty_types culling gem_collecting&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| String || All remaining words, joined with single spaces. || &amp;lt;CODE&amp;gt;;ebounty settings selling_script eloot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quoting commas.&#039;&#039;&#039; Several String settings (the per-town resting lists, &amp;lt;CODE&amp;gt;resting_room&amp;lt;/CODE&amp;gt;, the &amp;lt;CODE&amp;gt;bad_room&#039;&#039;N&#039;&#039;&amp;lt;/CODE&amp;gt; fields, the &amp;lt;CODE&amp;gt;location&#039;&#039;N&#039;&#039;&amp;lt;/CODE&amp;gt; labels) store comma-separated values. Because a String setting joins the remaining arguments with spaces, quote the whole value as a single argument to preserve the commas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
;ebounty settings zul_resting &amp;quot;1005, 5751&amp;quot;&lt;br /&gt;
;ebounty settings bad_room1 &amp;quot;228, 188, u76564564&amp;quot;&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes and gotchas:&#039;&#039;&#039;&lt;br /&gt;
* Array values are not validated. A misspelled bounty type or forage option is saved as-is and silently does nothing — check your work with &amp;lt;CODE&amp;gt;;ebounty list&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* If the key is not recognized, EBounty prints an error along with the full list of valid setting names.&lt;br /&gt;
* A value that does not match the setting&#039;s type stops the script with an error rather than saving a bad value.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;ebounty list&amp;lt;/CODE&amp;gt; shows the &#039;&#039;general&#039;&#039; category only. The internal &amp;lt;CODE&amp;gt;debug&amp;lt;/CODE&amp;gt; setting is not listed there, but it is still settable (use &amp;lt;CODE&amp;gt;;ebounty debug&amp;lt;/CODE&amp;gt; to toggle it).&lt;br /&gt;
* Setting updates are applied to the settings file on disk. If EBounty is already running, use &amp;lt;CODE&amp;gt;;ebounty load&amp;lt;/CODE&amp;gt; — or restart it — to pick the change up.&lt;br /&gt;
* CLI setting updates only recognize keys that already exist in your saved settings file. If you have never opened &amp;lt;CODE&amp;gt;;ebounty setup&amp;lt;/CODE&amp;gt;, open and close it once so the full set of defaults is written out.&lt;br /&gt;
&lt;br /&gt;
===Foraging via CLI===&lt;br /&gt;
EBounty can forage herbs independently of bounties using the command line. This mode does not require a Gem/Default profile, and it returns you to the room you started in when it finishes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty forage bounty&amp;lt;/CODE&amp;gt; || Automatically detects your current foraging bounty and completes it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty forage bounty &amp;quot;&amp;amp;lt;BOUNTY text&amp;amp;gt;&amp;quot;&amp;lt;/CODE&amp;gt; || Parses a pasted line of &amp;lt;CODE&amp;gt;BOUNTY&amp;lt;/CODE&amp;gt; output instead of reading your live bounty, and forages from that. Useful for a task you have not accepted yet, or for testing.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty forage &amp;quot;herb name&amp;quot; &amp;amp;lt;quantity&amp;amp;gt;&amp;lt;/CODE&amp;gt; || Searches the closest 10 rooms for the specified herb.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;;ebounty forage &amp;quot;herb name&amp;quot; &amp;amp;lt;quantity&amp;amp;gt; &amp;quot;location&amp;quot;&amp;lt;/CODE&amp;gt; || Searches all rooms at the specified location for the herb.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
;ebounty forage bounty&lt;br /&gt;
;ebounty forage bounty &amp;quot;You have been tasked to gather 7 acantha leaves from the Upper Trollfang. You have not yet found any.&amp;quot;&lt;br /&gt;
;ebounty forage &amp;quot;acantha leaf&amp;quot; 7&lt;br /&gt;
;ebounty forage &amp;quot;acantha leaf&amp;quot; 7 &amp;quot;Upper Trollfang&amp;quot;&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running &amp;lt;CODE&amp;gt;;ebounty forage&amp;lt;/CODE&amp;gt; with missing or malformed arguments prints this syntax list rather than starting.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Please start ebounty in a mapped room.&amp;quot;&#039;&#039;&#039; — &amp;lt;CODE&amp;gt;;ebounty&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;;ebounty once&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;;ebounty basic&amp;lt;/CODE&amp;gt;, and &amp;lt;CODE&amp;gt;;ebounty remove&amp;lt;/CODE&amp;gt; all need a mapped room to return to. Move somewhere the Lich map knows and try again.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Please select a Gem/Default profile in Profiles tab.&amp;quot;&#039;&#039;&#039; — Set &amp;lt;CODE&amp;gt;default_profile&amp;lt;/CODE&amp;gt; on the Profiles tab. This is not required for &amp;lt;CODE&amp;gt;;ebounty basic&amp;lt;/CODE&amp;gt; or standalone CLI foraging.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;You must also download the following script(s) to use ebounty&amp;quot;&#039;&#039;&#039; — Install the listed dependency with &amp;lt;CODE&amp;gt;;repo download &amp;amp;lt;name&amp;amp;gt;&amp;lt;/CODE&amp;gt;, or blank the matching support-script field and supply your own.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;No Profile found for &amp;amp;lt;creature&amp;amp;gt;&amp;quot;&#039;&#039;&#039; — Add the full creature noun to a Creature Names row on the Profiles tab, add it to the Creature Exclusions list, or enable &amp;quot;Keep hunting&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Script requires a newer Lich&#039;&#039;&#039; — Update Lich; EBounty requires 5.19.0 or newer.&lt;br /&gt;
* &#039;&#039;&#039;Reporting a bug&#039;&#039;&#039; — Include the output of &amp;lt;CODE&amp;gt;;ebounty test&amp;lt;/CODE&amp;gt;, and turn on &amp;lt;CODE&amp;gt;;ebounty debug&amp;lt;/CODE&amp;gt; to capture verbose output leading up to the problem.&lt;br /&gt;
&lt;br /&gt;
==Ingame Screenshots==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:ebounty-1.PNG|General&lt;br /&gt;
File:ebounty-2.PNG|Escort&lt;br /&gt;
File:ebounty-3.PNG|Profiles&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-customtoggle-mychangelog&amp;quot; style=&amp;quot;color:#0000ff&amp;quot;&amp;gt;Click to expand&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-mychangelog&amp;quot;&amp;gt;&lt;br /&gt;
  v1.12.3 (2026-08-17)&lt;br /&gt;
    - fix rgambit usage when not hidden to just put away instead&lt;br /&gt;
    - fix to grab new bounty when available instead of waiting for should_hunt? to be true&lt;br /&gt;
  v1.12.2 (2026-08-14)&lt;br /&gt;
    - add ;ebounty settings help output covering CLI syntax for each setting value type (boolean/integer/float/array/string)&lt;br /&gt;
    - reference ;ebounty settings help from the main help output&lt;br /&gt;
    - bugfix: coerce_setting_value did not handle Float settings (e.g. wander_wait), causing ;ebounty settings wander_wait &amp;lt;value&amp;gt; to error out&lt;br /&gt;
  v1.12.1 (2026-08-14)&lt;br /&gt;
    - update help output to document previously undocumented CLI options: once, settings &amp;lt;key&amp;gt; &amp;lt;value&amp;gt;, debug, test, version&lt;br /&gt;
  v1.12.0 (2026-08-14)&lt;br /&gt;
    - add CLI support for ;ebounty basic (single run with just the basics enabled, without changing saved settings)&lt;br /&gt;
  v1.11.3 (2026-08-01)&lt;br /&gt;
    - fix to remove EXPERIENCE scraping for field exp, require new Lich to get it automatically from feed&lt;br /&gt;
  v1.11.2 (2026-07-08)&lt;br /&gt;
    - properly set start room ID&lt;br /&gt;
  v1.11.1 (2026-07-05)&lt;br /&gt;
    - add red trafel mushroom &amp;amp; black hook mushroom to find herb stow list method&lt;br /&gt;
  v1.11.0 (2026-06-07)&lt;br /&gt;
    - cap bandit/location crawl area at 100 rooms (Task::MAX_CRAWL_ROOMS)&lt;br /&gt;
    - add Task.limit_crawl_area BFS to select a contiguous region from the nearest room&lt;br /&gt;
    - excluded location rooms beyond the cap are added to location_boundaries automatically&lt;br /&gt;
  v1.10.1 (2026-05-25)&lt;br /&gt;
    - fix for forage_find to use distance calc of 90 for nearest only&lt;br /&gt;
    - fix for no forageable item found when foraging in rift due to inside/outside rooms changing&lt;br /&gt;
  v1.10.0 (2026-04-16)&lt;br /&gt;
    - add support to use alternative BOUNTY text with ;ebounty forage bounty &amp;quot;BOUNTY output here&amp;quot;&lt;br /&gt;
    - fix new mushroom PnC issues not calculating proper amounts in forage_bounty&lt;br /&gt;
  v1.9.7 (2026-03-01)&lt;br /&gt;
    - bugfix expedite vouchers when already ready to get new task&lt;br /&gt;
  v1.9.6 (2026-02-17)&lt;br /&gt;
    - bugfix to not try searching SG for taskmaster when already in room&lt;br /&gt;
  v1.9.5 (2026-02-06)&lt;br /&gt;
    - bugfix in forage_bounty when using optional location in CLI argument&lt;br /&gt;
  v1.9.4 (2026-02-04)&lt;br /&gt;
    - optimize location_list finding in forage_find room logic&lt;br /&gt;
  v1.9.3 (2026-02-04)&lt;br /&gt;
    - bugfix in forage_find room&lt;br /&gt;
  v1.9.2 (2026-01-27)&lt;br /&gt;
    - add CLI support for ;ebounty forage bounty&lt;br /&gt;
    - add CLI support for ;ebounty forage &amp;quot;herb&amp;quot; &amp;lt;qty&amp;gt; &amp;quot;location&amp;quot;&lt;br /&gt;
    - bugfix in heirloom_search and forage_bounty to use Claim.mine? instead of checkpcs&lt;br /&gt;
    - anchor ending gem names in search functions to prevent false matching on other items&lt;br /&gt;
    - fix resting spot for SG shattered&lt;br /&gt;
    - fix forage tag in starting room crash&lt;br /&gt;
    - fix between script(s) added erroneous commas between script parameters&lt;br /&gt;
  v1.9.1 (2026-01-18)&lt;br /&gt;
    - bugfix for running gem tracking script&lt;br /&gt;
  v1.9.0 (2026-01-08)&lt;br /&gt;
    - added support for ranger track&lt;br /&gt;
  v1.8.1 (2025-12-24)&lt;br /&gt;
    - added option to regroup before quiting if started in group&lt;br /&gt;
  v1.8.0 (2025-11-18)&lt;br /&gt;
    - added option to get a new bounty before quitting when set to &amp;quot;Run one bounty and quit&amp;quot;&lt;br /&gt;
  v1.7.5 (2025-11-11)&lt;br /&gt;
    - bugfix in minimum Lich required checks&lt;br /&gt;
  v1.7.4 (2025-11-11)&lt;br /&gt;
    - bugfix for go2_rest - settings[:resting_room] converted to array and current_room a string&lt;br /&gt;
  v1.7.3 (2025-10-01)&lt;br /&gt;
   - updates for Sailor&#039;s Grief&lt;br /&gt;
   - added support for uids&lt;br /&gt;
   - bugfix for saving settings&lt;br /&gt;
   - general code cleanup&lt;br /&gt;
  v1.7.2 (2025-09-08)&lt;br /&gt;
    - change requirement to 5.12.5 due to heirloom text change&lt;br /&gt;
  v1.7.1 (2025-09-07)&lt;br /&gt;
    - bugfix for change in Heirloom return messaging&lt;br /&gt;
  v1.7.0 (2025-09-05)&lt;br /&gt;
    - add option to select boost bounty type&lt;br /&gt;
  v1.6.5 (2025-08-15)&lt;br /&gt;
    - bugfix for stowing herbs&lt;br /&gt;
  v1.6.4 (2025-08-05)&lt;br /&gt;
    - remove version check for bigshot&lt;br /&gt;
  v1.6.3 (2025-08-03)&lt;br /&gt;
    - bugfix mana check when changing aspect while 650 is active&lt;br /&gt;
    - bugfix for hiding is 608 doesn&#039;t work&lt;br /&gt;
  v1.6.2 (2025-04-21)&lt;br /&gt;
    - bugfix for NPCs not populating quickly upon room entry with large amount of other characters&lt;br /&gt;
  v1.6.1 (2025-04-21)&lt;br /&gt;
    - bugfix for HW bounty turnin&lt;br /&gt;
  v1.6.0 (2025-03-29)&lt;br /&gt;
    - remove custom bounty and use Lich Bounty API&lt;br /&gt;
    - remove custom issue_command to Lich::Util.issue_command&lt;br /&gt;
    - remove depreciated code&lt;br /&gt;
    - update references of ego2 to escortgo2&lt;br /&gt;
  v1.5.6 (2025-03-27)&lt;br /&gt;
    - bugfix for set_eval not adding additional skins to skinning bounty amount&lt;br /&gt;
  v1.5.5 (2025-03-19)&lt;br /&gt;
    - remove deprecated Lich calls&lt;br /&gt;
  v1.5.4 (2025-03-10)&lt;br /&gt;
    - another bugfix for bundled skins&lt;br /&gt;
  v1.5.3 (2025-03-08)&lt;br /&gt;
    - bugfix when counting bundled skins&lt;br /&gt;
  v1.5.2 (2025-02-09)&lt;br /&gt;
    - bugfix when only foraging and needing healed&lt;br /&gt;
  v1.5.1 (2025-01-07)&lt;br /&gt;
    - bugfix for forage turn-in&lt;br /&gt;
  v1.5.0 (2024-12-24)&lt;br /&gt;
    - added buffing option when resting&lt;br /&gt;
    - added using a script to handling resting location&lt;br /&gt;
    - added option to rest at nearest table&lt;br /&gt;
    - added remove bounty if heirloom item gets lost&lt;br /&gt;
    - bugfix for bounty eval not setting EBounty.data.complete_mind&lt;br /&gt;
    - bugfix for ask_guard in HW&lt;br /&gt;
  v1.4.5 (2024-11-26)&lt;br /&gt;
    - added option to use the bigshot setting for a resting location&lt;br /&gt;
    - bugfix for profile dropdown sorting&lt;br /&gt;
    - bugfix stop script from looping if started without child in room&lt;br /&gt;
  v1.4.4 (2024-11-22)&lt;br /&gt;
    - bugfix in should_hunt&lt;br /&gt;
  v1.4.3 (2024-11-18)&lt;br /&gt;
    - missing criteria in should_hunt?&lt;br /&gt;
    - bugfix in wait_for_bounty&lt;br /&gt;
    - removed EBounty.data.wait - no longer used&lt;br /&gt;
  v1.4.2 (2024-11-16)&lt;br /&gt;
    - bugfix for when to rest&lt;br /&gt;
  v1.4.1 (2024-11-07)&lt;br /&gt;
    - will continue hunting after bounty complete until Bigshot Should Rest? is met&lt;br /&gt;
    - bugfix in setup - prevent toggling both Rest when mind is full and Keep Hunting&lt;br /&gt;
    - bug fix for should_hunt? spamming an experience check&lt;br /&gt;
    - bug fix for should_hunt? exp_pause incorrectly included&lt;br /&gt;
  v1.4.0 (2024-08-23)&lt;br /&gt;
    - expanded resting options&lt;br /&gt;
    - added optional death recovery support&lt;br /&gt;
    - added spinbutton for room delay for bandit bounties&lt;br /&gt;
    - asks the alchemist in HW for bounties instead of the tavernkeeper since he keeps moving&lt;br /&gt;
    - bugfix in gem bounty running hording script with parameters&lt;br /&gt;
    - bugfix in bandit hunting variables&lt;br /&gt;
    - removed script change log before v1.3.0 - full log: https://gswiki.play.net/Lich:Script_Ebounty&lt;br /&gt;
  v1.3.11 (2024-09-24)&lt;br /&gt;
    - fix to allow for CLI foraging without setting Gem/Default profile&lt;br /&gt;
  v1.3.10 (2024-08-19)&lt;br /&gt;
    - bugfix for ask_guard response&lt;br /&gt;
  v1.3.9 (2024-08-14)&lt;br /&gt;
    - logic fix when once_and_done is set and rejected bounty not exiting (but going out to hunt instead)&lt;br /&gt;
  v1.3.8 (2024-07-12)&lt;br /&gt;
    - add timer to not spam INFO during should_hunt? method&lt;br /&gt;
  v1.3.7 (2024-07-08)&lt;br /&gt;
    - add quiet info command to should_hunt? method to refresh stats&lt;br /&gt;
  v1.3.6 (2024-06-23)&lt;br /&gt;
    - update ebounty fog routine to match bigshot&lt;br /&gt;
  v1.3.5 (2024-05-15)&lt;br /&gt;
    - add exit if gembounty complete but using eloot sell excludes gems&lt;br /&gt;
  v1.3.4 (2024-05-01)&lt;br /&gt;
    - Change Char.prof to Stats.prof&lt;br /&gt;
  v1.3.3 (2024-04-13)&lt;br /&gt;
    - bug in escort task acceptance&lt;br /&gt;
  v1.3.2 (2024-04-09)&lt;br /&gt;
    - bug in forage for 1011 song of peace usage&lt;br /&gt;
  v1.3.1 (2024-04-01)&lt;br /&gt;
    - updated keep_hunting not to run in bigshot bounty mode. Also, added better messaging for why&lt;br /&gt;
    - consolidated herbalist names and switched to ID for turnin&lt;br /&gt;
    - updated wiki changelog&lt;br /&gt;
    - removed change log before v1.1.14 - full log: https://gswiki.play.net/Lich:Script_Ebounty&lt;br /&gt;
  v1.3.0 (2024-03-17)&lt;br /&gt;
    - added exclusion options for individual gems and locations&lt;br /&gt;
    - added help section&lt;br /&gt;
    - bugfix for UI title&lt;br /&gt;
    - removed shattered specific actions not referenced in UI (requesting spells and healing in the nexus)&lt;br /&gt;
  v1.2.2 (2024-03-03)&lt;br /&gt;
    - bugfix for gem hoarding scripts that handle selling gems&lt;br /&gt;
  v1.2.1 (2024-02-25)&lt;br /&gt;
    - bugfix for condition where ebounty may be repeatedly invoke eherbs&lt;br /&gt;
  v1.2.0 (2024-02-09)&lt;br /&gt;
    - added toggle to skip healing&lt;br /&gt;
    - added individual script options for rescue, escort, and hording&lt;br /&gt;
  v1.1.37 (2024-01-08)&lt;br /&gt;
    - add option to HIDE back for no-magic rooms if enabled to hide.&lt;br /&gt;
  v1.1.36 (2024-01-06)&lt;br /&gt;
    - remove forced HIDE for foraging put in by error.&lt;br /&gt;
  v1.1.35 (2024-01-02)&lt;br /&gt;
    - added check for nomagic tag before casting spells.&lt;br /&gt;
  v1.1.34 (2023-11-16)&lt;br /&gt;
    - bugfix in location check for foraging&lt;br /&gt;
  v1.1.33 (2023-11-10)&lt;br /&gt;
    - bugfix to stop trying to hand in herbs if completed&lt;br /&gt;
    - added check for having enough herbs for turnin&lt;br /&gt;
  v1.1.32 (2023-10-13)&lt;br /&gt;
    - update hunting settings to use bigshot fried setting instead of setting to 100&lt;br /&gt;
  v1.1.31 (2023-09-27)&lt;br /&gt;
    - bugfix when asking taskmaster for bounty in crowded room&lt;br /&gt;
  v1.1.30 (2023-09-26)&lt;br /&gt;
    - bugfix for closing containers&lt;br /&gt;
  v1.1.29 (2023-09-23)&lt;br /&gt;
    - bugfix to initialize settings when using stand alone foraging&lt;br /&gt;
  v1.1.28 (2023-09-23)&lt;br /&gt;
    - bugfix for checking if 604 is active&lt;br /&gt;
  v1.1.27 (2023-09-17)&lt;br /&gt;
    - bugfix for CLI foraging exiting when &amp;quot;just the basics&amp;quot; option toggled true&lt;br /&gt;
    - bugfix for black void check when foraging&lt;br /&gt;
  v1.1.26 (2023-09-09)&lt;br /&gt;
    - bugfix for CLI setting values to true/false with Ruby 3.2&lt;br /&gt;
  v1.1.25 (2023-07-10)&lt;br /&gt;
    - bugfix for HW guard&lt;br /&gt;
    - bugfix for Ta&#039;Vaalor guards&lt;br /&gt;
    - bugfix for rejecting heirloom taskers&lt;br /&gt;
    - turn portals off for escorts&lt;br /&gt;
  v1.1.24 (2023-07-10)&lt;br /&gt;
    - bugfix for HW taskmaster&lt;br /&gt;
  v1.1.23 (2023-07-05)&lt;br /&gt;
    - keep silvers based on eloot setting&lt;br /&gt;
  v1.1.22 (2023-06-19)&lt;br /&gt;
    - changed the resting room to default to your bigshot profile&lt;br /&gt;
    - should recognize the correct town to turn in bounties&lt;br /&gt;
  v1.1.22 (2023-06-11)&lt;br /&gt;
    - removed need to set a resting room&lt;br /&gt;
  v1.1.21 (2023-06-11)&lt;br /&gt;
    - bugfix for missing category in tasks&lt;br /&gt;
  v1.1.20 (2023-06-04)&lt;br /&gt;
    - prep for new Lich 5.7.0 infomon.lic &amp;amp; effect-list.xml change&lt;br /&gt;
  v1.1.19 (2023-05-21)&lt;br /&gt;
    - bugfix for string error when finding rooms&lt;br /&gt;
    - bugfix for heirloom turnin&lt;br /&gt;
    - added support to wait for shattered healbot&lt;br /&gt;
  v1.1.18 (2023-05-21)&lt;br /&gt;
    - bugfix for escort tasks&lt;br /&gt;
  v1.1.17 (2023-05-17)&lt;br /&gt;
    - added missing escort locations&lt;br /&gt;
    - bugfix for foraging using an heirloom setting&lt;br /&gt;
    - bugfix for CLI herb gathering&lt;br /&gt;
  v1.1.16 (2023-04-22)&lt;br /&gt;
    - bugfix for RR purser&lt;br /&gt;
  v1.1.15 (2023-04-11)&lt;br /&gt;
    - bugfix bandit bounty locations&lt;br /&gt;
    - bugfix in dangerous creature regex&lt;br /&gt;
  v1.1.14 (2023-04-11)&lt;br /&gt;
    - bugfix for CLI&lt;br /&gt;
    - switched bounty_check to use Bounty API regex&lt;br /&gt;
    - moved 213 into loop during foraging so it checks each time in case the spell wears off&lt;br /&gt;
    - removed list of alternate foraging herb commands. Instead using in-game bounty xml for correct forage syntax&lt;br /&gt;
    - added option to hunt with default profile instead of exiting when no profile found&lt;br /&gt;
  v1.1.13 (2023-03-16)&lt;br /&gt;
    - added sigil of resolve to foraging&lt;br /&gt;
    - added flag righthand for heirloom search bounties&lt;br /&gt;
    - replace script.vars with Script.current.vars&lt;br /&gt;
    - run loot script only if loot at end of hunt&lt;br /&gt;
    - added strip for extra spaced in herb bounties&lt;br /&gt;
    - added check for right hand flag to make sure it gets turned off&lt;br /&gt;
  v1.1.12 (2023-03-16)&lt;br /&gt;
    - bugfix in rescue task regex&lt;br /&gt;
    - changed bundle measuring to not be silent to prevent unintented screen scroll&lt;br /&gt;
  v1.1.11 (2023-03-05)&lt;br /&gt;
    - bugfix in string literal&lt;br /&gt;
  v1.1.10 (2023-03-05)&lt;br /&gt;
    - reverted string literal changes back&lt;br /&gt;
    - fixed bug in child bounty&lt;br /&gt;
  v1.1.9 (2023-03-05)&lt;br /&gt;
    - reverted string literal changes&lt;br /&gt;
  v1.1.8 (2023-03-04)&lt;br /&gt;
    - added herb exclusions, rubocop fixes&lt;br /&gt;
  v1.1.7 (2023-03-02)&lt;br /&gt;
    - bug fix depositing silver&lt;br /&gt;
  v1.1.6 (2023-02-28)&lt;br /&gt;
    - fixed looting script from running in town&lt;br /&gt;
  v1.1.5 (2023-02-28)&lt;br /&gt;
    - fixed regex error in herb task location&lt;br /&gt;
  v1.1.4 (2023-02-23)&lt;br /&gt;
    - fixed regex error in targeting&lt;br /&gt;
  v1.1.3 (2023-02-23)&lt;br /&gt;
    - Added check for npcs in heirloom search&lt;br /&gt;
  v1.1.2 (2023-02-04)&lt;br /&gt;
    - added support for keeping silvers&lt;br /&gt;
  v1.1.1 (2023-02-01)&lt;br /&gt;
    - bug fix for foraging spells (waitcastrt? for assume yierka)&lt;br /&gt;
    - rearranged post-hunt sequence to mimic bigshot functionality.&lt;br /&gt;
    -fixed forage/heirloom search using empty_hands&lt;br /&gt;
  v1.1.0 (2023-01-27)&lt;br /&gt;
    - added pre and post hunt commands and scripts for foraging, heirloom search, and escorts&lt;br /&gt;
    - added bad room entries for bandits that will accept UID&#039;s&lt;br /&gt;
    - added spell support for heirloom search bounties&lt;br /&gt;
    - added 1035 to foraging and heirloom searching&lt;br /&gt;
    - think I finally squashed the repeating Song of Peace bug&lt;br /&gt;
  v1.0.32 (2023-01-26)&lt;br /&gt;
    - bugfix for heirloom searching&lt;br /&gt;
  v1.0.31 (2023-01-24)&lt;br /&gt;
    - reordered casting of song of peace during foraging and stopping it when done.&lt;br /&gt;
    - added a double check for heirloom searching&lt;br /&gt;
  v1.0.30 (2023-01-23)&lt;br /&gt;
    - fix bad Widowmaker Rd room#&lt;br /&gt;
  v1.0.29 (2023-01-23)&lt;br /&gt;
    - fix bugfix in variable list from v1.0.29&lt;br /&gt;
  v1.0.28 (2023-01-23)&lt;br /&gt;
    - added herbalist to Mist Harbor&lt;br /&gt;
  v1.0.27 (2023-01-22)&lt;br /&gt;
    - refreshed spell active before casting foraging helper spells&lt;br /&gt;
    - add check for silver deposit after bounty turn-in&lt;br /&gt;
    - fixed bug in bundled skin eval&lt;br /&gt;
  v1.0.26 (2023-01-21)&lt;br /&gt;
    - fixed bug in herb turnin when caught in RT&lt;br /&gt;
    - fixed prep-hunt command to run scripts consistent with bigshot functionality&lt;br /&gt;
  v1.0.25 (2023-01-19)&lt;br /&gt;
    - Fix badlist rooms and add bad logging road rooms&lt;br /&gt;
  v1.0.24 (2023-01-19)&lt;br /&gt;
    - Correct another typo in herb finding method&lt;br /&gt;
  v1.0.23 (2023-01-16)&lt;br /&gt;
    - Correct typo in herb finding method&lt;br /&gt;
  v1.0.22 (2023-01-12)&lt;br /&gt;
    - Change EBounty.data.location_start to use nearest instead of first in list&lt;br /&gt;
  v1.0.21 (2023-01-02)&lt;br /&gt;
    - typo in bug fix&lt;br /&gt;
  v1.0.20 (2023-01-02)&lt;br /&gt;
    -bug fix moves minor sanct outside foraging loop to stop it spamming&lt;br /&gt;
  v1.0.19 (2023-01-01)&lt;br /&gt;
    -bug fix to stop voucher use when bounty boost is active&lt;br /&gt;
  v1.0.18 (2023-01-01)&lt;br /&gt;
    - added bounty boost to available options&lt;br /&gt;
    - added foraging enhancements - see foraging tab on ui&lt;br /&gt;
    - changed the herb searching routine to  try and eliminate false positives/negatives&lt;br /&gt;
    - updated infomon and spell-list version requirements to support 650 tracking&lt;br /&gt;
    - added CLI herb foraging independent of bounty - ;ebounty forage &amp;quot;&amp;lt;type of herb&amp;gt;&amp;quot; &amp;lt;number to find&amp;gt;&lt;br /&gt;
  v1.0.17 (2022-12-27)&lt;br /&gt;
    - ensuring following scripts are stopped before starting ebounty: go2, echild, ego2, bigshot&lt;br /&gt;
  v1.0.16 (2022-12-22)&lt;br /&gt;
    - typo fix for the bugfix for herbalist rooms using UID&#039;s&lt;br /&gt;
  v1.0.15 (2022-12-22)&lt;br /&gt;
    - bugfix for herbalist rooms using UID&#039;s&lt;br /&gt;
  v1.0.14 (2022-12-20)&lt;br /&gt;
    - updated herbalist rooms to use UID&#039;s for instance compatibility&lt;br /&gt;
  v1.0.13 (2022-12-19)&lt;br /&gt;
    - add regex for opening an item&lt;br /&gt;
  v1.0.12 (2022-12-15)&lt;br /&gt;
    - made resting room a required parameter&lt;br /&gt;
    - consolidated odd herb names&lt;br /&gt;
  v1.0.11 (2022-12-12)&lt;br /&gt;
    - foraging name match fix&lt;br /&gt;
  v1.0.10 (2022-12-11)&lt;br /&gt;
    - fixed foraging herb matching bug&lt;br /&gt;
  v1.0.9 (2022-12-09)&lt;br /&gt;
    - bug fix for checkbounty not populating quickly&lt;br /&gt;
  v1.0.8 (2022-12-06)&lt;br /&gt;
    - moved post hunt routine to after forage turn-in to avoid trashing foraged item &lt;br /&gt;
    - bug fix for foraging in the red forest&lt;br /&gt;
  v1.0.7 (2022-12-05)&lt;br /&gt;
    - bug fix for hunting sequence resting&lt;br /&gt;
  v1.0.6 (2022-12-5)&lt;br /&gt;
    - fixed bug in rescue bounty sequencing.&lt;br /&gt;
  v1.0.5 (2022-12-3)&lt;br /&gt;
    - bugfix for bounty_eval&lt;br /&gt;
    - various foraging name corrections&lt;br /&gt;
    - pre/post hunting bigshot routines (from default profile) added to escort bounties&lt;br /&gt;
  v1.0.4 (2022-11-30)&lt;br /&gt;
    - bug fix on container opening&lt;br /&gt;
    - adjusted hunting sequence due to bigshot bounty_eval changing&lt;br /&gt;
    - set bounty_eval to empty string on exit&lt;br /&gt;
    - updated required versions to Lich 5.6.2, Bigshot 4.13.12, and Infomon 1.18.16&lt;br /&gt;
    - regex fix for completed task&lt;br /&gt;
  v1.0.3 (2022-11-28)&lt;br /&gt;
    - changed container method to use &amp;quot;inventory container&amp;quot; instead of GameObj.inv&lt;br /&gt;
  v1.0.2 (2022-11-27)&lt;br /&gt;
    - Fix to targeting not using bigshot routines&lt;br /&gt;
  v1.0.1 (2022-11-26)&lt;br /&gt;
    - hedgehog sack messaging&lt;br /&gt;
    - fixed herb names&lt;br /&gt;
    - support for Bigshot fogging options&lt;br /&gt;
    - child bounty fail bug&lt;br /&gt;
    - Fix for grizzled targeting when user only kills bounty creatures&lt;br /&gt;
  v1.0.0 (2022-05-18)&lt;br /&gt;
    - initial framework and ui&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=265097</id>
		<title>Lich:Script Bigshot</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=265097"/>
		<updated>2026-09-14T20:55:19Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Creature Checks */ add lying command check&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Bigshot is a fully automated hunting script for GemStone IV. It handles combat routines, movement to and from hunting areas, target selection, and attack execution.&lt;br /&gt;
AFK scripting on any server other than Shattered is a violation of game policy.&lt;br /&gt;
{{TOCright| limit=2}}&lt;br /&gt;
==Changelog==&lt;br /&gt;
*[[Script Bigshot/Changelog|Script Bigshot Changelog]]&lt;br /&gt;
==About Bigshot==&lt;br /&gt;
===What Does Bigshot Do?===&lt;br /&gt;
&lt;br /&gt;
Using a series of menus and command inputs, Bigshot lets you create a modular, customizable, and fully automated hunting script. With just a few clicks and tweaks, you can go from scripting rats to the Rift.&lt;br /&gt;
&lt;br /&gt;
===How Do I Get It?===&lt;br /&gt;
&lt;br /&gt;
Grab it from the repository: &amp;lt;CODE&amp;gt;;repository download Bigshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How Do I Make It Go?===&lt;br /&gt;
Initial setup is accessed through &amp;lt;CODE&amp;gt;;bigshot setup&amp;lt;/CODE&amp;gt;. This opens a configuration window with several tabs for setting up your hunting routine.&lt;br /&gt;
&lt;br /&gt;
As with most scripts, the SETUP command opens a graphical user interface. Use &amp;lt;CODE&amp;gt;;bigshot setup&amp;lt;/CODE&amp;gt; to open the dialog. The window contains the following tabs:&lt;br /&gt;
* &#039;&#039;&#039;Profile&#039;&#039;&#039; - Save and load profile configurations. Profiles are saved to your &amp;lt;CODE&amp;gt;\Lich5\data\&amp;lt;GSServer&amp;gt;\&amp;lt;charname&amp;gt;\bigshot_profiles&amp;lt;/CODE&amp;gt; directory (e.g., &amp;lt;CODE&amp;gt;\Lich5\data\GSIV\Rinualdo\bigshot_profiles&amp;lt;/CODE&amp;gt;). Note: if you previously used Bigshot, the file location has changed from the old &amp;lt;CODE&amp;gt;\Lich5\scripts\bigshot_profiles&amp;lt;/CODE&amp;gt; folder. You can copy/paste your old profiles to the new location.&lt;br /&gt;
* &#039;&#039;&#039;Resting&#039;&#039;&#039; - Configure your resting routine, rest location, and conditions that trigger resting.&lt;br /&gt;
* &#039;&#039;&#039;Hunting&#039;&#039;&#039; - Create a hunting map using boundaries, set your starting room, configure attack/wander stances, and define pre-hunt behavior.&lt;br /&gt;
* &#039;&#039;&#039;Attacking&#039;&#039;&#039; - Configure ambush aiming, flee conditions, bless behavior, weapon reactions, and similar combat flags.&lt;br /&gt;
* &#039;&#039;&#039;Commands&#039;&#039;&#039; - Define your valid targets and associated attack routines. See sample routines below.&lt;br /&gt;
* &#039;&#039;&#039;Boon Creatures&#039;&#039;&#039; - Configure how Bigshot handles boss/boon creatures on a per-ability basis (fight, ignore, or flee).&lt;br /&gt;
* &#039;&#039;&#039;Misc&#039;&#039;&#039; - UAC options, MSTRIKE options, ammo/wand configuration, and MA grouping settings.&lt;br /&gt;
* &#039;&#039;&#039;Monitoring&#039;&#039;&#039; - Interaction monitoring, deadman&#039;s switch, depart behavior, and debug options.&lt;br /&gt;
&lt;br /&gt;
Each tab is covered in detail further on.&lt;br /&gt;
&lt;br /&gt;
===Other Commands===&lt;br /&gt;
Beyond the setup GUI, Bigshot has several command-line options:&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt; - A special hunting mode that kills everything in your current room, then quits. It will not wander or attempt to rest. Uses its own separate hunting commands and targets (configured on the Commands tab).&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot head&amp;lt;/CODE&amp;gt; / &amp;lt;CODE&amp;gt;;bigshot tail&amp;lt;/CODE&amp;gt; - Multi-account hunting on a single computer. All characters must be set up for the same hunting area. Following characters run &amp;lt;CODE&amp;gt;;bigshot tail&amp;lt;/CODE&amp;gt;, then the leader runs &amp;lt;CODE&amp;gt;;bigshot head&amp;lt;/CODE&amp;gt;. The leader can optionally specify the expected group size, e.g., &amp;lt;CODE&amp;gt;;bigshot head 3&amp;lt;/CODE&amp;gt;. Head and tail can be started in any order.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot display&amp;lt;/CODE&amp;gt; - Shows all your current settings.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot reset&amp;lt;/CODE&amp;gt; - Resets your targetable and untargetable lists. Useful if Bigshot will not target something it should.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot profile save &amp;lt;name&amp;gt;&amp;lt;/CODE&amp;gt; - Saves a profile in YAML format to your character&#039;s profile folder. Also accessible via the Profiles tab.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot profile load &amp;lt;name&amp;gt;&amp;lt;/CODE&amp;gt; - Loads a profile from your character&#039;s profile folder. Also accessible via the Profiles tab.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot single&amp;lt;/CODE&amp;gt; - Executes a single hunting routine, returns to your resting location, and then exits.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot list&amp;lt;/CODE&amp;gt; - Displays all initialized variable values (useful for troubleshooting).&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot test &amp;lt;method&amp;gt; &amp;lt;args&amp;gt;&amp;lt;/CODE&amp;gt; - Runs a specific internal method for testing purposes.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot help&amp;lt;/CODE&amp;gt; - Prints a quick-reference table of every command-line option listed in this section. Typing an option Bigshot doesn&#039;t recognize prints this same help (with a warning naming the bad option) instead of silently doing nothing.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot &amp;lt;mode&amp;gt; &amp;lt;creature&amp;gt;&amp;lt;/CODE&amp;gt; - Rangers only: combine one of the modes above (&amp;lt;CODE&amp;gt;solo&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;single&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;bounty&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;quick&amp;lt;/CODE&amp;gt;, or &amp;lt;CODE&amp;gt;once&amp;lt;/CODE&amp;gt;) with a creature name to TRACK toward that creature instead of wandering, e.g., &amp;lt;CODE&amp;gt;;bigshot single giant rat&amp;lt;/CODE&amp;gt;. A creature name with no mode in front of it (just &amp;lt;CODE&amp;gt;;bigshot giant rat&amp;lt;/CODE&amp;gt;) is not recognized.&lt;br /&gt;
&lt;br /&gt;
==The Profile Tab==&lt;br /&gt;
* &#039;&#039;&#039;Load Profile&#039;&#039;&#039; - Load an existing saved profile. The dropdown will be empty if no profiles have been saved yet.&lt;br /&gt;
* &#039;&#039;&#039;Current Profile&#039;&#039;&#039; - Displays the name of the currently loaded profile.&lt;br /&gt;
* &#039;&#039;&#039;Save Profile&#039;&#039;&#039; - Enter any name for your profile and click Save. Once saved, the profile will appear in the Load Profile dropdown.&lt;br /&gt;
* &#039;&#039;&#039;Notes&#039;&#039;&#039; - A freeform text area for any notes you want to associate with the profile.&lt;br /&gt;
&lt;br /&gt;
==The Resting Tab==&lt;br /&gt;
This tab controls where and how Bigshot rests between hunts. During rest mode, Bigshot checks your mind state, hit points, wound status, mana, and spirit. Once all conditions defined in the &amp;quot;Should Hunt?&amp;quot; section are met, Bigshot leaves rest mode and begins a new hunt.&lt;br /&gt;
&lt;br /&gt;
===Where to Rest===&lt;br /&gt;
* &#039;&#039;&#039;room id&#039;&#039;&#039; - The room Bigshot returns to for resting. Uses room numbers from Map/Go2. Supports both Lich IDs and SimuIDs (prefix SimuIDs with &amp;quot;u&amp;quot;, e.g., &amp;lt;CODE&amp;gt;228&amp;lt;/CODE&amp;gt; for Town Square Central or &amp;lt;CODE&amp;gt;u7120&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
* &#039;&#039;&#039;return waypoints&#039;&#039;&#039; - Optional intermediate room IDs that Bigshot will pass through when returning to rest. Separate multiple waypoints with commas.&lt;br /&gt;
* &#039;&#039;&#039;pre-rest commands&#039;&#039;&#039; - Commands executed before entering rest mode. Example: &amp;lt;CODE&amp;gt;shea, wear shield, sit, stance offensive, rest&amp;lt;/CODE&amp;gt;. This will sheathe your weapon, wear your shield, sit down, enter offensive stance, and use the REST verb. You can also call scripts here using the &amp;lt;CODE&amp;gt;script&amp;lt;/CODE&amp;gt; prefix, e.g., &amp;lt;CODE&amp;gt;script go2 place&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;active resting scripts&#039;&#039;&#039; - Scripts that run upon entering rest mode for between-hunt tasks such as selling loot, spelling up, or healing. Example: &amp;lt;CODE&amp;gt;eloot sell, waggle, eherbs&amp;lt;/CODE&amp;gt;. This will sell via eloot, spell up via waggle, then use herbs from your PACK to heal wounds.&lt;br /&gt;
* &#039;&#039;&#039;Fog Option&#039;&#039;&#039; - Determines how Bigshot returns to rest. Options include:&lt;br /&gt;
** &#039;&#039;&#039;None&#039;&#039;&#039; - Walk normally (no teleportation).&lt;br /&gt;
** &#039;&#039;&#039;130&#039;&#039;&#039; - Uses [[Spirit Guide (130)]] first; falls back to Symbol of Return if it fails.&lt;br /&gt;
** &#039;&#039;&#039;Symbol of Return&#039;&#039;&#039; - Uses Voln [[Symbol of Return]] first; falls back to 130 if it fails.&lt;br /&gt;
** &#039;&#039;&#039;Traveler&#039;s Song (1020)&#039;&#039;&#039; - Attempts [[Traveler&#039;s Song (1020)]] once, then continues.&lt;br /&gt;
** &#039;&#039;&#039;Familiar Gate (930)&#039;&#039;&#039; - Attempts [[Familiar Gate (930)]] to summon a portal and walk through it. Will perform a mana pulse if not enough mana is detected.&lt;br /&gt;
** &#039;&#039;&#039;Sigil of Escape&#039;&#039;&#039; - Uses [[Sigil of Escape]].&lt;br /&gt;
** &#039;&#039;&#039;Custom&#039;&#039;&#039; - Allows a comma-separated list of custom commands to perform.&lt;br /&gt;
* &#039;&#039;&#039;Fog ONLY if wounded or encumbered&#039;&#039;&#039; - When checked, Bigshot will only use the fog option if you are actually wounded or encumbered. Otherwise it walks normally.&lt;br /&gt;
* &#039;&#039;&#039;Fog twice from the Rift&#039;&#039;&#039; - When checked, Bigshot will double-cast the fog spell when returning from the Rift (useful since the Rift requires two uses to escape).&lt;br /&gt;
&lt;br /&gt;
===Should Rest?===&lt;br /&gt;
Bigshot evaluates these conditions to decide when to leave a hunt and return to rest.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Triggers resting when your mind has reached this threshold. Generally set to 100 (fried). Default is 100.&lt;br /&gt;
* &#039;&#039;&#039;and extra kills &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of additional monsters to kill after reaching your &amp;quot;when percent mind&amp;quot; threshold and after LTE boosts are used. Set to 0 to rest immediately upon reaching the mind threshold.&lt;br /&gt;
* &#039;&#039;&#039;and used lte boosts &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of LTE (Long-Term Experience) boosts Bigshot will attempt to use after reaching the mind threshold. Set to 0 to skip LTE boosts entirely.&lt;br /&gt;
* &#039;&#039;&#039;or percent mana &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your mana percentage is at or below this value. Can be set to 0, but leaving a small buffer is useful (e.g., for Unlock (406) to open the WL Graveyard gate). If you encounter an &amp;quot;OOM&amp;quot; error, try setting this to 1.&lt;br /&gt;
* &#039;&#039;&#039;or percent encumbrance &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your encumbrance reaches or exceeds this percentage.&lt;br /&gt;
* &#039;&#039;&#039;or wounded eval&#039;&#039;&#039;&lt;br /&gt;
** Allows you to set a Ruby evaluation expression to determine if you are too wounded to continue. Can trigger on bleeding, specific wound levels, inability to cast, scars, and more.&lt;br /&gt;
&lt;br /&gt;
The following is a wounded evaluation that will rest whenever you have any level II wounds:&lt;br /&gt;
&amp;lt;PRE&amp;gt;XMLData.injuries.any?{|key,value| value[&amp;quot;wound&amp;quot;] &amp;gt; 1} || Char.percent_health &amp;lt;= 70&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The following is a wound evaluation that will take you home if you can no longer cast (bleeding, nerves, level 2 head/eyes, bad scars, etc.):&lt;br /&gt;
&amp;lt;PRE&amp;gt;bleeding? || Char.percent_health &amp;lt;= 25 || [Wounds.head, Scars.head, Wounds.leftEye, Scars.leftEye, Wounds.rightEye, Scars.rightEye, Wounds.nsys, Scars.nsys].max &amp;gt; 1 ||  [Wounds.leftArm, Wounds.leftHand, Wounds.rightArm, Wounds.rightHand, Scars.leftArm, Scars.leftHand, Scars.rightArm, Scars.rightHand].max &amp;gt; 2 || ([Wounds.leftArm, Wounds.leftHand, Scars.leftArm, Scars.leftHand].max + [Wounds.rightArm, Wounds.rightHand, Scars.rightArm, Scars.rightHand].max) &amp;gt;= 3&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The following can be appended to either wound evaluation above to also rest upon having popped muscles:&lt;br /&gt;
&amp;lt;PRE&amp;gt;|| Effects::Debuffs.active?(&amp;quot;Overexerted&amp;quot;)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;when creeping dread &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your creeping dread level reaches or exceeds this value.&lt;br /&gt;
* &#039;&#039;&#039;when crushing dread &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your crushing dread level reaches or exceeds this value.&lt;br /&gt;
* &#039;&#039;&#039;Wall of Thorns Poison&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when you are affected by Wall of Thorns poison.&lt;br /&gt;
* &#039;&#039;&#039;Confusion Debuff&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when you are affected by the non-dispellable Confusion debuff.&lt;br /&gt;
* &#039;&#039;&#039;Box in hand&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest if looting leaves a box in your hand.&lt;br /&gt;
&lt;br /&gt;
==The Hunting Tab==&lt;br /&gt;
This tab controls when and where Bigshot hunts, any pre-hunt preparation, and the map boundaries for wandering.&lt;br /&gt;
&lt;br /&gt;
===The Hunting Map===&lt;br /&gt;
Your hunting map consists of &#039;&#039;&#039;Boundaries&#039;&#039;&#039; (rooms Bigshot will never enter) and a &#039;&#039;&#039;Starting Room&#039;&#039;&#039; (the first room Bigshot moves to when a hunt begins). These function similarly to the boundaries in the ;Wander script, but are stored in Bigshot&#039;s own configuration files.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;starting room ID&#039;&#039;&#039; - The first room Bigshot travels to when beginning a hunt. Set this to any room within your boundaries.&lt;br /&gt;
* &#039;&#039;&#039;boundary rooms&#039;&#039;&#039; - Rooms that act as walls. Bigshot will never enter a boundary room.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;X-X-B - A - 0 - 0 - 0&lt;br /&gt;
|   |&lt;br /&gt;
X-X-X&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the diagram above, &amp;quot;B&amp;quot; is a boundary room and &amp;quot;A&amp;quot; is outside the hunting area. Rooms marked &amp;quot;0&amp;quot; are the huntable area. Bigshot will wander freely among the &amp;quot;0&amp;quot; rooms but never cross into &amp;quot;B&amp;quot; or &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Boundary room IDs are separated by commas. Some popular examples:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rift Boundaries:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Plane 1: 2635, 12101, 12208&lt;br /&gt;
Plane 2: 2605, 2635, 12093&lt;br /&gt;
Plane 3: 2635, 12089, 12152&lt;br /&gt;
Plane 4: 12122, 12207, 12235&lt;br /&gt;
Plane 5: 2579&lt;br /&gt;
North Scatter: 12151, 12254, 12256, 12249, 12247, 12241&lt;br /&gt;
South Scatter: 12151, 12219, 12217, 12233, 12237, 12239&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maaghara Boundaries:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;9734&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Confluence Boundaries:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;2300, 3519, 228, 188, 1932, 10855, 3668, 1438, 1005&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Imagine a hunting area that is a six-room square. To enter this square, you must GO DOORWAY from room A. You would set room A (outside the square, before the doorway) as a boundary. Then set room B (just inside the square) as the starting room. Bigshot will move to room B and wander within the bounded area until your &amp;quot;Should Rest?&amp;quot; conditions are met.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;rally point rooms&#039;&#039;&#039; - Optional intermediate room IDs Bigshot will pass through on the way to the hunting area. Separate multiple rooms with commas.&lt;br /&gt;
&lt;br /&gt;
===Hunting Settings===&lt;br /&gt;
* &#039;&#039;&#039;wait before wandering to another room&#039;&#039;&#039; - Time in seconds Bigshot waits before leaving a room to look for creatures. Default is 0.3. Set to 0 for fastest (but spammy) movement.&lt;br /&gt;
* &#039;&#039;&#039;attack stance&#039;&#039;&#039; - The stance Bigshot switches to when issuing attack commands. Bigshot remains in defensive stance until an attack is triggered, then stances to your specified attack stance. Recognizes all game stances from Offensive through Defensive.&lt;br /&gt;
* &#039;&#039;&#039;wander stance&#039;&#039;&#039; - The stance Bigshot uses while moving between rooms. Defaults to Defensive.&lt;br /&gt;
* &#039;&#039;&#039;stand up stance&#039;&#039;&#039; - The stance Bigshot enters when standing up after being knocked down. Defaults to Defensive.&lt;br /&gt;
* &#039;&#039;&#039;pre-hunt commands&#039;&#039;&#039; - Commands executed before Bigshot uses Go2 to travel to your starting room. Example: &amp;lt;CODE&amp;gt;gird, stance defensive&amp;lt;/CODE&amp;gt;. This ensures your weapon is readied and you are in defensive stance before traveling. Use this line for short-lived combat spells like 1605 (Arm of the Arkati).&lt;br /&gt;
* &#039;&#039;&#039;active hunting scripts&#039;&#039;&#039; - Scripts that run while Bigshot is in hunt mode. Use these for complex behaviors that Bigshot does not natively support (e.g., keeping certain spells active or executing CMANs based on conditions).&lt;br /&gt;
* &#039;&#039;&#039;society abilities/spells/cmans&#039;&#039;&#039; - Abilities Bigshot keeps active during a hunt. Enter numerical designations separated by commas. For example, entering &amp;lt;CODE&amp;gt;506&amp;lt;/CODE&amp;gt; keeps Haste up, recasting whenever it wears off. Hover over this field in the GUI for a list of supported values. Supported options include spells that can be ignored by rapidfire cooldown: e.g., &amp;lt;CODE&amp;gt;515 (ignore)&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;rapidfire (ignore)&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;loot script&#039;&#039;&#039; - The script Bigshot calls to loot your kills (e.g., &amp;lt;CODE&amp;gt;eloot&amp;lt;/CODE&amp;gt;). Make sure the loot script is properly configured via its own SETUP command, or Bigshot may error.&lt;br /&gt;
* &#039;&#039;&#039;wracking spirit &amp;gt;=&#039;&#039;&#039; - If your spirit is greater than or equal to this value, Bigshot will WRACK for mana. Setting it to 6 will wrack down to 5 spirit. Only functions when the wracking checkbox is enabled.&lt;br /&gt;
* &#039;&#039;&#039;Use sign of wracking/sigil of power&#039;&#039;&#039; - Checkbox to enable wracking.&lt;br /&gt;
* &#039;&#039;&#039;Check for favor before using Voln symbols&#039;&#039;&#039; - Checkbox to verify you have sufficient favor before casting Voln society symbols.&lt;br /&gt;
* &#039;&#039;&#039;Priority hunt&#039;&#039;&#039; - When enabled, Bigshot targets creatures in the order listed in your valid targets field. If a higher-priority creature enters the room, Bigshot switches to it. When using &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt;, quickhunt targets take priority, followed by any remaining targets in room order.&lt;br /&gt;
* &#039;&#039;&#039;Delay looting&#039;&#039;&#039; - Delays the looting of creatures in a room.&lt;br /&gt;
* &#039;&#039;&#039;Defensive stance before looting&#039;&#039;&#039; - Switches to defensive stance before looting begins.&lt;br /&gt;
* &#039;&#039;&#039;Pull players to feet&#039;&#039;&#039; - Attempts to pull players to their feet when passing them.&lt;br /&gt;
* &#039;&#039;&#039;Stop for dead players&#039;&#039;&#039; - Pauses Bigshot if you encounter a dead player.&lt;br /&gt;
* &#039;&#039;&#039;Troubadour&#039;s Rally&#039;&#039;&#039; - Enables the use of Troubadour&#039;s Rally during hunts.&lt;br /&gt;
* &#039;&#039;&#039;Sneaky Sneaky&#039;&#039;&#039; - Sneak around while moving through the hunting area.&lt;br /&gt;
&lt;br /&gt;
===Should Hunt?===&lt;br /&gt;
Bigshot evaluates these conditions to determine if you are ready to begin a hunt from rest.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Setting this to 51 will wait until &amp;quot;Clear&amp;quot;. Setting it to 65 will wait until &amp;quot;Muddled&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;and percent mana &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The percentage of your maximum mana that must be present before hunting. Setting below 50 results in short hunts if you cast frequently. Generally set to 95 or higher.&lt;br /&gt;
* &#039;&#039;&#039;and CHECK spirit &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Bigshot checks that your current spirit value is at least this amount. Make sure this is high enough that Bigshot will not immediately hunt after DEPARTing if you have the &amp;quot;Depart / re-run&amp;quot; option enabled on the Monitoring tab.&lt;br /&gt;
* &#039;&#039;&#039;and percent stamina &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The percentage of your maximum stamina that must be present before hunting. Useful for melee-heavy builds that rely on stamina for CMANs and MSTRIKEs.&lt;br /&gt;
&lt;br /&gt;
==The Attacking Tab==&lt;br /&gt;
This tab controls aiming, flee conditions, and various combat behavior toggles.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Ambush aiming locations (head, etc)&#039;&#039;&#039; - The order Bigshot aims when ambushing. Default is head, right leg, left leg, chest. Bigshot cycles through these and skips locations that are too injured or unreachable.&lt;br /&gt;
* &#039;&#039;&#039;Archery aiming locations (head, etc)&#039;&#039;&#039; - The order Bigshot aims when using archery attacks. Loops through your aiming list.&lt;br /&gt;
* &#039;&#039;&#039;flee if enemy count is &amp;gt;&#039;&#039;&#039; - Flees the room if the total number of enemies exceeds this value. Set to 1 to engage only single targets.&lt;br /&gt;
* &#039;&#039;&#039;...but don&#039;t count these&#039;&#039;&#039; - Bigshot ignores these monsters when evaluating flee count. Useful when low-level monsters are mixed into your hunting area.&lt;br /&gt;
* &#039;&#039;&#039;...and always flee from&#039;&#039;&#039; - Bigshot immediately flees from these monsters. Useful when your hunting area has higher-level or dangerous monsters mixed in.&lt;br /&gt;
* &#039;&#039;&#039;flee from environment message&#039;&#039;&#039; - Bigshot flees whenever the game sends a message matching this text (uses XML regex matching). Note:  This does not work when using &amp;lt;CODE&amp;gt;;bigshot quick.&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;wait before wandering to another room&#039;&#039;&#039; - Time in seconds before moving to a new room. Default is 0.3. Set to 0 to move instantly (can be spammy for others in the area).&lt;br /&gt;
* &#039;&#039;&#039;Approach lone targets only&#039;&#039;&#039; - Forces Bigshot to only begin combat against creatures that are alone in a room.&lt;br /&gt;
* &#039;&#039;&#039;Bless weapon?&#039;&#039;&#039; - Performs a Consecrate (1604), then a Cleric Bless or Voln Bless on any weapon that loses its bless during hunting. If unable to bless during hunting, Bigshot returns to the rest area and quits.&lt;br /&gt;
* &#039;&#039;&#039;Activate weapon reactions&#039;&#039;&#039; - Initiates reactive strikes when the opportunity presents itself.&lt;br /&gt;
* &#039;&#039;&#039;Flee from clouds&#039;&#039;&#039; - Flees from cloud spells such as 125 (Call Lightning/Ominous Cloud), 1704 (Stun Cloud), and 1713 (Death Cloud).&lt;br /&gt;
* &#039;&#039;&#039;Flee from vines&#039;&#039;&#039; - Flees from vine spells such as 610 (Tangle Weed).&lt;br /&gt;
* &#039;&#039;&#039;Flee from webs&#039;&#039;&#039; - Flees from webs.&lt;br /&gt;
* &#039;&#039;&#039;Flee from voids&#039;&#039;&#039; - Flees from voids.&lt;br /&gt;
&lt;br /&gt;
==Commands Tab==&lt;br /&gt;
This is the core of Bigshot — where you define your attack routines.&lt;br /&gt;
&lt;br /&gt;
===Hunting Commands===&lt;br /&gt;
* &#039;&#039;&#039;hunting commands (a)&#039;&#039;&#039; - The primary commands Bigshot executes when in a room with a valid target. Commands are separated by commas. Bigshot recognizes most hunting verbs; unrecognized commands are sent directly as-is via fput. The following are recognized hunting commands:&lt;br /&gt;
** &#039;&#039;&#039;kill&#039;&#039;&#039; - Attacks using the KILL verb.&lt;br /&gt;
** &#039;&#039;&#039;incant &amp;lt;spell number&amp;gt;&#039;&#039;&#039; - Casts the specified spell with INCANT. Automatically stances into offensive for bolt and stance-sensitive spells. You can CHANNEL via &amp;lt;CODE&amp;gt;INCANT SET CHANNEL &amp;lt;spell&amp;gt;&amp;lt;/CODE&amp;gt; (a standard GSIV verb) or by setting &amp;lt;CODE&amp;gt;SET ChannelIncant ON&amp;lt;/CODE&amp;gt;, which will CHANNEL an INCanted spell if you are in a stance higher than neutral.&lt;br /&gt;
** &#039;&#039;&#039;channel &amp;lt;spell number&amp;gt;&#039;&#039;&#039; - Channels the specified spell at the target. Requires a stance higher than neutral to have effect.&lt;br /&gt;
** &#039;&#039;&#039;&amp;lt;spell number&amp;gt;&#039;&#039;&#039; - Casts the specified spell using PREPARE and CAST.&lt;br /&gt;
** &#039;&#039;&#039;wand&#039;&#039;&#039; - Gets a wand from your specified container and WAVEs it at the target.&lt;br /&gt;
** &#039;&#039;&#039;wandolier &amp;lt;stance&amp;gt; &amp;lt;noreserve&amp;gt;&#039;&#039;&#039; - Similar to wand, but designed for wandoliers. Gets a wand from the fresh wand container and waves it; rubs the container if no wands are found. Default waves in offensive stance and automatically adds the wand to your RESERVE list. Use &amp;lt;CODE&amp;gt;wandolier defensive&amp;lt;/CODE&amp;gt; to wave in a different stance, and add &amp;lt;CODE&amp;gt;noreserve&amp;lt;/CODE&amp;gt; to skip the RESERVE step, e.g., &amp;lt;CODE&amp;gt;wandolier defensive noreserve&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;resonance &amp;lt;spell id&amp;gt; &amp;lt;spell id&amp;gt; ...&#039;&#039;&#039; - Casts Resonance Bolt, picking randomly among the listed spell numbers each time (never repeating the one it just used back-to-back). Example: &amp;lt;CODE&amp;gt;resonance 511 512 513&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;sacrifice&#039;&#039;&#039; - Performs a Voln Sacrifice on the current target&#039;s corpse for favor. Only attempts it when you have 2+ spirit, the ability is off cooldown, and the corpse appraises as suitable for sacrifice.&lt;br /&gt;
** &#039;&#039;&#039;fire&#039;&#039;&#039; - Gets ammunition from your specified container and FIREs at the target. Aims based on Archery aiming settings on the Attacking tab.&lt;br /&gt;
** &#039;&#039;&#039;aim &amp;lt;location&amp;gt;&#039;&#039;&#039; - Aims at the specified body location.&lt;br /&gt;
** &#039;&#039;&#039;ambush&#039;&#039;&#039; - Uses the AMBUSH verb to attack, aiming based on Attacking tab settings. Can also aim dynamically: &amp;lt;CODE&amp;gt;ambush head&amp;lt;/CODE&amp;gt; overrides default settings for that attack.&lt;br /&gt;
** &#039;&#039;&#039;wait &amp;lt;time&amp;gt;&#039;&#039;&#039; - Stance dances by going into Defensive stance for the specified time (in seconds). Bigshot will exit early if the target swings or casts, then evaluate the rest of the attack routine from your attack stance.&lt;br /&gt;
** &#039;&#039;&#039;mstrike&#039;&#039;&#039; - Executes MSTRIKE based on cooldown and stamina. Has its own options page under the Misc tab. Can also be used with UAC: &amp;lt;CODE&amp;gt;mstrike punch&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;berserk&#039;&#039;&#039; - Executes the BERSERK verb and waits until it fades.&lt;br /&gt;
** &#039;&#039;&#039;throw&#039;&#039;&#039; - Empties hands, attempts throw, then retrieves the items you emptied.&lt;br /&gt;
** &#039;&#039;&#039;weed/kweed&#039;&#039;&#039; - Casts 610 at the target. Using &amp;lt;CODE&amp;gt;kweed&amp;lt;/CODE&amp;gt; forces EVOKE 610, ensuring the damage version.&lt;br /&gt;
** &#039;&#039;&#039;curse &amp;lt;type&amp;gt;&#039;&#039;&#039; - Preps 715 and uses the specified curse type. Valid types: Clumsy, Weakness, Darkness, Itch, Hex, Pox, Nightmare, Star. Skips &amp;quot;curse star&amp;quot; if the buff is already active.&lt;br /&gt;
** &#039;&#039;&#039;unarmed &amp;lt;type&amp;gt;&#039;&#039;&#039; - Uses the Bigshot UAC routine. Valid types: punch, jab, kick, grapple. The routine uses appropriate attacks to rank up and applies MSTRIKE based on MSTRIKE options. Example: &amp;lt;CODE&amp;gt;unarmed jab&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;smite&#039;&#039;&#039; - Performs an [[Order of Voln]] [[Kai&#039;s_Smite|Smite]] on the target until successful.&lt;br /&gt;
** &#039;&#039;&#039;leech&#039;&#039;&#039; - Performs a [[Mana Leech (516)]] on the target if cooldown is under 15 minutes.&lt;br /&gt;
** &#039;&#039;&#039;script &amp;lt;script name&amp;gt;&#039;&#039;&#039; - Executes a specified custom attack script.&lt;br /&gt;
** &#039;&#039;&#039;hide&#039;&#039;&#039; - Repeatedly attempts to hide until successful or gives up.&lt;br /&gt;
** &#039;&#039;&#039;sleep &amp;lt;nostance&amp;gt;&#039;&#039;&#039; - Pauses Bigshot for the specified number of seconds. Example: &amp;lt;CODE&amp;gt;sleep 10&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;sleep 10 nostance&amp;lt;/CODE&amp;gt;. Useful for timed hunting, e.g., &amp;lt;CODE&amp;gt;410, sleep 15&amp;lt;/CODE&amp;gt; will E-wave, then wait 15 seconds before re-evaluating.&lt;br /&gt;
** &#039;&#039;&#039;stance &amp;lt;stance&amp;gt;&#039;&#039;&#039; - Changes stance. Example: &amp;lt;CODE&amp;gt;stance defensive&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;nudgeweapons&#039;&#039;&#039; - Moves all weapons on the ground to an adjacent room. Useful for casting Implosion (720).&lt;br /&gt;
** &#039;&#039;&#039;force &amp;lt;cmd&amp;gt; until &amp;lt;endroll&amp;gt;&#039;&#039;&#039; - Repeats a command until a desired endroll is achieved. Example: &amp;lt;CODE&amp;gt;force incant 1002 until 101&amp;lt;/CODE&amp;gt;. Only works for standard swings/spells/CMANs.&lt;br /&gt;
** &#039;&#039;&#039;eachtarget &amp;lt;cmd&amp;gt;&#039;&#039;&#039; - Issues the command against each valid target in the room.&lt;br /&gt;
** &#039;&#039;&#039;efury &amp;lt;fire|cold&amp;gt;&#039;&#039;&#039; - Casts Earthen Fury (917) on the target and waits for the DOT to end or 12 seconds to pass.&lt;br /&gt;
** &#039;&#039;&#039;caststop &amp;lt;spell&amp;gt;&#039;&#039;&#039; - Casts the spell and immediately stops it after casting.&lt;br /&gt;
** &#039;&#039;&#039;wield &amp;lt;noun&amp;gt; &amp;lt;left|right&amp;gt;&#039;&#039;&#039; - Wields a new item in the specified hand and stores the current item.&lt;br /&gt;
** &#039;&#039;&#039;store&#039;&#039;&#039; - Stores items in left, right, or both hands (only if something is in those hands).&lt;br /&gt;
** &#039;&#039;&#039;tether &amp;lt;recast&amp;gt;&#039;&#039;&#039; - Casts 706 with built-in wait logic. The optional &amp;lt;CODE&amp;gt;recast&amp;lt;/CODE&amp;gt; flag will auto-recast 706 on creature death and transfer DOTs to a new target.&lt;br /&gt;
** &#039;&#039;&#039;unravel &amp;lt;spell&amp;gt;&#039;&#039;&#039; - Casts 1013 (Song of Unravelling). Optionally specify a spell number to target against the creature.&lt;br /&gt;
** &#039;&#039;&#039;depress&#039;&#039;&#039; - Casts 1015 (Song of Depression) with built-in logic.&lt;br /&gt;
** &#039;&#039;&#039;phase&#039;&#039;&#039; - Force-casts 704 (Phase) using PREP/CAST, required for NPC targeting to convert non-corporeal to corporeal undead.&lt;br /&gt;
&lt;br /&gt;
===Additional Command Sets===&lt;br /&gt;
* &#039;&#039;&#039;hunting commands (b) through (j)&#039;&#039;&#039; - Additional attack routines tied to creature flags. When you flag a creature in your valid targets (e.g., &amp;lt;CODE&amp;gt;niirsha(b)&amp;lt;/CODE&amp;gt;), Bigshot uses the matching command set. This allows different attack strategies for different creature types.&lt;br /&gt;
* &#039;&#039;&#039;fried hunting commands&#039;&#039;&#039; - Commands executed specifically when your mind is fried. Useful in group hunting where you still want to contribute.&lt;br /&gt;
* &#039;&#039;&#039;quick hunting commands&#039;&#039;&#039; - Commands executed when using &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;valid targets&#039;&#039;&#039; - The monsters you are hunting. Bigshot works best with creature NOUNs (e.g., &amp;lt;CODE&amp;gt;ogre&amp;lt;/CODE&amp;gt; instead of &amp;lt;CODE&amp;gt;a large ogre&amp;lt;/CODE&amp;gt;). Use commas to separate multiple targets: &amp;lt;CODE&amp;gt;manticore, thrak&amp;lt;/CODE&amp;gt;. If left blank, Bigshot will target everything in the room. Supports regex for advanced matching.&lt;br /&gt;
* &#039;&#039;&#039;quickhunt targets&#039;&#039;&#039; - Designated targets for the &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
===PSM3 Integration===&lt;br /&gt;
Bigshot supports weapon/shield skills and warcries. Assaults wait until they finish or are interrupted. The following are recognized PSM3 commands:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assaults&#039;&#039;&#039; (wait until completed/interrupted):&lt;br /&gt;
* barrage, flurry, fury, gthrusts, pummel, thrash&lt;br /&gt;
* fury can specify a default attack: &amp;lt;CODE&amp;gt;fury punch&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;fury kick&amp;lt;/CODE&amp;gt; (defaults to jab)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setups&#039;&#039;&#039; (execute on cooldown — pair with prone/stun/root checks):&lt;br /&gt;
* charge, cripple, dizzyingswing, pindown, twinhammer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AOE&#039;&#039;&#039; (execute on cooldown — limit with mob checks):&lt;br /&gt;
* clash, cyclone, pulverize, volley, wblade, whirlwind&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warcries:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;shout&#039;&#039;&#039; - Performs warcry Shout. Must use a command check or it will shout every loop: &amp;lt;CODE&amp;gt;shout(!shout)&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;shout(buff10 s25)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;yowlp&#039;&#039;&#039; - Performs warcry Yowlp. Must use a command check: &amp;lt;CODE&amp;gt;yowlp(!yowlp)&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;yowlp(buff10 s10)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;holler&#039;&#039;&#039; - Performs warcry Holler, taunting all mobs. Example: &amp;lt;CODE&amp;gt;holler(s60)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;bellow, growl, cry&#039;&#039;&#039; - Offensive warcries. Use with &amp;lt;CODE&amp;gt;target&amp;lt;/CODE&amp;gt; for single target or &amp;lt;CODE&amp;gt;all&amp;lt;/CODE&amp;gt; for AOE.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shield Skills:&#039;&#039;&#039;&lt;br /&gt;
* shield bash, shield charge, shield pin, shield push, shield strike, shield trample, shield throw&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Combat Maneuvers:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;surge&#039;&#039;&#039; - Keeps Surge of Strength active. &amp;lt;CODE&amp;gt;surge&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;surge(surge)&amp;lt;/CODE&amp;gt; casts even on cooldown; &amp;lt;CODE&amp;gt;surge(!surge)&amp;lt;/CODE&amp;gt; only casts when not on cooldown.&lt;br /&gt;
* &#039;&#039;&#039;bearhug, bullrush, coupdegrace, cpress, cutthroat, dirtkick, disarm, dislodge, divert, eviscerate, exsanguinate, eyepoke, feint, footstomp, garrote, gkick, hamstring, haymaker, headbutt, kifocus, kneebash, leapattack, mblow, mug, nosetweak, sattack, sblow, scleave, shroud, spunch, sthieve, subdue, sunder, sweep, swiftkick, tackle, templeshot, throatchop, trip, truestrike, vaultkick&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;dislodge &amp;lt;location&amp;gt;&#039;&#039;&#039; - Dislodge from the specified location: &amp;lt;CODE&amp;gt;dislodge eye neck&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;stomp&#039;&#039;&#039; - Performs a stomp attack. Channels 909 if not already active. You can also add 909 to the society abilities field to keep it active.&lt;br /&gt;
* &#039;&#039;&#039;dhurl&#039;&#039;&#039; - Hurls your weapon and recovers it. Works with weapon bonding auto-return and the RECOVER verb.&lt;br /&gt;
* &#039;&#039;&#039;assume &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt;&#039;&#039;&#039; - Cycles between two aspects, or evokes a single aspect. Also works in the society abilities box: &amp;lt;CODE&amp;gt;650 &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt;&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;briar &amp;lt;weapon&amp;gt;&#039;&#039;&#039; - Activates the AS buff on briar weapons. Tracks weapon charge and uses on cooldown.&lt;br /&gt;
* &#039;&#039;&#039;stance perfection&#039;&#039;&#039; - Put 10, 20, 30, etc. in your attack stance box to take advantage of stance perfection.&lt;br /&gt;
* &#039;&#039;&#039;chastise, excoriate&#039;&#039;&#039; - Performs the FEAT if available and affordable.&lt;br /&gt;
&lt;br /&gt;
===Gemstone Activation===&lt;br /&gt;
To use a gemstone-activated ability, use &amp;lt;CODE&amp;gt;jewel &amp;lt;mnemonic&amp;gt;&amp;lt;/CODE&amp;gt;. Bigshot automatically avoids usage if the ability is on cooldown. Supported gemstone mnemonics:&lt;br /&gt;
* bloodboil - Blood Boil&lt;br /&gt;
* spellblade - Spellblade&#039;s Fury&lt;br /&gt;
* arcascend - Arcanist&#039;s Ascendancy&lt;br /&gt;
* geospite - Geomancer&#039;s Spite&lt;br /&gt;
* forceofwill - Force of Will&lt;br /&gt;
* arcaneintensity - Arcane Intensity&lt;br /&gt;
* arcaneopus - Arcane Opus&lt;br /&gt;
* bloodsiphon - Blood Siphon&lt;br /&gt;
* bloodwell - Blood Wellspring&lt;br /&gt;
* epossess - Evanescent Possession&lt;br /&gt;
* manawellspring - Mana Wellspring&lt;br /&gt;
* spiritwell - Spirit Wellspring&lt;br /&gt;
* stamwell - Stamina Wellspring&lt;br /&gt;
* terrortribute - Terror&#039;s Tribute&lt;br /&gt;
* arcblade - Arcanist&#039;s Blade&lt;br /&gt;
* arcwill - Arcanist&#039;s Will&lt;br /&gt;
* imaerabalm - Imaera&#039;s Balm&lt;br /&gt;
* reckless - Reckless Precision&lt;br /&gt;
* unearthchains - Unearthly Chains&lt;br /&gt;
* witchhunt - Witchhunter&#039;s Ascendancy&lt;br /&gt;
* manashield - Mana Shield&lt;br /&gt;
* arcaneaegis - Arcane Aegis&lt;br /&gt;
&lt;br /&gt;
You may need to run &#039;&#039;&#039;SKILLS FULL&#039;&#039;&#039;, &#039;&#039;&#039;CMAN INFO&#039;&#039;&#039;, &#039;&#039;&#039;WEAPON INFO&#039;&#039;&#039;, or &#039;&#039;&#039;SHIELD INFO&#039;&#039;&#039; if you have recently changed training or if skills are being skipped.&lt;br /&gt;
&lt;br /&gt;
===Additional Options===&lt;br /&gt;
* &#039;&#039;&#039;haste&#039;&#039;&#039; or &#039;&#039;&#039;506&#039;&#039;&#039; - Placing this in front of any command casts 506 (Haste) before executing the command. Only casts if Haste is not currently active or has less than 3 seconds remaining.&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 10, haste kill (x3)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;slayer&#039;&#039;&#039; or &#039;&#039;&#039;240&#039;&#039;&#039; - Placing this in front of any command casts 240 before executing. Will not recast if already active.&lt;br /&gt;
&amp;lt;PRE&amp;gt;slayer 302 (x99)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Command Checks===&lt;br /&gt;
Command checks let you add conditions to any command. The format is:&lt;br /&gt;
&amp;lt;CODE&amp;gt;COMMAND (CHECKS)(REPETITIONS)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;CODE&amp;gt;hamstring (mob1 prone)(x2)&amp;lt;/CODE&amp;gt;. The (x#) repetition must be in a separate set of parentheses. Note that (xx) is shorthand for (x5), not unlimited.&lt;br /&gt;
&lt;br /&gt;
Checks can be combined inside a single set of parentheses with spaces between them. Example: &amp;lt;CODE&amp;gt;kill(m20 s5 e20)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each check also has an inverse — prefix with &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to negate. Example: &amp;lt;CODE&amp;gt;kill(!m20 !s5 !e20)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resource and Status Checks====&lt;br /&gt;
* &#039;&#039;&#039;s#&#039;&#039;&#039; - Requires at least # stamina.&lt;br /&gt;
* &#039;&#039;&#039;m#&#039;&#039;&#039; - Requires at least # mana.&lt;br /&gt;
* &#039;&#039;&#039;h#&#039;&#039;&#039; - Requires health to be at or above #% (percentage, not fixed).&lt;br /&gt;
* &#039;&#039;&#039;v#&#039;&#039;&#039; - Requires at least # spirit.&lt;br /&gt;
* &#039;&#039;&#039;e#&#039;&#039;&#039; - Requires encumbrance percentage to be at or below #.&lt;br /&gt;
* &#039;&#039;&#039;essence#&#039;&#039;&#039; - Requires at least # Shadow Essence (Sorcerer).&lt;br /&gt;
* &#039;&#039;&#039;thp#&#039;&#039;&#039; - Requires the &#039;&#039;target&#039;s&#039;&#039; health to be at or below #% (this is the target&#039;s health, unlike h# above which checks your own). &amp;lt;CODE&amp;gt;(!thp#)&amp;lt;/CODE&amp;gt; requires the target&#039;s health to be above #%. If Bigshot can&#039;t determine the target&#039;s health, the command is skipped.&lt;br /&gt;
&lt;br /&gt;
====Creature Checks====&lt;br /&gt;
* &#039;&#039;&#039;mob#&#039;&#039;&#039; - Requires at least # NPCs in the room. Only useful for 2 or more creatures.&lt;br /&gt;
&amp;lt;PRE&amp;gt;To further clarify the mob# implementation:&lt;br /&gt;
1 mob, mob2: 1 IS less than 2 — attack does NOT proceed.&lt;br /&gt;
2 mobs, mob2: 2 IS NOT less than 2 — attack CAN proceed.&lt;br /&gt;
1 mob, !mob2: 1 IS NOT more than 2 — attack CAN proceed.&lt;br /&gt;
2 mobs, !mob2: 2 IS NOT more than 2 — attack CAN proceed.&lt;br /&gt;
3 mobs, !mob2: 3 IS more than 2 — attack does NOT proceed.&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;valid#&#039;&#039;&#039; - Like mob#, but only counts valid targets you are actively targeting in current settings.&lt;br /&gt;
* &#039;&#039;&#039;tier#&#039;&#039;&#039; - Checks your current UAC tier (1, 2, 3). Performs the command if your tier is equal to or greater than #. &amp;lt;CODE&amp;gt;(!tier3)&amp;lt;/CODE&amp;gt; skips the command at tier 3.&lt;br /&gt;
* &#039;&#039;&#039;prone&#039;&#039;&#039; - Checks that the target is NOT sleeping, webbed, stunned, kneeling, sitting, lying down, prone, frozen, or held in place. Performs the command if none of those apply.&lt;br /&gt;
* &#039;&#039;&#039;frozen&#039;&#039;&#039; - Similar to prone but broken out separately. Useful for archers against non-corporeal creatures that deflect ranged attacks. Corporeal creatures that are stunned will break this check.&lt;br /&gt;
* &#039;&#039;&#039;undead&#039;&#039;&#039; - Performs the command if the target is undead.&lt;br /&gt;
* &#039;&#039;&#039;flying&#039;&#039;&#039; - Performs the command if the target is flying.&lt;br /&gt;
* &#039;&#039;&#039;rooted&#039;&#039;&#039; - Performs the command if the target is rooted.&lt;br /&gt;
* &#039;&#039;&#039;noncorporeal&#039;&#039;&#039; - Performs the command if the NPC is [[noncorporeal|non-corporeal]] undead.&lt;br /&gt;
* &#039;&#039;&#039;ancient&#039;&#039;&#039; - Checks for grizzled/ancient creatures.&lt;br /&gt;
&lt;br /&gt;
The following checks read the target&#039;s live status directly from the game feed, so they can be more precise than the umbrella &#039;&#039;&#039;prone&#039;&#039;&#039; check above. Each performs the command only when the target IS in that state (add &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to require that it is NOT):&lt;br /&gt;
* &#039;&#039;&#039;calm&#039;&#039;&#039; - Target is calmed.&lt;br /&gt;
* &#039;&#039;&#039;disoriented&#039;&#039;&#039; - Target is disoriented.&lt;br /&gt;
* &#039;&#039;&#039;hovering&#039;&#039;&#039; - Target is hovering.&lt;br /&gt;
* &#039;&#039;&#039;immobilized&#039;&#039;&#039; - Target is immobilized (note: this checks the opposite condition of the existing &#039;&#039;&#039;frozen&#039;&#039;&#039; check above, which performs its command only when the target is NOT frozen).&lt;br /&gt;
* &#039;&#039;&#039;kneeling&#039;&#039;&#039; - Target is kneeling.&lt;br /&gt;
* &#039;&#039;&#039;sitting&#039;&#039;&#039; - Target is sitting.&lt;br /&gt;
* &#039;&#039;&#039;sleeping&#039;&#039;&#039; - Target is sleeping.&lt;br /&gt;
* &#039;&#039;&#039;stunned&#039;&#039;&#039; - Target is stunned.&lt;br /&gt;
* &#039;&#039;&#039;webbed&#039;&#039;&#039; - Target is webbed.&lt;br /&gt;
* &#039;&#039;&#039;lying&#039;&#039;&#039; - Target is lying down (prone).&lt;br /&gt;
&lt;br /&gt;
Creature type/classification checks, also read from the game feed. Each performs the command only when the target carries that classification (add &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to require that it does not):&lt;br /&gt;
* &#039;&#039;&#039;mount&#039;&#039;&#039; - Target is a mount.&lt;br /&gt;
* &#039;&#039;&#039;rider&#039;&#039;&#039; - Target is riding a mount.&lt;br /&gt;
* &#039;&#039;&#039;mini_boss&#039;&#039;&#039; - Target is flagged as a mini-boss.&lt;br /&gt;
* &#039;&#039;&#039;ascension_boss&#039;&#039;&#039; - Target is flagged as an Ascension boss.&lt;br /&gt;
* &#039;&#039;&#039;ascended&#039;&#039;&#039; - Target carries the &amp;quot;ascended&amp;quot; classification.&lt;br /&gt;
* &#039;&#039;&#039;challenging&#039;&#039;&#039; - Target is flagged as a tougher &amp;quot;challenging&amp;quot; variant.&lt;br /&gt;
* &#039;&#039;&#039;inferior&#039;&#039;&#039; - Target is flagged as a weaker &amp;quot;inferior&amp;quot; variant.&lt;br /&gt;
* &#039;&#039;&#039;disengaged&#039;&#039;&#039; - Target has disengaged from combat.&lt;br /&gt;
* &#039;&#039;&#039;sympathetic&#039;&#039;&#039; - Target is flagged as sympathetic (non-hostile).&lt;br /&gt;
&lt;br /&gt;
Wound and critical-hit checks:&lt;br /&gt;
* &#039;&#039;&#039;wounded&#039;&#039;&#039; - Performs the command only when the target&#039;s health is at or below 25% (a fixed threshold; use &#039;&#039;&#039;thp#&#039;&#039;&#039; above for a custom percentage). &amp;lt;CODE&amp;gt;(!wounded)&amp;lt;/CODE&amp;gt; requires health above 25%.&lt;br /&gt;
* &#039;&#039;&#039;fatalcrit&#039;&#039;&#039; - Performs the command only when the target has already suffered a fatal critical hit. &amp;lt;CODE&amp;gt;(!fatalcrit)&amp;lt;/CODE&amp;gt; requires that it has not.&lt;br /&gt;
* &#039;&#039;&#039;smote&#039;&#039;&#039; - Performs the command only when the target has already been hit with Voln Smite. &amp;lt;CODE&amp;gt;(!smote)&amp;lt;/CODE&amp;gt; requires that it has not been.&lt;br /&gt;
&lt;br /&gt;
Target-specific UCS positioning checks — these read the &#039;&#039;target&#039;s&#039;&#039; individual unarmed-combat positioning, unlike the &#039;&#039;&#039;tier#&#039;&#039;&#039; checks above which track your own overall UAC tier. Each performs the command only when your positioning against &#039;&#039;that specific target&#039;&#039; matches (add &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to require that it does not):&lt;br /&gt;
* &#039;&#039;&#039;ucsdecent&#039;&#039;&#039; - Positioning is &amp;quot;decent&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ucsgood&#039;&#039;&#039; - Positioning is &amp;quot;good&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ucsexcellent&#039;&#039;&#039; - Positioning is &amp;quot;excellent&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ucstierup&#039;&#039;&#039; - A tier-up follow-up is available.&lt;br /&gt;
&lt;br /&gt;
====Self Checks====&lt;br /&gt;
* &#039;&#039;&#039;hidden&#039;&#039;&#039; - Performs the command if you are currently hidden.&lt;br /&gt;
* &#039;&#039;&#039;poison&#039;&#039;&#039; - Performs the command if you are currently poisoned.&lt;br /&gt;
* &#039;&#039;&#039;disease&#039;&#039;&#039; - Performs the command if you are currently diseased.&lt;br /&gt;
* &#039;&#039;&#039;pcs&#039;&#039;&#039; - Performs the command if there are PCs in the room that are not in your group.&lt;br /&gt;
* &#039;&#039;&#039;outside&#039;&#039;&#039; - Performs the command if the room is outdoors.&lt;br /&gt;
* &#039;&#039;&#039;splashy&#039;&#039;&#039; - Checks if the room is &amp;quot;splashy&amp;quot; (wet) via Room.tags. Useful for avoiding lightning attacks in wet rooms.&lt;br /&gt;
* &#039;&#039;&#039;k#&#039;&#039;&#039; - Performs the command only while you are kneeling. The number is required by the syntax but its value doesn&#039;t matter (e.g. &amp;lt;CODE&amp;gt;k1&amp;lt;/CODE&amp;gt;). &amp;lt;CODE&amp;gt;(!k#)&amp;lt;/CODE&amp;gt; performs the command only while you are NOT kneeling.&lt;br /&gt;
&lt;br /&gt;
====Timing Checks====&lt;br /&gt;
* &#039;&#039;&#039;once&#039;&#039;&#039; - Performs the command once per target. Resets on room change.&lt;br /&gt;
* &#039;&#039;&#039;room&#039;&#039;&#039; - Performs the command once per room. Resets on room change.&lt;br /&gt;
* &#039;&#039;&#039;repeatdelay#&#039;&#039;&#039; - Throttles the command to once every # seconds per room, regardless of which target it&#039;s used against. Resets on room change. Example: &amp;lt;CODE&amp;gt;holler(repeatdelay60)&amp;lt;/CODE&amp;gt; will not Holler again for 60 seconds after it last went off in that room.&lt;br /&gt;
&lt;br /&gt;
====Buff Checks====&lt;br /&gt;
* &#039;&#039;&#039;barrage&#039;&#039;&#039; - Checks for the Enhanced Dexterity buff from Barrage.&lt;br /&gt;
* &#039;&#039;&#039;fury&#039;&#039;&#039; - Checks for the Enhanced Constitution buff from Fury.&lt;br /&gt;
* &#039;&#039;&#039;flurry&#039;&#039;&#039; - Checks for the Slashing Strikes buff from Flurry.&lt;br /&gt;
* &#039;&#039;&#039;pummel&#039;&#039;&#039; - Checks for the Concussive Blows buff from Pummel.&lt;br /&gt;
* &#039;&#039;&#039;thrash&#039;&#039;&#039; - Checks for the Forceful Blows buff from Thrash.&lt;br /&gt;
* &#039;&#039;&#039;vigor&#039;&#039;&#039; - Checks for the Tangleweed Vigor buff.&lt;br /&gt;
* &#039;&#039;&#039;reflex&#039;&#039;&#039; - Checks for the Arcane Reflex buff from Nature&#039;s Touch.&lt;br /&gt;
* &#039;&#039;&#039;tailwind&#039;&#039;&#039; - Checks for the Tailwind buff from Breeze.&lt;br /&gt;
* &#039;&#039;&#039;shout&#039;&#039;&#039; - Checks for the Empowered buff from Shout.&lt;br /&gt;
* &#039;&#039;&#039;yowlp&#039;&#039;&#039; - Checks for Yertie&#039;s Yowlp buff from Yowlp.&lt;br /&gt;
* &#039;&#039;&#039;holler&#039;&#039;&#039; - Checks for Horland&#039;s Holler buff from Holler.&lt;br /&gt;
* &#039;&#039;&#039;voidweaver&#039;&#039;&#039; - Checks for the Voidweaver buff from Implosion (720).&lt;br /&gt;
* &#039;&#039;&#039;justice&#039;&#039;&#039; - Checks for charges of Swift Justice. &amp;lt;CODE&amp;gt;(justice)&amp;lt;/CODE&amp;gt; acts with charges; &amp;lt;CODE&amp;gt;(!justice)&amp;lt;/CODE&amp;gt; acts with no charges.&lt;br /&gt;
* &#039;&#039;&#039;surge&#039;&#039;&#039; - Checks for Surge of Strength buff.&lt;br /&gt;
* &#039;&#039;&#039;rebuke&#039;&#039;&#039; - Checks for Righteous Rebuke buff.&lt;br /&gt;
* &#039;&#039;&#039;scourge&#039;&#039;&#039; - Checks for Ardor of the Scourge buff.&lt;br /&gt;
* &#039;&#039;&#039;momentum&#039;&#039;&#039; - Checks for Glorious Momentum buff.&lt;br /&gt;
* &#039;&#039;&#039;coupdegrace&#039;&#039;&#039; - Checks for the Empowered buff from Coup de Grace.&lt;br /&gt;
* &#039;&#039;&#039;animate&#039;&#039;&#039; - Checks for whether you have an animate present.&lt;br /&gt;
* &#039;&#039;&#039;empowered#&#039;&#039;&#039; - Skips the command if an Empowered buff of +# or greater is already active, so a strong Coup de Grace bonus can&#039;t get overwritten by a weaker recast. &amp;lt;CODE&amp;gt;(!empowered#)&amp;lt;/CODE&amp;gt; skips unless already at +# or greater.&lt;br /&gt;
* &#039;&#039;&#039;buffXX&#039;&#039;&#039; - Fires the ability when the buff duration is &amp;lt;= XX seconds remaining. Supported for barrage, bearhug, coupdegrace, flurry, fury, garrote, pummel, shout, thrash, weed/kweed, yowlp.&lt;br /&gt;
* &#039;&#039;&#039;censer&#039;&#039;&#039; - Attempts to cast 320 before your command, checking mana and cooldown. Examples: &amp;lt;CODE&amp;gt;309(censer)&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;335(censer mob3)&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;attack(censer)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
** If the command is a spell, censer only casts if you have mana for both 320 and the spell.&lt;br /&gt;
** If the command is not a spell, censer only checks you have enough mana for 320.&lt;br /&gt;
&lt;br /&gt;
====Effects Checks====&lt;br /&gt;
* &#039;&#039;&#039;ES&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Spells effect is active&lt;br /&gt;
* &#039;&#039;&#039;EB&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Buffs effect is active&lt;br /&gt;
* &#039;&#039;&#039;EC&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Cooldowns effect is active&lt;br /&gt;
* &#039;&#039;&#039;ED&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Debuffs effect is active&lt;br /&gt;
&lt;br /&gt;
===Example Attack Routines===&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 10, kill (x3)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Waits 10 seconds for the monster to swing or cast, then counter-attacks from your specified attack stance. Swings three times, then goes back to defensive and waits again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 15, incant 505, incant 903 (xx)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Waits 15 seconds, then INCants 505 (Hand of Tonis) to knock down or stun the target. Follows up with repeated casts of 903 (Minor Water) until the target is dead (up to 5 times).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;stance defensive and incant 1615, kill (x100)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Casts 1615 (Divine Strike) from defensive stance, then uses KILL continuously until the target is dead or 100 swings (whichever comes first).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;force feint until 101, kill (x2)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Uses FEINT against the target until a successful endroll, then hits twice before trying FEINT again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;stance defensive and hide, ambush left leg&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Hides from defensive stance, then ambushes the target&#039;s left leg. Repeats (hides again) after roundtime.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;incant 720(m50), incant 708, incant 702 channel(xx)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Casts 720 (Implosion) if you have 50+ mana, then INCants 708 (Limb Disruption) at the default aim location, then channels 702 (Mana Disruption) up to 5 times or until dead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;prep 708, cast at left leg / prep 708 channel at left leg, incant 719 (m50)(x1), incant 702 (xx)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Prepares 708 and CASTs at the left leg. The second variant prepares and CHANNELs at the left leg. Then casts 719 (Dark Catalyst) once if 50+ mana. Finally, INCants 702 until the creature is dead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 30, unarmed punch&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Waits 30 seconds or until the target attacks, then begins UAC combat using Punch to tier up.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;shield charge (s15 prone), ambush, mstrike&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Shield charges the target if you have 15+ stamina and the target is NOT prone. Then ambushes based on Attacking tab settings (cycling through configured aim locations). Then MSTRIKEs — focused if below the creature threshold, unfocused if at or above it. Use &amp;lt;CODE&amp;gt;mstrike target&amp;lt;/CODE&amp;gt; to always focus, or set unfocused threshold very high.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;bellow all, wblade(mob3), flurry(!flurry), attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
AOE bellows, then Whirling Blade if 3+ targets. Flurries if the Slashing Strikes buff is not active. Falls back to basic attack.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;holler, shield throw(mob3), flurry, thrash, attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Taunts with Holler, Shield Throws if 3+ targets, Flurries on cooldown, Thrashes on cooldown, and attacks as a fallback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;shroud(s35 !hidden mob2), divert (s25 hidden mob2), ambush(hidden), flurry, attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
If 2+ mobs: hides with Shroud (35 stamina, not already hidden), then Diverts one target (25 stamina, must be hidden). Ambushes if hidden, Flurries on cooldown, attacks as fallback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;surge(!surge), bullrush, bearhug, pummel, attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Keeps Surge active (casting only when not on cooldown). Bullrush to apply vulnerable, Bearhug (faster on vulnerable targets), Pummel on cooldown, attack as fallback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;surge, shout(buff10), shield strike, pummel(buff60), attack(x2)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Keeps Surge active (casting even during cooldown for 60 stamina). Shouts when less than 11 seconds remain on the buff. Shield Strikes, Pummels once per minute, finishes with 2 attacks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;pindown(mob4), volley(mob2), weed(!vigor !reflex), barrage(!barrage), incant 616 (m16 reflex), fire&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Pin Down if 4+ targets, Volley if 2+ targets. Tangleweed if missing Vigor and Reflex buffs. Barrage if missing Enhanced Dexterity. Spike Thorn (616) if 16+ mana and Arcane Reflex is active. Fire as fallback.&lt;br /&gt;
&lt;br /&gt;
===Hunting Target Examples===&lt;br /&gt;
All examples below work for both &amp;quot;valid targets&amp;quot; and &amp;quot;quickhunt targets.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A simple target list using default commands (a) for each creature:&lt;br /&gt;
&amp;lt;PRE&amp;gt;crazed zombie, niirsha, sacristan spirit&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using different command sets per creature — (a) for zombies and spirits, (b) for niirsha:&lt;br /&gt;
&amp;lt;PRE&amp;gt;crazed zombie(a), niirsha(b), sacristan spirit(a)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Including [[:Category:Boss creatures|Boss Creature]] variations as valid targets using regex:&lt;br /&gt;
&amp;lt;PRE&amp;gt;(?:adroit |afflicted |apt |barbed |belligerent |blurry |canny |combative |dazzling |deft |diseased |drab |dreary |ethereal |flashy |flexile |flickering |flinty |frenzied |ghastly |ghostly |gleaming |glittering |glorious |glowing |grotesque |hardy |illustrious |indistinct |keen |lanky |luminous |lustrous |muculent |nebulous |oozing |pestilent |radiant |raging |ready |resolute |robust |rune-covered |shadowy |shielded |shifting |shimmering |shining |sickly green |sinuous |slimy |sparkling |spindly |spiny |stalwart |steadfast |stout |tattooed |tenebrous |tough |twinkling |unflinching |unyielding |wavering |wispy )?crazed zombie, niirsha, sacristan spirit&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advanced regex for Grimswarm hunting with different commands per class:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:dissembler|sorcerer|sorceress|warlock|witch)(a)&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:barbarian|blackguard|fighter|marauder|soldier|warrior)(b)&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:adept|archmage|elementalist|mage|warmage)(c)&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:hunter|huntmaster|huntmistress|ranger)(d)&lt;br /&gt;
(?:seasoned )?(?:dwarven|elven|halfling|erithian|human|giantman|half-krolvin|gnomish|half-elven) (?:thief|rogue|bandit|mugger|outlaw|highwayman|marauder|brigand|thug|robber)(e)&lt;br /&gt;
(?:shopkeeper|innkeeper|bartender|patrol leader|bandit lord|bandit lady|gypsy queen|gypsy king|guard captain|wall captain|drill sergeant|stable hostler|dungeon master|master torturer|butler|cook|&lt;br /&gt;
knight captain|foreign dignitary|royal prince|royal princess|royal jester|royal emperor|royal empress)(f)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To target everything in the room: &amp;lt;CODE&amp;gt;(?:.*)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boon Creatures Tab==&lt;br /&gt;
Boss creatures (also called the Boss Creature System) upgrades newly created creatures into bosses, minibosses, or packs. Upgraded creatures have their level and basic stats boosted, and are granted a number of special abilities called &#039;&#039;&#039;boons&#039;&#039;&#039;, which are denoted by a special adjective in the creature&#039;s name. Players have alternatively called these &amp;quot;glam critters,&amp;quot; &amp;quot;gifted creatures,&amp;quot; or &amp;quot;boosted critters.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additional details are available on the GemStone Wiki: [https://gswiki.play.net/Category:Boss_creatures Category:Boss creatures]&lt;br /&gt;
&lt;br /&gt;
The Boon Creatures tab provides granular control over how Bigshot handles each boon ability. Bigshot uses the ASSESS verb to identify which boons a creature has, then checks your configuration to decide how to respond.&lt;br /&gt;
&lt;br /&gt;
===How It Works===&lt;br /&gt;
For each boon ability, you can choose one of three actions:&lt;br /&gt;
* &#039;&#039;&#039;Common&#039;&#039;&#039; - Treat as a normal target and fight it. Uses your hunting commands to kill. Still requires proper valid target matching to engage. This is also the default behavior if no selection is made.&lt;br /&gt;
* &#039;&#039;&#039;Ignore&#039;&#039;&#039; - Skip this creature entirely; do not engage it.&lt;br /&gt;
* &#039;&#039;&#039;Flee&#039;&#039;&#039; - Immediately flee from the room when this boon type is detected.&lt;br /&gt;
&lt;br /&gt;
===Master Toggle===&lt;br /&gt;
At the top of the tab is an &#039;&#039;&#039;All Boon Creatures&#039;&#039;&#039; section with Common, Ignore, and Flee checkboxes. These act as master toggles — checking one will set every individual boon ability across all groups to that action. If all individual items are already set to the same action and you uncheck the &amp;quot;All&amp;quot; toggle, everything gets unchecked.&lt;br /&gt;
&lt;br /&gt;
===Boon Groups===&lt;br /&gt;
The individual boon abilities are organized into four collapsible groups, each with its own group-level toggle row (&amp;quot;Entire Group&amp;quot;) and individual per-ability rows:&lt;br /&gt;
&lt;br /&gt;
====Immunity====&lt;br /&gt;
Boons that make the creature resistant or immune to certain damage types or effects.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Crit Death Immune || resolute, unflinching || Similar to constructs or golems&lt;br /&gt;
|-&lt;br /&gt;
| Damage Padding || flinty, tough ||&lt;br /&gt;
|-&lt;br /&gt;
| Elem Negation || sparkling, shining || Absorbs elemental magic attacks&lt;br /&gt;
|-&lt;br /&gt;
| Magic Resistance || rune-covered, tattooed || Reduces magic damage by 50%&lt;br /&gt;
|-&lt;br /&gt;
| Physical Negation || indistinct, nebulous || Physical damage resist shield&lt;br /&gt;
|-&lt;br /&gt;
| Stun Immune || steadfast, unyielding ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Offensive====&lt;br /&gt;
Boons that enhance the creature&#039;s offensive capabilities.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Boosted Offense || combative, belligerent ||&lt;br /&gt;
|-&lt;br /&gt;
| Cheat Death || glorious, illustrious || Raises self after death&lt;br /&gt;
|-&lt;br /&gt;
| Counter Attack || apt, ready || SMR counter-attack&lt;br /&gt;
|-&lt;br /&gt;
| Crit Weighting || shimmering, gleaming ||&lt;br /&gt;
|-&lt;br /&gt;
| Dmg Weighting || barbed, spiny ||&lt;br /&gt;
|-&lt;br /&gt;
| Dispelling || dazzling, flashy || Spirit Dispel (119) and Elem Dispel (417)&lt;br /&gt;
|-&lt;br /&gt;
| Elemental Flares || glittering ||&lt;br /&gt;
|-&lt;br /&gt;
| Frenzy || raging, frenzied ||&lt;br /&gt;
|-&lt;br /&gt;
| Mind Blast || canny, keen ||&lt;br /&gt;
|-&lt;br /&gt;
| Parting Shot || dreary, drab || Deals damage one last time upon death&lt;br /&gt;
|-&lt;br /&gt;
| Poisonous || sickly green, oozing || SMR poison gas cloud&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Defensive====&lt;br /&gt;
Boons that enhance the creature&#039;s defensive capabilities.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Blink || flickering, wavering || Temporary phase ability&lt;br /&gt;
|-&lt;br /&gt;
| Bolt Shield || shielded ||&lt;br /&gt;
|-&lt;br /&gt;
| Boosted Defense || sinuous, flexile || High damage padding (+12 CER)&lt;br /&gt;
|-&lt;br /&gt;
| Confuse || blurry, shifting || May give hard RT for casting at them&lt;br /&gt;
|-&lt;br /&gt;
| Crit Padding || stout, hardy ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Stats / Misc====&lt;br /&gt;
Boons that affect the creature&#039;s stats, resistances, or grant miscellaneous special abilities.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Boosted HP || robust, stalwart ||&lt;br /&gt;
|-&lt;br /&gt;
| Boosted Mana || luminous, lustrous ||&lt;br /&gt;
|-&lt;br /&gt;
| Diseased || pestilent, afflicted, diseased ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Spells - Elem || glowing ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Spells - Spirit || radiant ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Spells - Other || twinkling ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethereal || ethereal, wispy, ghostly || Noncorporeal undead. No Sheer Fear.&lt;br /&gt;
|-&lt;br /&gt;
| Jack of All Trades || adroit, deft ||&lt;br /&gt;
|-&lt;br /&gt;
| Regeneration || slimy, muculent || Similar to Troll&#039;s Blood (1125)&lt;br /&gt;
|-&lt;br /&gt;
| Soul Stealing || tenebrous, shadowy || May possess 1204, 1601, and 1712&lt;br /&gt;
|-&lt;br /&gt;
| Terrifying || ghastly, grotesque || Pre-attack SMR can force player into defensive&lt;br /&gt;
|-&lt;br /&gt;
| Weaken || spindly, lanky || Weaker creature than normal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Usage Tips===&lt;br /&gt;
* If you are a melee character who struggles with &#039;&#039;&#039;Stun Immune&#039;&#039;&#039; or &#039;&#039;&#039;Crit Death Immune&#039;&#039;&#039; creatures, set those to Ignore or Flee while leaving others on Common.&lt;br /&gt;
* Casters may want to Flee from &#039;&#039;&#039;Dispelling&#039;&#039;&#039; and &#039;&#039;&#039;Magic Resistance&#039;&#039;&#039; boons.&lt;br /&gt;
* &#039;&#039;&#039;Weaken&#039;&#039;&#039; is actually beneficial — the creature is weaker than normal, so leaving it on Common is usually best.&lt;br /&gt;
* &#039;&#039;&#039;Cheat Death&#039;&#039;&#039; creatures will revive after dying; consider Ignore if your build cannot handle killing them twice.&lt;br /&gt;
* The configuration is saved per profile, so you can have different boon strategies for different hunting areas.&lt;br /&gt;
&lt;br /&gt;
== Misc Tab==&lt;br /&gt;
Various specialized configuration options.&lt;br /&gt;
&lt;br /&gt;
===UAC Options===&lt;br /&gt;
Options for configuring Unarmed Combat (UAC):&lt;br /&gt;
* &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039; - The attack used when you have reached &amp;quot;excellent&amp;quot; positioning. Options: jab, punch, grapple, or kick.&lt;br /&gt;
* &#039;&#039;&#039;Aim at location (head, etc)&#039;&#039;&#039; - Used for aimed UAC combat, which requires ambush training to be effective. Leave blank if you do not want to aim.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE when creatures equal or greater&#039;&#039;&#039; - How many creatures must be present before using MSTRIKE during UAC.&lt;br /&gt;
* &#039;&#039;&#039;Use Voln SMITE?&#039;&#039;&#039; - Will perform a Voln SMITE on [[Non-corporeal]] undead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quick Setup:&#039;&#039;&#039; Bigshot only requires minimal configuration for UAC to work well:&lt;br /&gt;
# &#039;&#039;&#039;UAC options:&#039;&#039;&#039; Set your &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039; (jab, punch, grapple, or kick).&lt;br /&gt;
# &#039;&#039;&#039;Commands tab:&#039;&#039;&#039; Set your &#039;&#039;&#039;hunting commands (a)&#039;&#039;&#039; to &#039;&#039;&#039;unarmed jab&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Important notes about UAC in Bigshot:&lt;br /&gt;
* &amp;lt;CODE&amp;gt;unarmed jab&amp;lt;/CODE&amp;gt; can be replaced with any UAC attack type (e.g., &amp;lt;CODE&amp;gt;unarmed punch&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
* UAC follow-up strikes take priority over the base or Tier 3 attack.&lt;br /&gt;
* Tier 3 attacks are only used when positioning is &amp;quot;excellent&amp;quot;.&lt;br /&gt;
* There is almost no reason to use anything other than &amp;lt;CODE&amp;gt;unarmed jab&amp;lt;/CODE&amp;gt; as the hunting command and either &amp;lt;CODE&amp;gt;grapple&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;kick&amp;lt;/CODE&amp;gt; as the Tier 3 attack.&lt;br /&gt;
&lt;br /&gt;
===MSTRIKE Options===&lt;br /&gt;
Options for when and how MSTRIKE should be used:&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown stamina requirement&#039;&#039;&#039; - How much stamina you need before Bigshot will MSTRIKE during the MSTRIKE cooldown period. Be careful setting this too low, as it can pop your muscles. Leave blank to use your max stamina.&lt;br /&gt;
* &#039;&#039;&#039;QUICKSTRIKE stamina requirement&#039;&#039;&#039; - Stamina required for using QUICKSTRIKE during the MSTRIKE routine.&lt;br /&gt;
* &#039;&#039;&#039;Unfocused MSTRIKE when creatures equal or greater&#039;&#039;&#039; - Number of creatures in the room before Bigshot uses an unfocused (AOE) MSTRIKE instead of a focused one. Default is 2.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown&#039;&#039;&#039; - Toggle to allow MSTRIKEing during the cooldown period.&lt;br /&gt;
* &#039;&#039;&#039;Use QUICKSTRIKE for MSTRIKE&#039;&#039;&#039; - Toggle to use QUICKSTRIKE instead of normal MSTRIKE.&lt;br /&gt;
&lt;br /&gt;
===Ammo/Wands===&lt;br /&gt;
Settings for ammunition and wand management. If your attack routine uses FIRE or WAND verbs, these fields must be configured or Bigshot will hang.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;find ammo in this container&#039;&#039;&#039; - The container holding your ammunition (quiver, backpack, etc.). Leave BLANK if using FIRE without retrieving ammo (post-Archery 2020 Update).&lt;br /&gt;
* &#039;&#039;&#039;use this ammo type&#039;&#039;&#039; - The noun of your ammo type. Leave BLANK to use FIRE without retrieving ammo. Be precise with the noun — Bigshot is sensitive to exact naming here.&lt;br /&gt;
* &#039;&#039;&#039;fresh wand container&#039;&#039;&#039; - The container Bigshot checks for fresh wands to WAVE.&lt;br /&gt;
* &#039;&#039;&#039;dead wand container&#039;&#039;&#039; - The container where Bigshot deposits used-up wands.&lt;br /&gt;
* &#039;&#039;&#039;use this wand type&#039;&#039;&#039; - The specific wand type(s) to use. Bigshot only pulls these for WAVEing. Separate multiple types with commas. Example: &amp;lt;CODE&amp;gt;aquamarine wand, bloodwood wand&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Hide while waiting to pick up ammo&#039;&#039;&#039; - Bigshot will hide when gathering spent arrows and bolts.&lt;br /&gt;
* &#039;&#039;&#039;Use wands when out of mana&#039;&#039;&#039; - When out of mana, Bigshot pulls the specified wand type, stances to your attack stance, and WAVEs at valid targets until out of wands or resting conditions are met.&lt;br /&gt;
&lt;br /&gt;
===MA Grouping===&lt;br /&gt;
Multi-account grouping options:&lt;br /&gt;
* &#039;&#039;&#039;Looter name&#039;&#039;&#039; - The name of the character designated as the looter in Head/Tail configuration.&lt;br /&gt;
* &#039;&#039;&#039;No-looting list&#039;&#039;&#039; - Comma-separated list of characters who should never be assigned looting duty.&lt;br /&gt;
* &#039;&#039;&#039;Random looting&#039;&#039;&#039; - Distributes looting randomly based on encumbrance rather than assigning a fixed looter.&lt;br /&gt;
* &#039;&#039;&#039;Leader final loot&#039;&#039;&#039; - Allows the leader to perform a final loot pass before leaving a room.&lt;br /&gt;
* &#039;&#039;&#039;Travel TO hunting grounds independently&#039;&#039;&#039; - When enabled, group members travel to the hunting area on their own rather than as a group. Bigshot will disband the group and force GROUP OPEN after disbanding.&lt;br /&gt;
* &#039;&#039;&#039;Travel FROM hunting grounds independently&#039;&#039;&#039; - When enabled, group members return from the hunting area on their own.&lt;br /&gt;
* &#039;&#039;&#039;Stop for dead group members&#039;&#039;&#039; - Pauses the group if a follower dies during a hunt.&lt;br /&gt;
&lt;br /&gt;
==Monitoring Tab==&lt;br /&gt;
Options for safety, interaction monitoring, and debugging.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Monitor interaction&#039;&#039;&#039; - Pops up a window whenever Bigshot detects that someone or something is trying to interact with you. Customizable monitor strings and safe strings can be configured.&lt;br /&gt;
* &#039;&#039;&#039;Engage deadman&#039;s switch&#039;&#039;&#039; - Forces Bigshot to quit GemStone IV when your character drops below 40% health, allowing you to log back on and assess the situation manually.&lt;br /&gt;
* &#039;&#039;&#039;Depart/rerun if dead&#039;&#039;&#039; - Forces a DEPART (waking up in the Temple with low spirit), then restarts Bigshot for a fresh hunt. Make sure your &amp;quot;CHECK spirit &amp;gt;=&amp;quot; value in Should Hunt? is set high enough to recover before the next hunt.&lt;br /&gt;
* &#039;&#039;&#039;Quiet followers&#039;&#039;&#039; - Followers wait until the leader finishes both actions and resting scripts before beginning their own.&lt;br /&gt;
* &#039;&#039;&#039;Ignore disk objects&#039;&#039;&#039; - Ignores disk objects when evaluating room claims and other checks.&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
Bigshot provides detailed debug options for troubleshooting. Use these commands in-game:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
|                       Bigshot Debug Help v5.16.0                          |&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
| Debug options have changed to be more helpful.                            |&lt;br /&gt;
+--------------------------------------+------------------------------------+&lt;br /&gt;
| ;bigshot debug file                  | Toggles logging to a file &amp;lt;on/off&amp;gt; |&lt;br /&gt;
| ;bigshot debug all &amp;lt;true/false&amp;gt;      |  Toggles true/false all the things |&lt;br /&gt;
| ;bigshot debug check                 |       Lists current debug settings |&lt;br /&gt;
| ;bigshot debug combat &amp;lt;true/false&amp;gt;   |         Combat and Creature Status |&lt;br /&gt;
| ;bigshot debug commands &amp;lt;true/false&amp;gt; |     Attacking and Casting Commands |&lt;br /&gt;
| ;bigshot debug status &amp;lt;true/false&amp;gt;   |    Status Checks of your Character |&lt;br /&gt;
| ;bigshot debug system &amp;lt;true/false&amp;gt;   |                   System processes |&lt;br /&gt;
|                                      |                                    |&lt;br /&gt;
| Options can be combined:                                                  |&lt;br /&gt;
|           ;bigshot debug combat commands status &amp;lt;true/false&amp;gt;              |&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Debug log files are stored in your Lich5 logs directory under &amp;lt;CODE&amp;gt;debug/&amp;lt;Game&amp;gt;-&amp;lt;CharacterName&amp;gt;/bigshot.log&amp;lt;/CODE&amp;gt; and rotate daily.&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;CODE&amp;gt;debug combat&amp;lt;/CODE&amp;gt; enabled, the log also tracks each target&#039;s health and status from the moment Bigshot first engages it, through every command tried against it, to its death — useful for figuring out why a particular command check fired or didn&#039;t fire against a specific creature.&lt;br /&gt;
&lt;br /&gt;
==Ingame Screenshot==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:bigshot-1.PNG|Profiles&lt;br /&gt;
File:bigshot-2.PNG|Resting&lt;br /&gt;
File:bigshot-3.PNG|Hunting&lt;br /&gt;
File:bigshot-4.PNG|Attacking&lt;br /&gt;
File:bigshot-5.PNG|Commands&lt;br /&gt;
File:bigshot-6.PNG|Misc&lt;br /&gt;
File:bigshot-7.PNG|Monitoring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
* Info originally taken from http://forum.gsplayers.com/showthread.php?t=57651&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
{{top}}&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=265046</id>
		<title>Lich:Script Bigshot</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=265046"/>
		<updated>2026-09-11T00:59:52Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: A few changes to remove version notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Bigshot is a fully automated hunting script for GemStone IV. It handles combat routines, movement to and from hunting areas, target selection, and attack execution.&lt;br /&gt;
AFK scripting on any server other than Shattered is a violation of game policy.&lt;br /&gt;
{{TOCright| limit=2}}&lt;br /&gt;
==Changelog==&lt;br /&gt;
*[[Script Bigshot/Changelog|Script Bigshot Changelog]]&lt;br /&gt;
==About Bigshot==&lt;br /&gt;
===What Does Bigshot Do?===&lt;br /&gt;
&lt;br /&gt;
Using a series of menus and command inputs, Bigshot lets you create a modular, customizable, and fully automated hunting script. With just a few clicks and tweaks, you can go from scripting rats to the Rift.&lt;br /&gt;
&lt;br /&gt;
===How Do I Get It?===&lt;br /&gt;
&lt;br /&gt;
Grab it from the repository: &amp;lt;CODE&amp;gt;;repository download Bigshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How Do I Make It Go?===&lt;br /&gt;
Initial setup is accessed through &amp;lt;CODE&amp;gt;;bigshot setup&amp;lt;/CODE&amp;gt;. This opens a configuration window with several tabs for setting up your hunting routine.&lt;br /&gt;
&lt;br /&gt;
As with most scripts, the SETUP command opens a graphical user interface. Use &amp;lt;CODE&amp;gt;;bigshot setup&amp;lt;/CODE&amp;gt; to open the dialog. The window contains the following tabs:&lt;br /&gt;
* &#039;&#039;&#039;Profile&#039;&#039;&#039; - Save and load profile configurations. Profiles are saved to your &amp;lt;CODE&amp;gt;\Lich5\data\&amp;lt;GSServer&amp;gt;\&amp;lt;charname&amp;gt;\bigshot_profiles&amp;lt;/CODE&amp;gt; directory (e.g., &amp;lt;CODE&amp;gt;\Lich5\data\GSIV\Rinualdo\bigshot_profiles&amp;lt;/CODE&amp;gt;). Note: if you previously used Bigshot, the file location has changed from the old &amp;lt;CODE&amp;gt;\Lich5\scripts\bigshot_profiles&amp;lt;/CODE&amp;gt; folder. You can copy/paste your old profiles to the new location.&lt;br /&gt;
* &#039;&#039;&#039;Resting&#039;&#039;&#039; - Configure your resting routine, rest location, and conditions that trigger resting.&lt;br /&gt;
* &#039;&#039;&#039;Hunting&#039;&#039;&#039; - Create a hunting map using boundaries, set your starting room, configure attack/wander stances, and define pre-hunt behavior.&lt;br /&gt;
* &#039;&#039;&#039;Attacking&#039;&#039;&#039; - Configure ambush aiming, flee conditions, bless behavior, weapon reactions, and similar combat flags.&lt;br /&gt;
* &#039;&#039;&#039;Commands&#039;&#039;&#039; - Define your valid targets and associated attack routines. See sample routines below.&lt;br /&gt;
* &#039;&#039;&#039;Boon Creatures&#039;&#039;&#039; - Configure how Bigshot handles boss/boon creatures on a per-ability basis (fight, ignore, or flee).&lt;br /&gt;
* &#039;&#039;&#039;Misc&#039;&#039;&#039; - UAC options, MSTRIKE options, ammo/wand configuration, and MA grouping settings.&lt;br /&gt;
* &#039;&#039;&#039;Monitoring&#039;&#039;&#039; - Interaction monitoring, deadman&#039;s switch, depart behavior, and debug options.&lt;br /&gt;
&lt;br /&gt;
Each tab is covered in detail further on.&lt;br /&gt;
&lt;br /&gt;
===Other Commands===&lt;br /&gt;
Beyond the setup GUI, Bigshot has several command-line options:&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt; - A special hunting mode that kills everything in your current room, then quits. It will not wander or attempt to rest. Uses its own separate hunting commands and targets (configured on the Commands tab).&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot head&amp;lt;/CODE&amp;gt; / &amp;lt;CODE&amp;gt;;bigshot tail&amp;lt;/CODE&amp;gt; - Multi-account hunting on a single computer. All characters must be set up for the same hunting area. Following characters run &amp;lt;CODE&amp;gt;;bigshot tail&amp;lt;/CODE&amp;gt;, then the leader runs &amp;lt;CODE&amp;gt;;bigshot head&amp;lt;/CODE&amp;gt;. The leader can optionally specify the expected group size, e.g., &amp;lt;CODE&amp;gt;;bigshot head 3&amp;lt;/CODE&amp;gt;. Head and tail can be started in any order.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot display&amp;lt;/CODE&amp;gt; - Shows all your current settings.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot reset&amp;lt;/CODE&amp;gt; - Resets your targetable and untargetable lists. Useful if Bigshot will not target something it should.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot profile save &amp;lt;name&amp;gt;&amp;lt;/CODE&amp;gt; - Saves a profile in YAML format to your character&#039;s profile folder. Also accessible via the Profiles tab.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot profile load &amp;lt;name&amp;gt;&amp;lt;/CODE&amp;gt; - Loads a profile from your character&#039;s profile folder. Also accessible via the Profiles tab.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot single&amp;lt;/CODE&amp;gt; - Executes a single hunting routine, returns to your resting location, and then exits.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot list&amp;lt;/CODE&amp;gt; - Displays all initialized variable values (useful for troubleshooting).&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot test &amp;lt;method&amp;gt; &amp;lt;args&amp;gt;&amp;lt;/CODE&amp;gt; - Runs a specific internal method for testing purposes.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot help&amp;lt;/CODE&amp;gt; - Prints a quick-reference table of every command-line option listed in this section. Typing an option Bigshot doesn&#039;t recognize prints this same help (with a warning naming the bad option) instead of silently doing nothing.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot &amp;lt;mode&amp;gt; &amp;lt;creature&amp;gt;&amp;lt;/CODE&amp;gt; - Rangers only: combine one of the modes above (&amp;lt;CODE&amp;gt;solo&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;single&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;bounty&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;quick&amp;lt;/CODE&amp;gt;, or &amp;lt;CODE&amp;gt;once&amp;lt;/CODE&amp;gt;) with a creature name to TRACK toward that creature instead of wandering, e.g., &amp;lt;CODE&amp;gt;;bigshot single giant rat&amp;lt;/CODE&amp;gt;. A creature name with no mode in front of it (just &amp;lt;CODE&amp;gt;;bigshot giant rat&amp;lt;/CODE&amp;gt;) is not recognized.&lt;br /&gt;
&lt;br /&gt;
==The Profile Tab==&lt;br /&gt;
* &#039;&#039;&#039;Load Profile&#039;&#039;&#039; - Load an existing saved profile. The dropdown will be empty if no profiles have been saved yet.&lt;br /&gt;
* &#039;&#039;&#039;Current Profile&#039;&#039;&#039; - Displays the name of the currently loaded profile.&lt;br /&gt;
* &#039;&#039;&#039;Save Profile&#039;&#039;&#039; - Enter any name for your profile and click Save. Once saved, the profile will appear in the Load Profile dropdown.&lt;br /&gt;
* &#039;&#039;&#039;Notes&#039;&#039;&#039; - A freeform text area for any notes you want to associate with the profile.&lt;br /&gt;
&lt;br /&gt;
==The Resting Tab==&lt;br /&gt;
This tab controls where and how Bigshot rests between hunts. During rest mode, Bigshot checks your mind state, hit points, wound status, mana, and spirit. Once all conditions defined in the &amp;quot;Should Hunt?&amp;quot; section are met, Bigshot leaves rest mode and begins a new hunt.&lt;br /&gt;
&lt;br /&gt;
===Where to Rest===&lt;br /&gt;
* &#039;&#039;&#039;room id&#039;&#039;&#039; - The room Bigshot returns to for resting. Uses room numbers from Map/Go2. Supports both Lich IDs and SimuIDs (prefix SimuIDs with &amp;quot;u&amp;quot;, e.g., &amp;lt;CODE&amp;gt;228&amp;lt;/CODE&amp;gt; for Town Square Central or &amp;lt;CODE&amp;gt;u7120&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
* &#039;&#039;&#039;return waypoints&#039;&#039;&#039; - Optional intermediate room IDs that Bigshot will pass through when returning to rest. Separate multiple waypoints with commas.&lt;br /&gt;
* &#039;&#039;&#039;pre-rest commands&#039;&#039;&#039; - Commands executed before entering rest mode. Example: &amp;lt;CODE&amp;gt;shea, wear shield, sit, stance offensive, rest&amp;lt;/CODE&amp;gt;. This will sheathe your weapon, wear your shield, sit down, enter offensive stance, and use the REST verb. You can also call scripts here using the &amp;lt;CODE&amp;gt;script&amp;lt;/CODE&amp;gt; prefix, e.g., &amp;lt;CODE&amp;gt;script go2 place&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;active resting scripts&#039;&#039;&#039; - Scripts that run upon entering rest mode for between-hunt tasks such as selling loot, spelling up, or healing. Example: &amp;lt;CODE&amp;gt;eloot sell, waggle, eherbs&amp;lt;/CODE&amp;gt;. This will sell via eloot, spell up via waggle, then use herbs from your PACK to heal wounds.&lt;br /&gt;
* &#039;&#039;&#039;Fog Option&#039;&#039;&#039; - Determines how Bigshot returns to rest. Options include:&lt;br /&gt;
** &#039;&#039;&#039;None&#039;&#039;&#039; - Walk normally (no teleportation).&lt;br /&gt;
** &#039;&#039;&#039;130&#039;&#039;&#039; - Uses [[Spirit Guide (130)]] first; falls back to Symbol of Return if it fails.&lt;br /&gt;
** &#039;&#039;&#039;Symbol of Return&#039;&#039;&#039; - Uses Voln [[Symbol of Return]] first; falls back to 130 if it fails.&lt;br /&gt;
** &#039;&#039;&#039;Traveler&#039;s Song (1020)&#039;&#039;&#039; - Attempts [[Traveler&#039;s Song (1020)]] once, then continues.&lt;br /&gt;
** &#039;&#039;&#039;Familiar Gate (930)&#039;&#039;&#039; - Attempts [[Familiar Gate (930)]] to summon a portal and walk through it. Will perform a mana pulse if not enough mana is detected.&lt;br /&gt;
** &#039;&#039;&#039;Sigil of Escape&#039;&#039;&#039; - Uses [[Sigil of Escape]].&lt;br /&gt;
** &#039;&#039;&#039;Custom&#039;&#039;&#039; - Allows a comma-separated list of custom commands to perform.&lt;br /&gt;
* &#039;&#039;&#039;Fog ONLY if wounded or encumbered&#039;&#039;&#039; - When checked, Bigshot will only use the fog option if you are actually wounded or encumbered. Otherwise it walks normally.&lt;br /&gt;
* &#039;&#039;&#039;Fog twice from the Rift&#039;&#039;&#039; - When checked, Bigshot will double-cast the fog spell when returning from the Rift (useful since the Rift requires two uses to escape).&lt;br /&gt;
&lt;br /&gt;
===Should Rest?===&lt;br /&gt;
Bigshot evaluates these conditions to decide when to leave a hunt and return to rest.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Triggers resting when your mind has reached this threshold. Generally set to 100 (fried). Default is 100.&lt;br /&gt;
* &#039;&#039;&#039;and extra kills &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of additional monsters to kill after reaching your &amp;quot;when percent mind&amp;quot; threshold and after LTE boosts are used. Set to 0 to rest immediately upon reaching the mind threshold.&lt;br /&gt;
* &#039;&#039;&#039;and used lte boosts &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of LTE (Long-Term Experience) boosts Bigshot will attempt to use after reaching the mind threshold. Set to 0 to skip LTE boosts entirely.&lt;br /&gt;
* &#039;&#039;&#039;or percent mana &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your mana percentage is at or below this value. Can be set to 0, but leaving a small buffer is useful (e.g., for Unlock (406) to open the WL Graveyard gate). If you encounter an &amp;quot;OOM&amp;quot; error, try setting this to 1.&lt;br /&gt;
* &#039;&#039;&#039;or percent encumbrance &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your encumbrance reaches or exceeds this percentage.&lt;br /&gt;
* &#039;&#039;&#039;or wounded eval&#039;&#039;&#039;&lt;br /&gt;
** Allows you to set a Ruby evaluation expression to determine if you are too wounded to continue. Can trigger on bleeding, specific wound levels, inability to cast, scars, and more.&lt;br /&gt;
&lt;br /&gt;
The following is a wounded evaluation that will rest whenever you have any level II wounds:&lt;br /&gt;
&amp;lt;PRE&amp;gt;XMLData.injuries.any?{|key,value| value[&amp;quot;wound&amp;quot;] &amp;gt; 1} || Char.percent_health &amp;lt;= 70&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The following is a wound evaluation that will take you home if you can no longer cast (bleeding, nerves, level 2 head/eyes, bad scars, etc.):&lt;br /&gt;
&amp;lt;PRE&amp;gt;bleeding? || Char.percent_health &amp;lt;= 25 || [Wounds.head, Scars.head, Wounds.leftEye, Scars.leftEye, Wounds.rightEye, Scars.rightEye, Wounds.nsys, Scars.nsys].max &amp;gt; 1 ||  [Wounds.leftArm, Wounds.leftHand, Wounds.rightArm, Wounds.rightHand, Scars.leftArm, Scars.leftHand, Scars.rightArm, Scars.rightHand].max &amp;gt; 2 || ([Wounds.leftArm, Wounds.leftHand, Scars.leftArm, Scars.leftHand].max + [Wounds.rightArm, Wounds.rightHand, Scars.rightArm, Scars.rightHand].max) &amp;gt;= 3&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The following can be appended to either wound evaluation above to also rest upon having popped muscles:&lt;br /&gt;
&amp;lt;PRE&amp;gt;|| Effects::Debuffs.active?(&amp;quot;Overexerted&amp;quot;)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;when creeping dread &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your creeping dread level reaches or exceeds this value.&lt;br /&gt;
* &#039;&#039;&#039;when crushing dread &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your crushing dread level reaches or exceeds this value.&lt;br /&gt;
* &#039;&#039;&#039;Wall of Thorns Poison&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when you are affected by Wall of Thorns poison.&lt;br /&gt;
* &#039;&#039;&#039;Confusion Debuff&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when you are affected by the non-dispellable Confusion debuff.&lt;br /&gt;
* &#039;&#039;&#039;Box in hand&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest if looting leaves a box in your hand.&lt;br /&gt;
&lt;br /&gt;
==The Hunting Tab==&lt;br /&gt;
This tab controls when and where Bigshot hunts, any pre-hunt preparation, and the map boundaries for wandering.&lt;br /&gt;
&lt;br /&gt;
===The Hunting Map===&lt;br /&gt;
Your hunting map consists of &#039;&#039;&#039;Boundaries&#039;&#039;&#039; (rooms Bigshot will never enter) and a &#039;&#039;&#039;Starting Room&#039;&#039;&#039; (the first room Bigshot moves to when a hunt begins). These function similarly to the boundaries in the ;Wander script, but are stored in Bigshot&#039;s own configuration files.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;starting room ID&#039;&#039;&#039; - The first room Bigshot travels to when beginning a hunt. Set this to any room within your boundaries.&lt;br /&gt;
* &#039;&#039;&#039;boundary rooms&#039;&#039;&#039; - Rooms that act as walls. Bigshot will never enter a boundary room.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;X-X-B - A - 0 - 0 - 0&lt;br /&gt;
|   |&lt;br /&gt;
X-X-X&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the diagram above, &amp;quot;B&amp;quot; is a boundary room and &amp;quot;A&amp;quot; is outside the hunting area. Rooms marked &amp;quot;0&amp;quot; are the huntable area. Bigshot will wander freely among the &amp;quot;0&amp;quot; rooms but never cross into &amp;quot;B&amp;quot; or &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Boundary room IDs are separated by commas. Some popular examples:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rift Boundaries:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Plane 1: 2635, 12101, 12208&lt;br /&gt;
Plane 2: 2605, 2635, 12093&lt;br /&gt;
Plane 3: 2635, 12089, 12152&lt;br /&gt;
Plane 4: 12122, 12207, 12235&lt;br /&gt;
Plane 5: 2579&lt;br /&gt;
North Scatter: 12151, 12254, 12256, 12249, 12247, 12241&lt;br /&gt;
South Scatter: 12151, 12219, 12217, 12233, 12237, 12239&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maaghara Boundaries:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;9734&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Confluence Boundaries:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;2300, 3519, 228, 188, 1932, 10855, 3668, 1438, 1005&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Imagine a hunting area that is a six-room square. To enter this square, you must GO DOORWAY from room A. You would set room A (outside the square, before the doorway) as a boundary. Then set room B (just inside the square) as the starting room. Bigshot will move to room B and wander within the bounded area until your &amp;quot;Should Rest?&amp;quot; conditions are met.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;rally point rooms&#039;&#039;&#039; - Optional intermediate room IDs Bigshot will pass through on the way to the hunting area. Separate multiple rooms with commas.&lt;br /&gt;
&lt;br /&gt;
===Hunting Settings===&lt;br /&gt;
* &#039;&#039;&#039;wait before wandering to another room&#039;&#039;&#039; - Time in seconds Bigshot waits before leaving a room to look for creatures. Default is 0.3. Set to 0 for fastest (but spammy) movement.&lt;br /&gt;
* &#039;&#039;&#039;attack stance&#039;&#039;&#039; - The stance Bigshot switches to when issuing attack commands. Bigshot remains in defensive stance until an attack is triggered, then stances to your specified attack stance. Recognizes all game stances from Offensive through Defensive.&lt;br /&gt;
* &#039;&#039;&#039;wander stance&#039;&#039;&#039; - The stance Bigshot uses while moving between rooms. Defaults to Defensive.&lt;br /&gt;
* &#039;&#039;&#039;stand up stance&#039;&#039;&#039; - The stance Bigshot enters when standing up after being knocked down. Defaults to Defensive.&lt;br /&gt;
* &#039;&#039;&#039;pre-hunt commands&#039;&#039;&#039; - Commands executed before Bigshot uses Go2 to travel to your starting room. Example: &amp;lt;CODE&amp;gt;gird, stance defensive&amp;lt;/CODE&amp;gt;. This ensures your weapon is readied and you are in defensive stance before traveling. Use this line for short-lived combat spells like 1605 (Arm of the Arkati).&lt;br /&gt;
* &#039;&#039;&#039;active hunting scripts&#039;&#039;&#039; - Scripts that run while Bigshot is in hunt mode. Use these for complex behaviors that Bigshot does not natively support (e.g., keeping certain spells active or executing CMANs based on conditions).&lt;br /&gt;
* &#039;&#039;&#039;society abilities/spells/cmans&#039;&#039;&#039; - Abilities Bigshot keeps active during a hunt. Enter numerical designations separated by commas. For example, entering &amp;lt;CODE&amp;gt;506&amp;lt;/CODE&amp;gt; keeps Haste up, recasting whenever it wears off. Hover over this field in the GUI for a list of supported values. Supported options include spells that can be ignored by rapidfire cooldown: e.g., &amp;lt;CODE&amp;gt;515 (ignore)&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;rapidfire (ignore)&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;loot script&#039;&#039;&#039; - The script Bigshot calls to loot your kills (e.g., &amp;lt;CODE&amp;gt;eloot&amp;lt;/CODE&amp;gt;). Make sure the loot script is properly configured via its own SETUP command, or Bigshot may error.&lt;br /&gt;
* &#039;&#039;&#039;wracking spirit &amp;gt;=&#039;&#039;&#039; - If your spirit is greater than or equal to this value, Bigshot will WRACK for mana. Setting it to 6 will wrack down to 5 spirit. Only functions when the wracking checkbox is enabled.&lt;br /&gt;
* &#039;&#039;&#039;Use sign of wracking/sigil of power&#039;&#039;&#039; - Checkbox to enable wracking.&lt;br /&gt;
* &#039;&#039;&#039;Check for favor before using Voln symbols&#039;&#039;&#039; - Checkbox to verify you have sufficient favor before casting Voln society symbols.&lt;br /&gt;
* &#039;&#039;&#039;Priority hunt&#039;&#039;&#039; - When enabled, Bigshot targets creatures in the order listed in your valid targets field. If a higher-priority creature enters the room, Bigshot switches to it. When using &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt;, quickhunt targets take priority, followed by any remaining targets in room order.&lt;br /&gt;
* &#039;&#039;&#039;Delay looting&#039;&#039;&#039; - Delays the looting of creatures in a room.&lt;br /&gt;
* &#039;&#039;&#039;Defensive stance before looting&#039;&#039;&#039; - Switches to defensive stance before looting begins.&lt;br /&gt;
* &#039;&#039;&#039;Pull players to feet&#039;&#039;&#039; - Attempts to pull players to their feet when passing them.&lt;br /&gt;
* &#039;&#039;&#039;Stop for dead players&#039;&#039;&#039; - Pauses Bigshot if you encounter a dead player.&lt;br /&gt;
* &#039;&#039;&#039;Troubadour&#039;s Rally&#039;&#039;&#039; - Enables the use of Troubadour&#039;s Rally during hunts.&lt;br /&gt;
* &#039;&#039;&#039;Sneaky Sneaky&#039;&#039;&#039; - Sneak around while moving through the hunting area.&lt;br /&gt;
&lt;br /&gt;
===Should Hunt?===&lt;br /&gt;
Bigshot evaluates these conditions to determine if you are ready to begin a hunt from rest.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Setting this to 51 will wait until &amp;quot;Clear&amp;quot;. Setting it to 65 will wait until &amp;quot;Muddled&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;and percent mana &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The percentage of your maximum mana that must be present before hunting. Setting below 50 results in short hunts if you cast frequently. Generally set to 95 or higher.&lt;br /&gt;
* &#039;&#039;&#039;and CHECK spirit &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Bigshot checks that your current spirit value is at least this amount. Make sure this is high enough that Bigshot will not immediately hunt after DEPARTing if you have the &amp;quot;Depart / re-run&amp;quot; option enabled on the Monitoring tab.&lt;br /&gt;
* &#039;&#039;&#039;and percent stamina &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The percentage of your maximum stamina that must be present before hunting. Useful for melee-heavy builds that rely on stamina for CMANs and MSTRIKEs.&lt;br /&gt;
&lt;br /&gt;
==The Attacking Tab==&lt;br /&gt;
This tab controls aiming, flee conditions, and various combat behavior toggles.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Ambush aiming locations (head, etc)&#039;&#039;&#039; - The order Bigshot aims when ambushing. Default is head, right leg, left leg, chest. Bigshot cycles through these and skips locations that are too injured or unreachable.&lt;br /&gt;
* &#039;&#039;&#039;Archery aiming locations (head, etc)&#039;&#039;&#039; - The order Bigshot aims when using archery attacks. Loops through your aiming list.&lt;br /&gt;
* &#039;&#039;&#039;flee if enemy count is &amp;gt;&#039;&#039;&#039; - Flees the room if the total number of enemies exceeds this value. Set to 1 to engage only single targets.&lt;br /&gt;
* &#039;&#039;&#039;...but don&#039;t count these&#039;&#039;&#039; - Bigshot ignores these monsters when evaluating flee count. Useful when low-level monsters are mixed into your hunting area.&lt;br /&gt;
* &#039;&#039;&#039;...and always flee from&#039;&#039;&#039; - Bigshot immediately flees from these monsters. Useful when your hunting area has higher-level or dangerous monsters mixed in.&lt;br /&gt;
* &#039;&#039;&#039;flee from environment message&#039;&#039;&#039; - Bigshot flees whenever the game sends a message matching this text (uses XML regex matching). Note:  This does not work when using &amp;lt;CODE&amp;gt;;bigshot quick.&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;wait before wandering to another room&#039;&#039;&#039; - Time in seconds before moving to a new room. Default is 0.3. Set to 0 to move instantly (can be spammy for others in the area).&lt;br /&gt;
* &#039;&#039;&#039;Approach lone targets only&#039;&#039;&#039; - Forces Bigshot to only begin combat against creatures that are alone in a room.&lt;br /&gt;
* &#039;&#039;&#039;Bless weapon?&#039;&#039;&#039; - Performs a Consecrate (1604), then a Cleric Bless or Voln Bless on any weapon that loses its bless during hunting. If unable to bless during hunting, Bigshot returns to the rest area and quits.&lt;br /&gt;
* &#039;&#039;&#039;Activate weapon reactions&#039;&#039;&#039; - Initiates reactive strikes when the opportunity presents itself.&lt;br /&gt;
* &#039;&#039;&#039;Flee from clouds&#039;&#039;&#039; - Flees from cloud spells such as 125 (Call Lightning/Ominous Cloud), 1704 (Stun Cloud), and 1713 (Death Cloud).&lt;br /&gt;
* &#039;&#039;&#039;Flee from vines&#039;&#039;&#039; - Flees from vine spells such as 610 (Tangle Weed).&lt;br /&gt;
* &#039;&#039;&#039;Flee from webs&#039;&#039;&#039; - Flees from webs.&lt;br /&gt;
* &#039;&#039;&#039;Flee from voids&#039;&#039;&#039; - Flees from voids.&lt;br /&gt;
&lt;br /&gt;
==Commands Tab==&lt;br /&gt;
This is the core of Bigshot — where you define your attack routines.&lt;br /&gt;
&lt;br /&gt;
===Hunting Commands===&lt;br /&gt;
* &#039;&#039;&#039;hunting commands (a)&#039;&#039;&#039; - The primary commands Bigshot executes when in a room with a valid target. Commands are separated by commas. Bigshot recognizes most hunting verbs; unrecognized commands are sent directly as-is via fput. The following are recognized hunting commands:&lt;br /&gt;
** &#039;&#039;&#039;kill&#039;&#039;&#039; - Attacks using the KILL verb.&lt;br /&gt;
** &#039;&#039;&#039;incant &amp;lt;spell number&amp;gt;&#039;&#039;&#039; - Casts the specified spell with INCANT. Automatically stances into offensive for bolt and stance-sensitive spells. You can CHANNEL via &amp;lt;CODE&amp;gt;INCANT SET CHANNEL &amp;lt;spell&amp;gt;&amp;lt;/CODE&amp;gt; (a standard GSIV verb) or by setting &amp;lt;CODE&amp;gt;SET ChannelIncant ON&amp;lt;/CODE&amp;gt;, which will CHANNEL an INCanted spell if you are in a stance higher than neutral.&lt;br /&gt;
** &#039;&#039;&#039;channel &amp;lt;spell number&amp;gt;&#039;&#039;&#039; - Channels the specified spell at the target. Requires a stance higher than neutral to have effect.&lt;br /&gt;
** &#039;&#039;&#039;&amp;lt;spell number&amp;gt;&#039;&#039;&#039; - Casts the specified spell using PREPARE and CAST.&lt;br /&gt;
** &#039;&#039;&#039;wand&#039;&#039;&#039; - Gets a wand from your specified container and WAVEs it at the target.&lt;br /&gt;
** &#039;&#039;&#039;wandolier &amp;lt;stance&amp;gt; &amp;lt;noreserve&amp;gt;&#039;&#039;&#039; - Similar to wand, but designed for wandoliers. Gets a wand from the fresh wand container and waves it; rubs the container if no wands are found. Default waves in offensive stance and automatically adds the wand to your RESERVE list. Use &amp;lt;CODE&amp;gt;wandolier defensive&amp;lt;/CODE&amp;gt; to wave in a different stance, and add &amp;lt;CODE&amp;gt;noreserve&amp;lt;/CODE&amp;gt; to skip the RESERVE step, e.g., &amp;lt;CODE&amp;gt;wandolier defensive noreserve&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;resonance &amp;lt;spell id&amp;gt; &amp;lt;spell id&amp;gt; ...&#039;&#039;&#039; - Casts Resonance Bolt, picking randomly among the listed spell numbers each time (never repeating the one it just used back-to-back). Example: &amp;lt;CODE&amp;gt;resonance 511 512 513&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;sacrifice&#039;&#039;&#039; - Performs a Voln Sacrifice on the current target&#039;s corpse for favor. Only attempts it when you have 2+ spirit, the ability is off cooldown, and the corpse appraises as suitable for sacrifice.&lt;br /&gt;
** &#039;&#039;&#039;fire&#039;&#039;&#039; - Gets ammunition from your specified container and FIREs at the target. Aims based on Archery aiming settings on the Attacking tab.&lt;br /&gt;
** &#039;&#039;&#039;aim &amp;lt;location&amp;gt;&#039;&#039;&#039; - Aims at the specified body location.&lt;br /&gt;
** &#039;&#039;&#039;ambush&#039;&#039;&#039; - Uses the AMBUSH verb to attack, aiming based on Attacking tab settings. Can also aim dynamically: &amp;lt;CODE&amp;gt;ambush head&amp;lt;/CODE&amp;gt; overrides default settings for that attack.&lt;br /&gt;
** &#039;&#039;&#039;wait &amp;lt;time&amp;gt;&#039;&#039;&#039; - Stance dances by going into Defensive stance for the specified time (in seconds). Bigshot will exit early if the target swings or casts, then evaluate the rest of the attack routine from your attack stance.&lt;br /&gt;
** &#039;&#039;&#039;mstrike&#039;&#039;&#039; - Executes MSTRIKE based on cooldown and stamina. Has its own options page under the Misc tab. Can also be used with UAC: &amp;lt;CODE&amp;gt;mstrike punch&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;berserk&#039;&#039;&#039; - Executes the BERSERK verb and waits until it fades.&lt;br /&gt;
** &#039;&#039;&#039;throw&#039;&#039;&#039; - Empties hands, attempts throw, then retrieves the items you emptied.&lt;br /&gt;
** &#039;&#039;&#039;weed/kweed&#039;&#039;&#039; - Casts 610 at the target. Using &amp;lt;CODE&amp;gt;kweed&amp;lt;/CODE&amp;gt; forces EVOKE 610, ensuring the damage version.&lt;br /&gt;
** &#039;&#039;&#039;curse &amp;lt;type&amp;gt;&#039;&#039;&#039; - Preps 715 and uses the specified curse type. Valid types: Clumsy, Weakness, Darkness, Itch, Hex, Pox, Nightmare, Star. Skips &amp;quot;curse star&amp;quot; if the buff is already active.&lt;br /&gt;
** &#039;&#039;&#039;unarmed &amp;lt;type&amp;gt;&#039;&#039;&#039; - Uses the Bigshot UAC routine. Valid types: punch, jab, kick, grapple. The routine uses appropriate attacks to rank up and applies MSTRIKE based on MSTRIKE options. Example: &amp;lt;CODE&amp;gt;unarmed jab&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;smite&#039;&#039;&#039; - Performs an [[Order of Voln]] [[Kai&#039;s_Smite|Smite]] on the target until successful.&lt;br /&gt;
** &#039;&#039;&#039;leech&#039;&#039;&#039; - Performs a [[Mana Leech (516)]] on the target if cooldown is under 15 minutes.&lt;br /&gt;
** &#039;&#039;&#039;script &amp;lt;script name&amp;gt;&#039;&#039;&#039; - Executes a specified custom attack script.&lt;br /&gt;
** &#039;&#039;&#039;hide&#039;&#039;&#039; - Repeatedly attempts to hide until successful or gives up.&lt;br /&gt;
** &#039;&#039;&#039;sleep &amp;lt;nostance&amp;gt;&#039;&#039;&#039; - Pauses Bigshot for the specified number of seconds. Example: &amp;lt;CODE&amp;gt;sleep 10&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;sleep 10 nostance&amp;lt;/CODE&amp;gt;. Useful for timed hunting, e.g., &amp;lt;CODE&amp;gt;410, sleep 15&amp;lt;/CODE&amp;gt; will E-wave, then wait 15 seconds before re-evaluating.&lt;br /&gt;
** &#039;&#039;&#039;stance &amp;lt;stance&amp;gt;&#039;&#039;&#039; - Changes stance. Example: &amp;lt;CODE&amp;gt;stance defensive&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;nudgeweapons&#039;&#039;&#039; - Moves all weapons on the ground to an adjacent room. Useful for casting Implosion (720).&lt;br /&gt;
** &#039;&#039;&#039;force &amp;lt;cmd&amp;gt; until &amp;lt;endroll&amp;gt;&#039;&#039;&#039; - Repeats a command until a desired endroll is achieved. Example: &amp;lt;CODE&amp;gt;force incant 1002 until 101&amp;lt;/CODE&amp;gt;. Only works for standard swings/spells/CMANs.&lt;br /&gt;
** &#039;&#039;&#039;eachtarget &amp;lt;cmd&amp;gt;&#039;&#039;&#039; - Issues the command against each valid target in the room.&lt;br /&gt;
** &#039;&#039;&#039;efury &amp;lt;fire|cold&amp;gt;&#039;&#039;&#039; - Casts Earthen Fury (917) on the target and waits for the DOT to end or 12 seconds to pass.&lt;br /&gt;
** &#039;&#039;&#039;caststop &amp;lt;spell&amp;gt;&#039;&#039;&#039; - Casts the spell and immediately stops it after casting.&lt;br /&gt;
** &#039;&#039;&#039;wield &amp;lt;noun&amp;gt; &amp;lt;left|right&amp;gt;&#039;&#039;&#039; - Wields a new item in the specified hand and stores the current item.&lt;br /&gt;
** &#039;&#039;&#039;store&#039;&#039;&#039; - Stores items in left, right, or both hands (only if something is in those hands).&lt;br /&gt;
** &#039;&#039;&#039;tether &amp;lt;recast&amp;gt;&#039;&#039;&#039; - Casts 706 with built-in wait logic. The optional &amp;lt;CODE&amp;gt;recast&amp;lt;/CODE&amp;gt; flag will auto-recast 706 on creature death and transfer DOTs to a new target.&lt;br /&gt;
** &#039;&#039;&#039;unravel &amp;lt;spell&amp;gt;&#039;&#039;&#039; - Casts 1013 (Song of Unravelling). Optionally specify a spell number to target against the creature.&lt;br /&gt;
** &#039;&#039;&#039;depress&#039;&#039;&#039; - Casts 1015 (Song of Depression) with built-in logic.&lt;br /&gt;
** &#039;&#039;&#039;phase&#039;&#039;&#039; - Force-casts 704 (Phase) using PREP/CAST, required for NPC targeting to convert non-corporeal to corporeal undead.&lt;br /&gt;
&lt;br /&gt;
===Additional Command Sets===&lt;br /&gt;
* &#039;&#039;&#039;hunting commands (b) through (j)&#039;&#039;&#039; - Additional attack routines tied to creature flags. When you flag a creature in your valid targets (e.g., &amp;lt;CODE&amp;gt;niirsha(b)&amp;lt;/CODE&amp;gt;), Bigshot uses the matching command set. This allows different attack strategies for different creature types.&lt;br /&gt;
* &#039;&#039;&#039;fried hunting commands&#039;&#039;&#039; - Commands executed specifically when your mind is fried. Useful in group hunting where you still want to contribute.&lt;br /&gt;
* &#039;&#039;&#039;quick hunting commands&#039;&#039;&#039; - Commands executed when using &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;valid targets&#039;&#039;&#039; - The monsters you are hunting. Bigshot works best with creature NOUNs (e.g., &amp;lt;CODE&amp;gt;ogre&amp;lt;/CODE&amp;gt; instead of &amp;lt;CODE&amp;gt;a large ogre&amp;lt;/CODE&amp;gt;). Use commas to separate multiple targets: &amp;lt;CODE&amp;gt;manticore, thrak&amp;lt;/CODE&amp;gt;. If left blank, Bigshot will target everything in the room. Supports regex for advanced matching.&lt;br /&gt;
* &#039;&#039;&#039;quickhunt targets&#039;&#039;&#039; - Designated targets for the &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
===PSM3 Integration===&lt;br /&gt;
Bigshot supports weapon/shield skills and warcries. Assaults wait until they finish or are interrupted. The following are recognized PSM3 commands:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assaults&#039;&#039;&#039; (wait until completed/interrupted):&lt;br /&gt;
* barrage, flurry, fury, gthrusts, pummel, thrash&lt;br /&gt;
* fury can specify a default attack: &amp;lt;CODE&amp;gt;fury punch&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;fury kick&amp;lt;/CODE&amp;gt; (defaults to jab)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setups&#039;&#039;&#039; (execute on cooldown — pair with prone/stun/root checks):&lt;br /&gt;
* charge, cripple, dizzyingswing, pindown, twinhammer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AOE&#039;&#039;&#039; (execute on cooldown — limit with mob checks):&lt;br /&gt;
* clash, cyclone, pulverize, volley, wblade, whirlwind&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warcries:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;shout&#039;&#039;&#039; - Performs warcry Shout. Must use a command check or it will shout every loop: &amp;lt;CODE&amp;gt;shout(!shout)&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;shout(buff10 s25)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;yowlp&#039;&#039;&#039; - Performs warcry Yowlp. Must use a command check: &amp;lt;CODE&amp;gt;yowlp(!yowlp)&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;yowlp(buff10 s10)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;holler&#039;&#039;&#039; - Performs warcry Holler, taunting all mobs. Example: &amp;lt;CODE&amp;gt;holler(s60)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;bellow, growl, cry&#039;&#039;&#039; - Offensive warcries. Use with &amp;lt;CODE&amp;gt;target&amp;lt;/CODE&amp;gt; for single target or &amp;lt;CODE&amp;gt;all&amp;lt;/CODE&amp;gt; for AOE.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shield Skills:&#039;&#039;&#039;&lt;br /&gt;
* shield bash, shield charge, shield pin, shield push, shield strike, shield trample, shield throw&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Combat Maneuvers:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;surge&#039;&#039;&#039; - Keeps Surge of Strength active. &amp;lt;CODE&amp;gt;surge&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;surge(surge)&amp;lt;/CODE&amp;gt; casts even on cooldown; &amp;lt;CODE&amp;gt;surge(!surge)&amp;lt;/CODE&amp;gt; only casts when not on cooldown.&lt;br /&gt;
* &#039;&#039;&#039;bearhug, bullrush, coupdegrace, cpress, cutthroat, dirtkick, disarm, dislodge, divert, eviscerate, exsanguinate, eyepoke, feint, footstomp, garrote, gkick, hamstring, haymaker, headbutt, kifocus, kneebash, leapattack, mblow, mug, nosetweak, sattack, sblow, scleave, shroud, spunch, sthieve, subdue, sunder, sweep, swiftkick, tackle, templeshot, throatchop, trip, truestrike, vaultkick&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;dislodge &amp;lt;location&amp;gt;&#039;&#039;&#039; - Dislodge from the specified location: &amp;lt;CODE&amp;gt;dislodge eye neck&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;stomp&#039;&#039;&#039; - Performs a stomp attack. Channels 909 if not already active. You can also add 909 to the society abilities field to keep it active.&lt;br /&gt;
* &#039;&#039;&#039;dhurl&#039;&#039;&#039; - Hurls your weapon and recovers it. Works with weapon bonding auto-return and the RECOVER verb.&lt;br /&gt;
* &#039;&#039;&#039;assume &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt;&#039;&#039;&#039; - Cycles between two aspects, or evokes a single aspect. Also works in the society abilities box: &amp;lt;CODE&amp;gt;650 &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt;&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;briar &amp;lt;weapon&amp;gt;&#039;&#039;&#039; - Activates the AS buff on briar weapons. Tracks weapon charge and uses on cooldown.&lt;br /&gt;
* &#039;&#039;&#039;stance perfection&#039;&#039;&#039; - Put 10, 20, 30, etc. in your attack stance box to take advantage of stance perfection.&lt;br /&gt;
* &#039;&#039;&#039;chastise, excoriate&#039;&#039;&#039; - Performs the FEAT if available and affordable.&lt;br /&gt;
&lt;br /&gt;
===Gemstone Activation===&lt;br /&gt;
To use a gemstone-activated ability, use &amp;lt;CODE&amp;gt;jewel &amp;lt;mnemonic&amp;gt;&amp;lt;/CODE&amp;gt;. Bigshot automatically avoids usage if the ability is on cooldown. Supported gemstone mnemonics:&lt;br /&gt;
* bloodboil - Blood Boil&lt;br /&gt;
* spellblade - Spellblade&#039;s Fury&lt;br /&gt;
* arcascend - Arcanist&#039;s Ascendancy&lt;br /&gt;
* geospite - Geomancer&#039;s Spite&lt;br /&gt;
* forceofwill - Force of Will&lt;br /&gt;
* arcaneintensity - Arcane Intensity&lt;br /&gt;
* arcaneopus - Arcane Opus&lt;br /&gt;
* bloodsiphon - Blood Siphon&lt;br /&gt;
* bloodwell - Blood Wellspring&lt;br /&gt;
* epossess - Evanescent Possession&lt;br /&gt;
* manawellspring - Mana Wellspring&lt;br /&gt;
* spiritwell - Spirit Wellspring&lt;br /&gt;
* stamwell - Stamina Wellspring&lt;br /&gt;
* terrortribute - Terror&#039;s Tribute&lt;br /&gt;
* arcblade - Arcanist&#039;s Blade&lt;br /&gt;
* arcwill - Arcanist&#039;s Will&lt;br /&gt;
* imaerabalm - Imaera&#039;s Balm&lt;br /&gt;
* reckless - Reckless Precision&lt;br /&gt;
* unearthchains - Unearthly Chains&lt;br /&gt;
* witchhunt - Witchhunter&#039;s Ascendancy&lt;br /&gt;
* manashield - Mana Shield&lt;br /&gt;
* arcaneaegis - Arcane Aegis&lt;br /&gt;
&lt;br /&gt;
You may need to run &#039;&#039;&#039;SKILLS FULL&#039;&#039;&#039;, &#039;&#039;&#039;CMAN INFO&#039;&#039;&#039;, &#039;&#039;&#039;WEAPON INFO&#039;&#039;&#039;, or &#039;&#039;&#039;SHIELD INFO&#039;&#039;&#039; if you have recently changed training or if skills are being skipped.&lt;br /&gt;
&lt;br /&gt;
===Additional Options===&lt;br /&gt;
* &#039;&#039;&#039;haste&#039;&#039;&#039; or &#039;&#039;&#039;506&#039;&#039;&#039; - Placing this in front of any command casts 506 (Haste) before executing the command. Only casts if Haste is not currently active or has less than 3 seconds remaining.&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 10, haste kill (x3)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;slayer&#039;&#039;&#039; or &#039;&#039;&#039;240&#039;&#039;&#039; - Placing this in front of any command casts 240 before executing. Will not recast if already active.&lt;br /&gt;
&amp;lt;PRE&amp;gt;slayer 302 (x99)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Command Checks===&lt;br /&gt;
Command checks let you add conditions to any command. The format is:&lt;br /&gt;
&amp;lt;CODE&amp;gt;COMMAND (CHECKS)(REPETITIONS)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;CODE&amp;gt;hamstring (mob1 prone)(x2)&amp;lt;/CODE&amp;gt;. The (x#) repetition must be in a separate set of parentheses. Note that (xx) is shorthand for (x5), not unlimited.&lt;br /&gt;
&lt;br /&gt;
Checks can be combined inside a single set of parentheses with spaces between them. Example: &amp;lt;CODE&amp;gt;kill(m20 s5 e20)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each check also has an inverse — prefix with &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to negate. Example: &amp;lt;CODE&amp;gt;kill(!m20 !s5 !e20)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resource and Status Checks====&lt;br /&gt;
* &#039;&#039;&#039;s#&#039;&#039;&#039; - Requires at least # stamina.&lt;br /&gt;
* &#039;&#039;&#039;m#&#039;&#039;&#039; - Requires at least # mana.&lt;br /&gt;
* &#039;&#039;&#039;h#&#039;&#039;&#039; - Requires health to be at or above #% (percentage, not fixed).&lt;br /&gt;
* &#039;&#039;&#039;v#&#039;&#039;&#039; - Requires at least # spirit.&lt;br /&gt;
* &#039;&#039;&#039;e#&#039;&#039;&#039; - Requires encumbrance percentage to be at or below #.&lt;br /&gt;
* &#039;&#039;&#039;essence#&#039;&#039;&#039; - Requires at least # Shadow Essence (Sorcerer).&lt;br /&gt;
* &#039;&#039;&#039;thp#&#039;&#039;&#039; - Requires the &#039;&#039;target&#039;s&#039;&#039; health to be at or below #% (this is the target&#039;s health, unlike h# above which checks your own). &amp;lt;CODE&amp;gt;(!thp#)&amp;lt;/CODE&amp;gt; requires the target&#039;s health to be above #%. If Bigshot can&#039;t determine the target&#039;s health, the command is skipped.&lt;br /&gt;
&lt;br /&gt;
====Creature Checks====&lt;br /&gt;
* &#039;&#039;&#039;mob#&#039;&#039;&#039; - Requires at least # NPCs in the room. Only useful for 2 or more creatures.&lt;br /&gt;
&amp;lt;PRE&amp;gt;To further clarify the mob# implementation:&lt;br /&gt;
1 mob, mob2: 1 IS less than 2 — attack does NOT proceed.&lt;br /&gt;
2 mobs, mob2: 2 IS NOT less than 2 — attack CAN proceed.&lt;br /&gt;
1 mob, !mob2: 1 IS NOT more than 2 — attack CAN proceed.&lt;br /&gt;
2 mobs, !mob2: 2 IS NOT more than 2 — attack CAN proceed.&lt;br /&gt;
3 mobs, !mob2: 3 IS more than 2 — attack does NOT proceed.&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;valid#&#039;&#039;&#039; - Like mob#, but only counts valid targets you are actively targeting in current settings.&lt;br /&gt;
* &#039;&#039;&#039;tier#&#039;&#039;&#039; - Checks your current UAC tier (1, 2, 3). Performs the command if your tier is equal to or greater than #. &amp;lt;CODE&amp;gt;(!tier3)&amp;lt;/CODE&amp;gt; skips the command at tier 3.&lt;br /&gt;
* &#039;&#039;&#039;prone&#039;&#039;&#039; - Checks that the target is NOT sleeping, webbed, stunned, kneeling, sitting, lying down, prone, frozen, or held in place. Performs the command if none of those apply.&lt;br /&gt;
* &#039;&#039;&#039;frozen&#039;&#039;&#039; - Similar to prone but broken out separately. Useful for archers against non-corporeal creatures that deflect ranged attacks. Corporeal creatures that are stunned will break this check.&lt;br /&gt;
* &#039;&#039;&#039;undead&#039;&#039;&#039; - Performs the command if the target is undead.&lt;br /&gt;
* &#039;&#039;&#039;flying&#039;&#039;&#039; - Performs the command if the target is flying.&lt;br /&gt;
* &#039;&#039;&#039;rooted&#039;&#039;&#039; - Performs the command if the target is rooted.&lt;br /&gt;
* &#039;&#039;&#039;noncorporeal&#039;&#039;&#039; - Performs the command if the NPC is [[noncorporeal|non-corporeal]] undead.&lt;br /&gt;
* &#039;&#039;&#039;ancient&#039;&#039;&#039; - Checks for grizzled/ancient creatures.&lt;br /&gt;
&lt;br /&gt;
The following checks read the target&#039;s live status directly from the game feed, so they can be more precise than the umbrella &#039;&#039;&#039;prone&#039;&#039;&#039; check above. Each performs the command only when the target IS in that state (add &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to require that it is NOT):&lt;br /&gt;
* &#039;&#039;&#039;calm&#039;&#039;&#039; - Target is calmed.&lt;br /&gt;
* &#039;&#039;&#039;disoriented&#039;&#039;&#039; - Target is disoriented.&lt;br /&gt;
* &#039;&#039;&#039;hovering&#039;&#039;&#039; - Target is hovering.&lt;br /&gt;
* &#039;&#039;&#039;immobilized&#039;&#039;&#039; - Target is immobilized (note: this checks the opposite condition of the existing &#039;&#039;&#039;frozen&#039;&#039;&#039; check above, which performs its command only when the target is NOT frozen).&lt;br /&gt;
* &#039;&#039;&#039;kneeling&#039;&#039;&#039; - Target is kneeling.&lt;br /&gt;
* &#039;&#039;&#039;sitting&#039;&#039;&#039; - Target is sitting.&lt;br /&gt;
* &#039;&#039;&#039;sleeping&#039;&#039;&#039; - Target is sleeping.&lt;br /&gt;
* &#039;&#039;&#039;stunned&#039;&#039;&#039; - Target is stunned.&lt;br /&gt;
* &#039;&#039;&#039;webbed&#039;&#039;&#039; - Target is webbed.&lt;br /&gt;
&lt;br /&gt;
Creature type/classification checks, also read from the game feed. Each performs the command only when the target carries that classification (add &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to require that it does not):&lt;br /&gt;
* &#039;&#039;&#039;mount&#039;&#039;&#039; - Target is a mount.&lt;br /&gt;
* &#039;&#039;&#039;rider&#039;&#039;&#039; - Target is riding a mount.&lt;br /&gt;
* &#039;&#039;&#039;mini_boss&#039;&#039;&#039; - Target is flagged as a mini-boss.&lt;br /&gt;
* &#039;&#039;&#039;ascension_boss&#039;&#039;&#039; - Target is flagged as an Ascension boss.&lt;br /&gt;
* &#039;&#039;&#039;ascended&#039;&#039;&#039; - Target carries the &amp;quot;ascended&amp;quot; classification.&lt;br /&gt;
* &#039;&#039;&#039;challenging&#039;&#039;&#039; - Target is flagged as a tougher &amp;quot;challenging&amp;quot; variant.&lt;br /&gt;
* &#039;&#039;&#039;inferior&#039;&#039;&#039; - Target is flagged as a weaker &amp;quot;inferior&amp;quot; variant.&lt;br /&gt;
* &#039;&#039;&#039;disengaged&#039;&#039;&#039; - Target has disengaged from combat.&lt;br /&gt;
* &#039;&#039;&#039;sympathetic&#039;&#039;&#039; - Target is flagged as sympathetic (non-hostile).&lt;br /&gt;
&lt;br /&gt;
Wound and critical-hit checks:&lt;br /&gt;
* &#039;&#039;&#039;wounded&#039;&#039;&#039; - Performs the command only when the target&#039;s health is at or below 25% (a fixed threshold; use &#039;&#039;&#039;thp#&#039;&#039;&#039; above for a custom percentage). &amp;lt;CODE&amp;gt;(!wounded)&amp;lt;/CODE&amp;gt; requires health above 25%.&lt;br /&gt;
* &#039;&#039;&#039;fatalcrit&#039;&#039;&#039; - Performs the command only when the target has already suffered a fatal critical hit. &amp;lt;CODE&amp;gt;(!fatalcrit)&amp;lt;/CODE&amp;gt; requires that it has not.&lt;br /&gt;
* &#039;&#039;&#039;smote&#039;&#039;&#039; - Performs the command only when the target has already been hit with Voln Smite. &amp;lt;CODE&amp;gt;(!smote)&amp;lt;/CODE&amp;gt; requires that it has not been.&lt;br /&gt;
&lt;br /&gt;
Target-specific UCS positioning checks — these read the &#039;&#039;target&#039;s&#039;&#039; individual unarmed-combat positioning, unlike the &#039;&#039;&#039;tier#&#039;&#039;&#039; checks above which track your own overall UAC tier. Each performs the command only when your positioning against &#039;&#039;that specific target&#039;&#039; matches (add &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to require that it does not):&lt;br /&gt;
* &#039;&#039;&#039;ucsdecent&#039;&#039;&#039; - Positioning is &amp;quot;decent&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ucsgood&#039;&#039;&#039; - Positioning is &amp;quot;good&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ucsexcellent&#039;&#039;&#039; - Positioning is &amp;quot;excellent&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ucstierup&#039;&#039;&#039; - A tier-up follow-up is available.&lt;br /&gt;
&lt;br /&gt;
====Self Checks====&lt;br /&gt;
* &#039;&#039;&#039;hidden&#039;&#039;&#039; - Performs the command if you are currently hidden.&lt;br /&gt;
* &#039;&#039;&#039;poison&#039;&#039;&#039; - Performs the command if you are currently poisoned.&lt;br /&gt;
* &#039;&#039;&#039;disease&#039;&#039;&#039; - Performs the command if you are currently diseased.&lt;br /&gt;
* &#039;&#039;&#039;pcs&#039;&#039;&#039; - Performs the command if there are PCs in the room that are not in your group.&lt;br /&gt;
* &#039;&#039;&#039;outside&#039;&#039;&#039; - Performs the command if the room is outdoors.&lt;br /&gt;
* &#039;&#039;&#039;splashy&#039;&#039;&#039; - Checks if the room is &amp;quot;splashy&amp;quot; (wet) via Room.tags. Useful for avoiding lightning attacks in wet rooms.&lt;br /&gt;
* &#039;&#039;&#039;k#&#039;&#039;&#039; - Performs the command only while you are kneeling. The number is required by the syntax but its value doesn&#039;t matter (e.g. &amp;lt;CODE&amp;gt;k1&amp;lt;/CODE&amp;gt;). &amp;lt;CODE&amp;gt;(!k#)&amp;lt;/CODE&amp;gt; performs the command only while you are NOT kneeling.&lt;br /&gt;
&lt;br /&gt;
====Timing Checks====&lt;br /&gt;
* &#039;&#039;&#039;once&#039;&#039;&#039; - Performs the command once per target. Resets on room change.&lt;br /&gt;
* &#039;&#039;&#039;room&#039;&#039;&#039; - Performs the command once per room. Resets on room change.&lt;br /&gt;
* &#039;&#039;&#039;repeatdelay#&#039;&#039;&#039; - Throttles the command to once every # seconds per room, regardless of which target it&#039;s used against. Resets on room change. Example: &amp;lt;CODE&amp;gt;holler(repeatdelay60)&amp;lt;/CODE&amp;gt; will not Holler again for 60 seconds after it last went off in that room.&lt;br /&gt;
&lt;br /&gt;
====Buff Checks====&lt;br /&gt;
* &#039;&#039;&#039;barrage&#039;&#039;&#039; - Checks for the Enhanced Dexterity buff from Barrage.&lt;br /&gt;
* &#039;&#039;&#039;fury&#039;&#039;&#039; - Checks for the Enhanced Constitution buff from Fury.&lt;br /&gt;
* &#039;&#039;&#039;flurry&#039;&#039;&#039; - Checks for the Slashing Strikes buff from Flurry.&lt;br /&gt;
* &#039;&#039;&#039;pummel&#039;&#039;&#039; - Checks for the Concussive Blows buff from Pummel.&lt;br /&gt;
* &#039;&#039;&#039;thrash&#039;&#039;&#039; - Checks for the Forceful Blows buff from Thrash.&lt;br /&gt;
* &#039;&#039;&#039;vigor&#039;&#039;&#039; - Checks for the Tangleweed Vigor buff.&lt;br /&gt;
* &#039;&#039;&#039;reflex&#039;&#039;&#039; - Checks for the Arcane Reflex buff from Nature&#039;s Touch.&lt;br /&gt;
* &#039;&#039;&#039;tailwind&#039;&#039;&#039; - Checks for the Tailwind buff from Breeze.&lt;br /&gt;
* &#039;&#039;&#039;shout&#039;&#039;&#039; - Checks for the Empowered buff from Shout.&lt;br /&gt;
* &#039;&#039;&#039;yowlp&#039;&#039;&#039; - Checks for Yertie&#039;s Yowlp buff from Yowlp.&lt;br /&gt;
* &#039;&#039;&#039;holler&#039;&#039;&#039; - Checks for Horland&#039;s Holler buff from Holler.&lt;br /&gt;
* &#039;&#039;&#039;voidweaver&#039;&#039;&#039; - Checks for the Voidweaver buff from Implosion (720).&lt;br /&gt;
* &#039;&#039;&#039;justice&#039;&#039;&#039; - Checks for charges of Swift Justice. &amp;lt;CODE&amp;gt;(justice)&amp;lt;/CODE&amp;gt; acts with charges; &amp;lt;CODE&amp;gt;(!justice)&amp;lt;/CODE&amp;gt; acts with no charges.&lt;br /&gt;
* &#039;&#039;&#039;surge&#039;&#039;&#039; - Checks for Surge of Strength buff.&lt;br /&gt;
* &#039;&#039;&#039;rebuke&#039;&#039;&#039; - Checks for Righteous Rebuke buff.&lt;br /&gt;
* &#039;&#039;&#039;scourge&#039;&#039;&#039; - Checks for Ardor of the Scourge buff.&lt;br /&gt;
* &#039;&#039;&#039;momentum&#039;&#039;&#039; - Checks for Glorious Momentum buff.&lt;br /&gt;
* &#039;&#039;&#039;coupdegrace&#039;&#039;&#039; - Checks for the Empowered buff from Coup de Grace.&lt;br /&gt;
* &#039;&#039;&#039;animate&#039;&#039;&#039; - Checks for whether you have an animate present.&lt;br /&gt;
* &#039;&#039;&#039;empowered#&#039;&#039;&#039; - Skips the command if an Empowered buff of +# or greater is already active, so a strong Coup de Grace bonus can&#039;t get overwritten by a weaker recast. &amp;lt;CODE&amp;gt;(!empowered#)&amp;lt;/CODE&amp;gt; skips unless already at +# or greater.&lt;br /&gt;
* &#039;&#039;&#039;buffXX&#039;&#039;&#039; - Fires the ability when the buff duration is &amp;lt;= XX seconds remaining. Supported for barrage, bearhug, coupdegrace, flurry, fury, garrote, pummel, shout, thrash, weed/kweed, yowlp.&lt;br /&gt;
* &#039;&#039;&#039;censer&#039;&#039;&#039; - Attempts to cast 320 before your command, checking mana and cooldown. Examples: &amp;lt;CODE&amp;gt;309(censer)&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;335(censer mob3)&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;attack(censer)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
** If the command is a spell, censer only casts if you have mana for both 320 and the spell.&lt;br /&gt;
** If the command is not a spell, censer only checks you have enough mana for 320.&lt;br /&gt;
&lt;br /&gt;
====Effects Checks====&lt;br /&gt;
* &#039;&#039;&#039;ES&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Spells effect is active&lt;br /&gt;
* &#039;&#039;&#039;EB&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Buffs effect is active&lt;br /&gt;
* &#039;&#039;&#039;EC&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Cooldowns effect is active&lt;br /&gt;
* &#039;&#039;&#039;ED&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Debuffs effect is active&lt;br /&gt;
&lt;br /&gt;
===Example Attack Routines===&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 10, kill (x3)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Waits 10 seconds for the monster to swing or cast, then counter-attacks from your specified attack stance. Swings three times, then goes back to defensive and waits again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 15, incant 505, incant 903 (xx)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Waits 15 seconds, then INCants 505 (Hand of Tonis) to knock down or stun the target. Follows up with repeated casts of 903 (Minor Water) until the target is dead (up to 5 times).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;stance defensive and incant 1615, kill (x100)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Casts 1615 (Divine Strike) from defensive stance, then uses KILL continuously until the target is dead or 100 swings (whichever comes first).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;force feint until 101, kill (x2)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Uses FEINT against the target until a successful endroll, then hits twice before trying FEINT again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;stance defensive and hide, ambush left leg&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Hides from defensive stance, then ambushes the target&#039;s left leg. Repeats (hides again) after roundtime.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;incant 720(m50), incant 708, incant 702 channel(xx)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Casts 720 (Implosion) if you have 50+ mana, then INCants 708 (Limb Disruption) at the default aim location, then channels 702 (Mana Disruption) up to 5 times or until dead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;prep 708, cast at left leg / prep 708 channel at left leg, incant 719 (m50)(x1), incant 702 (xx)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Prepares 708 and CASTs at the left leg. The second variant prepares and CHANNELs at the left leg. Then casts 719 (Dark Catalyst) once if 50+ mana. Finally, INCants 702 until the creature is dead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 30, unarmed punch&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Waits 30 seconds or until the target attacks, then begins UAC combat using Punch to tier up.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;shield charge (s15 prone), ambush, mstrike&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Shield charges the target if you have 15+ stamina and the target is NOT prone. Then ambushes based on Attacking tab settings (cycling through configured aim locations). Then MSTRIKEs — focused if below the creature threshold, unfocused if at or above it. Use &amp;lt;CODE&amp;gt;mstrike target&amp;lt;/CODE&amp;gt; to always focus, or set unfocused threshold very high.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;bellow all, wblade(mob3), flurry(!flurry), attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
AOE bellows, then Whirling Blade if 3+ targets. Flurries if the Slashing Strikes buff is not active. Falls back to basic attack.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;holler, shield throw(mob3), flurry, thrash, attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Taunts with Holler, Shield Throws if 3+ targets, Flurries on cooldown, Thrashes on cooldown, and attacks as a fallback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;shroud(s35 !hidden mob2), divert (s25 hidden mob2), ambush(hidden), flurry, attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
If 2+ mobs: hides with Shroud (35 stamina, not already hidden), then Diverts one target (25 stamina, must be hidden). Ambushes if hidden, Flurries on cooldown, attacks as fallback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;surge(!surge), bullrush, bearhug, pummel, attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Keeps Surge active (casting only when not on cooldown). Bullrush to apply vulnerable, Bearhug (faster on vulnerable targets), Pummel on cooldown, attack as fallback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;surge, shout(buff10), shield strike, pummel(buff60), attack(x2)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Keeps Surge active (casting even during cooldown for 60 stamina). Shouts when less than 11 seconds remain on the buff. Shield Strikes, Pummels once per minute, finishes with 2 attacks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;pindown(mob4), volley(mob2), weed(!vigor !reflex), barrage(!barrage), incant 616 (m16 reflex), fire&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Pin Down if 4+ targets, Volley if 2+ targets. Tangleweed if missing Vigor and Reflex buffs. Barrage if missing Enhanced Dexterity. Spike Thorn (616) if 16+ mana and Arcane Reflex is active. Fire as fallback.&lt;br /&gt;
&lt;br /&gt;
===Hunting Target Examples===&lt;br /&gt;
All examples below work for both &amp;quot;valid targets&amp;quot; and &amp;quot;quickhunt targets.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A simple target list using default commands (a) for each creature:&lt;br /&gt;
&amp;lt;PRE&amp;gt;crazed zombie, niirsha, sacristan spirit&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using different command sets per creature — (a) for zombies and spirits, (b) for niirsha:&lt;br /&gt;
&amp;lt;PRE&amp;gt;crazed zombie(a), niirsha(b), sacristan spirit(a)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Including [[:Category:Boss creatures|Boss Creature]] variations as valid targets using regex:&lt;br /&gt;
&amp;lt;PRE&amp;gt;(?:adroit |afflicted |apt |barbed |belligerent |blurry |canny |combative |dazzling |deft |diseased |drab |dreary |ethereal |flashy |flexile |flickering |flinty |frenzied |ghastly |ghostly |gleaming |glittering |glorious |glowing |grotesque |hardy |illustrious |indistinct |keen |lanky |luminous |lustrous |muculent |nebulous |oozing |pestilent |radiant |raging |ready |resolute |robust |rune-covered |shadowy |shielded |shifting |shimmering |shining |sickly green |sinuous |slimy |sparkling |spindly |spiny |stalwart |steadfast |stout |tattooed |tenebrous |tough |twinkling |unflinching |unyielding |wavering |wispy )?crazed zombie, niirsha, sacristan spirit&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advanced regex for Grimswarm hunting with different commands per class:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:dissembler|sorcerer|sorceress|warlock|witch)(a)&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:barbarian|blackguard|fighter|marauder|soldier|warrior)(b)&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:adept|archmage|elementalist|mage|warmage)(c)&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:hunter|huntmaster|huntmistress|ranger)(d)&lt;br /&gt;
(?:seasoned )?(?:dwarven|elven|halfling|erithian|human|giantman|half-krolvin|gnomish|half-elven) (?:thief|rogue|bandit|mugger|outlaw|highwayman|marauder|brigand|thug|robber)(e)&lt;br /&gt;
(?:shopkeeper|innkeeper|bartender|patrol leader|bandit lord|bandit lady|gypsy queen|gypsy king|guard captain|wall captain|drill sergeant|stable hostler|dungeon master|master torturer|butler|cook|&lt;br /&gt;
knight captain|foreign dignitary|royal prince|royal princess|royal jester|royal emperor|royal empress)(f)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To target everything in the room: &amp;lt;CODE&amp;gt;(?:.*)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boon Creatures Tab==&lt;br /&gt;
Boss creatures (also called the Boss Creature System) upgrades newly created creatures into bosses, minibosses, or packs. Upgraded creatures have their level and basic stats boosted, and are granted a number of special abilities called &#039;&#039;&#039;boons&#039;&#039;&#039;, which are denoted by a special adjective in the creature&#039;s name. Players have alternatively called these &amp;quot;glam critters,&amp;quot; &amp;quot;gifted creatures,&amp;quot; or &amp;quot;boosted critters.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additional details are available on the GemStone Wiki: [https://gswiki.play.net/Category:Boss_creatures Category:Boss creatures]&lt;br /&gt;
&lt;br /&gt;
The Boon Creatures tab provides granular control over how Bigshot handles each boon ability. Bigshot uses the ASSESS verb to identify which boons a creature has, then checks your configuration to decide how to respond.&lt;br /&gt;
&lt;br /&gt;
===How It Works===&lt;br /&gt;
For each boon ability, you can choose one of three actions:&lt;br /&gt;
* &#039;&#039;&#039;Common&#039;&#039;&#039; - Treat as a normal target and fight it. Uses your hunting commands to kill. Still requires proper valid target matching to engage. This is also the default behavior if no selection is made.&lt;br /&gt;
* &#039;&#039;&#039;Ignore&#039;&#039;&#039; - Skip this creature entirely; do not engage it.&lt;br /&gt;
* &#039;&#039;&#039;Flee&#039;&#039;&#039; - Immediately flee from the room when this boon type is detected.&lt;br /&gt;
&lt;br /&gt;
===Master Toggle===&lt;br /&gt;
At the top of the tab is an &#039;&#039;&#039;All Boon Creatures&#039;&#039;&#039; section with Common, Ignore, and Flee checkboxes. These act as master toggles — checking one will set every individual boon ability across all groups to that action. If all individual items are already set to the same action and you uncheck the &amp;quot;All&amp;quot; toggle, everything gets unchecked.&lt;br /&gt;
&lt;br /&gt;
===Boon Groups===&lt;br /&gt;
The individual boon abilities are organized into four collapsible groups, each with its own group-level toggle row (&amp;quot;Entire Group&amp;quot;) and individual per-ability rows:&lt;br /&gt;
&lt;br /&gt;
====Immunity====&lt;br /&gt;
Boons that make the creature resistant or immune to certain damage types or effects.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Crit Death Immune || resolute, unflinching || Similar to constructs or golems&lt;br /&gt;
|-&lt;br /&gt;
| Damage Padding || flinty, tough ||&lt;br /&gt;
|-&lt;br /&gt;
| Elem Negation || sparkling, shining || Absorbs elemental magic attacks&lt;br /&gt;
|-&lt;br /&gt;
| Magic Resistance || rune-covered, tattooed || Reduces magic damage by 50%&lt;br /&gt;
|-&lt;br /&gt;
| Physical Negation || indistinct, nebulous || Physical damage resist shield&lt;br /&gt;
|-&lt;br /&gt;
| Stun Immune || steadfast, unyielding ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Offensive====&lt;br /&gt;
Boons that enhance the creature&#039;s offensive capabilities.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Boosted Offense || combative, belligerent ||&lt;br /&gt;
|-&lt;br /&gt;
| Cheat Death || glorious, illustrious || Raises self after death&lt;br /&gt;
|-&lt;br /&gt;
| Counter Attack || apt, ready || SMR counter-attack&lt;br /&gt;
|-&lt;br /&gt;
| Crit Weighting || shimmering, gleaming ||&lt;br /&gt;
|-&lt;br /&gt;
| Dmg Weighting || barbed, spiny ||&lt;br /&gt;
|-&lt;br /&gt;
| Dispelling || dazzling, flashy || Spirit Dispel (119) and Elem Dispel (417)&lt;br /&gt;
|-&lt;br /&gt;
| Elemental Flares || glittering ||&lt;br /&gt;
|-&lt;br /&gt;
| Frenzy || raging, frenzied ||&lt;br /&gt;
|-&lt;br /&gt;
| Mind Blast || canny, keen ||&lt;br /&gt;
|-&lt;br /&gt;
| Parting Shot || dreary, drab || Deals damage one last time upon death&lt;br /&gt;
|-&lt;br /&gt;
| Poisonous || sickly green, oozing || SMR poison gas cloud&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Defensive====&lt;br /&gt;
Boons that enhance the creature&#039;s defensive capabilities.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Blink || flickering, wavering || Temporary phase ability&lt;br /&gt;
|-&lt;br /&gt;
| Bolt Shield || shielded ||&lt;br /&gt;
|-&lt;br /&gt;
| Boosted Defense || sinuous, flexile || High damage padding (+12 CER)&lt;br /&gt;
|-&lt;br /&gt;
| Confuse || blurry, shifting || May give hard RT for casting at them&lt;br /&gt;
|-&lt;br /&gt;
| Crit Padding || stout, hardy ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Stats / Misc====&lt;br /&gt;
Boons that affect the creature&#039;s stats, resistances, or grant miscellaneous special abilities.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Boosted HP || robust, stalwart ||&lt;br /&gt;
|-&lt;br /&gt;
| Boosted Mana || luminous, lustrous ||&lt;br /&gt;
|-&lt;br /&gt;
| Diseased || pestilent, afflicted, diseased ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Spells - Elem || glowing ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Spells - Spirit || radiant ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Spells - Other || twinkling ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethereal || ethereal, wispy, ghostly || Noncorporeal undead. No Sheer Fear.&lt;br /&gt;
|-&lt;br /&gt;
| Jack of All Trades || adroit, deft ||&lt;br /&gt;
|-&lt;br /&gt;
| Regeneration || slimy, muculent || Similar to Troll&#039;s Blood (1125)&lt;br /&gt;
|-&lt;br /&gt;
| Soul Stealing || tenebrous, shadowy || May possess 1204, 1601, and 1712&lt;br /&gt;
|-&lt;br /&gt;
| Terrifying || ghastly, grotesque || Pre-attack SMR can force player into defensive&lt;br /&gt;
|-&lt;br /&gt;
| Weaken || spindly, lanky || Weaker creature than normal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Usage Tips===&lt;br /&gt;
* If you are a melee character who struggles with &#039;&#039;&#039;Stun Immune&#039;&#039;&#039; or &#039;&#039;&#039;Crit Death Immune&#039;&#039;&#039; creatures, set those to Ignore or Flee while leaving others on Common.&lt;br /&gt;
* Casters may want to Flee from &#039;&#039;&#039;Dispelling&#039;&#039;&#039; and &#039;&#039;&#039;Magic Resistance&#039;&#039;&#039; boons.&lt;br /&gt;
* &#039;&#039;&#039;Weaken&#039;&#039;&#039; is actually beneficial — the creature is weaker than normal, so leaving it on Common is usually best.&lt;br /&gt;
* &#039;&#039;&#039;Cheat Death&#039;&#039;&#039; creatures will revive after dying; consider Ignore if your build cannot handle killing them twice.&lt;br /&gt;
* The configuration is saved per profile, so you can have different boon strategies for different hunting areas.&lt;br /&gt;
&lt;br /&gt;
== Misc Tab==&lt;br /&gt;
Various specialized configuration options.&lt;br /&gt;
&lt;br /&gt;
===UAC Options===&lt;br /&gt;
Options for configuring Unarmed Combat (UAC):&lt;br /&gt;
* &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039; - The attack used when you have reached &amp;quot;excellent&amp;quot; positioning. Options: jab, punch, grapple, or kick.&lt;br /&gt;
* &#039;&#039;&#039;Aim at location (head, etc)&#039;&#039;&#039; - Used for aimed UAC combat, which requires ambush training to be effective. Leave blank if you do not want to aim.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE when creatures equal or greater&#039;&#039;&#039; - How many creatures must be present before using MSTRIKE during UAC.&lt;br /&gt;
* &#039;&#039;&#039;Use Voln SMITE?&#039;&#039;&#039; - Will perform a Voln SMITE on [[Non-corporeal]] undead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quick Setup:&#039;&#039;&#039; Bigshot only requires minimal configuration for UAC to work well:&lt;br /&gt;
# &#039;&#039;&#039;UAC options:&#039;&#039;&#039; Set your &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039; (jab, punch, grapple, or kick).&lt;br /&gt;
# &#039;&#039;&#039;Commands tab:&#039;&#039;&#039; Set your &#039;&#039;&#039;hunting commands (a)&#039;&#039;&#039; to &#039;&#039;&#039;unarmed jab&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Important notes about UAC in Bigshot:&lt;br /&gt;
* &amp;lt;CODE&amp;gt;unarmed jab&amp;lt;/CODE&amp;gt; can be replaced with any UAC attack type (e.g., &amp;lt;CODE&amp;gt;unarmed punch&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
* UAC follow-up strikes take priority over the base or Tier 3 attack.&lt;br /&gt;
* Tier 3 attacks are only used when positioning is &amp;quot;excellent&amp;quot;.&lt;br /&gt;
* There is almost no reason to use anything other than &amp;lt;CODE&amp;gt;unarmed jab&amp;lt;/CODE&amp;gt; as the hunting command and either &amp;lt;CODE&amp;gt;grapple&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;kick&amp;lt;/CODE&amp;gt; as the Tier 3 attack.&lt;br /&gt;
&lt;br /&gt;
===MSTRIKE Options===&lt;br /&gt;
Options for when and how MSTRIKE should be used:&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown stamina requirement&#039;&#039;&#039; - How much stamina you need before Bigshot will MSTRIKE during the MSTRIKE cooldown period. Be careful setting this too low, as it can pop your muscles. Leave blank to use your max stamina.&lt;br /&gt;
* &#039;&#039;&#039;QUICKSTRIKE stamina requirement&#039;&#039;&#039; - Stamina required for using QUICKSTRIKE during the MSTRIKE routine.&lt;br /&gt;
* &#039;&#039;&#039;Unfocused MSTRIKE when creatures equal or greater&#039;&#039;&#039; - Number of creatures in the room before Bigshot uses an unfocused (AOE) MSTRIKE instead of a focused one. Default is 2.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown&#039;&#039;&#039; - Toggle to allow MSTRIKEing during the cooldown period.&lt;br /&gt;
* &#039;&#039;&#039;Use QUICKSTRIKE for MSTRIKE&#039;&#039;&#039; - Toggle to use QUICKSTRIKE instead of normal MSTRIKE.&lt;br /&gt;
&lt;br /&gt;
===Ammo/Wands===&lt;br /&gt;
Settings for ammunition and wand management. If your attack routine uses FIRE or WAND verbs, these fields must be configured or Bigshot will hang.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;find ammo in this container&#039;&#039;&#039; - The container holding your ammunition (quiver, backpack, etc.). Leave BLANK if using FIRE without retrieving ammo (post-Archery 2020 Update).&lt;br /&gt;
* &#039;&#039;&#039;use this ammo type&#039;&#039;&#039; - The noun of your ammo type. Leave BLANK to use FIRE without retrieving ammo. Be precise with the noun — Bigshot is sensitive to exact naming here.&lt;br /&gt;
* &#039;&#039;&#039;fresh wand container&#039;&#039;&#039; - The container Bigshot checks for fresh wands to WAVE.&lt;br /&gt;
* &#039;&#039;&#039;dead wand container&#039;&#039;&#039; - The container where Bigshot deposits used-up wands.&lt;br /&gt;
* &#039;&#039;&#039;use this wand type&#039;&#039;&#039; - The specific wand type(s) to use. Bigshot only pulls these for WAVEing. Separate multiple types with commas. Example: &amp;lt;CODE&amp;gt;aquamarine wand, bloodwood wand&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Hide while waiting to pick up ammo&#039;&#039;&#039; - Bigshot will hide when gathering spent arrows and bolts.&lt;br /&gt;
* &#039;&#039;&#039;Use wands when out of mana&#039;&#039;&#039; - When out of mana, Bigshot pulls the specified wand type, stances to your attack stance, and WAVEs at valid targets until out of wands or resting conditions are met.&lt;br /&gt;
&lt;br /&gt;
===MA Grouping===&lt;br /&gt;
Multi-account grouping options:&lt;br /&gt;
* &#039;&#039;&#039;Looter name&#039;&#039;&#039; - The name of the character designated as the looter in Head/Tail configuration.&lt;br /&gt;
* &#039;&#039;&#039;No-looting list&#039;&#039;&#039; - Comma-separated list of characters who should never be assigned looting duty.&lt;br /&gt;
* &#039;&#039;&#039;Random looting&#039;&#039;&#039; - Distributes looting randomly based on encumbrance rather than assigning a fixed looter.&lt;br /&gt;
* &#039;&#039;&#039;Leader final loot&#039;&#039;&#039; - Allows the leader to perform a final loot pass before leaving a room.&lt;br /&gt;
* &#039;&#039;&#039;Travel TO hunting grounds independently&#039;&#039;&#039; - When enabled, group members travel to the hunting area on their own rather than as a group. Bigshot will disband the group and force GROUP OPEN after disbanding.&lt;br /&gt;
* &#039;&#039;&#039;Travel FROM hunting grounds independently&#039;&#039;&#039; - When enabled, group members return from the hunting area on their own.&lt;br /&gt;
* &#039;&#039;&#039;Stop for dead group members&#039;&#039;&#039; - Pauses the group if a follower dies during a hunt.&lt;br /&gt;
&lt;br /&gt;
==Monitoring Tab==&lt;br /&gt;
Options for safety, interaction monitoring, and debugging.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Monitor interaction&#039;&#039;&#039; - Pops up a window whenever Bigshot detects that someone or something is trying to interact with you. Customizable monitor strings and safe strings can be configured.&lt;br /&gt;
* &#039;&#039;&#039;Engage deadman&#039;s switch&#039;&#039;&#039; - Forces Bigshot to quit GemStone IV when your character drops below 40% health, allowing you to log back on and assess the situation manually.&lt;br /&gt;
* &#039;&#039;&#039;Depart/rerun if dead&#039;&#039;&#039; - Forces a DEPART (waking up in the Temple with low spirit), then restarts Bigshot for a fresh hunt. Make sure your &amp;quot;CHECK spirit &amp;gt;=&amp;quot; value in Should Hunt? is set high enough to recover before the next hunt.&lt;br /&gt;
* &#039;&#039;&#039;Quiet followers&#039;&#039;&#039; - Followers wait until the leader finishes both actions and resting scripts before beginning their own.&lt;br /&gt;
* &#039;&#039;&#039;Ignore disk objects&#039;&#039;&#039; - Ignores disk objects when evaluating room claims and other checks.&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
Bigshot provides detailed debug options for troubleshooting. Use these commands in-game:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
|                       Bigshot Debug Help v5.16.0                          |&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
| Debug options have changed to be more helpful.                            |&lt;br /&gt;
+--------------------------------------+------------------------------------+&lt;br /&gt;
| ;bigshot debug file                  | Toggles logging to a file &amp;lt;on/off&amp;gt; |&lt;br /&gt;
| ;bigshot debug all &amp;lt;true/false&amp;gt;      |  Toggles true/false all the things |&lt;br /&gt;
| ;bigshot debug check                 |       Lists current debug settings |&lt;br /&gt;
| ;bigshot debug combat &amp;lt;true/false&amp;gt;   |         Combat and Creature Status |&lt;br /&gt;
| ;bigshot debug commands &amp;lt;true/false&amp;gt; |     Attacking and Casting Commands |&lt;br /&gt;
| ;bigshot debug status &amp;lt;true/false&amp;gt;   |    Status Checks of your Character |&lt;br /&gt;
| ;bigshot debug system &amp;lt;true/false&amp;gt;   |                   System processes |&lt;br /&gt;
|                                      |                                    |&lt;br /&gt;
| Options can be combined:                                                  |&lt;br /&gt;
|           ;bigshot debug combat commands status &amp;lt;true/false&amp;gt;              |&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Debug log files are stored in your Lich5 logs directory under &amp;lt;CODE&amp;gt;debug/&amp;lt;Game&amp;gt;-&amp;lt;CharacterName&amp;gt;/bigshot.log&amp;lt;/CODE&amp;gt; and rotate daily.&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;CODE&amp;gt;debug combat&amp;lt;/CODE&amp;gt; enabled, the log also tracks each target&#039;s health and status from the moment Bigshot first engages it, through every command tried against it, to its death — useful for figuring out why a particular command check fired or didn&#039;t fire against a specific creature.&lt;br /&gt;
&lt;br /&gt;
==Ingame Screenshot==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:bigshot-1.PNG|Profiles&lt;br /&gt;
File:bigshot-2.PNG|Resting&lt;br /&gt;
File:bigshot-3.PNG|Hunting&lt;br /&gt;
File:bigshot-4.PNG|Attacking&lt;br /&gt;
File:bigshot-5.PNG|Commands&lt;br /&gt;
File:bigshot-6.PNG|Misc&lt;br /&gt;
File:bigshot-7.PNG|Monitoring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
* Info originally taken from http://forum.gsplayers.com/showthread.php?t=57651&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
{{top}}&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=265045</id>
		<title>Lich:Script Bigshot</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=265045"/>
		<updated>2026-09-11T00:50:14Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: updated to latest 5.16.0 content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Bigshot is a fully automated hunting script for GemStone IV. It handles combat routines, movement to and from hunting areas, target selection, and attack execution.&lt;br /&gt;
AFK scripting on any server other than Shattered is a violation of game policy.&lt;br /&gt;
{{TOCright| limit=2}}&lt;br /&gt;
==Changelog==&lt;br /&gt;
*[[Script Bigshot/Changelog|Script Bigshot Changelog]]&lt;br /&gt;
==About Bigshot==&lt;br /&gt;
===What Does Bigshot Do?===&lt;br /&gt;
&lt;br /&gt;
Using a series of menus and command inputs, Bigshot lets you create a modular, customizable, and fully automated hunting script. With just a few clicks and tweaks, you can go from scripting rats to the Rift.&lt;br /&gt;
&lt;br /&gt;
===How Do I Get It?===&lt;br /&gt;
&lt;br /&gt;
Grab it from the repository: &amp;lt;CODE&amp;gt;;repository download Bigshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How Do I Make It Go?===&lt;br /&gt;
Initial setup is accessed through &amp;lt;CODE&amp;gt;;bigshot setup&amp;lt;/CODE&amp;gt;. This opens a configuration window with several tabs for setting up your hunting routine.&lt;br /&gt;
&lt;br /&gt;
As with most scripts, the SETUP command opens a graphical user interface. Use &amp;lt;CODE&amp;gt;;bigshot setup&amp;lt;/CODE&amp;gt; to open the dialog. The window contains the following tabs:&lt;br /&gt;
* &#039;&#039;&#039;Profile&#039;&#039;&#039; - Save and load profile configurations. Profiles are saved to your &amp;lt;CODE&amp;gt;\Lich5\data\&amp;lt;GSServer&amp;gt;\&amp;lt;charname&amp;gt;\bigshot_profiles&amp;lt;/CODE&amp;gt; directory (e.g., &amp;lt;CODE&amp;gt;\Lich5\data\GSIV\Rinualdo\bigshot_profiles&amp;lt;/CODE&amp;gt;). Note: if you previously used Bigshot, the file location has changed from the old &amp;lt;CODE&amp;gt;\Lich5\scripts\bigshot_profiles&amp;lt;/CODE&amp;gt; folder. You can copy/paste your old profiles to the new location.&lt;br /&gt;
* &#039;&#039;&#039;Resting&#039;&#039;&#039; - Configure your resting routine, rest location, and conditions that trigger resting.&lt;br /&gt;
* &#039;&#039;&#039;Hunting&#039;&#039;&#039; - Create a hunting map using boundaries, set your starting room, configure attack/wander stances, and define pre-hunt behavior.&lt;br /&gt;
* &#039;&#039;&#039;Attacking&#039;&#039;&#039; - Configure ambush aiming, flee conditions, bless behavior, weapon reactions, and similar combat flags.&lt;br /&gt;
* &#039;&#039;&#039;Commands&#039;&#039;&#039; - Define your valid targets and associated attack routines. See sample routines below.&lt;br /&gt;
* &#039;&#039;&#039;Boon Creatures&#039;&#039;&#039; - Configure how Bigshot handles boss/boon creatures on a per-ability basis (fight, ignore, or flee).&lt;br /&gt;
* &#039;&#039;&#039;Misc&#039;&#039;&#039; - UAC options, MSTRIKE options, ammo/wand configuration, and MA grouping settings.&lt;br /&gt;
* &#039;&#039;&#039;Monitoring&#039;&#039;&#039; - Interaction monitoring, deadman&#039;s switch, depart behavior, and debug options.&lt;br /&gt;
&lt;br /&gt;
Each tab is covered in detail further on.&lt;br /&gt;
&lt;br /&gt;
===Other Commands===&lt;br /&gt;
Beyond the setup GUI, Bigshot has several command-line options:&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt; - A special hunting mode that kills everything in your current room, then quits. It will not wander or attempt to rest. Uses its own separate hunting commands and targets (configured on the Commands tab).&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot head&amp;lt;/CODE&amp;gt; / &amp;lt;CODE&amp;gt;;bigshot tail&amp;lt;/CODE&amp;gt; - Multi-account hunting on a single computer. All characters must be set up for the same hunting area. Following characters run &amp;lt;CODE&amp;gt;;bigshot tail&amp;lt;/CODE&amp;gt;, then the leader runs &amp;lt;CODE&amp;gt;;bigshot head&amp;lt;/CODE&amp;gt;. The leader can optionally specify the expected group size, e.g., &amp;lt;CODE&amp;gt;;bigshot head 3&amp;lt;/CODE&amp;gt;. Head and tail can be started in any order.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot display&amp;lt;/CODE&amp;gt; - Shows all your current settings.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot reset&amp;lt;/CODE&amp;gt; - Resets your targetable and untargetable lists. Useful if Bigshot will not target something it should.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot profile save &amp;lt;name&amp;gt;&amp;lt;/CODE&amp;gt; - Saves a profile in YAML format to your character&#039;s profile folder. Also accessible via the Profiles tab.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot profile load &amp;lt;name&amp;gt;&amp;lt;/CODE&amp;gt; - Loads a profile from your character&#039;s profile folder. Also accessible via the Profiles tab.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot single&amp;lt;/CODE&amp;gt; - Executes a single hunting routine, returns to your resting location, and then exits.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot list&amp;lt;/CODE&amp;gt; - Displays all initialized variable values (useful for troubleshooting).&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot test &amp;lt;method&amp;gt; &amp;lt;args&amp;gt;&amp;lt;/CODE&amp;gt; - Runs a specific internal method for testing purposes.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot help&amp;lt;/CODE&amp;gt; - &#039;&#039;&#039;(New in v5.16.0)&#039;&#039;&#039; Prints a quick-reference table of every command-line option listed in this section. Typing an option Bigshot doesn&#039;t recognize now prints this same help (with a warning naming the bad option) instead of silently doing nothing.&lt;br /&gt;
* &amp;lt;CODE&amp;gt;;bigshot &amp;lt;mode&amp;gt; &amp;lt;creature&amp;gt;&amp;lt;/CODE&amp;gt; - Rangers only: combine one of the modes above (&amp;lt;CODE&amp;gt;solo&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;single&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;bounty&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;quick&amp;lt;/CODE&amp;gt;, or &amp;lt;CODE&amp;gt;once&amp;lt;/CODE&amp;gt;) with a creature name to TRACK toward that creature instead of wandering, e.g., &amp;lt;CODE&amp;gt;;bigshot single giant rat&amp;lt;/CODE&amp;gt;. A creature name with no mode in front of it (just &amp;lt;CODE&amp;gt;;bigshot giant rat&amp;lt;/CODE&amp;gt;) is not recognized.&lt;br /&gt;
&lt;br /&gt;
==The Profile Tab==&lt;br /&gt;
* &#039;&#039;&#039;Load Profile&#039;&#039;&#039; - Load an existing saved profile. The dropdown will be empty if no profiles have been saved yet.&lt;br /&gt;
* &#039;&#039;&#039;Current Profile&#039;&#039;&#039; - Displays the name of the currently loaded profile.&lt;br /&gt;
* &#039;&#039;&#039;Save Profile&#039;&#039;&#039; - Enter any name for your profile and click Save. Once saved, the profile will appear in the Load Profile dropdown.&lt;br /&gt;
* &#039;&#039;&#039;Notes&#039;&#039;&#039; - A freeform text area for any notes you want to associate with the profile.&lt;br /&gt;
&lt;br /&gt;
==The Resting Tab==&lt;br /&gt;
This tab controls where and how Bigshot rests between hunts. During rest mode, Bigshot checks your mind state, hit points, wound status, mana, and spirit. Once all conditions defined in the &amp;quot;Should Hunt?&amp;quot; section are met, Bigshot leaves rest mode and begins a new hunt.&lt;br /&gt;
&lt;br /&gt;
===Where to Rest===&lt;br /&gt;
* &#039;&#039;&#039;room id&#039;&#039;&#039; - The room Bigshot returns to for resting. Uses room numbers from Map/Go2. Supports both Lich IDs and SimuIDs (prefix SimuIDs with &amp;quot;u&amp;quot;, e.g., &amp;lt;CODE&amp;gt;228&amp;lt;/CODE&amp;gt; for Town Square Central or &amp;lt;CODE&amp;gt;u7120&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
* &#039;&#039;&#039;return waypoints&#039;&#039;&#039; - Optional intermediate room IDs that Bigshot will pass through when returning to rest. Separate multiple waypoints with commas.&lt;br /&gt;
* &#039;&#039;&#039;pre-rest commands&#039;&#039;&#039; - Commands executed before entering rest mode. Example: &amp;lt;CODE&amp;gt;shea, wear shield, sit, stance offensive, rest&amp;lt;/CODE&amp;gt;. This will sheathe your weapon, wear your shield, sit down, enter offensive stance, and use the REST verb. You can also call scripts here using the &amp;lt;CODE&amp;gt;script&amp;lt;/CODE&amp;gt; prefix, e.g., &amp;lt;CODE&amp;gt;script go2 place&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;active resting scripts&#039;&#039;&#039; - Scripts that run upon entering rest mode for between-hunt tasks such as selling loot, spelling up, or healing. Example: &amp;lt;CODE&amp;gt;eloot sell, waggle, eherbs&amp;lt;/CODE&amp;gt;. This will sell via eloot, spell up via waggle, then use herbs from your PACK to heal wounds.&lt;br /&gt;
* &#039;&#039;&#039;Fog Option&#039;&#039;&#039; - Determines how Bigshot returns to rest. Options include:&lt;br /&gt;
** &#039;&#039;&#039;None&#039;&#039;&#039; - Walk normally (no teleportation).&lt;br /&gt;
** &#039;&#039;&#039;130&#039;&#039;&#039; - Uses [[Spirit Guide (130)]] first; falls back to Symbol of Return if it fails.&lt;br /&gt;
** &#039;&#039;&#039;Symbol of Return&#039;&#039;&#039; - Uses Voln [[Symbol of Return]] first; falls back to 130 if it fails.&lt;br /&gt;
** &#039;&#039;&#039;Traveler&#039;s Song (1020)&#039;&#039;&#039; - Attempts [[Traveler&#039;s Song (1020)]] once, then continues.&lt;br /&gt;
** &#039;&#039;&#039;Familiar Gate (930)&#039;&#039;&#039; - Attempts [[Familiar Gate (930)]] to summon a portal and walk through it. Will perform a mana pulse if not enough mana is detected.&lt;br /&gt;
** &#039;&#039;&#039;Sigil of Escape&#039;&#039;&#039; - Uses [[Sigil of Escape]].&lt;br /&gt;
** &#039;&#039;&#039;Custom&#039;&#039;&#039; - Allows a comma-separated list of custom commands to perform.&lt;br /&gt;
* &#039;&#039;&#039;Fog ONLY if wounded or encumbered&#039;&#039;&#039; - When checked, Bigshot will only use the fog option if you are actually wounded or encumbered. Otherwise it walks normally.&lt;br /&gt;
* &#039;&#039;&#039;Fog twice from the Rift&#039;&#039;&#039; - When checked, Bigshot will double-cast the fog spell when returning from the Rift (useful since the Rift requires two uses to escape).&lt;br /&gt;
&lt;br /&gt;
===Should Rest?===&lt;br /&gt;
Bigshot evaluates these conditions to decide when to leave a hunt and return to rest.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Triggers resting when your mind has reached this threshold. Generally set to 100 (fried). Default is 100.&lt;br /&gt;
* &#039;&#039;&#039;and extra kills &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of additional monsters to kill after reaching your &amp;quot;when percent mind&amp;quot; threshold and after LTE boosts are used. Set to 0 to rest immediately upon reaching the mind threshold.&lt;br /&gt;
* &#039;&#039;&#039;and used lte boosts &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of LTE (Long-Term Experience) boosts Bigshot will attempt to use after reaching the mind threshold. Set to 0 to skip LTE boosts entirely.&lt;br /&gt;
* &#039;&#039;&#039;or percent mana &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your mana percentage is at or below this value. Can be set to 0, but leaving a small buffer is useful (e.g., for Unlock (406) to open the WL Graveyard gate). If you encounter an &amp;quot;OOM&amp;quot; error, try setting this to 1.&lt;br /&gt;
* &#039;&#039;&#039;or percent encumbrance &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your encumbrance reaches or exceeds this percentage.&lt;br /&gt;
* &#039;&#039;&#039;or wounded eval&#039;&#039;&#039;&lt;br /&gt;
** Allows you to set a Ruby evaluation expression to determine if you are too wounded to continue. Can trigger on bleeding, specific wound levels, inability to cast, scars, and more.&lt;br /&gt;
&lt;br /&gt;
The following is a wounded evaluation that will rest whenever you have any level II wounds:&lt;br /&gt;
&amp;lt;PRE&amp;gt;XMLData.injuries.any?{|key,value| value[&amp;quot;wound&amp;quot;] &amp;gt; 1} || Char.percent_health &amp;lt;= 70&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The following is a wound evaluation that will take you home if you can no longer cast (bleeding, nerves, level 2 head/eyes, bad scars, etc.):&lt;br /&gt;
&amp;lt;PRE&amp;gt;bleeding? || Char.percent_health &amp;lt;= 25 || [Wounds.head, Scars.head, Wounds.leftEye, Scars.leftEye, Wounds.rightEye, Scars.rightEye, Wounds.nsys, Scars.nsys].max &amp;gt; 1 ||  [Wounds.leftArm, Wounds.leftHand, Wounds.rightArm, Wounds.rightHand, Scars.leftArm, Scars.leftHand, Scars.rightArm, Scars.rightHand].max &amp;gt; 2 || ([Wounds.leftArm, Wounds.leftHand, Scars.leftArm, Scars.leftHand].max + [Wounds.rightArm, Wounds.rightHand, Scars.rightArm, Scars.rightHand].max) &amp;gt;= 3&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The following can be appended to either wound evaluation above to also rest upon having popped muscles:&lt;br /&gt;
&amp;lt;PRE&amp;gt;|| Effects::Debuffs.active?(&amp;quot;Overexerted&amp;quot;)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;when creeping dread &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your creeping dread level reaches or exceeds this value.&lt;br /&gt;
* &#039;&#039;&#039;when crushing dread &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your crushing dread level reaches or exceeds this value.&lt;br /&gt;
* &#039;&#039;&#039;Wall of Thorns Poison&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when you are affected by Wall of Thorns poison.&lt;br /&gt;
* &#039;&#039;&#039;Confusion Debuff&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when you are affected by the non-dispellable Confusion debuff.&lt;br /&gt;
* &#039;&#039;&#039;Box in hand&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest if looting leaves a box in your hand.&lt;br /&gt;
&lt;br /&gt;
==The Hunting Tab==&lt;br /&gt;
This tab controls when and where Bigshot hunts, any pre-hunt preparation, and the map boundaries for wandering.&lt;br /&gt;
&lt;br /&gt;
===The Hunting Map===&lt;br /&gt;
Your hunting map consists of &#039;&#039;&#039;Boundaries&#039;&#039;&#039; (rooms Bigshot will never enter) and a &#039;&#039;&#039;Starting Room&#039;&#039;&#039; (the first room Bigshot moves to when a hunt begins). These function similarly to the boundaries in the ;Wander script, but are stored in Bigshot&#039;s own configuration files.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;starting room ID&#039;&#039;&#039; - The first room Bigshot travels to when beginning a hunt. Set this to any room within your boundaries.&lt;br /&gt;
* &#039;&#039;&#039;boundary rooms&#039;&#039;&#039; - Rooms that act as walls. Bigshot will never enter a boundary room.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;X-X-B - A - 0 - 0 - 0&lt;br /&gt;
|   |&lt;br /&gt;
X-X-X&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the diagram above, &amp;quot;B&amp;quot; is a boundary room and &amp;quot;A&amp;quot; is outside the hunting area. Rooms marked &amp;quot;0&amp;quot; are the huntable area. Bigshot will wander freely among the &amp;quot;0&amp;quot; rooms but never cross into &amp;quot;B&amp;quot; or &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Boundary room IDs are separated by commas. Some popular examples:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rift Boundaries:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Plane 1: 2635, 12101, 12208&lt;br /&gt;
Plane 2: 2605, 2635, 12093&lt;br /&gt;
Plane 3: 2635, 12089, 12152&lt;br /&gt;
Plane 4: 12122, 12207, 12235&lt;br /&gt;
Plane 5: 2579&lt;br /&gt;
North Scatter: 12151, 12254, 12256, 12249, 12247, 12241&lt;br /&gt;
South Scatter: 12151, 12219, 12217, 12233, 12237, 12239&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maaghara Boundaries:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;9734&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Confluence Boundaries:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;2300, 3519, 228, 188, 1932, 10855, 3668, 1438, 1005&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Imagine a hunting area that is a six-room square. To enter this square, you must GO DOORWAY from room A. You would set room A (outside the square, before the doorway) as a boundary. Then set room B (just inside the square) as the starting room. Bigshot will move to room B and wander within the bounded area until your &amp;quot;Should Rest?&amp;quot; conditions are met.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;rally point rooms&#039;&#039;&#039; - Optional intermediate room IDs Bigshot will pass through on the way to the hunting area. Separate multiple rooms with commas.&lt;br /&gt;
&lt;br /&gt;
===Hunting Settings===&lt;br /&gt;
* &#039;&#039;&#039;wait before wandering to another room&#039;&#039;&#039; - Time in seconds Bigshot waits before leaving a room to look for creatures. Default is 0.3. Set to 0 for fastest (but spammy) movement.&lt;br /&gt;
* &#039;&#039;&#039;attack stance&#039;&#039;&#039; - The stance Bigshot switches to when issuing attack commands. Bigshot remains in defensive stance until an attack is triggered, then stances to your specified attack stance. Recognizes all game stances from Offensive through Defensive.&lt;br /&gt;
* &#039;&#039;&#039;wander stance&#039;&#039;&#039; - The stance Bigshot uses while moving between rooms. Defaults to Defensive.&lt;br /&gt;
* &#039;&#039;&#039;stand up stance&#039;&#039;&#039; - The stance Bigshot enters when standing up after being knocked down. Defaults to Defensive.&lt;br /&gt;
* &#039;&#039;&#039;pre-hunt commands&#039;&#039;&#039; - Commands executed before Bigshot uses Go2 to travel to your starting room. Example: &amp;lt;CODE&amp;gt;gird, stance defensive&amp;lt;/CODE&amp;gt;. This ensures your weapon is readied and you are in defensive stance before traveling. Use this line for short-lived combat spells like 1605 (Arm of the Arkati).&lt;br /&gt;
* &#039;&#039;&#039;active hunting scripts&#039;&#039;&#039; - Scripts that run while Bigshot is in hunt mode. Use these for complex behaviors that Bigshot does not natively support (e.g., keeping certain spells active or executing CMANs based on conditions).&lt;br /&gt;
* &#039;&#039;&#039;society abilities/spells/cmans&#039;&#039;&#039; - Abilities Bigshot keeps active during a hunt. Enter numerical designations separated by commas. For example, entering &amp;lt;CODE&amp;gt;506&amp;lt;/CODE&amp;gt; keeps Haste up, recasting whenever it wears off. Hover over this field in the GUI for a list of supported values. Supported options include spells that can be ignored by rapidfire cooldown: e.g., &amp;lt;CODE&amp;gt;515 (ignore)&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;rapidfire (ignore)&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;loot script&#039;&#039;&#039; - The script Bigshot calls to loot your kills (e.g., &amp;lt;CODE&amp;gt;eloot&amp;lt;/CODE&amp;gt;). Make sure the loot script is properly configured via its own SETUP command, or Bigshot may error.&lt;br /&gt;
* &#039;&#039;&#039;wracking spirit &amp;gt;=&#039;&#039;&#039; - If your spirit is greater than or equal to this value, Bigshot will WRACK for mana. Setting it to 6 will wrack down to 5 spirit. Only functions when the wracking checkbox is enabled.&lt;br /&gt;
* &#039;&#039;&#039;Use sign of wracking/sigil of power&#039;&#039;&#039; - Checkbox to enable wracking.&lt;br /&gt;
* &#039;&#039;&#039;Check for favor before using Voln symbols&#039;&#039;&#039; - Checkbox to verify you have sufficient favor before casting Voln society symbols.&lt;br /&gt;
* &#039;&#039;&#039;Priority hunt&#039;&#039;&#039; - When enabled, Bigshot targets creatures in the order listed in your valid targets field. If a higher-priority creature enters the room, Bigshot switches to it. When using &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt;, quickhunt targets take priority, followed by any remaining targets in room order.&lt;br /&gt;
* &#039;&#039;&#039;Delay looting&#039;&#039;&#039; - Delays the looting of creatures in a room.&lt;br /&gt;
* &#039;&#039;&#039;Defensive stance before looting&#039;&#039;&#039; - Switches to defensive stance before looting begins.&lt;br /&gt;
* &#039;&#039;&#039;Pull players to feet&#039;&#039;&#039; - Attempts to pull players to their feet when passing them.&lt;br /&gt;
* &#039;&#039;&#039;Stop for dead players&#039;&#039;&#039; - Pauses Bigshot if you encounter a dead player.&lt;br /&gt;
* &#039;&#039;&#039;Troubadour&#039;s Rally&#039;&#039;&#039; - Enables the use of Troubadour&#039;s Rally during hunts.&lt;br /&gt;
* &#039;&#039;&#039;Sneaky Sneaky&#039;&#039;&#039; - Sneak around while moving through the hunting area.&lt;br /&gt;
&lt;br /&gt;
===Should Hunt?===&lt;br /&gt;
Bigshot evaluates these conditions to determine if you are ready to begin a hunt from rest.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Setting this to 51 will wait until &amp;quot;Clear&amp;quot;. Setting it to 65 will wait until &amp;quot;Muddled&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;and percent mana &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The percentage of your maximum mana that must be present before hunting. Setting below 50 results in short hunts if you cast frequently. Generally set to 95 or higher.&lt;br /&gt;
* &#039;&#039;&#039;and CHECK spirit &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Bigshot checks that your current spirit value is at least this amount. Make sure this is high enough that Bigshot will not immediately hunt after DEPARTing if you have the &amp;quot;Depart / re-run&amp;quot; option enabled on the Monitoring tab.&lt;br /&gt;
* &#039;&#039;&#039;and percent stamina &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The percentage of your maximum stamina that must be present before hunting. Useful for melee-heavy builds that rely on stamina for CMANs and MSTRIKEs.&lt;br /&gt;
&lt;br /&gt;
==The Attacking Tab==&lt;br /&gt;
This tab controls aiming, flee conditions, and various combat behavior toggles.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Ambush aiming locations (head, etc)&#039;&#039;&#039; - The order Bigshot aims when ambushing. Default is head, right leg, left leg, chest. Bigshot cycles through these and skips locations that are too injured or unreachable.&lt;br /&gt;
* &#039;&#039;&#039;Archery aiming locations (head, etc)&#039;&#039;&#039; - The order Bigshot aims when using archery attacks. Loops through your aiming list.&lt;br /&gt;
* &#039;&#039;&#039;flee if enemy count is &amp;gt;&#039;&#039;&#039; - Flees the room if the total number of enemies exceeds this value. Set to 1 to engage only single targets.&lt;br /&gt;
* &#039;&#039;&#039;...but don&#039;t count these&#039;&#039;&#039; - Bigshot ignores these monsters when evaluating flee count. Useful when low-level monsters are mixed into your hunting area.&lt;br /&gt;
* &#039;&#039;&#039;...and always flee from&#039;&#039;&#039; - Bigshot immediately flees from these monsters. Useful when your hunting area has higher-level or dangerous monsters mixed in.&lt;br /&gt;
* &#039;&#039;&#039;flee from environment message&#039;&#039;&#039; - Bigshot flees whenever the game sends a message matching this text (uses XML regex matching). Note:  This does not work when using &amp;lt;CODE&amp;gt;;bigshot quick.&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;wait before wandering to another room&#039;&#039;&#039; - Time in seconds before moving to a new room. Default is 0.3. Set to 0 to move instantly (can be spammy for others in the area).&lt;br /&gt;
* &#039;&#039;&#039;Approach lone targets only&#039;&#039;&#039; - Forces Bigshot to only begin combat against creatures that are alone in a room.&lt;br /&gt;
* &#039;&#039;&#039;Bless weapon?&#039;&#039;&#039; - Performs a Consecrate (1604), then a Cleric Bless or Voln Bless on any weapon that loses its bless during hunting. If unable to bless during hunting, Bigshot returns to the rest area and quits.&lt;br /&gt;
* &#039;&#039;&#039;Activate weapon reactions&#039;&#039;&#039; - Initiates reactive strikes when the opportunity presents itself.&lt;br /&gt;
* &#039;&#039;&#039;Flee from clouds&#039;&#039;&#039; - Flees from cloud spells such as 125 (Call Lightning/Ominous Cloud), 1704 (Stun Cloud), and 1713 (Death Cloud).&lt;br /&gt;
* &#039;&#039;&#039;Flee from vines&#039;&#039;&#039; - Flees from vine spells such as 610 (Tangle Weed).&lt;br /&gt;
* &#039;&#039;&#039;Flee from webs&#039;&#039;&#039; - Flees from webs.&lt;br /&gt;
* &#039;&#039;&#039;Flee from voids&#039;&#039;&#039; - Flees from voids.&lt;br /&gt;
&lt;br /&gt;
==Commands Tab==&lt;br /&gt;
This is the core of Bigshot — where you define your attack routines.&lt;br /&gt;
&lt;br /&gt;
===Hunting Commands===&lt;br /&gt;
* &#039;&#039;&#039;hunting commands (a)&#039;&#039;&#039; - The primary commands Bigshot executes when in a room with a valid target. Commands are separated by commas. Bigshot recognizes most hunting verbs; unrecognized commands are sent directly as-is via fput. The following are recognized hunting commands:&lt;br /&gt;
** &#039;&#039;&#039;kill&#039;&#039;&#039; - Attacks using the KILL verb.&lt;br /&gt;
** &#039;&#039;&#039;incant &amp;lt;spell number&amp;gt;&#039;&#039;&#039; - Casts the specified spell with INCANT. Automatically stances into offensive for bolt and stance-sensitive spells. You can CHANNEL via &amp;lt;CODE&amp;gt;INCANT SET CHANNEL &amp;lt;spell&amp;gt;&amp;lt;/CODE&amp;gt; (a standard GSIV verb) or by setting &amp;lt;CODE&amp;gt;SET ChannelIncant ON&amp;lt;/CODE&amp;gt;, which will CHANNEL an INCanted spell if you are in a stance higher than neutral.&lt;br /&gt;
** &#039;&#039;&#039;channel &amp;lt;spell number&amp;gt;&#039;&#039;&#039; - Channels the specified spell at the target. Requires a stance higher than neutral to have effect.&lt;br /&gt;
** &#039;&#039;&#039;&amp;lt;spell number&amp;gt;&#039;&#039;&#039; - Casts the specified spell using PREPARE and CAST.&lt;br /&gt;
** &#039;&#039;&#039;wand&#039;&#039;&#039; - Gets a wand from your specified container and WAVEs it at the target.&lt;br /&gt;
** &#039;&#039;&#039;wandolier &amp;lt;stance&amp;gt; &amp;lt;noreserve&amp;gt;&#039;&#039;&#039; - Similar to wand, but designed for wandoliers. Gets a wand from the fresh wand container and waves it; rubs the container if no wands are found. Default waves in offensive stance and automatically adds the wand to your RESERVE list. Use &amp;lt;CODE&amp;gt;wandolier defensive&amp;lt;/CODE&amp;gt; to wave in a different stance, and add &amp;lt;CODE&amp;gt;noreserve&amp;lt;/CODE&amp;gt; to skip the RESERVE step, e.g., &amp;lt;CODE&amp;gt;wandolier defensive noreserve&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;resonance &amp;lt;spell id&amp;gt; &amp;lt;spell id&amp;gt; ...&#039;&#039;&#039; - Casts Resonance Bolt, picking randomly among the listed spell numbers each time (never repeating the one it just used back-to-back). Example: &amp;lt;CODE&amp;gt;resonance 511 512 513&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;sacrifice&#039;&#039;&#039; - Performs a Voln Sacrifice on the current target&#039;s corpse for favor. Only attempts it when you have 2+ spirit, the ability is off cooldown, and the corpse appraises as suitable for sacrifice.&lt;br /&gt;
** &#039;&#039;&#039;fire&#039;&#039;&#039; - Gets ammunition from your specified container and FIREs at the target. Aims based on Archery aiming settings on the Attacking tab.&lt;br /&gt;
** &#039;&#039;&#039;aim &amp;lt;location&amp;gt;&#039;&#039;&#039; - Aims at the specified body location.&lt;br /&gt;
** &#039;&#039;&#039;ambush&#039;&#039;&#039; - Uses the AMBUSH verb to attack, aiming based on Attacking tab settings. Can also aim dynamically: &amp;lt;CODE&amp;gt;ambush head&amp;lt;/CODE&amp;gt; overrides default settings for that attack.&lt;br /&gt;
** &#039;&#039;&#039;wait &amp;lt;time&amp;gt;&#039;&#039;&#039; - Stance dances by going into Defensive stance for the specified time (in seconds). Bigshot will exit early if the target swings or casts, then evaluate the rest of the attack routine from your attack stance.&lt;br /&gt;
** &#039;&#039;&#039;mstrike&#039;&#039;&#039; - Executes MSTRIKE based on cooldown and stamina. Has its own options page under the Misc tab. Can also be used with UAC: &amp;lt;CODE&amp;gt;mstrike punch&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;berserk&#039;&#039;&#039; - Executes the BERSERK verb and waits until it fades.&lt;br /&gt;
** &#039;&#039;&#039;throw&#039;&#039;&#039; - Empties hands, attempts throw, then retrieves the items you emptied.&lt;br /&gt;
** &#039;&#039;&#039;weed/kweed&#039;&#039;&#039; - Casts 610 at the target. Using &amp;lt;CODE&amp;gt;kweed&amp;lt;/CODE&amp;gt; forces EVOKE 610, ensuring the damage version.&lt;br /&gt;
** &#039;&#039;&#039;curse &amp;lt;type&amp;gt;&#039;&#039;&#039; - Preps 715 and uses the specified curse type. Valid types: Clumsy, Weakness, Darkness, Itch, Hex, Pox, Nightmare, Star. Skips &amp;quot;curse star&amp;quot; if the buff is already active.&lt;br /&gt;
** &#039;&#039;&#039;unarmed &amp;lt;type&amp;gt;&#039;&#039;&#039; - Uses the Bigshot UAC routine. Valid types: punch, jab, kick, grapple. The routine uses appropriate attacks to rank up and applies MSTRIKE based on MSTRIKE options. Example: &amp;lt;CODE&amp;gt;unarmed jab&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;smite&#039;&#039;&#039; - Performs an [[Order of Voln]] [[Kai&#039;s_Smite|Smite]] on the target until successful.&lt;br /&gt;
** &#039;&#039;&#039;leech&#039;&#039;&#039; - Performs a [[Mana Leech (516)]] on the target if cooldown is under 15 minutes.&lt;br /&gt;
** &#039;&#039;&#039;script &amp;lt;script name&amp;gt;&#039;&#039;&#039; - Executes a specified custom attack script.&lt;br /&gt;
** &#039;&#039;&#039;hide&#039;&#039;&#039; - Repeatedly attempts to hide until successful or gives up.&lt;br /&gt;
** &#039;&#039;&#039;sleep &amp;lt;nostance&amp;gt;&#039;&#039;&#039; - Pauses Bigshot for the specified number of seconds. Example: &amp;lt;CODE&amp;gt;sleep 10&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;sleep 10 nostance&amp;lt;/CODE&amp;gt;. Useful for timed hunting, e.g., &amp;lt;CODE&amp;gt;410, sleep 15&amp;lt;/CODE&amp;gt; will E-wave, then wait 15 seconds before re-evaluating.&lt;br /&gt;
** &#039;&#039;&#039;stance &amp;lt;stance&amp;gt;&#039;&#039;&#039; - Changes stance. Example: &amp;lt;CODE&amp;gt;stance defensive&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
** &#039;&#039;&#039;nudgeweapons&#039;&#039;&#039; - Moves all weapons on the ground to an adjacent room. Useful for casting Implosion (720).&lt;br /&gt;
** &#039;&#039;&#039;force &amp;lt;cmd&amp;gt; until &amp;lt;endroll&amp;gt;&#039;&#039;&#039; - Repeats a command until a desired endroll is achieved. Example: &amp;lt;CODE&amp;gt;force incant 1002 until 101&amp;lt;/CODE&amp;gt;. Only works for standard swings/spells/CMANs.&lt;br /&gt;
** &#039;&#039;&#039;eachtarget &amp;lt;cmd&amp;gt;&#039;&#039;&#039; - Issues the command against each valid target in the room.&lt;br /&gt;
** &#039;&#039;&#039;efury &amp;lt;fire|cold&amp;gt;&#039;&#039;&#039; - Casts Earthen Fury (917) on the target and waits for the DOT to end or 12 seconds to pass.&lt;br /&gt;
** &#039;&#039;&#039;caststop &amp;lt;spell&amp;gt;&#039;&#039;&#039; - Casts the spell and immediately stops it after casting.&lt;br /&gt;
** &#039;&#039;&#039;wield &amp;lt;noun&amp;gt; &amp;lt;left|right&amp;gt;&#039;&#039;&#039; - Wields a new item in the specified hand and stores the current item.&lt;br /&gt;
** &#039;&#039;&#039;store&#039;&#039;&#039; - Stores items in left, right, or both hands (only if something is in those hands).&lt;br /&gt;
** &#039;&#039;&#039;tether &amp;lt;recast&amp;gt;&#039;&#039;&#039; - Casts 706 with built-in wait logic. The optional &amp;lt;CODE&amp;gt;recast&amp;lt;/CODE&amp;gt; flag will auto-recast 706 on creature death and transfer DOTs to a new target.&lt;br /&gt;
** &#039;&#039;&#039;unravel &amp;lt;spell&amp;gt;&#039;&#039;&#039; - Casts 1013 (Song of Unravelling). Optionally specify a spell number to target against the creature.&lt;br /&gt;
** &#039;&#039;&#039;depress&#039;&#039;&#039; - Casts 1015 (Song of Depression) with built-in logic.&lt;br /&gt;
** &#039;&#039;&#039;phase&#039;&#039;&#039; - Force-casts 704 (Phase) using PREP/CAST, required for NPC targeting to convert non-corporeal to corporeal undead.&lt;br /&gt;
&lt;br /&gt;
===Additional Command Sets===&lt;br /&gt;
* &#039;&#039;&#039;hunting commands (b) through (j)&#039;&#039;&#039; - Additional attack routines tied to creature flags. When you flag a creature in your valid targets (e.g., &amp;lt;CODE&amp;gt;niirsha(b)&amp;lt;/CODE&amp;gt;), Bigshot uses the matching command set. This allows different attack strategies for different creature types.&lt;br /&gt;
* &#039;&#039;&#039;fried hunting commands&#039;&#039;&#039; - Commands executed specifically when your mind is fried. Useful in group hunting where you still want to contribute.&lt;br /&gt;
* &#039;&#039;&#039;quick hunting commands&#039;&#039;&#039; - Commands executed when using &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;valid targets&#039;&#039;&#039; - The monsters you are hunting. Bigshot works best with creature NOUNs (e.g., &amp;lt;CODE&amp;gt;ogre&amp;lt;/CODE&amp;gt; instead of &amp;lt;CODE&amp;gt;a large ogre&amp;lt;/CODE&amp;gt;). Use commas to separate multiple targets: &amp;lt;CODE&amp;gt;manticore, thrak&amp;lt;/CODE&amp;gt;. If left blank, Bigshot will target everything in the room. Supports regex for advanced matching.&lt;br /&gt;
* &#039;&#039;&#039;quickhunt targets&#039;&#039;&#039; - Designated targets for the &amp;lt;CODE&amp;gt;;bigshot quick&amp;lt;/CODE&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
===PSM3 Integration===&lt;br /&gt;
Bigshot supports weapon/shield skills and warcries. Assaults wait until they finish or are interrupted. The following are recognized PSM3 commands:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assaults&#039;&#039;&#039; (wait until completed/interrupted):&lt;br /&gt;
* barrage, flurry, fury, gthrusts, pummel, thrash&lt;br /&gt;
* fury can specify a default attack: &amp;lt;CODE&amp;gt;fury punch&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;fury kick&amp;lt;/CODE&amp;gt; (defaults to jab)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setups&#039;&#039;&#039; (execute on cooldown — pair with prone/stun/root checks):&lt;br /&gt;
* charge, cripple, dizzyingswing, pindown, twinhammer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AOE&#039;&#039;&#039; (execute on cooldown — limit with mob checks):&lt;br /&gt;
* clash, cyclone, pulverize, volley, wblade, whirlwind&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warcries:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;shout&#039;&#039;&#039; - Performs warcry Shout. Must use a command check or it will shout every loop: &amp;lt;CODE&amp;gt;shout(!shout)&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;shout(buff10 s25)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;yowlp&#039;&#039;&#039; - Performs warcry Yowlp. Must use a command check: &amp;lt;CODE&amp;gt;yowlp(!yowlp)&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;yowlp(buff10 s10)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;holler&#039;&#039;&#039; - Performs warcry Holler, taunting all mobs. Example: &amp;lt;CODE&amp;gt;holler(s60)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;bellow, growl, cry&#039;&#039;&#039; - Offensive warcries. Use with &amp;lt;CODE&amp;gt;target&amp;lt;/CODE&amp;gt; for single target or &amp;lt;CODE&amp;gt;all&amp;lt;/CODE&amp;gt; for AOE.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shield Skills:&#039;&#039;&#039;&lt;br /&gt;
* shield bash, shield charge, shield pin, shield push, shield strike, shield trample, shield throw&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Combat Maneuvers:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;surge&#039;&#039;&#039; - Keeps Surge of Strength active. &amp;lt;CODE&amp;gt;surge&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;surge(surge)&amp;lt;/CODE&amp;gt; casts even on cooldown; &amp;lt;CODE&amp;gt;surge(!surge)&amp;lt;/CODE&amp;gt; only casts when not on cooldown.&lt;br /&gt;
* &#039;&#039;&#039;bearhug, bullrush, coupdegrace, cpress, cutthroat, dirtkick, disarm, dislodge, divert, eviscerate, exsanguinate, eyepoke, feint, footstomp, garrote, gkick, hamstring, haymaker, headbutt, kifocus, kneebash, leapattack, mblow, mug, nosetweak, sattack, sblow, scleave, shroud, spunch, sthieve, subdue, sunder, sweep, swiftkick, tackle, templeshot, throatchop, trip, truestrike, vaultkick&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;dislodge &amp;lt;location&amp;gt;&#039;&#039;&#039; - Dislodge from the specified location: &amp;lt;CODE&amp;gt;dislodge eye neck&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;stomp&#039;&#039;&#039; - Performs a stomp attack. Channels 909 if not already active. You can also add 909 to the society abilities field to keep it active.&lt;br /&gt;
* &#039;&#039;&#039;dhurl&#039;&#039;&#039; - Hurls your weapon and recovers it. Works with weapon bonding auto-return and the RECOVER verb.&lt;br /&gt;
* &#039;&#039;&#039;assume &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt;&#039;&#039;&#039; - Cycles between two aspects, or evokes a single aspect. Also works in the society abilities box: &amp;lt;CODE&amp;gt;650 &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt;&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;briar &amp;lt;weapon&amp;gt;&#039;&#039;&#039; - Activates the AS buff on briar weapons. Tracks weapon charge and uses on cooldown.&lt;br /&gt;
* &#039;&#039;&#039;stance perfection&#039;&#039;&#039; - Put 10, 20, 30, etc. in your attack stance box to take advantage of stance perfection.&lt;br /&gt;
* &#039;&#039;&#039;chastise, excoriate&#039;&#039;&#039; - Performs the FEAT if available and affordable.&lt;br /&gt;
&lt;br /&gt;
===Gemstone Activation===&lt;br /&gt;
To use a gemstone-activated ability, use &amp;lt;CODE&amp;gt;jewel &amp;lt;mnemonic&amp;gt;&amp;lt;/CODE&amp;gt;. Bigshot automatically avoids usage if the ability is on cooldown. Supported gemstone mnemonics:&lt;br /&gt;
* bloodboil - Blood Boil&lt;br /&gt;
* spellblade - Spellblade&#039;s Fury&lt;br /&gt;
* arcascend - Arcanist&#039;s Ascendancy&lt;br /&gt;
* geospite - Geomancer&#039;s Spite&lt;br /&gt;
* forceofwill - Force of Will&lt;br /&gt;
* arcaneintensity - Arcane Intensity&lt;br /&gt;
* arcaneopus - Arcane Opus&lt;br /&gt;
* bloodsiphon - Blood Siphon&lt;br /&gt;
* bloodwell - Blood Wellspring&lt;br /&gt;
* epossess - Evanescent Possession&lt;br /&gt;
* manawellspring - Mana Wellspring&lt;br /&gt;
* spiritwell - Spirit Wellspring&lt;br /&gt;
* stamwell - Stamina Wellspring&lt;br /&gt;
* terrortribute - Terror&#039;s Tribute&lt;br /&gt;
* arcblade - Arcanist&#039;s Blade&lt;br /&gt;
* arcwill - Arcanist&#039;s Will&lt;br /&gt;
* imaerabalm - Imaera&#039;s Balm&lt;br /&gt;
* reckless - Reckless Precision&lt;br /&gt;
* unearthchains - Unearthly Chains&lt;br /&gt;
* witchhunt - Witchhunter&#039;s Ascendancy&lt;br /&gt;
* manashield - Mana Shield&lt;br /&gt;
* arcaneaegis - Arcane Aegis&lt;br /&gt;
&lt;br /&gt;
You may need to run &#039;&#039;&#039;SKILLS FULL&#039;&#039;&#039;, &#039;&#039;&#039;CMAN INFO&#039;&#039;&#039;, &#039;&#039;&#039;WEAPON INFO&#039;&#039;&#039;, or &#039;&#039;&#039;SHIELD INFO&#039;&#039;&#039; if you have recently changed training or if skills are being skipped.&lt;br /&gt;
&lt;br /&gt;
===Additional Options===&lt;br /&gt;
* &#039;&#039;&#039;haste&#039;&#039;&#039; or &#039;&#039;&#039;506&#039;&#039;&#039; - Placing this in front of any command casts 506 (Haste) before executing the command. Only casts if Haste is not currently active or has less than 3 seconds remaining.&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 10, haste kill (x3)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;slayer&#039;&#039;&#039; or &#039;&#039;&#039;240&#039;&#039;&#039; - Placing this in front of any command casts 240 before executing. Will not recast if already active.&lt;br /&gt;
&amp;lt;PRE&amp;gt;slayer 302 (x99)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Command Checks===&lt;br /&gt;
Command checks let you add conditions to any command. The format is:&lt;br /&gt;
&amp;lt;CODE&amp;gt;COMMAND (CHECKS)(REPETITIONS)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;CODE&amp;gt;hamstring (mob1 prone)(x2)&amp;lt;/CODE&amp;gt;. The (x#) repetition must be in a separate set of parentheses. Note that (xx) is shorthand for (x5), not unlimited.&lt;br /&gt;
&lt;br /&gt;
Checks can be combined inside a single set of parentheses with spaces between them. Example: &amp;lt;CODE&amp;gt;kill(m20 s5 e20)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each check also has an inverse — prefix with &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to negate. Example: &amp;lt;CODE&amp;gt;kill(!m20 !s5 !e20)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resource and Status Checks====&lt;br /&gt;
* &#039;&#039;&#039;s#&#039;&#039;&#039; - Requires at least # stamina.&lt;br /&gt;
* &#039;&#039;&#039;m#&#039;&#039;&#039; - Requires at least # mana.&lt;br /&gt;
* &#039;&#039;&#039;h#&#039;&#039;&#039; - Requires health to be at or above #% (percentage, not fixed).&lt;br /&gt;
* &#039;&#039;&#039;v#&#039;&#039;&#039; - Requires at least # spirit.&lt;br /&gt;
* &#039;&#039;&#039;e#&#039;&#039;&#039; - Requires encumbrance percentage to be at or below #.&lt;br /&gt;
* &#039;&#039;&#039;essence#&#039;&#039;&#039; - Requires at least # Shadow Essence (Sorcerer).&lt;br /&gt;
* &#039;&#039;&#039;thp#&#039;&#039;&#039; - &#039;&#039;&#039;(New in v5.16.0)&#039;&#039;&#039; Requires the &#039;&#039;target&#039;s&#039;&#039; health to be at or below #% (this is the target&#039;s health, unlike h# above which checks your own). &amp;lt;CODE&amp;gt;(!thp#)&amp;lt;/CODE&amp;gt; requires the target&#039;s health to be above #%. If Bigshot can&#039;t determine the target&#039;s health, the command is skipped.&lt;br /&gt;
&lt;br /&gt;
====Creature Checks====&lt;br /&gt;
* &#039;&#039;&#039;mob#&#039;&#039;&#039; - Requires at least # NPCs in the room. Only useful for 2 or more creatures.&lt;br /&gt;
&amp;lt;PRE&amp;gt;To further clarify the mob# implementation:&lt;br /&gt;
1 mob, mob2: 1 IS less than 2 — attack does NOT proceed.&lt;br /&gt;
2 mobs, mob2: 2 IS NOT less than 2 — attack CAN proceed.&lt;br /&gt;
1 mob, !mob2: 1 IS NOT more than 2 — attack CAN proceed.&lt;br /&gt;
2 mobs, !mob2: 2 IS NOT more than 2 — attack CAN proceed.&lt;br /&gt;
3 mobs, !mob2: 3 IS more than 2 — attack does NOT proceed.&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;valid#&#039;&#039;&#039; - Like mob#, but only counts valid targets you are actively targeting in current settings.&lt;br /&gt;
* &#039;&#039;&#039;tier#&#039;&#039;&#039; - Checks your current UAC tier (1, 2, 3). Performs the command if your tier is equal to or greater than #. &amp;lt;CODE&amp;gt;(!tier3)&amp;lt;/CODE&amp;gt; skips the command at tier 3.&lt;br /&gt;
* &#039;&#039;&#039;prone&#039;&#039;&#039; - Checks that the target is NOT sleeping, webbed, stunned, kneeling, sitting, lying down, prone, frozen, or held in place. Performs the command if none of those apply.&lt;br /&gt;
* &#039;&#039;&#039;frozen&#039;&#039;&#039; - Similar to prone but broken out separately. Useful for archers against non-corporeal creatures that deflect ranged attacks. Corporeal creatures that are stunned will break this check.&lt;br /&gt;
* &#039;&#039;&#039;undead&#039;&#039;&#039; - Performs the command if the target is undead.&lt;br /&gt;
* &#039;&#039;&#039;flying&#039;&#039;&#039; - Performs the command if the target is flying.&lt;br /&gt;
* &#039;&#039;&#039;rooted&#039;&#039;&#039; - Performs the command if the target is rooted.&lt;br /&gt;
* &#039;&#039;&#039;noncorporeal&#039;&#039;&#039; - Performs the command if the NPC is [[noncorporeal|non-corporeal]] undead.&lt;br /&gt;
* &#039;&#039;&#039;ancient&#039;&#039;&#039; - Checks for grizzled/ancient creatures.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(New in v5.16.0)&#039;&#039;&#039; The following checks read the target&#039;s live status directly from the game feed, so they can be more precise than the umbrella &#039;&#039;&#039;prone&#039;&#039;&#039; check above. Each performs the command only when the target IS in that state (add &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to require that it is NOT):&lt;br /&gt;
* &#039;&#039;&#039;calm&#039;&#039;&#039; - Target is calmed.&lt;br /&gt;
* &#039;&#039;&#039;disoriented&#039;&#039;&#039; - Target is disoriented.&lt;br /&gt;
* &#039;&#039;&#039;hovering&#039;&#039;&#039; - Target is hovering.&lt;br /&gt;
* &#039;&#039;&#039;immobilized&#039;&#039;&#039; - Target is immobilized (note: this checks the opposite condition of the existing &#039;&#039;&#039;frozen&#039;&#039;&#039; check above, which performs its command only when the target is NOT frozen).&lt;br /&gt;
* &#039;&#039;&#039;kneeling&#039;&#039;&#039; - Target is kneeling.&lt;br /&gt;
* &#039;&#039;&#039;sitting&#039;&#039;&#039; - Target is sitting.&lt;br /&gt;
* &#039;&#039;&#039;sleeping&#039;&#039;&#039; - Target is sleeping.&lt;br /&gt;
* &#039;&#039;&#039;stunned&#039;&#039;&#039; - Target is stunned.&lt;br /&gt;
* &#039;&#039;&#039;webbed&#039;&#039;&#039; - Target is webbed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(New in v5.16.0)&#039;&#039;&#039; Creature type/classification checks, also read from the game feed. Each performs the command only when the target carries that classification (add &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to require that it does not):&lt;br /&gt;
* &#039;&#039;&#039;mount&#039;&#039;&#039; - Target is a mount.&lt;br /&gt;
* &#039;&#039;&#039;rider&#039;&#039;&#039; - Target is riding a mount.&lt;br /&gt;
* &#039;&#039;&#039;mini_boss&#039;&#039;&#039; - Target is flagged as a mini-boss.&lt;br /&gt;
* &#039;&#039;&#039;ascension_boss&#039;&#039;&#039; - Target is flagged as an Ascension boss.&lt;br /&gt;
* &#039;&#039;&#039;ascended&#039;&#039;&#039; - Target carries the &amp;quot;ascended&amp;quot; classification.&lt;br /&gt;
* &#039;&#039;&#039;challenging&#039;&#039;&#039; - Target is flagged as a tougher &amp;quot;challenging&amp;quot; variant.&lt;br /&gt;
* &#039;&#039;&#039;inferior&#039;&#039;&#039; - Target is flagged as a weaker &amp;quot;inferior&amp;quot; variant.&lt;br /&gt;
* &#039;&#039;&#039;disengaged&#039;&#039;&#039; - Target has disengaged from combat.&lt;br /&gt;
* &#039;&#039;&#039;sympathetic&#039;&#039;&#039; - Target is flagged as sympathetic (non-hostile).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(New in v5.16.0)&#039;&#039;&#039; Wound and critical-hit checks:&lt;br /&gt;
* &#039;&#039;&#039;wounded&#039;&#039;&#039; - Performs the command only when the target&#039;s health is at or below 25% (a fixed threshold; use &#039;&#039;&#039;thp#&#039;&#039;&#039; above for a custom percentage). &amp;lt;CODE&amp;gt;(!wounded)&amp;lt;/CODE&amp;gt; requires health above 25%.&lt;br /&gt;
* &#039;&#039;&#039;fatalcrit&#039;&#039;&#039; - Performs the command only when the target has already suffered a fatal critical hit. &amp;lt;CODE&amp;gt;(!fatalcrit)&amp;lt;/CODE&amp;gt; requires that it has not.&lt;br /&gt;
* &#039;&#039;&#039;smote&#039;&#039;&#039; - Performs the command only when the target has already been hit with Voln Smite. &amp;lt;CODE&amp;gt;(!smote)&amp;lt;/CODE&amp;gt; requires that it has not been.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(New in v5.16.0)&#039;&#039;&#039; Target-specific UCS positioning checks — these read the &#039;&#039;target&#039;s&#039;&#039; individual unarmed-combat positioning, unlike the &#039;&#039;&#039;tier#&#039;&#039;&#039; checks above which track your own overall UAC tier. Each performs the command only when your positioning against &#039;&#039;that specific target&#039;&#039; matches (add &amp;lt;CODE&amp;gt;!&amp;lt;/CODE&amp;gt; to require that it does not):&lt;br /&gt;
* &#039;&#039;&#039;ucsdecent&#039;&#039;&#039; - Positioning is &amp;quot;decent&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ucsgood&#039;&#039;&#039; - Positioning is &amp;quot;good&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ucsexcellent&#039;&#039;&#039; - Positioning is &amp;quot;excellent&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ucstierup&#039;&#039;&#039; - A tier-up follow-up is available.&lt;br /&gt;
&lt;br /&gt;
====Self Checks====&lt;br /&gt;
* &#039;&#039;&#039;hidden&#039;&#039;&#039; - Performs the command if you are currently hidden.&lt;br /&gt;
* &#039;&#039;&#039;poison&#039;&#039;&#039; - Performs the command if you are currently poisoned.&lt;br /&gt;
* &#039;&#039;&#039;disease&#039;&#039;&#039; - Performs the command if you are currently diseased.&lt;br /&gt;
* &#039;&#039;&#039;pcs&#039;&#039;&#039; - Performs the command if there are PCs in the room that are not in your group.&lt;br /&gt;
* &#039;&#039;&#039;outside&#039;&#039;&#039; - Performs the command if the room is outdoors.&lt;br /&gt;
* &#039;&#039;&#039;splashy&#039;&#039;&#039; - Checks if the room is &amp;quot;splashy&amp;quot; (wet) via Room.tags. Useful for avoiding lightning attacks in wet rooms.&lt;br /&gt;
* &#039;&#039;&#039;k#&#039;&#039;&#039; - Performs the command only while you are kneeling. The number is required by the syntax but its value doesn&#039;t matter (e.g. &amp;lt;CODE&amp;gt;k1&amp;lt;/CODE&amp;gt;). &amp;lt;CODE&amp;gt;(!k#)&amp;lt;/CODE&amp;gt; performs the command only while you are NOT kneeling.&lt;br /&gt;
&lt;br /&gt;
====Timing Checks====&lt;br /&gt;
* &#039;&#039;&#039;once&#039;&#039;&#039; - Performs the command once per target. Resets on room change.&lt;br /&gt;
* &#039;&#039;&#039;room&#039;&#039;&#039; - Performs the command once per room. Resets on room change.&lt;br /&gt;
* &#039;&#039;&#039;repeatdelay#&#039;&#039;&#039; - &#039;&#039;&#039;(New in v5.15.0)&#039;&#039;&#039; Throttles the command to once every # seconds per room, regardless of which target it&#039;s used against. Resets on room change. Example: &amp;lt;CODE&amp;gt;holler(repeatdelay60)&amp;lt;/CODE&amp;gt; will not Holler again for 60 seconds after it last went off in that room.&lt;br /&gt;
&lt;br /&gt;
====Buff Checks====&lt;br /&gt;
* &#039;&#039;&#039;barrage&#039;&#039;&#039; - Checks for the Enhanced Dexterity buff from Barrage.&lt;br /&gt;
* &#039;&#039;&#039;fury&#039;&#039;&#039; - Checks for the Enhanced Constitution buff from Fury.&lt;br /&gt;
* &#039;&#039;&#039;flurry&#039;&#039;&#039; - Checks for the Slashing Strikes buff from Flurry.&lt;br /&gt;
* &#039;&#039;&#039;pummel&#039;&#039;&#039; - Checks for the Concussive Blows buff from Pummel.&lt;br /&gt;
* &#039;&#039;&#039;thrash&#039;&#039;&#039; - Checks for the Forceful Blows buff from Thrash.&lt;br /&gt;
* &#039;&#039;&#039;vigor&#039;&#039;&#039; - Checks for the Tangleweed Vigor buff.&lt;br /&gt;
* &#039;&#039;&#039;reflex&#039;&#039;&#039; - Checks for the Arcane Reflex buff from Nature&#039;s Touch.&lt;br /&gt;
* &#039;&#039;&#039;tailwind&#039;&#039;&#039; - Checks for the Tailwind buff from Breeze.&lt;br /&gt;
* &#039;&#039;&#039;shout&#039;&#039;&#039; - Checks for the Empowered buff from Shout.&lt;br /&gt;
* &#039;&#039;&#039;yowlp&#039;&#039;&#039; - Checks for Yertie&#039;s Yowlp buff from Yowlp.&lt;br /&gt;
* &#039;&#039;&#039;holler&#039;&#039;&#039; - Checks for Horland&#039;s Holler buff from Holler.&lt;br /&gt;
* &#039;&#039;&#039;voidweaver&#039;&#039;&#039; - Checks for the Voidweaver buff from Implosion (720).&lt;br /&gt;
* &#039;&#039;&#039;justice&#039;&#039;&#039; - Checks for charges of Swift Justice. &amp;lt;CODE&amp;gt;(justice)&amp;lt;/CODE&amp;gt; acts with charges; &amp;lt;CODE&amp;gt;(!justice)&amp;lt;/CODE&amp;gt; acts with no charges.&lt;br /&gt;
* &#039;&#039;&#039;surge&#039;&#039;&#039; - Checks for Surge of Strength buff.&lt;br /&gt;
* &#039;&#039;&#039;rebuke&#039;&#039;&#039; - Checks for Righteous Rebuke buff.&lt;br /&gt;
* &#039;&#039;&#039;scourge&#039;&#039;&#039; - Checks for Ardor of the Scourge buff.&lt;br /&gt;
* &#039;&#039;&#039;momentum&#039;&#039;&#039; - Checks for Glorious Momentum buff.&lt;br /&gt;
* &#039;&#039;&#039;coupdegrace&#039;&#039;&#039; - Checks for the Empowered buff from Coup de Grace.&lt;br /&gt;
* &#039;&#039;&#039;animate&#039;&#039;&#039; - Checks for whether you have an animate present.&lt;br /&gt;
* &#039;&#039;&#039;empowered#&#039;&#039;&#039; - &#039;&#039;&#039;(New in v5.16.0)&#039;&#039;&#039; Skips the command if an Empowered buff of +# or greater is already active, so a strong Coup de Grace bonus can&#039;t get overwritten by a weaker recast. &amp;lt;CODE&amp;gt;(!empowered#)&amp;lt;/CODE&amp;gt; skips unless already at +# or greater.&lt;br /&gt;
* &#039;&#039;&#039;buffXX&#039;&#039;&#039; - Fires the ability when the buff duration is &amp;lt;= XX seconds remaining. Supported for barrage, bearhug, coupdegrace, flurry, fury, garrote, pummel, shout, thrash, weed/kweed, yowlp. (Fixed in v5.16.0 — this check previously did nothing due to a bug.)&lt;br /&gt;
* &#039;&#039;&#039;censer&#039;&#039;&#039; - Attempts to cast 320 before your command, checking mana and cooldown. Examples: &amp;lt;CODE&amp;gt;309(censer)&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;335(censer mob3)&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;attack(censer)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
** If the command is a spell, censer only casts if you have mana for both 320 and the spell.&lt;br /&gt;
** If the command is not a spell, censer only checks you have enough mana for 320.&lt;br /&gt;
&lt;br /&gt;
====Effects Checks====&lt;br /&gt;
* &#039;&#039;&#039;ES&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Spells effect is active&lt;br /&gt;
* &#039;&#039;&#039;EB&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Buffs effect is active&lt;br /&gt;
* &#039;&#039;&#039;EC&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Cooldowns effect is active&lt;br /&gt;
* &#039;&#039;&#039;ED&amp;quot;Effect to Track&amp;quot;&#039;&#039;&#039; - Checks if the Effects::Debuffs effect is active&lt;br /&gt;
&lt;br /&gt;
===Example Attack Routines===&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 10, kill (x3)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Waits 10 seconds for the monster to swing or cast, then counter-attacks from your specified attack stance. Swings three times, then goes back to defensive and waits again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 15, incant 505, incant 903 (xx)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Waits 15 seconds, then INCants 505 (Hand of Tonis) to knock down or stun the target. Follows up with repeated casts of 903 (Minor Water) until the target is dead (up to 5 times).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;stance defensive and incant 1615, kill (x100)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Casts 1615 (Divine Strike) from defensive stance, then uses KILL continuously until the target is dead or 100 swings (whichever comes first).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;force feint until 101, kill (x2)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Uses FEINT against the target until a successful endroll, then hits twice before trying FEINT again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;stance defensive and hide, ambush left leg&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Hides from defensive stance, then ambushes the target&#039;s left leg. Repeats (hides again) after roundtime.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;incant 720(m50), incant 708, incant 702 channel(xx)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Casts 720 (Implosion) if you have 50+ mana, then INCants 708 (Limb Disruption) at the default aim location, then channels 702 (Mana Disruption) up to 5 times or until dead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;prep 708, cast at left leg / prep 708 channel at left leg, incant 719 (m50)(x1), incant 702 (xx)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Prepares 708 and CASTs at the left leg. The second variant prepares and CHANNELs at the left leg. Then casts 719 (Dark Catalyst) once if 50+ mana. Finally, INCants 702 until the creature is dead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 30, unarmed punch&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Waits 30 seconds or until the target attacks, then begins UAC combat using Punch to tier up.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;shield charge (s15 prone), ambush, mstrike&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Shield charges the target if you have 15+ stamina and the target is NOT prone. Then ambushes based on Attacking tab settings (cycling through configured aim locations). Then MSTRIKEs — focused if below the creature threshold, unfocused if at or above it. Use &amp;lt;CODE&amp;gt;mstrike target&amp;lt;/CODE&amp;gt; to always focus, or set unfocused threshold very high.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;bellow all, wblade(mob3), flurry(!flurry), attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
AOE bellows, then Whirling Blade if 3+ targets. Flurries if the Slashing Strikes buff is not active. Falls back to basic attack.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;holler, shield throw(mob3), flurry, thrash, attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Taunts with Holler, Shield Throws if 3+ targets, Flurries on cooldown, Thrashes on cooldown, and attacks as a fallback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;shroud(s35 !hidden mob2), divert (s25 hidden mob2), ambush(hidden), flurry, attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
If 2+ mobs: hides with Shroud (35 stamina, not already hidden), then Diverts one target (25 stamina, must be hidden). Ambushes if hidden, Flurries on cooldown, attacks as fallback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;surge(!surge), bullrush, bearhug, pummel, attack&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Keeps Surge active (casting only when not on cooldown). Bullrush to apply vulnerable, Bearhug (faster on vulnerable targets), Pummel on cooldown, attack as fallback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;surge, shout(buff10), shield strike, pummel(buff60), attack(x2)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Keeps Surge active (casting even during cooldown for 60 stamina). Shouts when less than 11 seconds remain on the buff. Shield Strikes, Pummels once per minute, finishes with 2 attacks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;pindown(mob4), volley(mob2), weed(!vigor !reflex), barrage(!barrage), incant 616 (m16 reflex), fire&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Pin Down if 4+ targets, Volley if 2+ targets. Tangleweed if missing Vigor and Reflex buffs. Barrage if missing Enhanced Dexterity. Spike Thorn (616) if 16+ mana and Arcane Reflex is active. Fire as fallback.&lt;br /&gt;
&lt;br /&gt;
===Hunting Target Examples===&lt;br /&gt;
All examples below work for both &amp;quot;valid targets&amp;quot; and &amp;quot;quickhunt targets.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A simple target list using default commands (a) for each creature:&lt;br /&gt;
&amp;lt;PRE&amp;gt;crazed zombie, niirsha, sacristan spirit&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using different command sets per creature — (a) for zombies and spirits, (b) for niirsha:&lt;br /&gt;
&amp;lt;PRE&amp;gt;crazed zombie(a), niirsha(b), sacristan spirit(a)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Including [[:Category:Boss creatures|Boss Creature]] variations as valid targets using regex:&lt;br /&gt;
&amp;lt;PRE&amp;gt;(?:adroit |afflicted |apt |barbed |belligerent |blurry |canny |combative |dazzling |deft |diseased |drab |dreary |ethereal |flashy |flexile |flickering |flinty |frenzied |ghastly |ghostly |gleaming |glittering |glorious |glowing |grotesque |hardy |illustrious |indistinct |keen |lanky |luminous |lustrous |muculent |nebulous |oozing |pestilent |radiant |raging |ready |resolute |robust |rune-covered |shadowy |shielded |shifting |shimmering |shining |sickly green |sinuous |slimy |sparkling |spindly |spiny |stalwart |steadfast |stout |tattooed |tenebrous |tough |twinkling |unflinching |unyielding |wavering |wispy )?crazed zombie, niirsha, sacristan spirit&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advanced regex for Grimswarm hunting with different commands per class:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:dissembler|sorcerer|sorceress|warlock|witch)(a)&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:barbarian|blackguard|fighter|marauder|soldier|warrior)(b)&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:adept|archmage|elementalist|mage|warmage)(c)&lt;br /&gt;
(?:seasoned |grizzled |battle-scarred |weathered |veteran |hulking |haggard )?Grimswarm (?:giant|troll|orc) (?:hunter|huntmaster|huntmistress|ranger)(d)&lt;br /&gt;
(?:seasoned )?(?:dwarven|elven|halfling|erithian|human|giantman|half-krolvin|gnomish|half-elven) (?:thief|rogue|bandit|mugger|outlaw|highwayman|marauder|brigand|thug|robber)(e)&lt;br /&gt;
(?:shopkeeper|innkeeper|bartender|patrol leader|bandit lord|bandit lady|gypsy queen|gypsy king|guard captain|wall captain|drill sergeant|stable hostler|dungeon master|master torturer|butler|cook|&lt;br /&gt;
knight captain|foreign dignitary|royal prince|royal princess|royal jester|royal emperor|royal empress)(f)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To target everything in the room: &amp;lt;CODE&amp;gt;(?:.*)&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boon Creatures Tab==&lt;br /&gt;
Boss creatures (also called the Boss Creature System) upgrades newly created creatures into bosses, minibosses, or packs. Upgraded creatures have their level and basic stats boosted, and are granted a number of special abilities called &#039;&#039;&#039;boons&#039;&#039;&#039;, which are denoted by a special adjective in the creature&#039;s name. Players have alternatively called these &amp;quot;glam critters,&amp;quot; &amp;quot;gifted creatures,&amp;quot; or &amp;quot;boosted critters.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Additional details are available on the GemStone Wiki: [https://gswiki.play.net/Category:Boss_creatures Category:Boss creatures]&lt;br /&gt;
&lt;br /&gt;
The Boon Creatures tab provides granular control over how Bigshot handles each boon ability. Bigshot uses the ASSESS verb to identify which boons a creature has, then checks your configuration to decide how to respond.&lt;br /&gt;
&lt;br /&gt;
===How It Works===&lt;br /&gt;
For each boon ability, you can choose one of three actions:&lt;br /&gt;
* &#039;&#039;&#039;Common&#039;&#039;&#039; - Treat as a normal target and fight it. Uses your hunting commands to kill. Still requires proper valid target matching to engage. This is also the default behavior if no selection is made.&lt;br /&gt;
* &#039;&#039;&#039;Ignore&#039;&#039;&#039; - Skip this creature entirely; do not engage it.&lt;br /&gt;
* &#039;&#039;&#039;Flee&#039;&#039;&#039; - Immediately flee from the room when this boon type is detected.&lt;br /&gt;
&lt;br /&gt;
===Master Toggle===&lt;br /&gt;
At the top of the tab is an &#039;&#039;&#039;All Boon Creatures&#039;&#039;&#039; section with Common, Ignore, and Flee checkboxes. These act as master toggles — checking one will set every individual boon ability across all groups to that action. If all individual items are already set to the same action and you uncheck the &amp;quot;All&amp;quot; toggle, everything gets unchecked.&lt;br /&gt;
&lt;br /&gt;
===Boon Groups===&lt;br /&gt;
The individual boon abilities are organized into four collapsible groups, each with its own group-level toggle row (&amp;quot;Entire Group&amp;quot;) and individual per-ability rows:&lt;br /&gt;
&lt;br /&gt;
====Immunity====&lt;br /&gt;
Boons that make the creature resistant or immune to certain damage types or effects.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Crit Death Immune || resolute, unflinching || Similar to constructs or golems&lt;br /&gt;
|-&lt;br /&gt;
| Damage Padding || flinty, tough ||&lt;br /&gt;
|-&lt;br /&gt;
| Elem Negation || sparkling, shining || Absorbs elemental magic attacks&lt;br /&gt;
|-&lt;br /&gt;
| Magic Resistance || rune-covered, tattooed || Reduces magic damage by 50%&lt;br /&gt;
|-&lt;br /&gt;
| Physical Negation || indistinct, nebulous || Physical damage resist shield&lt;br /&gt;
|-&lt;br /&gt;
| Stun Immune || steadfast, unyielding ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Offensive====&lt;br /&gt;
Boons that enhance the creature&#039;s offensive capabilities.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Boosted Offense || combative, belligerent ||&lt;br /&gt;
|-&lt;br /&gt;
| Cheat Death || glorious, illustrious || Raises self after death&lt;br /&gt;
|-&lt;br /&gt;
| Counter Attack || apt, ready || SMR counter-attack&lt;br /&gt;
|-&lt;br /&gt;
| Crit Weighting || shimmering, gleaming ||&lt;br /&gt;
|-&lt;br /&gt;
| Dmg Weighting || barbed, spiny ||&lt;br /&gt;
|-&lt;br /&gt;
| Dispelling || dazzling, flashy || Spirit Dispel (119) and Elem Dispel (417)&lt;br /&gt;
|-&lt;br /&gt;
| Elemental Flares || glittering ||&lt;br /&gt;
|-&lt;br /&gt;
| Frenzy || raging, frenzied ||&lt;br /&gt;
|-&lt;br /&gt;
| Mind Blast || canny, keen ||&lt;br /&gt;
|-&lt;br /&gt;
| Parting Shot || dreary, drab || Deals damage one last time upon death&lt;br /&gt;
|-&lt;br /&gt;
| Poisonous || sickly green, oozing || SMR poison gas cloud&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Defensive====&lt;br /&gt;
Boons that enhance the creature&#039;s defensive capabilities.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Blink || flickering, wavering || Temporary phase ability&lt;br /&gt;
|-&lt;br /&gt;
| Bolt Shield || shielded ||&lt;br /&gt;
|-&lt;br /&gt;
| Boosted Defense || sinuous, flexile || High damage padding (+12 CER)&lt;br /&gt;
|-&lt;br /&gt;
| Confuse || blurry, shifting || May give hard RT for casting at them&lt;br /&gt;
|-&lt;br /&gt;
| Crit Padding || stout, hardy ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Stats / Misc====&lt;br /&gt;
Boons that affect the creature&#039;s stats, resistances, or grant miscellaneous special abilities.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boon !! Adjectives !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Boosted HP || robust, stalwart ||&lt;br /&gt;
|-&lt;br /&gt;
| Boosted Mana || luminous, lustrous ||&lt;br /&gt;
|-&lt;br /&gt;
| Diseased || pestilent, afflicted, diseased ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Spells - Elem || glowing ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Spells - Spirit || radiant ||&lt;br /&gt;
|-&lt;br /&gt;
| Extra Spells - Other || twinkling ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethereal || ethereal, wispy, ghostly || Noncorporeal undead. No Sheer Fear.&lt;br /&gt;
|-&lt;br /&gt;
| Jack of All Trades || adroit, deft ||&lt;br /&gt;
|-&lt;br /&gt;
| Regeneration || slimy, muculent || Similar to Troll&#039;s Blood (1125)&lt;br /&gt;
|-&lt;br /&gt;
| Soul Stealing || tenebrous, shadowy || May possess 1204, 1601, and 1712&lt;br /&gt;
|-&lt;br /&gt;
| Terrifying || ghastly, grotesque || Pre-attack SMR can force player into defensive&lt;br /&gt;
|-&lt;br /&gt;
| Weaken || spindly, lanky || Weaker creature than normal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Usage Tips===&lt;br /&gt;
* If you are a melee character who struggles with &#039;&#039;&#039;Stun Immune&#039;&#039;&#039; or &#039;&#039;&#039;Crit Death Immune&#039;&#039;&#039; creatures, set those to Ignore or Flee while leaving others on Common.&lt;br /&gt;
* Casters may want to Flee from &#039;&#039;&#039;Dispelling&#039;&#039;&#039; and &#039;&#039;&#039;Magic Resistance&#039;&#039;&#039; boons.&lt;br /&gt;
* &#039;&#039;&#039;Weaken&#039;&#039;&#039; is actually beneficial — the creature is weaker than normal, so leaving it on Common is usually best.&lt;br /&gt;
* &#039;&#039;&#039;Cheat Death&#039;&#039;&#039; creatures will revive after dying; consider Ignore if your build cannot handle killing them twice.&lt;br /&gt;
* The configuration is saved per profile, so you can have different boon strategies for different hunting areas.&lt;br /&gt;
&lt;br /&gt;
== Misc Tab==&lt;br /&gt;
Various specialized configuration options.&lt;br /&gt;
&lt;br /&gt;
===UAC Options===&lt;br /&gt;
Options for configuring Unarmed Combat (UAC):&lt;br /&gt;
* &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039; - The attack used when you have reached &amp;quot;excellent&amp;quot; positioning. Options: jab, punch, grapple, or kick.&lt;br /&gt;
* &#039;&#039;&#039;Aim at location (head, etc)&#039;&#039;&#039; - Used for aimed UAC combat, which requires ambush training to be effective. Leave blank if you do not want to aim.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE when creatures equal or greater&#039;&#039;&#039; - How many creatures must be present before using MSTRIKE during UAC.&lt;br /&gt;
* &#039;&#039;&#039;Use Voln SMITE?&#039;&#039;&#039; - Will perform a Voln SMITE on [[Non-corporeal]] undead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quick Setup:&#039;&#039;&#039; Bigshot only requires minimal configuration for UAC to work well:&lt;br /&gt;
# &#039;&#039;&#039;UAC options:&#039;&#039;&#039; Set your &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039; (jab, punch, grapple, or kick).&lt;br /&gt;
# &#039;&#039;&#039;Commands tab:&#039;&#039;&#039; Set your &#039;&#039;&#039;hunting commands (a)&#039;&#039;&#039; to &#039;&#039;&#039;unarmed jab&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Important notes about UAC in Bigshot:&lt;br /&gt;
* &amp;lt;CODE&amp;gt;unarmed jab&amp;lt;/CODE&amp;gt; can be replaced with any UAC attack type (e.g., &amp;lt;CODE&amp;gt;unarmed punch&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
* UAC follow-up strikes take priority over the base or Tier 3 attack.&lt;br /&gt;
* Tier 3 attacks are only used when positioning is &amp;quot;excellent&amp;quot;.&lt;br /&gt;
* There is almost no reason to use anything other than &amp;lt;CODE&amp;gt;unarmed jab&amp;lt;/CODE&amp;gt; as the hunting command and either &amp;lt;CODE&amp;gt;grapple&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;kick&amp;lt;/CODE&amp;gt; as the Tier 3 attack.&lt;br /&gt;
&lt;br /&gt;
===MSTRIKE Options===&lt;br /&gt;
Options for when and how MSTRIKE should be used:&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown stamina requirement&#039;&#039;&#039; - How much stamina you need before Bigshot will MSTRIKE during the MSTRIKE cooldown period. Be careful setting this too low, as it can pop your muscles. Leave blank to use your max stamina.&lt;br /&gt;
* &#039;&#039;&#039;QUICKSTRIKE stamina requirement&#039;&#039;&#039; - Stamina required for using QUICKSTRIKE during the MSTRIKE routine.&lt;br /&gt;
* &#039;&#039;&#039;Unfocused MSTRIKE when creatures equal or greater&#039;&#039;&#039; - Number of creatures in the room before Bigshot uses an unfocused (AOE) MSTRIKE instead of a focused one. Default is 2.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown&#039;&#039;&#039; - Toggle to allow MSTRIKEing during the cooldown period.&lt;br /&gt;
* &#039;&#039;&#039;Use QUICKSTRIKE for MSTRIKE&#039;&#039;&#039; - Toggle to use QUICKSTRIKE instead of normal MSTRIKE.&lt;br /&gt;
&lt;br /&gt;
===Ammo/Wands===&lt;br /&gt;
Settings for ammunition and wand management. If your attack routine uses FIRE or WAND verbs, these fields must be configured or Bigshot will hang.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;find ammo in this container&#039;&#039;&#039; - The container holding your ammunition (quiver, backpack, etc.). Leave BLANK if using FIRE without retrieving ammo (post-Archery 2020 Update).&lt;br /&gt;
* &#039;&#039;&#039;use this ammo type&#039;&#039;&#039; - The noun of your ammo type. Leave BLANK to use FIRE without retrieving ammo. Be precise with the noun — Bigshot is sensitive to exact naming here.&lt;br /&gt;
* &#039;&#039;&#039;fresh wand container&#039;&#039;&#039; - The container Bigshot checks for fresh wands to WAVE.&lt;br /&gt;
* &#039;&#039;&#039;dead wand container&#039;&#039;&#039; - The container where Bigshot deposits used-up wands.&lt;br /&gt;
* &#039;&#039;&#039;use this wand type&#039;&#039;&#039; - The specific wand type(s) to use. Bigshot only pulls these for WAVEing. Separate multiple types with commas. Example: &amp;lt;CODE&amp;gt;aquamarine wand, bloodwood wand&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Hide while waiting to pick up ammo&#039;&#039;&#039; - Bigshot will hide when gathering spent arrows and bolts.&lt;br /&gt;
* &#039;&#039;&#039;Use wands when out of mana&#039;&#039;&#039; - When out of mana, Bigshot pulls the specified wand type, stances to your attack stance, and WAVEs at valid targets until out of wands or resting conditions are met.&lt;br /&gt;
&lt;br /&gt;
===MA Grouping===&lt;br /&gt;
Multi-account grouping options:&lt;br /&gt;
* &#039;&#039;&#039;Looter name&#039;&#039;&#039; - The name of the character designated as the looter in Head/Tail configuration.&lt;br /&gt;
* &#039;&#039;&#039;No-looting list&#039;&#039;&#039; - Comma-separated list of characters who should never be assigned looting duty.&lt;br /&gt;
* &#039;&#039;&#039;Random looting&#039;&#039;&#039; - Distributes looting randomly based on encumbrance rather than assigning a fixed looter.&lt;br /&gt;
* &#039;&#039;&#039;Leader final loot&#039;&#039;&#039; - Allows the leader to perform a final loot pass before leaving a room.&lt;br /&gt;
* &#039;&#039;&#039;Travel TO hunting grounds independently&#039;&#039;&#039; - When enabled, group members travel to the hunting area on their own rather than as a group. Bigshot will disband the group and force GROUP OPEN after disbanding.&lt;br /&gt;
* &#039;&#039;&#039;Travel FROM hunting grounds independently&#039;&#039;&#039; - When enabled, group members return from the hunting area on their own.&lt;br /&gt;
* &#039;&#039;&#039;Stop for dead group members&#039;&#039;&#039; - Pauses the group if a follower dies during a hunt.&lt;br /&gt;
&lt;br /&gt;
==Monitoring Tab==&lt;br /&gt;
Options for safety, interaction monitoring, and debugging.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Monitor interaction&#039;&#039;&#039; - Pops up a window whenever Bigshot detects that someone or something is trying to interact with you. Customizable monitor strings and safe strings can be configured.&lt;br /&gt;
* &#039;&#039;&#039;Engage deadman&#039;s switch&#039;&#039;&#039; - Forces Bigshot to quit GemStone IV when your character drops below 40% health, allowing you to log back on and assess the situation manually.&lt;br /&gt;
* &#039;&#039;&#039;Depart/rerun if dead&#039;&#039;&#039; - Forces a DEPART (waking up in the Temple with low spirit), then restarts Bigshot for a fresh hunt. Make sure your &amp;quot;CHECK spirit &amp;gt;=&amp;quot; value in Should Hunt? is set high enough to recover before the next hunt.&lt;br /&gt;
* &#039;&#039;&#039;Quiet followers&#039;&#039;&#039; - Followers wait until the leader finishes both actions and resting scripts before beginning their own.&lt;br /&gt;
* &#039;&#039;&#039;Ignore disk objects&#039;&#039;&#039; - Ignores disk objects when evaluating room claims and other checks.&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
Bigshot provides detailed debug options for troubleshooting. Use these commands in-game:&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
|                       Bigshot Debug Help v5.16.0                          |&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
| Debug options have changed to be more helpful.                            |&lt;br /&gt;
+--------------------------------------+------------------------------------+&lt;br /&gt;
| ;bigshot debug file                  | Toggles logging to a file &amp;lt;on/off&amp;gt; |&lt;br /&gt;
| ;bigshot debug all &amp;lt;true/false&amp;gt;      |  Toggles true/false all the things |&lt;br /&gt;
| ;bigshot debug check                 |       Lists current debug settings |&lt;br /&gt;
| ;bigshot debug combat &amp;lt;true/false&amp;gt;   |         Combat and Creature Status |&lt;br /&gt;
| ;bigshot debug commands &amp;lt;true/false&amp;gt; |     Attacking and Casting Commands |&lt;br /&gt;
| ;bigshot debug status &amp;lt;true/false&amp;gt;   |    Status Checks of your Character |&lt;br /&gt;
| ;bigshot debug system &amp;lt;true/false&amp;gt;   |                   System processes |&lt;br /&gt;
|                                      |                                    |&lt;br /&gt;
| Options can be combined:                                                  |&lt;br /&gt;
|           ;bigshot debug combat commands status &amp;lt;true/false&amp;gt;              |&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
Debug log files are stored in your Lich5 logs directory under &amp;lt;CODE&amp;gt;debug/&amp;lt;Game&amp;gt;-&amp;lt;CharacterName&amp;gt;/bigshot.log&amp;lt;/CODE&amp;gt; and rotate daily.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(New in v5.16.0)&#039;&#039;&#039; With &amp;lt;CODE&amp;gt;debug combat&amp;lt;/CODE&amp;gt; enabled, the log also tracks each target&#039;s health and status from the moment Bigshot first engages it, through every command tried against it, to its death — useful for figuring out why a particular command check fired or didn&#039;t fire against a specific creature.&lt;br /&gt;
&lt;br /&gt;
==Ingame Screenshot==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:bigshot-1.PNG|Profiles&lt;br /&gt;
File:bigshot-2.PNG|Resting&lt;br /&gt;
File:bigshot-3.PNG|Hunting&lt;br /&gt;
File:bigshot-4.PNG|Attacking&lt;br /&gt;
File:bigshot-5.PNG|Commands&lt;br /&gt;
File:bigshot-6.PNG|Misc&lt;br /&gt;
File:bigshot-7.PNG|Monitoring&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
* Info originally taken from http://forum.gsplayers.com/showthread.php?t=57651&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
{{top}}&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot/Changelog&amp;diff=265044</id>
		<title>Lich:Script Bigshot/Changelog</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Bigshot/Changelog&amp;diff=265044"/>
		<updated>2026-09-11T00:49:01Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: updated to 5.16;0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
== Change Log ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre{{log2|background=none|border=none|margin-left=none|margin-right=none|font-size=93%}}&amp;gt;&lt;br /&gt;
  v5.16.0  (2026-08-13)&lt;br /&gt;
    - creature tracking is more accurate right after a kill or a room change, so targeting and looting are less likely to grab a stale target&lt;br /&gt;
    - added checks for more creature states (calm, disoriented, hovering, immobilized, kneeling, sitting, sleeping, stunned, webbed, flying, rooted) and creature types (mounts, riders, mini-bosses, and more), so combat commands react to them correctly&lt;br /&gt;
    - added checks for wounds, critical hits, and smites, so combat maneuvers can respond to them&lt;br /&gt;
    - fixed a rare timing issue where looting could get interrupted mid-action if bigshot and the loot script were paused and resumed at nearly the same moment (e.g. by ecleanse), sometimes skipping or cutting off a loot/skin action&lt;br /&gt;
    - coup de grace attempts are now double-checked right before they&#039;re sent, so bigshot stops wasting stamina on attempts that were already going to fail&lt;br /&gt;
    - added an empowered&amp;lt;N&amp;gt; command option to skip a move when a strong enough Empowered buff is already active, so it can&#039;t get overwritten by a weaker recast&lt;br /&gt;
    - added a thp&amp;lt;N&amp;gt; command option to only use a move when the target&#039;s health is at or below a set percentage&lt;br /&gt;
    - fixed the buff&amp;lt;N&amp;gt; command option silently doing nothing&lt;br /&gt;
    - added debug logging that tracks a target&#039;s health and status from when it&#039;s first engaged through every command tried against it to its death, for troubleshooting combat behavior&lt;br /&gt;
    - added ;bigshot help, and unrecognized command-line options now print a warning and the help instead of doing nothing&lt;br /&gt;
  v5.15.4  (2026-08-05)&lt;br /&gt;
    - add additional messaging for cmd_unravel&lt;br /&gt;
  v5.15.3  (2026-07-29)&lt;br /&gt;
    - fix to remove EXPERIENCE scraping for field exp, require new Lich to get it automatically from feed&lt;br /&gt;
  v5.15.2  (2026-07-27)&lt;br /&gt;
    - fix priority hunt not retargeting when a higher priority creature arrives mid-fight&lt;br /&gt;
    - compare target list rank instead of identity so a lower ranked creature never wins a check&lt;br /&gt;
    - match priority targets with the same anchored name and noun rules used to select them&lt;br /&gt;
    - keep the current target when a priority retarget has no replacement to offer&lt;br /&gt;
    - fix eachtarget commands skipping every creature except the highest ranked one&lt;br /&gt;
    - fix follower priority check reading an instance variable that was never set&lt;br /&gt;
    - remove the unused room npc snapshot thread and its globals&lt;br /&gt;
  v5.15.1  (2026-07-23)&lt;br /&gt;
    - fix cmd_force re-issuing a maneuver on a passing roll&lt;br /&gt;
  v5.15.0  (2026-07-19)&lt;br /&gt;
    - add repeatdelay command check, throttles a command to once per N seconds per room, clears on room change&lt;br /&gt;
    - bugfix for once command check raising when a creature has no prior commands&lt;br /&gt;
  v5.14.4  (2026-07-15)&lt;br /&gt;
    - fix some beast belly edge cases&lt;br /&gt;
  v5.14.3  (2026-07-13)&lt;br /&gt;
    - fix missing essence regex pattern&lt;br /&gt;
  v5.14.2  (2026-07-06)&lt;br /&gt;
    - fix cmd_shields missing regex&lt;br /&gt;
  v5.14.1  (2026-06-18)&lt;br /&gt;
    - remove greedy prone check for bullrush&lt;br /&gt;
  v5.14.0  (2026-06-17)&lt;br /&gt;
    - add new sacrifice command&lt;br /&gt;
    - bugfix for creature escape result regex check&lt;br /&gt;
  v5.13.3  (2026-06-16)&lt;br /&gt;
    - bugfix for looting when in resting status&lt;br /&gt;
  v5.13.2  (2026-06-15)&lt;br /&gt;
    - bugfix in run_script to only do box_in_hand if hunting&lt;br /&gt;
  v5.13.1  (2026-06-14)&lt;br /&gt;
    - bugfix in resonance cmd&lt;br /&gt;
  v5.13.0  (2026-05-17)&lt;br /&gt;
    - add new resonance command for casting bolts&lt;br /&gt;
    - add new UNHIDE event to allow for unhiding before fogging&lt;br /&gt;
  v5.12.8  (2026-05-14)&lt;br /&gt;
    - use gameobj id for wandolier instead of name after being found&lt;br /&gt;
  v5.12.7  (2026-05-07)&lt;br /&gt;
    - allow for wandolier command to take a noreserve option, defaults to use RESERVE system&lt;br /&gt;
  v5.12.6  (2026-05-02)&lt;br /&gt;
    - fix for boundary building to set a new status while building boundary list, useful for scripts like teleport.lic&lt;br /&gt;
  v5.12.5  (2026-04-22)&lt;br /&gt;
    - fix final_loot to now work for solo as well, helps pickup left behind loot by other players, poof&#039;d creature loot, etc.&lt;br /&gt;
  v5.12.4  (2026-04-10)&lt;br /&gt;
    - fix for cmd_tether spell hindrance loop&lt;br /&gt;
  v5.12.3  (2026-03-25)&lt;br /&gt;
    - change to wander_stance if single_stop called (bigshot quick)&lt;br /&gt;
  v5.12.2  (2026-03-11)&lt;br /&gt;
    - fix to catch max inventory quantity item messaging&lt;br /&gt;
    - fix in cmd_depress for result check&lt;br /&gt;
  v5.12.1  (2026-02-08)&lt;br /&gt;
    - fix for cast_signs/cmd_rapid to prevent double casting due to 0sec castRT.&lt;br /&gt;
  v5.12.0  (2026-02-08)&lt;br /&gt;
    - add ES/EB/EC/ED for spell, buff, cooldown, and debuff command checks&lt;br /&gt;
  v5.11.4  (2026-01-14)&lt;br /&gt;
    - add splashy command check for Rooms that are splashy(wet)&lt;br /&gt;
    - add essence command check to check for sorcerer shadow essence&lt;br /&gt;
    - unhide if hidden as a head/leader to allow followers to join&lt;br /&gt;
    - add ATTACK event to attack routine if followers get separated&lt;br /&gt;
    - allow non-incant spell COMMANDs to respect extra cast/evoke/channel&lt;br /&gt;
    - force GROUP OPEN after disband when doing independent travel&lt;br /&gt;
  v5.11.3  (2026-01-12)&lt;br /&gt;
    - bugfix in follower rejoining leader&lt;br /&gt;
    - bugfix for missing id&#039;s in attack stance, wander stance, and stand up&lt;br /&gt;
  v5.11.2  (2026-01-09)&lt;br /&gt;
    - optimize get_valid_neighbors to eval timeto as being valid numerics&lt;br /&gt;
  v5.11.1  (2026-01-09)&lt;br /&gt;
    - bugfix in sort_npcs&lt;br /&gt;
  v5.11.0  (2025-11-29)&lt;br /&gt;
    - add support for boon creatures&lt;br /&gt;
    - add toggle to stop for dead group members&lt;br /&gt;
    - refactor find_routine, ma_looter, check_mind, ready_to_hunt?, and ready_to_rest?&lt;br /&gt;
    - removed gather_ammo (no longer used since archery update)&lt;br /&gt;
    - reworked debug process&lt;br /&gt;
    - refactor attack loop for followers&lt;br /&gt;
    - only call group open call if grouped&lt;br /&gt;
    - refactor escape from oozes, crawlers, and roa&#039;ters&lt;br /&gt;
    - removed voln_favor method for Lich::Resources.voln_favor&lt;br /&gt;
    - update default fried to be 100 and removed value check&lt;br /&gt;
    - refactor sort_npcs so if valid targets is left blank it targets everything&lt;br /&gt;
    - removed target check from check_required_values&lt;br /&gt;
  v5.10.0  (2025-10-31)&lt;br /&gt;
    - update BSAreaRooms&lt;br /&gt;
    - fix MA so leader has group open&lt;br /&gt;
    - tighten follower loop&lt;br /&gt;
    - MA lead can identify expected group number at startup eg ;bigshot head 3&lt;br /&gt;
    - head/tail can now be started in any order&lt;br /&gt;
    - removed old companion_check method&lt;br /&gt;
    - bugfix when using negative mana value in cmd_spell&lt;br /&gt;
    - refactor group class&lt;br /&gt;
    - bugfix for bigclaim when follower is hidden&lt;br /&gt;
    - update cmd sleep to not change stance&lt;br /&gt;
    - add command for valid creatures similiar to mob&lt;br /&gt;
    - bugfix in disarm if target has no weapon&lt;br /&gt;
    - add gemstone support&lt;br /&gt;
  v5.9.13  (2025-10-27)&lt;br /&gt;
    - fix for dhurl command to respect ambush settings and additional messaging&lt;br /&gt;
  v5.9.12  (2025-10-24)&lt;br /&gt;
    - bugfix for stance dancing for unarmed and force being respected with AND commands&lt;br /&gt;
  v5.9.11  (2025-10-11)&lt;br /&gt;
    - bugfix for encumbrance command check&lt;br /&gt;
  v5.9.10  (2025-10-03)&lt;br /&gt;
    - bugfix in cmd_spell targetting to send proper gameobj ID# string&lt;br /&gt;
  v5.9.9  (2025-10-02)&lt;br /&gt;
    - add missing $rest_reasons&lt;br /&gt;
  v5.9.8  (2025-09-30)&lt;br /&gt;
    - bugfix for cmd_rapid to use cooldown instead of penalty check&lt;br /&gt;
  v5.9.7  (2025-09-30)&lt;br /&gt;
    - bugfix when Spell[597].active? in cast_signs&lt;br /&gt;
  v5.9.6  (2025-09-09)&lt;br /&gt;
    - add support for 902 and 411 (doesn&#039;t work with UAC)&lt;br /&gt;
    - remove custom issue_command for Lich method&lt;br /&gt;
    - added cast_spell method&lt;br /&gt;
    - updated Society Abilities/Spells/CMan section to ignore rapidfire cool down: 515 (ignore) or rapidfire (ignore)&lt;br /&gt;
  v5.9.5  (2025-07-22)&lt;br /&gt;
    - remove companion_check calls as no longer needed with migration to GameObj.targets for valid creatures&lt;br /&gt;
    - add check_disks param to bigclaim? method&lt;br /&gt;
    - add claim check to attack_break and need_to_loot (ignoring disk check)&lt;br /&gt;
    - add coupdegrace buff check and command check&lt;br /&gt;
    - increase bs_move timeout from 2 to 5&lt;br /&gt;
  v5.9.4  (2025-07-08)&lt;br /&gt;
    - bugfix for leader final loot to only work if claim is true&lt;br /&gt;
  v5.9.3  (2025-07-02)&lt;br /&gt;
    - bugfix for shield bash if using CMan instead of shield&lt;br /&gt;
    - bugfix for FORCE cmd to stop checking older lines if it found a proper attack messaging but failed the match&lt;br /&gt;
    - bugfix for cmd_tether to end if link is broken&lt;br /&gt;
  v5.9.2  (2025-06-30)&lt;br /&gt;
    - bugfix in cmd_tether potential npc logic&lt;br /&gt;
  v5.9.1  (2025-06-27)&lt;br /&gt;
    - Fix for head/tails bs_wander groupcheck logic&lt;br /&gt;
  v5.9.0  (2025-04-03)&lt;br /&gt;
    - Convert over to use Group and Claim modules from core Lich5&lt;br /&gt;
    - bugfix in cmd_assaults for confusion&lt;br /&gt;
    - add additional logic to cmd_unravel for creature gone/dead&lt;br /&gt;
    - bugfix in bs_put for bleedthru numbers merged with wait time (EXP output: Level: 100...wait 1 seconds.)&lt;br /&gt;
    - bugfix in creeping_dread typo name&lt;br /&gt;
    - attempts as head to pull tail members to feet if not standing prior to returning to resting&lt;br /&gt;
    - adds cmd_depress for 1015/Song of Depression usage&lt;br /&gt;
    - adds cmd_phase for 704/Phase to purpose prep/cast with NPC as target due to special use of changing non-corp to corp undead&lt;br /&gt;
    - adds final room loot option for leader in head/tail&lt;br /&gt;
    - add disarm weapon to cmd_cman&lt;br /&gt;
    - bugfix break PSM loop early if not affordable after wait messaging&lt;br /&gt;
    - cleanup class detection logic to use is_a? logic instead&lt;br /&gt;
    - bugfix in cmd_force to search newest msg to oldest via reget reversing&lt;br /&gt;
    - add Feat support for Chastise &amp;amp; Excoriate&lt;br /&gt;
    - add Righteous Rebuke command check (rebuke)&lt;br /&gt;
    - add Ardor of the Scourge command check (scourge)&lt;br /&gt;
    - add Glorious Momentum command check (momentum)&lt;br /&gt;
    - fix depart monitor to use ewaggle instead of waggle&lt;br /&gt;
    - fix clean value setting for rest_till_exp &amp;amp; rest_till_mana&lt;br /&gt;
  v5.8.5  (2025-03-28)&lt;br /&gt;
    - bugfix for follower resting commands use running a script&lt;br /&gt;
    - add cooldown detection to cmd_spell and 140/919/211/215/219/1619/1650&lt;br /&gt;
  v5.8.4  (2025-03-19)&lt;br /&gt;
    - remove deprecated calls&lt;br /&gt;
  v5.8.3  (2025-03-10)&lt;br /&gt;
    - bugfix in run_script to use exact naming of script that was started&lt;br /&gt;
  v5.8.2  (2025-02-26)&lt;br /&gt;
    - bugfix in run_script needing EXACT match for Script.running? check. Script.start is not exact. Causing issues&lt;br /&gt;
    - bugfix in command_check split_check&lt;br /&gt;
  v5.8.1  (2025-02-26)&lt;br /&gt;
    - add garrote command to buffXX command check validity for Enh. Agility buff&lt;br /&gt;
    - add garrote command check for active buff check&lt;br /&gt;
    - cleanup command check regex to simplify&lt;br /&gt;
  v5.8.0  (2025-02-20)&lt;br /&gt;
    - add custom fog option&lt;br /&gt;
    - option to force resting if looting leaves a box in your hand&lt;br /&gt;
    - enable pre-rest commands to call scripts eg. script go2 place&lt;br /&gt;
    - bugfix in tether command&lt;br /&gt;
    - add ancient &amp;amp; !ancient command checks for grizzled/ancient creatures&lt;br /&gt;
    - add animate &amp;amp; !animate command checks for if you have an animate present or not&lt;br /&gt;
    - change command_checks to lamdas for optimization&lt;br /&gt;
  v5.7.10 (2025-02-18)&lt;br /&gt;
    - add option for cmd_tether to recast upon death and transfer of dots&lt;br /&gt;
  v5.7.9  (2025-02-15)&lt;br /&gt;
    - fix stand() to not stand if casting 608 and kneeling with a crossbow in hand&lt;br /&gt;
  v5.7.8  (2025-02-11)&lt;br /&gt;
    - update $bigshot_status to utilize :ready instead of :hunting when clear to hunt&lt;br /&gt;
    - update $bigshot_status to :hunting when arrived in do_hunt() and actually starts hunting&lt;br /&gt;
  v5.7.7  (2025-02-10)&lt;br /&gt;
    - bugfix in cmd_curse due to custom prep/curse logic&lt;br /&gt;
  v5.7.6  (2025-02-08)&lt;br /&gt;
    - bugfix where claims was including characters disk&lt;br /&gt;
  v5.7.5  (2025-01-30)&lt;br /&gt;
    - bugfix in resting method for fog_return&lt;br /&gt;
  v5.7.4  (2025-01-22)&lt;br /&gt;
    - adjust loop delay for efury and tether&lt;br /&gt;
  v5.7.3  (2025-01-20)&lt;br /&gt;
    - added command tether to have spell 706 wait until completion&lt;br /&gt;
    - update to efury command&lt;br /&gt;
    - fix for constant redefinition Ruby warnings&lt;br /&gt;
  v5.7.2  (2025-01-15)&lt;br /&gt;
    - added implosion(720) cooldown&lt;br /&gt;
    - added check for voidwalker buff from 720&lt;br /&gt;
  v5.7.1  (2025-01-13)&lt;br /&gt;
    - added client input into debug file&lt;br /&gt;
  v5.7.0  (2025-01-12)&lt;br /&gt;
    - added debug logging to file&lt;br /&gt;
  v5.6.11 (2025-01-02)&lt;br /&gt;
    - added cmd_rapid for rapidfire/515 usage&lt;br /&gt;
    - added rapid/!rapid command check for current rapidfire buff&lt;br /&gt;
    - bugfix for room claim with disks if SET DESCRIPTION is off&lt;br /&gt;
  v5.6.10 (2024-12-22)&lt;br /&gt;
    - added optional stand-up stance selection&lt;br /&gt;
    - bugfix for surge in cmd_surge and command_check&lt;br /&gt;
    - bugfix for burst in command_check&lt;br /&gt;
  v5.6.9  (2024-12-09)&lt;br /&gt;
    - bugfix for group members in room claim&lt;br /&gt;
    - bugfix for weapon reactions to be done in @HUNTING_STANCE&lt;br /&gt;
  v5.6.8  (2024-12-06)&lt;br /&gt;
    - additional regex for rooted debuff&lt;br /&gt;
    - bugfix for leader waiting to regroup during rest cycle&lt;br /&gt;
  v5.6.7  (2024-12-06)&lt;br /&gt;
    - bugfix for follower not attacking&lt;br /&gt;
    - add cmd_wandolier (using fresh wand container and wand name)&lt;br /&gt;
  v5.6.6  (2024-12-02)&lt;br /&gt;
    - typo in load_settings: &#039;maxstamina&#039; should be maxstamina&lt;br /&gt;
  v5.6.5  (2024-11-23)&lt;br /&gt;
    - added test method, usage: ;bigshot test &amp;lt;method&amp;gt; &amp;lt;arg1&amp;gt; &amp;lt;arg2&amp;gt; etc.&lt;br /&gt;
    - added ;bigshot list to display initialized values&lt;br /&gt;
    - bugfix for out of mana default not an integer&lt;br /&gt;
    - update to check_required_values&lt;br /&gt;
    - update to load_settings&lt;br /&gt;
    - bugfix to allow follower to sit when resting&lt;br /&gt;
    - bugfix updating spin button settings&lt;br /&gt;
    - $rest_reason wasn&#039;t being reset before next hunt&lt;br /&gt;
    - bugfix in profile sorting&lt;br /&gt;
    - bugfix for leader to wait for wounded follower&lt;br /&gt;
    - bugfix unnecessary groupcheck in pre_hunt method&lt;br /&gt;
  v5.6.4  (2024-11-18)&lt;br /&gt;
    - bugfix for ready_to_hunt stamina check when set to 100&lt;br /&gt;
  v5.6.3  (2024-11-14)&lt;br /&gt;
    - bugfix for the command check when rooted&lt;br /&gt;
  v5.6.2  (2024-11-13&lt;br /&gt;
    - prevent UAC from trying to kick when rooted&lt;br /&gt;
  v5.6.1  (2024-11-13)&lt;br /&gt;
    - bugfix in bandit tracking&lt;br /&gt;
    - bugfix in loot() method&lt;br /&gt;
    - add msg in class BSAreaRooms if open boundary&lt;br /&gt;
  v5.6.0  (2024-09-11)&lt;br /&gt;
    - new room claim process inspired by ;overwatch and Lich::Claim&lt;br /&gt;
    - additional targeting for bandits&lt;br /&gt;
    - bugfix on confusion status to confused&lt;br /&gt;
  v5.5.0  (2024-08-24)&lt;br /&gt;
    - rework of debug messaging&lt;br /&gt;
    - removed duplicate calls to methods&lt;br /&gt;
    - once command update for force&lt;br /&gt;
    - updated check_required_values for integer Use&lt;br /&gt;
    - set defaults for integer settings&lt;br /&gt;
    - support for worn items with wield command&lt;br /&gt;
  v5.4.5  (2024-08-20)&lt;br /&gt;
    - update spinButton to save properly when manually entered&lt;br /&gt;
  v5.4.4  (2024-08-19)&lt;br /&gt;
    - remove unused GUI elements&lt;br /&gt;
  v5.4.3  (2024-08-19)&lt;br /&gt;
    - updated wander wait to a spin button&lt;br /&gt;
    - bugfix for missing id on lte_boost&lt;br /&gt;
    - update OOM spin button to allow for negatives&lt;br /&gt;
    - updated OOM check for negative values&lt;br /&gt;
  v5.4.2  (2024-08-17)&lt;br /&gt;
    - bugfix in cmd_spell to set Spell&#039;s @@after_stance to prevent forced stance dancing when hunting_stance is offensive&lt;br /&gt;
  v5.4.1  (2024-08-14)&lt;br /&gt;
    - room command check logic correction&lt;br /&gt;
  v5.4.0  (2024-08-07)&lt;br /&gt;
    - UI updates&lt;br /&gt;
    - Notes section added on profiles tab&lt;br /&gt;
    - percent_stamina added as a should_hunt? parameter&lt;br /&gt;
    - wander stance added&lt;br /&gt;
  v5.3.17 (2024-08-05)&lt;br /&gt;
    - added 506/celerity check&lt;br /&gt;
    - fix for hunt_monitor not working for followers&lt;br /&gt;
  v5.3.16 (2024-08-04)&lt;br /&gt;
    - fix for ROOM being missed in command_check regex&lt;br /&gt;
  v5.3.15 (2024-07-25)&lt;br /&gt;
    - add ROOM command check, Performs the command a single time only per room, clears on room change&lt;br /&gt;
  v5.3.14 (2024-07-24)&lt;br /&gt;
    - bugfix for reset_variables&lt;br /&gt;
  v5.3.13 (2024-07-19)&lt;br /&gt;
    - bugfix for head/tail random looting&lt;br /&gt;
    - bugfix for smite tracking in a group&lt;br /&gt;
  v5.3.12 (2024-07-13)&lt;br /&gt;
    - update profile_current and save_profile_name when using CLI profile load/save&lt;br /&gt;
    - bugfix ready_to_rest? should_rest lambda logic&lt;br /&gt;
  v5.3.11 (2024-06-20)&lt;br /&gt;
    - fix to break from cmd_assault command on cooldown if loop repeated&lt;br /&gt;
  v5.3.10 (2024-06-15)&lt;br /&gt;
    - added support for Seanette&#039;s Shout in Society/Abilities/Spells/Cmans section of the hunting tab&lt;br /&gt;
  v5.3.9 (2024-05-29)&lt;br /&gt;
    - add additional missing cmd_assault regex matching&lt;br /&gt;
  v5.3.8 (2024-05-18)&lt;br /&gt;
    - remove superfluous check for escorts, not needed since they are not valid targets&lt;br /&gt;
  v5.3.7 (2024-05-01)&lt;br /&gt;
    - fix for Char.prof/Char.level to Stats.prof/Stats.level&lt;br /&gt;
  v5.3.6 (2024-04-28)&lt;br /&gt;
    - add additional custom disk noun&lt;br /&gt;
  v5.3.5 (2024-04-24)&lt;br /&gt;
    - handle all the new custom disk nouns&lt;br /&gt;
  v5.3.4 (2024-03-29)&lt;br /&gt;
    - fix to add Tangle Weed (610) status of &amp;quot;entangled&amp;quot; to the PRONE regex&lt;br /&gt;
    - fix for kweed command to use EVOKE instead of stancing&lt;br /&gt;
  v5.3.3 (2024-03-15)&lt;br /&gt;
    - fix for cmd_briar to use MEASURE instead of LOOK due to gamefeed issue with extended show descriptions&lt;br /&gt;
    - fix for cmd_briar to support UCS worn gear and two weapon combat&lt;br /&gt;
  v5.3.2 (2024-03-12)&lt;br /&gt;
    - bugfix in check_required_values&lt;br /&gt;
  v5.3.1 (2024-03-11)&lt;br /&gt;
    - bugfix for UIDs in boundary rooms and new boundary return outside of hunting area feature&lt;br /&gt;
    - added cmd_curse command for Sorcerer spell Curse 715&lt;br /&gt;
    - added cmd_store command to store left, right or both, but only if something is in those hands&lt;br /&gt;
  v5.3.0 (2023-11-29)&lt;br /&gt;
    - added boundary return if character ends up outside hunting area&lt;br /&gt;
    - added option to double cast on fog options when returning from the Rift&lt;br /&gt;
    - added support for warcry holler buff&lt;br /&gt;
    - fixed bug in stand method when command is an array&lt;br /&gt;
    - fixed command to standardize to downcase&lt;br /&gt;
    - fixed bug in head/tail looting where the leader wasn&#039;t waiting for the follower to loot&lt;br /&gt;
    - removed $bigshot_briar in favor of Spell[9105]&lt;br /&gt;
    - added toggle to check for favor before using voln symbol on hunting tab&lt;br /&gt;
    - expanded need_to_loot method for 1108 kills&lt;br /&gt;
    - added escape for temporal rift&lt;br /&gt;
    - added eachtarget command that attacks each creature in the room eg. (eachtarget force incant 917 until 101 (once), incant 903 (x10))&lt;br /&gt;
    - removed change log comments before 5.0.0 and updated wiki&lt;br /&gt;
  v5.2.2 (2023-11-21)&lt;br /&gt;
    - bugfix causing bs_wander to delay 0.5 seconds longer than needed&lt;br /&gt;
    - added Roa&#039;ter and Ooze escape check in bs_wander&lt;br /&gt;
  v5.2.1 (2023-11-15)&lt;br /&gt;
    - add new efury, caststop, and wield cmd&lt;br /&gt;
    - redo unravel/barddispel cmd&lt;br /&gt;
  v5.2.0 (2023-10-02)&lt;br /&gt;
    - general adjustment to group hunting&lt;br /&gt;
    - additions to group looting for exclude individuals as well as allowing for changing looter based on encumbrance&lt;br /&gt;
    - changes to try and prevent leaving stray bandits&lt;br /&gt;
    - update to prevent targeting 709 arms&lt;br /&gt;
    - allows multiple rally rooms just separate with commas&lt;br /&gt;
    - added multiple return room waypoints&lt;br /&gt;
    - added support for ranger tracking. Usage ;bigshot &amp;lt;options&amp;gt; &amp;lt;creature&amp;gt; example: ;bigshot single giant rat&lt;br /&gt;
  v5.1.10 (2023-09-28)&lt;br /&gt;
    - bugfix for ;bigshot quick occassionally stopping when another character enters the room&lt;br /&gt;
    - changed BIGSHOT_VERSION variable to pull version from title block&lt;br /&gt;
    - bugfix for display output&lt;br /&gt;
  v5.1.9 (2023-09-24)&lt;br /&gt;
    - fix to debug variable being hard set at launch to false.&lt;br /&gt;
    - add CLI debug option to toggle debug value between true/false.&lt;br /&gt;
  v5.1.8 (2023-09-18)&lt;br /&gt;
    - add acid &amp;amp; steam to incant 518 allowances in cmd_spell&lt;br /&gt;
  v5.1.7 (2023-09-16)&lt;br /&gt;
    - bugfix wracking not considering active COL signs&lt;br /&gt;
    - added RT check for wand method&lt;br /&gt;
  v5.1.6 (2023-09-12)&lt;br /&gt;
    - bugfix for cmd_force when target has 115&lt;br /&gt;
  v5.1.5 (2023-08-30)&lt;br /&gt;
    - bugfix for calling escape_rooms for tail&lt;br /&gt;
  v5.1.4 (2023-08-30)&lt;br /&gt;
    - bugfix for Roa&#039;ter and Ooze escape for head/tail&lt;br /&gt;
  v5.1.3 (2023-08-26)&lt;br /&gt;
    - add 335/Divine Wrath cooldown check in cmd_spell to not cast&lt;br /&gt;
    - change cmd_spell to use Spell.force_incant for incanted spells instead of bs_put&lt;br /&gt;
  v5.1.2 (2023-08-21)&lt;br /&gt;
    - fix incorrect regex match for mighty blow&lt;br /&gt;
  v5.1.1 (2023-08-14)&lt;br /&gt;
    - fix missing regex match for censer command check&lt;br /&gt;
  v5.1.0 (2023-08-07)&lt;br /&gt;
    - add ooze_escape for getting out of Ooze, Innards in HW.&lt;br /&gt;
  v5.0.0 (2023-7-19)&lt;br /&gt;
    - move method spell_is_selfcast? inside Bigshot class&lt;br /&gt;
    - corrected deadmans typo&lt;br /&gt;
    - moved Setup class outside main Bigshot block&lt;br /&gt;
    - renamed various methods to snake case&lt;br /&gt;
    - removed changlog notes older than 4.17.0 and updated changelog on wiki&lt;br /&gt;
    - bugfix for bearhug complete_regex and in the command check&lt;br /&gt;
    - retry RT commands for warrior and rogue guild cmans&lt;br /&gt;
    - added rooted to status check&lt;br /&gt;
    - bugfix in check_target_vitals&lt;br /&gt;
    - bugfix in cast_signs undefined method `=~&#039; for false:FalseClass&lt;br /&gt;
  v4.17.6 (2023-07-11)&lt;br /&gt;
    - will perform one final loot call if OOM, bounty complete, dread, or fried before resting&lt;br /&gt;
    - bugfix in cast signs for KS+Mental Acuity Monk&lt;br /&gt;
  v4.17.5 (2023-07-05)&lt;br /&gt;
    - Added support for MA hunting single loop&lt;br /&gt;
  v4.17.4 (2023-06-29)&lt;br /&gt;
    - Expanded UCS followup attack tracking to work with PSM attacks.&lt;br /&gt;
    - Added UCS tier command checks  tier3, !tier3, ect.&lt;br /&gt;
  v4.17.3 (2023-06-24)&lt;br /&gt;
    - Added support for sneaking while hunting.&lt;br /&gt;
  v4.17.2 (2023-06-21)&lt;br /&gt;
    - Added missing regex for fury completion.&lt;br /&gt;
  v4.17.1 (2023-06-13)&lt;br /&gt;
    - Reconfigure assume aspect&lt;br /&gt;
    - Removed check that could cause nerves to get blown.&lt;br /&gt;
    - Added cman ki focus&lt;br /&gt;
  v4.17.0 (2023-06-04)&lt;br /&gt;
    - Skip infomon.lic check if on newer Lich versions&lt;br /&gt;
  v4.16.3 (2023-05-20)&lt;br /&gt;
    - Update for groupcheck to strip XML from $grouplist&lt;br /&gt;
  v4.16.2 (2023-05-19)&lt;br /&gt;
    - Update for GROUP output display&lt;br /&gt;
  v4.16.1 (2023-05-16)&lt;br /&gt;
    - Add burst of swiftness&lt;br /&gt;
  v4.16.0 (2023-04-06)&lt;br /&gt;
    - Add bard command unravel to dispel and stop&lt;br /&gt;
    - Add bard command barddispel to dispel single spell from target&lt;br /&gt;
    - Add once command check to perform a command one time on a specific target only. Resets on room change.&lt;br /&gt;
    - bugfix for barrange and using bolts&lt;br /&gt;
  v4.15.6 (2023-04-04)&lt;br /&gt;
    - Add cman sbash to cmans as was missing&lt;br /&gt;
  v4.15.5 (2023-03-15)&lt;br /&gt;
    - Rubocop cleanup&lt;br /&gt;
    - replace script.vars with Script.current.vars&lt;br /&gt;
  v4.15.4 (2023-03-13)&lt;br /&gt;
    - add additional missing 709 arms to exclude for NPCs check&lt;br /&gt;
  v4.15.3 (2023-03-02)&lt;br /&gt;
    - bugfix for cmd_shields&lt;br /&gt;
  v4.15.2 (2023-03-01)&lt;br /&gt;
    - bugfix to allow cmd_weapons to work if using more than base Mnemonic&lt;br /&gt;
    - bugfix to allow cmd_shields to work if using more than base Mnemonic&lt;br /&gt;
    - bugfix to allow cmd_cmans to work if using more than base Mnemonic&lt;br /&gt;
    - bugfix to allow cmd_bearhug to work if using more than base Mnemonic&lt;br /&gt;
    - bugfix to allow cmd_rogue_cmans to work if using more than base Mnemonic&lt;br /&gt;
  v4.15.1 (2023-02-18)&lt;br /&gt;
    - initial bugfix(s) for Ruby 3.x compliance&lt;br /&gt;
    - fix for exiting cmd_force if command check fails on cmd&lt;br /&gt;
  v4.15.0 (2023-02-18)&lt;br /&gt;
    - add tonis/1035 command&lt;br /&gt;
    - bugfix to not try to pull dead people up&lt;br /&gt;
  v4.14.8 (2023-02-11)&lt;br /&gt;
    - moved bounty check to after looting to avoid excessive game feed&lt;br /&gt;
  v4.14.7 (2023-02-09)&lt;br /&gt;
    - added missing room claim check&lt;br /&gt;
  v4.14.6 (2023-02-06)&lt;br /&gt;
    - fix head/tail issues with claim&lt;br /&gt;
    - cleaned up also here detection&lt;br /&gt;
    - cleaned up cast_signs to not spam song status for bards&lt;br /&gt;
  v4.14.5 (2023-02-03)&lt;br /&gt;
    - regex fix for hunt monitor claim_room&lt;br /&gt;
    - fix in bs_wander method for &#039;approach lone target only&#039;&lt;br /&gt;
  v4.14.4 (2023-02-02)&lt;br /&gt;
    - fix second target aquisition to use valid_targets?&lt;br /&gt;
    - fix odd issue that would cause you to loot existing corpses in specific scenarios.&lt;br /&gt;
  v4.14.3 (2023-02-01)&lt;br /&gt;
    - fixed bigshot quick group room claim&lt;br /&gt;
    - fixed regex to prevent attacks from removing people from claim&lt;br /&gt;
  v4.14.2 (2023-01-31)&lt;br /&gt;
    - updates to room claim system ;e UserVars.show_claim = true/false to echo when room is claimed.&lt;br /&gt;
  v4.14.1 (2023-01-28)&lt;br /&gt;
    - bugfix for GTK display if old settings contained integer for certain fields&lt;br /&gt;
    - bugfix to allow cmd_assault to work if using more than Mnemonic (ie fury punch)&lt;br /&gt;
    - add new regex result for cmd_cmans for sattack&lt;br /&gt;
    - remove spam/unspam as waitrt?/waitcastrt? updated in Lich5 to be faster by default&lt;br /&gt;
  v4.14.0 (2023-01-25)&lt;br /&gt;
    - add new slayer command for 240&lt;br /&gt;
    - fix for wander_wait to use should_flee?&lt;br /&gt;
  v4.13.18 (2023-01-24)&lt;br /&gt;
    - introduced room claim system to prevent poaching.&lt;br /&gt;
  v4.13.17 (2023-01-23)&lt;br /&gt;
    - move wander_wait to prevent poaching&lt;br /&gt;
  v4.13.16 (2023-01-21)&lt;br /&gt;
    - added support to rest for debuffs: Wall of Thorn Poison, Confusion, Creeping Dread, and Crushing Dread&lt;br /&gt;
  v4.13.15 (2023-01-12)&lt;br /&gt;
    - Add 1650 cooldown check for cast_signs&lt;br /&gt;
  v4.13.14 (2023-01-12)&lt;br /&gt;
    - add bounty check while resting and in bounty mode&lt;br /&gt;
  v4.13.13 (2022-12-03)&lt;br /&gt;
    - add bounty check while resting and in bounty mode&lt;br /&gt;
  v4.13.12 (2022-12-01)&lt;br /&gt;
    - reset bounty_eval when bounty complete&lt;br /&gt;
  v4.13.11&lt;br /&gt;
    - bounty mode will only exit if bounty is complete or child present&lt;br /&gt;
  v4.13.10 (2022-11-30)&lt;br /&gt;
    - bug fix for comparison of bonded weapon return&lt;br /&gt;
  v4.13.9 (2022-11-30)&lt;br /&gt;
    - bug fix for extra kills not being in monsterbold&lt;br /&gt;
  v4.13.8 (2022-11-18)&lt;br /&gt;
    - convert directory lookups to File.join to prevent OS pathname issues&lt;br /&gt;
    - bug fix for poaching on rally_point and starting room&lt;br /&gt;
    - bug fix for cmd_assume&lt;br /&gt;
    - fix for cmd_hide using bs_put instead of fput&lt;br /&gt;
    - bug fix to create UserVars.op on first run&lt;br /&gt;
    - remove message() override color and update calls to use yellow to retain previous coloring&lt;br /&gt;
  v4.13.7 (2022-11-14)&lt;br /&gt;
    - bugfix for overkill hunting&lt;br /&gt;
  v4.13.6 (2022-11-10)&lt;br /&gt;
    - rearranged command tab for clarity&lt;br /&gt;
    - removed profile checkboxes for ebounty, not needed&lt;br /&gt;
    - added bounty_eval to support bounty mode and ebounty completion&lt;br /&gt;
  v4.13.5 (2022-11-7)&lt;br /&gt;
    - bug fix for MA looter&lt;br /&gt;
  v4.13.4 (2022-11-7)&lt;br /&gt;
    - bug fix for split, buff, and other checks&lt;br /&gt;
  v4.13.3 (2022-11-7)&lt;br /&gt;
    - bug fix for censure command&lt;br /&gt;
  v4.13.2 (2022-11-5)&lt;br /&gt;
    - added support to designate a looter for head/tail operations: See Misc tab&lt;br /&gt;
    - added check for ...wait issue on routines&lt;br /&gt;
    - reorganized the commands a little more to help with troubleshooting&lt;br /&gt;
  v4.13.1 (2022-11-03)&lt;br /&gt;
    Typo fixes in cman regex&lt;br /&gt;
  v4.13.0 (2022-11-03)&lt;br /&gt;
    Added profile support to UI&lt;br /&gt;
    ***************************&lt;br /&gt;
    Changed file save location&lt;br /&gt;
    /scripts/bigshot_profiles to Lich5/data/GSIV/&amp;lt;charname&amp;gt;/bigshot_profiles.  &lt;br /&gt;
    Lich5/data/GSIV/Rinualdo/bigshot_profiles as an example.&lt;br /&gt;
    Existing profiles will need to be resaved or migrated over. &lt;br /&gt;
    ***************************&lt;br /&gt;
    Added standard Lich messaging functionality &lt;br /&gt;
    Reorganized UI menu and locations&lt;br /&gt;
    Code cleanup.&lt;br /&gt;
    Support for future (RSN) ebounty script&lt;br /&gt;
    Fix to allow 640 blocked attacks to work for wait_for_attack&lt;br /&gt;
    Fix to only account for renewal mana if bard and have renewal costs&lt;br /&gt;
    Support for uid&#039;s for hunting and resting&lt;br /&gt;
    Fix for percent_mind to more accurately gauge current mind full status&lt;br /&gt;
  v4.12.12 (2022-10-28)&lt;br /&gt;
    Fix for waitcastrt? before commands unless command can be executed during castrt&lt;br /&gt;
    Fix for quickhunt targets when given an attack routine&lt;br /&gt;
  v4.12.11 (2022-09-18)&lt;br /&gt;
    Fixed calls to kill hunting scripts started with args&lt;br /&gt;
  v4.12.10 (2022-08-21)&lt;br /&gt;
    Added tumbleweed to list of tangleweed nouns&lt;br /&gt;
  v4.12.9 (2022-08-08)&lt;br /&gt;
    Bugfix for 9625/burst of swiftness&lt;br /&gt;
  v4.12.8 (2022-08-07)&lt;br /&gt;
    Added support for Burst of Swiftness. 9625 in society box.&lt;br /&gt;
    Added kneeling command check (k) (!k)&lt;br /&gt;
    Will no longer attempt to stand when hidden and kneeling.&lt;br /&gt;
  v4.12.7 (2022-07-27)&lt;br /&gt;
    Added checkbox to opt out of mstrike on unarmed combat.  &lt;br /&gt;
  v4.12.6 (2022-07-24)&lt;br /&gt;
    Gave frozen it&#039;s own command check&lt;br /&gt;
    Expanded support for dislodge firing only on specific locations.&lt;br /&gt;
    Commented out ammo gathering.&lt;br /&gt;
  v4.12.5 (2022-07-21)&lt;br /&gt;
    Fixed shield bash to work for both shield and cman skills.&lt;br /&gt;
    1040 now has a checkbox to auto shout if you or group member could benefit.&lt;br /&gt;
    Will no longer pull kneeling people to their feet.&lt;br /&gt;
    Will no longer attempt to pull the dead to their feet.&lt;br /&gt;
  v4.12.4 (2022-07-01)&lt;br /&gt;
    Add command check for tailwind.&lt;br /&gt;
    Fixed briar command with briar weapon in off hand of twc.&lt;br /&gt;
    Fixed bigshot quick standing around waiting for mana.&lt;br /&gt;
  v4.12.3 (2022-07-01)&lt;br /&gt;
    Add check to deadman&#039;s switch to only work in Shattered.&lt;br /&gt;
  v4.12.2 (2022-06-08)&lt;br /&gt;
    Add checks for Divergence cooldown spells for hunting tab abilities/spells/cmans&lt;br /&gt;
    Changed boon detection to look at gameobj-data.xml TYPE instead of hardcoded name adjective check&lt;br /&gt;
  v4.12.1 (2022-06-01)&lt;br /&gt;
    Add SSR to force results check&lt;br /&gt;
    Add additional weed/kweed for Tangle Weed 610&lt;br /&gt;
    Adjusted hunt logic to prevent fleeing when someone enters.&lt;br /&gt;
  v4.12.0 (2022-05-24)&lt;br /&gt;
    Update various GameObj.npcs to use GameObj.targets&lt;br /&gt;
    Add familiar gate(930) as a fog option&lt;br /&gt;
    Add cmd_leech to cast Mana Leech/516&lt;br /&gt;
    Fix for spell cleave cman to not attempt if on cooldown&lt;br /&gt;
  v4.11.4 (2022-05-20)&lt;br /&gt;
    Fix for cmd_ambush to switch to attack if not hidden&lt;br /&gt;
    Update flee_message tooltip to state uses XML feed not plain text&lt;br /&gt;
  v4.11.3 (2022-05-01)&lt;br /&gt;
    Fixed dhurl with the new aim messaging&lt;br /&gt;
    Adjusted location of waitrt in command checks&lt;br /&gt;
    Changed do_hunt() to use no_players() instead of no_players_hunt() to prevent poaching in first room of the hunt.&lt;br /&gt;
  v4.11.2 (2022-04-29)&lt;br /&gt;
    Added a waitrt? to cmd_spell routine.&lt;br /&gt;
  v4.11.1 (2022-04-23)&lt;br /&gt;
    Fixed bug with cast_signs() assuming bards are always singing.&lt;br /&gt;
    Cleaned up RoaterEscape(), it will now open containers to look for dagger type weapon.&lt;br /&gt;
	Roater&#039;s and Rift Crawlers are pretty much identical in this aspect. No changes needed to work for both.&lt;br /&gt;
    Added waitrt? to command checks to prevent check from clearing while in rt from previous move.&lt;br /&gt;
  v4.11.0 (2022-04-15)&lt;br /&gt;
    Adjusted hide to specify number of attempts to try and hide if failing: hide 2   &lt;br /&gt;
	Added Swift Justice tracking command check: (justice) (!justice) to use skill when swift justice has charges or has no charges.&lt;br /&gt;
  v4.10.1 (2022-04-04)&lt;br /&gt;
    Update consecrate to not return from hunt if blessing a sanctified weapon&lt;br /&gt;
  v4.10.0 (2022-04-02)&lt;br /&gt;
    Fixed pummel buff check from crushing blows to concussive blows.&lt;br /&gt;
    Added stomp command for Tremors.&lt;br /&gt;
  v4.9.0 (2022-03-24)&lt;br /&gt;
    Added support for briar weapons. Will check for buff and check status of weapons charge.&lt;br /&gt;
    Added support for assume aspect. Will alternate between aspects or evoke for one aspect.&lt;br /&gt;
    Added support for cman stance perfection. Put 10,20,30,ect in attack stance box.&lt;br /&gt;
    Fixed dhurl command knowing weapon auto returned from bond.		&lt;br /&gt;
  v4.8.7 (2022-03-12)&lt;br /&gt;
    Fixed mstrike cooldown and debuff checks.&lt;br /&gt;
    Added Barkskin cooldown support. Add 605 to your society abilities box.&lt;br /&gt;
    Added song renewal mana cost check to cast_signs()&lt;br /&gt;
    Fix for animated slushes registering as animates&lt;br /&gt;
    Added (censer) command check to attempt a 320 before the command.&lt;br /&gt;
    Added hurl command. Will hurl and recover item.&lt;br /&gt;
    Fix familiar check to not cause familiar to return  &lt;br /&gt;
  v4.8.6 (2022-03-10)&lt;br /&gt;
    Fixed conflict with 1040 and warcry shout. Simply &#039;1040&#039; to use 1040 not shout 1040.&lt;br /&gt;
    Fixed missing msg from bullrush and forced prone check for bullrush/twin weapon.&lt;br /&gt;
    Update for disk detection of group members&lt;br /&gt;
  v4.8.5 (2022-03-10)&lt;br /&gt;
    Added attempt mana pulse on 130 fog option if not enough mana&lt;br /&gt;
  v4.8.4 (2022-03-08)&lt;br /&gt;
    Fixed 9605 in society box, integrated surge in hunting commands.&lt;br /&gt;
    Added command switch to refresh buffs based on duration.&lt;br /&gt;
  v4.8.3 (2022-03-08)&lt;br /&gt;
    Fixed global variable call for standing&lt;br /&gt;
  v4.8.2 (2022-03-08)&lt;br /&gt;
    Added version check for Infomon due to new Effects/Cmans&lt;br /&gt;
  v4.8.1 (2022-03-08)&lt;br /&gt;
    Added version check for Lich due to new Effects/Cmans&lt;br /&gt;
  v4.8.0 (2022-03-07)&lt;br /&gt;
    Integrated weapon/shield/cman skills and warcries.&lt;br /&gt;
    barrage(!barrage) will only barrage if you don&#039;t have the buff&lt;br /&gt;
    bellow all, will aoe bellow vs bellow target, will single target bellow&lt;br /&gt;
  v4.7.7 (2022-03-02)&lt;br /&gt;
    Add option to Stop for Deaders on Hunting tab&lt;br /&gt;
    When enabled, bigshot will PAUSE when it encounters a dead player&lt;br /&gt;
  v4.7.6 (2022-03-02)&lt;br /&gt;
    Updated Fog options to include Sigil of Escape&lt;br /&gt;
  v4.7.5 (2022-02-02)&lt;br /&gt;
    Updated needs bless logic to to remove false positives (most cases)&lt;br /&gt;
  v4.7.4 (2022-01-29)&lt;br /&gt;
    Updated target logic to ignore sorcerer animates.&lt;br /&gt;
    Updated loot subroutine to flag looting active - prevent BS from forcing stand&lt;br /&gt;
  v4.7.3 (2022-01-25)&lt;br /&gt;
    Updated bless routines to current text and provide option to continue hunt.&lt;br /&gt;
    Disabled default startup sound value. Uncomment print &amp;quot;\a&amp;quot; unless $bigshot_quick if function is desired.&lt;br /&gt;
  v4.7.2 (2021-12-14)&lt;br /&gt;
    Updated GTK version detection for proper display in dark-mode&lt;br /&gt;
  v4.7.1 (2021-12-12)&lt;br /&gt;
     Adding bigshot single run mode accessed via ;bigshot single  &lt;br /&gt;
  v4.7.0 (2021-08-11)&lt;br /&gt;
    -Updated group and event namespace to prevent future conflicts&lt;br /&gt;
    -Consolidated Changelog and updated it on the GS wiki&lt;br /&gt;
  v4.6.0 (2021-08-06)&lt;br /&gt;
    -Separated bigshot_monitor to only run while hunting (to resolve lag in very active rooms)&lt;br /&gt;
    -Added initial automatic weapon reactions&lt;br /&gt;
  v4.5.0 (2021-06-25)&lt;br /&gt;
    -Add fog only if encumbered or injured checkbox&lt;br /&gt;
  v4.4.0 (2021-06-25)&lt;br /&gt;
    -Add flee from voids option to general tab&lt;br /&gt;
  v4.3.4 (2021-05-29)&lt;br /&gt;
    -Updated UAC mstrike to always use tier3 for auto-tiering&lt;br /&gt;
  v4.3.3 (2021-05-12)&lt;br /&gt;
    -Revise GTK3 check to be more compatible with older versions of GTK that don&#039;t support Gtk::Version calls&lt;br /&gt;
  v4.3.2 (2021-05-02)&lt;br /&gt;
    -Updated Etheral Censer to be used in signs based on the cooldown refreshes&lt;br /&gt;
  v4.3.1 (2021-04-30)&lt;br /&gt;
    -Added regex for stance changing when using STANCE VERBOSE&lt;br /&gt;
  v4.3.0 (2021-04-13)&lt;br /&gt;
    -Add flee from boon/boss/glamour mobs checkbox on attacking tab&lt;br /&gt;
  v4.2.4 (2021-03-02)&lt;br /&gt;
    -Fix cast roundtime regex match for chan&lt;br /&gt;
  v4.2.3 (2021-02-10)&lt;br /&gt;
    -Fixes cman&#039;s to be usable with the force until option.&lt;br /&gt;
  v4.2.2 (2021-01-19)&lt;br /&gt;
    -Fix for certain values getting set when opening GUI, overwriting own settings&lt;br /&gt;
  v4.2.1 (2021-01-12)&lt;br /&gt;
    -Fixed stand() def to not stand if xbow kneel/fire&lt;br /&gt;
    -Update buffer check for SMR result txt&lt;br /&gt;
  v4.2.0 (2021-01-03)&lt;br /&gt;
    -Removed 1617 from forced stance change&lt;br /&gt;
    -Added customizable interaction monitoring panel&lt;br /&gt;
  v4.1.1 (2020-12-31)&lt;br /&gt;
    -Added cleanup from selfcast check in bigshot PR #374&lt;br /&gt;
    -Included v3.93 updates&lt;br /&gt;
    -Added loot room option when no loot script is defined&lt;br /&gt;
    -Migrated v3 changelog to gswiki&lt;br /&gt;
    -Updated Version Control&lt;br /&gt;
  v4.1 (2020-12-31)&lt;br /&gt;
    -Added GTK2/GTK3 dual logic for compatability&lt;br /&gt;
  v4.0 (2020-08-13)&lt;br /&gt;
    -Fix for ambush (Head/Neck/Eyes), no longer get stuck ambushing a head/neck over and over&lt;br /&gt;
    -Archery Updates&lt;br /&gt;
       Change aim location based on target actual status&lt;br /&gt;
       BUGFIX:Aiming should now actually function as intended when switching targets&lt;br /&gt;
       --TODO!Crossbows should now work with Bigshot, see pre-fire commands for details&lt;br /&gt;
    -Group logic changes&lt;br /&gt;
       Followers can now stay in the resting area and wait to run scripts/commands until leader is done&lt;br /&gt;
          To do this, have the leader disband before running their scripts. With quiet followers selected&lt;br /&gt;
          Followers attempt to not execute scripts/actions until the leader is in the rest area with them (regardless of disband)&lt;br /&gt;
       Quiet Followers can be toggled off (not recommended)&lt;br /&gt;
       Followers will now wait to cast signs until hunt is about to begin&lt;br /&gt;
       Leader will no longer begin hunt until all followers are present and ready to go&lt;br /&gt;
       --TODO!Leader will wait at rallypoint for entire group to arrive before moving to hunt starting room&lt;br /&gt;
            If this feature is selected, the leader will not wait to hunt when at hunt starting room after rallypoint check&lt;br /&gt;
       BUGFIX:Fix for fatal recursion cause by obvious hiding players&lt;br /&gt;
       --TODO!Group should move more intelligently when seeking leader if group is broken&lt;br /&gt;
       BUGFIX:Group will now be more responsive to commands&lt;br /&gt;
    -Major UCS updates&lt;br /&gt;
        BUGFIX:Will now use Tier 3 attack when tiered up to 3 and no follow up available for everything, not just jab&lt;br /&gt;
        BUGFIX:Updates to UCS Mstrike, should no longer do open mstrikes when at or below threshhold instead of targetted mstrike&lt;br /&gt;
        UCS mstrike threshold merged with MStrike tab threshold&lt;br /&gt;
        --Still to be done: Per creature tier ups&lt;br /&gt;
    -Bigshot now has the ability to turn some individual checks on and off&lt;br /&gt;
          Functionality allows for custom hunting scripts to be built using Bigshot logic&lt;br /&gt;
          Added ability to send custom &amp;quot;fput&amp;quot; to Group&lt;br /&gt;
          Added ability to send custom &amp;quot;client_put&amp;quot; to Group&lt;br /&gt;
  v3.92 (2020-07-08)&lt;br /&gt;
    -Added LTE support for followers, overkill support for followers, &amp;amp; fried hunting commands for followers&lt;br /&gt;
  v3.91 (2020-06-16)&lt;br /&gt;
    -Added longterm boost usage option&lt;br /&gt;
  v3.90 (2020-05-19)&lt;br /&gt;
    -Minor fix to add a delay to 130/sym of return/1020 return option case in RT&lt;br /&gt;
  v3.89 (2020-03-28)&lt;br /&gt;
    -Crude fix for archery update, BLANK out your ammo &amp;amp; ammo container setting to NOT attempt to get ammo any longer&lt;br /&gt;
  v3.88 (2020-03-28)&lt;br /&gt;
    -Fixed a bug with obvious_hiding_player detection (Probably, at least)&lt;br /&gt;
    -Fixed a bug with poaching when other players are present&lt;br /&gt;
    -Cleaned out changelog history after updating wiki&lt;br /&gt;
    -Re-organized global variables and requires statements (alphabetized)&lt;br /&gt;
    -Added a sleep between resting_commands and hunting_prep_commands to prevent issues&lt;br /&gt;
    -Replaced all pause commands with sleep&lt;br /&gt;
    -Updated all sleep commands to follow proper syntax&lt;br /&gt;
  v3.87 (2020-19-11)&lt;br /&gt;
    -Added overkill counter for extra killed monsters&lt;br /&gt;
    -Tooltip updates&lt;br /&gt;
    -Formatting changes to make script more easily read&lt;br /&gt;
  v3.86 (2020-03-11)&lt;br /&gt;
    -Added outside &amp;amp; !outside command checks&lt;br /&gt;
  v3.85 (2020-02-28)&lt;br /&gt;
    -Resolved `block in setup` error when running setup in Fedora&lt;br /&gt;
  v3.84 (2020-02-15)&lt;br /&gt;
    -Fix a bug with &amp;quot;obvious hiding&amp;quot; players detection&lt;br /&gt;
  v3.83 (2020-02-13)&lt;br /&gt;
    -Added check for &amp;quot;obvious hiding&amp;quot; players (SET ObviousHiding ON)&lt;br /&gt;
  v3.82 (2020-02-02)&lt;br /&gt;
    -Added a v &amp;amp; !v command checks for checking spirit&lt;br /&gt;
    -Possible fix for FOG_RETURN not loading when doing ;bigshot setup properly&lt;br /&gt;
    -Added ;bigshot profile support&lt;br /&gt;
      ;bigshot profile load &amp;lt;name here, no spaces&amp;gt;&lt;br /&gt;
      ;bigshot profile save &amp;lt;name here, no spaces&amp;gt;&lt;br /&gt;
      Allows saving of bigshot profiles as YAML files, saved in your LICH\scripts\bigshot_profiles folder&lt;br /&gt;
  v3.81 (2019-09-06)&lt;br /&gt;
    -Fix for wands with extra descriptors in hand vs grab name&lt;br /&gt;
    -Add 1020 as an option for fleeing&lt;br /&gt;
  v3.80 (2019-08-01)&lt;br /&gt;
    -Exit cleanly from bounty mode&lt;br /&gt;
    -Don&#039;t count regenerating troll kings when deciding if there&#039;s enough enemies to flee&lt;br /&gt;
    -Treat intense shimmering circles like clouds when deciding to flee&lt;br /&gt;
    -Don&#039;t require Gtk if $bigshot_headless is defined&lt;br /&gt;
  v3.79 (2019-05-25)&lt;br /&gt;
    -Removed 309 from hardcoded selfcast list&lt;br /&gt;
  v3.78 (2019-05-10)&lt;br /&gt;
    -Missed a few settings for flying&lt;br /&gt;
  v3.77 (2019-05-10)&lt;br /&gt;
    -Added flying/!flying as command checks for attacks&lt;br /&gt;
  v3.76 (2018-07-04)&lt;br /&gt;
    -Fixed INCANT command to respect Spell.stance setting&lt;br /&gt;
  v3.75 (2018-07-02)&lt;br /&gt;
    -Fix ;bigshot bounty&lt;br /&gt;
    -Don&#039;t flee from your own group even if they&#039;re not hunting&lt;br /&gt;
  v3.74 (2018-04-30)&lt;br /&gt;
    -Added water as option for cmd_spell extra variable&lt;br /&gt;
  v3.73 (2018-04-22)&lt;br /&gt;
    -Add flee from webs option&lt;br /&gt;
    -Add 917 to not stance offensive if using incant&lt;br /&gt;
  v3.72 (2017-10-10)&lt;br /&gt;
    -Fix bug in berserk&lt;br /&gt;
  v3.71 (2017-10-08)&lt;br /&gt;
    -Attack line now recognizes &amp;quot;wand&amp;quot; by itself&lt;br /&gt;
    -Fix GameObjAdd autostart&lt;br /&gt;
  v3.70 (2017-09-28)&lt;br /&gt;
    -Fix download loop of GameObjAdd.lic&lt;br /&gt;
  v3.69 (2016-09-20)&lt;br /&gt;
    -Wont stance offensive for the spell 703 anymore&lt;br /&gt;
    -Fixes for delayed looting&lt;br /&gt;
    -option to pull players to there feet, Defaults to on&lt;br /&gt;
      -Only pulls the player to there feet if their is an aggressive npc in the room with them&lt;br /&gt;
  v3.68 (2016-09-14)&lt;br /&gt;
    -option to stance defensive before looting if not all the creatures in room are dead&lt;br /&gt;
    -wracking option now will use &amp;quot;Symbol of Mana&amp;quot; for voln peoples :)&lt;br /&gt;
    -Performs the bless routine if needed when you wander or go to rest now&lt;br /&gt;
    -Added a delayed looting option&lt;br /&gt;
      -skips looting when creature still alive in the room or its been less than 15 seconds since the last creature died&lt;br /&gt;
    -Will now try to escape from the inside of a roa&#039;ter if you get swallowed&lt;br /&gt;
  v3.67 (2016-08-31)&lt;br /&gt;
    -Optimization for priority checks, wont run that section of code so often anymore.&lt;br /&gt;
    -Manual aiming for unarmed combat routine. Command is &amp;quot;unarmed &amp;lt;punch/kick/grapple/jab&amp;gt; &amp;lt;aim location&amp;gt;&amp;quot;&lt;br /&gt;
      -Will swap to the default aiming when you can&#039;t reach what your aiming at or its already missing.&lt;br /&gt;
  v3.66 (2016-08-29)&lt;br /&gt;
    -Only checks for group members if there are other pcs in the room&lt;br /&gt;
    -Won&#039;t loot in the Duskruin Arena anymore&lt;br /&gt;
  v3.65 (2016-08-28)&lt;br /&gt;
    -Fixes for targeting, fleeing, and priority targeting&lt;br /&gt;
      -This should let bigshot work in the duskruin arena&lt;br /&gt;
  v3.64 (2016-08-23)&lt;br /&gt;
    -Changed Celerity option to only recast if you have less than 3 seconds left&lt;br /&gt;
    -Changed so it doesn&#039;t change into your attacking stance before casting&lt;br /&gt;
    -Changed Fog return option to be an option pulldown instead of a checkbox, defaults to None&lt;br /&gt;
  v3.63 (2016-08-23)&lt;br /&gt;
    -Added option to use Celerity (506) for any command.&lt;br /&gt;
      -Will cast if you dont have it on you or you have less than 6 seconds or so left on haste.&lt;br /&gt;
      -Just add haste or 506 to the front of any command you want it to be cast before.&lt;br /&gt;
      -example: &amp;quot;506 kill target&amp;quot; or &amp;quot;haste kill target(x3),525(pcs)&amp;quot;&lt;br /&gt;
  v3.62 (2016-08-23)&lt;br /&gt;
    -UAC Mstrike no longer will ignore the number of creatures in the room in some instances.&lt;br /&gt;
    -Option to flee the room when player-defined message from the game happen&lt;br /&gt;
      -Check the Attacking tab for box to input your text&lt;br /&gt;
    -Fixed issue with bigshot not targeting &amp;quot;do not count these&amp;quot; targets&lt;br /&gt;
    -Fixed issue with force command until # not working correctly&lt;br /&gt;
  v3.61 (2016-08-15)&lt;br /&gt;
    -Fix for new fogging option triggering at weird times.&lt;br /&gt;
  v3.60 (2016-08-15)&lt;br /&gt;
    -Fix for ;bigshot quick not working correctly when you dont have any quickhunt targets.&lt;br /&gt;
    -Option to use Spirit Guide (130) or Voln Symbol of Return when going to rest. Option is on Rest Tab.&lt;br /&gt;
  v3.59 (2016-08-13)&lt;br /&gt;
    -To prevent me having to duplicate code, Bigshot will now download GameObjAdd.lic and make it autostart&lt;br /&gt;
    -Spells should no longer target npcs when they are meant to target you. Let me know if something happens otherwise.&lt;br /&gt;
  v3.58 (2016-08-07)&lt;br /&gt;
    -companions and familiars should now be excluded from fleeing and targeting stuff&lt;br /&gt;
    -companions and familiars count for poaching checks now just like a disk does&lt;br /&gt;
      -this check only works for solo hunters, group bigshot hunters will ignore this&lt;br /&gt;
    -Ambushers that are part of your group should no longer trigger the poaching routine&lt;br /&gt;
    -Bigshot will on first run for a Ranger with a companion set your companion to a variable.&lt;br /&gt;
      -You can reset this variable with ;bigshot ranger or ;bigshot companion&lt;br /&gt;
  v3.57 (2016-08-04)&lt;br /&gt;
    -Bigshot won&#039;t consider arms(709) and demons(725) as room creatures for targeting or fleeing purposes&lt;br /&gt;
    -Priority should now ignore some NPCs when it does its calculations&lt;br /&gt;
  v3.56 (2016-08-02)&lt;br /&gt;
    -Think I have all the Reim mobs handled&lt;br /&gt;
    -Fix for Multi-account hunting...oops&lt;br /&gt;
    -other minor tweaks&lt;br /&gt;
  v3.55 (2016-07-31)&lt;br /&gt;
    -Target tracking for Aura of the Arkati (1614). Wont cast again on something that is affected.&lt;br /&gt;
    -More Reim creatures added, Still missing creatures from the gypsy camp probably, celestial types&lt;br /&gt;
    -New Command check: noncorporeal - Will see if current creature is non-corporeal undead&lt;br /&gt;
    -New Command check: pcs - Will check for other non-grouped players in the room&lt;br /&gt;
  v3.54 (2016-07-30)&lt;br /&gt;
    -REIM! Quick update for some support for reim creatures&lt;br /&gt;
    -Smite tracks individual mobs now, So if you switch creatures before killing it, will smite the new one&lt;br /&gt;
    -Fixed the lag issue&lt;br /&gt;
  v3.53 (2016-07-29)&lt;br /&gt;
    -Incant should now work for any incant combination&lt;br /&gt;
    -Bless can now bless two weapons that lose bless in same attack&lt;br /&gt;
  v3.52 (2016-07-27)&lt;br /&gt;
    -Changed variable tracking to be downstream hook instead of exec script&lt;br /&gt;
      -Please let me know if anything doesn&#039;t work like it did in the previous versions&lt;br /&gt;
    -Tracking added for Corrupt Essence (703), will no longer repeatedly cast and waste that precious mana&lt;br /&gt;
      -You can also cast it open as &amp;quot;incant 703 open&amp;quot;&lt;br /&gt;
    -Added flee from vines option to first tab of ;bigshot setup&lt;br /&gt;
  v3.51 (2016-07-25)&lt;br /&gt;
    -Special coding for 1700. Wont stance offensive for &amp;quot;incant 1700&amp;quot;, Will stance offensive for &amp;quot;incant 1700 evoke&amp;quot;&lt;br /&gt;
    -Fix for ;Bigshot quick not working when your quickhunt targets was empty&lt;br /&gt;
  v3.50 (2016-07-24)&lt;br /&gt;
    -Untargetable and Targetable lists now use the name instead of noun. Option to clear these so they can start fresh using ;bigshot reset. This will fix the issue for being unable to target guards in warcamps.&lt;br /&gt;
    -Targetable and Untargetable are now listed in ;bigshot display&lt;br /&gt;
    -Fix for Head/Tail Routine. Head wasn&#039;t waiting for the tail members to join bigshot group.&lt;br /&gt;
  v3.49 (2016-07-24)&lt;br /&gt;
    -Updated berserk to use Spell.cast functionality, should now use STOP BERSERK when no alive mobs in the room.&lt;br /&gt;
    -Command check added for poison and disease&lt;br /&gt;
    -Fixed some options that were out of place, oops&lt;br /&gt;
    -Tail should now use scripts when performing pre-hunt commands&lt;br /&gt;
    -Head should wait for tails to be out of RT before heading to rest now&lt;br /&gt;
    -Incant should no longer fry your nerves when you dont have enough mana.&lt;br /&gt;
    -Changed incant to use wands when you dont have enough mana.&lt;br /&gt;
      -Also checks your target before incanting, so you always target the correct creature&lt;br /&gt;
    -Changed wand routine to be able to use multiple wand types, &amp;quot;use this wand type&amp;quot; now takes comma seperated wands &amp;quot;use this wand type&amp;quot; example: &amp;quot;aquamarine wand, bloodwood wand, etc&amp;quot;&lt;br /&gt;
    -Changed incant, spell and wand routines to return to attack stance option instead of stance defensive.&lt;br /&gt;
    -Fixed bug with bless routine, maybe&lt;br /&gt;
    -Option to use Voln SMITE in UAC routine now, instead of always doing it.&lt;br /&gt;
  v3.48 (2016-07-20)&lt;br /&gt;
    -Added Consecrate(1604) to bless routine&lt;br /&gt;
    -Quickhunt targets code update and fixes&lt;br /&gt;
    -Made bless work with identical weapons&lt;br /&gt;
  v3.47 (2016-07-19)&lt;br /&gt;
    -fix for blessing weapons&lt;br /&gt;
  v3.46 (2016-07-19)&lt;br /&gt;
    -now tries to pull someone to their feet when they are lying down/kneeling/etc.&lt;br /&gt;
    -Rewrote the bless option to bless anything that runs out of a bless.&lt;br /&gt;
      -Now located on Attacking Tab as a checkbox&lt;br /&gt;
      -Returns you to your resting area if you can&#039;t bless things.&lt;br /&gt;
    -Added a priority targeting option to hunting tab.&lt;br /&gt;
      -Will switch target based on the order of your valid targets, whenever its attacking.&lt;br /&gt;
    -Added Quickhunt targets, These always are first in terms of priority (Quickhunt targets, room targets)&lt;br /&gt;
    -You can use the (a)|(b)|(etc) in here instead of just the Quickhunt routine every time.&lt;br /&gt;
  v3.45 (2016-07-09)&lt;br /&gt;
    -better code for checking for an escort, less error prone now (:&lt;br /&gt;
    -fixed rare issue with ambusher jumping out of hiding just as go to move and it screwing up bigshot&lt;br /&gt;
    -UAC Bless option changed so that you can leave it blank and it wont stop hunting. Has tooltip explaining different options.&lt;br /&gt;
  v3.44 (2016-07-01)&lt;br /&gt;
    -Fix for the fix for the fix!!&lt;br /&gt;
    -Added a check for spell 608 to skip if already hidden&lt;br /&gt;
    -Added hidden and !hidden a command check, hidden only works when your hiding, !hidden when your not hiding&lt;br /&gt;
  v3.43 (2016-07-01)&lt;br /&gt;
    -Fix for the Fix :(&lt;br /&gt;
  v3.42 (2016-06-30)&lt;br /&gt;
    -Fix for mob command check due to recent change&lt;br /&gt;
    -Optimized the escort npc check&lt;br /&gt;
  v3.41 (2016-06-30)&lt;br /&gt;
    -Fixed Head/Tail bigshot hunting&lt;br /&gt;
  V3.40 (2016-06-30)&lt;br /&gt;
    -Mstrike will now cast 1107 and 1607 when appropriate&lt;br /&gt;
    -Quick Hunting mode tweaked so that it works when your in a group, or in a room that isn&#039;t mapped&lt;br /&gt;
    -added inverse command checks, put a ! in front of the command check, i.e kill(!h60)&lt;br /&gt;
    -Doesn&#039;t count escorts anymore for NPC checks&lt;br /&gt;
  V3.39 (2016-06-26)&lt;br /&gt;
    -Quick Hunting mode added - Just start bigshot with the variable quick - ;bigshot quick&lt;br /&gt;
      -Quick Mode overrides your currently setup targets and targets the current room npcs&lt;br /&gt;
      -Wandering, Fleeing and Resting is disabled&lt;br /&gt;
      -Bigshot exits when no NPCS found in room&lt;br /&gt;
      -Uses Quick Hunting Commands&lt;br /&gt;
    -Supports up to 10 (A-J) different attack routines now.&lt;br /&gt;
      -Moved all the attack routines to new tab, Commands&lt;br /&gt;
    -Moved few options to the attacking tab&lt;br /&gt;
  v3.38 (2016-06-25)&lt;br /&gt;
    -added command check for target not being prone or target being undead&lt;br /&gt;
      -current checks are mana/stamina/health(percentage)/encumbrance/unarmed tiering/mobs in room/target not prone/target undead&lt;br /&gt;
      -m/s/h/e/tier/mob/prone/undead respectively&lt;br /&gt;
      -Prone means target is sleeping|webbed|stunned|kneeling|sitting|lying down|prone|frozen|held in place&lt;br /&gt;
  v3.37 (2016-06-24)&lt;br /&gt;
    -can now have two or more checks for a command. i.e kill(mob3 s20 h80) 3 mobs in room, stamina is above 20, health is above 80%&lt;br /&gt;
      -must all be inside the () and seperated with a space&lt;br /&gt;
      -current checks are mana/stamina/health(percentage)/encumbrance/unarmed tiering/mobs in room&lt;br /&gt;
      -m/s/h/e/tier/mob respectively&lt;br /&gt;
  v3.36 (2016-06-23)&lt;br /&gt;
    -Added option for adjusting wander time between rooms (Found on Hunting Map Tab)&lt;br /&gt;
  v3.35 (2016-06-14)&lt;br /&gt;
    -Added option for attacks to only trigger when certain number of creatures are in the room.&lt;br /&gt;
      -Just add (mob#) to the attack you want to do&lt;br /&gt;
    -Fixes for unarmed combat getting stalled&lt;br /&gt;
    -Now attempts to soothe (1205) when appropriate&lt;br /&gt;
  v3.34 (2016-06-08)&lt;br /&gt;
    -Added aiming for archery to the Hunting tab in setup.&lt;br /&gt;
      -Will change location once you stick the place your aiming at, looping until the creature is dead&lt;br /&gt;
    -Made gathering ammo a bit more specific about what its grabbing and where its putting it. &lt;br /&gt;
      -Also works with bolts and darts now if you gathered things to the ground.&lt;br /&gt;
  v3.33 (2016-06-06)&lt;br /&gt;
    -Fix for creatures leaving room and script getting stuck (Hopefully)&lt;br /&gt;
    -Fix for loot script activating during roundtime&lt;br /&gt;
    -Fix for issue with targeting using creatures name or noun&lt;br /&gt;
  v3.32 (2016-06-02)&lt;br /&gt;
    -Changed aiming for UAC to continue until if finds something you can hit or just hits them like normal&lt;br /&gt;
    -Added Voln Smite to command, use Smite in your hunting commands&lt;br /&gt;
    -Rewrote Ambush again! Now has the option to pick locations you want to ambush at on the hunting page&lt;br /&gt;
      -Also supports it from the hunting command i.e. &amp;quot;ambush head&amp;quot;&lt;br /&gt;
      -If left blank without picking any options in setup will default to Head, Right Leg, Left Leg, Chest&lt;br /&gt;
  v3.31 (2016-06-02)&lt;br /&gt;
    -Changed up the ambush command so it ambushes what you said to ambush first, then attempts right leg, left leg, then chest&lt;br /&gt;
    -Added an option to trigger the mstrike during UAC combat, other MSTRIKE options apply&lt;br /&gt;
    -Few fixes to MSTRIKE routine, now checks number of creatures in room as an equal or greater&lt;br /&gt;
    -Fixed bug caused when doing commands like &amp;quot;stance for and kill target&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  Edits by Hazado: (2016-06-01)&lt;br /&gt;
  V3.3 (2016-06-01)&lt;br /&gt;
    -Added UAC combat! Start it with hunting command &amp;quot;unarmed punch/jab/kick/grapple&amp;quot;&lt;br /&gt;
    -Added options for UAC in setup&lt;br /&gt;
    -Added options for MSTRIKEing in setup&lt;br /&gt;
    -Rewrote MSTRIKE routine&lt;br /&gt;
    -can now check mana/stamina/health(percentage)/encumbrance/unarmed tiering inside the hunting commands&lt;br /&gt;
    -Changed wander routine to hit every room in area instead of random wandering&lt;br /&gt;
  &lt;br /&gt;
  Edits by Zhiart: (2016-03-25)&lt;br /&gt;
    -Added new ambush command for legging a critter and then go for the head as long as they are prone (Code by SashaFierce)&lt;br /&gt;
  &lt;br /&gt;
  v3.2 (2/27/2016)&lt;br /&gt;
    -Added changes to fix incant loot issues (might work)&lt;br /&gt;
    -Added ability to detect renaming of bigshot without destroying exec scripts&lt;br /&gt;
    -Converted exec scripts to strings to allow =&amp;gt;quiet&lt;br /&gt;
  &lt;br /&gt;
  Edits by Kalros: (2015-11-2015)&lt;br /&gt;
  v3.1&lt;br /&gt;
    -Fixed Disk poaching.&lt;br /&gt;
    -Fixed First room poaching.&lt;br /&gt;
    -Removed group poaching logic.&lt;br /&gt;
    -Ambush detection via Exec Script.  It will leave the room if it detects an ambush line.&lt;br /&gt;
    -Rewrote and updated wander targeting sections. Fixes some target related bugs.&lt;br /&gt;
    -Moved WAIT command to exec to prevent line buffer issues and make more responsive&lt;br /&gt;
  &lt;br /&gt;
  3.0 (2015-05-30):&lt;br /&gt;
  stop trying to attack monsters that aren&#039;t in the room (wild guess, untested)&lt;br /&gt;
  bumped version up from 2.12052012 to 3.0, because 2.12052012 is a stupid version format&lt;br /&gt;
  added message to trust script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=265043</id>
		<title>Lich:Software/Installation</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=265043"/>
		<updated>2026-09-11T00:45:05Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Installing the Latest Stable Release */ typo in version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
=About=&lt;br /&gt;
&lt;br /&gt;
Lich is an add-on scripting engine that works alongside existing front ends.  The most common installation is a combination of Lich on Windows using the Wrayth or Wizard FE. Lich is also used by many on both MacOS and multiple Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=Installing the Latest Stable Release=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The latest stable lich version is 5.21.0 supporting Ruby 4.0 - published September 10, 2026&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==In-Place Upgrade==&lt;br /&gt;
&lt;br /&gt;
If you are on an older version of Lich 5 and want to upgrade to the most current version, you can choose to either upgrade Lich5 only or both Lich 5 and Ruby. If you&#039;re currently on Lich 4, able to check by running the command &amp;lt;CODE&amp;gt;;e echo LICH_VERSION&amp;lt;/CODE&amp;gt;, go to the [[#Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)|upgrade from Lich 4 section]].&lt;br /&gt;
&lt;br /&gt;
For each section, please follow the directions/commands one at a time.&lt;br /&gt;
&lt;br /&gt;
===Lich 5 Only===&lt;br /&gt;
&lt;br /&gt;
====Lich 5.7 or newer====&lt;br /&gt;
# You must be running Ruby 4.0 or greater for Lich 5.19 +.  If unsure, please update both (see below)!&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Run this command in-game &amp;lt;CODE&amp;gt;;lich5-update --update&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
====Lich 5.6 or older====&lt;br /&gt;
Please proceed to updating both Ruby and Lich 5&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 4.0 &amp;amp; Lich 5===&lt;br /&gt;
This method is for Windows only. Linux and MacOS users, please do a Lich 5 only update and update Ruby manually via normal install/update methods for the OS.&lt;br /&gt;
&lt;br /&gt;
# Logout of all characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall existing Ruby4Lich5 installs from Programs &amp;amp; Features control panel, or alternatively, rename your existing Ruby4Lich5 folder to Ruby4Lich5save. (Defaults to C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the installer and be sure to have both Ruby and Lich 5 option selected&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich &amp;amp; Ruby!&lt;br /&gt;
&lt;br /&gt;
===Ruby 4.0 Only===&lt;br /&gt;
Use this to upgrade to the newest version of Ruby only if you&#039;re already on the latest version of Lich5 and now want to update Ruby afterwards. If you&#039;re not already on the latest version of Lich5, please use previous section steps instead.&lt;br /&gt;
# Logout of all instances/characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall your existing Ruby4Lich5 install via Programs &amp;amp; Features (ensure it&#039;s now gone, default location was C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the new installer and choose to only install Ruby Only&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version Ruby!&lt;br /&gt;
&lt;br /&gt;
==Windows New Installation==&lt;br /&gt;
&lt;br /&gt;
{{blue|These instructions are not for DragonRealms. [[#Ecosystem Information|For those scroll to the bottom]].}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows 11 / 10 / 8 / 7&#039;&#039;&#039; users: you can download the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and install everything you need automatically. Click on the &#039;&#039;&#039;Ruby4Lich5.exe&#039;&#039;&#039; and download it to your computer then double click on the executable in your default download folder. Note, a user may need to adjust their browser or security settings to allow download and installation.&lt;br /&gt;
If you have never played before, follow the &#039;New Installation&#039; instructions. If you have played before, and have used Lich before, follow the &#039;Upgrade Installation&#039; instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Installation for Lich 5 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Please log into the game of your choice through the Simutronics website first&#039;&#039;&#039;.  Install the launcher (not SGE), and install your FrontEnd of Choice.  The Wrayth FrontEnd is presently the supported FrontEnd, but Wizard will work as well, if you are nostalgic.  After you&#039;ve logged in, log out and continue.&lt;br /&gt;
# Download and Run the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe  Installer]. You will receive the Microsoft Warning because this is not distributed through the MS Store.  Click on &#039;More Info&#039; and then select the &#039;Run Anyway&#039; button.&lt;br /&gt;
# The installation may take a few minutes, especially on non-SSD harddrives.&lt;br /&gt;
# A Lich5 folder will be placed on your desktop after the install is finished, open that folder and double click the lich.rbw file contained inside to start Lich&#039;s Game Entry window.&lt;br /&gt;
# Use your existing Simutronics Account and Password and click connect.  Then select the character you wish to play, and select the FrontEnd you wish to use.  Then click the Play button.&lt;br /&gt;
# Your game FrontEnd should start, and you should see Lich5 initializing.  You will see it downloading files - these are the map files, wait for the download to finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
This option is deprecated.  Lich 5 architectures are not compatible with Lich 4. Back up your existing Lich 4 folder, uninstall any existing Ruby executables, and then follow the instructions for a new install above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional assistance in installation can be found in the scripting channel of the GemStone [https://discord.gg/KF9Wr8u Discord].&lt;br /&gt;
&lt;br /&gt;
==MacOS==&lt;br /&gt;
There two common options for playing Gemstone IV on a Mac is either to play natively with Avalon or to use virtualization software such as Parallels with Wrayth/WizardFE. Below are the options on how to do that.&lt;br /&gt;
&lt;br /&gt;
===Native Avalon===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. This process works well for Mac OS Catalina and Big Sur. If you have not updated your Mac OS yet, these instructions may work depending on your actual version.  If you run into a snag, follow the contact instructions provided.&lt;br /&gt;
&lt;br /&gt;
===Parallels Windows===&lt;br /&gt;
With the latest releases of Ruby4Lich5 installer, you can now follow the normal Windows installation for both Intel and Apple silicon based Apple computers.&lt;br /&gt;
&lt;br /&gt;
To install Wrayth/WizardFE, Lich, and Ruby via Parallels you will need to do a few various steps as outlined below. Please note, the rubyw file in C:\Ruby4Lich5\X.X.X\bin may be set to run in compatibility mode for windows 7.  On an ARM Mac running parallels, this may causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file could fixe this issue if it was enabled.&lt;br /&gt;
&lt;br /&gt;
The following steps are to be done AFTER you&#039;ve successfully installed Wrayth/WizardFE and can login normally without Lich5 on the machine. Once you&#039;ve done that and can successful connect normally, then follow these steps:&lt;br /&gt;
# Download and install [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and use default options presented during install&lt;br /&gt;
# Double click the lich.rbw file that is now located in the extracted Lich5 location you did above. Login and play as usual.&lt;br /&gt;
&lt;br /&gt;
==Chromebook &amp;amp; Debian variants==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-debian&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-debian&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Debian/Chromebooks. Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1.&#039;&#039;&#039; &lt;br /&gt;
Update the list of available software and make sure some requirements are installed:&lt;br /&gt;
&amp;lt;!-- don&#039;t think I&#039;m gonna include this stuff but might as well not delete it.&lt;br /&gt;
:&amp;lt;small&amp;gt;sudo: as a super-user&amp;lt;/small&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;apt-get: Debian&#039;s software repository&amp;lt;/small&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;-y: answer all questions yes&amp;lt;/small&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get -y update&lt;br /&gt;
sudo apt-get -y install autoconf bison build-essential curl libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libsqlite3-dev git unzip libcairo2-dev libgirepository1.0-dev libgtk-3-dev gobject-introspection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing Ruby installation rather than installing from scratch, skip steps 2, 3, and 4.  Instead, update your ruby-build with the following command, and then proceed to Step 5.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2.&#039;&#039;&#039;&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3.&#039;&#039;&#039;&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4.&#039;&#039;&#039;&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Arch Linux &amp;amp; Arch-based distributions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-arch&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-arch&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
Update the system and install required dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pacman -Syu&lt;br /&gt;
sudo pacman -S --needed base-devel openssl libyaml readline zlib ncurses libffi gdbm sqlite git unzip curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby 3.4.5 and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fedora==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-fedora&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-fedora&amp;quot;&amp;gt;&lt;br /&gt;
Currently supported versions of Fedora&lt;br /&gt;
* 41 uses Ruby 3.3&lt;br /&gt;
* 42 uses Ruby 3.4&lt;br /&gt;
* 43 uses Ruby 3.4&lt;br /&gt;
All of which are currently compatible with Lich 5.7.0 or higher.&lt;br /&gt;
&lt;br /&gt;
1. Update The Base Installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf -y update&lt;br /&gt;
$ sudo dnf -y install vim git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Install required Ruby and Development packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf install -y autoconf bison cairo-devel curl gcc gdbm gdbm-devel gdk-pixbuf2-devel glib2-devel \&lt;br /&gt;
gobject-introspection-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5a. Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5b. Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Popular Scripts=&lt;br /&gt;
{{#section:Lich:Script Repository|popularscripts}}&lt;br /&gt;
&lt;br /&gt;
=Ecosystem Information=&lt;br /&gt;
&lt;br /&gt;
* DragonRealms Variant - [https://elanthipedia.play.net/Lich_script_repository#Setup_and_Installation Setup and Install instructions]&lt;br /&gt;
&lt;br /&gt;
=Lich Changelog=&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-changelog&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-changelog&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.20.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* bound EAccess auth with a timeout so a stalled SGE backend can&#039;t hang Lich silently (#1502)&lt;br /&gt;
* Linux WINE and Wrayth FE detection (#1517)&lt;br /&gt;
* update Gemstone game-code validations (#1518)&lt;br /&gt;
* preserve bundled display-state tags on quiet-suppressed chunks (#1530)&lt;br /&gt;
* prevent a stray formatting character from appearing in Saga during quiet script output (#1532)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* make $safe_pause_lock holder immune to pause (#1525)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* critranks.rb tolerate nil table rows, fix reload!, index patterns … (#1522)&lt;br /&gt;
* combat module hardening - ordered processing, 22x faster parsing, double-count fix (#1523)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.20.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add concurrent runtime I/O and multi-client detach support (#1459)&lt;br /&gt;
* --bind-address speaks the same keywords as --detachable-client (#1461)&lt;br /&gt;
* GUI Launcher Improvements (#1463)&lt;br /&gt;
* Add supervised child script APIs (01 of 06) (#1474)&lt;br /&gt;
* Add forced script teardown command (06 of 06) (#1479)&lt;br /&gt;
* teardown and distinguishable errors for Script.run_child (#1501)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRCMM.moon_weapon_duration - read a moon weapon&#039;s remaining life (#1483)&lt;br /&gt;
* id-based creature tracking from crtrStatus + assess (#1485)&lt;br /&gt;
* capture room UID from &amp;lt;nav&amp;gt; tag; stop enforcing ShowRoomID; opt-in room-id placement (#1491)&lt;br /&gt;
* user-extensible scroll substitutions via settings (01 of 06) (#1512)&lt;br /&gt;
* user-extensible boxes and trash receptacles (03 of 06) (#1514)&lt;br /&gt;
* user-extensible summoned-weapon adjectives (04 of 06) (#1515)&lt;br /&gt;
* user-extensible flavor-text stripping (05 of 06) (#1516)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* gameobj add full_name matcher to type/sellable classification (#1453)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* prevent empty/partial GameObj registry reads during mid-stream refresh (#1370)&lt;br /&gt;
* no-op Gtk.lich_main_quit when no main loop is nested (#1464)&lt;br /&gt;
* correct path-flag aliases and document all path options (#1472)&lt;br /&gt;
* Synchronize script lifecycle transitions (02 of 06) (#1475)&lt;br /&gt;
* Coordinate script shutdown draining (03 of 06) (#1476)&lt;br /&gt;
* Harden script lifecycle ownership (05 of 06) (#1478)&lt;br /&gt;
* surface the underlying LoadError in dependency alerts (#1480)&lt;br /&gt;
* extract game-agnostic CreatureBase into lib/common (#1484)&lt;br /&gt;
* bound GemCheck alert dialogs with a timeout so they can&#039;t hang forever (#1488)&lt;br /&gt;
* identify Genie as the frontend for headless launches (#1490)&lt;br /&gt;
* restore detachable client disconnect notice to stdout (#1492)&lt;br /&gt;
* harden detachable client teardown and escape init payload (#1493)&lt;br /&gt;
* resolve GameObj status visibility during staged  refresh (#1497)&lt;br /&gt;
* compact client write queue instead of ending the session (#1498)&lt;br /&gt;
* scrub startup credentials once login completes (#1499)&lt;br /&gt;
* Honor Simu-side teardown for 10 seconds (#1505)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* resolve no-UID rooms carrying a stored UID instead of returning nil (#1467)&lt;br /&gt;
* equipmanager.rb - reliable ranged-weapon transitions - stow ammo after unload + verify offhand wield hand (#1468)&lt;br /&gt;
* common-healing.rb -  DRCH.bind_wound: only dispose a dislodged item while it is in hand (#1469)&lt;br /&gt;
* preserve game RealID in room title (GS parity for &amp;quot;;display roomid title&amp;quot;) (#1500)&lt;br /&gt;
* Refine need_buffs? logic for non-recast spells to correctly check cyclic spells. (#1503)&lt;br /&gt;
* reduce symbol-torn scale scrolls to gettable noun (#1506)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* lower game socket keepalive idle from 120s to 30s (#1449)&lt;br /&gt;
* resilient ActiveSessions ownership + shutdown watchdog (#1452)&lt;br /&gt;
* Quit Gtk.main cleanly (#1455)&lt;br /&gt;
* Refactor regex to string comparisons for ARGV options (#1456)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* ingest newly-exposed mindState experience and roommeta room fields (#1450)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add character generator support via EAccess protocol (#1384)&lt;br /&gt;
* Add modern script command shutdown method (#1385)&lt;br /&gt;
* migrate the server-stream parser from REXML to Ox, with pipe-mode benchmark harness and DR parser coverage (#1396)&lt;br /&gt;
* enumerate script subdirs with file glob (#1397)&lt;br /&gt;
* add --bind-address option to set listen socket address (#1405)&lt;br /&gt;
* add central method to determine lich ver (#1417)&lt;br /&gt;
* setup_files: support scripts/data/custom for user data overrides (#1431)&lt;br /&gt;
* Modify running? method to support optional exact matching of script names (#1436)&lt;br /&gt;
* keyword bind hosts for the detachable client (tailscale/lan/any) (#1437)&lt;br /&gt;
* add roomlinks/roommono toggles for room display (#1438)&lt;br /&gt;
* self-healing gem requires (#1439)&lt;br /&gt;
* various Saga FE compatibility tweaks (#1443)&lt;br /&gt;
* add macOS limited gem recovery (#1448)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Capture combat position from the balance status line (#1400)&lt;br /&gt;
* detect scheduled shutdown and expose it on DRParser (#1409)&lt;br /&gt;
* xmlparser: add structured parser for the assess (combat situation) stream (#1413)&lt;br /&gt;
* Implement DRCA.need_buffs? method for buff checks (#1428)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* anchor Infomon parser regex unions to line start (#1391)&lt;br /&gt;
* creature xml additions (#1425)&lt;br /&gt;
* add creature template library (#1427)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* surface a failed Game.open in the connect timeout (#1408)&lt;br /&gt;
* bound long-session memory growth (index/hook/watchfor/buffer leaks) (#1410)&lt;br /&gt;
* improve and harden shutdown (#1416)&lt;br /&gt;
* use bundler to check for required Ruby gems (#1420)&lt;br /&gt;
* pin lich directory for gemfile check (#1423)&lt;br /&gt;
* Show CLI login ARGV for SAL connections (#1424)&lt;br /&gt;
* increase read timeout on idle socket to 300 seconds (#1426)&lt;br /&gt;
* monkeypatch gi for memoryreleaser / asyncprocessor until patched upstream (#1429)&lt;br /&gt;
* Mapdb sort tags by downcase and original case (#1433)&lt;br /&gt;
* stop locking the load path at boot; keep Gemfile.lock in sync on self-update (#1434)&lt;br /&gt;
* minimum Ruby 4.0 required &amp;amp; migrate Ruby version check (#1444)&lt;br /&gt;
* align --announce with --update for Ruby version (#1447)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* BalanceValue regex to match combat status lines (#1398)&lt;br /&gt;
* equipmanager.rb - Fix unload weapon detection when AimTimerDialog tag is prepended (#1414)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* global_defs update pushStream regex to include &#039;reserve&#039; id (#1379)&lt;br /&gt;
* psms Warcry.available? correction (#1387)&lt;br /&gt;
* xmlparser support new field exp, climate, terrain XML feeds (#1388)&lt;br /&gt;
* global_defs move() update regex for standing condition (#1407)&lt;br /&gt;
* Currency add method to retrieve aevit event currency (#1411)&lt;br /&gt;
* Stash check result type before comparing regex for wear_to_inv (#1430)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.18.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-crafting add method for creating mechanisms (#1375)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* stringproc normalize CRLF | CR to LF (#1378)&lt;br /&gt;
* rubocop custom cop ascii only cleanup (#1382)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* equipmanager update to assume missing items aren&#039;t worn (#1376)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1326)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Script module replace MemoryReleaser with GC.start for cleanup (#1364)&lt;br /&gt;
* Add sqlite busy timeout policy to core (#1365)&lt;br /&gt;
* Script#kill remove GC.start and add optional instrumentation (#1368)&lt;br /&gt;
* reorder shutdown ala MahtraDR and detect script teardown de... (#1369)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* harden custom repo identity, collision, and contract boundaries (#1333)&lt;br /&gt;
* stop SessionLifecycle before closing database on normal exit (#1334)&lt;br /&gt;
* harden FeatureFlags for closed db handle (#1335)&lt;br /&gt;
* SynchronizedSocket write resilience and zombie client elimination (#1338)&lt;br /&gt;
* correct RP timing issue for release notes (#1348)&lt;br /&gt;
* gate object cleanup in GTK queue (#1354)&lt;br /&gt;
* recover from cross-process zombie in ActiveSessions service (#1355)&lt;br /&gt;
* Improve shutdown session state handling (#1359)&lt;br /&gt;
* non-ascii hygeine to address rubocop errors (#1360)&lt;br /&gt;
* Remove debug log IO from heartbeat tick loop (#1363)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRC text2num correction for thousand (#1343)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Overwatch add REVEALED_EXPLODES regex pattern (#1356)&lt;br /&gt;
* Stash add_to_bag result type check before regex compare (#1357)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* enable heartbeat-driven failover for ActiveSessions service owner (#1340)&lt;br /&gt;
* copy Gemfile and LICENSE during self-update (#1345)&lt;br /&gt;
* Add top-level parse_args/display_args bridge to global_defs (#1346)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* replace undefined custom_require in check_moonwatch (#1336)&lt;br /&gt;
* set_stance places 100 in the correct positional slot (#1337)&lt;br /&gt;
* cache SlackBot users list to prevent API throttling (#1342)&lt;br /&gt;
* Add CORE_AUTOSTART sentinel to skip dependency.lic autostart helpers (#1344)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon Status.cutthroat? Effect Debuff correction (#1331)&lt;br /&gt;
* add support for RESERVE xml in GameObj.reserve (#1341)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* custom 3rd-party repo support for ScriptSync (#1285)&lt;br /&gt;
* Add get_settings, get_data, start_scripts_if_available to core (#1305)&lt;br /&gt;
* Add Map.apply_wayto_overrides for personal map overrides (#1306)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Decouple SetupFiles from script-scoped echo and XML feed timing (#1304)&lt;br /&gt;
* Add game flags and obsolete script warnings to DRInfomon startup (#1307)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* use :__unset for --without-frontend CLI request YAML matches (#1301)&lt;br /&gt;
* prevent zombie server deadlock in Active Sessions accept loop (#1302)&lt;br /&gt;
* improve MacOS keychain system check for older OS variants (#1310)&lt;br /&gt;
* stub sync_all_repos to prevent leaked thread in games_spec (#1311)&lt;br /&gt;
* enforce beta confirmation 10s timeout (#1315)&lt;br /&gt;
* use send(:respond) in StatusReporter fallback path (#1316)&lt;br /&gt;
* ensure SessionLifecycle.stop runs on abnormal exit (#1317)&lt;br /&gt;
* address ActiveSessions lifecycle hot path feature-flag polling (#1325)&lt;br /&gt;
* catch ECONNRESET in _puts and bound walk_to retry depth (#1327)&lt;br /&gt;
* safeguard gtk logo.png loading (#1329)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Add InnCheckedOut pattern to parser (#1309)&lt;br /&gt;
* Claim corrections to handle mounts in room_players stream (#1324)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
* repair regression on gui button reenable from refactor (#1297)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Mutli-launch persistent login GUI (#1245)&lt;br /&gt;
* Remove Windows OS CMD prompt flash (#1255)&lt;br /&gt;
* guard against broken pipe errors in Game._puts and send_to_client (#1260)&lt;br /&gt;
* add timeout safety to fput to prevent infinite hangs (#1261)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* anchor stow success pattern to prevent fan close recovery bypass (#1254)&lt;br /&gt;
* add bounded recursion depth limits to 9 methods (#1257)&lt;br /&gt;
* stow_helper failure detection + unload_weapon ammo recovery (#1259)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add InstanceSettings for core Settings API access (#1233)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Overwatch module into core (#1201)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* fix GameObj container initialization and add clear_all_containers (#1226)&lt;br /&gt;
* GameObj object dedupe &amp;amp; GC (#1234)&lt;br /&gt;
* script.rb show Script.kill source (#1235)&lt;br /&gt;
* Exit quickly on CLI authentication failure (#1237)&lt;br /&gt;
* suppress wine detection noise and skip when unneeded (#1244)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DR modules fixes and enhancements (#1232)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* psms.rb add additional failure matches (#1238)&lt;br /&gt;
* Bounty parser fix regex pattern for skin retrieval task (#1242)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* add retry with exponential backoff for all login authentication (#1205)&lt;br /&gt;
* update.rb allow for bugfix betas and branch updates (#1211)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb bug in _key transformation (#1216)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Change server_time_offset in XMLParser to be float instead of int (#1184)&lt;br /&gt;
* change encodings in main.rb to wizard FE only (#1199)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon parser.rb update Account.subscription/type (#1192)&lt;br /&gt;
* spell.rb add last_cast to track last time casted (#1193)&lt;br /&gt;
* stash.rb additional improvements with ReadyList/StowList (#1197)&lt;br /&gt;
* Infomon parser.rb bug in EnhanciveEnd (#1198)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add Genie map cross-reference fields to the DragonRealms map data model (#1169)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRExpMonitor move into core lich (#1154)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* add Enhancive module for enhancive item bonus tracking (#1113)&lt;br /&gt;
* add QStrike module for optimal stamina-based RT reduction (#1114)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* remove strip! from settingsInfo replacement (#1161)&lt;br /&gt;
* map_base.rb sort JSON better (#1171)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* logbook_item recovery when crafted item not in hand (#1175)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* xmlparser.rb capture additional death messaging (#1158)&lt;br /&gt;
* stash.rb ReadyList sheath handling and update inventory checks (#1166)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* allow --add-account to run without yaml and dat (#1143)&lt;br /&gt;
* enable --login for multi-variable custom launch commands (#1144)&lt;br /&gt;
* update.rb pervent update if MIN_RUBY not met (#1146)&lt;br /&gt;
* messaging.rb return &amp;quot;&amp;quot; for xml_encode with Wizard (#1147)&lt;br /&gt;
* prevent closing connection on module reload (#1148)&lt;br /&gt;
* Allow hmr to work on global_defs.rb (#1156)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* buffer split room obj lines and merge instead of appending closing tag to broken line (#1149)&lt;br /&gt;
* add buffering for multiline room players (#1151)&lt;br /&gt;
* add verify_script def here instead of depending on dependency (#1155)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb added updated_at field to upsert_batch (#1145)&lt;br /&gt;
* stowlist.rb check method fix when dead (#1152)&lt;br /&gt;
* readylist.rb check method fix when dead (#1153)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* util.rb only show gem installing debug messaging if gem mis… (#1131)&lt;br /&gt;
* add --gs and --dr, refactor argv_options to helpers (#1133)&lt;br /&gt;
* fix multiple custom entries, improvements to yaml save (#1134)&lt;br /&gt;
* login_tab_utils.rb expand helper text show Warlock (#1135)&lt;br /&gt;
* update CLI for YAML security signature, add auto-convert fo… (#1136)&lt;br /&gt;
* remove password parameter from debug logging in all cases (#1137)&lt;br /&gt;
* reduce minimum GUI window footprint for non-tabbed view (#1138)&lt;br /&gt;
* remove double save in YAML to preserve yaml.bak integrity (#1139)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* stash.rb additional improvements (#1132)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* force system gem install if RubyGems fails (#1126)&lt;br /&gt;
* gui_login prevent destroying window if already destroyed (#1127)&lt;br /&gt;
* add window size / position saves to login GUI (#1128)&lt;br /&gt;
* non tabbed saved entries in reduced button / font size (not… (#1129)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* account manager sorting GUI fix (#1123)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* install_gem_requirements update available gems after install (#1120)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* password_cipher.rb upcase account_name for key (#1118)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* validator.rb change sleep to should_sleep named param (#1116)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* add base stats capture from &#039;info full&#039; command (#1115)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Refocus Frontend (#960)&lt;br /&gt;
* socket configurator to better guard TCPSocket (#976)&lt;br /&gt;
* add simplified DB maintenance (#991)&lt;br /&gt;
* TextStripper module support for XML, HTML, Markdown (#1055)&lt;br /&gt;
* Login modernization and refactor to yaml (#1063)&lt;br /&gt;
* Ruby Memory Releaser module (#1066)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* support meta:trashcan tag for DRCI.dispose_trash (#966)&lt;br /&gt;
* Add GameObj.inv support for DR items (#1080)&lt;br /&gt;
* DRCS allow custom adjective for summoned weapons (#1088)&lt;br /&gt;
* DRParser support for new exp window xml stream elements (rested exp, tdps, favors) (#1104)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Add Armaments (Weapon, Armor, and Shield) Module (#911)&lt;br /&gt;
* add creature module, including Hinterwilds creatures (#1002)&lt;br /&gt;
* Creature module combat tracking (#1003)&lt;br /&gt;
* track time of last total_experience record (#1030)&lt;br /&gt;
* add Injured class for checking ability to perform actions (#1035)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* map dijkstra optimization (#1061)&lt;br /&gt;
* update.rb keep script/data file incase of error on update (#1070)&lt;br /&gt;
* ensure proxy path is set for non-destructive array write-th… (#1073)&lt;br /&gt;
* [lib][global-defs] - move update (#1079)&lt;br /&gt;
* GameObj force new objects ID to be string (#1087)&lt;br /&gt;
* xmlparser.rb gate GSL exits sending behind @send_fake_tags (#1103)&lt;br /&gt;
* change Hash[] pair key conversion to use to_h for Ruby 4.0 (#1108)&lt;br /&gt;
* move gui-login.rb to Ruby standard gui_login.rb (#1111)&lt;br /&gt;
* update location for currency and move game-loader.rb to Ruby standard gameloader.rb (#1112)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRCA allow custom spell prep messaging (#1089)&lt;br /&gt;
* Update Slackbot error handling, and lnet management (#1091)&lt;br /&gt;
* Fix exp mods parsing for DR (#1102)&lt;br /&gt;
* equipmanager.rb support for custom messaging in forester&#039;s longbow (#1105)&lt;br /&gt;
* Fix hang in equipment manager when game doesn&#039;t respond to commands (#1110)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon additional CHE resign regex (#1067)&lt;br /&gt;
* Resource tracking for sorcerer shadow essence (#1085)&lt;br /&gt;
* cman.rb add hamstring regex for already lying down target (#1090)&lt;br /&gt;
* cman.rb hamstring regex update when can&#039;t perform on target (#1092)&lt;br /&gt;
* Bounty parser.rb FWI guard regex update (#1096)&lt;br /&gt;
* currency.rb track gold (#1109)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.12&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (general)&lt;br /&gt;
    Update module strip markdown comments (#1056)&lt;br /&gt;
    Vars/UserVars module fixes and corrections (#1057)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    Infomon parse fix for singular currency (#1051)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (dr)&lt;br /&gt;
    add bput match for system updates preventing actions (#1034)&lt;br /&gt;
    drdefs.rb npc parsing (#1038)&lt;br /&gt;
    Fix container reference in get_item_from_eddy_portal method (#1039)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    bounty location regex needs to match &amp;quot;under&amp;quot; (#1037)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.10&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: games.rb catch additional error for nested single/double quotes (#1031)&lt;br /&gt;
    dr: change keys for DR_SKILLS_DATA[:guild_skill_aliases] to be strings instead of symbols (#1032)&lt;br /&gt;
    gs: Bounty parser for SG npcs matching (#1027)&lt;br /&gt;
    gs: match READY/STOW items with a/an/some inside the link (#1026)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.9&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    gs: StowList/ReadyList reset bug if non-default keys added #1019&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: script.rb show custom at script exit as well (#993)&lt;br /&gt;
    all: Updated update.rb for single trunk and release please (#1001)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.7&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): ensure updates do not target detached proxy views #990 &lt;br /&gt;
fix(gs): bounty parser and move fixes for sailor&#039;s grief #987 &lt;br /&gt;
fix(gs): Infomon xmlparser.rb Ready/Stow fix for LONG before exist #988 &lt;br /&gt;
fix(gs): gameobj.rb for Sailor&#039;s Grief ghostly/boss/guild tentacles #989 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): settings.rb update to preserve root of derived views #975&lt;br /&gt;
fix(all): show custom in various script output when custom script #967&lt;br /&gt;
fix(dr): drparser.rb update for PlayedSubscription #983&lt;br /&gt;
fix(gs): include store location for ReadyList #977&lt;br /&gt;
fix(gs): infomon parser.rb update for ACCOUNT output varies #979&lt;br /&gt;
fix(gs): global_defs.rb move def update for Hive traps #980&lt;br /&gt;
fix(gs): activespell.rb prevent removal of RF Penalty #981&lt;br /&gt;
fix(gs): add .compact to input of Disk.find_by_name #982&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): update.rb word boundary for abbreviations #971&lt;br /&gt;
fix(dr): equipmanager.rb Fix for changed game output. #969&lt;br /&gt;
fix(dr): common-arcana.rb Regalia fix for changed game output. #970&lt;br /&gt;
fix(dr): common-items.rb Fix for changed inventory command output #973&lt;br /&gt;
fix(gs): StowList missing space in capture in xmlparser.rb #963&lt;br /&gt;
fix(gs): stowlist.rb wait for RT when issuing check #964&lt;br /&gt;
fix(gs): readylist.rb wait for RT when issuing check #965&lt;br /&gt;
fix(gs): Bounty heirloom return msg&#039;ing update #972&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
build(all): installer.yml use windows-2022 #950&lt;br /&gt;
fix(all): restore Wrayth / Wizard script execution ability #952&lt;br /&gt;
fix(all): database_adapter.rb error handling improvement #956&lt;br /&gt;
fix(dr): common-items.rb wear/remove messaging additions #949&lt;br /&gt;
fix(dr): games.rb - ignore UIDs for Frostbite mapping #951&lt;br /&gt;
fix(dr): map_dr.rb prevent inadvertent settings changes #958&lt;br /&gt;
fix(gs): GameObj targets for new Sailor&#039;s Grief tentacle npc #948&lt;br /&gt;
fix(gs): map_gs.rb remove delete_if to prevent bad settings #957&lt;br /&gt;
fix(gs): weapon.rb assault break if no targets #962&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): limitedarray.rb max_size increase #946&lt;br /&gt;
fix(all): uservars.rb update for vars method missing #940&lt;br /&gt;
fix(dr): drparser.rb to set ShowRoomID to on if turned off #945&lt;br /&gt;
fix(gs): change namespace accessors to Ruby 2.6 compatible #944&lt;br /&gt;
fix(gs): infomon state reset on status prompt #943&lt;br /&gt;
fix(gs): Societies to check membership for various methods #942&lt;br /&gt;
fix(gs): standardize warcry.rb to match other PSMS #941&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(gs): infomon parser.rb for profile full name matching #938&lt;br /&gt;
fix(gs): force PROFILE FULL to sync CHE info for infomon #937&lt;br /&gt;
fix(dr): Tighten checks on releasing invisibility for thieves #936&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): gameobj.rb - add type? method for explicit type check #928&lt;br /&gt;
- fix(all): messaging.rb encoding issue #933&lt;br /&gt;
- fix(gs): Various CMan cost corrections #932&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- feat(all): settings.rb - proposal for sequel based Settings #591, #875, #889, #896, #927&lt;br /&gt;
- feat(all): util.rb add Ruby gem install helper method #861&lt;br /&gt;
- feat(all): messaging.rb add cmd link method #866&lt;br /&gt;
- refactor(all): games.rb modernization #849, #882, #924&lt;br /&gt;
- fix(all): add class extensions #800&lt;br /&gt;
- fix(all): lich.rb deprecated FE message #852&lt;br /&gt;
- fix(all): messaging.rb fix XML encoding for wizard and avalon #853&lt;br /&gt;
- fix(all): lich.rb class variable not initialized #855&lt;br /&gt;
- fix(all): log.rb force msg to String for regexp comparison #856&lt;br /&gt;
- fix(all): global_defs.rb bug in fput #864&lt;br /&gt;
- fix(all): messaging.rb xml_encode mono method msg #868&lt;br /&gt;
- fix(all): script.rb class to is_a? checks #878&lt;br /&gt;
- fix(all): gameobj.rb deeper lookup #885&lt;br /&gt;
- fix(all): messaging.rb debug not compared to falseclass #887&lt;br /&gt;
- fix(all): change class to is_a? checks #91-3&lt;br /&gt;
- fix(all): Util.issue_command allow single line captures #918&lt;br /&gt;
- fix(dr): drparser.rb casing for Premium status check #842&lt;br /&gt;
- fix(dr): map_dr.rb Don&#039;t assign UID of zero to rooms #844&lt;br /&gt;
- fix(dr): drparser.rb add $last_logoff tracking #851&lt;br /&gt;
- fix(dr): update message patterns in common-items #859&lt;br /&gt;
- fix(dr): add moon_visible?(moon) convenience method to common-moonmage #860&lt;br /&gt;
- fix(dr): exp mods output is not enclosed in preset xml tags anymore #870&lt;br /&gt;
- fix(dr): update.rb beta send validation for genie lich char #880&lt;br /&gt;
- fix(dr): Update regex and parsing for active spells #894&lt;br /&gt;
- fix(dr): add &#039;You scoop&#039; match pattern to common-items #900&lt;br /&gt;
- fix(dr): add missing match patterns #901&lt;br /&gt;
- fix(dr): common-items: add and fix match strings #904&lt;br /&gt;
- fix(dr): Add missing matches for common-items #905&lt;br /&gt;
- fix(dr): Release Khri Vanish if Thief, when going visible #906&lt;br /&gt;
- fix(dr): Fix race condition when clearing and repopulating XMLData.dr_active_spells #907&lt;br /&gt;
- fix(dr): Fix SLS release pattern #908&lt;br /&gt;
- fix(dr): resolve race condition in DR crafting_magic_routine #914&lt;br /&gt;
- fix(dr): xmlparser.rb - Fix XMLData.dr_active_spells race condition #915&lt;br /&gt;
- fix(dr): xmlparser.rb - Clear out spells properly #916&lt;br /&gt;
- fix(dr): drparser.rb update for Platinum account status #922&lt;br /&gt;
- feat(gs): gameobj.rb allow for custom gameobj data #848&lt;br /&gt;
- feat(gs): PSMS updates, including CMan.use #865, #874, #881, #890, #899&lt;br /&gt;
- feat(gs): ReadyList &amp;amp; StowList classes for item tracking #884&lt;br /&gt;
- feat(gs): Breakout and Buildout Societes #919&lt;br /&gt;
- fix(gs): infomon parsing for CHE membership #841&lt;br /&gt;
- fix(gs): map_gs.rb for no UID when hexdigest used #843&lt;br /&gt;
- fix(gs): warcry.rb yowlp :buff to string instead of regexp #847&lt;br /&gt;
- fix(gs): group.rb multiple corrections #850, #869, #883&lt;br /&gt;
- fix(gs): Bounty parser.rb fix for HW &amp;amp; KF guard return #862&lt;br /&gt;
- fix(gs): Bounty task.rb fix for assigned? and Ruby 2.6 #863&lt;br /&gt;
- fix(gs): stash.rb stale sheaths recheck #867&lt;br /&gt;
- fix(gs): allow spell.rb casting to take a force_stance parameter #902&lt;br /&gt;
- fix(gs): update Infomon parsing for new ACCOUNT output format #903&lt;br /&gt;
- fix(gs): PSMS cost for multiple cost types &amp;amp; add Excoriate feat #912&lt;br /&gt;
- fix(gs): Feat excoriate regex correction #920&lt;br /&gt;
- fix(gs): weapon PSM affordable check against Glorious Momentum #926&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): restore @theme_state and add to CLI capability #795&lt;br /&gt;
- fix(all): retire gtk2 monkey patch for gtk3 #823&lt;br /&gt;
- fix(all): games.rb XMLData.name wait till both not NIL and not EMPTY #826&lt;br /&gt;
- fix(all): standardize xmlparser game instance #827&lt;br /&gt;
- fix(all): games.rb fix multiple single and double quote in XML #832,836,837&lt;br /&gt;
- fix(dr): games.rb - optional hide Room Title display of Real IDs with FLAG on #782&lt;br /&gt;
- chore(dr): common-moonmage - refactor of peer_telescope #783&lt;br /&gt;
- fix(dr): move HMR load to common before for dragonrealms #784&lt;br /&gt;
- fix(dr): common-crafting.rb minor edit to add &amp;quot;You tuck&amp;quot; #787&lt;br /&gt;
- fix(dr): common-arcana.rb - remove unecessary pause from discern code #792&lt;br /&gt;
- fix(dr): drparser.rb Restore Premium status checking #834&lt;br /&gt;
- fix(gs): migrate PSMS.name_normal to Lich::Util.normalize_name #790,833&lt;br /&gt;
- fix(gs): add Char.che to know current character&#039;s CHE #791&lt;br /&gt;
- fix(gs): FEAT and Infomon module parsing of new Covert Art feats. #796&lt;br /&gt;
- fix(gs): add Currency.gemstone_dust and fix redsteel mark capture #797&lt;br /&gt;
- fix(gs): FEAT Covert Arts colon normalization and stamina costs #799&lt;br /&gt;
- fix(gs): escape dash in regex for HouseCHE #824&lt;br /&gt;
- fix(gs): disk.rb comparison helpers #828&lt;br /&gt;
- fix(gs): allow for Group.disks to show self disk in array #829&lt;br /&gt;
- fix(gs): feat.rb Covert Arts throw poison costs 15 stam #830&lt;br /&gt;
- fix(gs): add missing Feat.use ability #831&lt;br /&gt;
- fix(gs): multiple CritRanks updates #801-822&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- [all] - chore: Namespace &amp;amp; File Path Updates #713&lt;br /&gt;
- [all] - [argv_options.rb] bugfix: correct darkmode to work via CLI #693&lt;br /&gt;
- [all] - [games.rb] feat: make show Room Exits of non-StringProc/Obvious Exits toggable for all games #699&lt;br /&gt;
- [all] - [games.rb] feat: toggleable display of StringProcs with clickable links #751&lt;br /&gt;
- [all] - [gui-manual-login.rb] fix: change label to Wrayth #720&lt;br /&gt;
- [all] - [gui-saved-login.rb] fix: update Stormfront label #721&lt;br /&gt;
- [all] - [update.rb] fix: purge old LIB folder prior to update release #729&lt;br /&gt;
- [all] - [util.rb] bugfix: allow issue_command to use fput or put #715&lt;br /&gt;
- [all] - [xmlparser.rb] feat: add XMLData.room_name attribute #685&lt;br /&gt;
- [all] - [main.rb] fix: create session file in regular connect method #733&lt;br /&gt;
- [all] - [init.rb] bugfix: error for Windows DISPLAY variable #735&lt;br /&gt;
- [all] - [main.rb] fix: Mudlet support #736&lt;br /&gt;
- [all] - [wine.rb] fix: add --no-wine CLI flag prevent WINE startup&lt;br /&gt;
- [all] - [init.rb] fix: add --no-gtk CLI flag prevent GTK3 gem load&lt;br /&gt;
- [dr] - [games.rb] feat: DRinfomon and common files as core lich libraries #686&lt;br /&gt;
- [dr] - [games.rb] chore: add DR requires here #690&lt;br /&gt;
- [dr] - [games.rb] fix: add Room# display for DR #697&lt;br /&gt;
- [dr] - [games.rb] bugfix: Genie FE real ID#s not supported, hide by default #728&lt;br /&gt;
- [dr] - [drdefs.rb] bugfix: fix for Shadow Servants #710&lt;br /&gt;
- [dr] - [map_dr.rb] fix: cleanup and support for UIDs #719&lt;br /&gt;
- [dr] - [xmldata.rb] bugfix: add support for DR Room IDs #716&lt;br /&gt;
- [dr] - [xmlparser.rb] feat: XMLData - adding dr_active_spells #691&lt;br /&gt;
- [gs] - [games.rb] bugfix: support for pre/post room name txt #683&lt;br /&gt;
- [gs] - [group.rb] chore: update to account for hold #701&lt;br /&gt;
- [gs] - [resource.rb] feat: add additional tracking of covert art charges #714&lt;br /&gt;
- [gs] - [spell.rb] bugfix: Spell.affordable? 515 release #687&lt;br /&gt;
- [gs] - [stash.rb] bugfix: sheath_bags when not found #694&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: missing real ID in nav #684&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: Claim module obvious hiding #717&lt;br /&gt;
- [gs] - [sk.rb] feat: Self-Knowledge functionality in core #748&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: Simu XML breaking change RoomID #679&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [crit_tables] fix: CritRanks regex fixes (multiple files and changes) #671&lt;br /&gt;
-o- [GS4] - [spellsong.rb] fix: Correct Spellsong sync method #674&lt;br /&gt;
-o- [GS4] - [parser.rb] fix: thorn status regex correction #673&lt;br /&gt;
-o- [All] - [xmlparser.rb] fix: Split out if elif block to account for DR having multiple… #670&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: percentconcentration #676&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: update move failure message to handle attack and casting #667&lt;br /&gt;
-o- [All] - [init.rb] fix: update required ruby check messaging #669&lt;br /&gt;
-o- [All] - [sessionvars.rb] feat: new module SessionVars for non-persistent variable storage #666&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [DR] - [games.rb] bugfix: tweak XML rewrite section #662&lt;br /&gt;
-o- [GS4] - [crit_tables] bugfix: additional crit table regex corrections #663&lt;br /&gt;
-o- [GS4] - [ascension.rb] bugfix: add new Transcend Destiny to lookups #661&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: regexp escape txt #660&lt;br /&gt;
-o- [GS4] - [disruption_critical_table.rb] Bugfix in regex #659&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [games.rb] bugfix: prevent race condition in games thread #656 &lt;br /&gt;
-o- [All] - [init.rb] bugfix: address WINE variance between linux / installs #655&lt;br /&gt;
-o- [GS4] - [gs][stash.rb] bugfix: wear code improvement #657 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [main.rb] bugfix: correct encoding for WizardFE PR #640&lt;br /&gt;
-o- [All] - [games.rb] bugfix: correct logic for room detection when using CLI --start-scripts PR #639&lt;br /&gt;
-o- [All] - [DB_Store.rb] feat: add direct support for Simu RENAME and CHANGE PROF PR #633&lt;br /&gt;
-o- [All] - chore: breakout code to individual files for easier management PR #617&lt;br /&gt;
-o- [All] - [lich.rbw] chore: add deprecated msg to old Settings/GameSettings/CharSettings methods PR #589&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add new --dark-mode CLI option PR #583&lt;br /&gt;
-o- [All] - [global_defs.rb] bugfix: monsterbold fix for additional clients PR #581&lt;br /&gt;
-o- [All] - [update.rb] feat: update core scripts from source on Lich5 update/install PR #579&lt;br /&gt;
-o- [All] - [log.rb] feat: add new Log module copied from Olib PR #577&lt;br /&gt;
-o- [All] - [numeric.rb] feat: add days/hours/minutes/seconds methods to numerics PR #623&lt;br /&gt;
-o- [All] - [messaging.rb] feat: WizardFE Voln window support #647&lt;br /&gt;
-o- [All] - [init.rb] bugfix: WINE entries for Linux / MacOS #649&lt;br /&gt;
-o- [DR] - [lich.rbw] bugfix: cleanup downstream hook exclusions PR #593&lt;br /&gt;
-o- [DR] - [global_defs.rb] bugfix: missing climb failure message PR #592&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: show non-standard Effects in `;magic` output PR #641&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: fix WARCRY duplication results / add WALL OF THORNS effect detection PR #634 / PR #637&lt;br /&gt;
-o- [GS4] - [critranks.rb] feat: add critical rank resolution tables and methods PR #625&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: to support regex for active? &amp;amp; time_left PR #590&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: add implicit NPC death monitoring PR #588&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: change PSM to be stored as type.mnemonic PR #587&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: strip_xml multiline fix PR #584&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: fix sack detection to use Stash.container(param) PR #578&lt;br /&gt;
-o- [GS4] - [spell.rb] feat: Spell.after_stance #644 &lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: for Claim module #646&lt;br /&gt;
-o- [GS4] - [infomon] feat: track Voln favor via RESOURCE output #648&lt;br /&gt;
-o- [GS4] - [gameobj.rb] feat: add Bandit hidden target API #650&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: proper leader detection from GROUP output&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back depracted Char.maxvitals with msging to switch to new Char.max_vitals methods&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: group.check syntax change&lt;br /&gt;
-o- [GS4] - [spell.rb] bugfix: affordable? Char.mana parenthesis logic&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] -  feat: sqlite3 gem syntax code cleanup PR#553&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: remove unused Setting, GameSetting, CharSetting PR#542&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: scrub login key from error message popups PR#548&lt;br /&gt;
-o- [All] - [messaging.rb] bugfix: color mismatch WizardFE white txt PR#554&lt;br /&gt;
-o- [All] - [lich.rb] feat: add new Lich.deprecated method to aid in deprecating older API calls PR#523&lt;br /&gt;
-o- [GS4] - [char.rb] feat: log method_missing calls PR#552&lt;br /&gt;
-o- [GS4] - [char.rb] feat: add missing global_def related methods PR#523&lt;br /&gt;
-o- [GS4] - [global_defs.rb] feat: deprecate various Char module methods PR#523&lt;br /&gt;
-o- [GS4] - [spellsong.rb] bugfix: cache spellsong duration calc PR#551&lt;br /&gt;
-o- [GS4] - [effects.rb] feat: Effects module breakout PR#549&lt;br /&gt;
-o- [GS4] - [group.rb][disk.rb] feat: Group &amp;amp; Disk class PR#532&lt;br /&gt;
-o- [GS4] - [activespell.rb] feat: add duration change messaging, off by default, see ;help for details PR#487&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add Game:Character to debug log file ouput&lt;br /&gt;
-o- [All] - [init.rb] feat: add milliseconds to debug filename&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: reorder parsing of $SERVERSTRING to avoid certain conflicts&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: update for new Empath resource and sleep/bind messaging&lt;br /&gt;
-o- [GS4] - [status.rb] bugfix: bound? calmed? and sleeping? support for spellnames flag being off&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: additional creature dying messaging to check against XML dead not being sent&lt;br /&gt;
-o- [GS4] - [gameobj.rb] bugfix: remove sorcerer arms and animates from GameObj.targets&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - Ruby 3.3 compatibility&lt;br /&gt;
-o- [All] - [lich.rbw] feat: adds .sources for up/downstream hooks&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: don&#039;t use WINE for custom frontends&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back Char.stance&lt;br /&gt;
-o- [GS4] - [claim.rb] feat: new module and associated changes to xmlparser&lt;br /&gt;
-o- [GS4] - [experience.rb] feat: percent experience options&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow for negative TNL exp value&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow hyphenated last names in character names&lt;br /&gt;
-o- [GS4] - [parser.rb] feat: update resource matching for new Bard service&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: catch more shield removal messages&lt;br /&gt;
-o- [GS4] - [util.rb] bugfix: underscore issue for PSMs&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.7.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Supports Ruby 3.2 - security enhancements and huge speed improvements for regex&lt;br /&gt;
-o- New libraries/modules/classes: Account, HMR (Hot Module Reloading)&lt;br /&gt;
-o- GS4 Infomon now baked into Lich5 as a library, no more need to run standalone script&lt;br /&gt;
-o- New GS4 libraries/modules/classes: Ascension, Bounty, Currency, Experience, Resources, Society, Status, Warcry&lt;br /&gt;
-o- Updates to existing libraries/modules/classes: Armor, Util, Weapon, Spell, GameObj, Messaging&lt;br /&gt;
-o- Several Bugfixes for lots of things&lt;br /&gt;
-o- Lots of code cleanup&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML errors&lt;br /&gt;
-o- Adds the DR Plat instance for Frostbite FE&lt;br /&gt;
-o- Adds ‘ball’ as the noun used for ‘ball and chain’&lt;br /&gt;
-o- Adds the movement result ‘slip in the mud and fall flat’&lt;br /&gt;
-o- Corrects stamina cost for the feature Dispel Magic&lt;br /&gt;
-o- Plus all the latest script updates from Elanthia-Online!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML to limit login errors (DR)&lt;br /&gt;
-o- Fix for XMLData.active_spells to properly register wizard &#039;recovery&#039; spell cooldowns&lt;br /&gt;
-o- Messaging updates to remove error in Wizard FE encodings&lt;br /&gt;
-o- Corrects for error in detecting PSM skill changes (cman) via warrior / rogue guild lessons&lt;br /&gt;
-o- Deprecates LNet script from master repository&lt;br /&gt;
-o- Miscellaneous small bug squashing&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.6.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- (DragonRealms) Support for Genie and Frostbite frontends&lt;br /&gt;
-o- (GemStone) Changed methods to improve ;go2 speed and reduce lich.db3 calls&lt;br /&gt;
-o- (GemStone) Updates to support silver_count function&lt;br /&gt;
-o- (Both) Changed method for updating lich ecosystem&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.5.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for DragonRealms&lt;br /&gt;
-o- Updated support for scripts like BigShot&lt;br /&gt;
-o- Providing the LichID and UID on Profanity&lt;br /&gt;
-o- Spell.force_incant, .force_channel, and .force_evoke&lt;br /&gt;
-o- Standardized message method for script authors&lt;br /&gt;
-o- Sundry small improvements / fixes and changes&lt;br /&gt;
-o- And the creme de la creme - a custom directory&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.4.0&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Simu Room IDs (formally called &#039;unique ID&#039; or &#039;uid&#039; for Lich) added to Map, mapDB where known, and ;go2 for navigation (courtesy Xanlin and with our thanks!) ;go2 u7120 for all you ex-GMs out there. &lt;br /&gt;
-o- Room titles will now display the Lich ID and / or the UID for the room based on user selections - default is on for both, and enabled / disabled via Lich.display_lichid or Lich.display_uid toggles that can be set to on / off or true / false. (;e Lich.display_lichid=true/false and ;e Lich.display_uid=true/false) You can remove that rnum from your autostart now! To gain the benefit of the UID deployment, be sure to ;repo download-mapdb&lt;br /&gt;
-o- REQUESTS: Drop 5 minute timeout function from Lich&lt;br /&gt;
-o- waitrt? and waitcastrt? will still pause activities, but will return TRUE or FALSE in keeping with the Ruby functionname? tradition (no more failing to get a weapon out due to RT from climbing!)&lt;br /&gt;
-o- empty_hands and fill_hands will now check to see if the character is in roundtime before trying to put away or retrieve held items&lt;br /&gt;
-o- Infomon received an update that keeps spell timers in sync with the information received from the server - no more need to immediately do a spell active in game to get the right times to display for various legacy scripts and ;magic after visiting the invoker or using an SK item&lt;br /&gt;
-o- Lich now provides a facility to get current coins on the character that is a bit more agnostic to data changes from Simu - Lich::Util.silver_count&lt;br /&gt;
-o- Various other small tidbits to help ease maintenance and future development&lt;br /&gt;
-o- PLEASE NOTE:  This update is required for the newest Bigshot (released today!) and for future eloot and eherbs scripts (release RSN)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.3.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Added support for Wrayth (renamed Stormfront) installations &lt;br /&gt;
-o- Converted Linux | WINE login methods to &#039;method 0&#039;, does not use Simu launcher&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.2.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for STOWing items irrespective of special item scripts&lt;br /&gt;
-o- Improved query support for Effects and CMans&lt;br /&gt;
-o- Fix Lich bug to respect the &#039;groupmovement&#039; flag in game&lt;br /&gt;
-o- Fix Lich round time calculations (more aggressive timing)&lt;br /&gt;
-o- Dark Mode is now a thing&lt;br /&gt;
-o- Lich4 Style GUI layout available&lt;br /&gt;
-o- Several file location changes to support future code change efforts&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.19&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Benefit: Monks with Mental Acuity (all 3 of you) rejoice - stamina casting!&lt;br /&gt;
-o- Benefit: PSM3 included, no charge. No hair remaining, either!&lt;br /&gt;
-o- Benefit: Ok, stay seated: Some of your various SF spell duration windows may work. . . better? Yes, not perfect, but better. No pictures, please!&lt;br /&gt;
-o- Updated infomon that properly detects Cloak of Shadows on those pesky sorcerers, and the Raise Dead Cooldown periods for those wondrous clerics.&lt;br /&gt;
-o- A new update process for Lich 5 - tired of having to download that script over and over just to update? Get yourself a copy of lich5-update.lic. Note, if you already have it, you&#039;re set! If not - ;jinx script install lich5-update --repo=elanthia-online&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Updated the method used to log onto SIMU servers.&lt;br /&gt;
-o- Added the Animalist item specifics to Lich5&#039;s empty and fill hands routines&lt;br /&gt;
-o- Improved Invoker messages for Avalon and Wizard FEs (no change for SF FE)&lt;br /&gt;
-o- Improved cleanup and store methods when player EXIT&#039;s or QUIT&#039;s game&lt;br /&gt;
-o- Crafted two new methods (stash_hands and equip_hands) for future script use&lt;br /&gt;
-o- Some behind-the-scenes cleanup to improve maintaining the Lich5 ecosystem&lt;br /&gt;
-o- Add Spell Active improvements&lt;br /&gt;
-o- Add PSM and Ranger improvements&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
* [[Mac Installation - Lich (software)]]&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
[[Category:New Player]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=265042</id>
		<title>Lich:Software/Installation</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=265042"/>
		<updated>2026-09-11T00:44:38Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Installing the Latest Stable Release */ update for lich 5.21.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
=About=&lt;br /&gt;
&lt;br /&gt;
Lich is an add-on scripting engine that works alongside existing front ends.  The most common installation is a combination of Lich on Windows using the Wrayth or Wizard FE. Lich is also used by many on both MacOS and multiple Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=Installing the Latest Stable Release=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The latest stable lich version is 5.21.9 supporting Ruby 4.0 - published September 10, 2026&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==In-Place Upgrade==&lt;br /&gt;
&lt;br /&gt;
If you are on an older version of Lich 5 and want to upgrade to the most current version, you can choose to either upgrade Lich5 only or both Lich 5 and Ruby. If you&#039;re currently on Lich 4, able to check by running the command &amp;lt;CODE&amp;gt;;e echo LICH_VERSION&amp;lt;/CODE&amp;gt;, go to the [[#Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)|upgrade from Lich 4 section]].&lt;br /&gt;
&lt;br /&gt;
For each section, please follow the directions/commands one at a time.&lt;br /&gt;
&lt;br /&gt;
===Lich 5 Only===&lt;br /&gt;
&lt;br /&gt;
====Lich 5.7 or newer====&lt;br /&gt;
# You must be running Ruby 4.0 or greater for Lich 5.19 +.  If unsure, please update both (see below)!&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Run this command in-game &amp;lt;CODE&amp;gt;;lich5-update --update&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
====Lich 5.6 or older====&lt;br /&gt;
Please proceed to updating both Ruby and Lich 5&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 4.0 &amp;amp; Lich 5===&lt;br /&gt;
This method is for Windows only. Linux and MacOS users, please do a Lich 5 only update and update Ruby manually via normal install/update methods for the OS.&lt;br /&gt;
&lt;br /&gt;
# Logout of all characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall existing Ruby4Lich5 installs from Programs &amp;amp; Features control panel, or alternatively, rename your existing Ruby4Lich5 folder to Ruby4Lich5save. (Defaults to C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the installer and be sure to have both Ruby and Lich 5 option selected&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich &amp;amp; Ruby!&lt;br /&gt;
&lt;br /&gt;
===Ruby 4.0 Only===&lt;br /&gt;
Use this to upgrade to the newest version of Ruby only if you&#039;re already on the latest version of Lich5 and now want to update Ruby afterwards. If you&#039;re not already on the latest version of Lich5, please use previous section steps instead.&lt;br /&gt;
# Logout of all instances/characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall your existing Ruby4Lich5 install via Programs &amp;amp; Features (ensure it&#039;s now gone, default location was C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the new installer and choose to only install Ruby Only&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version Ruby!&lt;br /&gt;
&lt;br /&gt;
==Windows New Installation==&lt;br /&gt;
&lt;br /&gt;
{{blue|These instructions are not for DragonRealms. [[#Ecosystem Information|For those scroll to the bottom]].}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows 11 / 10 / 8 / 7&#039;&#039;&#039; users: you can download the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and install everything you need automatically. Click on the &#039;&#039;&#039;Ruby4Lich5.exe&#039;&#039;&#039; and download it to your computer then double click on the executable in your default download folder. Note, a user may need to adjust their browser or security settings to allow download and installation.&lt;br /&gt;
If you have never played before, follow the &#039;New Installation&#039; instructions. If you have played before, and have used Lich before, follow the &#039;Upgrade Installation&#039; instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Installation for Lich 5 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Please log into the game of your choice through the Simutronics website first&#039;&#039;&#039;.  Install the launcher (not SGE), and install your FrontEnd of Choice.  The Wrayth FrontEnd is presently the supported FrontEnd, but Wizard will work as well, if you are nostalgic.  After you&#039;ve logged in, log out and continue.&lt;br /&gt;
# Download and Run the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe  Installer]. You will receive the Microsoft Warning because this is not distributed through the MS Store.  Click on &#039;More Info&#039; and then select the &#039;Run Anyway&#039; button.&lt;br /&gt;
# The installation may take a few minutes, especially on non-SSD harddrives.&lt;br /&gt;
# A Lich5 folder will be placed on your desktop after the install is finished, open that folder and double click the lich.rbw file contained inside to start Lich&#039;s Game Entry window.&lt;br /&gt;
# Use your existing Simutronics Account and Password and click connect.  Then select the character you wish to play, and select the FrontEnd you wish to use.  Then click the Play button.&lt;br /&gt;
# Your game FrontEnd should start, and you should see Lich5 initializing.  You will see it downloading files - these are the map files, wait for the download to finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
This option is deprecated.  Lich 5 architectures are not compatible with Lich 4. Back up your existing Lich 4 folder, uninstall any existing Ruby executables, and then follow the instructions for a new install above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional assistance in installation can be found in the scripting channel of the GemStone [https://discord.gg/KF9Wr8u Discord].&lt;br /&gt;
&lt;br /&gt;
==MacOS==&lt;br /&gt;
There two common options for playing Gemstone IV on a Mac is either to play natively with Avalon or to use virtualization software such as Parallels with Wrayth/WizardFE. Below are the options on how to do that.&lt;br /&gt;
&lt;br /&gt;
===Native Avalon===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. This process works well for Mac OS Catalina and Big Sur. If you have not updated your Mac OS yet, these instructions may work depending on your actual version.  If you run into a snag, follow the contact instructions provided.&lt;br /&gt;
&lt;br /&gt;
===Parallels Windows===&lt;br /&gt;
With the latest releases of Ruby4Lich5 installer, you can now follow the normal Windows installation for both Intel and Apple silicon based Apple computers.&lt;br /&gt;
&lt;br /&gt;
To install Wrayth/WizardFE, Lich, and Ruby via Parallels you will need to do a few various steps as outlined below. Please note, the rubyw file in C:\Ruby4Lich5\X.X.X\bin may be set to run in compatibility mode for windows 7.  On an ARM Mac running parallels, this may causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file could fixe this issue if it was enabled.&lt;br /&gt;
&lt;br /&gt;
The following steps are to be done AFTER you&#039;ve successfully installed Wrayth/WizardFE and can login normally without Lich5 on the machine. Once you&#039;ve done that and can successful connect normally, then follow these steps:&lt;br /&gt;
# Download and install [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and use default options presented during install&lt;br /&gt;
# Double click the lich.rbw file that is now located in the extracted Lich5 location you did above. Login and play as usual.&lt;br /&gt;
&lt;br /&gt;
==Chromebook &amp;amp; Debian variants==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-debian&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-debian&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Debian/Chromebooks. Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1.&#039;&#039;&#039; &lt;br /&gt;
Update the list of available software and make sure some requirements are installed:&lt;br /&gt;
&amp;lt;!-- don&#039;t think I&#039;m gonna include this stuff but might as well not delete it.&lt;br /&gt;
:&amp;lt;small&amp;gt;sudo: as a super-user&amp;lt;/small&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;apt-get: Debian&#039;s software repository&amp;lt;/small&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;-y: answer all questions yes&amp;lt;/small&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get -y update&lt;br /&gt;
sudo apt-get -y install autoconf bison build-essential curl libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libsqlite3-dev git unzip libcairo2-dev libgirepository1.0-dev libgtk-3-dev gobject-introspection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing Ruby installation rather than installing from scratch, skip steps 2, 3, and 4.  Instead, update your ruby-build with the following command, and then proceed to Step 5.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2.&#039;&#039;&#039;&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3.&#039;&#039;&#039;&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4.&#039;&#039;&#039;&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Arch Linux &amp;amp; Arch-based distributions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-arch&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-arch&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
Update the system and install required dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pacman -Syu&lt;br /&gt;
sudo pacman -S --needed base-devel openssl libyaml readline zlib ncurses libffi gdbm sqlite git unzip curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby 3.4.5 and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fedora==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-fedora&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-fedora&amp;quot;&amp;gt;&lt;br /&gt;
Currently supported versions of Fedora&lt;br /&gt;
* 41 uses Ruby 3.3&lt;br /&gt;
* 42 uses Ruby 3.4&lt;br /&gt;
* 43 uses Ruby 3.4&lt;br /&gt;
All of which are currently compatible with Lich 5.7.0 or higher.&lt;br /&gt;
&lt;br /&gt;
1. Update The Base Installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf -y update&lt;br /&gt;
$ sudo dnf -y install vim git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Install required Ruby and Development packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf install -y autoconf bison cairo-devel curl gcc gdbm gdbm-devel gdk-pixbuf2-devel glib2-devel \&lt;br /&gt;
gobject-introspection-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5a. Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5b. Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Popular Scripts=&lt;br /&gt;
{{#section:Lich:Script Repository|popularscripts}}&lt;br /&gt;
&lt;br /&gt;
=Ecosystem Information=&lt;br /&gt;
&lt;br /&gt;
* DragonRealms Variant - [https://elanthipedia.play.net/Lich_script_repository#Setup_and_Installation Setup and Install instructions]&lt;br /&gt;
&lt;br /&gt;
=Lich Changelog=&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-changelog&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-changelog&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.20.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* bound EAccess auth with a timeout so a stalled SGE backend can&#039;t hang Lich silently (#1502)&lt;br /&gt;
* Linux WINE and Wrayth FE detection (#1517)&lt;br /&gt;
* update Gemstone game-code validations (#1518)&lt;br /&gt;
* preserve bundled display-state tags on quiet-suppressed chunks (#1530)&lt;br /&gt;
* prevent a stray formatting character from appearing in Saga during quiet script output (#1532)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* make $safe_pause_lock holder immune to pause (#1525)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* critranks.rb tolerate nil table rows, fix reload!, index patterns … (#1522)&lt;br /&gt;
* combat module hardening - ordered processing, 22x faster parsing, double-count fix (#1523)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.20.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add concurrent runtime I/O and multi-client detach support (#1459)&lt;br /&gt;
* --bind-address speaks the same keywords as --detachable-client (#1461)&lt;br /&gt;
* GUI Launcher Improvements (#1463)&lt;br /&gt;
* Add supervised child script APIs (01 of 06) (#1474)&lt;br /&gt;
* Add forced script teardown command (06 of 06) (#1479)&lt;br /&gt;
* teardown and distinguishable errors for Script.run_child (#1501)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRCMM.moon_weapon_duration - read a moon weapon&#039;s remaining life (#1483)&lt;br /&gt;
* id-based creature tracking from crtrStatus + assess (#1485)&lt;br /&gt;
* capture room UID from &amp;lt;nav&amp;gt; tag; stop enforcing ShowRoomID; opt-in room-id placement (#1491)&lt;br /&gt;
* user-extensible scroll substitutions via settings (01 of 06) (#1512)&lt;br /&gt;
* user-extensible boxes and trash receptacles (03 of 06) (#1514)&lt;br /&gt;
* user-extensible summoned-weapon adjectives (04 of 06) (#1515)&lt;br /&gt;
* user-extensible flavor-text stripping (05 of 06) (#1516)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* gameobj add full_name matcher to type/sellable classification (#1453)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* prevent empty/partial GameObj registry reads during mid-stream refresh (#1370)&lt;br /&gt;
* no-op Gtk.lich_main_quit when no main loop is nested (#1464)&lt;br /&gt;
* correct path-flag aliases and document all path options (#1472)&lt;br /&gt;
* Synchronize script lifecycle transitions (02 of 06) (#1475)&lt;br /&gt;
* Coordinate script shutdown draining (03 of 06) (#1476)&lt;br /&gt;
* Harden script lifecycle ownership (05 of 06) (#1478)&lt;br /&gt;
* surface the underlying LoadError in dependency alerts (#1480)&lt;br /&gt;
* extract game-agnostic CreatureBase into lib/common (#1484)&lt;br /&gt;
* bound GemCheck alert dialogs with a timeout so they can&#039;t hang forever (#1488)&lt;br /&gt;
* identify Genie as the frontend for headless launches (#1490)&lt;br /&gt;
* restore detachable client disconnect notice to stdout (#1492)&lt;br /&gt;
* harden detachable client teardown and escape init payload (#1493)&lt;br /&gt;
* resolve GameObj status visibility during staged  refresh (#1497)&lt;br /&gt;
* compact client write queue instead of ending the session (#1498)&lt;br /&gt;
* scrub startup credentials once login completes (#1499)&lt;br /&gt;
* Honor Simu-side teardown for 10 seconds (#1505)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* resolve no-UID rooms carrying a stored UID instead of returning nil (#1467)&lt;br /&gt;
* equipmanager.rb - reliable ranged-weapon transitions - stow ammo after unload + verify offhand wield hand (#1468)&lt;br /&gt;
* common-healing.rb -  DRCH.bind_wound: only dispose a dislodged item while it is in hand (#1469)&lt;br /&gt;
* preserve game RealID in room title (GS parity for &amp;quot;;display roomid title&amp;quot;) (#1500)&lt;br /&gt;
* Refine need_buffs? logic for non-recast spells to correctly check cyclic spells. (#1503)&lt;br /&gt;
* reduce symbol-torn scale scrolls to gettable noun (#1506)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* lower game socket keepalive idle from 120s to 30s (#1449)&lt;br /&gt;
* resilient ActiveSessions ownership + shutdown watchdog (#1452)&lt;br /&gt;
* Quit Gtk.main cleanly (#1455)&lt;br /&gt;
* Refactor regex to string comparisons for ARGV options (#1456)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* ingest newly-exposed mindState experience and roommeta room fields (#1450)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add character generator support via EAccess protocol (#1384)&lt;br /&gt;
* Add modern script command shutdown method (#1385)&lt;br /&gt;
* migrate the server-stream parser from REXML to Ox, with pipe-mode benchmark harness and DR parser coverage (#1396)&lt;br /&gt;
* enumerate script subdirs with file glob (#1397)&lt;br /&gt;
* add --bind-address option to set listen socket address (#1405)&lt;br /&gt;
* add central method to determine lich ver (#1417)&lt;br /&gt;
* setup_files: support scripts/data/custom for user data overrides (#1431)&lt;br /&gt;
* Modify running? method to support optional exact matching of script names (#1436)&lt;br /&gt;
* keyword bind hosts for the detachable client (tailscale/lan/any) (#1437)&lt;br /&gt;
* add roomlinks/roommono toggles for room display (#1438)&lt;br /&gt;
* self-healing gem requires (#1439)&lt;br /&gt;
* various Saga FE compatibility tweaks (#1443)&lt;br /&gt;
* add macOS limited gem recovery (#1448)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Capture combat position from the balance status line (#1400)&lt;br /&gt;
* detect scheduled shutdown and expose it on DRParser (#1409)&lt;br /&gt;
* xmlparser: add structured parser for the assess (combat situation) stream (#1413)&lt;br /&gt;
* Implement DRCA.need_buffs? method for buff checks (#1428)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* anchor Infomon parser regex unions to line start (#1391)&lt;br /&gt;
* creature xml additions (#1425)&lt;br /&gt;
* add creature template library (#1427)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* surface a failed Game.open in the connect timeout (#1408)&lt;br /&gt;
* bound long-session memory growth (index/hook/watchfor/buffer leaks) (#1410)&lt;br /&gt;
* improve and harden shutdown (#1416)&lt;br /&gt;
* use bundler to check for required Ruby gems (#1420)&lt;br /&gt;
* pin lich directory for gemfile check (#1423)&lt;br /&gt;
* Show CLI login ARGV for SAL connections (#1424)&lt;br /&gt;
* increase read timeout on idle socket to 300 seconds (#1426)&lt;br /&gt;
* monkeypatch gi for memoryreleaser / asyncprocessor until patched upstream (#1429)&lt;br /&gt;
* Mapdb sort tags by downcase and original case (#1433)&lt;br /&gt;
* stop locking the load path at boot; keep Gemfile.lock in sync on self-update (#1434)&lt;br /&gt;
* minimum Ruby 4.0 required &amp;amp; migrate Ruby version check (#1444)&lt;br /&gt;
* align --announce with --update for Ruby version (#1447)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* BalanceValue regex to match combat status lines (#1398)&lt;br /&gt;
* equipmanager.rb - Fix unload weapon detection when AimTimerDialog tag is prepended (#1414)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* global_defs update pushStream regex to include &#039;reserve&#039; id (#1379)&lt;br /&gt;
* psms Warcry.available? correction (#1387)&lt;br /&gt;
* xmlparser support new field exp, climate, terrain XML feeds (#1388)&lt;br /&gt;
* global_defs move() update regex for standing condition (#1407)&lt;br /&gt;
* Currency add method to retrieve aevit event currency (#1411)&lt;br /&gt;
* Stash check result type before comparing regex for wear_to_inv (#1430)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.18.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-crafting add method for creating mechanisms (#1375)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* stringproc normalize CRLF | CR to LF (#1378)&lt;br /&gt;
* rubocop custom cop ascii only cleanup (#1382)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* equipmanager update to assume missing items aren&#039;t worn (#1376)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1326)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Script module replace MemoryReleaser with GC.start for cleanup (#1364)&lt;br /&gt;
* Add sqlite busy timeout policy to core (#1365)&lt;br /&gt;
* Script#kill remove GC.start and add optional instrumentation (#1368)&lt;br /&gt;
* reorder shutdown ala MahtraDR and detect script teardown de... (#1369)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* harden custom repo identity, collision, and contract boundaries (#1333)&lt;br /&gt;
* stop SessionLifecycle before closing database on normal exit (#1334)&lt;br /&gt;
* harden FeatureFlags for closed db handle (#1335)&lt;br /&gt;
* SynchronizedSocket write resilience and zombie client elimination (#1338)&lt;br /&gt;
* correct RP timing issue for release notes (#1348)&lt;br /&gt;
* gate object cleanup in GTK queue (#1354)&lt;br /&gt;
* recover from cross-process zombie in ActiveSessions service (#1355)&lt;br /&gt;
* Improve shutdown session state handling (#1359)&lt;br /&gt;
* non-ascii hygeine to address rubocop errors (#1360)&lt;br /&gt;
* Remove debug log IO from heartbeat tick loop (#1363)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRC text2num correction for thousand (#1343)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Overwatch add REVEALED_EXPLODES regex pattern (#1356)&lt;br /&gt;
* Stash add_to_bag result type check before regex compare (#1357)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* enable heartbeat-driven failover for ActiveSessions service owner (#1340)&lt;br /&gt;
* copy Gemfile and LICENSE during self-update (#1345)&lt;br /&gt;
* Add top-level parse_args/display_args bridge to global_defs (#1346)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* replace undefined custom_require in check_moonwatch (#1336)&lt;br /&gt;
* set_stance places 100 in the correct positional slot (#1337)&lt;br /&gt;
* cache SlackBot users list to prevent API throttling (#1342)&lt;br /&gt;
* Add CORE_AUTOSTART sentinel to skip dependency.lic autostart helpers (#1344)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon Status.cutthroat? Effect Debuff correction (#1331)&lt;br /&gt;
* add support for RESERVE xml in GameObj.reserve (#1341)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* custom 3rd-party repo support for ScriptSync (#1285)&lt;br /&gt;
* Add get_settings, get_data, start_scripts_if_available to core (#1305)&lt;br /&gt;
* Add Map.apply_wayto_overrides for personal map overrides (#1306)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Decouple SetupFiles from script-scoped echo and XML feed timing (#1304)&lt;br /&gt;
* Add game flags and obsolete script warnings to DRInfomon startup (#1307)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* use :__unset for --without-frontend CLI request YAML matches (#1301)&lt;br /&gt;
* prevent zombie server deadlock in Active Sessions accept loop (#1302)&lt;br /&gt;
* improve MacOS keychain system check for older OS variants (#1310)&lt;br /&gt;
* stub sync_all_repos to prevent leaked thread in games_spec (#1311)&lt;br /&gt;
* enforce beta confirmation 10s timeout (#1315)&lt;br /&gt;
* use send(:respond) in StatusReporter fallback path (#1316)&lt;br /&gt;
* ensure SessionLifecycle.stop runs on abnormal exit (#1317)&lt;br /&gt;
* address ActiveSessions lifecycle hot path feature-flag polling (#1325)&lt;br /&gt;
* catch ECONNRESET in _puts and bound walk_to retry depth (#1327)&lt;br /&gt;
* safeguard gtk logo.png loading (#1329)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Add InnCheckedOut pattern to parser (#1309)&lt;br /&gt;
* Claim corrections to handle mounts in room_players stream (#1324)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
* repair regression on gui button reenable from refactor (#1297)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Mutli-launch persistent login GUI (#1245)&lt;br /&gt;
* Remove Windows OS CMD prompt flash (#1255)&lt;br /&gt;
* guard against broken pipe errors in Game._puts and send_to_client (#1260)&lt;br /&gt;
* add timeout safety to fput to prevent infinite hangs (#1261)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* anchor stow success pattern to prevent fan close recovery bypass (#1254)&lt;br /&gt;
* add bounded recursion depth limits to 9 methods (#1257)&lt;br /&gt;
* stow_helper failure detection + unload_weapon ammo recovery (#1259)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add InstanceSettings for core Settings API access (#1233)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Overwatch module into core (#1201)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* fix GameObj container initialization and add clear_all_containers (#1226)&lt;br /&gt;
* GameObj object dedupe &amp;amp; GC (#1234)&lt;br /&gt;
* script.rb show Script.kill source (#1235)&lt;br /&gt;
* Exit quickly on CLI authentication failure (#1237)&lt;br /&gt;
* suppress wine detection noise and skip when unneeded (#1244)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DR modules fixes and enhancements (#1232)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* psms.rb add additional failure matches (#1238)&lt;br /&gt;
* Bounty parser fix regex pattern for skin retrieval task (#1242)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* add retry with exponential backoff for all login authentication (#1205)&lt;br /&gt;
* update.rb allow for bugfix betas and branch updates (#1211)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb bug in _key transformation (#1216)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Change server_time_offset in XMLParser to be float instead of int (#1184)&lt;br /&gt;
* change encodings in main.rb to wizard FE only (#1199)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon parser.rb update Account.subscription/type (#1192)&lt;br /&gt;
* spell.rb add last_cast to track last time casted (#1193)&lt;br /&gt;
* stash.rb additional improvements with ReadyList/StowList (#1197)&lt;br /&gt;
* Infomon parser.rb bug in EnhanciveEnd (#1198)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add Genie map cross-reference fields to the DragonRealms map data model (#1169)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRExpMonitor move into core lich (#1154)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* add Enhancive module for enhancive item bonus tracking (#1113)&lt;br /&gt;
* add QStrike module for optimal stamina-based RT reduction (#1114)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* remove strip! from settingsInfo replacement (#1161)&lt;br /&gt;
* map_base.rb sort JSON better (#1171)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* logbook_item recovery when crafted item not in hand (#1175)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* xmlparser.rb capture additional death messaging (#1158)&lt;br /&gt;
* stash.rb ReadyList sheath handling and update inventory checks (#1166)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* allow --add-account to run without yaml and dat (#1143)&lt;br /&gt;
* enable --login for multi-variable custom launch commands (#1144)&lt;br /&gt;
* update.rb pervent update if MIN_RUBY not met (#1146)&lt;br /&gt;
* messaging.rb return &amp;quot;&amp;quot; for xml_encode with Wizard (#1147)&lt;br /&gt;
* prevent closing connection on module reload (#1148)&lt;br /&gt;
* Allow hmr to work on global_defs.rb (#1156)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* buffer split room obj lines and merge instead of appending closing tag to broken line (#1149)&lt;br /&gt;
* add buffering for multiline room players (#1151)&lt;br /&gt;
* add verify_script def here instead of depending on dependency (#1155)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb added updated_at field to upsert_batch (#1145)&lt;br /&gt;
* stowlist.rb check method fix when dead (#1152)&lt;br /&gt;
* readylist.rb check method fix when dead (#1153)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* util.rb only show gem installing debug messaging if gem mis… (#1131)&lt;br /&gt;
* add --gs and --dr, refactor argv_options to helpers (#1133)&lt;br /&gt;
* fix multiple custom entries, improvements to yaml save (#1134)&lt;br /&gt;
* login_tab_utils.rb expand helper text show Warlock (#1135)&lt;br /&gt;
* update CLI for YAML security signature, add auto-convert fo… (#1136)&lt;br /&gt;
* remove password parameter from debug logging in all cases (#1137)&lt;br /&gt;
* reduce minimum GUI window footprint for non-tabbed view (#1138)&lt;br /&gt;
* remove double save in YAML to preserve yaml.bak integrity (#1139)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* stash.rb additional improvements (#1132)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* force system gem install if RubyGems fails (#1126)&lt;br /&gt;
* gui_login prevent destroying window if already destroyed (#1127)&lt;br /&gt;
* add window size / position saves to login GUI (#1128)&lt;br /&gt;
* non tabbed saved entries in reduced button / font size (not… (#1129)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* account manager sorting GUI fix (#1123)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* install_gem_requirements update available gems after install (#1120)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* password_cipher.rb upcase account_name for key (#1118)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* validator.rb change sleep to should_sleep named param (#1116)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* add base stats capture from &#039;info full&#039; command (#1115)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Refocus Frontend (#960)&lt;br /&gt;
* socket configurator to better guard TCPSocket (#976)&lt;br /&gt;
* add simplified DB maintenance (#991)&lt;br /&gt;
* TextStripper module support for XML, HTML, Markdown (#1055)&lt;br /&gt;
* Login modernization and refactor to yaml (#1063)&lt;br /&gt;
* Ruby Memory Releaser module (#1066)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* support meta:trashcan tag for DRCI.dispose_trash (#966)&lt;br /&gt;
* Add GameObj.inv support for DR items (#1080)&lt;br /&gt;
* DRCS allow custom adjective for summoned weapons (#1088)&lt;br /&gt;
* DRParser support for new exp window xml stream elements (rested exp, tdps, favors) (#1104)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Add Armaments (Weapon, Armor, and Shield) Module (#911)&lt;br /&gt;
* add creature module, including Hinterwilds creatures (#1002)&lt;br /&gt;
* Creature module combat tracking (#1003)&lt;br /&gt;
* track time of last total_experience record (#1030)&lt;br /&gt;
* add Injured class for checking ability to perform actions (#1035)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* map dijkstra optimization (#1061)&lt;br /&gt;
* update.rb keep script/data file incase of error on update (#1070)&lt;br /&gt;
* ensure proxy path is set for non-destructive array write-th… (#1073)&lt;br /&gt;
* [lib][global-defs] - move update (#1079)&lt;br /&gt;
* GameObj force new objects ID to be string (#1087)&lt;br /&gt;
* xmlparser.rb gate GSL exits sending behind @send_fake_tags (#1103)&lt;br /&gt;
* change Hash[] pair key conversion to use to_h for Ruby 4.0 (#1108)&lt;br /&gt;
* move gui-login.rb to Ruby standard gui_login.rb (#1111)&lt;br /&gt;
* update location for currency and move game-loader.rb to Ruby standard gameloader.rb (#1112)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRCA allow custom spell prep messaging (#1089)&lt;br /&gt;
* Update Slackbot error handling, and lnet management (#1091)&lt;br /&gt;
* Fix exp mods parsing for DR (#1102)&lt;br /&gt;
* equipmanager.rb support for custom messaging in forester&#039;s longbow (#1105)&lt;br /&gt;
* Fix hang in equipment manager when game doesn&#039;t respond to commands (#1110)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon additional CHE resign regex (#1067)&lt;br /&gt;
* Resource tracking for sorcerer shadow essence (#1085)&lt;br /&gt;
* cman.rb add hamstring regex for already lying down target (#1090)&lt;br /&gt;
* cman.rb hamstring regex update when can&#039;t perform on target (#1092)&lt;br /&gt;
* Bounty parser.rb FWI guard regex update (#1096)&lt;br /&gt;
* currency.rb track gold (#1109)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.12&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (general)&lt;br /&gt;
    Update module strip markdown comments (#1056)&lt;br /&gt;
    Vars/UserVars module fixes and corrections (#1057)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    Infomon parse fix for singular currency (#1051)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (dr)&lt;br /&gt;
    add bput match for system updates preventing actions (#1034)&lt;br /&gt;
    drdefs.rb npc parsing (#1038)&lt;br /&gt;
    Fix container reference in get_item_from_eddy_portal method (#1039)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    bounty location regex needs to match &amp;quot;under&amp;quot; (#1037)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.10&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: games.rb catch additional error for nested single/double quotes (#1031)&lt;br /&gt;
    dr: change keys for DR_SKILLS_DATA[:guild_skill_aliases] to be strings instead of symbols (#1032)&lt;br /&gt;
    gs: Bounty parser for SG npcs matching (#1027)&lt;br /&gt;
    gs: match READY/STOW items with a/an/some inside the link (#1026)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.9&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    gs: StowList/ReadyList reset bug if non-default keys added #1019&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: script.rb show custom at script exit as well (#993)&lt;br /&gt;
    all: Updated update.rb for single trunk and release please (#1001)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.7&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): ensure updates do not target detached proxy views #990 &lt;br /&gt;
fix(gs): bounty parser and move fixes for sailor&#039;s grief #987 &lt;br /&gt;
fix(gs): Infomon xmlparser.rb Ready/Stow fix for LONG before exist #988 &lt;br /&gt;
fix(gs): gameobj.rb for Sailor&#039;s Grief ghostly/boss/guild tentacles #989 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): settings.rb update to preserve root of derived views #975&lt;br /&gt;
fix(all): show custom in various script output when custom script #967&lt;br /&gt;
fix(dr): drparser.rb update for PlayedSubscription #983&lt;br /&gt;
fix(gs): include store location for ReadyList #977&lt;br /&gt;
fix(gs): infomon parser.rb update for ACCOUNT output varies #979&lt;br /&gt;
fix(gs): global_defs.rb move def update for Hive traps #980&lt;br /&gt;
fix(gs): activespell.rb prevent removal of RF Penalty #981&lt;br /&gt;
fix(gs): add .compact to input of Disk.find_by_name #982&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): update.rb word boundary for abbreviations #971&lt;br /&gt;
fix(dr): equipmanager.rb Fix for changed game output. #969&lt;br /&gt;
fix(dr): common-arcana.rb Regalia fix for changed game output. #970&lt;br /&gt;
fix(dr): common-items.rb Fix for changed inventory command output #973&lt;br /&gt;
fix(gs): StowList missing space in capture in xmlparser.rb #963&lt;br /&gt;
fix(gs): stowlist.rb wait for RT when issuing check #964&lt;br /&gt;
fix(gs): readylist.rb wait for RT when issuing check #965&lt;br /&gt;
fix(gs): Bounty heirloom return msg&#039;ing update #972&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
build(all): installer.yml use windows-2022 #950&lt;br /&gt;
fix(all): restore Wrayth / Wizard script execution ability #952&lt;br /&gt;
fix(all): database_adapter.rb error handling improvement #956&lt;br /&gt;
fix(dr): common-items.rb wear/remove messaging additions #949&lt;br /&gt;
fix(dr): games.rb - ignore UIDs for Frostbite mapping #951&lt;br /&gt;
fix(dr): map_dr.rb prevent inadvertent settings changes #958&lt;br /&gt;
fix(gs): GameObj targets for new Sailor&#039;s Grief tentacle npc #948&lt;br /&gt;
fix(gs): map_gs.rb remove delete_if to prevent bad settings #957&lt;br /&gt;
fix(gs): weapon.rb assault break if no targets #962&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): limitedarray.rb max_size increase #946&lt;br /&gt;
fix(all): uservars.rb update for vars method missing #940&lt;br /&gt;
fix(dr): drparser.rb to set ShowRoomID to on if turned off #945&lt;br /&gt;
fix(gs): change namespace accessors to Ruby 2.6 compatible #944&lt;br /&gt;
fix(gs): infomon state reset on status prompt #943&lt;br /&gt;
fix(gs): Societies to check membership for various methods #942&lt;br /&gt;
fix(gs): standardize warcry.rb to match other PSMS #941&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(gs): infomon parser.rb for profile full name matching #938&lt;br /&gt;
fix(gs): force PROFILE FULL to sync CHE info for infomon #937&lt;br /&gt;
fix(dr): Tighten checks on releasing invisibility for thieves #936&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): gameobj.rb - add type? method for explicit type check #928&lt;br /&gt;
- fix(all): messaging.rb encoding issue #933&lt;br /&gt;
- fix(gs): Various CMan cost corrections #932&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- feat(all): settings.rb - proposal for sequel based Settings #591, #875, #889, #896, #927&lt;br /&gt;
- feat(all): util.rb add Ruby gem install helper method #861&lt;br /&gt;
- feat(all): messaging.rb add cmd link method #866&lt;br /&gt;
- refactor(all): games.rb modernization #849, #882, #924&lt;br /&gt;
- fix(all): add class extensions #800&lt;br /&gt;
- fix(all): lich.rb deprecated FE message #852&lt;br /&gt;
- fix(all): messaging.rb fix XML encoding for wizard and avalon #853&lt;br /&gt;
- fix(all): lich.rb class variable not initialized #855&lt;br /&gt;
- fix(all): log.rb force msg to String for regexp comparison #856&lt;br /&gt;
- fix(all): global_defs.rb bug in fput #864&lt;br /&gt;
- fix(all): messaging.rb xml_encode mono method msg #868&lt;br /&gt;
- fix(all): script.rb class to is_a? checks #878&lt;br /&gt;
- fix(all): gameobj.rb deeper lookup #885&lt;br /&gt;
- fix(all): messaging.rb debug not compared to falseclass #887&lt;br /&gt;
- fix(all): change class to is_a? checks #91-3&lt;br /&gt;
- fix(all): Util.issue_command allow single line captures #918&lt;br /&gt;
- fix(dr): drparser.rb casing for Premium status check #842&lt;br /&gt;
- fix(dr): map_dr.rb Don&#039;t assign UID of zero to rooms #844&lt;br /&gt;
- fix(dr): drparser.rb add $last_logoff tracking #851&lt;br /&gt;
- fix(dr): update message patterns in common-items #859&lt;br /&gt;
- fix(dr): add moon_visible?(moon) convenience method to common-moonmage #860&lt;br /&gt;
- fix(dr): exp mods output is not enclosed in preset xml tags anymore #870&lt;br /&gt;
- fix(dr): update.rb beta send validation for genie lich char #880&lt;br /&gt;
- fix(dr): Update regex and parsing for active spells #894&lt;br /&gt;
- fix(dr): add &#039;You scoop&#039; match pattern to common-items #900&lt;br /&gt;
- fix(dr): add missing match patterns #901&lt;br /&gt;
- fix(dr): common-items: add and fix match strings #904&lt;br /&gt;
- fix(dr): Add missing matches for common-items #905&lt;br /&gt;
- fix(dr): Release Khri Vanish if Thief, when going visible #906&lt;br /&gt;
- fix(dr): Fix race condition when clearing and repopulating XMLData.dr_active_spells #907&lt;br /&gt;
- fix(dr): Fix SLS release pattern #908&lt;br /&gt;
- fix(dr): resolve race condition in DR crafting_magic_routine #914&lt;br /&gt;
- fix(dr): xmlparser.rb - Fix XMLData.dr_active_spells race condition #915&lt;br /&gt;
- fix(dr): xmlparser.rb - Clear out spells properly #916&lt;br /&gt;
- fix(dr): drparser.rb update for Platinum account status #922&lt;br /&gt;
- feat(gs): gameobj.rb allow for custom gameobj data #848&lt;br /&gt;
- feat(gs): PSMS updates, including CMan.use #865, #874, #881, #890, #899&lt;br /&gt;
- feat(gs): ReadyList &amp;amp; StowList classes for item tracking #884&lt;br /&gt;
- feat(gs): Breakout and Buildout Societes #919&lt;br /&gt;
- fix(gs): infomon parsing for CHE membership #841&lt;br /&gt;
- fix(gs): map_gs.rb for no UID when hexdigest used #843&lt;br /&gt;
- fix(gs): warcry.rb yowlp :buff to string instead of regexp #847&lt;br /&gt;
- fix(gs): group.rb multiple corrections #850, #869, #883&lt;br /&gt;
- fix(gs): Bounty parser.rb fix for HW &amp;amp; KF guard return #862&lt;br /&gt;
- fix(gs): Bounty task.rb fix for assigned? and Ruby 2.6 #863&lt;br /&gt;
- fix(gs): stash.rb stale sheaths recheck #867&lt;br /&gt;
- fix(gs): allow spell.rb casting to take a force_stance parameter #902&lt;br /&gt;
- fix(gs): update Infomon parsing for new ACCOUNT output format #903&lt;br /&gt;
- fix(gs): PSMS cost for multiple cost types &amp;amp; add Excoriate feat #912&lt;br /&gt;
- fix(gs): Feat excoriate regex correction #920&lt;br /&gt;
- fix(gs): weapon PSM affordable check against Glorious Momentum #926&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): restore @theme_state and add to CLI capability #795&lt;br /&gt;
- fix(all): retire gtk2 monkey patch for gtk3 #823&lt;br /&gt;
- fix(all): games.rb XMLData.name wait till both not NIL and not EMPTY #826&lt;br /&gt;
- fix(all): standardize xmlparser game instance #827&lt;br /&gt;
- fix(all): games.rb fix multiple single and double quote in XML #832,836,837&lt;br /&gt;
- fix(dr): games.rb - optional hide Room Title display of Real IDs with FLAG on #782&lt;br /&gt;
- chore(dr): common-moonmage - refactor of peer_telescope #783&lt;br /&gt;
- fix(dr): move HMR load to common before for dragonrealms #784&lt;br /&gt;
- fix(dr): common-crafting.rb minor edit to add &amp;quot;You tuck&amp;quot; #787&lt;br /&gt;
- fix(dr): common-arcana.rb - remove unecessary pause from discern code #792&lt;br /&gt;
- fix(dr): drparser.rb Restore Premium status checking #834&lt;br /&gt;
- fix(gs): migrate PSMS.name_normal to Lich::Util.normalize_name #790,833&lt;br /&gt;
- fix(gs): add Char.che to know current character&#039;s CHE #791&lt;br /&gt;
- fix(gs): FEAT and Infomon module parsing of new Covert Art feats. #796&lt;br /&gt;
- fix(gs): add Currency.gemstone_dust and fix redsteel mark capture #797&lt;br /&gt;
- fix(gs): FEAT Covert Arts colon normalization and stamina costs #799&lt;br /&gt;
- fix(gs): escape dash in regex for HouseCHE #824&lt;br /&gt;
- fix(gs): disk.rb comparison helpers #828&lt;br /&gt;
- fix(gs): allow for Group.disks to show self disk in array #829&lt;br /&gt;
- fix(gs): feat.rb Covert Arts throw poison costs 15 stam #830&lt;br /&gt;
- fix(gs): add missing Feat.use ability #831&lt;br /&gt;
- fix(gs): multiple CritRanks updates #801-822&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- [all] - chore: Namespace &amp;amp; File Path Updates #713&lt;br /&gt;
- [all] - [argv_options.rb] bugfix: correct darkmode to work via CLI #693&lt;br /&gt;
- [all] - [games.rb] feat: make show Room Exits of non-StringProc/Obvious Exits toggable for all games #699&lt;br /&gt;
- [all] - [games.rb] feat: toggleable display of StringProcs with clickable links #751&lt;br /&gt;
- [all] - [gui-manual-login.rb] fix: change label to Wrayth #720&lt;br /&gt;
- [all] - [gui-saved-login.rb] fix: update Stormfront label #721&lt;br /&gt;
- [all] - [update.rb] fix: purge old LIB folder prior to update release #729&lt;br /&gt;
- [all] - [util.rb] bugfix: allow issue_command to use fput or put #715&lt;br /&gt;
- [all] - [xmlparser.rb] feat: add XMLData.room_name attribute #685&lt;br /&gt;
- [all] - [main.rb] fix: create session file in regular connect method #733&lt;br /&gt;
- [all] - [init.rb] bugfix: error for Windows DISPLAY variable #735&lt;br /&gt;
- [all] - [main.rb] fix: Mudlet support #736&lt;br /&gt;
- [all] - [wine.rb] fix: add --no-wine CLI flag prevent WINE startup&lt;br /&gt;
- [all] - [init.rb] fix: add --no-gtk CLI flag prevent GTK3 gem load&lt;br /&gt;
- [dr] - [games.rb] feat: DRinfomon and common files as core lich libraries #686&lt;br /&gt;
- [dr] - [games.rb] chore: add DR requires here #690&lt;br /&gt;
- [dr] - [games.rb] fix: add Room# display for DR #697&lt;br /&gt;
- [dr] - [games.rb] bugfix: Genie FE real ID#s not supported, hide by default #728&lt;br /&gt;
- [dr] - [drdefs.rb] bugfix: fix for Shadow Servants #710&lt;br /&gt;
- [dr] - [map_dr.rb] fix: cleanup and support for UIDs #719&lt;br /&gt;
- [dr] - [xmldata.rb] bugfix: add support for DR Room IDs #716&lt;br /&gt;
- [dr] - [xmlparser.rb] feat: XMLData - adding dr_active_spells #691&lt;br /&gt;
- [gs] - [games.rb] bugfix: support for pre/post room name txt #683&lt;br /&gt;
- [gs] - [group.rb] chore: update to account for hold #701&lt;br /&gt;
- [gs] - [resource.rb] feat: add additional tracking of covert art charges #714&lt;br /&gt;
- [gs] - [spell.rb] bugfix: Spell.affordable? 515 release #687&lt;br /&gt;
- [gs] - [stash.rb] bugfix: sheath_bags when not found #694&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: missing real ID in nav #684&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: Claim module obvious hiding #717&lt;br /&gt;
- [gs] - [sk.rb] feat: Self-Knowledge functionality in core #748&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: Simu XML breaking change RoomID #679&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [crit_tables] fix: CritRanks regex fixes (multiple files and changes) #671&lt;br /&gt;
-o- [GS4] - [spellsong.rb] fix: Correct Spellsong sync method #674&lt;br /&gt;
-o- [GS4] - [parser.rb] fix: thorn status regex correction #673&lt;br /&gt;
-o- [All] - [xmlparser.rb] fix: Split out if elif block to account for DR having multiple… #670&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: percentconcentration #676&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: update move failure message to handle attack and casting #667&lt;br /&gt;
-o- [All] - [init.rb] fix: update required ruby check messaging #669&lt;br /&gt;
-o- [All] - [sessionvars.rb] feat: new module SessionVars for non-persistent variable storage #666&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [DR] - [games.rb] bugfix: tweak XML rewrite section #662&lt;br /&gt;
-o- [GS4] - [crit_tables] bugfix: additional crit table regex corrections #663&lt;br /&gt;
-o- [GS4] - [ascension.rb] bugfix: add new Transcend Destiny to lookups #661&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: regexp escape txt #660&lt;br /&gt;
-o- [GS4] - [disruption_critical_table.rb] Bugfix in regex #659&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [games.rb] bugfix: prevent race condition in games thread #656 &lt;br /&gt;
-o- [All] - [init.rb] bugfix: address WINE variance between linux / installs #655&lt;br /&gt;
-o- [GS4] - [gs][stash.rb] bugfix: wear code improvement #657 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [main.rb] bugfix: correct encoding for WizardFE PR #640&lt;br /&gt;
-o- [All] - [games.rb] bugfix: correct logic for room detection when using CLI --start-scripts PR #639&lt;br /&gt;
-o- [All] - [DB_Store.rb] feat: add direct support for Simu RENAME and CHANGE PROF PR #633&lt;br /&gt;
-o- [All] - chore: breakout code to individual files for easier management PR #617&lt;br /&gt;
-o- [All] - [lich.rbw] chore: add deprecated msg to old Settings/GameSettings/CharSettings methods PR #589&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add new --dark-mode CLI option PR #583&lt;br /&gt;
-o- [All] - [global_defs.rb] bugfix: monsterbold fix for additional clients PR #581&lt;br /&gt;
-o- [All] - [update.rb] feat: update core scripts from source on Lich5 update/install PR #579&lt;br /&gt;
-o- [All] - [log.rb] feat: add new Log module copied from Olib PR #577&lt;br /&gt;
-o- [All] - [numeric.rb] feat: add days/hours/minutes/seconds methods to numerics PR #623&lt;br /&gt;
-o- [All] - [messaging.rb] feat: WizardFE Voln window support #647&lt;br /&gt;
-o- [All] - [init.rb] bugfix: WINE entries for Linux / MacOS #649&lt;br /&gt;
-o- [DR] - [lich.rbw] bugfix: cleanup downstream hook exclusions PR #593&lt;br /&gt;
-o- [DR] - [global_defs.rb] bugfix: missing climb failure message PR #592&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: show non-standard Effects in `;magic` output PR #641&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: fix WARCRY duplication results / add WALL OF THORNS effect detection PR #634 / PR #637&lt;br /&gt;
-o- [GS4] - [critranks.rb] feat: add critical rank resolution tables and methods PR #625&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: to support regex for active? &amp;amp; time_left PR #590&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: add implicit NPC death monitoring PR #588&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: change PSM to be stored as type.mnemonic PR #587&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: strip_xml multiline fix PR #584&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: fix sack detection to use Stash.container(param) PR #578&lt;br /&gt;
-o- [GS4] - [spell.rb] feat: Spell.after_stance #644 &lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: for Claim module #646&lt;br /&gt;
-o- [GS4] - [infomon] feat: track Voln favor via RESOURCE output #648&lt;br /&gt;
-o- [GS4] - [gameobj.rb] feat: add Bandit hidden target API #650&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: proper leader detection from GROUP output&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back depracted Char.maxvitals with msging to switch to new Char.max_vitals methods&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: group.check syntax change&lt;br /&gt;
-o- [GS4] - [spell.rb] bugfix: affordable? Char.mana parenthesis logic&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] -  feat: sqlite3 gem syntax code cleanup PR#553&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: remove unused Setting, GameSetting, CharSetting PR#542&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: scrub login key from error message popups PR#548&lt;br /&gt;
-o- [All] - [messaging.rb] bugfix: color mismatch WizardFE white txt PR#554&lt;br /&gt;
-o- [All] - [lich.rb] feat: add new Lich.deprecated method to aid in deprecating older API calls PR#523&lt;br /&gt;
-o- [GS4] - [char.rb] feat: log method_missing calls PR#552&lt;br /&gt;
-o- [GS4] - [char.rb] feat: add missing global_def related methods PR#523&lt;br /&gt;
-o- [GS4] - [global_defs.rb] feat: deprecate various Char module methods PR#523&lt;br /&gt;
-o- [GS4] - [spellsong.rb] bugfix: cache spellsong duration calc PR#551&lt;br /&gt;
-o- [GS4] - [effects.rb] feat: Effects module breakout PR#549&lt;br /&gt;
-o- [GS4] - [group.rb][disk.rb] feat: Group &amp;amp; Disk class PR#532&lt;br /&gt;
-o- [GS4] - [activespell.rb] feat: add duration change messaging, off by default, see ;help for details PR#487&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add Game:Character to debug log file ouput&lt;br /&gt;
-o- [All] - [init.rb] feat: add milliseconds to debug filename&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: reorder parsing of $SERVERSTRING to avoid certain conflicts&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: update for new Empath resource and sleep/bind messaging&lt;br /&gt;
-o- [GS4] - [status.rb] bugfix: bound? calmed? and sleeping? support for spellnames flag being off&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: additional creature dying messaging to check against XML dead not being sent&lt;br /&gt;
-o- [GS4] - [gameobj.rb] bugfix: remove sorcerer arms and animates from GameObj.targets&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - Ruby 3.3 compatibility&lt;br /&gt;
-o- [All] - [lich.rbw] feat: adds .sources for up/downstream hooks&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: don&#039;t use WINE for custom frontends&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back Char.stance&lt;br /&gt;
-o- [GS4] - [claim.rb] feat: new module and associated changes to xmlparser&lt;br /&gt;
-o- [GS4] - [experience.rb] feat: percent experience options&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow for negative TNL exp value&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow hyphenated last names in character names&lt;br /&gt;
-o- [GS4] - [parser.rb] feat: update resource matching for new Bard service&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: catch more shield removal messages&lt;br /&gt;
-o- [GS4] - [util.rb] bugfix: underscore issue for PSMs&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.7.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Supports Ruby 3.2 - security enhancements and huge speed improvements for regex&lt;br /&gt;
-o- New libraries/modules/classes: Account, HMR (Hot Module Reloading)&lt;br /&gt;
-o- GS4 Infomon now baked into Lich5 as a library, no more need to run standalone script&lt;br /&gt;
-o- New GS4 libraries/modules/classes: Ascension, Bounty, Currency, Experience, Resources, Society, Status, Warcry&lt;br /&gt;
-o- Updates to existing libraries/modules/classes: Armor, Util, Weapon, Spell, GameObj, Messaging&lt;br /&gt;
-o- Several Bugfixes for lots of things&lt;br /&gt;
-o- Lots of code cleanup&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML errors&lt;br /&gt;
-o- Adds the DR Plat instance for Frostbite FE&lt;br /&gt;
-o- Adds ‘ball’ as the noun used for ‘ball and chain’&lt;br /&gt;
-o- Adds the movement result ‘slip in the mud and fall flat’&lt;br /&gt;
-o- Corrects stamina cost for the feature Dispel Magic&lt;br /&gt;
-o- Plus all the latest script updates from Elanthia-Online!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML to limit login errors (DR)&lt;br /&gt;
-o- Fix for XMLData.active_spells to properly register wizard &#039;recovery&#039; spell cooldowns&lt;br /&gt;
-o- Messaging updates to remove error in Wizard FE encodings&lt;br /&gt;
-o- Corrects for error in detecting PSM skill changes (cman) via warrior / rogue guild lessons&lt;br /&gt;
-o- Deprecates LNet script from master repository&lt;br /&gt;
-o- Miscellaneous small bug squashing&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.6.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- (DragonRealms) Support for Genie and Frostbite frontends&lt;br /&gt;
-o- (GemStone) Changed methods to improve ;go2 speed and reduce lich.db3 calls&lt;br /&gt;
-o- (GemStone) Updates to support silver_count function&lt;br /&gt;
-o- (Both) Changed method for updating lich ecosystem&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.5.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for DragonRealms&lt;br /&gt;
-o- Updated support for scripts like BigShot&lt;br /&gt;
-o- Providing the LichID and UID on Profanity&lt;br /&gt;
-o- Spell.force_incant, .force_channel, and .force_evoke&lt;br /&gt;
-o- Standardized message method for script authors&lt;br /&gt;
-o- Sundry small improvements / fixes and changes&lt;br /&gt;
-o- And the creme de la creme - a custom directory&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.4.0&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Simu Room IDs (formally called &#039;unique ID&#039; or &#039;uid&#039; for Lich) added to Map, mapDB where known, and ;go2 for navigation (courtesy Xanlin and with our thanks!) ;go2 u7120 for all you ex-GMs out there. &lt;br /&gt;
-o- Room titles will now display the Lich ID and / or the UID for the room based on user selections - default is on for both, and enabled / disabled via Lich.display_lichid or Lich.display_uid toggles that can be set to on / off or true / false. (;e Lich.display_lichid=true/false and ;e Lich.display_uid=true/false) You can remove that rnum from your autostart now! To gain the benefit of the UID deployment, be sure to ;repo download-mapdb&lt;br /&gt;
-o- REQUESTS: Drop 5 minute timeout function from Lich&lt;br /&gt;
-o- waitrt? and waitcastrt? will still pause activities, but will return TRUE or FALSE in keeping with the Ruby functionname? tradition (no more failing to get a weapon out due to RT from climbing!)&lt;br /&gt;
-o- empty_hands and fill_hands will now check to see if the character is in roundtime before trying to put away or retrieve held items&lt;br /&gt;
-o- Infomon received an update that keeps spell timers in sync with the information received from the server - no more need to immediately do a spell active in game to get the right times to display for various legacy scripts and ;magic after visiting the invoker or using an SK item&lt;br /&gt;
-o- Lich now provides a facility to get current coins on the character that is a bit more agnostic to data changes from Simu - Lich::Util.silver_count&lt;br /&gt;
-o- Various other small tidbits to help ease maintenance and future development&lt;br /&gt;
-o- PLEASE NOTE:  This update is required for the newest Bigshot (released today!) and for future eloot and eherbs scripts (release RSN)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.3.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Added support for Wrayth (renamed Stormfront) installations &lt;br /&gt;
-o- Converted Linux | WINE login methods to &#039;method 0&#039;, does not use Simu launcher&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.2.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for STOWing items irrespective of special item scripts&lt;br /&gt;
-o- Improved query support for Effects and CMans&lt;br /&gt;
-o- Fix Lich bug to respect the &#039;groupmovement&#039; flag in game&lt;br /&gt;
-o- Fix Lich round time calculations (more aggressive timing)&lt;br /&gt;
-o- Dark Mode is now a thing&lt;br /&gt;
-o- Lich4 Style GUI layout available&lt;br /&gt;
-o- Several file location changes to support future code change efforts&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.19&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Benefit: Monks with Mental Acuity (all 3 of you) rejoice - stamina casting!&lt;br /&gt;
-o- Benefit: PSM3 included, no charge. No hair remaining, either!&lt;br /&gt;
-o- Benefit: Ok, stay seated: Some of your various SF spell duration windows may work. . . better? Yes, not perfect, but better. No pictures, please!&lt;br /&gt;
-o- Updated infomon that properly detects Cloak of Shadows on those pesky sorcerers, and the Raise Dead Cooldown periods for those wondrous clerics.&lt;br /&gt;
-o- A new update process for Lich 5 - tired of having to download that script over and over just to update? Get yourself a copy of lich5-update.lic. Note, if you already have it, you&#039;re set! If not - ;jinx script install lich5-update --repo=elanthia-online&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Updated the method used to log onto SIMU servers.&lt;br /&gt;
-o- Added the Animalist item specifics to Lich5&#039;s empty and fill hands routines&lt;br /&gt;
-o- Improved Invoker messages for Avalon and Wizard FEs (no change for SF FE)&lt;br /&gt;
-o- Improved cleanup and store methods when player EXIT&#039;s or QUIT&#039;s game&lt;br /&gt;
-o- Crafted two new methods (stash_hands and equip_hands) for future script use&lt;br /&gt;
-o- Some behind-the-scenes cleanup to improve maintaining the Lich5 ecosystem&lt;br /&gt;
-o- Add Spell Active improvements&lt;br /&gt;
-o- Add PSM and Ranger improvements&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
* [[Mac Installation - Lich (software)]]&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
[[Category:New Player]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Cysaegir&amp;diff=264810</id>
		<title>Cysaegir</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Cysaegir&amp;diff=264810"/>
		<updated>2026-09-04T19:06:21Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: change image author credit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Cysaegir (wiki).png|thumb|right|Cysaegir map by GM Xeraphina.&amp;lt;br&amp;gt;There is also an alternate Lich mapdb version: https://gswiki.play.net/File:Cysaegir_(mapdb).png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cysaegir&#039;&#039;&#039; is a small [[Illistim]]-built town found off [[Whistler&#039;s Pass]]. Formerly named Glimae&#039;den, it had been abandoned for some time when the [[Aelotoi]] arrived in [[Elanthia]] in the year 5103. [[Myasara Illistim]], wanting to help them along in their new lives in Elanthia, had the town cleaned up and reinhabited, and then gave it to the aelotoi. The name Cysaegir means &amp;quot;Sanctuary&amp;quot; in the aelotoi language, and it was named such as it represents the first true safe haven they have ever known. It is now inhabited by the aelotoi and a number of elves who run the shops and other services of the town.&lt;br /&gt;
&lt;br /&gt;
The town itself is found in a lush forest, and portions of it are actually located in the [[Treetop Platform|treetops]]. It is rather small, but offers most standard town services, including [[citizenship]] available to all races, an inn, a bank, and lockers.&lt;br /&gt;
&lt;br /&gt;
Due to the Aelotoi&#039;s recent arrival on Elanthia, they do not bear the same prejudices and stereotypes of the various races of Elanthia as the elves. Hence, Cysaegir is accommodating towards all races, offering fair prices towards non-elves. &lt;br /&gt;
&lt;br /&gt;
==NPCs==&lt;br /&gt;
The following automated NPCs reside in [[Cysaegir]].&lt;br /&gt;
&lt;br /&gt;
* [[a cheery clerk]]&lt;br /&gt;
* [[a cheerful workshop foreman]]&lt;br /&gt;
* [[a clerk (Cysaegir)|a clerk]]&lt;br /&gt;
* [[a dark-haired young woman]]&lt;br /&gt;
* [[a dog-faced dark grey fruit bat]]&lt;br /&gt;
* [[a gold-winged Aelotoi toddler]]&lt;br /&gt;
* [[a leathery old woman]]&lt;br /&gt;
* [[an Aelotoi clerk]]&lt;br /&gt;
* [[an attentive warehouse manager]]&lt;br /&gt;
* [[an old aelotoi woman]]&lt;br /&gt;
* [[an opaline blue swallowtail butterfly]]&lt;br /&gt;
* [[Hihaeim]]&lt;br /&gt;
* [[the Aelotoi magistrate]]&lt;br /&gt;
* [[the merchant Claeresse]]&lt;br /&gt;
* [[the merchant Claerine]]&lt;br /&gt;
* [[Urgaen]]&lt;br /&gt;
&lt;br /&gt;
==Shops==&lt;br /&gt;
{{main|:Category:Cysaegir shops}}&lt;br /&gt;
{{#ask: [[Category:Cysaegir shops]][[Townshop-template-is::True]]&lt;br /&gt;
 |?Shop portal&lt;br /&gt;
 |?Shop portal location&lt;br /&gt;
 |?Shop type&lt;br /&gt;
 |?Shop wares&lt;br /&gt;
 |?Shop specialty&lt;br /&gt;
 |format=template&lt;br /&gt;
 |limit=50&lt;br /&gt;
 |link=none&lt;br /&gt;
 |mainlabel=&lt;br /&gt;
 |template=ShopTownTable&lt;br /&gt;
 |introtemplate=ShopTownTableStart&lt;br /&gt;
 |outrotemplate=Shop_table_end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Buildings==&lt;br /&gt;
The following locations, stores, and facilities can be found in [[Cysaegir]].&lt;br /&gt;
&lt;br /&gt;
* [[Cysaegir Bank]]&lt;br /&gt;
* [[Gems of the Earth]]&lt;br /&gt;
* [[Glimae&#039;den Wildwood]]&lt;br /&gt;
* [[Laetira&#039;s Dispensary]]&lt;br /&gt;
* [[Linsandrych Common]]&lt;br /&gt;
* [[Maeve&#039;s Furs]]&lt;br /&gt;
* [[Reformatory]]&lt;br /&gt;
* [[Rhyaesdid Hall]]&lt;br /&gt;
* [[Salon Saeliria]]&lt;br /&gt;
* [[Surname registry#Locations|Surname Registry]]&lt;br /&gt;
* [[Urgaen&#039;s Pawnshop]]&lt;br /&gt;
&lt;br /&gt;
==Public Gathering Places==&lt;br /&gt;
{{#section-h:Node|[[Cysaegir]]}}&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
*[http://forums.play.net/forums/GemStone%20IV/Towns/Cysaegir/view Officials folder]&lt;br /&gt;
&lt;br /&gt;
{{Aelotoi}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Cysaegir| ]]&lt;br /&gt;
[[Category:Ta&#039;Illistim]]&lt;br /&gt;
[[Category:Towns]]&lt;br /&gt;
[[Category:Player Accessible]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=File:Cysaegir_(wiki).png&amp;diff=264809</id>
		<title>File:Cysaegir (wiki).png</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=File:Cysaegir_(wiki).png&amp;diff=264809"/>
		<updated>2026-09-04T19:05:00Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: HORIBU1 uploaded a new version of File:Cysaegir (wiki).png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The wiki version of the Cysaegir map.&lt;br /&gt;
&lt;br /&gt;
This map was made by Tsoran and updated by Arianiss.&lt;br /&gt;
&lt;br /&gt;
[https://gswiki.play.net/File:EN-Cysaegir.png Older versions.]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Scripting_reference&amp;diff=264729</id>
		<title>Lich:Software/Scripting reference</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software/Scripting_reference&amp;diff=264729"/>
		<updated>2026-08-31T20:38:39Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: added links to newer API documentation sites&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}{{TOCright|limit=3}}&lt;br /&gt;
=Current Documentation=&lt;br /&gt;
For up to date Lich API documentation, please visit the following websites as they will be more maintained and up to date than the documentation you will find on this page.&lt;br /&gt;
* [https://lich-5-docs.elanthia.online/ Lich-5-Docs]&lt;br /&gt;
* [https://deepwiki.com/elanthia-online/lich-5 DeepWiki]&lt;br /&gt;
&lt;br /&gt;
=Older Documentation=&lt;br /&gt;
== variable ==&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
variable[1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Script.current.vars[0]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Script.current.vars[1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array, possibly empty&lt;br /&gt;
*&#039;&#039;&#039;Synonyms:&#039;&#039;&#039; Script.current.vars, script.vars&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; An array containing the command line variables the user entered when starting the script. Index position 0 contains all the variables passed to it in a single string. Index positions 1 thru n correlate to space separated list of the values passed to the script. The third example above showing proper syntax for recalling the first variable passed to the script. While variable and script.vars still work, the current best practice is to use Script.current.vars to match appropriate Lich API usage.&lt;br /&gt;
&lt;br /&gt;
== echo ==&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
echo&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
echo &amp;quot;Hi there!&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
echo &amp;quot;Line one&amp;quot;, &amp;quot;Line two&amp;quot;, &amp;quot;endlessly&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Displays &#039;[script_name: the string it was given]&#039; in the game window; if given multiple strings it echoes each string on its own line.  If it&#039;s given no arguments, it simply prints a blank line without the &#039;[script_name: ]&#039; business.&lt;br /&gt;
&lt;br /&gt;
== respond ==&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
respond&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
respond &amp;quot;I&#039;m a string to display&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
respond &amp;quot;Line one&amp;quot;, &amp;quot;Line two&amp;quot;, &amp;quot;so on and so on&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; integer&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Just like the &#039;echo&#039; command, but does not display the script name.  Since it&#039;s possible for Lich to be running two dozen scripts at the same time, it can get a little hard to know which script is saying what unless they use the &#039;echo&#039; command and not the &#039;respond&#039; command.  Still, &#039;echo&#039; can be a bit ugly for printing tables and whatnot, so use this instead if desired.  The return value is how many characters the last string displayed contained.&lt;br /&gt;
&lt;br /&gt;
== pause ==&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
pause&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
pause 3&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
pause &#039;2s&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
pause &#039;3m&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
pause &#039;1d&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an integer&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; If given no arguments, pauses for one second.  If given an integer, pauses for that many seconds.  If given a string (as in the examples above), extracts the number to pause for from the string and pauses for that many seconds/hours/days (yeah, well, I was bored, so why not make it do days too).  Return value is the number of seconds it paused for.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
&lt;br /&gt;
Sending output to the game as though typed by the player.&lt;br /&gt;
&lt;br /&gt;
=== put ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
put &amp;quot;look&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; the string that was sent&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to Wizard.&lt;br /&gt;
&lt;br /&gt;
=== fput ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
fput &amp;quot;stance defensive&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
fput &amp;quot;stance defensive&amp;quot;, &amp;quot;are now in a defensive stance&amp;quot;, &amp;quot;can&#039;t do that while dead&amp;quot;, &amp;quot;etc&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; the string that was accepted as meaning the action succeeded (see below)&lt;br /&gt;
*&#039;&#039;&#039;Synonyms:&#039;&#039;&#039; forceput&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; It&#039;s named &#039;forceput&#039;  because originally it was intended to be used only infrequently, but as it&#039;s turned out there are very few times when &#039;put&#039; is preferable.  This command will continue to &#039;put&#039; whatever string you give it, until it receives a line from the game that it doesn&#039;t recognize as one of the common &amp;quot;command rejected&amp;quot; responses (for example, &amp;quot;You can&#039;t do that while entangled in a web&amp;quot;, &amp;quot;...wait x seconds&amp;quot; (RT), &amp;quot;Wait x seconds.&amp;quot; (cast RT), &amp;quot;Sorry, you may only type ahead x lines&amp;quot;, &amp;quot;You&#039;ll have to stand up first&amp;quot; (stands and reattempts), etc).  If stunned, it will wait until you&#039;re no longer stunned to reattempt; if in RT (hard or soft), will wait &#039;x&#039; seconds before reattempting.  If you need to stand, it will do so and retry immediately.  If it causes a type ahead error, it will pause for 1 second and then reattempt.  This has a very high rate of success, but it is definitely not infallible -- it only checks the next line received from the game, and there&#039;s no guarantee the next line from the game has anything at all to do with what the &#039;fput&#039; command just sent.  Because of this it can often fail to realize the command wasn&#039;t really successful, particularly if the user is doing a lot of things at once.  If given more than one string, the first string is taken as the command to send to the game, and all other strings are used as what to accept as meaning the action succeeded.  BE CAREFUL with this behavior!  It can very infrequently be extremely useful, but if not used cautiously, it can easily cause a script to mistakenly repeat an action many times in *very* rapid succession (which with CoL signs for instance can very easily kill you in less than a second flat).&lt;br /&gt;
&lt;br /&gt;
=== multifput ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
multifput &amp;quot;stance offensive&amp;quot;, &amp;quot;incant 910&amp;quot;, &amp;quot;stance defensive&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string (return value of the last &#039;fput&#039; executed)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Takes multiple strings and executes an &#039;fput&#039; command for every one sequentially.&lt;br /&gt;
&lt;br /&gt;
=== dothis ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
dothis &amp;quot;action here&amp;quot;, /regex to match for success/&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a success string, or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Similar to fput, but will continue to try the action until a success string is matched&lt;br /&gt;
&lt;br /&gt;
=== dothistimeout ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
dothistimeout &amp;quot;action here&amp;quot;, time, /regex to match for success/&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a success string, or nil&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Same as &#039;dothis&#039;, but if a success isn&#039;t seen in the given amount of time, returns a value of &#039;nil&#039; and the script will move on.&lt;br /&gt;
&lt;br /&gt;
=== move ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
move &#039;northwest&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Same as the Wizard &#039;move&#039; command, but it will usually compensate for things like type ahead errors, RT, currently stunned, etc.; will also stand and re-attempt the movement if it&#039;s detected to be necessary.  Returns &#039;true&#039; if the move was executed properly, &#039;false&#039; if it wasn&#039;t able to be performed (which is very rare due to the move command&#039;s error compensation measures).&lt;br /&gt;
&lt;br /&gt;
=== multimove ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
multimove &#039;nw&#039;, &#039;ne&#039;, &#039;go hole&#039;, &#039;climb stairs&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Takes multiple directions to move in and executes the &#039;move&#039; command for each one.  Returns the value of the last &#039;move&#039; command executed (true or false).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
This is core line-by-line handling of full lines of input sent by the game to the player. For more complex filtering and handling, see &amp;quot;match&amp;quot; and &amp;quot;wait&amp;quot; sections.&lt;br /&gt;
&lt;br /&gt;
=== get ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
get&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Fetches the next un-checked line of game data (while a script is running, it is given every game line, and these lines are available for a script to check/use at its leisure).&lt;br /&gt;
&lt;br /&gt;
=== regetall ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
regetall &amp;quot;Shaelun&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of strings, or nil&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Takes a string and returns an array of all game lines (since login) that match as having contained the given string (absolutely every single line since you logged in, Lich remembers them all).  If a script is set as receiving the status data that doesn&#039;t show in the game window, those lines are also matched for; if the script is only being fed normal game data, that&#039;s the only history this command checks.  If no matching lines were found, returns &#039;nil&#039; (which is false in a logical comparison).  As well as returning the matches, it also adds them to the script&#039;s game data stack so that subsequent &#039;get&#039; commands will fetch them in order.  The string to match for is actually optional, and if omitted, all lines are considered &#039;matching&#039;.&lt;br /&gt;
&lt;br /&gt;
=== reget ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
reget 3&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
reget 5, &amp;quot;Shaelun&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of strings, or nil&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Similar to &#039;regetall&#039; in behavior, but it only checks the current RAM cache (every 2 minutes, Lich&#039;s &#039;memory&#039; of game data is emptied out of RAM and stored in a temporary file on the hard disk so that the program doesn&#039;t take up more resources than is necessary -- these files are deleted when the program closes); it also takes an optional integer, which represents how many game lines back to check (&#039;reget 5&#039; would scan the last 5 lines from the game that are still in RAM).  If the integer is omitted, will scan the entire existing RAM buffer (again, cleared every 2 minutes).&lt;br /&gt;
&lt;br /&gt;
=== clear ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
clear&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of strings (possible for the return array to be empty, but unlikely)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Empties ALL unchecked input to the script from ALL queues (normal game stack, unique script stack and upstream stack); the return value is whatever was in the game data stack before it was cleared (which could be nothing, in which case the return is an empty array).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wait ==&lt;br /&gt;
&lt;br /&gt;
=== wait ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
wait&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to Wizard; waits until a line from the game is seen.  Returns the line (in actuality this command simply clears the game stack and executes a &#039;get&#039;).&lt;br /&gt;
&lt;br /&gt;
=== waitrt ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
waitrt&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an integer (Fixnum class)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Pauses for however many seconds you&#039;re currently in roundtime for.  Return value is how many seconds paused.  Waits until you&#039;re in roundtime if you aren&#039;t at the time this command is used, and therefore can hang endlessly.&lt;br /&gt;
&lt;br /&gt;
=== waitrt? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
waitrt?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an integer (Fixnum class)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to &#039;waitrt&#039;, but does not wait until you&#039;re in roundtime and as such will not hang (but will not wait for any roundtime if the game hasn&#039;t sent that you&#039;re in roundtime yet).&lt;br /&gt;
*&#039;&#039;&#039;Note:&#039;&#039;&#039; Zero is a value, and ALL values in Ruby are evaluated to true, EXCEPT for FALSE and NIL. This means that !waitrt? will not do do a proper true/false check like it might in other languages.&lt;br /&gt;
&lt;br /&gt;
=== waitcastrt ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
waitcastrt&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an integer (Fixnum class)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Pauses for however many seconds you&#039;re currently in RT for.  Return value is how many seconds paused.  Waits until you&#039;re in RT if you aren&#039;t at the time this command is used, and therefore can hang endlessly.&lt;br /&gt;
&lt;br /&gt;
=== waitcastrt? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
waitcastrt?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an integer (Fixnum class)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to &#039;waitcastrt&#039;, but does not wait until you&#039;re in cast roundtime and as such will not hang (but will not wait for any cast roundtime if the game hasn&#039;t sent that you&#039;re in cast roundtime yet).&lt;br /&gt;
*&#039;&#039;&#039;Note:&#039;&#039;&#039; Zero is a value, and ALL values in Ruby are evaluated to true, EXCEPT for FALSE and NIL. This means that !waitcastrt? will not do do a proper true/false check like it might in other languages.&lt;br /&gt;
&lt;br /&gt;
=== waitfor ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
waitfor &amp;quot; just arrived.&amp;quot;, &amp;quot;More lines to waitfor if you desire&amp;quot;, &amp;quot;endlessly&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Waits until a line from the game includes the string you gave it as an argument.  The return value is the complete string from the game (in the example used here, if Shaelun entered the room, the command would return &amp;quot;Shaelun just arrived.&amp;quot;).  &#039;waitfor&#039; is case insensitive (capital letters are considered matches even if the string it was given didn&#039;t have a capital letter there).&lt;br /&gt;
&lt;br /&gt;
=== wait_while ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
wait_while { percenthealth != 100 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
wait_while(&amp;quot;You do not have full health: waiting until you do.&amp;quot;) { percenthealth != 100 }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; The script will wait while the given code block has a logical value of &#039;true&#039;, and will only continue on to the next line when/if the code block has a value of &#039;false&#039;.  If given the optional string to announce to the user, it will only display that string if it&#039;s going to be sitting there waiting for something -- if the command will not be waiting at all, it doesn&#039;t display the string to the user.  Note that there&#039;s no limit to how long/complicated the code block can be; it was designed for very short logical comparisons like the example above, but need not be used that way.&lt;br /&gt;
&lt;br /&gt;
=== wait_until ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
wait_until(&amp;quot;Waiting until 50 mana or more!&amp;quot;) { checkmana(50) }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical in all ways to &#039;wait_while&#039;, but does the opposite (waits UNTIL the given code block is true, not WHILE it&#039;s true).  Also takes the optional string if desired.&lt;br /&gt;
&lt;br /&gt;
== Match ==&lt;br /&gt;
&lt;br /&gt;
Wizard-style &amp;quot;match&amp;quot; commands&lt;br /&gt;
&lt;br /&gt;
=== matchtimeout ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
matchtimeout 5, &amp;quot;string to watch for&amp;quot;, &amp;quot;another&amp;quot;, &amp;quot;endlessly&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string, or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Same as &#039;waitfor&#039;, but if a match isn&#039;t seen in the given amount of time, returns a value of &#039;false&#039; and the script will move on.&lt;br /&gt;
&lt;br /&gt;
=== matchwait ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; If used without any arguments, 100% identical to Wizard &#039;matchwait&#039; commands.  You can optionally give it arguments, in which case it acts identically to &#039;waitfor&#039; in all ways except one: matches are case sensitive (for instance, matchwait &amp;quot;shaelun&amp;quot; will not match if the word &amp;quot;Shaelun&amp;quot; is seen from the game).&lt;br /&gt;
&lt;br /&gt;
=== match ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
match &#039;label&#039;, &#039;line to watch for&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
match &amp;quot;gameline&amp;quot;, &amp;quot;gameline&amp;quot;, &amp;quot;some other gameline&amp;quot;, &amp;quot;so on and so forth&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; If given exactly two arguments, identical to the Wizard &#039;match&#039; command.  If given *any* other number of arguments, it&#039;s a case sensitive version of &#039;waitfor&#039; but instead of returning the entire matching game line, it returns only the portion of the string you asked it to watch for.&lt;br /&gt;
&lt;br /&gt;
=== matchfind ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
matchfind &amp;quot;A ? attacks you!&amp;quot;, &amp;quot;A ? swings a ? at you!&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
person, weapon = matchfind &amp;quot;? swings a ? at you!&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string or an array&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Same as &#039;waitfor&#039;, but returns only the portion of the line where the question mark(s) are.  If given multiple question marks, returns an array containing the portions of the string (in order).  Note that if you assign multiple variables to equal a single array, the array&#039;s elements are used in order and assigned to each variable (if there are fewer elements in the array than there are variables being assigned, variables receive a value of &#039;nil&#039;, and if there are more elements in the array than there are variables being assigned, the last variable is assigned an array with the remaining values).  This is why the above usage example works (person, weapon =).&lt;br /&gt;
&lt;br /&gt;
=== matchfindword ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
weapon = matchfindword &amp;quot;Shaelun swings a ? at you!&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string (single word)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to &#039;matchfind&#039;, but only looks for a single word where the question marks are.  Note that a line won&#039;t match if more than one word is where the question mark is (in the above example, if the weapon were a &amp;quot;broadsword&amp;quot; it would match, but if it were a &amp;quot;sonic hammer of kai&amp;quot; there would be no match).&lt;br /&gt;
&lt;br /&gt;
=== matchfindexact ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
matchfindexact &amp;quot;? just arrived.&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Version of matchfind meant for use in special cases; matchfind is very forgiving and will return and match anything (case insensitively) -- matchfindexact is very strict.  It is case sensitive and cares about things like spaces, word boundaries (partial pieces of a word will not match, only whole words), the case of the string it&#039;s looking for, etc..  Use it if you need to use matchfind and want to make sure only a very specific line matches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Room ==&lt;br /&gt;
&lt;br /&gt;
=== checkarea ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkarea&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkarea &amp;quot;illistim&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string, or true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; By itself returns the geographical area of your current room, or if given a string to check for, returns true or false based on whether your current area matches the string or not.&lt;br /&gt;
&lt;br /&gt;
=== checkroom ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkroom&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkroom &amp;quot;table&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false, or a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to checkarea, but uses the room title instead of the geographical area.&lt;br /&gt;
&lt;br /&gt;
=== checkpaths ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkpaths&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkpaths &#039;nw&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of strings, or true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Returns an array consisting of the current &#039;Obvious exits:&#039; directions if given no argument, or true/false based on whether all arguments given are currently available as exits or not.&lt;br /&gt;
&lt;br /&gt;
=== checkoutside ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkoutside&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
outside?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Synonyms:&#039;&#039;&#039; outside?&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Really simple, just returns true if you&#039;re outside, false if you aren&#039;t.  Probably only of use to rangers writing their own spellup scripts or something, but either way: it&#039;s available if you have a use for it.&lt;br /&gt;
&lt;br /&gt;
=== checknpcs ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
if checknpcs&lt;br /&gt;
	fput &amp;quot;attack&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
if checknpcs &amp;quot;big monster of doom&amp;quot;, &amp;quot;small monster of doom&amp;quot;&lt;br /&gt;
	put &amp;quot;Oh noes!&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
	for npc in checknpcs&lt;br /&gt;
		put &amp;quot;greet #{npc}&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of strings, a string, or nil&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; If checknpcs is used without giving it npcs to check for, it returns an array of strings coresponding to the noun of each npc in the room, or nil if there are no npcs (does not return an empty array, so you can use &amp;quot;if checknpcs&amp;quot;).  If chekcnpcs is given npcs to look for, it returns a string of the first matching npc it finds, or nil if none matched (any string evaluates to true, only nil and false evaluate to false in an if statement).&lt;br /&gt;
&lt;br /&gt;
=== checkpcs ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkpcs&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkpcs &amp;quot;shaelun&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; array of strings, or true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to &#039;checknpcs&#039;, but with the players currently present.&lt;br /&gt;
&lt;br /&gt;
=== checkloot ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkloot&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of strings (or an empty array if no items)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Returns an array consisting of the items currently in the room.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Familiars ==&lt;br /&gt;
&lt;br /&gt;
=== checkfamarea/checkfamroom ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkfamarea&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkfamarea &amp;quot;illistim&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string, or true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to checkarea/checkroom, but check your familiar&#039;s current location instead of yours (only in Wizard and only if you have a familiar).&lt;br /&gt;
&lt;br /&gt;
=== checkfampcs ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkfampcs &amp;quot;shaelun&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkfampcs&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; array of strings, or true/false&lt;br /&gt;
*&#039;&#039;&#039;Synonyms:&#039;&#039;&#039; checkfamnpcs&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to the above two, but tracks for your familiar&#039;s room instead.  Not available in SF as of v3.06.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Character ==&lt;br /&gt;
&lt;br /&gt;
=== checkpoison ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkpoison&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; See checkdisease.&lt;br /&gt;
&lt;br /&gt;
=== checkdisease ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkdisease&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; See checkpoison.&lt;br /&gt;
&lt;br /&gt;
=== checkfried ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkfried&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Returns true if you&#039;re fried, false if not.&lt;br /&gt;
&lt;br /&gt;
=== checkmind ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkmind&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkmind(2)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false, or a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; By itself returns a string representing the level of exp in your head (&#039;clear as a bell&#039;, &#039;fried&#039;, &#039;muddled&#039;, etc).  If given an integer, returns true or false if you have the corresponding level of exp in your head, with 0 being &#039;clear as a bell&#039;, 1 being &#039;fresh and clear&#039;, etc.&lt;br /&gt;
&lt;br /&gt;
=== check_mind ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
check_mind&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
check_mind(50)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false, or a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; By itself returns a string representing the level of exp in your head (&#039;clear as a bell&#039;, &#039;fried&#039;, &#039;muddled&#039;, etc).  If given an integer, returns true or false if you have the corresponding percentage of exp in your head.&lt;br /&gt;
&lt;br /&gt;
=== percentmind ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
percentmind&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
percentmind(80)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; integer, or true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; By itself returns an integer ranging from 0-100 representing the percentage of exp in your head. If given an integer, returns true or false if you have at least that percentage of experience.  Both saturated and fried show up as 100 percent - a user interested in distinguishing between the two can add a checksaturated or saturated? qualifier to their percentmind check.&lt;br /&gt;
&lt;br /&gt;
=== checkright/checkleft ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkright&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkleft &amp;quot;broadsword&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false, or a string&lt;br /&gt;
*&#039;&#039;&#039;Synonyms:&#039;&#039;&#039; righthand?/lefthand?&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Give them a string and will return true/false if it matches what you&#039;re holding, or the last word in the item name if used by itself.  If your hands are currently empty, it will return &#039;nil&#039; (identical to &#039;false&#039; in a logical comparison) regardless of whether it was given an argument or not.  This behavior can be useful to make absolutely certain a &#039;take&#039; command succeeded, for instance.&lt;br /&gt;
&lt;br /&gt;
=== checkstance ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkstance&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkstance &amp;quot;offensive&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkstance 0&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false, or a string&lt;br /&gt;
*&#039;&#039;&#039;Synonyms:&#039;&#039;&#039; stance&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; With no arguments, returns the string representing your current stance. With a numerical or string argument, returns a boolean flag indicating if the current stance matches the given string. For string based comparisons, this will correctly test against the stance values possible if using [[Combat Mastery]] or [[[[Warrior_Tricks#Stance_Perfection|Stance Perfection]]]], while integer based arguments will perform a precise comparison.&lt;br /&gt;
&lt;br /&gt;
=== check(thing) ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkstanding&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkspell &amp;quot;spirit defense&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkdead&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; mostly true/false&lt;br /&gt;
*&#039;&#039;&#039;Synonyms:&#039;&#039;&#039; checkstanding; checknotstanding; checksitting; checkprone; checkkneeling/kneeling?; checkprep/prepped?; checkmind; checkgrouped/checkjoined/joined?; checkwebbed/webbed?; checkstunned/stunned?; checkdead/dead?; checkhidden/checkhiding/hidden/hiding?; checkname/myname?; checkspell/checkactive/active?&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Most are true if you are (checkstunned for example), false if you aren&#039;t; they all follow the same basic behavior as the above-documented &#039;check&#039; commands.&lt;br /&gt;
&lt;br /&gt;
=== checkname ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkname&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkname &amp;quot;Shaelun&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; string or true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; True/false if given a string and the names match, or just returns the character name if given no arguments.&lt;br /&gt;
&lt;br /&gt;
=== checkstamina ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkstamina 50&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkstamina&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false or an integer&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Only in StormFront (there is no auto-updated stamina tag in Wizard).  Given no arguments, returns your current stamina.  Given a number, returns true/false based on whether you have at least or more than that number.&lt;br /&gt;
&lt;br /&gt;
=== checkrt / checkcastrt ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkrt&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkcastrt&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; value of roundtime&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Returns a value of how much roundtime left. Useful for IF statements.&lt;br /&gt;
&lt;br /&gt;
=== checkmana/checkhealth/checkspirit ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkmana 50&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; identical as above&lt;br /&gt;
*&#039;&#039;&#039;Synonyms:&#039;&#039;&#039; health, health?, mana, mana?, spirit, spirit?&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to checkstamina.&lt;br /&gt;
&lt;br /&gt;
=== maxhealth/maxstamina/maxmana/maxspirit ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
fput &amp;quot;eat my acantha leaf&amp;quot; while (checkhealth &amp;lt; maxhealth)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; integer&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Returns your maximum health/spirit/stamina/mana as an integer (class Fixnum).  Takes no arguments.&lt;br /&gt;
&lt;br /&gt;
=== percenthealth/percentmana/percentspirit/percentstamina ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
fput &amp;quot;eat my acantha leaf&amp;quot; while (percenthealth &amp;lt; 90)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; integer&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Returns an integer (0-100) representing the percentage of your current health/mana/whatever in relation to your max.&lt;br /&gt;
&lt;br /&gt;
=== checkspell ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
checkspell &amp;quot;elemental defense i&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Synonyms:&#039;&#039;&#039; active?&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Returns true if the spell you give it is active, false if it isn&#039;t (only available if you use the infomon script, since that&#039;s what keeps track of this).&lt;br /&gt;
&lt;br /&gt;
=== Wounds ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Wounds.torso&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Wounds.neck&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Wounds.lhand&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an integer&lt;br /&gt;
*&#039;&#039;&#039;Variations:&#039;&#039;&#039; Wounds.head; Wounds.neck; Wounds.abs; Wounds.lhand; Wounds.rhand; Wounds.larm; Wounds.rarm; Wounds.chest; Wounds.back; Wounds.rleg; Wounds.lleg; Wounds.nerves&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Returns the current wound rank (numerically).  If I had &#039;deep gashes and serious bleeding&#039; on my chest, Wounds.chest would return the integer 3.  If I had no wound there, it would return 0.&lt;br /&gt;
&lt;br /&gt;
=== Scars ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Scars.abs&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Scars.nerves&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Scars.rleg&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an integer&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to Wounds above, but for scars instead of wounds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lich toggles ==&lt;br /&gt;
&lt;br /&gt;
=== # QUIET ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
&amp;amp;#35; QUIET&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; n/a&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; This is a special directive that must be a Ruby comment placed as above in the first line of the Lich script. Lich will ordinarily bookend the lifetime of a script with &amp;lt;code&amp;gt;--- Lich: (scriptname) active.&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--- Lich: (scriptname) has exited.&amp;lt;/code&amp;gt; This option omits those lines, allowing a script to start and exit silently.&lt;br /&gt;
&lt;br /&gt;
=== hide_me ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
hide_me&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; updated value of the setting (true/false)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Toggles on/off the &#039;hidden&#039; setting.  When this setting is on (defaults to off), a script will not be listed when the user types ;list. It will still show up under ;list all. There is no way to prevent a script from being being displayed in ;list all.&lt;br /&gt;
&lt;br /&gt;
=== i_stand_alone ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
i_stand_alone&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; updated value of the setting (true/false)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Toggles on/off.  Removes a script from ALL data feeds; a script using this will receive no game lines and no unique data whatsoever (unless they toggle it back off).  If Lich can more or less ignore that a script exists and not bother with keeping its data stacks up-to-the-second with game data and anything else it&#039;s requested, then a script has virtually no overhead whatsoever (meaning any resources it requires come only from what it does independantly).  Useful for some scripts who have no need to eat up resources being fed game data (such as dict.lic).&lt;br /&gt;
&lt;br /&gt;
=== no_kill_all ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
no_kill_all&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; updated value of the setting (true/false)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Toggles on/off the &#039;no kill all&#039; setting: when this setting is on (defaults to off), a script will not be affected by the user typing ;kill all.  A script with this set to on must be killed specifically (by typing ;kill [script], or just ;kill).  There is no way to prevent a script from being killed when targeted by the user.&lt;br /&gt;
&lt;br /&gt;
=== no_pause_all ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
no_pause_all&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; updated value of the setting (true/false)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Toggles on/off the &#039;no pause all&#039; setting: when this setting is on (defaults to off), a script will not be affected by the user typing ;pause all.  A script with this set to on must be killed specifically (by typing ;pause [script], or just ;pause).  There is no way to prevent a script from being paused when targeted by the user.&lt;br /&gt;
&lt;br /&gt;
=== silence_me ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
silence_me&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; updated value of the setting (true/false)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Toggles on/off the &#039;silenced&#039; setting.  A script with this on will not have commands it sends to the game echoed to your game window.  A script run in SAFE mode cannot change this setting (attempting to do so will generate a warning and otherwise have no effect).&lt;br /&gt;
&lt;br /&gt;
===status_tags===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
status_tags&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; ?&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039;Tells Lich to send this script XML tags rather than stripping them, or, if already doing so, tells Lich to go back to stripping the XML. If called with the argument &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot;, switches to that setting and echoes that it has done so.&lt;br /&gt;
&lt;br /&gt;
=== toggle_echo ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
toggle_echo&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; updated value of the setting (true/false)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Toggles on/off the &#039;suppress echo&#039; setting.  A script with this on will not execute any &#039;echo&#039; commands, but will silently ignore them instead; it&#039;s designed more for people who don&#039;t want clutter in their game window but still want to make use of an existing script.  Commands sent to the game are still echoed to the game window.&lt;br /&gt;
&lt;br /&gt;
=== toggle_unique ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
toggle_unique&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; updated value of the setting (true/false)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; When a script is set as being &#039;unique&#039;, it does not receive normal game data; instead it only receives what the user sends to it by typing ;send to (script) (message).  This is of use if a script wants to only act on a user&#039;s input or has no use for game data (it provides a method for scripts to make sure game data doesn&#039;t accidentally get recognized as a user&#039;s input, and also serves to prevent scripts from slowly eating away at system resources because the script never checks or clears its data buffer -- see the &#039;clear&#039; command for more on that).&lt;br /&gt;
&lt;br /&gt;
=== toggle_upstream ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
toggle_upstream&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; updated value of the setting (true/false)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; This must be enabled to allow the script to intercept what you send to the game. See the separate upstream section for more detail.&lt;br /&gt;
&lt;br /&gt;
== Lich::Util ==&lt;br /&gt;
=== issue_command() ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Lich::Util.issue_command(command, start_pattern, end_pattern = /&amp;lt;prompt/, include_end: true, timeout: 5, silent: nil, usexml: true, quiet: false)&lt;br /&gt;
&lt;br /&gt;
Lich::Util.issue_command(&#039;tattoo menu&#039;, /List of flash tattoos available \(Page \d+\):/&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; returns result as an array of strings.&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Will attempt to issue the command(string) given and capture the returning output from the begging start_pattern(regex) until the end_pattern(regex) is seen or the timeout(int) is reached. include_end(booleen) will indicate whether the last line of the end_pattern is included in the array. silent(boolean) will determine if the command is sent silently or echo&#039;d to the frontend. usexml determines whether the start/end pattern is matching against the xml feed or plain txt feed. quiet flag determines whether the output is squelched or shown to the front end. The only required values needed are command and start_pattern. Everything else has default values that can be used or changed.&lt;br /&gt;
&lt;br /&gt;
=== quiet_command_xml() ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Lich::Util.quiet_command_xml(command, start_pattern, end_pattern = /&amp;lt;prompt/, include_end = true, timeout = 5, silent = true)&lt;br /&gt;
&lt;br /&gt;
Lich::Util.quiet_command_xml(&amp;quot;tattoo menu&amp;quot;, /List of flash tattoos available \(Page \d+\):/)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; returns result as an array of strings.&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Will attempt to issue the command(string) given and capture XML buffer lines once the start_pattern(regex) is seen till the end_pattern(regex) is seen or the timeout(int) is reached. include_end(booleen) will indicate whether the last line of the end_pattern is included in the array. silent(boolean) will determine if the command is sent silently or echo&#039;d to the frontend. end_pattern, include_end, timeout, and silent do not need to be included unless changing the default values.&lt;br /&gt;
&lt;br /&gt;
=== quiet_command() ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Lich::Util.quiet_command(command, start_pattern, end_pattern, include_end = true, timeout = 5, silent = true)&lt;br /&gt;
&lt;br /&gt;
Lich::Util.quiet_command(&amp;quot;tattoo menu&amp;quot;, /List of flash tattoos available \(Page \d+\):/, end_pattern = /Type TATTOO MENU again in the next minute to display the next group of flash tattoos\./)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; returns result as an array of strings.&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Will attempt to issue the command(string) given and capture buffer lines once the start_pattern(regex) is seen till the end_pattern(regex) is seen or the timeout(int) is reached. include_end(booleen) will indicate whether the last line of the end_pattern is included in the array. silent(boolean) will determine if the command is sent silently or echo&#039;d to the frontend. include_end, timeout, and silent do not need to be included unless changing the default values.&lt;br /&gt;
&lt;br /&gt;
=== silver_count() ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Lich::Util.silver_count(timeout = 3)&lt;br /&gt;
&lt;br /&gt;
Lich::Util.silver_count&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an integer of how much silver you have&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; useful to know the amount of silver one has on themselves.&lt;br /&gt;
&lt;br /&gt;
== Lich::Messaging ==&lt;br /&gt;
&lt;br /&gt;
=== monsterbold ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Lich::Messaging.monsterbold(msg)&lt;br /&gt;
&lt;br /&gt;
Lich::Messaging.monsterbold(&amp;quot;This text I want to monsterbold&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an encoded string with proper monsterbold tags depending on FrontEnd used&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Will take the string given and return it with monsterbold before/after and xml_encode the msg.&lt;br /&gt;
&lt;br /&gt;
=== msg_format ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Lich::Messaging.msg_format(type, msg)&lt;br /&gt;
&lt;br /&gt;
Lich::Messaging.msg_format(&amp;quot;info&amp;quot;, &amp;quot;Let&#039;s make this text pretty!&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an encoded string with start and end tags to change the color in the FrontEnd&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Returns the string given with color coding based on the type chosen. Current options are as follows:&lt;br /&gt;
** error, yellow, bold, monster, creature&lt;br /&gt;
** warn, orange, gold, thought&lt;br /&gt;
** info, teal, whisper&lt;br /&gt;
** green, speech, debug, light green&lt;br /&gt;
&lt;br /&gt;
=== msg ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Lich::Messaging.msg(type, msg)&lt;br /&gt;
&lt;br /&gt;
Lich::Messaging.msg(&amp;quot;info&amp;quot;, &amp;quot;Let&#039;s make this text pretty!&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; sends the string given to the client encoded for the type given.&lt;br /&gt;
&lt;br /&gt;
=== stream_window ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Lich::Messaging.stream_window(msg, window)&lt;br /&gt;
&lt;br /&gt;
Lich::Messaging.stream_window(&amp;quot;Let&#039;s send this to a different window!&amp;quot;, &amp;quot;familiar&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; send the string to the various stream window. Currently supports the familiar, speech, thoughts and loot window.&lt;br /&gt;
&lt;br /&gt;
=== xml_encode ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Lich::Messaging.xml_encode(msg)&lt;br /&gt;
&lt;br /&gt;
Lich::Messaging.xml(&amp;quot;Let&#039;s encode some text!&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an xml encoded text&lt;br /&gt;
&lt;br /&gt;
=== mono ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Lich::Messaging.mono(msg)&lt;br /&gt;
&lt;br /&gt;
Lich::Messaging.mono(&amp;quot;Let&#039;s mono some code!&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; force mono formatted string to be displayed properly using XML output class of mono&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
Settings are specific to the script itself. For example, a setting with the name &amp;quot;bank&amp;quot; in fetch_turnips.lic have no effect on the &amp;quot;bank&amp;quot; setting in buy_cheese.lic.&lt;br /&gt;
&lt;br /&gt;
=== Settings.load ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Settings.load&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Settings[&amp;quot;SettingName&amp;quot;] ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Settings[&amp;quot;SettingName&amp;quot;]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Settings.save ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Settings.save&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Settings.clear ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Settings.clear&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; either a hash representing your settings, or &#039;nil&#039; if no settings for the script exist&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Note that Settings.clear will erase all settings, but it will NOT save that on its own.  Issue a Settings.save command after the Settings.clear if you want that script&#039;s settings reset permanently.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Upstream ==&lt;br /&gt;
&lt;br /&gt;
=== upstream_get ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
upstream_get&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Same thing as &amp;quot;get&amp;quot; except it fetches the last line the user sent to the game.  A script has to ask Lich to give it this information by first using the &amp;quot;toggle_upstream&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
=== upstream_get? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
upstream_get?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Attempts to get the last line the user sent to the game, but does not wait for a line to be sent.  A script has to ask Lich to give it this information by first using the &amp;quot;toggle_upstream&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
=== upstream_waitfor ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
upstream_waitfor &amp;quot;climb stairs&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to &amp;quot;waitfor&amp;quot; but only checks the upstream commands (the commands sent to the game by the user).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Interscript communication ==&lt;br /&gt;
&lt;br /&gt;
=== running? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
running? &amp;quot;test&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Takes a string and returns true/false if the given script is active or not.&lt;br /&gt;
&lt;br /&gt;
=== send_to_script ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
send_to_script &#039;scriptname&#039;, &#039;message to send&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; The target script will be sent a string exactly as though it came from the game.  Returns true if successful, false if the script wasn&#039;t found to be active.&lt;br /&gt;
&lt;br /&gt;
=== send_scripts ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
send_scripts &amp;quot;To the running scripts, this line looks identical to one that came from the game&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Same as &#039;send_to_script&#039;, but sends a line to all scripts instead of just one.&lt;br /&gt;
&lt;br /&gt;
=== start_script ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
start_script &amp;quot;test&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
start_script &amp;quot;heal&amp;quot;, [ &amp;quot;shaelun&amp;quot;, &amp;quot;adhara&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Simulates the user having entered  ;test  in the game entry box.  Returns &#039;true&#039; if the script was successfully started, &#039;false&#039; if for any reason it couldn&#039;t be found/started.  The optional second argument (which must be an array, as seen in the above example) can be used to simulate arguments to the script (the above example would simulate the user typing:  ;heal shaelun adhara).&lt;br /&gt;
&lt;br /&gt;
=== start_scripts ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
start_scripts &amp;quot;test&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
start_scripts &amp;quot;test&amp;quot;, &amp;quot;calcredux&amp;quot;, &amp;quot;etc&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Executes a &amp;quot;start_script&amp;quot; command for every argument given.  Note that you cannot give a script arguments when using this command.&lt;br /&gt;
&lt;br /&gt;
=== pause_script ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
pause_script&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
pause_script &amp;quot;test&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; If given no arguments, pauses the script using the command.  If given a string, pauses the script who&#039;s name matches that string; if the script is not currently active, returns &#039;false&#039; (&#039;true&#039; if the script was paused successfully).&lt;br /&gt;
&lt;br /&gt;
=== unpause_script ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
unpause_script &amp;quot;test&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Unpauses the script you give it.  Note that because of the way the &#039;script is paused&#039; state is handled, it&#039;s conceivable for a script that was paused to actually still be executing commands internally for a brief time -- a script isn&#039;t actually &amp;quot;stopped dead in its tracks&amp;quot; until it attempts to interact with the game in some way (by fetching game data, sending game data, or by attempting a command that requires the script to be identified).  Since most commands identify a script (including this one), this command cannot unpause the script itself: when it attempts to unpause itself, it will be identified as being paused and will be halted where it is until it&#039;s unpaused by another script or the user (or killed).  When it is, it will be allowed to continue, and will then try to unpause itself (pointlessly, since it was just unpaused...).&lt;br /&gt;
&lt;br /&gt;
=== kill_script ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
kill_script &amp;quot;test&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Synonyms:&#039;&#039;&#039; kill_scripts, stop_script, stop_scripts&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Simulates the user having entered  ;kill test  in the game entry box and hitting enter; takes multiple scripts to kill.  If the script is not running, returns false; if the script was found to be active and was killed, returns true.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Unique ==&lt;br /&gt;
&lt;br /&gt;
See [[Lich_scripting_reference#toggle_unique|toggle_unique]] for more about the &#039;unique&#039; stack.&lt;br /&gt;
&lt;br /&gt;
=== unique_get ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
unique_get&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Fetches a line from the unique stack, as opposed to the game data stack ().&lt;br /&gt;
&lt;br /&gt;
=== unique_send_to_script ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
unique_send_to_script &#039;scriptname&#039;, &#039;message to send&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Same as &#039;send_to_script&#039;, but the script will receive the string sent in its &#039;unique&#039; stack instead of its &#039;game data&#039; stack (see [[Lich_scripting_reference#toggle_unique|toggle_unique]] for more info).&lt;br /&gt;
&lt;br /&gt;
=== unique_waitfor ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
unique_waitfor &amp;quot;continue&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Same as &#039;waitfor&#039; but acts on the &#039;unique&#039; queue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exit handling ==&lt;br /&gt;
&lt;br /&gt;
=== exit ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; does not return&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Ends the script.&lt;br /&gt;
&lt;br /&gt;
=== die_with_me ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
die_with_me &amp;quot;test&amp;quot;, &amp;quot;calcredux&amp;quot;, &amp;quot;etc&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; If the given scripts are active at the time the script using this command ends (&amp;quot;exit&amp;quot;, finishes, gets killed by the user, or dies in error) they&#039;ll all be killed automatically (produces no notification to avoid clutter, but the scripts are indeed stopped).  The given scripts need not be running (or technically even exist) at the time this command is used -- it only updates the setting, and that setting isn&#039;t actually acted upon until the script is killed.&lt;br /&gt;
&lt;br /&gt;
=== before_dying ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
before_dying { echo &amp;quot;Oh God, why have you killed me dear user...?!&amp;quot; }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
before_dying { Settings.save }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Performs the given actions right before the script exits.  Note nothing is done at the time this command is used (it simply sets what should be done just before the script is killed).  The block given to this command is actually wrapped up into a proc object (an object of the &#039;Procedure&#039; class), and scheduled to be run when the script is killed/exits (if multiple procs exist, they are executed sequentially in the order they were declared).  Because of this, the same &#039;binding&#039; principles that apply to other proc objects apply here (in a nutshell, if a variable didn&#039;t exist when you declared the &#039;before_dying&#039; stuff, then you can&#039;t use it in the &#039;before_dying&#039; code; if it did exist at the time though, you *can* use it, even if it doesn&#039;t really exist in the script when it dies).  Also note that if the command(s) take more than 0.5 seconds to complete, they&#039;re forcibly aborted and the script is killed regardless (this is to prevent a possibly bad situation where a script makes a mistake in the &#039;before_dying&#039; command and is refusing to stop executing due to errors).  Note that if a script is set as executing in SAFE mode, all the restrictions that normally apply will also apply in the &#039;before_dying&#039; code block (this cannot circumvent that, nor can anything else for that matter).&lt;br /&gt;
&lt;br /&gt;
=== undo_before_dying ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
undo_before_dying&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Clears any &#039;before_dying&#039; commands that have been used for the script.&lt;br /&gt;
&lt;br /&gt;
=== abort! ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
abort!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; does not return&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Immediately kills the script, bypassing any &#039;before_dying&#039; blocks that have been registered.  Probably won&#039;t ever be of use, but it&#039;s a way to make the calling script go away as fast as possible (note that it isn&#039;t any faster than the &#039;exit&#039; command is, it just makes sure that nothing except stopping the script happens).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spell ==&lt;br /&gt;
&lt;br /&gt;
The Spell class combines spell information from spell-list.xml and character information from infomon to greatly simplify basic spell handling.&lt;br /&gt;
&lt;br /&gt;
=== Spell[number].cast() ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Spell[503].cast&lt;br /&gt;
Spell[503].cast(&#039;Tilmen&#039;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; returns result as string ( ie cast roundtime, hinderance, etc. )&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Attempt to cast spell given using info from spell-list.xml&lt;br /&gt;
&lt;br /&gt;
=== Spell[number].affordable? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Spell[503].affordable?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; returns true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Useful for knowing if you have enough mana for spell&lt;br /&gt;
&lt;br /&gt;
=== Spell[number].active? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Spell[503].active?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; returns true or false if spell is active&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Will return true if the spell is currently active on yourself, false if it is not.&lt;br /&gt;
&lt;br /&gt;
=== Spell[number].timeleft ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Spell[503].timeleft&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; returns number&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Returns amount of time left as value&lt;br /&gt;
&lt;br /&gt;
=== Spell[number].force_cast() ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Spell[503].force_cast&lt;br /&gt;
Spell[503].force_cast(&#039;Tilmen&#039;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; returns result as string ( ie cast roundtime, hinderance, etc. )&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Attempt to force cast spell&lt;br /&gt;
&lt;br /&gt;
=== Spell[number].force_channel() ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Spell[503].force_channel&lt;br /&gt;
Spell[503].force_channel(&#039;Tilmen&#039;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; returns result as string ( ie cast roundtime, hinderance, etc. )&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Attempt to force channel spell&lt;br /&gt;
&lt;br /&gt;
=== Spell[number].force_evoke() ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Spell[503].force_evoke&lt;br /&gt;
Spell[503].force_evoke(&#039;Tilmen&#039;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; returns result as string ( ie cast roundtime, hinderance, etc. )&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Attempt to force evoke spell&lt;br /&gt;
&lt;br /&gt;
=== Spell[number].force_incant() ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Spell[503].force_incant&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; returns result as string ( ie cast roundtime, hinderance, etc. )&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Attempt to force incant spell&lt;br /&gt;
&lt;br /&gt;
== Effect ==&lt;br /&gt;
&lt;br /&gt;
=== active? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Effects::Spells.active?(&amp;quot;Call Familiar&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Effects::Spells.active?(920)&lt;br /&gt;
&lt;br /&gt;
Effects::Cooldowns.active?(&amp;quot;Mana Leech&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Effects::Buffs.active?(&amp;quot;Rapid Fire&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Effects::Debuffs.active?(&amp;quot;Silenced&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Used to detect whether the given effect is currently active. Spells can be referenced by number or name, unless the spell does not have a number, then must be referenced by name. Name can only be used when FLAG ShowSpellName is set to ON.&lt;br /&gt;
&lt;br /&gt;
=== time_left ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Effects::Spells.time_left(&amp;quot;Call Familiar&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Effects::Spells.time_left(920)&lt;br /&gt;
&lt;br /&gt;
Effects::Cooldowns.time_left(&amp;quot;Mana Leech&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Effects::Buffs.time_left(&amp;quot;Rapid Fire&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Effects::Debuffs.time_left(&amp;quot;Silenced&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; time left in minutes as a floating number&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Used to determine how much time is left on a given effect.&lt;br /&gt;
&lt;br /&gt;
== Weapon ==&lt;br /&gt;
=== known? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Weapon.known?(name)&lt;br /&gt;
&lt;br /&gt;
Weapon.known?(&amp;quot;Charge&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Used to detect whether the weapon skill given is known to the character.&lt;br /&gt;
&lt;br /&gt;
=== affordable? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Weapon.affordable?(name)&lt;br /&gt;
&lt;br /&gt;
Weapon.affordable?(&amp;quot;Charge&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Used to detect whether the weapon skill given is affordable for the character.&lt;br /&gt;
&lt;br /&gt;
=== available? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Weapon.available?(name)&lt;br /&gt;
&lt;br /&gt;
Weapon.available?(&amp;quot;Charge&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Checks whether the weapon skill is known, currently affordable, and that no known current cooldown or Overexerted debuff would block it&#039;s use.&lt;br /&gt;
&lt;br /&gt;
== CMan ==&lt;br /&gt;
=== known? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
CMan.known?(name)&lt;br /&gt;
&lt;br /&gt;
CMan.known?(&amp;quot;Garrote&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Used to detect whether the cman skill given is known to the character.&lt;br /&gt;
&lt;br /&gt;
=== affordable? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
CMan.affordable?(name)&lt;br /&gt;
&lt;br /&gt;
CMan.affordable?(&amp;quot;Garrote&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Used to detect whether the cman skill given is affordable for the character.&lt;br /&gt;
&lt;br /&gt;
=== available? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
CMan.available?(name)&lt;br /&gt;
&lt;br /&gt;
CMan.available?(&amp;quot;Garrote&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Checks whether the cman skill is known, currently affordable, and that no known current cooldown or Overexerted debuff would block it&#039;s use.&lt;br /&gt;
&lt;br /&gt;
== Shield  ==&lt;br /&gt;
&lt;br /&gt;
=== known? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Shield.known?(name)&lt;br /&gt;
&lt;br /&gt;
Shield.known?(&amp;quot;Shield Charge&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Used to detect whether the shield skill given is known to the character.&lt;br /&gt;
&lt;br /&gt;
=== affordable? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Shield.affordable?(name)&lt;br /&gt;
&lt;br /&gt;
Shield.affordable?(&amp;quot;Shield Charge&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Used to detect whether the shield skill given is affordable for the character.&lt;br /&gt;
&lt;br /&gt;
=== available? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Shield.available?(name)&lt;br /&gt;
&lt;br /&gt;
Shield.available?(&amp;quot;Shield Charge&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Checks whether the shield skill is known, currently affordable, and that no known current cooldown or Overexerted debuff would block it&#039;s use.&lt;br /&gt;
&lt;br /&gt;
=== use ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Shield.use(name, target = &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Shield.use(&amp;quot;Shield Charge&amp;quot;, &amp;quot;Wyrom&amp;quot;)&lt;br /&gt;
Shield.use(&amp;quot;Shield Charge&amp;quot;, 9000)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Attempts to use the shield skill given on target specified. Target can be a GameObj, integer, or string. If no target given, will issue command with no target, relying on game-engine targeting.&lt;br /&gt;
&lt;br /&gt;
== Armor ==&lt;br /&gt;
=== known? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Armor.known?(name)&lt;br /&gt;
&lt;br /&gt;
Armor.known?(&amp;quot;Armor Blessing&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Used to detect whether the armor skill given is known to the character.&lt;br /&gt;
&lt;br /&gt;
== Feat ==&lt;br /&gt;
=== known? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Feat.known?(name)&lt;br /&gt;
&lt;br /&gt;
Feat.known?(&amp;quot;Absorb Magic&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Used to detect whether the feat skill given is known to the character.&lt;br /&gt;
&lt;br /&gt;
=== affordable? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Feat.affordable?(name)&lt;br /&gt;
&lt;br /&gt;
Feat.affordable?(&amp;quot;Absorb Magic&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Used to detect whether the feat skill given is affordable for the character.&lt;br /&gt;
&lt;br /&gt;
=== available? ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Feat.available?(name)&lt;br /&gt;
&lt;br /&gt;
Feat.available?(&amp;quot;Absorb Magic&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Checks whether the feat skill is known, currently affordable, and that no known current cooldown or Overexerted debuff would block it&#039;s use.&lt;br /&gt;
&lt;br /&gt;
== GameObj ==&lt;br /&gt;
&lt;br /&gt;
The GameObj class tracks various objects in the same room as you, and makes their game id, name, noun, status, and contents available to you.&lt;br /&gt;
&lt;br /&gt;
=== GameObj arrays ===&lt;br /&gt;
&lt;br /&gt;
Several arrays are exposed by GameObj. They include:&lt;br /&gt;
&lt;br /&gt;
==== GameObj.inv ====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of objects of the GameObj class representing the things you are wearing.&lt;br /&gt;
&lt;br /&gt;
==== GameObj.pcs ====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of objects of the GameObj class representing the other players in the room, or nil if there are none.&lt;br /&gt;
&lt;br /&gt;
==== GameObj.npcs ====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of objects of the GameObj class representing the npcs in the room, or nil if there are none.&lt;br /&gt;
&lt;br /&gt;
==== GameObj.loot ====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of objects of the GameObj class representing the loot in the room, or nil if there is none.  For the purposes of this function, loot is anything that Simu hasn&#039;t tagged with monster bold.  Any exits or anything that shows up in the &amp;quot;You also see&amp;quot; line will be included.&lt;br /&gt;
&lt;br /&gt;
==== GameObj.room_desc ====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of objects of the GameObj class representing any links found in the room description, or nil if there are none.&lt;br /&gt;
&lt;br /&gt;
==== GameObj.dead ====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of objects of the GameObj class representing the dead &#039;&#039;&#039;npcs&#039;&#039;&#039; in the room, or nil if there are none.&lt;br /&gt;
&lt;br /&gt;
==== GameObj.fam_pcs, GameObj.fam_npcs, GameObj.fam_loot, GameObj.fam_room_desc ====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of objects of the GameObj class.  Similar to the ones above, except for your familiar&#039;s room, and these don&#039;t stay up-to-date without having your familiar look at the room.&lt;br /&gt;
&lt;br /&gt;
==== GameObj.targets ====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an array of objects of the GameObj class representing the hostile npcs in the room, the mobs, the monsters, whatever you want to call them.&lt;br /&gt;
&lt;br /&gt;
==== GameObj.target ====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an object of the GameObj class representing the current target you have selected, if any.&lt;br /&gt;
&lt;br /&gt;
=== Finding game objects with GameObj ===&lt;br /&gt;
&lt;br /&gt;
Now that you&#039;ve got an object or array of objects, here&#039;s what to do with them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
target = GameObj.npcs.find { |npc| npc.status.nil? }&amp;lt;br&amp;gt;&lt;br /&gt;
if target&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;fput &amp;quot;attack ##{target.id}&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; This example shows (in an over-simplified way) the most common use of the GameObj class.   First, &amp;quot;GameObj.npcs&amp;quot; gives an array of all the npcs in the room.  Then, &amp;quot;.find&amp;quot; searches each item in that array.  For each item in the array, the code inside the brackets following &amp;quot;GameObj.npcs.find&amp;quot; is run, and &amp;quot;npc&amp;quot; represents the item it&#039;s currently looking at.  The code inside the brackets acts like an if statement, and as soon as it is true, &amp;quot;target&amp;quot; is assigned the npc object.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;status&amp;quot; method applies to npcs and pcs (using it on others won&#039;t give an error, but it will always return nil).  The status is basically whatever shows up after &amp;quot;that appears&amp;quot;, &amp;quot;that is&amp;quot;, or &amp;quot;who is&amp;quot;.  So, if you also see a kobold that appears stunned, its status will be &amp;quot;stunned&amp;quot;.  In the example, we&#039;re looking for an npc with a nil status, because that represents an npc that&#039;s standing and not stunned, dead, prone, etc.  The game never shows &amp;quot;You also see a kobold that is standing.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now suppose there&#039;s twenty kobolds in the room, and only the fifteenth one is standing.  How can you be sure you attack the standing one?  This is where the kobold&#039;s id comes in handy.  Simu assigns an id to almost everything in the game.  Stormfront uses these ids when you click on links.  For the most part, these ids can be used just like nouns.  &amp;quot;attack ##{target.id}&amp;quot; will attack the npc you found earlier, even if other npcs are walking in and out of the room.  The double pound sign is not a typo.&lt;br /&gt;
&lt;br /&gt;
=== Other GameObj methods ===&lt;br /&gt;
&lt;br /&gt;
==== GameObj.containers ====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a Hash of ids (as Strings) mapping to arrays of objects of the GameObj class. Each id represents an accessible container &#039;&#039;&#039;that GameObj is aware of&#039;&#039;&#039; with the given id. The id maps to an array of objects of the GameObj class representing that container&#039;s contents.&lt;br /&gt;
&lt;br /&gt;
For a container to be added to the Hash, GameObj must first be made aware of its contents by some sort of interaction with the container, looking in it, opening it, and more. (Someone who knows the specific cases, please add detail!)&lt;br /&gt;
&lt;br /&gt;
==== GameObj.right_hand, GameObj.left_hand ====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; an object of the GameObj class representing whatever is in your hand.  Currently, if there is nothing in your hand, it still returns a GameObj where the name is &amp;quot;Empty&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Useful and hopefully self-explanatory methods to use once you have the right GameObj object====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
.id&amp;lt;br&amp;gt;&lt;br /&gt;
.name&amp;lt;br&amp;gt;&lt;br /&gt;
.noun&amp;lt;br&amp;gt;&lt;br /&gt;
.status&amp;lt;br&amp;gt;&lt;br /&gt;
.contents&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
&lt;br /&gt;
The Script class deals with and runs scripts.&lt;br /&gt;
&lt;br /&gt;
=== Script.start ===&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Starts the specified script. Arguments for that script should be passed as a single string. A hash can also be passed with other script options (:quiet, :force, and you can also use :name and :args instead of passing one/two strings).&lt;br /&gt;
&lt;br /&gt;
=== Script.run ===&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Starts the specified script and waits while it runs. Arguments for that script should be passed as a single string. A hash can also be passed with other script options (:quiet, :force, and you can also use :name and :args instead of passing one/two strings).&lt;br /&gt;
&lt;br /&gt;
=== Script.list, Script.running, Script.hidden ===&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; An array of Script objects for every running/visible/invisible script.&lt;br /&gt;
*&#039;&#039;&#039;Note:&#039;&#039;&#039; This is not the same as ;list. The Script class does not have a defined to_s method.&lt;br /&gt;
&lt;br /&gt;
=== Script.running? ===&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Checks whether a script is running (paused or not)&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
&lt;br /&gt;
=== Script.pause ===&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Pauses a script&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true if the script was paused successfully, false otherwise (script not running or already paused)&lt;br /&gt;
&lt;br /&gt;
=== Script.unpause ===&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Unpauses a script&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true if the script was unpaused successfully, false otherwise (script not running or was not paused)&lt;br /&gt;
&lt;br /&gt;
=== Script.paused? ===&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true if a script is running and paused, false otherwise&lt;br /&gt;
&lt;br /&gt;
=== Script.exists? ===&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true if a script with the given name is in the user&#039;s script directory, false otherwise. extension is optional.&lt;br /&gt;
&lt;br /&gt;
=== Script.log ===&lt;br /&gt;
Appends to the script&#039;s .log file in the lich/log directory.&lt;br /&gt;
&lt;br /&gt;
=== Script.db ===&lt;br /&gt;
Gets you a sqlite3 database for your script, of type SQLite3::Database (http://www.rubydoc.info/github/luislavena/sqlite3-ruby/SQLite3/Database)&lt;br /&gt;
&lt;br /&gt;
=== Script.version ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Script.version(&amp;quot;infomon&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; Ruby Gem version&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Takes a string(script) and returns the current version in header of script as a Ruby Gem version&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Script.version(&amp;quot;infomon&amp;quot;, &amp;quot;1.18.0&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true/false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Takes a string(script) and minimum required version&lt;br /&gt;
&lt;br /&gt;
== Global variables ==&lt;br /&gt;
&lt;br /&gt;
=== $PROGRAM_NAME ===&lt;br /&gt;
Ruby&#039;s global variable capturing current script -- in this case, the path to Lich.&lt;br /&gt;
&lt;br /&gt;
=== $frontend ===&lt;br /&gt;
Frontend detected by Lich.&lt;br /&gt;
&lt;br /&gt;
=== $login_time ===&lt;br /&gt;
Local time the current Lich session started.&lt;br /&gt;
&lt;br /&gt;
== Lich Constants ==&lt;br /&gt;
&lt;br /&gt;
=== LICH_DIR ===&lt;br /&gt;
Path of the current Lich directory.&lt;br /&gt;
&lt;br /&gt;
=== SCRIPT_DIR ===&lt;br /&gt;
Path to directory Lich is using to for scripts.&lt;br /&gt;
&lt;br /&gt;
=== DATA_DIR ===&lt;br /&gt;
Path to the directory Lich is using for data.&lt;br /&gt;
&lt;br /&gt;
=== LOG_DIR ===&lt;br /&gt;
Path to the directory Lich is using for logs.&lt;br /&gt;
&lt;br /&gt;
=== LICH_VERSION ===&lt;br /&gt;
Lich version.&lt;br /&gt;
&lt;br /&gt;
== Builtin Lich shortcuts ==&lt;br /&gt;
&lt;br /&gt;
These automatically perform multiple checks or commands.&lt;br /&gt;
&lt;br /&gt;
=== take ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
take &amp;quot;box&amp;quot;, &amp;quot;coffer&amp;quot;, &amp;quot;ruby&amp;quot;, &amp;quot;etc&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string (the last line the &#039;fput&#039; command saw)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Picks up every item listed and puts each one in turn into your &#039;lootsack:&#039; setting by issuing the commands with fput.&lt;br /&gt;
&lt;br /&gt;
=== fetchloot ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
fetchloot&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Performs a &#039;look&#039; and takes/puts away all items on the ground that aren&#039;t listed in your &#039;excludeloot:&#039; setting.  Return value is the last line from the game.&lt;br /&gt;
*&#039;&#039;&#039;See also:&#039;&#039;&#039; GS now natively includes the command LOOT ROOM with a similar effect.&lt;br /&gt;
&lt;br /&gt;
=== Lich.fetchloot ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
Lich.fetchloot&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; a string&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to &#039;fetchloot&#039; in all ways except only the items listed in your &#039;treasure:&#039; setting are fetched.&lt;br /&gt;
&lt;br /&gt;
=== walk ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
walk&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Moves in a random cardinal direction (what&#039;s seen in the &#039;Obvious exits:&#039; line), storing the direction moved, and returning &#039;true&#039; if there is a critter in the room or &#039;false&#039; if there aren&#039;t any NPCs in the room.  The stored direction will not be among the random directions chosen the next time the &#039;walk&#039; command is used (unless it hits a dead-end, then it will backtrack the way it came).&lt;br /&gt;
&lt;br /&gt;
=== run ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
run if not health(50)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; true or false&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Will execute a &#039;walk&#039; command repeatedly until it enters a room with no critters, at which point it returns and the script will pick up execution on the next line (does not continue to run away).&lt;br /&gt;
*&#039;&#039;&#039;See also:&#039;&#039;&#039; wander.lic is a popular and sophisticated auto-moving creature-finding script.&lt;br /&gt;
&lt;br /&gt;
=== watchhealth ===&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
watchhealth(50) { echo &amp;quot;Uh, your health is below 50...&amp;quot; }&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
watchhealth(50, proc_object)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; nothing useful&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Returns immediately so that the calling script continues to run as normal, and while it does, monitors your health.  If it falls below the number you give it, executes the block you passed to it.  Only does this once -- if you want it to repeat as the script executes (be careful, chances are your health will still be below 50 after the block executes once) then pass watchhealth a proc object that includes a line registering itself over again (as in, a proc that includes a &#039;watchhealth(#, self)&#039; thingie).  If your health never falls below the number you give it, then nothing happens; once the script ends, it stops watching.&lt;br /&gt;
&lt;br /&gt;
== goto ==&lt;br /&gt;
&amp;lt;div {{log}}&amp;gt;&lt;br /&gt;
goto &amp;quot;MainLabel&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Returns:&#039;&#039;&#039; (has no return value, the current execution stack is discarded and the jump never returns)&lt;br /&gt;
*&#039;&#039;&#039;Description:&#039;&#039;&#039; Identical to standard Wizard/SF scripts; the label to jump to has to be in quotes, and it is (kinda sorta) case insensitive.  The label declaration itself (the LABEL: line) MUST NOT be in quotes: only the name of the label when you use the goto command. If there are two labels with the same name but different capitalizations, the goto command will attempt to be case sensitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*[[The Lich]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*The initial content of this article was copied from the scripting documentation posted by Tillmen which formerly resided at http://lichproject.com/&lt;br /&gt;
&lt;br /&gt;
[[category:Scripts]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=264728</id>
		<title>Lich:Software/Installation</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=264728"/>
		<updated>2026-08-31T18:23:24Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Lich Changelog */ add 5.20.1 changelog&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
=About=&lt;br /&gt;
&lt;br /&gt;
Lich is an add-on scripting engine that works alongside existing front ends.  The most common installation is a combination of Lich on Windows using the Wrayth or Wizard FE. Lich is also used by many on both MacOS and multiple Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=Installing the Latest Stable Release=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The latest stable lich version is 5.20.1 supporting Ruby 4.0 - published August 20, 2026&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==In-Place Upgrade==&lt;br /&gt;
&lt;br /&gt;
If you are on an older version of Lich 5 and want to upgrade to the most current version, you can choose to either upgrade Lich5 only or both Lich 5 and Ruby. If you&#039;re currently on Lich 4, able to check by running the command &amp;lt;CODE&amp;gt;;e echo LICH_VERSION&amp;lt;/CODE&amp;gt;, go to the [[#Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)|upgrade from Lich 4 section]].&lt;br /&gt;
&lt;br /&gt;
For each section, please follow the directions/commands one at a time.&lt;br /&gt;
&lt;br /&gt;
===Lich 5 Only===&lt;br /&gt;
&lt;br /&gt;
====Lich 5.7 or newer====&lt;br /&gt;
# You must be running Ruby 4.0 or greater for Lich 5.19 +.  If unsure, please update both (see below)!&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Run this command in-game &amp;lt;CODE&amp;gt;;lich5-update --update&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
====Lich 5.6 or older====&lt;br /&gt;
Please proceed to updating both Ruby and Lich 5&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 4.0 &amp;amp; Lich 5===&lt;br /&gt;
This method is for Windows only. Linux and MacOS users, please do a Lich 5 only update and update Ruby manually via normal install/update methods for the OS.&lt;br /&gt;
&lt;br /&gt;
# Logout of all characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall existing Ruby4Lich5 installs from Programs &amp;amp; Features control panel, or alternatively, rename your existing Ruby4Lich5 folder to Ruby4Lich5save. (Defaults to C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the installer and be sure to have both Ruby and Lich 5 option selected&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich &amp;amp; Ruby!&lt;br /&gt;
&lt;br /&gt;
===Ruby 4.0 Only===&lt;br /&gt;
Use this to upgrade to the newest version of Ruby only if you&#039;re already on the latest version of Lich5 and now want to update Ruby afterwards. If you&#039;re not already on the latest version of Lich5, please use previous section steps instead.&lt;br /&gt;
# Logout of all instances/characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall your existing Ruby4Lich5 install via Programs &amp;amp; Features (ensure it&#039;s now gone, default location was C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the new installer and choose to only install Ruby Only&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version Ruby!&lt;br /&gt;
&lt;br /&gt;
==Windows New Installation==&lt;br /&gt;
&lt;br /&gt;
{{blue|These instructions are not for DragonRealms. [[#Ecosystem Information|For those scroll to the bottom]].}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows 11 / 10 / 8 / 7&#039;&#039;&#039; users: you can download the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and install everything you need automatically. Click on the &#039;&#039;&#039;Ruby4Lich5.exe&#039;&#039;&#039; and download it to your computer then double click on the executable in your default download folder. Note, a user may need to adjust their browser or security settings to allow download and installation.&lt;br /&gt;
If you have never played before, follow the &#039;New Installation&#039; instructions. If you have played before, and have used Lich before, follow the &#039;Upgrade Installation&#039; instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Installation for Lich 5 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Please log into the game of your choice through the Simutronics website first&#039;&#039;&#039;.  Install the launcher (not SGE), and install your FrontEnd of Choice.  The Wrayth FrontEnd is presently the supported FrontEnd, but Wizard will work as well, if you are nostalgic.  After you&#039;ve logged in, log out and continue.&lt;br /&gt;
# Download and Run the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe  Installer]. You will receive the Microsoft Warning because this is not distributed through the MS Store.  Click on &#039;More Info&#039; and then select the &#039;Run Anyway&#039; button.&lt;br /&gt;
# The installation may take a few minutes, especially on non-SSD harddrives.&lt;br /&gt;
# A Lich5 folder will be placed on your desktop after the install is finished, open that folder and double click the lich.rbw file contained inside to start Lich&#039;s Game Entry window.&lt;br /&gt;
# Use your existing Simutronics Account and Password and click connect.  Then select the character you wish to play, and select the FrontEnd you wish to use.  Then click the Play button.&lt;br /&gt;
# Your game FrontEnd should start, and you should see Lich5 initializing.  You will see it downloading files - these are the map files, wait for the download to finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
This option is deprecated.  Lich 5 architectures are not compatible with Lich 4. Back up your existing Lich 4 folder, uninstall any existing Ruby executables, and then follow the instructions for a new install above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional assistance in installation can be found in the scripting channel of the GemStone [https://discord.gg/KF9Wr8u Discord].&lt;br /&gt;
&lt;br /&gt;
==MacOS==&lt;br /&gt;
There two common options for playing Gemstone IV on a Mac is either to play natively with Avalon or to use virtualization software such as Parallels with Wrayth/WizardFE. Below are the options on how to do that.&lt;br /&gt;
&lt;br /&gt;
===Native Avalon===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. This process works well for Mac OS Catalina and Big Sur. If you have not updated your Mac OS yet, these instructions may work depending on your actual version.  If you run into a snag, follow the contact instructions provided.&lt;br /&gt;
&lt;br /&gt;
===Parallels Windows===&lt;br /&gt;
With the latest releases of Ruby4Lich5 installer, you can now follow the normal Windows installation for both Intel and Apple silicon based Apple computers.&lt;br /&gt;
&lt;br /&gt;
To install Wrayth/WizardFE, Lich, and Ruby via Parallels you will need to do a few various steps as outlined below. Please note, the rubyw file in C:\Ruby4Lich5\X.X.X\bin may be set to run in compatibility mode for windows 7.  On an ARM Mac running parallels, this may causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file could fixe this issue if it was enabled.&lt;br /&gt;
&lt;br /&gt;
The following steps are to be done AFTER you&#039;ve successfully installed Wrayth/WizardFE and can login normally without Lich5 on the machine. Once you&#039;ve done that and can successful connect normally, then follow these steps:&lt;br /&gt;
# Download and install [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and use default options presented during install&lt;br /&gt;
# Double click the lich.rbw file that is now located in the extracted Lich5 location you did above. Login and play as usual.&lt;br /&gt;
&lt;br /&gt;
==Chromebook &amp;amp; Debian variants==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-debian&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-debian&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Debian/Chromebooks. Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1.&#039;&#039;&#039; &lt;br /&gt;
Update the list of available software and make sure some requirements are installed:&lt;br /&gt;
&amp;lt;!-- don&#039;t think I&#039;m gonna include this stuff but might as well not delete it.&lt;br /&gt;
:&amp;lt;small&amp;gt;sudo: as a super-user&amp;lt;/small&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;apt-get: Debian&#039;s software repository&amp;lt;/small&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;-y: answer all questions yes&amp;lt;/small&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get -y update&lt;br /&gt;
sudo apt-get -y install autoconf bison build-essential curl libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libsqlite3-dev git unzip libcairo2-dev libgirepository1.0-dev libgtk-3-dev gobject-introspection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing Ruby installation rather than installing from scratch, skip steps 2, 3, and 4.  Instead, update your ruby-build with the following command, and then proceed to Step 5.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2.&#039;&#039;&#039;&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3.&#039;&#039;&#039;&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4.&#039;&#039;&#039;&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Arch Linux &amp;amp; Arch-based distributions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-arch&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-arch&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
Update the system and install required dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pacman -Syu&lt;br /&gt;
sudo pacman -S --needed base-devel openssl libyaml readline zlib ncurses libffi gdbm sqlite git unzip curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby 3.4.5 and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fedora==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-fedora&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-fedora&amp;quot;&amp;gt;&lt;br /&gt;
Currently supported versions of Fedora&lt;br /&gt;
* 41 uses Ruby 3.3&lt;br /&gt;
* 42 uses Ruby 3.4&lt;br /&gt;
* 43 uses Ruby 3.4&lt;br /&gt;
All of which are currently compatible with Lich 5.7.0 or higher.&lt;br /&gt;
&lt;br /&gt;
1. Update The Base Installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf -y update&lt;br /&gt;
$ sudo dnf -y install vim git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Install required Ruby and Development packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf install -y autoconf bison cairo-devel curl gcc gdbm gdbm-devel gdk-pixbuf2-devel glib2-devel \&lt;br /&gt;
gobject-introspection-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5a. Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5b. Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Popular Scripts=&lt;br /&gt;
{{#section:Lich:Script Repository|popularscripts}}&lt;br /&gt;
&lt;br /&gt;
=Ecosystem Information=&lt;br /&gt;
&lt;br /&gt;
* DragonRealms Variant - [https://elanthipedia.play.net/Lich_script_repository#Setup_and_Installation Setup and Install instructions]&lt;br /&gt;
&lt;br /&gt;
=Lich Changelog=&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-changelog&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-changelog&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.20.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* bound EAccess auth with a timeout so a stalled SGE backend can&#039;t hang Lich silently (#1502)&lt;br /&gt;
* Linux WINE and Wrayth FE detection (#1517)&lt;br /&gt;
* update Gemstone game-code validations (#1518)&lt;br /&gt;
* preserve bundled display-state tags on quiet-suppressed chunks (#1530)&lt;br /&gt;
* prevent a stray formatting character from appearing in Saga during quiet script output (#1532)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* make $safe_pause_lock holder immune to pause (#1525)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* critranks.rb tolerate nil table rows, fix reload!, index patterns … (#1522)&lt;br /&gt;
* combat module hardening - ordered processing, 22x faster parsing, double-count fix (#1523)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.20.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add concurrent runtime I/O and multi-client detach support (#1459)&lt;br /&gt;
* --bind-address speaks the same keywords as --detachable-client (#1461)&lt;br /&gt;
* GUI Launcher Improvements (#1463)&lt;br /&gt;
* Add supervised child script APIs (01 of 06) (#1474)&lt;br /&gt;
* Add forced script teardown command (06 of 06) (#1479)&lt;br /&gt;
* teardown and distinguishable errors for Script.run_child (#1501)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRCMM.moon_weapon_duration - read a moon weapon&#039;s remaining life (#1483)&lt;br /&gt;
* id-based creature tracking from crtrStatus + assess (#1485)&lt;br /&gt;
* capture room UID from &amp;lt;nav&amp;gt; tag; stop enforcing ShowRoomID; opt-in room-id placement (#1491)&lt;br /&gt;
* user-extensible scroll substitutions via settings (01 of 06) (#1512)&lt;br /&gt;
* user-extensible boxes and trash receptacles (03 of 06) (#1514)&lt;br /&gt;
* user-extensible summoned-weapon adjectives (04 of 06) (#1515)&lt;br /&gt;
* user-extensible flavor-text stripping (05 of 06) (#1516)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* gameobj add full_name matcher to type/sellable classification (#1453)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* prevent empty/partial GameObj registry reads during mid-stream refresh (#1370)&lt;br /&gt;
* no-op Gtk.lich_main_quit when no main loop is nested (#1464)&lt;br /&gt;
* correct path-flag aliases and document all path options (#1472)&lt;br /&gt;
* Synchronize script lifecycle transitions (02 of 06) (#1475)&lt;br /&gt;
* Coordinate script shutdown draining (03 of 06) (#1476)&lt;br /&gt;
* Harden script lifecycle ownership (05 of 06) (#1478)&lt;br /&gt;
* surface the underlying LoadError in dependency alerts (#1480)&lt;br /&gt;
* extract game-agnostic CreatureBase into lib/common (#1484)&lt;br /&gt;
* bound GemCheck alert dialogs with a timeout so they can&#039;t hang forever (#1488)&lt;br /&gt;
* identify Genie as the frontend for headless launches (#1490)&lt;br /&gt;
* restore detachable client disconnect notice to stdout (#1492)&lt;br /&gt;
* harden detachable client teardown and escape init payload (#1493)&lt;br /&gt;
* resolve GameObj status visibility during staged  refresh (#1497)&lt;br /&gt;
* compact client write queue instead of ending the session (#1498)&lt;br /&gt;
* scrub startup credentials once login completes (#1499)&lt;br /&gt;
* Honor Simu-side teardown for 10 seconds (#1505)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* resolve no-UID rooms carrying a stored UID instead of returning nil (#1467)&lt;br /&gt;
* equipmanager.rb - reliable ranged-weapon transitions - stow ammo after unload + verify offhand wield hand (#1468)&lt;br /&gt;
* common-healing.rb -  DRCH.bind_wound: only dispose a dislodged item while it is in hand (#1469)&lt;br /&gt;
* preserve game RealID in room title (GS parity for &amp;quot;;display roomid title&amp;quot;) (#1500)&lt;br /&gt;
* Refine need_buffs? logic for non-recast spells to correctly check cyclic spells. (#1503)&lt;br /&gt;
* reduce symbol-torn scale scrolls to gettable noun (#1506)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* lower game socket keepalive idle from 120s to 30s (#1449)&lt;br /&gt;
* resilient ActiveSessions ownership + shutdown watchdog (#1452)&lt;br /&gt;
* Quit Gtk.main cleanly (#1455)&lt;br /&gt;
* Refactor regex to string comparisons for ARGV options (#1456)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* ingest newly-exposed mindState experience and roommeta room fields (#1450)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add character generator support via EAccess protocol (#1384)&lt;br /&gt;
* Add modern script command shutdown method (#1385)&lt;br /&gt;
* migrate the server-stream parser from REXML to Ox, with pipe-mode benchmark harness and DR parser coverage (#1396)&lt;br /&gt;
* enumerate script subdirs with file glob (#1397)&lt;br /&gt;
* add --bind-address option to set listen socket address (#1405)&lt;br /&gt;
* add central method to determine lich ver (#1417)&lt;br /&gt;
* setup_files: support scripts/data/custom for user data overrides (#1431)&lt;br /&gt;
* Modify running? method to support optional exact matching of script names (#1436)&lt;br /&gt;
* keyword bind hosts for the detachable client (tailscale/lan/any) (#1437)&lt;br /&gt;
* add roomlinks/roommono toggles for room display (#1438)&lt;br /&gt;
* self-healing gem requires (#1439)&lt;br /&gt;
* various Saga FE compatibility tweaks (#1443)&lt;br /&gt;
* add macOS limited gem recovery (#1448)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Capture combat position from the balance status line (#1400)&lt;br /&gt;
* detect scheduled shutdown and expose it on DRParser (#1409)&lt;br /&gt;
* xmlparser: add structured parser for the assess (combat situation) stream (#1413)&lt;br /&gt;
* Implement DRCA.need_buffs? method for buff checks (#1428)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* anchor Infomon parser regex unions to line start (#1391)&lt;br /&gt;
* creature xml additions (#1425)&lt;br /&gt;
* add creature template library (#1427)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* surface a failed Game.open in the connect timeout (#1408)&lt;br /&gt;
* bound long-session memory growth (index/hook/watchfor/buffer leaks) (#1410)&lt;br /&gt;
* improve and harden shutdown (#1416)&lt;br /&gt;
* use bundler to check for required Ruby gems (#1420)&lt;br /&gt;
* pin lich directory for gemfile check (#1423)&lt;br /&gt;
* Show CLI login ARGV for SAL connections (#1424)&lt;br /&gt;
* increase read timeout on idle socket to 300 seconds (#1426)&lt;br /&gt;
* monkeypatch gi for memoryreleaser / asyncprocessor until patched upstream (#1429)&lt;br /&gt;
* Mapdb sort tags by downcase and original case (#1433)&lt;br /&gt;
* stop locking the load path at boot; keep Gemfile.lock in sync on self-update (#1434)&lt;br /&gt;
* minimum Ruby 4.0 required &amp;amp; migrate Ruby version check (#1444)&lt;br /&gt;
* align --announce with --update for Ruby version (#1447)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* BalanceValue regex to match combat status lines (#1398)&lt;br /&gt;
* equipmanager.rb - Fix unload weapon detection when AimTimerDialog tag is prepended (#1414)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* global_defs update pushStream regex to include &#039;reserve&#039; id (#1379)&lt;br /&gt;
* psms Warcry.available? correction (#1387)&lt;br /&gt;
* xmlparser support new field exp, climate, terrain XML feeds (#1388)&lt;br /&gt;
* global_defs move() update regex for standing condition (#1407)&lt;br /&gt;
* Currency add method to retrieve aevit event currency (#1411)&lt;br /&gt;
* Stash check result type before comparing regex for wear_to_inv (#1430)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.18.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-crafting add method for creating mechanisms (#1375)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* stringproc normalize CRLF | CR to LF (#1378)&lt;br /&gt;
* rubocop custom cop ascii only cleanup (#1382)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* equipmanager update to assume missing items aren&#039;t worn (#1376)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1326)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Script module replace MemoryReleaser with GC.start for cleanup (#1364)&lt;br /&gt;
* Add sqlite busy timeout policy to core (#1365)&lt;br /&gt;
* Script#kill remove GC.start and add optional instrumentation (#1368)&lt;br /&gt;
* reorder shutdown ala MahtraDR and detect script teardown de... (#1369)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* harden custom repo identity, collision, and contract boundaries (#1333)&lt;br /&gt;
* stop SessionLifecycle before closing database on normal exit (#1334)&lt;br /&gt;
* harden FeatureFlags for closed db handle (#1335)&lt;br /&gt;
* SynchronizedSocket write resilience and zombie client elimination (#1338)&lt;br /&gt;
* correct RP timing issue for release notes (#1348)&lt;br /&gt;
* gate object cleanup in GTK queue (#1354)&lt;br /&gt;
* recover from cross-process zombie in ActiveSessions service (#1355)&lt;br /&gt;
* Improve shutdown session state handling (#1359)&lt;br /&gt;
* non-ascii hygeine to address rubocop errors (#1360)&lt;br /&gt;
* Remove debug log IO from heartbeat tick loop (#1363)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRC text2num correction for thousand (#1343)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Overwatch add REVEALED_EXPLODES regex pattern (#1356)&lt;br /&gt;
* Stash add_to_bag result type check before regex compare (#1357)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* enable heartbeat-driven failover for ActiveSessions service owner (#1340)&lt;br /&gt;
* copy Gemfile and LICENSE during self-update (#1345)&lt;br /&gt;
* Add top-level parse_args/display_args bridge to global_defs (#1346)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* replace undefined custom_require in check_moonwatch (#1336)&lt;br /&gt;
* set_stance places 100 in the correct positional slot (#1337)&lt;br /&gt;
* cache SlackBot users list to prevent API throttling (#1342)&lt;br /&gt;
* Add CORE_AUTOSTART sentinel to skip dependency.lic autostart helpers (#1344)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon Status.cutthroat? Effect Debuff correction (#1331)&lt;br /&gt;
* add support for RESERVE xml in GameObj.reserve (#1341)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* custom 3rd-party repo support for ScriptSync (#1285)&lt;br /&gt;
* Add get_settings, get_data, start_scripts_if_available to core (#1305)&lt;br /&gt;
* Add Map.apply_wayto_overrides for personal map overrides (#1306)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Decouple SetupFiles from script-scoped echo and XML feed timing (#1304)&lt;br /&gt;
* Add game flags and obsolete script warnings to DRInfomon startup (#1307)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* use :__unset for --without-frontend CLI request YAML matches (#1301)&lt;br /&gt;
* prevent zombie server deadlock in Active Sessions accept loop (#1302)&lt;br /&gt;
* improve MacOS keychain system check for older OS variants (#1310)&lt;br /&gt;
* stub sync_all_repos to prevent leaked thread in games_spec (#1311)&lt;br /&gt;
* enforce beta confirmation 10s timeout (#1315)&lt;br /&gt;
* use send(:respond) in StatusReporter fallback path (#1316)&lt;br /&gt;
* ensure SessionLifecycle.stop runs on abnormal exit (#1317)&lt;br /&gt;
* address ActiveSessions lifecycle hot path feature-flag polling (#1325)&lt;br /&gt;
* catch ECONNRESET in _puts and bound walk_to retry depth (#1327)&lt;br /&gt;
* safeguard gtk logo.png loading (#1329)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Add InnCheckedOut pattern to parser (#1309)&lt;br /&gt;
* Claim corrections to handle mounts in room_players stream (#1324)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
* repair regression on gui button reenable from refactor (#1297)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Mutli-launch persistent login GUI (#1245)&lt;br /&gt;
* Remove Windows OS CMD prompt flash (#1255)&lt;br /&gt;
* guard against broken pipe errors in Game._puts and send_to_client (#1260)&lt;br /&gt;
* add timeout safety to fput to prevent infinite hangs (#1261)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* anchor stow success pattern to prevent fan close recovery bypass (#1254)&lt;br /&gt;
* add bounded recursion depth limits to 9 methods (#1257)&lt;br /&gt;
* stow_helper failure detection + unload_weapon ammo recovery (#1259)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add InstanceSettings for core Settings API access (#1233)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Overwatch module into core (#1201)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* fix GameObj container initialization and add clear_all_containers (#1226)&lt;br /&gt;
* GameObj object dedupe &amp;amp; GC (#1234)&lt;br /&gt;
* script.rb show Script.kill source (#1235)&lt;br /&gt;
* Exit quickly on CLI authentication failure (#1237)&lt;br /&gt;
* suppress wine detection noise and skip when unneeded (#1244)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DR modules fixes and enhancements (#1232)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* psms.rb add additional failure matches (#1238)&lt;br /&gt;
* Bounty parser fix regex pattern for skin retrieval task (#1242)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* add retry with exponential backoff for all login authentication (#1205)&lt;br /&gt;
* update.rb allow for bugfix betas and branch updates (#1211)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb bug in _key transformation (#1216)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Change server_time_offset in XMLParser to be float instead of int (#1184)&lt;br /&gt;
* change encodings in main.rb to wizard FE only (#1199)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon parser.rb update Account.subscription/type (#1192)&lt;br /&gt;
* spell.rb add last_cast to track last time casted (#1193)&lt;br /&gt;
* stash.rb additional improvements with ReadyList/StowList (#1197)&lt;br /&gt;
* Infomon parser.rb bug in EnhanciveEnd (#1198)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add Genie map cross-reference fields to the DragonRealms map data model (#1169)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRExpMonitor move into core lich (#1154)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* add Enhancive module for enhancive item bonus tracking (#1113)&lt;br /&gt;
* add QStrike module for optimal stamina-based RT reduction (#1114)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* remove strip! from settingsInfo replacement (#1161)&lt;br /&gt;
* map_base.rb sort JSON better (#1171)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* logbook_item recovery when crafted item not in hand (#1175)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* xmlparser.rb capture additional death messaging (#1158)&lt;br /&gt;
* stash.rb ReadyList sheath handling and update inventory checks (#1166)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* allow --add-account to run without yaml and dat (#1143)&lt;br /&gt;
* enable --login for multi-variable custom launch commands (#1144)&lt;br /&gt;
* update.rb pervent update if MIN_RUBY not met (#1146)&lt;br /&gt;
* messaging.rb return &amp;quot;&amp;quot; for xml_encode with Wizard (#1147)&lt;br /&gt;
* prevent closing connection on module reload (#1148)&lt;br /&gt;
* Allow hmr to work on global_defs.rb (#1156)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* buffer split room obj lines and merge instead of appending closing tag to broken line (#1149)&lt;br /&gt;
* add buffering for multiline room players (#1151)&lt;br /&gt;
* add verify_script def here instead of depending on dependency (#1155)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb added updated_at field to upsert_batch (#1145)&lt;br /&gt;
* stowlist.rb check method fix when dead (#1152)&lt;br /&gt;
* readylist.rb check method fix when dead (#1153)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* util.rb only show gem installing debug messaging if gem mis… (#1131)&lt;br /&gt;
* add --gs and --dr, refactor argv_options to helpers (#1133)&lt;br /&gt;
* fix multiple custom entries, improvements to yaml save (#1134)&lt;br /&gt;
* login_tab_utils.rb expand helper text show Warlock (#1135)&lt;br /&gt;
* update CLI for YAML security signature, add auto-convert fo… (#1136)&lt;br /&gt;
* remove password parameter from debug logging in all cases (#1137)&lt;br /&gt;
* reduce minimum GUI window footprint for non-tabbed view (#1138)&lt;br /&gt;
* remove double save in YAML to preserve yaml.bak integrity (#1139)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* stash.rb additional improvements (#1132)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* force system gem install if RubyGems fails (#1126)&lt;br /&gt;
* gui_login prevent destroying window if already destroyed (#1127)&lt;br /&gt;
* add window size / position saves to login GUI (#1128)&lt;br /&gt;
* non tabbed saved entries in reduced button / font size (not… (#1129)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* account manager sorting GUI fix (#1123)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* install_gem_requirements update available gems after install (#1120)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* password_cipher.rb upcase account_name for key (#1118)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* validator.rb change sleep to should_sleep named param (#1116)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* add base stats capture from &#039;info full&#039; command (#1115)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Refocus Frontend (#960)&lt;br /&gt;
* socket configurator to better guard TCPSocket (#976)&lt;br /&gt;
* add simplified DB maintenance (#991)&lt;br /&gt;
* TextStripper module support for XML, HTML, Markdown (#1055)&lt;br /&gt;
* Login modernization and refactor to yaml (#1063)&lt;br /&gt;
* Ruby Memory Releaser module (#1066)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* support meta:trashcan tag for DRCI.dispose_trash (#966)&lt;br /&gt;
* Add GameObj.inv support for DR items (#1080)&lt;br /&gt;
* DRCS allow custom adjective for summoned weapons (#1088)&lt;br /&gt;
* DRParser support for new exp window xml stream elements (rested exp, tdps, favors) (#1104)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Add Armaments (Weapon, Armor, and Shield) Module (#911)&lt;br /&gt;
* add creature module, including Hinterwilds creatures (#1002)&lt;br /&gt;
* Creature module combat tracking (#1003)&lt;br /&gt;
* track time of last total_experience record (#1030)&lt;br /&gt;
* add Injured class for checking ability to perform actions (#1035)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* map dijkstra optimization (#1061)&lt;br /&gt;
* update.rb keep script/data file incase of error on update (#1070)&lt;br /&gt;
* ensure proxy path is set for non-destructive array write-th… (#1073)&lt;br /&gt;
* [lib][global-defs] - move update (#1079)&lt;br /&gt;
* GameObj force new objects ID to be string (#1087)&lt;br /&gt;
* xmlparser.rb gate GSL exits sending behind @send_fake_tags (#1103)&lt;br /&gt;
* change Hash[] pair key conversion to use to_h for Ruby 4.0 (#1108)&lt;br /&gt;
* move gui-login.rb to Ruby standard gui_login.rb (#1111)&lt;br /&gt;
* update location for currency and move game-loader.rb to Ruby standard gameloader.rb (#1112)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRCA allow custom spell prep messaging (#1089)&lt;br /&gt;
* Update Slackbot error handling, and lnet management (#1091)&lt;br /&gt;
* Fix exp mods parsing for DR (#1102)&lt;br /&gt;
* equipmanager.rb support for custom messaging in forester&#039;s longbow (#1105)&lt;br /&gt;
* Fix hang in equipment manager when game doesn&#039;t respond to commands (#1110)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon additional CHE resign regex (#1067)&lt;br /&gt;
* Resource tracking for sorcerer shadow essence (#1085)&lt;br /&gt;
* cman.rb add hamstring regex for already lying down target (#1090)&lt;br /&gt;
* cman.rb hamstring regex update when can&#039;t perform on target (#1092)&lt;br /&gt;
* Bounty parser.rb FWI guard regex update (#1096)&lt;br /&gt;
* currency.rb track gold (#1109)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.12&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (general)&lt;br /&gt;
    Update module strip markdown comments (#1056)&lt;br /&gt;
    Vars/UserVars module fixes and corrections (#1057)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    Infomon parse fix for singular currency (#1051)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (dr)&lt;br /&gt;
    add bput match for system updates preventing actions (#1034)&lt;br /&gt;
    drdefs.rb npc parsing (#1038)&lt;br /&gt;
    Fix container reference in get_item_from_eddy_portal method (#1039)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    bounty location regex needs to match &amp;quot;under&amp;quot; (#1037)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.10&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: games.rb catch additional error for nested single/double quotes (#1031)&lt;br /&gt;
    dr: change keys for DR_SKILLS_DATA[:guild_skill_aliases] to be strings instead of symbols (#1032)&lt;br /&gt;
    gs: Bounty parser for SG npcs matching (#1027)&lt;br /&gt;
    gs: match READY/STOW items with a/an/some inside the link (#1026)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.9&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    gs: StowList/ReadyList reset bug if non-default keys added #1019&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: script.rb show custom at script exit as well (#993)&lt;br /&gt;
    all: Updated update.rb for single trunk and release please (#1001)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.7&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): ensure updates do not target detached proxy views #990 &lt;br /&gt;
fix(gs): bounty parser and move fixes for sailor&#039;s grief #987 &lt;br /&gt;
fix(gs): Infomon xmlparser.rb Ready/Stow fix for LONG before exist #988 &lt;br /&gt;
fix(gs): gameobj.rb for Sailor&#039;s Grief ghostly/boss/guild tentacles #989 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): settings.rb update to preserve root of derived views #975&lt;br /&gt;
fix(all): show custom in various script output when custom script #967&lt;br /&gt;
fix(dr): drparser.rb update for PlayedSubscription #983&lt;br /&gt;
fix(gs): include store location for ReadyList #977&lt;br /&gt;
fix(gs): infomon parser.rb update for ACCOUNT output varies #979&lt;br /&gt;
fix(gs): global_defs.rb move def update for Hive traps #980&lt;br /&gt;
fix(gs): activespell.rb prevent removal of RF Penalty #981&lt;br /&gt;
fix(gs): add .compact to input of Disk.find_by_name #982&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): update.rb word boundary for abbreviations #971&lt;br /&gt;
fix(dr): equipmanager.rb Fix for changed game output. #969&lt;br /&gt;
fix(dr): common-arcana.rb Regalia fix for changed game output. #970&lt;br /&gt;
fix(dr): common-items.rb Fix for changed inventory command output #973&lt;br /&gt;
fix(gs): StowList missing space in capture in xmlparser.rb #963&lt;br /&gt;
fix(gs): stowlist.rb wait for RT when issuing check #964&lt;br /&gt;
fix(gs): readylist.rb wait for RT when issuing check #965&lt;br /&gt;
fix(gs): Bounty heirloom return msg&#039;ing update #972&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
build(all): installer.yml use windows-2022 #950&lt;br /&gt;
fix(all): restore Wrayth / Wizard script execution ability #952&lt;br /&gt;
fix(all): database_adapter.rb error handling improvement #956&lt;br /&gt;
fix(dr): common-items.rb wear/remove messaging additions #949&lt;br /&gt;
fix(dr): games.rb - ignore UIDs for Frostbite mapping #951&lt;br /&gt;
fix(dr): map_dr.rb prevent inadvertent settings changes #958&lt;br /&gt;
fix(gs): GameObj targets for new Sailor&#039;s Grief tentacle npc #948&lt;br /&gt;
fix(gs): map_gs.rb remove delete_if to prevent bad settings #957&lt;br /&gt;
fix(gs): weapon.rb assault break if no targets #962&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): limitedarray.rb max_size increase #946&lt;br /&gt;
fix(all): uservars.rb update for vars method missing #940&lt;br /&gt;
fix(dr): drparser.rb to set ShowRoomID to on if turned off #945&lt;br /&gt;
fix(gs): change namespace accessors to Ruby 2.6 compatible #944&lt;br /&gt;
fix(gs): infomon state reset on status prompt #943&lt;br /&gt;
fix(gs): Societies to check membership for various methods #942&lt;br /&gt;
fix(gs): standardize warcry.rb to match other PSMS #941&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(gs): infomon parser.rb for profile full name matching #938&lt;br /&gt;
fix(gs): force PROFILE FULL to sync CHE info for infomon #937&lt;br /&gt;
fix(dr): Tighten checks on releasing invisibility for thieves #936&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): gameobj.rb - add type? method for explicit type check #928&lt;br /&gt;
- fix(all): messaging.rb encoding issue #933&lt;br /&gt;
- fix(gs): Various CMan cost corrections #932&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- feat(all): settings.rb - proposal for sequel based Settings #591, #875, #889, #896, #927&lt;br /&gt;
- feat(all): util.rb add Ruby gem install helper method #861&lt;br /&gt;
- feat(all): messaging.rb add cmd link method #866&lt;br /&gt;
- refactor(all): games.rb modernization #849, #882, #924&lt;br /&gt;
- fix(all): add class extensions #800&lt;br /&gt;
- fix(all): lich.rb deprecated FE message #852&lt;br /&gt;
- fix(all): messaging.rb fix XML encoding for wizard and avalon #853&lt;br /&gt;
- fix(all): lich.rb class variable not initialized #855&lt;br /&gt;
- fix(all): log.rb force msg to String for regexp comparison #856&lt;br /&gt;
- fix(all): global_defs.rb bug in fput #864&lt;br /&gt;
- fix(all): messaging.rb xml_encode mono method msg #868&lt;br /&gt;
- fix(all): script.rb class to is_a? checks #878&lt;br /&gt;
- fix(all): gameobj.rb deeper lookup #885&lt;br /&gt;
- fix(all): messaging.rb debug not compared to falseclass #887&lt;br /&gt;
- fix(all): change class to is_a? checks #91-3&lt;br /&gt;
- fix(all): Util.issue_command allow single line captures #918&lt;br /&gt;
- fix(dr): drparser.rb casing for Premium status check #842&lt;br /&gt;
- fix(dr): map_dr.rb Don&#039;t assign UID of zero to rooms #844&lt;br /&gt;
- fix(dr): drparser.rb add $last_logoff tracking #851&lt;br /&gt;
- fix(dr): update message patterns in common-items #859&lt;br /&gt;
- fix(dr): add moon_visible?(moon) convenience method to common-moonmage #860&lt;br /&gt;
- fix(dr): exp mods output is not enclosed in preset xml tags anymore #870&lt;br /&gt;
- fix(dr): update.rb beta send validation for genie lich char #880&lt;br /&gt;
- fix(dr): Update regex and parsing for active spells #894&lt;br /&gt;
- fix(dr): add &#039;You scoop&#039; match pattern to common-items #900&lt;br /&gt;
- fix(dr): add missing match patterns #901&lt;br /&gt;
- fix(dr): common-items: add and fix match strings #904&lt;br /&gt;
- fix(dr): Add missing matches for common-items #905&lt;br /&gt;
- fix(dr): Release Khri Vanish if Thief, when going visible #906&lt;br /&gt;
- fix(dr): Fix race condition when clearing and repopulating XMLData.dr_active_spells #907&lt;br /&gt;
- fix(dr): Fix SLS release pattern #908&lt;br /&gt;
- fix(dr): resolve race condition in DR crafting_magic_routine #914&lt;br /&gt;
- fix(dr): xmlparser.rb - Fix XMLData.dr_active_spells race condition #915&lt;br /&gt;
- fix(dr): xmlparser.rb - Clear out spells properly #916&lt;br /&gt;
- fix(dr): drparser.rb update for Platinum account status #922&lt;br /&gt;
- feat(gs): gameobj.rb allow for custom gameobj data #848&lt;br /&gt;
- feat(gs): PSMS updates, including CMan.use #865, #874, #881, #890, #899&lt;br /&gt;
- feat(gs): ReadyList &amp;amp; StowList classes for item tracking #884&lt;br /&gt;
- feat(gs): Breakout and Buildout Societes #919&lt;br /&gt;
- fix(gs): infomon parsing for CHE membership #841&lt;br /&gt;
- fix(gs): map_gs.rb for no UID when hexdigest used #843&lt;br /&gt;
- fix(gs): warcry.rb yowlp :buff to string instead of regexp #847&lt;br /&gt;
- fix(gs): group.rb multiple corrections #850, #869, #883&lt;br /&gt;
- fix(gs): Bounty parser.rb fix for HW &amp;amp; KF guard return #862&lt;br /&gt;
- fix(gs): Bounty task.rb fix for assigned? and Ruby 2.6 #863&lt;br /&gt;
- fix(gs): stash.rb stale sheaths recheck #867&lt;br /&gt;
- fix(gs): allow spell.rb casting to take a force_stance parameter #902&lt;br /&gt;
- fix(gs): update Infomon parsing for new ACCOUNT output format #903&lt;br /&gt;
- fix(gs): PSMS cost for multiple cost types &amp;amp; add Excoriate feat #912&lt;br /&gt;
- fix(gs): Feat excoriate regex correction #920&lt;br /&gt;
- fix(gs): weapon PSM affordable check against Glorious Momentum #926&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): restore @theme_state and add to CLI capability #795&lt;br /&gt;
- fix(all): retire gtk2 monkey patch for gtk3 #823&lt;br /&gt;
- fix(all): games.rb XMLData.name wait till both not NIL and not EMPTY #826&lt;br /&gt;
- fix(all): standardize xmlparser game instance #827&lt;br /&gt;
- fix(all): games.rb fix multiple single and double quote in XML #832,836,837&lt;br /&gt;
- fix(dr): games.rb - optional hide Room Title display of Real IDs with FLAG on #782&lt;br /&gt;
- chore(dr): common-moonmage - refactor of peer_telescope #783&lt;br /&gt;
- fix(dr): move HMR load to common before for dragonrealms #784&lt;br /&gt;
- fix(dr): common-crafting.rb minor edit to add &amp;quot;You tuck&amp;quot; #787&lt;br /&gt;
- fix(dr): common-arcana.rb - remove unecessary pause from discern code #792&lt;br /&gt;
- fix(dr): drparser.rb Restore Premium status checking #834&lt;br /&gt;
- fix(gs): migrate PSMS.name_normal to Lich::Util.normalize_name #790,833&lt;br /&gt;
- fix(gs): add Char.che to know current character&#039;s CHE #791&lt;br /&gt;
- fix(gs): FEAT and Infomon module parsing of new Covert Art feats. #796&lt;br /&gt;
- fix(gs): add Currency.gemstone_dust and fix redsteel mark capture #797&lt;br /&gt;
- fix(gs): FEAT Covert Arts colon normalization and stamina costs #799&lt;br /&gt;
- fix(gs): escape dash in regex for HouseCHE #824&lt;br /&gt;
- fix(gs): disk.rb comparison helpers #828&lt;br /&gt;
- fix(gs): allow for Group.disks to show self disk in array #829&lt;br /&gt;
- fix(gs): feat.rb Covert Arts throw poison costs 15 stam #830&lt;br /&gt;
- fix(gs): add missing Feat.use ability #831&lt;br /&gt;
- fix(gs): multiple CritRanks updates #801-822&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- [all] - chore: Namespace &amp;amp; File Path Updates #713&lt;br /&gt;
- [all] - [argv_options.rb] bugfix: correct darkmode to work via CLI #693&lt;br /&gt;
- [all] - [games.rb] feat: make show Room Exits of non-StringProc/Obvious Exits toggable for all games #699&lt;br /&gt;
- [all] - [games.rb] feat: toggleable display of StringProcs with clickable links #751&lt;br /&gt;
- [all] - [gui-manual-login.rb] fix: change label to Wrayth #720&lt;br /&gt;
- [all] - [gui-saved-login.rb] fix: update Stormfront label #721&lt;br /&gt;
- [all] - [update.rb] fix: purge old LIB folder prior to update release #729&lt;br /&gt;
- [all] - [util.rb] bugfix: allow issue_command to use fput or put #715&lt;br /&gt;
- [all] - [xmlparser.rb] feat: add XMLData.room_name attribute #685&lt;br /&gt;
- [all] - [main.rb] fix: create session file in regular connect method #733&lt;br /&gt;
- [all] - [init.rb] bugfix: error for Windows DISPLAY variable #735&lt;br /&gt;
- [all] - [main.rb] fix: Mudlet support #736&lt;br /&gt;
- [all] - [wine.rb] fix: add --no-wine CLI flag prevent WINE startup&lt;br /&gt;
- [all] - [init.rb] fix: add --no-gtk CLI flag prevent GTK3 gem load&lt;br /&gt;
- [dr] - [games.rb] feat: DRinfomon and common files as core lich libraries #686&lt;br /&gt;
- [dr] - [games.rb] chore: add DR requires here #690&lt;br /&gt;
- [dr] - [games.rb] fix: add Room# display for DR #697&lt;br /&gt;
- [dr] - [games.rb] bugfix: Genie FE real ID#s not supported, hide by default #728&lt;br /&gt;
- [dr] - [drdefs.rb] bugfix: fix for Shadow Servants #710&lt;br /&gt;
- [dr] - [map_dr.rb] fix: cleanup and support for UIDs #719&lt;br /&gt;
- [dr] - [xmldata.rb] bugfix: add support for DR Room IDs #716&lt;br /&gt;
- [dr] - [xmlparser.rb] feat: XMLData - adding dr_active_spells #691&lt;br /&gt;
- [gs] - [games.rb] bugfix: support for pre/post room name txt #683&lt;br /&gt;
- [gs] - [group.rb] chore: update to account for hold #701&lt;br /&gt;
- [gs] - [resource.rb] feat: add additional tracking of covert art charges #714&lt;br /&gt;
- [gs] - [spell.rb] bugfix: Spell.affordable? 515 release #687&lt;br /&gt;
- [gs] - [stash.rb] bugfix: sheath_bags when not found #694&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: missing real ID in nav #684&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: Claim module obvious hiding #717&lt;br /&gt;
- [gs] - [sk.rb] feat: Self-Knowledge functionality in core #748&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: Simu XML breaking change RoomID #679&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [crit_tables] fix: CritRanks regex fixes (multiple files and changes) #671&lt;br /&gt;
-o- [GS4] - [spellsong.rb] fix: Correct Spellsong sync method #674&lt;br /&gt;
-o- [GS4] - [parser.rb] fix: thorn status regex correction #673&lt;br /&gt;
-o- [All] - [xmlparser.rb] fix: Split out if elif block to account for DR having multiple… #670&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: percentconcentration #676&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: update move failure message to handle attack and casting #667&lt;br /&gt;
-o- [All] - [init.rb] fix: update required ruby check messaging #669&lt;br /&gt;
-o- [All] - [sessionvars.rb] feat: new module SessionVars for non-persistent variable storage #666&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [DR] - [games.rb] bugfix: tweak XML rewrite section #662&lt;br /&gt;
-o- [GS4] - [crit_tables] bugfix: additional crit table regex corrections #663&lt;br /&gt;
-o- [GS4] - [ascension.rb] bugfix: add new Transcend Destiny to lookups #661&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: regexp escape txt #660&lt;br /&gt;
-o- [GS4] - [disruption_critical_table.rb] Bugfix in regex #659&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [games.rb] bugfix: prevent race condition in games thread #656 &lt;br /&gt;
-o- [All] - [init.rb] bugfix: address WINE variance between linux / installs #655&lt;br /&gt;
-o- [GS4] - [gs][stash.rb] bugfix: wear code improvement #657 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [main.rb] bugfix: correct encoding for WizardFE PR #640&lt;br /&gt;
-o- [All] - [games.rb] bugfix: correct logic for room detection when using CLI --start-scripts PR #639&lt;br /&gt;
-o- [All] - [DB_Store.rb] feat: add direct support for Simu RENAME and CHANGE PROF PR #633&lt;br /&gt;
-o- [All] - chore: breakout code to individual files for easier management PR #617&lt;br /&gt;
-o- [All] - [lich.rbw] chore: add deprecated msg to old Settings/GameSettings/CharSettings methods PR #589&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add new --dark-mode CLI option PR #583&lt;br /&gt;
-o- [All] - [global_defs.rb] bugfix: monsterbold fix for additional clients PR #581&lt;br /&gt;
-o- [All] - [update.rb] feat: update core scripts from source on Lich5 update/install PR #579&lt;br /&gt;
-o- [All] - [log.rb] feat: add new Log module copied from Olib PR #577&lt;br /&gt;
-o- [All] - [numeric.rb] feat: add days/hours/minutes/seconds methods to numerics PR #623&lt;br /&gt;
-o- [All] - [messaging.rb] feat: WizardFE Voln window support #647&lt;br /&gt;
-o- [All] - [init.rb] bugfix: WINE entries for Linux / MacOS #649&lt;br /&gt;
-o- [DR] - [lich.rbw] bugfix: cleanup downstream hook exclusions PR #593&lt;br /&gt;
-o- [DR] - [global_defs.rb] bugfix: missing climb failure message PR #592&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: show non-standard Effects in `;magic` output PR #641&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: fix WARCRY duplication results / add WALL OF THORNS effect detection PR #634 / PR #637&lt;br /&gt;
-o- [GS4] - [critranks.rb] feat: add critical rank resolution tables and methods PR #625&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: to support regex for active? &amp;amp; time_left PR #590&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: add implicit NPC death monitoring PR #588&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: change PSM to be stored as type.mnemonic PR #587&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: strip_xml multiline fix PR #584&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: fix sack detection to use Stash.container(param) PR #578&lt;br /&gt;
-o- [GS4] - [spell.rb] feat: Spell.after_stance #644 &lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: for Claim module #646&lt;br /&gt;
-o- [GS4] - [infomon] feat: track Voln favor via RESOURCE output #648&lt;br /&gt;
-o- [GS4] - [gameobj.rb] feat: add Bandit hidden target API #650&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: proper leader detection from GROUP output&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back depracted Char.maxvitals with msging to switch to new Char.max_vitals methods&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: group.check syntax change&lt;br /&gt;
-o- [GS4] - [spell.rb] bugfix: affordable? Char.mana parenthesis logic&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] -  feat: sqlite3 gem syntax code cleanup PR#553&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: remove unused Setting, GameSetting, CharSetting PR#542&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: scrub login key from error message popups PR#548&lt;br /&gt;
-o- [All] - [messaging.rb] bugfix: color mismatch WizardFE white txt PR#554&lt;br /&gt;
-o- [All] - [lich.rb] feat: add new Lich.deprecated method to aid in deprecating older API calls PR#523&lt;br /&gt;
-o- [GS4] - [char.rb] feat: log method_missing calls PR#552&lt;br /&gt;
-o- [GS4] - [char.rb] feat: add missing global_def related methods PR#523&lt;br /&gt;
-o- [GS4] - [global_defs.rb] feat: deprecate various Char module methods PR#523&lt;br /&gt;
-o- [GS4] - [spellsong.rb] bugfix: cache spellsong duration calc PR#551&lt;br /&gt;
-o- [GS4] - [effects.rb] feat: Effects module breakout PR#549&lt;br /&gt;
-o- [GS4] - [group.rb][disk.rb] feat: Group &amp;amp; Disk class PR#532&lt;br /&gt;
-o- [GS4] - [activespell.rb] feat: add duration change messaging, off by default, see ;help for details PR#487&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add Game:Character to debug log file ouput&lt;br /&gt;
-o- [All] - [init.rb] feat: add milliseconds to debug filename&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: reorder parsing of $SERVERSTRING to avoid certain conflicts&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: update for new Empath resource and sleep/bind messaging&lt;br /&gt;
-o- [GS4] - [status.rb] bugfix: bound? calmed? and sleeping? support for spellnames flag being off&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: additional creature dying messaging to check against XML dead not being sent&lt;br /&gt;
-o- [GS4] - [gameobj.rb] bugfix: remove sorcerer arms and animates from GameObj.targets&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - Ruby 3.3 compatibility&lt;br /&gt;
-o- [All] - [lich.rbw] feat: adds .sources for up/downstream hooks&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: don&#039;t use WINE for custom frontends&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back Char.stance&lt;br /&gt;
-o- [GS4] - [claim.rb] feat: new module and associated changes to xmlparser&lt;br /&gt;
-o- [GS4] - [experience.rb] feat: percent experience options&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow for negative TNL exp value&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow hyphenated last names in character names&lt;br /&gt;
-o- [GS4] - [parser.rb] feat: update resource matching for new Bard service&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: catch more shield removal messages&lt;br /&gt;
-o- [GS4] - [util.rb] bugfix: underscore issue for PSMs&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.7.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Supports Ruby 3.2 - security enhancements and huge speed improvements for regex&lt;br /&gt;
-o- New libraries/modules/classes: Account, HMR (Hot Module Reloading)&lt;br /&gt;
-o- GS4 Infomon now baked into Lich5 as a library, no more need to run standalone script&lt;br /&gt;
-o- New GS4 libraries/modules/classes: Ascension, Bounty, Currency, Experience, Resources, Society, Status, Warcry&lt;br /&gt;
-o- Updates to existing libraries/modules/classes: Armor, Util, Weapon, Spell, GameObj, Messaging&lt;br /&gt;
-o- Several Bugfixes for lots of things&lt;br /&gt;
-o- Lots of code cleanup&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML errors&lt;br /&gt;
-o- Adds the DR Plat instance for Frostbite FE&lt;br /&gt;
-o- Adds ‘ball’ as the noun used for ‘ball and chain’&lt;br /&gt;
-o- Adds the movement result ‘slip in the mud and fall flat’&lt;br /&gt;
-o- Corrects stamina cost for the feature Dispel Magic&lt;br /&gt;
-o- Plus all the latest script updates from Elanthia-Online!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML to limit login errors (DR)&lt;br /&gt;
-o- Fix for XMLData.active_spells to properly register wizard &#039;recovery&#039; spell cooldowns&lt;br /&gt;
-o- Messaging updates to remove error in Wizard FE encodings&lt;br /&gt;
-o- Corrects for error in detecting PSM skill changes (cman) via warrior / rogue guild lessons&lt;br /&gt;
-o- Deprecates LNet script from master repository&lt;br /&gt;
-o- Miscellaneous small bug squashing&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.6.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- (DragonRealms) Support for Genie and Frostbite frontends&lt;br /&gt;
-o- (GemStone) Changed methods to improve ;go2 speed and reduce lich.db3 calls&lt;br /&gt;
-o- (GemStone) Updates to support silver_count function&lt;br /&gt;
-o- (Both) Changed method for updating lich ecosystem&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.5.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for DragonRealms&lt;br /&gt;
-o- Updated support for scripts like BigShot&lt;br /&gt;
-o- Providing the LichID and UID on Profanity&lt;br /&gt;
-o- Spell.force_incant, .force_channel, and .force_evoke&lt;br /&gt;
-o- Standardized message method for script authors&lt;br /&gt;
-o- Sundry small improvements / fixes and changes&lt;br /&gt;
-o- And the creme de la creme - a custom directory&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.4.0&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Simu Room IDs (formally called &#039;unique ID&#039; or &#039;uid&#039; for Lich) added to Map, mapDB where known, and ;go2 for navigation (courtesy Xanlin and with our thanks!) ;go2 u7120 for all you ex-GMs out there. &lt;br /&gt;
-o- Room titles will now display the Lich ID and / or the UID for the room based on user selections - default is on for both, and enabled / disabled via Lich.display_lichid or Lich.display_uid toggles that can be set to on / off or true / false. (;e Lich.display_lichid=true/false and ;e Lich.display_uid=true/false) You can remove that rnum from your autostart now! To gain the benefit of the UID deployment, be sure to ;repo download-mapdb&lt;br /&gt;
-o- REQUESTS: Drop 5 minute timeout function from Lich&lt;br /&gt;
-o- waitrt? and waitcastrt? will still pause activities, but will return TRUE or FALSE in keeping with the Ruby functionname? tradition (no more failing to get a weapon out due to RT from climbing!)&lt;br /&gt;
-o- empty_hands and fill_hands will now check to see if the character is in roundtime before trying to put away or retrieve held items&lt;br /&gt;
-o- Infomon received an update that keeps spell timers in sync with the information received from the server - no more need to immediately do a spell active in game to get the right times to display for various legacy scripts and ;magic after visiting the invoker or using an SK item&lt;br /&gt;
-o- Lich now provides a facility to get current coins on the character that is a bit more agnostic to data changes from Simu - Lich::Util.silver_count&lt;br /&gt;
-o- Various other small tidbits to help ease maintenance and future development&lt;br /&gt;
-o- PLEASE NOTE:  This update is required for the newest Bigshot (released today!) and for future eloot and eherbs scripts (release RSN)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.3.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Added support for Wrayth (renamed Stormfront) installations &lt;br /&gt;
-o- Converted Linux | WINE login methods to &#039;method 0&#039;, does not use Simu launcher&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.2.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for STOWing items irrespective of special item scripts&lt;br /&gt;
-o- Improved query support for Effects and CMans&lt;br /&gt;
-o- Fix Lich bug to respect the &#039;groupmovement&#039; flag in game&lt;br /&gt;
-o- Fix Lich round time calculations (more aggressive timing)&lt;br /&gt;
-o- Dark Mode is now a thing&lt;br /&gt;
-o- Lich4 Style GUI layout available&lt;br /&gt;
-o- Several file location changes to support future code change efforts&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.19&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Benefit: Monks with Mental Acuity (all 3 of you) rejoice - stamina casting!&lt;br /&gt;
-o- Benefit: PSM3 included, no charge. No hair remaining, either!&lt;br /&gt;
-o- Benefit: Ok, stay seated: Some of your various SF spell duration windows may work. . . better? Yes, not perfect, but better. No pictures, please!&lt;br /&gt;
-o- Updated infomon that properly detects Cloak of Shadows on those pesky sorcerers, and the Raise Dead Cooldown periods for those wondrous clerics.&lt;br /&gt;
-o- A new update process for Lich 5 - tired of having to download that script over and over just to update? Get yourself a copy of lich5-update.lic. Note, if you already have it, you&#039;re set! If not - ;jinx script install lich5-update --repo=elanthia-online&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Updated the method used to log onto SIMU servers.&lt;br /&gt;
-o- Added the Animalist item specifics to Lich5&#039;s empty and fill hands routines&lt;br /&gt;
-o- Improved Invoker messages for Avalon and Wizard FEs (no change for SF FE)&lt;br /&gt;
-o- Improved cleanup and store methods when player EXIT&#039;s or QUIT&#039;s game&lt;br /&gt;
-o- Crafted two new methods (stash_hands and equip_hands) for future script use&lt;br /&gt;
-o- Some behind-the-scenes cleanup to improve maintaining the Lich5 ecosystem&lt;br /&gt;
-o- Add Spell Active improvements&lt;br /&gt;
-o- Add PSM and Ranger improvements&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
* [[Mac Installation - Lich (software)]]&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
[[Category:New Player]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=264727</id>
		<title>Lich:Software/Installation</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=264727"/>
		<updated>2026-08-31T18:21:08Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Installing the Latest Stable Release */ update for 5.20.1 release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
=About=&lt;br /&gt;
&lt;br /&gt;
Lich is an add-on scripting engine that works alongside existing front ends.  The most common installation is a combination of Lich on Windows using the Wrayth or Wizard FE. Lich is also used by many on both MacOS and multiple Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=Installing the Latest Stable Release=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The latest stable lich version is 5.20.1 supporting Ruby 4.0 - published August 20, 2026&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==In-Place Upgrade==&lt;br /&gt;
&lt;br /&gt;
If you are on an older version of Lich 5 and want to upgrade to the most current version, you can choose to either upgrade Lich5 only or both Lich 5 and Ruby. If you&#039;re currently on Lich 4, able to check by running the command &amp;lt;CODE&amp;gt;;e echo LICH_VERSION&amp;lt;/CODE&amp;gt;, go to the [[#Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)|upgrade from Lich 4 section]].&lt;br /&gt;
&lt;br /&gt;
For each section, please follow the directions/commands one at a time.&lt;br /&gt;
&lt;br /&gt;
===Lich 5 Only===&lt;br /&gt;
&lt;br /&gt;
====Lich 5.7 or newer====&lt;br /&gt;
# You must be running Ruby 4.0 or greater for Lich 5.19 +.  If unsure, please update both (see below)!&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Run this command in-game &amp;lt;CODE&amp;gt;;lich5-update --update&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
====Lich 5.6 or older====&lt;br /&gt;
Please proceed to updating both Ruby and Lich 5&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 4.0 &amp;amp; Lich 5===&lt;br /&gt;
This method is for Windows only. Linux and MacOS users, please do a Lich 5 only update and update Ruby manually via normal install/update methods for the OS.&lt;br /&gt;
&lt;br /&gt;
# Logout of all characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall existing Ruby4Lich5 installs from Programs &amp;amp; Features control panel, or alternatively, rename your existing Ruby4Lich5 folder to Ruby4Lich5save. (Defaults to C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the installer and be sure to have both Ruby and Lich 5 option selected&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich &amp;amp; Ruby!&lt;br /&gt;
&lt;br /&gt;
===Ruby 4.0 Only===&lt;br /&gt;
Use this to upgrade to the newest version of Ruby only if you&#039;re already on the latest version of Lich5 and now want to update Ruby afterwards. If you&#039;re not already on the latest version of Lich5, please use previous section steps instead.&lt;br /&gt;
# Logout of all instances/characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall your existing Ruby4Lich5 install via Programs &amp;amp; Features (ensure it&#039;s now gone, default location was C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the new installer and choose to only install Ruby Only&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version Ruby!&lt;br /&gt;
&lt;br /&gt;
==Windows New Installation==&lt;br /&gt;
&lt;br /&gt;
{{blue|These instructions are not for DragonRealms. [[#Ecosystem Information|For those scroll to the bottom]].}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows 11 / 10 / 8 / 7&#039;&#039;&#039; users: you can download the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and install everything you need automatically. Click on the &#039;&#039;&#039;Ruby4Lich5.exe&#039;&#039;&#039; and download it to your computer then double click on the executable in your default download folder. Note, a user may need to adjust their browser or security settings to allow download and installation.&lt;br /&gt;
If you have never played before, follow the &#039;New Installation&#039; instructions. If you have played before, and have used Lich before, follow the &#039;Upgrade Installation&#039; instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Installation for Lich 5 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Please log into the game of your choice through the Simutronics website first&#039;&#039;&#039;.  Install the launcher (not SGE), and install your FrontEnd of Choice.  The Wrayth FrontEnd is presently the supported FrontEnd, but Wizard will work as well, if you are nostalgic.  After you&#039;ve logged in, log out and continue.&lt;br /&gt;
# Download and Run the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe  Installer]. You will receive the Microsoft Warning because this is not distributed through the MS Store.  Click on &#039;More Info&#039; and then select the &#039;Run Anyway&#039; button.&lt;br /&gt;
# The installation may take a few minutes, especially on non-SSD harddrives.&lt;br /&gt;
# A Lich5 folder will be placed on your desktop after the install is finished, open that folder and double click the lich.rbw file contained inside to start Lich&#039;s Game Entry window.&lt;br /&gt;
# Use your existing Simutronics Account and Password and click connect.  Then select the character you wish to play, and select the FrontEnd you wish to use.  Then click the Play button.&lt;br /&gt;
# Your game FrontEnd should start, and you should see Lich5 initializing.  You will see it downloading files - these are the map files, wait for the download to finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
This option is deprecated.  Lich 5 architectures are not compatible with Lich 4. Back up your existing Lich 4 folder, uninstall any existing Ruby executables, and then follow the instructions for a new install above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional assistance in installation can be found in the scripting channel of the GemStone [https://discord.gg/KF9Wr8u Discord].&lt;br /&gt;
&lt;br /&gt;
==MacOS==&lt;br /&gt;
There two common options for playing Gemstone IV on a Mac is either to play natively with Avalon or to use virtualization software such as Parallels with Wrayth/WizardFE. Below are the options on how to do that.&lt;br /&gt;
&lt;br /&gt;
===Native Avalon===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. This process works well for Mac OS Catalina and Big Sur. If you have not updated your Mac OS yet, these instructions may work depending on your actual version.  If you run into a snag, follow the contact instructions provided.&lt;br /&gt;
&lt;br /&gt;
===Parallels Windows===&lt;br /&gt;
With the latest releases of Ruby4Lich5 installer, you can now follow the normal Windows installation for both Intel and Apple silicon based Apple computers.&lt;br /&gt;
&lt;br /&gt;
To install Wrayth/WizardFE, Lich, and Ruby via Parallels you will need to do a few various steps as outlined below. Please note, the rubyw file in C:\Ruby4Lich5\X.X.X\bin may be set to run in compatibility mode for windows 7.  On an ARM Mac running parallels, this may causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file could fixe this issue if it was enabled.&lt;br /&gt;
&lt;br /&gt;
The following steps are to be done AFTER you&#039;ve successfully installed Wrayth/WizardFE and can login normally without Lich5 on the machine. Once you&#039;ve done that and can successful connect normally, then follow these steps:&lt;br /&gt;
# Download and install [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and use default options presented during install&lt;br /&gt;
# Double click the lich.rbw file that is now located in the extracted Lich5 location you did above. Login and play as usual.&lt;br /&gt;
&lt;br /&gt;
==Chromebook &amp;amp; Debian variants==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-debian&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-debian&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Debian/Chromebooks. Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1.&#039;&#039;&#039; &lt;br /&gt;
Update the list of available software and make sure some requirements are installed:&lt;br /&gt;
&amp;lt;!-- don&#039;t think I&#039;m gonna include this stuff but might as well not delete it.&lt;br /&gt;
:&amp;lt;small&amp;gt;sudo: as a super-user&amp;lt;/small&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;apt-get: Debian&#039;s software repository&amp;lt;/small&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;-y: answer all questions yes&amp;lt;/small&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get -y update&lt;br /&gt;
sudo apt-get -y install autoconf bison build-essential curl libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libsqlite3-dev git unzip libcairo2-dev libgirepository1.0-dev libgtk-3-dev gobject-introspection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing Ruby installation rather than installing from scratch, skip steps 2, 3, and 4.  Instead, update your ruby-build with the following command, and then proceed to Step 5.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2.&#039;&#039;&#039;&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3.&#039;&#039;&#039;&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4.&#039;&#039;&#039;&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Arch Linux &amp;amp; Arch-based distributions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-arch&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-arch&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
Update the system and install required dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pacman -Syu&lt;br /&gt;
sudo pacman -S --needed base-devel openssl libyaml readline zlib ncurses libffi gdbm sqlite git unzip curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby 3.4.5 and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fedora==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-fedora&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-fedora&amp;quot;&amp;gt;&lt;br /&gt;
Currently supported versions of Fedora&lt;br /&gt;
* 41 uses Ruby 3.3&lt;br /&gt;
* 42 uses Ruby 3.4&lt;br /&gt;
* 43 uses Ruby 3.4&lt;br /&gt;
All of which are currently compatible with Lich 5.7.0 or higher.&lt;br /&gt;
&lt;br /&gt;
1. Update The Base Installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf -y update&lt;br /&gt;
$ sudo dnf -y install vim git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Install required Ruby and Development packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf install -y autoconf bison cairo-devel curl gcc gdbm gdbm-devel gdk-pixbuf2-devel glib2-devel \&lt;br /&gt;
gobject-introspection-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5a. Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5b. Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Popular Scripts=&lt;br /&gt;
{{#section:Lich:Script Repository|popularscripts}}&lt;br /&gt;
&lt;br /&gt;
=Ecosystem Information=&lt;br /&gt;
&lt;br /&gt;
* DragonRealms Variant - [https://elanthipedia.play.net/Lich_script_repository#Setup_and_Installation Setup and Install instructions]&lt;br /&gt;
&lt;br /&gt;
=Lich Changelog=&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-changelog&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-changelog&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.20.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
&lt;br /&gt;
* add concurrent runtime I/O and multi-client detach support (#1459)&lt;br /&gt;
* --bind-address speaks the same keywords as --detachable-client (#1461)&lt;br /&gt;
* GUI Launcher Improvements (#1463)&lt;br /&gt;
* Add supervised child script APIs (01 of 06) (#1474)&lt;br /&gt;
* Add forced script teardown command (06 of 06) (#1479)&lt;br /&gt;
* teardown and distinguishable errors for Script.run_child (#1501)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
&lt;br /&gt;
* DRCMM.moon_weapon_duration - read a moon weapon&#039;s remaining life (#1483)&lt;br /&gt;
* id-based creature tracking from crtrStatus + assess (#1485)&lt;br /&gt;
* capture room UID from &amp;lt;nav&amp;gt; tag; stop enforcing ShowRoomID; opt-in room-id placement (#1491)&lt;br /&gt;
* user-extensible scroll substitutions via settings (01 of 06) (#1512)&lt;br /&gt;
* user-extensible boxes and trash receptacles (03 of 06) (#1514)&lt;br /&gt;
* user-extensible summoned-weapon adjectives (04 of 06) (#1515)&lt;br /&gt;
* user-extensible flavor-text stripping (05 of 06) (#1516)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
&lt;br /&gt;
* gameobj add full_name matcher to type/sellable classification (#1453)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
&lt;br /&gt;
* prevent empty/partial GameObj registry reads during mid-stream refresh (#1370)&lt;br /&gt;
* no-op Gtk.lich_main_quit when no main loop is nested (#1464)&lt;br /&gt;
* correct path-flag aliases and document all path options (#1472)&lt;br /&gt;
* Synchronize script lifecycle transitions (02 of 06) (#1475)&lt;br /&gt;
* Coordinate script shutdown draining (03 of 06) (#1476)&lt;br /&gt;
* Harden script lifecycle ownership (05 of 06) (#1478)&lt;br /&gt;
* surface the underlying LoadError in dependency alerts (#1480)&lt;br /&gt;
* extract game-agnostic CreatureBase into lib/common (#1484)&lt;br /&gt;
* bound GemCheck alert dialogs with a timeout so they can&#039;t hang forever (#1488)&lt;br /&gt;
* identify Genie as the frontend for headless launches (#1490)&lt;br /&gt;
* restore detachable client disconnect notice to stdout (#1492)&lt;br /&gt;
* harden detachable client teardown and escape init payload (#1493)&lt;br /&gt;
* resolve GameObj status visibility during staged  refresh (#1497)&lt;br /&gt;
* compact client write queue instead of ending the session (#1498)&lt;br /&gt;
* scrub startup credentials once login completes (#1499)&lt;br /&gt;
* Honor Simu-side teardown for 10 seconds (#1505)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
&lt;br /&gt;
* resolve no-UID rooms carrying a stored UID instead of returning nil (#1467)&lt;br /&gt;
* equipmanager.rb - reliable ranged-weapon transitions - stow ammo after unload + verify offhand wield hand (#1468)&lt;br /&gt;
* common-healing.rb -  DRCH.bind_wound: only dispose a dislodged item while it is in hand (#1469)&lt;br /&gt;
* preserve game RealID in room title (GS parity for &amp;quot;;display roomid title&amp;quot;) (#1500)&lt;br /&gt;
* Refine need_buffs? logic for non-recast spells to correctly check cyclic spells. (#1503)&lt;br /&gt;
* reduce symbol-torn scale scrolls to gettable noun (#1506)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* lower game socket keepalive idle from 120s to 30s (#1449)&lt;br /&gt;
* resilient ActiveSessions ownership + shutdown watchdog (#1452)&lt;br /&gt;
* Quit Gtk.main cleanly (#1455)&lt;br /&gt;
* Refactor regex to string comparisons for ARGV options (#1456)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* ingest newly-exposed mindState experience and roommeta room fields (#1450)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add character generator support via EAccess protocol (#1384)&lt;br /&gt;
* Add modern script command shutdown method (#1385)&lt;br /&gt;
* migrate the server-stream parser from REXML to Ox, with pipe-mode benchmark harness and DR parser coverage (#1396)&lt;br /&gt;
* enumerate script subdirs with file glob (#1397)&lt;br /&gt;
* add --bind-address option to set listen socket address (#1405)&lt;br /&gt;
* add central method to determine lich ver (#1417)&lt;br /&gt;
* setup_files: support scripts/data/custom for user data overrides (#1431)&lt;br /&gt;
* Modify running? method to support optional exact matching of script names (#1436)&lt;br /&gt;
* keyword bind hosts for the detachable client (tailscale/lan/any) (#1437)&lt;br /&gt;
* add roomlinks/roommono toggles for room display (#1438)&lt;br /&gt;
* self-healing gem requires (#1439)&lt;br /&gt;
* various Saga FE compatibility tweaks (#1443)&lt;br /&gt;
* add macOS limited gem recovery (#1448)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Capture combat position from the balance status line (#1400)&lt;br /&gt;
* detect scheduled shutdown and expose it on DRParser (#1409)&lt;br /&gt;
* xmlparser: add structured parser for the assess (combat situation) stream (#1413)&lt;br /&gt;
* Implement DRCA.need_buffs? method for buff checks (#1428)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* anchor Infomon parser regex unions to line start (#1391)&lt;br /&gt;
* creature xml additions (#1425)&lt;br /&gt;
* add creature template library (#1427)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* surface a failed Game.open in the connect timeout (#1408)&lt;br /&gt;
* bound long-session memory growth (index/hook/watchfor/buffer leaks) (#1410)&lt;br /&gt;
* improve and harden shutdown (#1416)&lt;br /&gt;
* use bundler to check for required Ruby gems (#1420)&lt;br /&gt;
* pin lich directory for gemfile check (#1423)&lt;br /&gt;
* Show CLI login ARGV for SAL connections (#1424)&lt;br /&gt;
* increase read timeout on idle socket to 300 seconds (#1426)&lt;br /&gt;
* monkeypatch gi for memoryreleaser / asyncprocessor until patched upstream (#1429)&lt;br /&gt;
* Mapdb sort tags by downcase and original case (#1433)&lt;br /&gt;
* stop locking the load path at boot; keep Gemfile.lock in sync on self-update (#1434)&lt;br /&gt;
* minimum Ruby 4.0 required &amp;amp; migrate Ruby version check (#1444)&lt;br /&gt;
* align --announce with --update for Ruby version (#1447)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* BalanceValue regex to match combat status lines (#1398)&lt;br /&gt;
* equipmanager.rb - Fix unload weapon detection when AimTimerDialog tag is prepended (#1414)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* global_defs update pushStream regex to include &#039;reserve&#039; id (#1379)&lt;br /&gt;
* psms Warcry.available? correction (#1387)&lt;br /&gt;
* xmlparser support new field exp, climate, terrain XML feeds (#1388)&lt;br /&gt;
* global_defs move() update regex for standing condition (#1407)&lt;br /&gt;
* Currency add method to retrieve aevit event currency (#1411)&lt;br /&gt;
* Stash check result type before comparing regex for wear_to_inv (#1430)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.18.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-crafting add method for creating mechanisms (#1375)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* stringproc normalize CRLF | CR to LF (#1378)&lt;br /&gt;
* rubocop custom cop ascii only cleanup (#1382)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* equipmanager update to assume missing items aren&#039;t worn (#1376)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1326)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Script module replace MemoryReleaser with GC.start for cleanup (#1364)&lt;br /&gt;
* Add sqlite busy timeout policy to core (#1365)&lt;br /&gt;
* Script#kill remove GC.start and add optional instrumentation (#1368)&lt;br /&gt;
* reorder shutdown ala MahtraDR and detect script teardown de... (#1369)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* harden custom repo identity, collision, and contract boundaries (#1333)&lt;br /&gt;
* stop SessionLifecycle before closing database on normal exit (#1334)&lt;br /&gt;
* harden FeatureFlags for closed db handle (#1335)&lt;br /&gt;
* SynchronizedSocket write resilience and zombie client elimination (#1338)&lt;br /&gt;
* correct RP timing issue for release notes (#1348)&lt;br /&gt;
* gate object cleanup in GTK queue (#1354)&lt;br /&gt;
* recover from cross-process zombie in ActiveSessions service (#1355)&lt;br /&gt;
* Improve shutdown session state handling (#1359)&lt;br /&gt;
* non-ascii hygeine to address rubocop errors (#1360)&lt;br /&gt;
* Remove debug log IO from heartbeat tick loop (#1363)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRC text2num correction for thousand (#1343)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Overwatch add REVEALED_EXPLODES regex pattern (#1356)&lt;br /&gt;
* Stash add_to_bag result type check before regex compare (#1357)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* enable heartbeat-driven failover for ActiveSessions service owner (#1340)&lt;br /&gt;
* copy Gemfile and LICENSE during self-update (#1345)&lt;br /&gt;
* Add top-level parse_args/display_args bridge to global_defs (#1346)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* replace undefined custom_require in check_moonwatch (#1336)&lt;br /&gt;
* set_stance places 100 in the correct positional slot (#1337)&lt;br /&gt;
* cache SlackBot users list to prevent API throttling (#1342)&lt;br /&gt;
* Add CORE_AUTOSTART sentinel to skip dependency.lic autostart helpers (#1344)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon Status.cutthroat? Effect Debuff correction (#1331)&lt;br /&gt;
* add support for RESERVE xml in GameObj.reserve (#1341)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* custom 3rd-party repo support for ScriptSync (#1285)&lt;br /&gt;
* Add get_settings, get_data, start_scripts_if_available to core (#1305)&lt;br /&gt;
* Add Map.apply_wayto_overrides for personal map overrides (#1306)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Decouple SetupFiles from script-scoped echo and XML feed timing (#1304)&lt;br /&gt;
* Add game flags and obsolete script warnings to DRInfomon startup (#1307)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* use :__unset for --without-frontend CLI request YAML matches (#1301)&lt;br /&gt;
* prevent zombie server deadlock in Active Sessions accept loop (#1302)&lt;br /&gt;
* improve MacOS keychain system check for older OS variants (#1310)&lt;br /&gt;
* stub sync_all_repos to prevent leaked thread in games_spec (#1311)&lt;br /&gt;
* enforce beta confirmation 10s timeout (#1315)&lt;br /&gt;
* use send(:respond) in StatusReporter fallback path (#1316)&lt;br /&gt;
* ensure SessionLifecycle.stop runs on abnormal exit (#1317)&lt;br /&gt;
* address ActiveSessions lifecycle hot path feature-flag polling (#1325)&lt;br /&gt;
* catch ECONNRESET in _puts and bound walk_to retry depth (#1327)&lt;br /&gt;
* safeguard gtk logo.png loading (#1329)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Add InnCheckedOut pattern to parser (#1309)&lt;br /&gt;
* Claim corrections to handle mounts in room_players stream (#1324)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
* repair regression on gui button reenable from refactor (#1297)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Mutli-launch persistent login GUI (#1245)&lt;br /&gt;
* Remove Windows OS CMD prompt flash (#1255)&lt;br /&gt;
* guard against broken pipe errors in Game._puts and send_to_client (#1260)&lt;br /&gt;
* add timeout safety to fput to prevent infinite hangs (#1261)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* anchor stow success pattern to prevent fan close recovery bypass (#1254)&lt;br /&gt;
* add bounded recursion depth limits to 9 methods (#1257)&lt;br /&gt;
* stow_helper failure detection + unload_weapon ammo recovery (#1259)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add InstanceSettings for core Settings API access (#1233)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Overwatch module into core (#1201)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* fix GameObj container initialization and add clear_all_containers (#1226)&lt;br /&gt;
* GameObj object dedupe &amp;amp; GC (#1234)&lt;br /&gt;
* script.rb show Script.kill source (#1235)&lt;br /&gt;
* Exit quickly on CLI authentication failure (#1237)&lt;br /&gt;
* suppress wine detection noise and skip when unneeded (#1244)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DR modules fixes and enhancements (#1232)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* psms.rb add additional failure matches (#1238)&lt;br /&gt;
* Bounty parser fix regex pattern for skin retrieval task (#1242)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* add retry with exponential backoff for all login authentication (#1205)&lt;br /&gt;
* update.rb allow for bugfix betas and branch updates (#1211)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb bug in _key transformation (#1216)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Change server_time_offset in XMLParser to be float instead of int (#1184)&lt;br /&gt;
* change encodings in main.rb to wizard FE only (#1199)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon parser.rb update Account.subscription/type (#1192)&lt;br /&gt;
* spell.rb add last_cast to track last time casted (#1193)&lt;br /&gt;
* stash.rb additional improvements with ReadyList/StowList (#1197)&lt;br /&gt;
* Infomon parser.rb bug in EnhanciveEnd (#1198)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add Genie map cross-reference fields to the DragonRealms map data model (#1169)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRExpMonitor move into core lich (#1154)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* add Enhancive module for enhancive item bonus tracking (#1113)&lt;br /&gt;
* add QStrike module for optimal stamina-based RT reduction (#1114)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* remove strip! from settingsInfo replacement (#1161)&lt;br /&gt;
* map_base.rb sort JSON better (#1171)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* logbook_item recovery when crafted item not in hand (#1175)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* xmlparser.rb capture additional death messaging (#1158)&lt;br /&gt;
* stash.rb ReadyList sheath handling and update inventory checks (#1166)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* allow --add-account to run without yaml and dat (#1143)&lt;br /&gt;
* enable --login for multi-variable custom launch commands (#1144)&lt;br /&gt;
* update.rb pervent update if MIN_RUBY not met (#1146)&lt;br /&gt;
* messaging.rb return &amp;quot;&amp;quot; for xml_encode with Wizard (#1147)&lt;br /&gt;
* prevent closing connection on module reload (#1148)&lt;br /&gt;
* Allow hmr to work on global_defs.rb (#1156)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* buffer split room obj lines and merge instead of appending closing tag to broken line (#1149)&lt;br /&gt;
* add buffering for multiline room players (#1151)&lt;br /&gt;
* add verify_script def here instead of depending on dependency (#1155)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb added updated_at field to upsert_batch (#1145)&lt;br /&gt;
* stowlist.rb check method fix when dead (#1152)&lt;br /&gt;
* readylist.rb check method fix when dead (#1153)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* util.rb only show gem installing debug messaging if gem mis… (#1131)&lt;br /&gt;
* add --gs and --dr, refactor argv_options to helpers (#1133)&lt;br /&gt;
* fix multiple custom entries, improvements to yaml save (#1134)&lt;br /&gt;
* login_tab_utils.rb expand helper text show Warlock (#1135)&lt;br /&gt;
* update CLI for YAML security signature, add auto-convert fo… (#1136)&lt;br /&gt;
* remove password parameter from debug logging in all cases (#1137)&lt;br /&gt;
* reduce minimum GUI window footprint for non-tabbed view (#1138)&lt;br /&gt;
* remove double save in YAML to preserve yaml.bak integrity (#1139)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* stash.rb additional improvements (#1132)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* force system gem install if RubyGems fails (#1126)&lt;br /&gt;
* gui_login prevent destroying window if already destroyed (#1127)&lt;br /&gt;
* add window size / position saves to login GUI (#1128)&lt;br /&gt;
* non tabbed saved entries in reduced button / font size (not… (#1129)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* account manager sorting GUI fix (#1123)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* install_gem_requirements update available gems after install (#1120)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* password_cipher.rb upcase account_name for key (#1118)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* validator.rb change sleep to should_sleep named param (#1116)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* add base stats capture from &#039;info full&#039; command (#1115)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Refocus Frontend (#960)&lt;br /&gt;
* socket configurator to better guard TCPSocket (#976)&lt;br /&gt;
* add simplified DB maintenance (#991)&lt;br /&gt;
* TextStripper module support for XML, HTML, Markdown (#1055)&lt;br /&gt;
* Login modernization and refactor to yaml (#1063)&lt;br /&gt;
* Ruby Memory Releaser module (#1066)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* support meta:trashcan tag for DRCI.dispose_trash (#966)&lt;br /&gt;
* Add GameObj.inv support for DR items (#1080)&lt;br /&gt;
* DRCS allow custom adjective for summoned weapons (#1088)&lt;br /&gt;
* DRParser support for new exp window xml stream elements (rested exp, tdps, favors) (#1104)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Add Armaments (Weapon, Armor, and Shield) Module (#911)&lt;br /&gt;
* add creature module, including Hinterwilds creatures (#1002)&lt;br /&gt;
* Creature module combat tracking (#1003)&lt;br /&gt;
* track time of last total_experience record (#1030)&lt;br /&gt;
* add Injured class for checking ability to perform actions (#1035)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* map dijkstra optimization (#1061)&lt;br /&gt;
* update.rb keep script/data file incase of error on update (#1070)&lt;br /&gt;
* ensure proxy path is set for non-destructive array write-th… (#1073)&lt;br /&gt;
* [lib][global-defs] - move update (#1079)&lt;br /&gt;
* GameObj force new objects ID to be string (#1087)&lt;br /&gt;
* xmlparser.rb gate GSL exits sending behind @send_fake_tags (#1103)&lt;br /&gt;
* change Hash[] pair key conversion to use to_h for Ruby 4.0 (#1108)&lt;br /&gt;
* move gui-login.rb to Ruby standard gui_login.rb (#1111)&lt;br /&gt;
* update location for currency and move game-loader.rb to Ruby standard gameloader.rb (#1112)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRCA allow custom spell prep messaging (#1089)&lt;br /&gt;
* Update Slackbot error handling, and lnet management (#1091)&lt;br /&gt;
* Fix exp mods parsing for DR (#1102)&lt;br /&gt;
* equipmanager.rb support for custom messaging in forester&#039;s longbow (#1105)&lt;br /&gt;
* Fix hang in equipment manager when game doesn&#039;t respond to commands (#1110)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon additional CHE resign regex (#1067)&lt;br /&gt;
* Resource tracking for sorcerer shadow essence (#1085)&lt;br /&gt;
* cman.rb add hamstring regex for already lying down target (#1090)&lt;br /&gt;
* cman.rb hamstring regex update when can&#039;t perform on target (#1092)&lt;br /&gt;
* Bounty parser.rb FWI guard regex update (#1096)&lt;br /&gt;
* currency.rb track gold (#1109)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.12&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (general)&lt;br /&gt;
    Update module strip markdown comments (#1056)&lt;br /&gt;
    Vars/UserVars module fixes and corrections (#1057)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    Infomon parse fix for singular currency (#1051)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (dr)&lt;br /&gt;
    add bput match for system updates preventing actions (#1034)&lt;br /&gt;
    drdefs.rb npc parsing (#1038)&lt;br /&gt;
    Fix container reference in get_item_from_eddy_portal method (#1039)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    bounty location regex needs to match &amp;quot;under&amp;quot; (#1037)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.10&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: games.rb catch additional error for nested single/double quotes (#1031)&lt;br /&gt;
    dr: change keys for DR_SKILLS_DATA[:guild_skill_aliases] to be strings instead of symbols (#1032)&lt;br /&gt;
    gs: Bounty parser for SG npcs matching (#1027)&lt;br /&gt;
    gs: match READY/STOW items with a/an/some inside the link (#1026)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.9&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    gs: StowList/ReadyList reset bug if non-default keys added #1019&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: script.rb show custom at script exit as well (#993)&lt;br /&gt;
    all: Updated update.rb for single trunk and release please (#1001)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.7&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): ensure updates do not target detached proxy views #990 &lt;br /&gt;
fix(gs): bounty parser and move fixes for sailor&#039;s grief #987 &lt;br /&gt;
fix(gs): Infomon xmlparser.rb Ready/Stow fix for LONG before exist #988 &lt;br /&gt;
fix(gs): gameobj.rb for Sailor&#039;s Grief ghostly/boss/guild tentacles #989 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): settings.rb update to preserve root of derived views #975&lt;br /&gt;
fix(all): show custom in various script output when custom script #967&lt;br /&gt;
fix(dr): drparser.rb update for PlayedSubscription #983&lt;br /&gt;
fix(gs): include store location for ReadyList #977&lt;br /&gt;
fix(gs): infomon parser.rb update for ACCOUNT output varies #979&lt;br /&gt;
fix(gs): global_defs.rb move def update for Hive traps #980&lt;br /&gt;
fix(gs): activespell.rb prevent removal of RF Penalty #981&lt;br /&gt;
fix(gs): add .compact to input of Disk.find_by_name #982&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): update.rb word boundary for abbreviations #971&lt;br /&gt;
fix(dr): equipmanager.rb Fix for changed game output. #969&lt;br /&gt;
fix(dr): common-arcana.rb Regalia fix for changed game output. #970&lt;br /&gt;
fix(dr): common-items.rb Fix for changed inventory command output #973&lt;br /&gt;
fix(gs): StowList missing space in capture in xmlparser.rb #963&lt;br /&gt;
fix(gs): stowlist.rb wait for RT when issuing check #964&lt;br /&gt;
fix(gs): readylist.rb wait for RT when issuing check #965&lt;br /&gt;
fix(gs): Bounty heirloom return msg&#039;ing update #972&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
build(all): installer.yml use windows-2022 #950&lt;br /&gt;
fix(all): restore Wrayth / Wizard script execution ability #952&lt;br /&gt;
fix(all): database_adapter.rb error handling improvement #956&lt;br /&gt;
fix(dr): common-items.rb wear/remove messaging additions #949&lt;br /&gt;
fix(dr): games.rb - ignore UIDs for Frostbite mapping #951&lt;br /&gt;
fix(dr): map_dr.rb prevent inadvertent settings changes #958&lt;br /&gt;
fix(gs): GameObj targets for new Sailor&#039;s Grief tentacle npc #948&lt;br /&gt;
fix(gs): map_gs.rb remove delete_if to prevent bad settings #957&lt;br /&gt;
fix(gs): weapon.rb assault break if no targets #962&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): limitedarray.rb max_size increase #946&lt;br /&gt;
fix(all): uservars.rb update for vars method missing #940&lt;br /&gt;
fix(dr): drparser.rb to set ShowRoomID to on if turned off #945&lt;br /&gt;
fix(gs): change namespace accessors to Ruby 2.6 compatible #944&lt;br /&gt;
fix(gs): infomon state reset on status prompt #943&lt;br /&gt;
fix(gs): Societies to check membership for various methods #942&lt;br /&gt;
fix(gs): standardize warcry.rb to match other PSMS #941&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(gs): infomon parser.rb for profile full name matching #938&lt;br /&gt;
fix(gs): force PROFILE FULL to sync CHE info for infomon #937&lt;br /&gt;
fix(dr): Tighten checks on releasing invisibility for thieves #936&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): gameobj.rb - add type? method for explicit type check #928&lt;br /&gt;
- fix(all): messaging.rb encoding issue #933&lt;br /&gt;
- fix(gs): Various CMan cost corrections #932&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- feat(all): settings.rb - proposal for sequel based Settings #591, #875, #889, #896, #927&lt;br /&gt;
- feat(all): util.rb add Ruby gem install helper method #861&lt;br /&gt;
- feat(all): messaging.rb add cmd link method #866&lt;br /&gt;
- refactor(all): games.rb modernization #849, #882, #924&lt;br /&gt;
- fix(all): add class extensions #800&lt;br /&gt;
- fix(all): lich.rb deprecated FE message #852&lt;br /&gt;
- fix(all): messaging.rb fix XML encoding for wizard and avalon #853&lt;br /&gt;
- fix(all): lich.rb class variable not initialized #855&lt;br /&gt;
- fix(all): log.rb force msg to String for regexp comparison #856&lt;br /&gt;
- fix(all): global_defs.rb bug in fput #864&lt;br /&gt;
- fix(all): messaging.rb xml_encode mono method msg #868&lt;br /&gt;
- fix(all): script.rb class to is_a? checks #878&lt;br /&gt;
- fix(all): gameobj.rb deeper lookup #885&lt;br /&gt;
- fix(all): messaging.rb debug not compared to falseclass #887&lt;br /&gt;
- fix(all): change class to is_a? checks #91-3&lt;br /&gt;
- fix(all): Util.issue_command allow single line captures #918&lt;br /&gt;
- fix(dr): drparser.rb casing for Premium status check #842&lt;br /&gt;
- fix(dr): map_dr.rb Don&#039;t assign UID of zero to rooms #844&lt;br /&gt;
- fix(dr): drparser.rb add $last_logoff tracking #851&lt;br /&gt;
- fix(dr): update message patterns in common-items #859&lt;br /&gt;
- fix(dr): add moon_visible?(moon) convenience method to common-moonmage #860&lt;br /&gt;
- fix(dr): exp mods output is not enclosed in preset xml tags anymore #870&lt;br /&gt;
- fix(dr): update.rb beta send validation for genie lich char #880&lt;br /&gt;
- fix(dr): Update regex and parsing for active spells #894&lt;br /&gt;
- fix(dr): add &#039;You scoop&#039; match pattern to common-items #900&lt;br /&gt;
- fix(dr): add missing match patterns #901&lt;br /&gt;
- fix(dr): common-items: add and fix match strings #904&lt;br /&gt;
- fix(dr): Add missing matches for common-items #905&lt;br /&gt;
- fix(dr): Release Khri Vanish if Thief, when going visible #906&lt;br /&gt;
- fix(dr): Fix race condition when clearing and repopulating XMLData.dr_active_spells #907&lt;br /&gt;
- fix(dr): Fix SLS release pattern #908&lt;br /&gt;
- fix(dr): resolve race condition in DR crafting_magic_routine #914&lt;br /&gt;
- fix(dr): xmlparser.rb - Fix XMLData.dr_active_spells race condition #915&lt;br /&gt;
- fix(dr): xmlparser.rb - Clear out spells properly #916&lt;br /&gt;
- fix(dr): drparser.rb update for Platinum account status #922&lt;br /&gt;
- feat(gs): gameobj.rb allow for custom gameobj data #848&lt;br /&gt;
- feat(gs): PSMS updates, including CMan.use #865, #874, #881, #890, #899&lt;br /&gt;
- feat(gs): ReadyList &amp;amp; StowList classes for item tracking #884&lt;br /&gt;
- feat(gs): Breakout and Buildout Societes #919&lt;br /&gt;
- fix(gs): infomon parsing for CHE membership #841&lt;br /&gt;
- fix(gs): map_gs.rb for no UID when hexdigest used #843&lt;br /&gt;
- fix(gs): warcry.rb yowlp :buff to string instead of regexp #847&lt;br /&gt;
- fix(gs): group.rb multiple corrections #850, #869, #883&lt;br /&gt;
- fix(gs): Bounty parser.rb fix for HW &amp;amp; KF guard return #862&lt;br /&gt;
- fix(gs): Bounty task.rb fix for assigned? and Ruby 2.6 #863&lt;br /&gt;
- fix(gs): stash.rb stale sheaths recheck #867&lt;br /&gt;
- fix(gs): allow spell.rb casting to take a force_stance parameter #902&lt;br /&gt;
- fix(gs): update Infomon parsing for new ACCOUNT output format #903&lt;br /&gt;
- fix(gs): PSMS cost for multiple cost types &amp;amp; add Excoriate feat #912&lt;br /&gt;
- fix(gs): Feat excoriate regex correction #920&lt;br /&gt;
- fix(gs): weapon PSM affordable check against Glorious Momentum #926&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): restore @theme_state and add to CLI capability #795&lt;br /&gt;
- fix(all): retire gtk2 monkey patch for gtk3 #823&lt;br /&gt;
- fix(all): games.rb XMLData.name wait till both not NIL and not EMPTY #826&lt;br /&gt;
- fix(all): standardize xmlparser game instance #827&lt;br /&gt;
- fix(all): games.rb fix multiple single and double quote in XML #832,836,837&lt;br /&gt;
- fix(dr): games.rb - optional hide Room Title display of Real IDs with FLAG on #782&lt;br /&gt;
- chore(dr): common-moonmage - refactor of peer_telescope #783&lt;br /&gt;
- fix(dr): move HMR load to common before for dragonrealms #784&lt;br /&gt;
- fix(dr): common-crafting.rb minor edit to add &amp;quot;You tuck&amp;quot; #787&lt;br /&gt;
- fix(dr): common-arcana.rb - remove unecessary pause from discern code #792&lt;br /&gt;
- fix(dr): drparser.rb Restore Premium status checking #834&lt;br /&gt;
- fix(gs): migrate PSMS.name_normal to Lich::Util.normalize_name #790,833&lt;br /&gt;
- fix(gs): add Char.che to know current character&#039;s CHE #791&lt;br /&gt;
- fix(gs): FEAT and Infomon module parsing of new Covert Art feats. #796&lt;br /&gt;
- fix(gs): add Currency.gemstone_dust and fix redsteel mark capture #797&lt;br /&gt;
- fix(gs): FEAT Covert Arts colon normalization and stamina costs #799&lt;br /&gt;
- fix(gs): escape dash in regex for HouseCHE #824&lt;br /&gt;
- fix(gs): disk.rb comparison helpers #828&lt;br /&gt;
- fix(gs): allow for Group.disks to show self disk in array #829&lt;br /&gt;
- fix(gs): feat.rb Covert Arts throw poison costs 15 stam #830&lt;br /&gt;
- fix(gs): add missing Feat.use ability #831&lt;br /&gt;
- fix(gs): multiple CritRanks updates #801-822&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- [all] - chore: Namespace &amp;amp; File Path Updates #713&lt;br /&gt;
- [all] - [argv_options.rb] bugfix: correct darkmode to work via CLI #693&lt;br /&gt;
- [all] - [games.rb] feat: make show Room Exits of non-StringProc/Obvious Exits toggable for all games #699&lt;br /&gt;
- [all] - [games.rb] feat: toggleable display of StringProcs with clickable links #751&lt;br /&gt;
- [all] - [gui-manual-login.rb] fix: change label to Wrayth #720&lt;br /&gt;
- [all] - [gui-saved-login.rb] fix: update Stormfront label #721&lt;br /&gt;
- [all] - [update.rb] fix: purge old LIB folder prior to update release #729&lt;br /&gt;
- [all] - [util.rb] bugfix: allow issue_command to use fput or put #715&lt;br /&gt;
- [all] - [xmlparser.rb] feat: add XMLData.room_name attribute #685&lt;br /&gt;
- [all] - [main.rb] fix: create session file in regular connect method #733&lt;br /&gt;
- [all] - [init.rb] bugfix: error for Windows DISPLAY variable #735&lt;br /&gt;
- [all] - [main.rb] fix: Mudlet support #736&lt;br /&gt;
- [all] - [wine.rb] fix: add --no-wine CLI flag prevent WINE startup&lt;br /&gt;
- [all] - [init.rb] fix: add --no-gtk CLI flag prevent GTK3 gem load&lt;br /&gt;
- [dr] - [games.rb] feat: DRinfomon and common files as core lich libraries #686&lt;br /&gt;
- [dr] - [games.rb] chore: add DR requires here #690&lt;br /&gt;
- [dr] - [games.rb] fix: add Room# display for DR #697&lt;br /&gt;
- [dr] - [games.rb] bugfix: Genie FE real ID#s not supported, hide by default #728&lt;br /&gt;
- [dr] - [drdefs.rb] bugfix: fix for Shadow Servants #710&lt;br /&gt;
- [dr] - [map_dr.rb] fix: cleanup and support for UIDs #719&lt;br /&gt;
- [dr] - [xmldata.rb] bugfix: add support for DR Room IDs #716&lt;br /&gt;
- [dr] - [xmlparser.rb] feat: XMLData - adding dr_active_spells #691&lt;br /&gt;
- [gs] - [games.rb] bugfix: support for pre/post room name txt #683&lt;br /&gt;
- [gs] - [group.rb] chore: update to account for hold #701&lt;br /&gt;
- [gs] - [resource.rb] feat: add additional tracking of covert art charges #714&lt;br /&gt;
- [gs] - [spell.rb] bugfix: Spell.affordable? 515 release #687&lt;br /&gt;
- [gs] - [stash.rb] bugfix: sheath_bags when not found #694&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: missing real ID in nav #684&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: Claim module obvious hiding #717&lt;br /&gt;
- [gs] - [sk.rb] feat: Self-Knowledge functionality in core #748&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: Simu XML breaking change RoomID #679&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [crit_tables] fix: CritRanks regex fixes (multiple files and changes) #671&lt;br /&gt;
-o- [GS4] - [spellsong.rb] fix: Correct Spellsong sync method #674&lt;br /&gt;
-o- [GS4] - [parser.rb] fix: thorn status regex correction #673&lt;br /&gt;
-o- [All] - [xmlparser.rb] fix: Split out if elif block to account for DR having multiple… #670&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: percentconcentration #676&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: update move failure message to handle attack and casting #667&lt;br /&gt;
-o- [All] - [init.rb] fix: update required ruby check messaging #669&lt;br /&gt;
-o- [All] - [sessionvars.rb] feat: new module SessionVars for non-persistent variable storage #666&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [DR] - [games.rb] bugfix: tweak XML rewrite section #662&lt;br /&gt;
-o- [GS4] - [crit_tables] bugfix: additional crit table regex corrections #663&lt;br /&gt;
-o- [GS4] - [ascension.rb] bugfix: add new Transcend Destiny to lookups #661&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: regexp escape txt #660&lt;br /&gt;
-o- [GS4] - [disruption_critical_table.rb] Bugfix in regex #659&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [games.rb] bugfix: prevent race condition in games thread #656 &lt;br /&gt;
-o- [All] - [init.rb] bugfix: address WINE variance between linux / installs #655&lt;br /&gt;
-o- [GS4] - [gs][stash.rb] bugfix: wear code improvement #657 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [main.rb] bugfix: correct encoding for WizardFE PR #640&lt;br /&gt;
-o- [All] - [games.rb] bugfix: correct logic for room detection when using CLI --start-scripts PR #639&lt;br /&gt;
-o- [All] - [DB_Store.rb] feat: add direct support for Simu RENAME and CHANGE PROF PR #633&lt;br /&gt;
-o- [All] - chore: breakout code to individual files for easier management PR #617&lt;br /&gt;
-o- [All] - [lich.rbw] chore: add deprecated msg to old Settings/GameSettings/CharSettings methods PR #589&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add new --dark-mode CLI option PR #583&lt;br /&gt;
-o- [All] - [global_defs.rb] bugfix: monsterbold fix for additional clients PR #581&lt;br /&gt;
-o- [All] - [update.rb] feat: update core scripts from source on Lich5 update/install PR #579&lt;br /&gt;
-o- [All] - [log.rb] feat: add new Log module copied from Olib PR #577&lt;br /&gt;
-o- [All] - [numeric.rb] feat: add days/hours/minutes/seconds methods to numerics PR #623&lt;br /&gt;
-o- [All] - [messaging.rb] feat: WizardFE Voln window support #647&lt;br /&gt;
-o- [All] - [init.rb] bugfix: WINE entries for Linux / MacOS #649&lt;br /&gt;
-o- [DR] - [lich.rbw] bugfix: cleanup downstream hook exclusions PR #593&lt;br /&gt;
-o- [DR] - [global_defs.rb] bugfix: missing climb failure message PR #592&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: show non-standard Effects in `;magic` output PR #641&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: fix WARCRY duplication results / add WALL OF THORNS effect detection PR #634 / PR #637&lt;br /&gt;
-o- [GS4] - [critranks.rb] feat: add critical rank resolution tables and methods PR #625&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: to support regex for active? &amp;amp; time_left PR #590&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: add implicit NPC death monitoring PR #588&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: change PSM to be stored as type.mnemonic PR #587&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: strip_xml multiline fix PR #584&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: fix sack detection to use Stash.container(param) PR #578&lt;br /&gt;
-o- [GS4] - [spell.rb] feat: Spell.after_stance #644 &lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: for Claim module #646&lt;br /&gt;
-o- [GS4] - [infomon] feat: track Voln favor via RESOURCE output #648&lt;br /&gt;
-o- [GS4] - [gameobj.rb] feat: add Bandit hidden target API #650&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: proper leader detection from GROUP output&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back depracted Char.maxvitals with msging to switch to new Char.max_vitals methods&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: group.check syntax change&lt;br /&gt;
-o- [GS4] - [spell.rb] bugfix: affordable? Char.mana parenthesis logic&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] -  feat: sqlite3 gem syntax code cleanup PR#553&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: remove unused Setting, GameSetting, CharSetting PR#542&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: scrub login key from error message popups PR#548&lt;br /&gt;
-o- [All] - [messaging.rb] bugfix: color mismatch WizardFE white txt PR#554&lt;br /&gt;
-o- [All] - [lich.rb] feat: add new Lich.deprecated method to aid in deprecating older API calls PR#523&lt;br /&gt;
-o- [GS4] - [char.rb] feat: log method_missing calls PR#552&lt;br /&gt;
-o- [GS4] - [char.rb] feat: add missing global_def related methods PR#523&lt;br /&gt;
-o- [GS4] - [global_defs.rb] feat: deprecate various Char module methods PR#523&lt;br /&gt;
-o- [GS4] - [spellsong.rb] bugfix: cache spellsong duration calc PR#551&lt;br /&gt;
-o- [GS4] - [effects.rb] feat: Effects module breakout PR#549&lt;br /&gt;
-o- [GS4] - [group.rb][disk.rb] feat: Group &amp;amp; Disk class PR#532&lt;br /&gt;
-o- [GS4] - [activespell.rb] feat: add duration change messaging, off by default, see ;help for details PR#487&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add Game:Character to debug log file ouput&lt;br /&gt;
-o- [All] - [init.rb] feat: add milliseconds to debug filename&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: reorder parsing of $SERVERSTRING to avoid certain conflicts&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: update for new Empath resource and sleep/bind messaging&lt;br /&gt;
-o- [GS4] - [status.rb] bugfix: bound? calmed? and sleeping? support for spellnames flag being off&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: additional creature dying messaging to check against XML dead not being sent&lt;br /&gt;
-o- [GS4] - [gameobj.rb] bugfix: remove sorcerer arms and animates from GameObj.targets&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - Ruby 3.3 compatibility&lt;br /&gt;
-o- [All] - [lich.rbw] feat: adds .sources for up/downstream hooks&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: don&#039;t use WINE for custom frontends&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back Char.stance&lt;br /&gt;
-o- [GS4] - [claim.rb] feat: new module and associated changes to xmlparser&lt;br /&gt;
-o- [GS4] - [experience.rb] feat: percent experience options&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow for negative TNL exp value&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow hyphenated last names in character names&lt;br /&gt;
-o- [GS4] - [parser.rb] feat: update resource matching for new Bard service&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: catch more shield removal messages&lt;br /&gt;
-o- [GS4] - [util.rb] bugfix: underscore issue for PSMs&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.7.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Supports Ruby 3.2 - security enhancements and huge speed improvements for regex&lt;br /&gt;
-o- New libraries/modules/classes: Account, HMR (Hot Module Reloading)&lt;br /&gt;
-o- GS4 Infomon now baked into Lich5 as a library, no more need to run standalone script&lt;br /&gt;
-o- New GS4 libraries/modules/classes: Ascension, Bounty, Currency, Experience, Resources, Society, Status, Warcry&lt;br /&gt;
-o- Updates to existing libraries/modules/classes: Armor, Util, Weapon, Spell, GameObj, Messaging&lt;br /&gt;
-o- Several Bugfixes for lots of things&lt;br /&gt;
-o- Lots of code cleanup&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML errors&lt;br /&gt;
-o- Adds the DR Plat instance for Frostbite FE&lt;br /&gt;
-o- Adds ‘ball’ as the noun used for ‘ball and chain’&lt;br /&gt;
-o- Adds the movement result ‘slip in the mud and fall flat’&lt;br /&gt;
-o- Corrects stamina cost for the feature Dispel Magic&lt;br /&gt;
-o- Plus all the latest script updates from Elanthia-Online!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML to limit login errors (DR)&lt;br /&gt;
-o- Fix for XMLData.active_spells to properly register wizard &#039;recovery&#039; spell cooldowns&lt;br /&gt;
-o- Messaging updates to remove error in Wizard FE encodings&lt;br /&gt;
-o- Corrects for error in detecting PSM skill changes (cman) via warrior / rogue guild lessons&lt;br /&gt;
-o- Deprecates LNet script from master repository&lt;br /&gt;
-o- Miscellaneous small bug squashing&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.6.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- (DragonRealms) Support for Genie and Frostbite frontends&lt;br /&gt;
-o- (GemStone) Changed methods to improve ;go2 speed and reduce lich.db3 calls&lt;br /&gt;
-o- (GemStone) Updates to support silver_count function&lt;br /&gt;
-o- (Both) Changed method for updating lich ecosystem&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.5.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for DragonRealms&lt;br /&gt;
-o- Updated support for scripts like BigShot&lt;br /&gt;
-o- Providing the LichID and UID on Profanity&lt;br /&gt;
-o- Spell.force_incant, .force_channel, and .force_evoke&lt;br /&gt;
-o- Standardized message method for script authors&lt;br /&gt;
-o- Sundry small improvements / fixes and changes&lt;br /&gt;
-o- And the creme de la creme - a custom directory&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.4.0&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Simu Room IDs (formally called &#039;unique ID&#039; or &#039;uid&#039; for Lich) added to Map, mapDB where known, and ;go2 for navigation (courtesy Xanlin and with our thanks!) ;go2 u7120 for all you ex-GMs out there. &lt;br /&gt;
-o- Room titles will now display the Lich ID and / or the UID for the room based on user selections - default is on for both, and enabled / disabled via Lich.display_lichid or Lich.display_uid toggles that can be set to on / off or true / false. (;e Lich.display_lichid=true/false and ;e Lich.display_uid=true/false) You can remove that rnum from your autostart now! To gain the benefit of the UID deployment, be sure to ;repo download-mapdb&lt;br /&gt;
-o- REQUESTS: Drop 5 minute timeout function from Lich&lt;br /&gt;
-o- waitrt? and waitcastrt? will still pause activities, but will return TRUE or FALSE in keeping with the Ruby functionname? tradition (no more failing to get a weapon out due to RT from climbing!)&lt;br /&gt;
-o- empty_hands and fill_hands will now check to see if the character is in roundtime before trying to put away or retrieve held items&lt;br /&gt;
-o- Infomon received an update that keeps spell timers in sync with the information received from the server - no more need to immediately do a spell active in game to get the right times to display for various legacy scripts and ;magic after visiting the invoker or using an SK item&lt;br /&gt;
-o- Lich now provides a facility to get current coins on the character that is a bit more agnostic to data changes from Simu - Lich::Util.silver_count&lt;br /&gt;
-o- Various other small tidbits to help ease maintenance and future development&lt;br /&gt;
-o- PLEASE NOTE:  This update is required for the newest Bigshot (released today!) and for future eloot and eherbs scripts (release RSN)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.3.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Added support for Wrayth (renamed Stormfront) installations &lt;br /&gt;
-o- Converted Linux | WINE login methods to &#039;method 0&#039;, does not use Simu launcher&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.2.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for STOWing items irrespective of special item scripts&lt;br /&gt;
-o- Improved query support for Effects and CMans&lt;br /&gt;
-o- Fix Lich bug to respect the &#039;groupmovement&#039; flag in game&lt;br /&gt;
-o- Fix Lich round time calculations (more aggressive timing)&lt;br /&gt;
-o- Dark Mode is now a thing&lt;br /&gt;
-o- Lich4 Style GUI layout available&lt;br /&gt;
-o- Several file location changes to support future code change efforts&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.19&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Benefit: Monks with Mental Acuity (all 3 of you) rejoice - stamina casting!&lt;br /&gt;
-o- Benefit: PSM3 included, no charge. No hair remaining, either!&lt;br /&gt;
-o- Benefit: Ok, stay seated: Some of your various SF spell duration windows may work. . . better? Yes, not perfect, but better. No pictures, please!&lt;br /&gt;
-o- Updated infomon that properly detects Cloak of Shadows on those pesky sorcerers, and the Raise Dead Cooldown periods for those wondrous clerics.&lt;br /&gt;
-o- A new update process for Lich 5 - tired of having to download that script over and over just to update? Get yourself a copy of lich5-update.lic. Note, if you already have it, you&#039;re set! If not - ;jinx script install lich5-update --repo=elanthia-online&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Updated the method used to log onto SIMU servers.&lt;br /&gt;
-o- Added the Animalist item specifics to Lich5&#039;s empty and fill hands routines&lt;br /&gt;
-o- Improved Invoker messages for Avalon and Wizard FEs (no change for SF FE)&lt;br /&gt;
-o- Improved cleanup and store methods when player EXIT&#039;s or QUIT&#039;s game&lt;br /&gt;
-o- Crafted two new methods (stash_hands and equip_hands) for future script use&lt;br /&gt;
-o- Some behind-the-scenes cleanup to improve maintaining the Lich5 ecosystem&lt;br /&gt;
-o- Add Spell Active improvements&lt;br /&gt;
-o- Add PSM and Ranger improvements&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
* [[Mac Installation - Lich (software)]]&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
[[Category:New Player]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Barkskin_(605)&amp;diff=264726</id>
		<title>Barkskin (605)</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Barkskin_(605)&amp;diff=264726"/>
		<updated>2026-08-31T16:56:21Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: add summary tables&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Spell&lt;br /&gt;
 | mnemonic = BARKSKIN&lt;br /&gt;
 | custdur = {{Spellbox block | duration = 60 sec | span = [[Solid block]], 5 min cooldown}}&lt;br /&gt;
 | type = Defensive&lt;br /&gt;
 | subtype = Absorb&lt;br /&gt;
 | ds = None&lt;br /&gt;
 | td = None&lt;br /&gt;
 | enhancement = absorb next offensive action&lt;br /&gt;
 | availability = all&lt;br /&gt;
 | navigation = {{Ranger base navigation}}&lt;br /&gt;
}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;section begin=description /&amp;gt;&amp;lt;noinclude&amp;gt;&#039;&#039;&#039;Barkskin&#039;&#039;&#039; allows&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;Allows&amp;lt;/includeonly&amp;gt; the Ranger to surround themselves with a thick layer of bark, which will absorb the next instance of a physical [[attack]], [[SMRv2|SMRv2 maneuver]], [[bolt]] spell, or [[warding]] spell that would have otherwise successfully struck them.&amp;lt;section end=description /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On attacks that would have only moderately been successful, the bark has a &#039;&#039;&#039;50 + ([[Spiritual Lore, Blessings]] ranks / 2) %&#039;&#039;&#039; chance of enduring. Moderate success is defined as a successful [[endroll]] threshold of no more than &#039;&#039;&#039;20 + ([[Survival]] skill / 10)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! [[Spiritual Lore, Blessings]] ranks&lt;br /&gt;
| 0 || 10 || 20 || 30 || 40 || 50 || 60 || 70 || 80 || 90 || 100&lt;br /&gt;
|-&lt;br /&gt;
! Chance to endure&lt;br /&gt;
| 50% || 55% || 60% || 65% || 70% || 75% || 80% || 85% || 90% || 95% || 100%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! [[Survival]] skill&lt;br /&gt;
| 100 || 150 || 200 || 250 || 300 || 350 || 400&lt;br /&gt;
|-&lt;br /&gt;
! Moderate success endroll threshold&lt;br /&gt;
| 130 || 135 || 140 || 145 || 150 || 155 || 160&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Barkskin has a five minute character-specific cooldown after successfully absorbing an effect during which that character may not gain Barkskin again.&lt;br /&gt;
&lt;br /&gt;
{{Usage-evoke-self|s=605|d=to cast a [[group]] version of the spell for 15 mana, at 50 ranks of [[Spiritual Lore, Blessings]]}}&lt;br /&gt;
== Lore Benefits ==&lt;br /&gt;
Training in [[Spiritual Lore, Blessings]] increases the chance of Barkskin enduring past the initial absorb at a rate of +1 per 2 ranks, for moderate attack successes only.&lt;br /&gt;
&lt;br /&gt;
Additionally, at 15 Blessings lore ranks, the Ranger may {{boldmono|COMMUNE}} with nature to cast the spell while incapacitated (but not while in [[roundtime]]) once per hour. &lt;br /&gt;
&lt;br /&gt;
At 50 Blessings lore ranks, the Ranger may {{boldmono|[[EVOKE]]}} the spell to affect the Ranger’s entire group for 15 [[mana]].&lt;br /&gt;
&lt;br /&gt;
== Messaging == &lt;br /&gt;
;Cast&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
You gesture.&lt;br /&gt;
A knobby layer of bark swiftly forms on you.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Cast, on cooldown&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
You gesture.&lt;br /&gt;
A knobby layer of bark begins to form on you, but rapidly crumbles away.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Absorb&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
TARGET tries to bite you!&lt;br /&gt;
The layer of bark on you hardens and absorbs the attack!  The bark crackles as it crumbles to dust.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[/saved posts | Saved Posts]] &lt;br /&gt;
* [[Ranger Base/saved posts]]&lt;br /&gt;
* [http://forums.play.net/forums/GemStone%20IV/Professions/Ranger/view Officials folder]&lt;br /&gt;
&lt;br /&gt;
[[Category:Ranger]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=High_End_Scrip_Shop/shop_list_August_2026&amp;diff=264352</id>
		<title>High End Scrip Shop/shop list August 2026</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=High_End_Scrip_Shop/shop_list_August_2026&amp;diff=264352"/>
		<updated>2026-08-21T17:54:19Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: add SK/MK list from discord announcement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;alert alert-info&amp;quot;&amp;gt;&amp;lt;center&amp;gt;&#039;&#039;&#039;For general information, including travel and activities, see: [[:Category:Duskruin|Duskruin]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;[[High End Scrip Shop/shop list August 2026|High End Scrip Shop Listing]]&amp;lt;/big&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{TOCright|limit=2}}&lt;br /&gt;
[[Image:Duskruin Arena 202208.png|600px|center|Bloodriven Village grounds map by Rozy and MiceSqueaks.  Updated by Arenglae on 8/16/22.|alt=The map is a representational depiction of the in-game rooms for Bloodriven Village and its Duskruin Arena, using primarily black and blue on white with several rooms numbered.  Labeled portions of the map include the Kraet Encampment, the Caligae of the Colossus, the Sewers entrance, the Celestial Temple, the Dueling Sands, and where to exit to return to town.]]&lt;br /&gt;
{{big|&#039;&#039;&#039;All prices in [[bloodscrip]].}}&amp;lt;br&amp;gt;&lt;br /&gt;
Many services that were previously located in the High End Scrip Shop can now be found in its automated counterpart, [[BVShop:The Annex|the Annex]].&lt;br /&gt;
{{#section:Category:Duskruin|refunds}}&lt;br /&gt;
&lt;br /&gt;
[[Category:HESS lists]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NoTOC__&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{Tempshop&lt;br /&gt;
|look=a dimly lit tunnel |realrnum= 8213008|mapid= |rnum= |portal= dimly tunnel}}&lt;br /&gt;
===Duskruin Arena, Scrip Shop===&lt;br /&gt;
{{RoomDescription|&lt;br /&gt;
|roomname=Duskruin Arena, Scrip Shop&lt;br /&gt;
|desc=Luminescent green moss lines the slick stone walls of this small chamber and provides adequate lighting despite a lack of windows or candles.  Thin pathways between various sized containers and tables impede navigation to a beaded curtain. You also see a faded blue tanik strongbox, a battered wooden treasure chest, a weathered rowan crate, a metal-framed dark walnut display, a knotted length of hemp rope and a very important sign.&lt;br /&gt;
|realrnum= 8212527&lt;br /&gt;
|rnum= &lt;br /&gt;
|exits= &lt;br /&gt;
|paths= out}}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{sign|margin-right=40%|sign=&#039;&#039;&#039;a very important sign&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Traveling&lt;br /&gt;
In the Common language, it reads:&lt;br /&gt;
On purchased services in HESS, if the certificate is unredeemed, the refund request must be made within 24 hours of purchase.  If the certificate is redeemed, the refund request must be made within 24 hours of the service being applied.&lt;br /&gt;
 &lt;br /&gt;
There is a 10% bloodscrip fee for all refunds/exchanges.&lt;br /&gt;
 &lt;br /&gt;
Certificates purchased via ATTUNE will permanently attune both the certificate AND any item they are applied to to the account of the purchaser of the certificate.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
{{big|&#039;&#039;&#039;Some items sold in this shop may be purchased with account attunement for a discounted price (Prime only).  [[Item_attunement#Purchase_Attunement|Attunement]] is permanent and cannot be removed.}}&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Attunement Discount Legend&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Account attunement available for a 25% discount.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Container2||container=In the blue tanik strongbox you see:||contents= a faded activator receipt, a bronzed boot, an ink black armor knickknack, an ink black sword gaud, a small capyxita postcard, a bubble-shaped contract, an ivory castle miniature, a faceted crystal icicle, a miniature bronze awl, and a miniature clockwork crossbow.}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable col-3-right&amp;quot; {{prettytable}} style=&amp;quot;width: 80%;&amp;quot; aria-label=&amp;quot;In a faded blue tanik strongbox&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;max-width: 25%;&amp;quot; | Item &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;max-width: 15%;&amp;quot; | Type &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Info &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 40%;&amp;quot; | Details &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Price &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a faded activator receipt ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: MIU Activator Change&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887507&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887507&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A faded activator receipt will grant the ability to change the activation verb (tap/rub/wave/raise) on an item.  Requested activator must be eligible for the spell.  Please note that items with the &amp;quot;multi-wand&amp;quot; script are ineligible for this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 25,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a bronzed boot ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Convert Non-UCS to UCS&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887506&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887506&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A bronzed boot grants the ability to convert unscripted, non-UCS handwear/footwear to the UCS equivalent in the same slot.  The handwear/footwear must be made of plain cloth or plain leather.  The boot can be redeemed with pocketed items, but the container property will be removed.  Cobbled and Enhancive items are permitted, but no other original item properties will carry over to the UCS item.  Flare Gloves can be converted to UCS using a kaleidoscopic rune expression.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 5,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ink black armor knickknack ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Ethereal Armor Add&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887505&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887505&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ink black armor knickknack entitles the redeemer to add the Ethereal Armor script to an existing armor piece at Tier 1/OTS with no additional unlocks.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 250,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ink black sword gaud ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Ethereal Weapon Add&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887504&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887504&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ink black sword gaud entitles the redeemer to add the Ethereal Weapon script to an existing weapon at Tier 1/OTS with no additional unlocks.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 187,500&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a small capyxita postcard ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Prop Spell Circle Change&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887503&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887503&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A small capyxita postcard will grant the ability to change the spell circle on an existing spell prep prop to another spell circle.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 5,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a bubble-shaped contract ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Minor Bubble Flare Potency&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887502&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887502&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A bubble-shaped contract will grant +1 (cap of +50) to an existing bubble-flared weapon.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 12,500*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ivory castle miniature ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Elven Armor Script Add&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887501&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887501&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ivory castle miniature will grant the ability to add the Elven Armor script to eligible (unscripted) armor at Tier 1 with no unlocks.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 50,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a faceted crystal icicle ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Climatewear Script Add&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887500&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887500&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A faceted crystal icicle will grant the ability to add the Climatewear script to an eligible worn container at Tier 1 with no additional unlocks.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 40,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a miniature bronze awl ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: AG Change&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887499&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887499&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A miniature bronze awl will grant the user the ability to change armor to another armor group.  Some items may be ineligible due to scripts.  If the existing material is not valid for the new armor group, it will be converted to a standard material (e.g. going from full plate to double leathers will change the material into standard leather. All requests will be reviewed before final approval and could result in the inability to change the AG group.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 300,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a miniature clockwork crossbow ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Mechanical Xbow Script Add&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887498&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887498&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A miniature clockwork crossbow will grant the ability to add the Mechanical Crossbow script to eligible, unscripted mechanical crossbows at Tier 1 with no additional unlocks.  Hand crossbows are ineligible.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 50,000*&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Container2||container=In the wooden treasure chest you see:||contents= a palm-sized golvern sundial, a brass-traced armillary sphere, a petrified seedpod, a tiny cedar trail marker, a palm-sized obsidian effigy, a dull blue sheet, a tiny mithril anvil, a kaleidoscopic rune expression, a miniature ink-splattered book, a lesser transmutation message, a fusion adding agreement, and a rusting helmet-shaped curio.}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable col-3-right&amp;quot; {{prettytable}} style=&amp;quot;width: 80%;&amp;quot; aria-label=&amp;quot;In a battered wooden treasure chest&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;max-width: 25%;&amp;quot; | Item &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;max-width: 15%;&amp;quot; | Type &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Info &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 40%;&amp;quot; | Details &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Price &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a palm-sized golvern sundial ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Script Add - Solar Weapon&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-300522782&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-300522782&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A palm-sized golvern sundial will grant the ability to add the Solar Weapon script to an eligible unscripted Weapon.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 50,000&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a brass-traced armillary sphere ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Script Add - Nebular Weapon&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-300519972&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-300519972&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A brass-traced armillary sphere will grant the ability to add the Nebular Weapon script to an eligible unscripted Weapon.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 50,000&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a petrified seedpod ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Script Add - Phytomorphic Weapon/Shield&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-300507958&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-300507958&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A petrified seedpod will grant the ability to add the Phytomorophic script to an eligible unscripted Weapon or Shield.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 50,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a tiny cedar trail marker ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Script Add - Survivalist Kit&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887496&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887496&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A tiny cedar trail marker will grant the ability to add the Survivalist&#039;s Kit script to an eligible unscripted item.  Item must be a shoulder-worn or belt-worn container.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 50,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a palm-sized obsidian effigy ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Script Add - Nightbringer&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887495&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887495&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A palm-sized obsidian effigy grants the Nightbringer script at Tier 1/OTS to an unscripted weapon.  UCS gear (boots/gloves) is ineligible.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 50,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a dull blue sheet ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: DB Transfer&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887494&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887494&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A dull blue sheet will move defensive bonus (DB) from one eligible DB item to another eligible DB item.  Weapons are not eligible.  Zelnorn and urglaes items are not eligible.  The target item cannot exceed +50 DB.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 25,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a tiny mithril anvil ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Reforge Weapon&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887493&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887493&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A tiny mithril anvil will grant the user the ability to change a weapon to another within the same category (OHE, OHB, etc.)  Reforging into a claidhmore is not possible, but you can reforge out of it and lose 40 CER.  Some restrictions may apply, especially in the case of scripted items.  All conversion requests will be reviewed before final approval and could result in the inability to reforge the requested weapon.  If the item has over 20 CER, the reforged weapon will be reduced to 20 CER.  Both the old and new weapon must use exactly the same weapon skill.  In addition, the new weapon will be reforged into the new base and use an appropriate noun for that base.  Some scripts will prevent a weapon from being reforged, including Arcane Sidearms.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 200,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a kaleidoscopic rune expression ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Non-UCS FlareGloves to UCS&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887492&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887492&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A kaleidoscopic rune expression will grant the ability to convert non-UCS FlareGloves to UCS (hand-worn).  The original gloves must be made of plain cloth or plain leather.  All unlocked flares and addons, pockets, and enhancive properties will carry over.  Conversion does not include an alteration, but the existing noun and/or material may be changed if found to be unsuitable for UCS hand-worn items.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 20,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a miniature ink-splattered book ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Convert Spell Circle Item to Tattoo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887491&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887491&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A miniature ink-splattered book will grant the ability to convert a Spell Circle Enhancive item to an existing tattoo.  The tattoo must not already be enhancive, and must not be scripted.  The origin item will be preserved, but lose the Spell Circle Enhancive property.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 25,000&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a lesser transmutation message ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Lesser Transmutation&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887490&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887490&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A lesser transmutation message will grant the ability to have one item transmuted to another item&#039;s material.  The two items must be of the same material type (metal to metal, wood to wood, etc.) and the transmuted material cannot have any innate properties (ie: no sephwir, coraesine, etc.)  This will NOT affect enchant, flares, or any other properties that either item may or may not have.  Please note that the item weight is reset to the base weight of the new material.  This change may result in updates to reflect the new material, but a full alteration is not included in this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 15,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a fusion adding agreement ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Fusion Add&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887489&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887489&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A fusion adding agreement will grant the ability to add the fusion script with 2-slots to a non-fusion armament.  UCS equipment is ineligible.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 250,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a rusting helmet-shaped curio ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Convert Helm to Helm&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887488&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887488&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A rusting helmet-shaped curio will grant the ability to convert one helm type into another helm type.  (eg. A Helm into a Greathelm, for instance.)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 5,000*&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Container2||container=In the rowan crate you see:||contents= a folded shield resize bill, a defender boost slip, a fresh defender label, a miniature obsidian inkpot, a silvery asg change proclamation, an ink-stained napkin, a lump of pure coraesine ore, a dog-eared leather primer, a small chunk of pumice, and a twisted hawthorn branch.}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable col-3-right&amp;quot; {{prettytable}} style=&amp;quot;width: 80%;&amp;quot; aria-label=&amp;quot;In a weathered rowan crate&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;max-width: 25%;&amp;quot; | Item &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;max-width: 15%;&amp;quot; | Type &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Info &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 40%;&amp;quot; | Details &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Price &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a folded shield resize bill ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Shield Resize&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887486&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887486&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A folded shield resize bill grants the ability to have your shield resized.  (Previous &amp;quot;one step&amp;quot; requirement has been removed.)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 25,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a defender boost slip ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Defender Boost&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887485&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887485&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A defender boost slip will grant the ability to increase a defender item by +1.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 25,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a fresh defender label ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Defender Add&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887484&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887484&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A fresh defender label will grant the addition of the defender ability to an eligible weapon, beginning with +2.  The item must not already be a defender item or have an existing property that would otherwise render the item ineligible (ie: an existing flare).  This ability is capped at +50.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 100,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a miniature obsidian inkpot ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: SK/MK Item to SK/MK Tattoo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887483&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887483&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A miniature obsidian inkpot will grant the ability to convert an SK (self-knowledge) or MK (martial knowledge) item to an existing SK or MK Tattoo.  Source item will be deleted.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 25,000&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a silvery asg change proclamation ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Armor ASG Change&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887482&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887482&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A silvery asg change proclamation grants the ability to have your armor subgroup changed to another subgroup within the group (cloth, leather, scale, chain, or plate). There may be some exclusions.  Karma Armor, for example, is ineligible.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 150,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ink-stained napkin ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: X-Day Item to Tattoo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887481&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887481&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ink-stained napkin will grant the ability to convert an x-day item into an x-day tattoo.  The tattoo must already exist and be unscripted.  This service does not include application of a tattoo.  This will also switch the activation from Magic Item Use to Arcane Symbols.  Note that while multi-wands are eligible, spells will lose the multi-cast benefit.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 5,000&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a lump of pure coraesine ore ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Pure Coraesine Ore&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887480&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887480&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A lump of pure coraesine ore will grant the user a bladed weapon of pure coraesine.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 400,000&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a dog-eared leather primer ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Skill Booster Enhancive&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887479&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887479&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A dog-eared leather primer will grant the user a 1x/day enhancive that grants +5 to any SKILL RANK for 10 minutes.  Subsequent purchases can be made to stack either the bonus (up to +20 total) or the uses per day.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 100,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a small chunk of pumice ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Rune Tattoo Spell Removal&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887478&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887478&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A small chunk of pumice will grant the user removal of a single spell from a rune tattoo.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 2,500&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a twisted hawthorn branch ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Rune Tattoo Spell Move&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188887477&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188887477&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A twisted hawthorn branch will grant the user the ability to move a single spell from one rune tattoo to another rune tattoo.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 2,500&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Container2||container=On the dark walnut display you see:||contents= an ingot of gornar, an ingot of zorchar, an ingot of rhimar, an ingot of drakar, an ingot of eonake, an ingot of adamantine, a twig of sephwir, a twig of faewood, an ingot of kroderine, an ingot of white alloy, an ingot of zelnorn, an ingot of somnis, and an ingot of obskruul.}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable col-3-right&amp;quot; {{prettytable}} style=&amp;quot;width: 80%;&amp;quot; aria-label=&amp;quot;On a metal-framed dark walnut display&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;max-width: 25%;&amp;quot; | Item &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;max-width: 15%;&amp;quot; | Type &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Info &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 40%;&amp;quot; | Details &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Price &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ingot of gornar ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Inter. Transmute to Gornar&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299949531&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299949531&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ingot of gornar will allow a valid item to be transmuted to gornar.  The item must meet all applicable restrictions of the transmuted material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  The item weight is reset to the base weight of the new material; the transmuted item will retain the enchant of the source item.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 20,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ingot of zorchar ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Inter. Transmute to Zorchar&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299949014&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299949014&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ingot of zorchar will allow a valid item to be transmuted to zorchar.  The item must meet all applicable restrictions of the transmuted material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  The item weight is reset to the base weight of the new material; the transmuted item will retain the enchant of the source item.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 20,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ingot of rhimar ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Inter. Transmute to Rhimar&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299947407&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299947407&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ingot of rhimar will allow a valid item to be transmuted to rhimar.  The item must meet all applicable restrictions of the transmuted material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  The item weight is reset to the base weight of the new material; the transmuted item will retain the enchant of the source item.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 20,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ingot of drakar ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Inter. Transmute to Drakar&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299941963&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299941963&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ingot of drakar will allow a valid item to be transmuted to drakar.  The item must meet all applicable restrictions of the transmuted material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  The item weight is reset to the base weight of the new material; the transmuted item will retain the enchant of the source item.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 20,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ingot of eonake ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Inter. Transmute to Eonake&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299936328&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299936328&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ingot of eonake will allow a valid item to be transmuted to eonake.  The item must meet all applicable restrictions of the transmuted material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  The item weight is reset to the base weight of the new material; the transmuted item will retain the enchant of the source item.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 20,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ingot of adamantine ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Transmute to Adamantine&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299930894&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299930894&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ingot of adamantine will grant the user the ability to transmute a valid armament to adamantine.  Runestaves, bows, and UCS gear (boots/gloves) are ineligible.  The item must meet all applicable restrictions of that material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  The item weight is reset to the base weight of the new material; the transmuted item will retain the enchant of the source item.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 75,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a twig of sephwir ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Inter. Transmute to Sephwir&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299920602&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299920602&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A twig of sephwir will allow a valid item to be transmuted to sephwir.  The item must meet all applicable restrictions of the transmuted material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  The item weight is reset to the base weight of the new material; the transmuted item will retain the enchant of the source item.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 100,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a twig of faewood ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Inter. Transmute to Faewood&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299916306&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299916306&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A twig of faewood will allow a valid item to be transmuted to faewood.  The item must meet all applicable restrictions of the transmuted material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  The item weight is reset to the base weight of the new material; the transmuted item will retain the enchant of the source item.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 20,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ingot of kroderine ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Transmute to Kroderine&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299836362&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299836362&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ingot of kroderine will grant the user the ability to transmute a valid armament to kroderine.  Runestaves, bows, and UCS gear (boots/gloves) are ineligible.  Any special abilities such as ensorcel, sanctification, etc., will be replaced with dispel flares (3 for weapons and shields, and 5 for armor).  The enchant is set to 22.  The item must meet all applicable restrictions of that material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  The item weight is reset to the base weight of the new material; the transmuted item&#039;s enchant will be +22, regardless of the original enchant.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 50,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ingot of white alloy ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Transmute to White Alloy&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299826419&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299826419&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ingot of white alloy will grant the user the ability to transmute a valid weapon to white alloy.  Weapons only - runestaves, bows, and UCS gear (boots/gloves) are ineligible.  The item must meet all applicable restrictions of that material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  The item weight is reset to the base weight of the new material; the transmuted item will retain the enchant of the source item.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 125,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ingot of zelnorn ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Transmute to Zelnorn&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299821389&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299821389&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ingot of zelnorn will grant the user the ability to transmute a valid armament (no greater than 10x) to zelnorn.  Armor accessories, runestaves, bows, and UCS gear (boots/gloves) are ineligible.  The existing enchant bonus is split between the AS/DS bonus, and any special ability will be lost.  The item must meet all applicable restrictions of that material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  The item weight is reset to the base weight of the new material; the transmuted item will retain the enchant of the source item.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.  This service is retiring after August 2024.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 100,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ingot of somnis ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Transmute to Somnis-Greater&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299814602&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299814602&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ingot of somnis will grant the user the ability to transmute a valid weapon to somnis.  The item must meet all applicable restrictions of that material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  There is a 25% surcharge for katanas and naginatas and a 50% surcharge for claidhmores.  The item weight is reset to the base weight of the new material; the transmuted item will retain the enchant of the source item.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.  Some items could be ineligible due to existing scripts or properties.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 300,000*&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | an ingot of obskruul ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Transmute to Obskruul&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-299781980&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-299781980&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
An ingot of obskruul will grant the user the ability to transmute a valid metal weapon, armor, or shield to obskruul.  The item must meet all applicable restrictions of that material to be valid for the service.  Some items may be ineligible and might not be assessed until after redemption.  All final transmutes will be at the highest tier of the end material, if applicable.  There is a 25% surcharge for katanas and naginatas and a 50% surcharge for claidhmores.  The item weight is reset to the base weight of the new material; the transmuted item will retain the enchant of the source item.  This material change may result in updates to reflect the new material, but a full alteration is not included in this service.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 75,000*&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
===Scrip Shop, Upstairs===&lt;br /&gt;
{{RoomDescription|&lt;br /&gt;
|roomname=Scrip Shop, Upstairs&lt;br /&gt;
|desc=The tall metal-framed windows enclosing the room have been boarded shut, the iron nails sticking out in irregular angles to create makeshift hooks.  Heavy, hole-ridden sheets of green velvet loosely cover a series of pristine wooden crates, the fabric pooling across the knitted rugs covering the dusty planks.  A pair of driftwood-carved sculptures flank a gilt-painted curio in the far corner, the open doors draped in a fine layer of brittle cobwebs. &lt;br /&gt;
|realrnum= 8212997&lt;br /&gt;
|rnum= &lt;br /&gt;
|exits= &lt;br /&gt;
|paths= down}}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Container2||container=In the gilt-painted curio you see:||contents= a shield-inked paper and a dagger-inked pell.}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable col-3-right&amp;quot; {{prettytable}} style=&amp;quot;width: 80%;&amp;quot; aria-label=&amp;quot;In a gilt-painted curio&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;max-width: 25%;&amp;quot; | Item &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;max-width: 15%;&amp;quot; | Type &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Info &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 40%;&amp;quot; | Details &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Price &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a shield-inked paper ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Add MK Attack to Tattoo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188892027&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188892027&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A shield-inked paper will allow the redeemer to add a Martial Knowledge (MK) Attack to an existing tattoo.  This MK will begin at Rank 1.  Berserk is not eligible for selection.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 200,000&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot; | a dagger-inked pell ||style=&amp;quot;vertical-align: top; white-space: nowrap;&amp;quot;| &lt;br /&gt;
|style=&amp;quot;vertical-align: top; text-align: left;&amp;quot;| &amp;lt; 1 lb&amp;lt;br&amp;gt; ||style=&amp;quot;width: 40%; vertical-align: top; text-align: left;&amp;quot;| &amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: 0; margin: 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Service: Add MK Setup to Tattoo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt; &amp;lt;div class=&amp;quot;mw-customtoggle-188892026&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;text-decoration: underline&amp;quot;&amp;gt;Analyze&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-188892026&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Analyze:&#039;&#039;&#039;&amp;lt;pre style=&amp;quot;border: none; font-family: sans-serif; padding: .5em; margin: .25em 0;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A dagger-inked pell will allow the redeemer to add a Martial Knowledge (MK) Setup to an existing tattoo.  This MK will begin at Rank 1.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 |style=&amp;quot;white-space:nowrap; vertical-align: top; text-align: right;&amp;quot;| 300,000&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
===Scrip Shop, Meditation Room===&lt;br /&gt;
{{RoomDescription|&lt;br /&gt;
|roomname=Scrip Shop, Meditation Room&lt;br /&gt;
|desc=Quarantined from the chaos of the adjacent chamber, sizable throws of snow leopard fur line both the floor and walls, meticulously aligned to create a hypnotizing pattern of dark spots.  Stone pedestals inlaid with ur-barath sconces bear candles that release a gentle, soothing fragrance into the air, erasing all evidence of the musty scent in neighboring areas.  White fur rugs form a circle inside the pedestal boundary, each one spaced far enough from the next to allow for adequate distancing. You also see a perky bearded dabbler and a beaded curtain.&lt;br /&gt;
|realrnum= 8212719&lt;br /&gt;
|rnum= &lt;br /&gt;
|exits= &lt;br /&gt;
|paths= none}}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{sign|margin-right=40%|sign=&#039;&#039;&#039;a perky bearded dabbler&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
A perky bearded dabbler says, &amp;quot;I can remove certain properties on many items.  ASK ME about REMOVE to see what kinds of things I&#039;m able to do for you.  My standard fee is 5000 bloodscrip, but for a script that has no mechanical value whatsoever, I will charge you only 1000 bloodscrip.  The script must be one that I am familiar with, so if I am not, I&#039;ll have to get permission first.  It shouldn&#039;t take too long, though.&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Elegantly barrel-chested and graced with a flowing mane of flaxen tresses, a perky bearded dabbler is short of stature and nimble.  Her eyes reflect a good-natured flirtatiousness that is expressed in her ready smile and the gentle sway of her hips.  A plethora of bejeweled braids adorns her chin, though they have been parted into two groups to better show off her barely buttoned shirt, which is tucked into a pair of form-fitting leather trousers.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;== Duskruin SK/MK List for August 2026 ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Spell Knowledge&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Spell&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Spell Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Tier&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|515&lt;br /&gt;
|Rapid Fire&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|1109&lt;br /&gt;
|Empathic Focus&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|215&lt;br /&gt;
|Heroism&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|1202&lt;br /&gt;
|Iron Skin&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|605&lt;br /&gt;
|Barkskin&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|913&lt;br /&gt;
|Melgorehn&#039;s Aura&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|1606&lt;br /&gt;
|Dauntless&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|1711&lt;br /&gt;
|Mystic Focus&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|117&lt;br /&gt;
|Spirit Strike&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|608&lt;br /&gt;
|Camouflage&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|1705&lt;br /&gt;
|Martial Prowess&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|1408&lt;br /&gt;
|Astral Spear&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|1206&lt;br /&gt;
|Telekinesis&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|1706&lt;br /&gt;
|Flaming Aura&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|1204&lt;br /&gt;
|Foresight&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|510&lt;br /&gt;
|Hurl Boulder&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|1713&lt;br /&gt;
|Death Cloud&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|413&lt;br /&gt;
|Elemental Saturation&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|116&lt;br /&gt;
|Locate Person&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|1701&lt;br /&gt;
|Arcane Decoy&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|204&lt;br /&gt;
|Unpresence&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|203&lt;br /&gt;
|Manna&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|1205&lt;br /&gt;
|Glamour&lt;br /&gt;
|8&lt;br /&gt;
|}&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Martial Knowledge&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| MK Tattoo - Allowed Maneuvers&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Setups&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Attacks&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot;| Dirtkick || Exsanguinate&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot;| Sweep || Leap Attack&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot;| Divert || Coup de Grace&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot;| Dislodge || &lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot;| Haymaker || &lt;br /&gt;
|}&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Tempshop name::Duskruin Arena| ]]{{DEFAULTSORT:Duskruin Arena, Scrip Shop}}[[Category:Traveling August 2026 shops]][[Category:HESS lists]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Leybound_Compass&amp;diff=264348</id>
		<title>Leybound Compass</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Leybound_Compass&amp;diff=264348"/>
		<updated>2026-08-21T16:33:58Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: update release venue and year&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;td&amp;gt;&amp;lt;!-- Please see Help:Item scripts page for instructions on how to properly create and format an item page.--&amp;gt;&lt;br /&gt;
The &#039;&#039;&#039;Leybound Compass&#039;&#039;&#039; is a scripted pin that provides various time-related mechanical effects based on its tier.  Unlike items that are powered by feeding them other magic items, the compass draws on the wearer&#039;s own spells and combat flares.  At tier 1, the compass can extend the duration of the wearer&#039;s beneficial spells.  At tier 2, the compass can force every effect with a standard flare chance to trigger at once on the wearer&#039;s next attack.  At tier 3, the compass grants a passive chance on attack to slow the target and hasten the wearer, and can guarantee this effect for a short time on demand.  And at tier 4, the compass allows the wearer to recall an alternate version of a recently-visited room, along with the vitals they had when they left it.  The Leybound Compass was sold in the [[BVShop:Once Upon a Time|Once Upon a Time]] shop. &amp;lt;!-- Confirm exact shop/merchant name before publishing. --&amp;gt;&lt;br /&gt;
{{stub}}&lt;br /&gt;
{{TOC limit|2}}&lt;br /&gt;
{{itemtier &amp;lt;!-- Copy/Paste x #Tier for item as needed. --&amp;gt;&lt;br /&gt;
|tier=Tier 1/OTS &amp;lt;!-- REQUIRED:  Must be entered as Tier # or Tree (Name) --&amp;gt;&lt;br /&gt;
|itemsummary=An OTS Leybound Compass grants Stretch Time.  {{boldmono|STRETCH}} extends the duration of the wearer&#039;s beneficial spells -- both spells the wearer knows and any granted by Invoker -- by 30 minutes, subject to each spell&#039;s normal maximum duration (4 hours for most spells, 60 seconds for Haste, etc.).  Usable once every 2.5 hours. &amp;lt;!-- Brief explanation of what this tier does, if any. --&amp;gt;&lt;br /&gt;
|analyze= &amp;lt;!-- DRAFT: no confirmed in-game ANALYZE text was available in the source material; the below is constructed from the creator&#039;s mechanical descriptions and should be replaced with actual game text once available. --&amp;gt;&lt;br /&gt;
You analyze the dented brass compass and sense that the creator has provided the following information:&lt;br /&gt;
&lt;br /&gt;
{{blue|OVERVIEW}}&lt;br /&gt;
&lt;br /&gt;
Hello there, intrepid player!  This dented brass compass is a Leybound Compass item.  Rather than being fed other magical items, this compass draws on your own spells and combat flares to bend time in your favor.&lt;br /&gt;
&lt;br /&gt;
{{blue|UNLOCKS}}&lt;br /&gt;
&lt;br /&gt;
Tier 1 - OTS.  STRETCH extends the duration of your beneficial spells (both spells you know and any granted by Invoker) by 30 minutes, subject to each spell&#039;s normal duration cap.  Usable once every 2.5 hours.&lt;br /&gt;
Tier 2 - TAP causes your next attack to trigger every effect with a standard flare chance at once (flares, ensorcells, weapon flares, etc.).  Effects that calculate their chance differently than a standard flare (such as lore flares) are excluded, as is Xaz.  3 minute cooldown.&lt;br /&gt;
Tier 3 - Adds a passive standard-flare-chance effect on attack: an SMR attempt against the target that, on success, inflicts a 3 second Slow and grants you a brief haste effect (reducing RT/Cast RT by 1, floor of 1 second).  RUB guarantees this flare for 30 seconds.  Usable once every 3 minutes.&lt;br /&gt;
Tier 4 - BESEECH recalls an alternate version of one of the last 10 rooms you&#039;ve visited -- prioritizing the room with the fewest creatures, breaking ties by distance -- provided a valid path exists.  You arrive restored to the health, mana, stamina, and spirit you had when you left that room, standing and unstunned.  Requires that you not be in roundtime or unconscious.  Usable once per login day.&lt;br /&gt;
&lt;br /&gt;
Currently this compass is {{blue|Tier 1}}&lt;br /&gt;
&lt;br /&gt;
COOLDOWNS:&lt;br /&gt;
Stretch Time: {{blue|READY}}&lt;br /&gt;
Temporal Alignment: {{blue|READY}}&lt;br /&gt;
Hastened Movements: {{blue|READY}}&lt;br /&gt;
Temporal Anchor: {{blue|READY}} &amp;lt;!-- Day-based rather than time-based; per the creator this cooldown does not display in the standard cooldowns list. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Per the creator: the guaranteed-flare effects from RUB and TAP appear in the buffs list, not the cooldowns list; only the ability cooldowns themselves appear under cooldowns. Confirm wording before publishing. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- RP-only verbs (comparable to the Mage&#039;s Gauntlet&#039;s ATTEND/FIDGET/HOLD/PINCH/PONDER) were not covered in the source material.  Add if/when confirmed. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ALTERING&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Alteration/customization details were not covered in the source material. --&amp;gt;&lt;br /&gt;
|affinity= &amp;lt;!-- Brief explanation of affinity for that specific tier, if any.  --&amp;gt;&lt;br /&gt;
|itemverbtable=Yes &amp;lt;!-- Answer YES if there are verbs associated with this tier.  If not, leave blank. --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{| {{verbtable}} &amp;lt;!-- REQUIRED if there are verbs for this tier.  For instructions on how to use this template, see Template:Verbtable. --&amp;gt;&lt;br /&gt;
|- {{verbtableheader|90}}&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:5em;&amp;quot;|Verb&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|First&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|Third&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|PIN&lt;br /&gt;
|&amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|&amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|UNPIN&lt;br /&gt;
|&amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|&amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;  role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|STRETCH&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;|Extends the duration of your beneficial spells (known + Invoker-granted) by 30 minutes, subject to each spell&#039;s normal duration cap.  Usable once every 2.5 hours.&lt;br /&gt;
|}&lt;br /&gt;
{{itemtier &amp;lt;!-- Copy/Paste x #Tier for item as needed. --&amp;gt;&lt;br /&gt;
|tier=Tier 2 &amp;lt;!-- REQUIRED:  Must be entered as Tier # or Tree (Name) --&amp;gt;&lt;br /&gt;
|itemsummary=At Tier 2, the Leybound Compass gains Temporal Alignment.  {{boldmono|TAP}} causes the wearer&#039;s next attack to trigger every effect with a standard flare chance at once -- flares, ensorcells, weapon flares, and similar effects.  Effects that calculate their chance differently than a standard flare (such as lore flares) are excluded, as is Xaz.  3 minute cooldown, tracked per character rather than per item. &amp;lt;!-- Brief explanation of what this tier does, if any. --&amp;gt;&lt;br /&gt;
|analyze= &amp;lt;!-- Tier 1/OTS required to be listed here.  Other tiers only to list changes between analyzes, and final unlock to be listed in full. --&amp;gt;&lt;br /&gt;
|affinity= &amp;lt;!-- Brief explanation of affinity for that specific tier, if any.  --&amp;gt;&lt;br /&gt;
|itemverbtable=Yes &amp;lt;!-- Answer YES if there are verbs associated with this tier.  If not, leave blank. --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{| {{verbtable}} &amp;lt;!-- REQUIRED if there are verbs for this tier.  For instructions on how to use this template, see Template:Verbtable. --&amp;gt;&lt;br /&gt;
|- {{verbtableheader|90}}&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:5em;&amp;quot;|Verb&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|First&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|Third&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;  role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|TAP&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt; As you tap your Leybound Compass, its needle begins to spin through a blur of possible moments.  Each flicker collapses into the next, gathering around you until the future converges upon a single point. &amp;lt;!-- Sourced from creator&#039;s own combat log; wording of &amp;quot;leystone compass&amp;quot; adjusted to match this article&#039;s item name -- confirm exact current wording before publishing. --&amp;gt;&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;|Triggers every effect with a standard flare chance at once on your next attack.  3 minute cooldown (character-based).&lt;br /&gt;
|}&lt;br /&gt;
{{itemtier &amp;lt;!-- Copy/Paste x #Tier for item as needed. --&amp;gt;&lt;br /&gt;
|tier=Tier 3 &amp;lt;!-- REQUIRED:  Must be entered as Tier # or Tree (Name) --&amp;gt;&lt;br /&gt;
|itemsummary=At Tier 3, the Leybound Compass gains Hastened Movements.  The wearer gains a passive standard-flare-chance effect on attack: an SMR attempt against the target that, on success, inflicts a 3 second Slow and grants the wearer a brief haste effect (reducing RT/Cast RT by 1, with a floor of 1 second).  {{boldmono|RUB}} guarantees this flare for 30 seconds.  3 minute cooldown. &amp;lt;!-- Brief explanation of what this tier does, if any. --&amp;gt;&lt;br /&gt;
|analyze= &amp;lt;!-- Tier 1/OTS required to be listed here.  Other tiers only to list changes between analyzes, and final unlock to be listed in full. --&amp;gt;&lt;br /&gt;
|affinity= &amp;lt;!-- Brief explanation of affinity for that specific tier, if any.  --&amp;gt;&lt;br /&gt;
|itemverbtable=Yes &amp;lt;!-- Answer YES if there are verbs associated with this tier.  If not, leave blank. --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{| {{verbtable}} &amp;lt;!-- REQUIRED if there are verbs for this tier.  For instructions on how to use this template, see Template:Verbtable. --&amp;gt;&lt;br /&gt;
|- {{verbtableheader|90}}&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:5em;&amp;quot;|Verb&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|First&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|Third&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;  role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|RUB&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material as a standalone message. --&amp;gt; {{addmetext}}&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;|Guarantees the Hastened Movements flare for 30 seconds.  Usable once every 3 minutes.&lt;br /&gt;
|}&lt;br /&gt;
{{itemtier &amp;lt;!-- Copy/Paste x #Tier for item as needed. --&amp;gt;&lt;br /&gt;
|tier=Tier 4 &amp;lt;!-- REQUIRED:  Must be entered as Tier # or Tree (Name) --&amp;gt;&lt;br /&gt;
|itemsummary=Fully unlocked, a Leybound Compass gains Temporal Anchor.  {{boldmono|BESEECH}} recalls an alternate version of one of the last 10 rooms the wearer has visited -- provided a valid path exists, prioritizing the room with the fewest creatures and breaking ties by distance -- restoring the wearer to the health, mana, stamina, and spirit they had when they left that room.  The wearer arrives standing and unstunned.  Usable while incapacitated so long as the wearer is not in roundtime and not unconscious.  Once per login day. &amp;lt;!-- Brief explanation of what this tier does, if any. --&amp;gt;&lt;br /&gt;
|analyze= &amp;lt;!-- Tier 1/OTS required to be listed here.  Other tiers only to list changes between analyzes, and final unlock to be listed in full. --&amp;gt;&lt;br /&gt;
|affinity= &amp;lt;!-- Brief explanation of affinity for that specific tier, if any.  --&amp;gt;&lt;br /&gt;
|itemverbtable=Yes &amp;lt;!-- Answer YES if there are verbs associated with this tier.  If not, leave blank. --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{| {{verbtable}} &amp;lt;!-- REQUIRED if there are verbs for this tier.  For instructions on how to use this template, see Template:Verbtable. --&amp;gt;&lt;br /&gt;
|- {{verbtableheader|90}}&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:5em;&amp;quot;|Verb&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|First&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|Third&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;  role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|BESEECH&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;|Recalls an alternate version of a recently-visited room and restores prior vitals.  Requires the wearer not be in roundtime or unconscious.  Once per login day.&lt;br /&gt;
|}&lt;br /&gt;
* &amp;lt;!-- Insert link to the Discord release discussion thread here. --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
{{iteminfo&lt;br /&gt;
|type=Mechanical &amp;lt;!-- REQUIRED: Mechanical or Fluff.  OPTIONAL: If an item is feature altering or crafting, as well, please enter &amp;quot;Feature altering&amp;quot; or &amp;quot;crafting&amp;quot; below this line for &amp;quot;type2=&amp;quot; --&amp;gt;&lt;br /&gt;
|itemclass=Accessory &amp;lt;!-- REQUIRED: Valid options are: Armor, Weapon, Shield, Clothing, Accessory, Container, Creature (Pets/Mounts), or Miscellaneous.  If more than one classification, additional lines can be added with &amp;quot;itemclass2=&amp;quot; &amp;amp; &amp;quot;itemclass3=&amp;quot; --&amp;gt;&lt;br /&gt;
|itemtype=Pin &amp;lt;!-- REQUIRED: What items can this apply to.  Up to 8 can be specified by setting &amp;quot;itemtype2&amp;quot; - &amp;quot;itemtype8&amp;quot;. Confirmed as &amp;quot;pin worn functional&amp;quot; by the creator. --&amp;gt;&lt;br /&gt;
|alter= &amp;lt;!-- REQUIRED: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|ld= &amp;lt;!-- REQUIRED: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|feature= &amp;lt;!-- OPTIONAL: This area is only REQUIRED if feature altering is indicated. --&amp;gt;&lt;br /&gt;
|customize= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|custom= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|origmerch= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|releasevenue=Duskruin &amp;lt;!-- OPTIONAL: Confirm exact venue/shop name before publishing. --&amp;gt;&lt;br /&gt;
|releaseyear=2026 &amp;lt;!-- OPTIONAL: Not confirmed in source material -- fill in actual release year. --&amp;gt;&lt;br /&gt;
|questitem= &amp;lt;!-- OPTIONAL: Not indicated as a quest item in source material. --&amp;gt;&lt;br /&gt;
|tiered=Yes &amp;lt;!-- OPTIONAL: Enter &amp;quot;Yes&amp;quot; if the item is tiered. --&amp;gt;&lt;br /&gt;
|tiersnumber=4 &amp;lt;!-- OPTIONAL: This area is only REQUIRED if an item has tiers. --&amp;gt;&lt;br /&gt;
|unlock= &amp;lt;!-- OPTIONAL: Not explicitly confirmed; pricing in bloodscrip suggests Merchant, but confirm before publishing. --&amp;gt;&lt;br /&gt;
|legendary= &amp;lt;!-- OPTIONAL: Not indicated as legendary in source material. --&amp;gt;&lt;br /&gt;
|demeanor= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|loresong= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|corrscript= &amp;lt;!-- OPTIONAL: Not a true corresponding script, though the creator compared its BESEECH to the Mage&#039;s Gauntlet&#039;s BESEECH; see See Also instead. --&amp;gt;&lt;br /&gt;
|attune= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|attunement= &amp;lt;!-- OPTIONAL: Only required if attunement was indicated. --&amp;gt;&lt;br /&gt;
|affinity= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|spell= &amp;lt;!-- OPTIONAL: No inherent spell indicated in source material. --&amp;gt;&lt;br /&gt;
|enhancive= &amp;lt;!-- OPTIONAL: Not indicated in source material. --&amp;gt;&lt;br /&gt;
|swap= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|add= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|restrictions= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{itemverb&lt;br /&gt;
|verb=BESEECH &amp;lt;!-- Verbs MUST be capitalized when entered. Verbs should be listed in alphabetical order, not by tier.--&amp;gt;&lt;br /&gt;
|verb2=PIN&lt;br /&gt;
|verb3=RUB&lt;br /&gt;
|verb4=STRETCH&lt;br /&gt;
|verb5=TAP&lt;br /&gt;
|verb6=UNPIN&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Leybound_Compass&amp;diff=264347</id>
		<title>Leybound Compass</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Leybound_Compass&amp;diff=264347"/>
		<updated>2026-08-21T16:32:30Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: initial creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;td&amp;gt;&amp;lt;!-- Please see Help:Item scripts page for instructions on how to properly create and format an item page.--&amp;gt;&lt;br /&gt;
The &#039;&#039;&#039;Leybound Compass&#039;&#039;&#039; is a scripted pin that provides various time-related mechanical effects based on its tier.  Unlike items that are powered by feeding them other magic items, the compass draws on the wearer&#039;s own spells and combat flares.  At tier 1, the compass can extend the duration of the wearer&#039;s beneficial spells.  At tier 2, the compass can force every effect with a standard flare chance to trigger at once on the wearer&#039;s next attack.  At tier 3, the compass grants a passive chance on attack to slow the target and hasten the wearer, and can guarantee this effect for a short time on demand.  And at tier 4, the compass allows the wearer to recall an alternate version of a recently-visited room, along with the vitals they had when they left it.  The Leybound Compass was sold in the [[BVShop:Once Upon a Time|Once Upon a Time]] shop. &amp;lt;!-- Confirm exact shop/merchant name before publishing. --&amp;gt;&lt;br /&gt;
{{stub}}&lt;br /&gt;
{{TOC limit|2}}&lt;br /&gt;
{{itemtier &amp;lt;!-- Copy/Paste x #Tier for item as needed. --&amp;gt;&lt;br /&gt;
|tier=Tier 1/OTS &amp;lt;!-- REQUIRED:  Must be entered as Tier # or Tree (Name) --&amp;gt;&lt;br /&gt;
|itemsummary=An OTS Leybound Compass grants Stretch Time.  {{boldmono|STRETCH}} extends the duration of the wearer&#039;s beneficial spells -- both spells the wearer knows and any granted by Invoker -- by 30 minutes, subject to each spell&#039;s normal maximum duration (4 hours for most spells, 60 seconds for Haste, etc.).  Usable once every 2.5 hours. &amp;lt;!-- Brief explanation of what this tier does, if any. --&amp;gt;&lt;br /&gt;
|analyze= &amp;lt;!-- DRAFT: no confirmed in-game ANALYZE text was available in the source material; the below is constructed from the creator&#039;s mechanical descriptions and should be replaced with actual game text once available. --&amp;gt;&lt;br /&gt;
You analyze the dented brass compass and sense that the creator has provided the following information:&lt;br /&gt;
&lt;br /&gt;
{{blue|OVERVIEW}}&lt;br /&gt;
&lt;br /&gt;
Hello there, intrepid player!  This dented brass compass is a Leybound Compass item.  Rather than being fed other magical items, this compass draws on your own spells and combat flares to bend time in your favor.&lt;br /&gt;
&lt;br /&gt;
{{blue|UNLOCKS}}&lt;br /&gt;
&lt;br /&gt;
Tier 1 - OTS.  STRETCH extends the duration of your beneficial spells (both spells you know and any granted by Invoker) by 30 minutes, subject to each spell&#039;s normal duration cap.  Usable once every 2.5 hours.&lt;br /&gt;
Tier 2 - TAP causes your next attack to trigger every effect with a standard flare chance at once (flares, ensorcells, weapon flares, etc.).  Effects that calculate their chance differently than a standard flare (such as lore flares) are excluded, as is Xaz.  3 minute cooldown.&lt;br /&gt;
Tier 3 - Adds a passive standard-flare-chance effect on attack: an SMR attempt against the target that, on success, inflicts a 3 second Slow and grants you a brief haste effect (reducing RT/Cast RT by 1, floor of 1 second).  RUB guarantees this flare for 30 seconds.  Usable once every 3 minutes.&lt;br /&gt;
Tier 4 - BESEECH recalls an alternate version of one of the last 10 rooms you&#039;ve visited -- prioritizing the room with the fewest creatures, breaking ties by distance -- provided a valid path exists.  You arrive restored to the health, mana, stamina, and spirit you had when you left that room, standing and unstunned.  Requires that you not be in roundtime or unconscious.  Usable once per login day.&lt;br /&gt;
&lt;br /&gt;
Currently this compass is {{blue|Tier 1}}&lt;br /&gt;
&lt;br /&gt;
COOLDOWNS:&lt;br /&gt;
Stretch Time: {{blue|READY}}&lt;br /&gt;
Temporal Alignment: {{blue|READY}}&lt;br /&gt;
Hastened Movements: {{blue|READY}}&lt;br /&gt;
Temporal Anchor: {{blue|READY}} &amp;lt;!-- Day-based rather than time-based; per the creator this cooldown does not display in the standard cooldowns list. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Per the creator: the guaranteed-flare effects from RUB and TAP appear in the buffs list, not the cooldowns list; only the ability cooldowns themselves appear under cooldowns. Confirm wording before publishing. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- RP-only verbs (comparable to the Mage&#039;s Gauntlet&#039;s ATTEND/FIDGET/HOLD/PINCH/PONDER) were not covered in the source material.  Add if/when confirmed. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ALTERING&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Alteration/customization details were not covered in the source material. --&amp;gt;&lt;br /&gt;
|affinity= &amp;lt;!-- Brief explanation of affinity for that specific tier, if any.  --&amp;gt;&lt;br /&gt;
|itemverbtable=Yes &amp;lt;!-- Answer YES if there are verbs associated with this tier.  If not, leave blank. --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{| {{verbtable}} &amp;lt;!-- REQUIRED if there are verbs for this tier.  For instructions on how to use this template, see Template:Verbtable. --&amp;gt;&lt;br /&gt;
|- {{verbtableheader|90}}&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:5em;&amp;quot;|Verb&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|First&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|Third&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|PIN&lt;br /&gt;
|&amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|&amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|UNPIN&lt;br /&gt;
|&amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|&amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;  role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|STRETCH&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;|Extends the duration of your beneficial spells (known + Invoker-granted) by 30 minutes, subject to each spell&#039;s normal duration cap.  Usable once every 2.5 hours.&lt;br /&gt;
|}&lt;br /&gt;
{{itemtier &amp;lt;!-- Copy/Paste x #Tier for item as needed. --&amp;gt;&lt;br /&gt;
|tier=Tier 2 &amp;lt;!-- REQUIRED:  Must be entered as Tier # or Tree (Name) --&amp;gt;&lt;br /&gt;
|itemsummary=At Tier 2, the Leybound Compass gains Temporal Alignment.  {{boldmono|TAP}} causes the wearer&#039;s next attack to trigger every effect with a standard flare chance at once -- flares, ensorcells, weapon flares, and similar effects.  Effects that calculate their chance differently than a standard flare (such as lore flares) are excluded, as is Xaz.  3 minute cooldown, tracked per character rather than per item. &amp;lt;!-- Brief explanation of what this tier does, if any. --&amp;gt;&lt;br /&gt;
|analyze= &amp;lt;!-- Tier 1/OTS required to be listed here.  Other tiers only to list changes between analyzes, and final unlock to be listed in full. --&amp;gt;&lt;br /&gt;
|affinity= &amp;lt;!-- Brief explanation of affinity for that specific tier, if any.  --&amp;gt;&lt;br /&gt;
|itemverbtable=Yes &amp;lt;!-- Answer YES if there are verbs associated with this tier.  If not, leave blank. --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{| {{verbtable}} &amp;lt;!-- REQUIRED if there are verbs for this tier.  For instructions on how to use this template, see Template:Verbtable. --&amp;gt;&lt;br /&gt;
|- {{verbtableheader|90}}&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:5em;&amp;quot;|Verb&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|First&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|Third&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;  role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|TAP&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt; As you tap your Leybound Compass, its needle begins to spin through a blur of possible moments.  Each flicker collapses into the next, gathering around you until the future converges upon a single point. &amp;lt;!-- Sourced from creator&#039;s own combat log; wording of &amp;quot;leystone compass&amp;quot; adjusted to match this article&#039;s item name -- confirm exact current wording before publishing. --&amp;gt;&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;|Triggers every effect with a standard flare chance at once on your next attack.  3 minute cooldown (character-based).&lt;br /&gt;
|}&lt;br /&gt;
{{itemtier &amp;lt;!-- Copy/Paste x #Tier for item as needed. --&amp;gt;&lt;br /&gt;
|tier=Tier 3 &amp;lt;!-- REQUIRED:  Must be entered as Tier # or Tree (Name) --&amp;gt;&lt;br /&gt;
|itemsummary=At Tier 3, the Leybound Compass gains Hastened Movements.  The wearer gains a passive standard-flare-chance effect on attack: an SMR attempt against the target that, on success, inflicts a 3 second Slow and grants the wearer a brief haste effect (reducing RT/Cast RT by 1, with a floor of 1 second).  {{boldmono|RUB}} guarantees this flare for 30 seconds.  3 minute cooldown. &amp;lt;!-- Brief explanation of what this tier does, if any. --&amp;gt;&lt;br /&gt;
|analyze= &amp;lt;!-- Tier 1/OTS required to be listed here.  Other tiers only to list changes between analyzes, and final unlock to be listed in full. --&amp;gt;&lt;br /&gt;
|affinity= &amp;lt;!-- Brief explanation of affinity for that specific tier, if any.  --&amp;gt;&lt;br /&gt;
|itemverbtable=Yes &amp;lt;!-- Answer YES if there are verbs associated with this tier.  If not, leave blank. --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{| {{verbtable}} &amp;lt;!-- REQUIRED if there are verbs for this tier.  For instructions on how to use this template, see Template:Verbtable. --&amp;gt;&lt;br /&gt;
|- {{verbtableheader|90}}&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:5em;&amp;quot;|Verb&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|First&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|Third&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;  role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|RUB&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material as a standalone message. --&amp;gt; {{addmetext}}&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;|Guarantees the Hastened Movements flare for 30 seconds.  Usable once every 3 minutes.&lt;br /&gt;
|}&lt;br /&gt;
{{itemtier &amp;lt;!-- Copy/Paste x #Tier for item as needed. --&amp;gt;&lt;br /&gt;
|tier=Tier 4 &amp;lt;!-- REQUIRED:  Must be entered as Tier # or Tree (Name) --&amp;gt;&lt;br /&gt;
|itemsummary=Fully unlocked, a Leybound Compass gains Temporal Anchor.  {{boldmono|BESEECH}} recalls an alternate version of one of the last 10 rooms the wearer has visited -- provided a valid path exists, prioritizing the room with the fewest creatures and breaking ties by distance -- restoring the wearer to the health, mana, stamina, and spirit they had when they left that room.  The wearer arrives standing and unstunned.  Usable while incapacitated so long as the wearer is not in roundtime and not unconscious.  Once per login day. &amp;lt;!-- Brief explanation of what this tier does, if any. --&amp;gt;&lt;br /&gt;
|analyze= &amp;lt;!-- Tier 1/OTS required to be listed here.  Other tiers only to list changes between analyzes, and final unlock to be listed in full. --&amp;gt;&lt;br /&gt;
|affinity= &amp;lt;!-- Brief explanation of affinity for that specific tier, if any.  --&amp;gt;&lt;br /&gt;
|itemverbtable=Yes &amp;lt;!-- Answer YES if there are verbs associated with this tier.  If not, leave blank. --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{| {{verbtable}} &amp;lt;!-- REQUIRED if there are verbs for this tier.  For instructions on how to use this template, see Template:Verbtable. --&amp;gt;&lt;br /&gt;
|- {{verbtableheader|90}}&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:5em;&amp;quot;|Verb&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|First&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%&amp;quot;|Third&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;  role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|BESEECH&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt; &amp;lt;!-- Not confirmed in source material. --&amp;gt; {{addmetext}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;|Recalls an alternate version of a recently-visited room and restores prior vitals.  Requires the wearer not be in roundtime or unconscious.  Once per login day.&lt;br /&gt;
|}&lt;br /&gt;
* &amp;lt;!-- Insert link to the Discord release discussion thread here. --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
{{iteminfo&lt;br /&gt;
|type=Mechanical &amp;lt;!-- REQUIRED: Mechanical or Fluff.  OPTIONAL: If an item is feature altering or crafting, as well, please enter &amp;quot;Feature altering&amp;quot; or &amp;quot;crafting&amp;quot; below this line for &amp;quot;type2=&amp;quot; --&amp;gt;&lt;br /&gt;
|itemclass=Accessory &amp;lt;!-- REQUIRED: Valid options are: Armor, Weapon, Shield, Clothing, Accessory, Container, Creature (Pets/Mounts), or Miscellaneous.  If more than one classification, additional lines can be added with &amp;quot;itemclass2=&amp;quot; &amp;amp; &amp;quot;itemclass3=&amp;quot; --&amp;gt;&lt;br /&gt;
|itemtype=Pin &amp;lt;!-- REQUIRED: What items can this apply to.  Up to 8 can be specified by setting &amp;quot;itemtype2&amp;quot; - &amp;quot;itemtype8&amp;quot;. Confirmed as &amp;quot;pin worn functional&amp;quot; by the creator. --&amp;gt;&lt;br /&gt;
|alter= &amp;lt;!-- REQUIRED: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|ld= &amp;lt;!-- REQUIRED: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|feature= &amp;lt;!-- OPTIONAL: This area is only REQUIRED if feature altering is indicated. --&amp;gt;&lt;br /&gt;
|customize= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|custom= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|origmerch= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|releasevenue=Once Upon a Time &amp;lt;!-- OPTIONAL: Confirm exact venue/shop name before publishing. --&amp;gt;&lt;br /&gt;
|releaseyear= &amp;lt;!-- OPTIONAL: Not confirmed in source material -- fill in actual release year. --&amp;gt;&lt;br /&gt;
|questitem= &amp;lt;!-- OPTIONAL: Not indicated as a quest item in source material. --&amp;gt;&lt;br /&gt;
|tiered=Yes &amp;lt;!-- OPTIONAL: Enter &amp;quot;Yes&amp;quot; if the item is tiered. --&amp;gt;&lt;br /&gt;
|tiersnumber=4 &amp;lt;!-- OPTIONAL: This area is only REQUIRED if an item has tiers. --&amp;gt;&lt;br /&gt;
|unlock= &amp;lt;!-- OPTIONAL: Not explicitly confirmed; pricing in bloodscrip suggests Merchant, but confirm before publishing. --&amp;gt;&lt;br /&gt;
|legendary= &amp;lt;!-- OPTIONAL: Not indicated as legendary in source material. --&amp;gt;&lt;br /&gt;
|demeanor= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|loresong= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|corrscript= &amp;lt;!-- OPTIONAL: Not a true corresponding script, though the creator compared its BESEECH to the Mage&#039;s Gauntlet&#039;s BESEECH; see See Also instead. --&amp;gt;&lt;br /&gt;
|attune= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|attunement= &amp;lt;!-- OPTIONAL: Only required if attunement was indicated. --&amp;gt;&lt;br /&gt;
|affinity= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|spell= &amp;lt;!-- OPTIONAL: No inherent spell indicated in source material. --&amp;gt;&lt;br /&gt;
|enhancive= &amp;lt;!-- OPTIONAL: Not indicated in source material. --&amp;gt;&lt;br /&gt;
|swap= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|add= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
|restrictions= &amp;lt;!-- OPTIONAL: Not confirmed in source material. --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{itemverb&lt;br /&gt;
|verb=BESEECH &amp;lt;!-- Verbs MUST be capitalized when entered. Verbs should be listed in alphabetical order, not by tier.--&amp;gt;&lt;br /&gt;
|verb2=PIN&lt;br /&gt;
|verb3=RUB&lt;br /&gt;
|verb4=STRETCH&lt;br /&gt;
|verb5=TAP&lt;br /&gt;
|verb6=UNPIN&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=BVShop:Once_Upon_a_Time&amp;diff=264346</id>
		<title>BVShop:Once Upon a Time</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=BVShop:Once_Upon_a_Time&amp;diff=264346"/>
		<updated>2026-08-21T16:31:14Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: initial creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
==Current Shop Listing==&lt;br /&gt;
{{:BVShop:Once Upon a Time/August 2026}}&lt;br /&gt;
==Previous Shop Listings==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/|stripprefix=yes|hideredirects=yes}}&lt;br /&gt;
{{DEFAULTSORT:Once Upon a Time}}&lt;br /&gt;
[[Category:Bloodriven Village shops]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=263767</id>
		<title>Lich:Software/Installation</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=263767"/>
		<updated>2026-08-14T19:16:37Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Lich Changelog */ add 5.20.0 changelog&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
=About=&lt;br /&gt;
&lt;br /&gt;
Lich is an add-on scripting engine that works alongside existing front ends.  The most common installation is a combination of Lich on Windows using the Wrayth or Wizard FE. Lich is also used by many on both MacOS and multiple Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=Installing the Latest Stable Release=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The latest stable lich version is 5.20.0 supporting Ruby 4.0 - published August 11, 2026&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==In-Place Upgrade==&lt;br /&gt;
&lt;br /&gt;
If you are on an older version of Lich 5 and want to upgrade to the most current version, you can choose to either upgrade Lich5 only or both Lich 5 and Ruby. If you&#039;re currently on Lich 4, able to check by running the command &amp;lt;CODE&amp;gt;;e echo LICH_VERSION&amp;lt;/CODE&amp;gt;, go to the [[#Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)|upgrade from Lich 4 section]].&lt;br /&gt;
&lt;br /&gt;
For each section, please follow the directions/commands one at a time.&lt;br /&gt;
&lt;br /&gt;
===Lich 5 Only===&lt;br /&gt;
&lt;br /&gt;
====Lich 5.7 or newer====&lt;br /&gt;
# You must be running Ruby 4.0 or greater for Lich 5.19 +.  If unsure, please update both (see below)!&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Run this command in-game &amp;lt;CODE&amp;gt;;lich5-update --update&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
====Lich 5.6 or older====&lt;br /&gt;
Please proceed to updating both Ruby and Lich 5&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 4.0 &amp;amp; Lich 5===&lt;br /&gt;
This method is for Windows only. Linux and MacOS users, please do a Lich 5 only update and update Ruby manually via normal install/update methods for the OS.&lt;br /&gt;
&lt;br /&gt;
# Logout of all characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall existing Ruby4Lich5 installs from Programs &amp;amp; Features control panel, or alternatively, rename your existing Ruby4Lich5 folder to Ruby4Lich5save. (Defaults to C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the installer and be sure to have both Ruby and Lich 5 option selected&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich &amp;amp; Ruby!&lt;br /&gt;
&lt;br /&gt;
===Ruby 4.0 Only===&lt;br /&gt;
Use this to upgrade to the newest version of Ruby only if you&#039;re already on the latest version of Lich5 and now want to update Ruby afterwards. If you&#039;re not already on the latest version of Lich5, please use previous section steps instead.&lt;br /&gt;
# Logout of all instances/characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall your existing Ruby4Lich5 install via Programs &amp;amp; Features (ensure it&#039;s now gone, default location was C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the new installer and choose to only install Ruby Only&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version Ruby!&lt;br /&gt;
&lt;br /&gt;
==Windows New Installation==&lt;br /&gt;
&lt;br /&gt;
{{blue|These instructions are not for DragonRealms. [[#Ecosystem Information|For those scroll to the bottom]].}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows 11 / 10 / 8 / 7&#039;&#039;&#039; users: you can download the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and install everything you need automatically. Click on the &#039;&#039;&#039;Ruby4Lich5.exe&#039;&#039;&#039; and download it to your computer then double click on the executable in your default download folder. Note, a user may need to adjust their browser or security settings to allow download and installation.&lt;br /&gt;
If you have never played before, follow the &#039;New Installation&#039; instructions. If you have played before, and have used Lich before, follow the &#039;Upgrade Installation&#039; instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Installation for Lich 5 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Please log into the game of your choice through the Simutronics website first&#039;&#039;&#039;.  Install the launcher (not SGE), and install your FrontEnd of Choice.  The Wrayth FrontEnd is presently the supported FrontEnd, but Wizard will work as well, if you are nostalgic.  After you&#039;ve logged in, log out and continue.&lt;br /&gt;
# Download and Run the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe  Installer]. You will receive the Microsoft Warning because this is not distributed through the MS Store.  Click on &#039;More Info&#039; and then select the &#039;Run Anyway&#039; button.&lt;br /&gt;
# The installation may take a few minutes, especially on non-SSD harddrives.&lt;br /&gt;
# A Lich5 folder will be placed on your desktop after the install is finished, open that folder and double click the lich.rbw file contained inside to start Lich&#039;s Game Entry window.&lt;br /&gt;
# Use your existing Simutronics Account and Password and click connect.  Then select the character you wish to play, and select the FrontEnd you wish to use.  Then click the Play button.&lt;br /&gt;
# Your game FrontEnd should start, and you should see Lich5 initializing.  You will see it downloading files - these are the map files, wait for the download to finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
This option is deprecated.  Lich 5 architectures are not compatible with Lich 4. Back up your existing Lich 4 folder, uninstall any existing Ruby executables, and then follow the instructions for a new install above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional assistance in installation can be found in the scripting channel of the GemStone [https://discord.gg/KF9Wr8u Discord].&lt;br /&gt;
&lt;br /&gt;
==MacOS==&lt;br /&gt;
There two common options for playing Gemstone IV on a Mac is either to play natively with Avalon or to use virtualization software such as Parallels with Wrayth/WizardFE. Below are the options on how to do that.&lt;br /&gt;
&lt;br /&gt;
===Native Avalon===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. This process works well for Mac OS Catalina and Big Sur. If you have not updated your Mac OS yet, these instructions may work depending on your actual version.  If you run into a snag, follow the contact instructions provided.&lt;br /&gt;
&lt;br /&gt;
===Parallels Windows===&lt;br /&gt;
With the latest releases of Ruby4Lich5 installer, you can now follow the normal Windows installation for both Intel and Apple silicon based Apple computers.&lt;br /&gt;
&lt;br /&gt;
To install Wrayth/WizardFE, Lich, and Ruby via Parallels you will need to do a few various steps as outlined below. Please note, the rubyw file in C:\Ruby4Lich5\X.X.X\bin may be set to run in compatibility mode for windows 7.  On an ARM Mac running parallels, this may causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file could fixe this issue if it was enabled.&lt;br /&gt;
&lt;br /&gt;
The following steps are to be done AFTER you&#039;ve successfully installed Wrayth/WizardFE and can login normally without Lich5 on the machine. Once you&#039;ve done that and can successful connect normally, then follow these steps:&lt;br /&gt;
# Download and install [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and use default options presented during install&lt;br /&gt;
# Double click the lich.rbw file that is now located in the extracted Lich5 location you did above. Login and play as usual.&lt;br /&gt;
&lt;br /&gt;
==Chromebook &amp;amp; Debian variants==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-debian&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-debian&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Debian/Chromebooks. Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1.&#039;&#039;&#039; &lt;br /&gt;
Update the list of available software and make sure some requirements are installed:&lt;br /&gt;
&amp;lt;!-- don&#039;t think I&#039;m gonna include this stuff but might as well not delete it.&lt;br /&gt;
:&amp;lt;small&amp;gt;sudo: as a super-user&amp;lt;/small&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;apt-get: Debian&#039;s software repository&amp;lt;/small&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;-y: answer all questions yes&amp;lt;/small&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get -y update&lt;br /&gt;
sudo apt-get -y install autoconf bison build-essential curl libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libsqlite3-dev git unzip libcairo2-dev libgirepository1.0-dev libgtk-3-dev gobject-introspection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing Ruby installation rather than installing from scratch, skip steps 2, 3, and 4.  Instead, update your ruby-build with the following command, and then proceed to Step 5.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2.&#039;&#039;&#039;&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3.&#039;&#039;&#039;&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4.&#039;&#039;&#039;&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Arch Linux &amp;amp; Arch-based distributions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-arch&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-arch&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
Update the system and install required dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pacman -Syu&lt;br /&gt;
sudo pacman -S --needed base-devel openssl libyaml readline zlib ncurses libffi gdbm sqlite git unzip curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby 3.4.5 and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fedora==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-fedora&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-fedora&amp;quot;&amp;gt;&lt;br /&gt;
Currently supported versions of Fedora&lt;br /&gt;
* 41 uses Ruby 3.3&lt;br /&gt;
* 42 uses Ruby 3.4&lt;br /&gt;
* 43 uses Ruby 3.4&lt;br /&gt;
All of which are currently compatible with Lich 5.7.0 or higher.&lt;br /&gt;
&lt;br /&gt;
1. Update The Base Installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf -y update&lt;br /&gt;
$ sudo dnf -y install vim git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Install required Ruby and Development packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf install -y autoconf bison cairo-devel curl gcc gdbm gdbm-devel gdk-pixbuf2-devel glib2-devel \&lt;br /&gt;
gobject-introspection-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5a. Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5b. Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Popular Scripts=&lt;br /&gt;
{{#section:Lich:Script Repository|popularscripts}}&lt;br /&gt;
&lt;br /&gt;
=Ecosystem Information=&lt;br /&gt;
&lt;br /&gt;
* DragonRealms Variant - [https://elanthipedia.play.net/Lich_script_repository#Setup_and_Installation Setup and Install instructions]&lt;br /&gt;
&lt;br /&gt;
=Lich Changelog=&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-changelog&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-changelog&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.20.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
&lt;br /&gt;
* add concurrent runtime I/O and multi-client detach support (#1459)&lt;br /&gt;
* --bind-address speaks the same keywords as --detachable-client (#1461)&lt;br /&gt;
* GUI Launcher Improvements (#1463)&lt;br /&gt;
* Add supervised child script APIs (01 of 06) (#1474)&lt;br /&gt;
* Add forced script teardown command (06 of 06) (#1479)&lt;br /&gt;
* teardown and distinguishable errors for Script.run_child (#1501)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
&lt;br /&gt;
* DRCMM.moon_weapon_duration - read a moon weapon&#039;s remaining life (#1483)&lt;br /&gt;
* id-based creature tracking from crtrStatus + assess (#1485)&lt;br /&gt;
* capture room UID from &amp;lt;nav&amp;gt; tag; stop enforcing ShowRoomID; opt-in room-id placement (#1491)&lt;br /&gt;
* user-extensible scroll substitutions via settings (01 of 06) (#1512)&lt;br /&gt;
* user-extensible boxes and trash receptacles (03 of 06) (#1514)&lt;br /&gt;
* user-extensible summoned-weapon adjectives (04 of 06) (#1515)&lt;br /&gt;
* user-extensible flavor-text stripping (05 of 06) (#1516)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
&lt;br /&gt;
* gameobj add full_name matcher to type/sellable classification (#1453)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
&lt;br /&gt;
* prevent empty/partial GameObj registry reads during mid-stream refresh (#1370)&lt;br /&gt;
* no-op Gtk.lich_main_quit when no main loop is nested (#1464)&lt;br /&gt;
* correct path-flag aliases and document all path options (#1472)&lt;br /&gt;
* Synchronize script lifecycle transitions (02 of 06) (#1475)&lt;br /&gt;
* Coordinate script shutdown draining (03 of 06) (#1476)&lt;br /&gt;
* Harden script lifecycle ownership (05 of 06) (#1478)&lt;br /&gt;
* surface the underlying LoadError in dependency alerts (#1480)&lt;br /&gt;
* extract game-agnostic CreatureBase into lib/common (#1484)&lt;br /&gt;
* bound GemCheck alert dialogs with a timeout so they can&#039;t hang forever (#1488)&lt;br /&gt;
* identify Genie as the frontend for headless launches (#1490)&lt;br /&gt;
* restore detachable client disconnect notice to stdout (#1492)&lt;br /&gt;
* harden detachable client teardown and escape init payload (#1493)&lt;br /&gt;
* resolve GameObj status visibility during staged  refresh (#1497)&lt;br /&gt;
* compact client write queue instead of ending the session (#1498)&lt;br /&gt;
* scrub startup credentials once login completes (#1499)&lt;br /&gt;
* Honor Simu-side teardown for 10 seconds (#1505)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
&lt;br /&gt;
* resolve no-UID rooms carrying a stored UID instead of returning nil (#1467)&lt;br /&gt;
* equipmanager.rb - reliable ranged-weapon transitions - stow ammo after unload + verify offhand wield hand (#1468)&lt;br /&gt;
* common-healing.rb -  DRCH.bind_wound: only dispose a dislodged item while it is in hand (#1469)&lt;br /&gt;
* preserve game RealID in room title (GS parity for &amp;quot;;display roomid title&amp;quot;) (#1500)&lt;br /&gt;
* Refine need_buffs? logic for non-recast spells to correctly check cyclic spells. (#1503)&lt;br /&gt;
* reduce symbol-torn scale scrolls to gettable noun (#1506)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* lower game socket keepalive idle from 120s to 30s (#1449)&lt;br /&gt;
* resilient ActiveSessions ownership + shutdown watchdog (#1452)&lt;br /&gt;
* Quit Gtk.main cleanly (#1455)&lt;br /&gt;
* Refactor regex to string comparisons for ARGV options (#1456)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* ingest newly-exposed mindState experience and roommeta room fields (#1450)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add character generator support via EAccess protocol (#1384)&lt;br /&gt;
* Add modern script command shutdown method (#1385)&lt;br /&gt;
* migrate the server-stream parser from REXML to Ox, with pipe-mode benchmark harness and DR parser coverage (#1396)&lt;br /&gt;
* enumerate script subdirs with file glob (#1397)&lt;br /&gt;
* add --bind-address option to set listen socket address (#1405)&lt;br /&gt;
* add central method to determine lich ver (#1417)&lt;br /&gt;
* setup_files: support scripts/data/custom for user data overrides (#1431)&lt;br /&gt;
* Modify running? method to support optional exact matching of script names (#1436)&lt;br /&gt;
* keyword bind hosts for the detachable client (tailscale/lan/any) (#1437)&lt;br /&gt;
* add roomlinks/roommono toggles for room display (#1438)&lt;br /&gt;
* self-healing gem requires (#1439)&lt;br /&gt;
* various Saga FE compatibility tweaks (#1443)&lt;br /&gt;
* add macOS limited gem recovery (#1448)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Capture combat position from the balance status line (#1400)&lt;br /&gt;
* detect scheduled shutdown and expose it on DRParser (#1409)&lt;br /&gt;
* xmlparser: add structured parser for the assess (combat situation) stream (#1413)&lt;br /&gt;
* Implement DRCA.need_buffs? method for buff checks (#1428)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* anchor Infomon parser regex unions to line start (#1391)&lt;br /&gt;
* creature xml additions (#1425)&lt;br /&gt;
* add creature template library (#1427)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* surface a failed Game.open in the connect timeout (#1408)&lt;br /&gt;
* bound long-session memory growth (index/hook/watchfor/buffer leaks) (#1410)&lt;br /&gt;
* improve and harden shutdown (#1416)&lt;br /&gt;
* use bundler to check for required Ruby gems (#1420)&lt;br /&gt;
* pin lich directory for gemfile check (#1423)&lt;br /&gt;
* Show CLI login ARGV for SAL connections (#1424)&lt;br /&gt;
* increase read timeout on idle socket to 300 seconds (#1426)&lt;br /&gt;
* monkeypatch gi for memoryreleaser / asyncprocessor until patched upstream (#1429)&lt;br /&gt;
* Mapdb sort tags by downcase and original case (#1433)&lt;br /&gt;
* stop locking the load path at boot; keep Gemfile.lock in sync on self-update (#1434)&lt;br /&gt;
* minimum Ruby 4.0 required &amp;amp; migrate Ruby version check (#1444)&lt;br /&gt;
* align --announce with --update for Ruby version (#1447)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* BalanceValue regex to match combat status lines (#1398)&lt;br /&gt;
* equipmanager.rb - Fix unload weapon detection when AimTimerDialog tag is prepended (#1414)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* global_defs update pushStream regex to include &#039;reserve&#039; id (#1379)&lt;br /&gt;
* psms Warcry.available? correction (#1387)&lt;br /&gt;
* xmlparser support new field exp, climate, terrain XML feeds (#1388)&lt;br /&gt;
* global_defs move() update regex for standing condition (#1407)&lt;br /&gt;
* Currency add method to retrieve aevit event currency (#1411)&lt;br /&gt;
* Stash check result type before comparing regex for wear_to_inv (#1430)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.18.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-crafting add method for creating mechanisms (#1375)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* stringproc normalize CRLF | CR to LF (#1378)&lt;br /&gt;
* rubocop custom cop ascii only cleanup (#1382)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* equipmanager update to assume missing items aren&#039;t worn (#1376)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1326)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Script module replace MemoryReleaser with GC.start for cleanup (#1364)&lt;br /&gt;
* Add sqlite busy timeout policy to core (#1365)&lt;br /&gt;
* Script#kill remove GC.start and add optional instrumentation (#1368)&lt;br /&gt;
* reorder shutdown ala MahtraDR and detect script teardown de... (#1369)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* harden custom repo identity, collision, and contract boundaries (#1333)&lt;br /&gt;
* stop SessionLifecycle before closing database on normal exit (#1334)&lt;br /&gt;
* harden FeatureFlags for closed db handle (#1335)&lt;br /&gt;
* SynchronizedSocket write resilience and zombie client elimination (#1338)&lt;br /&gt;
* correct RP timing issue for release notes (#1348)&lt;br /&gt;
* gate object cleanup in GTK queue (#1354)&lt;br /&gt;
* recover from cross-process zombie in ActiveSessions service (#1355)&lt;br /&gt;
* Improve shutdown session state handling (#1359)&lt;br /&gt;
* non-ascii hygeine to address rubocop errors (#1360)&lt;br /&gt;
* Remove debug log IO from heartbeat tick loop (#1363)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRC text2num correction for thousand (#1343)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Overwatch add REVEALED_EXPLODES regex pattern (#1356)&lt;br /&gt;
* Stash add_to_bag result type check before regex compare (#1357)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* enable heartbeat-driven failover for ActiveSessions service owner (#1340)&lt;br /&gt;
* copy Gemfile and LICENSE during self-update (#1345)&lt;br /&gt;
* Add top-level parse_args/display_args bridge to global_defs (#1346)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* replace undefined custom_require in check_moonwatch (#1336)&lt;br /&gt;
* set_stance places 100 in the correct positional slot (#1337)&lt;br /&gt;
* cache SlackBot users list to prevent API throttling (#1342)&lt;br /&gt;
* Add CORE_AUTOSTART sentinel to skip dependency.lic autostart helpers (#1344)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon Status.cutthroat? Effect Debuff correction (#1331)&lt;br /&gt;
* add support for RESERVE xml in GameObj.reserve (#1341)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* custom 3rd-party repo support for ScriptSync (#1285)&lt;br /&gt;
* Add get_settings, get_data, start_scripts_if_available to core (#1305)&lt;br /&gt;
* Add Map.apply_wayto_overrides for personal map overrides (#1306)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Decouple SetupFiles from script-scoped echo and XML feed timing (#1304)&lt;br /&gt;
* Add game flags and obsolete script warnings to DRInfomon startup (#1307)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* use :__unset for --without-frontend CLI request YAML matches (#1301)&lt;br /&gt;
* prevent zombie server deadlock in Active Sessions accept loop (#1302)&lt;br /&gt;
* improve MacOS keychain system check for older OS variants (#1310)&lt;br /&gt;
* stub sync_all_repos to prevent leaked thread in games_spec (#1311)&lt;br /&gt;
* enforce beta confirmation 10s timeout (#1315)&lt;br /&gt;
* use send(:respond) in StatusReporter fallback path (#1316)&lt;br /&gt;
* ensure SessionLifecycle.stop runs on abnormal exit (#1317)&lt;br /&gt;
* address ActiveSessions lifecycle hot path feature-flag polling (#1325)&lt;br /&gt;
* catch ECONNRESET in _puts and bound walk_to retry depth (#1327)&lt;br /&gt;
* safeguard gtk logo.png loading (#1329)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Add InnCheckedOut pattern to parser (#1309)&lt;br /&gt;
* Claim corrections to handle mounts in room_players stream (#1324)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
* repair regression on gui button reenable from refactor (#1297)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Mutli-launch persistent login GUI (#1245)&lt;br /&gt;
* Remove Windows OS CMD prompt flash (#1255)&lt;br /&gt;
* guard against broken pipe errors in Game._puts and send_to_client (#1260)&lt;br /&gt;
* add timeout safety to fput to prevent infinite hangs (#1261)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* anchor stow success pattern to prevent fan close recovery bypass (#1254)&lt;br /&gt;
* add bounded recursion depth limits to 9 methods (#1257)&lt;br /&gt;
* stow_helper failure detection + unload_weapon ammo recovery (#1259)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add InstanceSettings for core Settings API access (#1233)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Overwatch module into core (#1201)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* fix GameObj container initialization and add clear_all_containers (#1226)&lt;br /&gt;
* GameObj object dedupe &amp;amp; GC (#1234)&lt;br /&gt;
* script.rb show Script.kill source (#1235)&lt;br /&gt;
* Exit quickly on CLI authentication failure (#1237)&lt;br /&gt;
* suppress wine detection noise and skip when unneeded (#1244)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DR modules fixes and enhancements (#1232)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* psms.rb add additional failure matches (#1238)&lt;br /&gt;
* Bounty parser fix regex pattern for skin retrieval task (#1242)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* add retry with exponential backoff for all login authentication (#1205)&lt;br /&gt;
* update.rb allow for bugfix betas and branch updates (#1211)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb bug in _key transformation (#1216)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Change server_time_offset in XMLParser to be float instead of int (#1184)&lt;br /&gt;
* change encodings in main.rb to wizard FE only (#1199)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon parser.rb update Account.subscription/type (#1192)&lt;br /&gt;
* spell.rb add last_cast to track last time casted (#1193)&lt;br /&gt;
* stash.rb additional improvements with ReadyList/StowList (#1197)&lt;br /&gt;
* Infomon parser.rb bug in EnhanciveEnd (#1198)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add Genie map cross-reference fields to the DragonRealms map data model (#1169)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRExpMonitor move into core lich (#1154)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* add Enhancive module for enhancive item bonus tracking (#1113)&lt;br /&gt;
* add QStrike module for optimal stamina-based RT reduction (#1114)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* remove strip! from settingsInfo replacement (#1161)&lt;br /&gt;
* map_base.rb sort JSON better (#1171)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* logbook_item recovery when crafted item not in hand (#1175)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* xmlparser.rb capture additional death messaging (#1158)&lt;br /&gt;
* stash.rb ReadyList sheath handling and update inventory checks (#1166)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* allow --add-account to run without yaml and dat (#1143)&lt;br /&gt;
* enable --login for multi-variable custom launch commands (#1144)&lt;br /&gt;
* update.rb pervent update if MIN_RUBY not met (#1146)&lt;br /&gt;
* messaging.rb return &amp;quot;&amp;quot; for xml_encode with Wizard (#1147)&lt;br /&gt;
* prevent closing connection on module reload (#1148)&lt;br /&gt;
* Allow hmr to work on global_defs.rb (#1156)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* buffer split room obj lines and merge instead of appending closing tag to broken line (#1149)&lt;br /&gt;
* add buffering for multiline room players (#1151)&lt;br /&gt;
* add verify_script def here instead of depending on dependency (#1155)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb added updated_at field to upsert_batch (#1145)&lt;br /&gt;
* stowlist.rb check method fix when dead (#1152)&lt;br /&gt;
* readylist.rb check method fix when dead (#1153)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* util.rb only show gem installing debug messaging if gem mis… (#1131)&lt;br /&gt;
* add --gs and --dr, refactor argv_options to helpers (#1133)&lt;br /&gt;
* fix multiple custom entries, improvements to yaml save (#1134)&lt;br /&gt;
* login_tab_utils.rb expand helper text show Warlock (#1135)&lt;br /&gt;
* update CLI for YAML security signature, add auto-convert fo… (#1136)&lt;br /&gt;
* remove password parameter from debug logging in all cases (#1137)&lt;br /&gt;
* reduce minimum GUI window footprint for non-tabbed view (#1138)&lt;br /&gt;
* remove double save in YAML to preserve yaml.bak integrity (#1139)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* stash.rb additional improvements (#1132)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* force system gem install if RubyGems fails (#1126)&lt;br /&gt;
* gui_login prevent destroying window if already destroyed (#1127)&lt;br /&gt;
* add window size / position saves to login GUI (#1128)&lt;br /&gt;
* non tabbed saved entries in reduced button / font size (not… (#1129)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* account manager sorting GUI fix (#1123)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* install_gem_requirements update available gems after install (#1120)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* password_cipher.rb upcase account_name for key (#1118)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* validator.rb change sleep to should_sleep named param (#1116)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* add base stats capture from &#039;info full&#039; command (#1115)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Refocus Frontend (#960)&lt;br /&gt;
* socket configurator to better guard TCPSocket (#976)&lt;br /&gt;
* add simplified DB maintenance (#991)&lt;br /&gt;
* TextStripper module support for XML, HTML, Markdown (#1055)&lt;br /&gt;
* Login modernization and refactor to yaml (#1063)&lt;br /&gt;
* Ruby Memory Releaser module (#1066)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* support meta:trashcan tag for DRCI.dispose_trash (#966)&lt;br /&gt;
* Add GameObj.inv support for DR items (#1080)&lt;br /&gt;
* DRCS allow custom adjective for summoned weapons (#1088)&lt;br /&gt;
* DRParser support for new exp window xml stream elements (rested exp, tdps, favors) (#1104)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Add Armaments (Weapon, Armor, and Shield) Module (#911)&lt;br /&gt;
* add creature module, including Hinterwilds creatures (#1002)&lt;br /&gt;
* Creature module combat tracking (#1003)&lt;br /&gt;
* track time of last total_experience record (#1030)&lt;br /&gt;
* add Injured class for checking ability to perform actions (#1035)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* map dijkstra optimization (#1061)&lt;br /&gt;
* update.rb keep script/data file incase of error on update (#1070)&lt;br /&gt;
* ensure proxy path is set for non-destructive array write-th… (#1073)&lt;br /&gt;
* [lib][global-defs] - move update (#1079)&lt;br /&gt;
* GameObj force new objects ID to be string (#1087)&lt;br /&gt;
* xmlparser.rb gate GSL exits sending behind @send_fake_tags (#1103)&lt;br /&gt;
* change Hash[] pair key conversion to use to_h for Ruby 4.0 (#1108)&lt;br /&gt;
* move gui-login.rb to Ruby standard gui_login.rb (#1111)&lt;br /&gt;
* update location for currency and move game-loader.rb to Ruby standard gameloader.rb (#1112)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRCA allow custom spell prep messaging (#1089)&lt;br /&gt;
* Update Slackbot error handling, and lnet management (#1091)&lt;br /&gt;
* Fix exp mods parsing for DR (#1102)&lt;br /&gt;
* equipmanager.rb support for custom messaging in forester&#039;s longbow (#1105)&lt;br /&gt;
* Fix hang in equipment manager when game doesn&#039;t respond to commands (#1110)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon additional CHE resign regex (#1067)&lt;br /&gt;
* Resource tracking for sorcerer shadow essence (#1085)&lt;br /&gt;
* cman.rb add hamstring regex for already lying down target (#1090)&lt;br /&gt;
* cman.rb hamstring regex update when can&#039;t perform on target (#1092)&lt;br /&gt;
* Bounty parser.rb FWI guard regex update (#1096)&lt;br /&gt;
* currency.rb track gold (#1109)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.12&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (general)&lt;br /&gt;
    Update module strip markdown comments (#1056)&lt;br /&gt;
    Vars/UserVars module fixes and corrections (#1057)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    Infomon parse fix for singular currency (#1051)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (dr)&lt;br /&gt;
    add bput match for system updates preventing actions (#1034)&lt;br /&gt;
    drdefs.rb npc parsing (#1038)&lt;br /&gt;
    Fix container reference in get_item_from_eddy_portal method (#1039)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    bounty location regex needs to match &amp;quot;under&amp;quot; (#1037)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.10&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: games.rb catch additional error for nested single/double quotes (#1031)&lt;br /&gt;
    dr: change keys for DR_SKILLS_DATA[:guild_skill_aliases] to be strings instead of symbols (#1032)&lt;br /&gt;
    gs: Bounty parser for SG npcs matching (#1027)&lt;br /&gt;
    gs: match READY/STOW items with a/an/some inside the link (#1026)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.9&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    gs: StowList/ReadyList reset bug if non-default keys added #1019&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: script.rb show custom at script exit as well (#993)&lt;br /&gt;
    all: Updated update.rb for single trunk and release please (#1001)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.7&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): ensure updates do not target detached proxy views #990 &lt;br /&gt;
fix(gs): bounty parser and move fixes for sailor&#039;s grief #987 &lt;br /&gt;
fix(gs): Infomon xmlparser.rb Ready/Stow fix for LONG before exist #988 &lt;br /&gt;
fix(gs): gameobj.rb for Sailor&#039;s Grief ghostly/boss/guild tentacles #989 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): settings.rb update to preserve root of derived views #975&lt;br /&gt;
fix(all): show custom in various script output when custom script #967&lt;br /&gt;
fix(dr): drparser.rb update for PlayedSubscription #983&lt;br /&gt;
fix(gs): include store location for ReadyList #977&lt;br /&gt;
fix(gs): infomon parser.rb update for ACCOUNT output varies #979&lt;br /&gt;
fix(gs): global_defs.rb move def update for Hive traps #980&lt;br /&gt;
fix(gs): activespell.rb prevent removal of RF Penalty #981&lt;br /&gt;
fix(gs): add .compact to input of Disk.find_by_name #982&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): update.rb word boundary for abbreviations #971&lt;br /&gt;
fix(dr): equipmanager.rb Fix for changed game output. #969&lt;br /&gt;
fix(dr): common-arcana.rb Regalia fix for changed game output. #970&lt;br /&gt;
fix(dr): common-items.rb Fix for changed inventory command output #973&lt;br /&gt;
fix(gs): StowList missing space in capture in xmlparser.rb #963&lt;br /&gt;
fix(gs): stowlist.rb wait for RT when issuing check #964&lt;br /&gt;
fix(gs): readylist.rb wait for RT when issuing check #965&lt;br /&gt;
fix(gs): Bounty heirloom return msg&#039;ing update #972&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
build(all): installer.yml use windows-2022 #950&lt;br /&gt;
fix(all): restore Wrayth / Wizard script execution ability #952&lt;br /&gt;
fix(all): database_adapter.rb error handling improvement #956&lt;br /&gt;
fix(dr): common-items.rb wear/remove messaging additions #949&lt;br /&gt;
fix(dr): games.rb - ignore UIDs for Frostbite mapping #951&lt;br /&gt;
fix(dr): map_dr.rb prevent inadvertent settings changes #958&lt;br /&gt;
fix(gs): GameObj targets for new Sailor&#039;s Grief tentacle npc #948&lt;br /&gt;
fix(gs): map_gs.rb remove delete_if to prevent bad settings #957&lt;br /&gt;
fix(gs): weapon.rb assault break if no targets #962&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): limitedarray.rb max_size increase #946&lt;br /&gt;
fix(all): uservars.rb update for vars method missing #940&lt;br /&gt;
fix(dr): drparser.rb to set ShowRoomID to on if turned off #945&lt;br /&gt;
fix(gs): change namespace accessors to Ruby 2.6 compatible #944&lt;br /&gt;
fix(gs): infomon state reset on status prompt #943&lt;br /&gt;
fix(gs): Societies to check membership for various methods #942&lt;br /&gt;
fix(gs): standardize warcry.rb to match other PSMS #941&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(gs): infomon parser.rb for profile full name matching #938&lt;br /&gt;
fix(gs): force PROFILE FULL to sync CHE info for infomon #937&lt;br /&gt;
fix(dr): Tighten checks on releasing invisibility for thieves #936&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): gameobj.rb - add type? method for explicit type check #928&lt;br /&gt;
- fix(all): messaging.rb encoding issue #933&lt;br /&gt;
- fix(gs): Various CMan cost corrections #932&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- feat(all): settings.rb - proposal for sequel based Settings #591, #875, #889, #896, #927&lt;br /&gt;
- feat(all): util.rb add Ruby gem install helper method #861&lt;br /&gt;
- feat(all): messaging.rb add cmd link method #866&lt;br /&gt;
- refactor(all): games.rb modernization #849, #882, #924&lt;br /&gt;
- fix(all): add class extensions #800&lt;br /&gt;
- fix(all): lich.rb deprecated FE message #852&lt;br /&gt;
- fix(all): messaging.rb fix XML encoding for wizard and avalon #853&lt;br /&gt;
- fix(all): lich.rb class variable not initialized #855&lt;br /&gt;
- fix(all): log.rb force msg to String for regexp comparison #856&lt;br /&gt;
- fix(all): global_defs.rb bug in fput #864&lt;br /&gt;
- fix(all): messaging.rb xml_encode mono method msg #868&lt;br /&gt;
- fix(all): script.rb class to is_a? checks #878&lt;br /&gt;
- fix(all): gameobj.rb deeper lookup #885&lt;br /&gt;
- fix(all): messaging.rb debug not compared to falseclass #887&lt;br /&gt;
- fix(all): change class to is_a? checks #91-3&lt;br /&gt;
- fix(all): Util.issue_command allow single line captures #918&lt;br /&gt;
- fix(dr): drparser.rb casing for Premium status check #842&lt;br /&gt;
- fix(dr): map_dr.rb Don&#039;t assign UID of zero to rooms #844&lt;br /&gt;
- fix(dr): drparser.rb add $last_logoff tracking #851&lt;br /&gt;
- fix(dr): update message patterns in common-items #859&lt;br /&gt;
- fix(dr): add moon_visible?(moon) convenience method to common-moonmage #860&lt;br /&gt;
- fix(dr): exp mods output is not enclosed in preset xml tags anymore #870&lt;br /&gt;
- fix(dr): update.rb beta send validation for genie lich char #880&lt;br /&gt;
- fix(dr): Update regex and parsing for active spells #894&lt;br /&gt;
- fix(dr): add &#039;You scoop&#039; match pattern to common-items #900&lt;br /&gt;
- fix(dr): add missing match patterns #901&lt;br /&gt;
- fix(dr): common-items: add and fix match strings #904&lt;br /&gt;
- fix(dr): Add missing matches for common-items #905&lt;br /&gt;
- fix(dr): Release Khri Vanish if Thief, when going visible #906&lt;br /&gt;
- fix(dr): Fix race condition when clearing and repopulating XMLData.dr_active_spells #907&lt;br /&gt;
- fix(dr): Fix SLS release pattern #908&lt;br /&gt;
- fix(dr): resolve race condition in DR crafting_magic_routine #914&lt;br /&gt;
- fix(dr): xmlparser.rb - Fix XMLData.dr_active_spells race condition #915&lt;br /&gt;
- fix(dr): xmlparser.rb - Clear out spells properly #916&lt;br /&gt;
- fix(dr): drparser.rb update for Platinum account status #922&lt;br /&gt;
- feat(gs): gameobj.rb allow for custom gameobj data #848&lt;br /&gt;
- feat(gs): PSMS updates, including CMan.use #865, #874, #881, #890, #899&lt;br /&gt;
- feat(gs): ReadyList &amp;amp; StowList classes for item tracking #884&lt;br /&gt;
- feat(gs): Breakout and Buildout Societes #919&lt;br /&gt;
- fix(gs): infomon parsing for CHE membership #841&lt;br /&gt;
- fix(gs): map_gs.rb for no UID when hexdigest used #843&lt;br /&gt;
- fix(gs): warcry.rb yowlp :buff to string instead of regexp #847&lt;br /&gt;
- fix(gs): group.rb multiple corrections #850, #869, #883&lt;br /&gt;
- fix(gs): Bounty parser.rb fix for HW &amp;amp; KF guard return #862&lt;br /&gt;
- fix(gs): Bounty task.rb fix for assigned? and Ruby 2.6 #863&lt;br /&gt;
- fix(gs): stash.rb stale sheaths recheck #867&lt;br /&gt;
- fix(gs): allow spell.rb casting to take a force_stance parameter #902&lt;br /&gt;
- fix(gs): update Infomon parsing for new ACCOUNT output format #903&lt;br /&gt;
- fix(gs): PSMS cost for multiple cost types &amp;amp; add Excoriate feat #912&lt;br /&gt;
- fix(gs): Feat excoriate regex correction #920&lt;br /&gt;
- fix(gs): weapon PSM affordable check against Glorious Momentum #926&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): restore @theme_state and add to CLI capability #795&lt;br /&gt;
- fix(all): retire gtk2 monkey patch for gtk3 #823&lt;br /&gt;
- fix(all): games.rb XMLData.name wait till both not NIL and not EMPTY #826&lt;br /&gt;
- fix(all): standardize xmlparser game instance #827&lt;br /&gt;
- fix(all): games.rb fix multiple single and double quote in XML #832,836,837&lt;br /&gt;
- fix(dr): games.rb - optional hide Room Title display of Real IDs with FLAG on #782&lt;br /&gt;
- chore(dr): common-moonmage - refactor of peer_telescope #783&lt;br /&gt;
- fix(dr): move HMR load to common before for dragonrealms #784&lt;br /&gt;
- fix(dr): common-crafting.rb minor edit to add &amp;quot;You tuck&amp;quot; #787&lt;br /&gt;
- fix(dr): common-arcana.rb - remove unecessary pause from discern code #792&lt;br /&gt;
- fix(dr): drparser.rb Restore Premium status checking #834&lt;br /&gt;
- fix(gs): migrate PSMS.name_normal to Lich::Util.normalize_name #790,833&lt;br /&gt;
- fix(gs): add Char.che to know current character&#039;s CHE #791&lt;br /&gt;
- fix(gs): FEAT and Infomon module parsing of new Covert Art feats. #796&lt;br /&gt;
- fix(gs): add Currency.gemstone_dust and fix redsteel mark capture #797&lt;br /&gt;
- fix(gs): FEAT Covert Arts colon normalization and stamina costs #799&lt;br /&gt;
- fix(gs): escape dash in regex for HouseCHE #824&lt;br /&gt;
- fix(gs): disk.rb comparison helpers #828&lt;br /&gt;
- fix(gs): allow for Group.disks to show self disk in array #829&lt;br /&gt;
- fix(gs): feat.rb Covert Arts throw poison costs 15 stam #830&lt;br /&gt;
- fix(gs): add missing Feat.use ability #831&lt;br /&gt;
- fix(gs): multiple CritRanks updates #801-822&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- [all] - chore: Namespace &amp;amp; File Path Updates #713&lt;br /&gt;
- [all] - [argv_options.rb] bugfix: correct darkmode to work via CLI #693&lt;br /&gt;
- [all] - [games.rb] feat: make show Room Exits of non-StringProc/Obvious Exits toggable for all games #699&lt;br /&gt;
- [all] - [games.rb] feat: toggleable display of StringProcs with clickable links #751&lt;br /&gt;
- [all] - [gui-manual-login.rb] fix: change label to Wrayth #720&lt;br /&gt;
- [all] - [gui-saved-login.rb] fix: update Stormfront label #721&lt;br /&gt;
- [all] - [update.rb] fix: purge old LIB folder prior to update release #729&lt;br /&gt;
- [all] - [util.rb] bugfix: allow issue_command to use fput or put #715&lt;br /&gt;
- [all] - [xmlparser.rb] feat: add XMLData.room_name attribute #685&lt;br /&gt;
- [all] - [main.rb] fix: create session file in regular connect method #733&lt;br /&gt;
- [all] - [init.rb] bugfix: error for Windows DISPLAY variable #735&lt;br /&gt;
- [all] - [main.rb] fix: Mudlet support #736&lt;br /&gt;
- [all] - [wine.rb] fix: add --no-wine CLI flag prevent WINE startup&lt;br /&gt;
- [all] - [init.rb] fix: add --no-gtk CLI flag prevent GTK3 gem load&lt;br /&gt;
- [dr] - [games.rb] feat: DRinfomon and common files as core lich libraries #686&lt;br /&gt;
- [dr] - [games.rb] chore: add DR requires here #690&lt;br /&gt;
- [dr] - [games.rb] fix: add Room# display for DR #697&lt;br /&gt;
- [dr] - [games.rb] bugfix: Genie FE real ID#s not supported, hide by default #728&lt;br /&gt;
- [dr] - [drdefs.rb] bugfix: fix for Shadow Servants #710&lt;br /&gt;
- [dr] - [map_dr.rb] fix: cleanup and support for UIDs #719&lt;br /&gt;
- [dr] - [xmldata.rb] bugfix: add support for DR Room IDs #716&lt;br /&gt;
- [dr] - [xmlparser.rb] feat: XMLData - adding dr_active_spells #691&lt;br /&gt;
- [gs] - [games.rb] bugfix: support for pre/post room name txt #683&lt;br /&gt;
- [gs] - [group.rb] chore: update to account for hold #701&lt;br /&gt;
- [gs] - [resource.rb] feat: add additional tracking of covert art charges #714&lt;br /&gt;
- [gs] - [spell.rb] bugfix: Spell.affordable? 515 release #687&lt;br /&gt;
- [gs] - [stash.rb] bugfix: sheath_bags when not found #694&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: missing real ID in nav #684&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: Claim module obvious hiding #717&lt;br /&gt;
- [gs] - [sk.rb] feat: Self-Knowledge functionality in core #748&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: Simu XML breaking change RoomID #679&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [crit_tables] fix: CritRanks regex fixes (multiple files and changes) #671&lt;br /&gt;
-o- [GS4] - [spellsong.rb] fix: Correct Spellsong sync method #674&lt;br /&gt;
-o- [GS4] - [parser.rb] fix: thorn status regex correction #673&lt;br /&gt;
-o- [All] - [xmlparser.rb] fix: Split out if elif block to account for DR having multiple… #670&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: percentconcentration #676&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: update move failure message to handle attack and casting #667&lt;br /&gt;
-o- [All] - [init.rb] fix: update required ruby check messaging #669&lt;br /&gt;
-o- [All] - [sessionvars.rb] feat: new module SessionVars for non-persistent variable storage #666&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [DR] - [games.rb] bugfix: tweak XML rewrite section #662&lt;br /&gt;
-o- [GS4] - [crit_tables] bugfix: additional crit table regex corrections #663&lt;br /&gt;
-o- [GS4] - [ascension.rb] bugfix: add new Transcend Destiny to lookups #661&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: regexp escape txt #660&lt;br /&gt;
-o- [GS4] - [disruption_critical_table.rb] Bugfix in regex #659&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [games.rb] bugfix: prevent race condition in games thread #656 &lt;br /&gt;
-o- [All] - [init.rb] bugfix: address WINE variance between linux / installs #655&lt;br /&gt;
-o- [GS4] - [gs][stash.rb] bugfix: wear code improvement #657 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [main.rb] bugfix: correct encoding for WizardFE PR #640&lt;br /&gt;
-o- [All] - [games.rb] bugfix: correct logic for room detection when using CLI --start-scripts PR #639&lt;br /&gt;
-o- [All] - [DB_Store.rb] feat: add direct support for Simu RENAME and CHANGE PROF PR #633&lt;br /&gt;
-o- [All] - chore: breakout code to individual files for easier management PR #617&lt;br /&gt;
-o- [All] - [lich.rbw] chore: add deprecated msg to old Settings/GameSettings/CharSettings methods PR #589&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add new --dark-mode CLI option PR #583&lt;br /&gt;
-o- [All] - [global_defs.rb] bugfix: monsterbold fix for additional clients PR #581&lt;br /&gt;
-o- [All] - [update.rb] feat: update core scripts from source on Lich5 update/install PR #579&lt;br /&gt;
-o- [All] - [log.rb] feat: add new Log module copied from Olib PR #577&lt;br /&gt;
-o- [All] - [numeric.rb] feat: add days/hours/minutes/seconds methods to numerics PR #623&lt;br /&gt;
-o- [All] - [messaging.rb] feat: WizardFE Voln window support #647&lt;br /&gt;
-o- [All] - [init.rb] bugfix: WINE entries for Linux / MacOS #649&lt;br /&gt;
-o- [DR] - [lich.rbw] bugfix: cleanup downstream hook exclusions PR #593&lt;br /&gt;
-o- [DR] - [global_defs.rb] bugfix: missing climb failure message PR #592&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: show non-standard Effects in `;magic` output PR #641&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: fix WARCRY duplication results / add WALL OF THORNS effect detection PR #634 / PR #637&lt;br /&gt;
-o- [GS4] - [critranks.rb] feat: add critical rank resolution tables and methods PR #625&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: to support regex for active? &amp;amp; time_left PR #590&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: add implicit NPC death monitoring PR #588&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: change PSM to be stored as type.mnemonic PR #587&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: strip_xml multiline fix PR #584&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: fix sack detection to use Stash.container(param) PR #578&lt;br /&gt;
-o- [GS4] - [spell.rb] feat: Spell.after_stance #644 &lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: for Claim module #646&lt;br /&gt;
-o- [GS4] - [infomon] feat: track Voln favor via RESOURCE output #648&lt;br /&gt;
-o- [GS4] - [gameobj.rb] feat: add Bandit hidden target API #650&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: proper leader detection from GROUP output&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back depracted Char.maxvitals with msging to switch to new Char.max_vitals methods&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: group.check syntax change&lt;br /&gt;
-o- [GS4] - [spell.rb] bugfix: affordable? Char.mana parenthesis logic&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] -  feat: sqlite3 gem syntax code cleanup PR#553&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: remove unused Setting, GameSetting, CharSetting PR#542&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: scrub login key from error message popups PR#548&lt;br /&gt;
-o- [All] - [messaging.rb] bugfix: color mismatch WizardFE white txt PR#554&lt;br /&gt;
-o- [All] - [lich.rb] feat: add new Lich.deprecated method to aid in deprecating older API calls PR#523&lt;br /&gt;
-o- [GS4] - [char.rb] feat: log method_missing calls PR#552&lt;br /&gt;
-o- [GS4] - [char.rb] feat: add missing global_def related methods PR#523&lt;br /&gt;
-o- [GS4] - [global_defs.rb] feat: deprecate various Char module methods PR#523&lt;br /&gt;
-o- [GS4] - [spellsong.rb] bugfix: cache spellsong duration calc PR#551&lt;br /&gt;
-o- [GS4] - [effects.rb] feat: Effects module breakout PR#549&lt;br /&gt;
-o- [GS4] - [group.rb][disk.rb] feat: Group &amp;amp; Disk class PR#532&lt;br /&gt;
-o- [GS4] - [activespell.rb] feat: add duration change messaging, off by default, see ;help for details PR#487&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add Game:Character to debug log file ouput&lt;br /&gt;
-o- [All] - [init.rb] feat: add milliseconds to debug filename&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: reorder parsing of $SERVERSTRING to avoid certain conflicts&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: update for new Empath resource and sleep/bind messaging&lt;br /&gt;
-o- [GS4] - [status.rb] bugfix: bound? calmed? and sleeping? support for spellnames flag being off&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: additional creature dying messaging to check against XML dead not being sent&lt;br /&gt;
-o- [GS4] - [gameobj.rb] bugfix: remove sorcerer arms and animates from GameObj.targets&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - Ruby 3.3 compatibility&lt;br /&gt;
-o- [All] - [lich.rbw] feat: adds .sources for up/downstream hooks&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: don&#039;t use WINE for custom frontends&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back Char.stance&lt;br /&gt;
-o- [GS4] - [claim.rb] feat: new module and associated changes to xmlparser&lt;br /&gt;
-o- [GS4] - [experience.rb] feat: percent experience options&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow for negative TNL exp value&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow hyphenated last names in character names&lt;br /&gt;
-o- [GS4] - [parser.rb] feat: update resource matching for new Bard service&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: catch more shield removal messages&lt;br /&gt;
-o- [GS4] - [util.rb] bugfix: underscore issue for PSMs&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.7.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Supports Ruby 3.2 - security enhancements and huge speed improvements for regex&lt;br /&gt;
-o- New libraries/modules/classes: Account, HMR (Hot Module Reloading)&lt;br /&gt;
-o- GS4 Infomon now baked into Lich5 as a library, no more need to run standalone script&lt;br /&gt;
-o- New GS4 libraries/modules/classes: Ascension, Bounty, Currency, Experience, Resources, Society, Status, Warcry&lt;br /&gt;
-o- Updates to existing libraries/modules/classes: Armor, Util, Weapon, Spell, GameObj, Messaging&lt;br /&gt;
-o- Several Bugfixes for lots of things&lt;br /&gt;
-o- Lots of code cleanup&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML errors&lt;br /&gt;
-o- Adds the DR Plat instance for Frostbite FE&lt;br /&gt;
-o- Adds ‘ball’ as the noun used for ‘ball and chain’&lt;br /&gt;
-o- Adds the movement result ‘slip in the mud and fall flat’&lt;br /&gt;
-o- Corrects stamina cost for the feature Dispel Magic&lt;br /&gt;
-o- Plus all the latest script updates from Elanthia-Online!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML to limit login errors (DR)&lt;br /&gt;
-o- Fix for XMLData.active_spells to properly register wizard &#039;recovery&#039; spell cooldowns&lt;br /&gt;
-o- Messaging updates to remove error in Wizard FE encodings&lt;br /&gt;
-o- Corrects for error in detecting PSM skill changes (cman) via warrior / rogue guild lessons&lt;br /&gt;
-o- Deprecates LNet script from master repository&lt;br /&gt;
-o- Miscellaneous small bug squashing&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.6.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- (DragonRealms) Support for Genie and Frostbite frontends&lt;br /&gt;
-o- (GemStone) Changed methods to improve ;go2 speed and reduce lich.db3 calls&lt;br /&gt;
-o- (GemStone) Updates to support silver_count function&lt;br /&gt;
-o- (Both) Changed method for updating lich ecosystem&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.5.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for DragonRealms&lt;br /&gt;
-o- Updated support for scripts like BigShot&lt;br /&gt;
-o- Providing the LichID and UID on Profanity&lt;br /&gt;
-o- Spell.force_incant, .force_channel, and .force_evoke&lt;br /&gt;
-o- Standardized message method for script authors&lt;br /&gt;
-o- Sundry small improvements / fixes and changes&lt;br /&gt;
-o- And the creme de la creme - a custom directory&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.4.0&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Simu Room IDs (formally called &#039;unique ID&#039; or &#039;uid&#039; for Lich) added to Map, mapDB where known, and ;go2 for navigation (courtesy Xanlin and with our thanks!) ;go2 u7120 for all you ex-GMs out there. &lt;br /&gt;
-o- Room titles will now display the Lich ID and / or the UID for the room based on user selections - default is on for both, and enabled / disabled via Lich.display_lichid or Lich.display_uid toggles that can be set to on / off or true / false. (;e Lich.display_lichid=true/false and ;e Lich.display_uid=true/false) You can remove that rnum from your autostart now! To gain the benefit of the UID deployment, be sure to ;repo download-mapdb&lt;br /&gt;
-o- REQUESTS: Drop 5 minute timeout function from Lich&lt;br /&gt;
-o- waitrt? and waitcastrt? will still pause activities, but will return TRUE or FALSE in keeping with the Ruby functionname? tradition (no more failing to get a weapon out due to RT from climbing!)&lt;br /&gt;
-o- empty_hands and fill_hands will now check to see if the character is in roundtime before trying to put away or retrieve held items&lt;br /&gt;
-o- Infomon received an update that keeps spell timers in sync with the information received from the server - no more need to immediately do a spell active in game to get the right times to display for various legacy scripts and ;magic after visiting the invoker or using an SK item&lt;br /&gt;
-o- Lich now provides a facility to get current coins on the character that is a bit more agnostic to data changes from Simu - Lich::Util.silver_count&lt;br /&gt;
-o- Various other small tidbits to help ease maintenance and future development&lt;br /&gt;
-o- PLEASE NOTE:  This update is required for the newest Bigshot (released today!) and for future eloot and eherbs scripts (release RSN)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.3.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Added support for Wrayth (renamed Stormfront) installations &lt;br /&gt;
-o- Converted Linux | WINE login methods to &#039;method 0&#039;, does not use Simu launcher&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.2.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for STOWing items irrespective of special item scripts&lt;br /&gt;
-o- Improved query support for Effects and CMans&lt;br /&gt;
-o- Fix Lich bug to respect the &#039;groupmovement&#039; flag in game&lt;br /&gt;
-o- Fix Lich round time calculations (more aggressive timing)&lt;br /&gt;
-o- Dark Mode is now a thing&lt;br /&gt;
-o- Lich4 Style GUI layout available&lt;br /&gt;
-o- Several file location changes to support future code change efforts&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.19&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Benefit: Monks with Mental Acuity (all 3 of you) rejoice - stamina casting!&lt;br /&gt;
-o- Benefit: PSM3 included, no charge. No hair remaining, either!&lt;br /&gt;
-o- Benefit: Ok, stay seated: Some of your various SF spell duration windows may work. . . better? Yes, not perfect, but better. No pictures, please!&lt;br /&gt;
-o- Updated infomon that properly detects Cloak of Shadows on those pesky sorcerers, and the Raise Dead Cooldown periods for those wondrous clerics.&lt;br /&gt;
-o- A new update process for Lich 5 - tired of having to download that script over and over just to update? Get yourself a copy of lich5-update.lic. Note, if you already have it, you&#039;re set! If not - ;jinx script install lich5-update --repo=elanthia-online&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Updated the method used to log onto SIMU servers.&lt;br /&gt;
-o- Added the Animalist item specifics to Lich5&#039;s empty and fill hands routines&lt;br /&gt;
-o- Improved Invoker messages for Avalon and Wizard FEs (no change for SF FE)&lt;br /&gt;
-o- Improved cleanup and store methods when player EXIT&#039;s or QUIT&#039;s game&lt;br /&gt;
-o- Crafted two new methods (stash_hands and equip_hands) for future script use&lt;br /&gt;
-o- Some behind-the-scenes cleanup to improve maintaining the Lich5 ecosystem&lt;br /&gt;
-o- Add Spell Active improvements&lt;br /&gt;
-o- Add PSM and Ranger improvements&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
* [[Mac Installation - Lich (software)]]&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
[[Category:New Player]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=263766</id>
		<title>Lich:Software/Installation</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=263766"/>
		<updated>2026-08-14T19:15:43Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Installing the Latest Stable Release */ update for 5.20.0 release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
=About=&lt;br /&gt;
&lt;br /&gt;
Lich is an add-on scripting engine that works alongside existing front ends.  The most common installation is a combination of Lich on Windows using the Wrayth or Wizard FE. Lich is also used by many on both MacOS and multiple Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=Installing the Latest Stable Release=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The latest stable lich version is 5.20.0 supporting Ruby 4.0 - published August 11, 2026&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==In-Place Upgrade==&lt;br /&gt;
&lt;br /&gt;
If you are on an older version of Lich 5 and want to upgrade to the most current version, you can choose to either upgrade Lich5 only or both Lich 5 and Ruby. If you&#039;re currently on Lich 4, able to check by running the command &amp;lt;CODE&amp;gt;;e echo LICH_VERSION&amp;lt;/CODE&amp;gt;, go to the [[#Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)|upgrade from Lich 4 section]].&lt;br /&gt;
&lt;br /&gt;
For each section, please follow the directions/commands one at a time.&lt;br /&gt;
&lt;br /&gt;
===Lich 5 Only===&lt;br /&gt;
&lt;br /&gt;
====Lich 5.7 or newer====&lt;br /&gt;
# You must be running Ruby 4.0 or greater for Lich 5.19 +.  If unsure, please update both (see below)!&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Run this command in-game &amp;lt;CODE&amp;gt;;lich5-update --update&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
====Lich 5.6 or older====&lt;br /&gt;
Please proceed to updating both Ruby and Lich 5&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 4.0 &amp;amp; Lich 5===&lt;br /&gt;
This method is for Windows only. Linux and MacOS users, please do a Lich 5 only update and update Ruby manually via normal install/update methods for the OS.&lt;br /&gt;
&lt;br /&gt;
# Logout of all characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall existing Ruby4Lich5 installs from Programs &amp;amp; Features control panel, or alternatively, rename your existing Ruby4Lich5 folder to Ruby4Lich5save. (Defaults to C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the installer and be sure to have both Ruby and Lich 5 option selected&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich &amp;amp; Ruby!&lt;br /&gt;
&lt;br /&gt;
===Ruby 4.0 Only===&lt;br /&gt;
Use this to upgrade to the newest version of Ruby only if you&#039;re already on the latest version of Lich5 and now want to update Ruby afterwards. If you&#039;re not already on the latest version of Lich5, please use previous section steps instead.&lt;br /&gt;
# Logout of all instances/characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall your existing Ruby4Lich5 install via Programs &amp;amp; Features (ensure it&#039;s now gone, default location was C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the new installer and choose to only install Ruby Only&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version Ruby!&lt;br /&gt;
&lt;br /&gt;
==Windows New Installation==&lt;br /&gt;
&lt;br /&gt;
{{blue|These instructions are not for DragonRealms. [[#Ecosystem Information|For those scroll to the bottom]].}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows 11 / 10 / 8 / 7&#039;&#039;&#039; users: you can download the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and install everything you need automatically. Click on the &#039;&#039;&#039;Ruby4Lich5.exe&#039;&#039;&#039; and download it to your computer then double click on the executable in your default download folder. Note, a user may need to adjust their browser or security settings to allow download and installation.&lt;br /&gt;
If you have never played before, follow the &#039;New Installation&#039; instructions. If you have played before, and have used Lich before, follow the &#039;Upgrade Installation&#039; instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Installation for Lich 5 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Please log into the game of your choice through the Simutronics website first&#039;&#039;&#039;.  Install the launcher (not SGE), and install your FrontEnd of Choice.  The Wrayth FrontEnd is presently the supported FrontEnd, but Wizard will work as well, if you are nostalgic.  After you&#039;ve logged in, log out and continue.&lt;br /&gt;
# Download and Run the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe  Installer]. You will receive the Microsoft Warning because this is not distributed through the MS Store.  Click on &#039;More Info&#039; and then select the &#039;Run Anyway&#039; button.&lt;br /&gt;
# The installation may take a few minutes, especially on non-SSD harddrives.&lt;br /&gt;
# A Lich5 folder will be placed on your desktop after the install is finished, open that folder and double click the lich.rbw file contained inside to start Lich&#039;s Game Entry window.&lt;br /&gt;
# Use your existing Simutronics Account and Password and click connect.  Then select the character you wish to play, and select the FrontEnd you wish to use.  Then click the Play button.&lt;br /&gt;
# Your game FrontEnd should start, and you should see Lich5 initializing.  You will see it downloading files - these are the map files, wait for the download to finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
This option is deprecated.  Lich 5 architectures are not compatible with Lich 4. Back up your existing Lich 4 folder, uninstall any existing Ruby executables, and then follow the instructions for a new install above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional assistance in installation can be found in the scripting channel of the GemStone [https://discord.gg/KF9Wr8u Discord].&lt;br /&gt;
&lt;br /&gt;
==MacOS==&lt;br /&gt;
There two common options for playing Gemstone IV on a Mac is either to play natively with Avalon or to use virtualization software such as Parallels with Wrayth/WizardFE. Below are the options on how to do that.&lt;br /&gt;
&lt;br /&gt;
===Native Avalon===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. This process works well for Mac OS Catalina and Big Sur. If you have not updated your Mac OS yet, these instructions may work depending on your actual version.  If you run into a snag, follow the contact instructions provided.&lt;br /&gt;
&lt;br /&gt;
===Parallels Windows===&lt;br /&gt;
With the latest releases of Ruby4Lich5 installer, you can now follow the normal Windows installation for both Intel and Apple silicon based Apple computers.&lt;br /&gt;
&lt;br /&gt;
To install Wrayth/WizardFE, Lich, and Ruby via Parallels you will need to do a few various steps as outlined below. Please note, the rubyw file in C:\Ruby4Lich5\X.X.X\bin may be set to run in compatibility mode for windows 7.  On an ARM Mac running parallels, this may causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file could fixe this issue if it was enabled.&lt;br /&gt;
&lt;br /&gt;
The following steps are to be done AFTER you&#039;ve successfully installed Wrayth/WizardFE and can login normally without Lich5 on the machine. Once you&#039;ve done that and can successful connect normally, then follow these steps:&lt;br /&gt;
# Download and install [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and use default options presented during install&lt;br /&gt;
# Double click the lich.rbw file that is now located in the extracted Lich5 location you did above. Login and play as usual.&lt;br /&gt;
&lt;br /&gt;
==Chromebook &amp;amp; Debian variants==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-debian&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-debian&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Debian/Chromebooks. Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1.&#039;&#039;&#039; &lt;br /&gt;
Update the list of available software and make sure some requirements are installed:&lt;br /&gt;
&amp;lt;!-- don&#039;t think I&#039;m gonna include this stuff but might as well not delete it.&lt;br /&gt;
:&amp;lt;small&amp;gt;sudo: as a super-user&amp;lt;/small&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;apt-get: Debian&#039;s software repository&amp;lt;/small&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;-y: answer all questions yes&amp;lt;/small&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get -y update&lt;br /&gt;
sudo apt-get -y install autoconf bison build-essential curl libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libsqlite3-dev git unzip libcairo2-dev libgirepository1.0-dev libgtk-3-dev gobject-introspection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing Ruby installation rather than installing from scratch, skip steps 2, 3, and 4.  Instead, update your ruby-build with the following command, and then proceed to Step 5.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2.&#039;&#039;&#039;&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3.&#039;&#039;&#039;&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4.&#039;&#039;&#039;&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Arch Linux &amp;amp; Arch-based distributions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-arch&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-arch&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
Update the system and install required dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pacman -Syu&lt;br /&gt;
sudo pacman -S --needed base-devel openssl libyaml readline zlib ncurses libffi gdbm sqlite git unzip curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby 3.4.5 and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fedora==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-fedora&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-fedora&amp;quot;&amp;gt;&lt;br /&gt;
Currently supported versions of Fedora&lt;br /&gt;
* 41 uses Ruby 3.3&lt;br /&gt;
* 42 uses Ruby 3.4&lt;br /&gt;
* 43 uses Ruby 3.4&lt;br /&gt;
All of which are currently compatible with Lich 5.7.0 or higher.&lt;br /&gt;
&lt;br /&gt;
1. Update The Base Installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf -y update&lt;br /&gt;
$ sudo dnf -y install vim git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Install required Ruby and Development packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf install -y autoconf bison cairo-devel curl gcc gdbm gdbm-devel gdk-pixbuf2-devel glib2-devel \&lt;br /&gt;
gobject-introspection-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5a. Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5b. Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Popular Scripts=&lt;br /&gt;
{{#section:Lich:Script Repository|popularscripts}}&lt;br /&gt;
&lt;br /&gt;
=Ecosystem Information=&lt;br /&gt;
&lt;br /&gt;
* DragonRealms Variant - [https://elanthipedia.play.net/Lich_script_repository#Setup_and_Installation Setup and Install instructions]&lt;br /&gt;
&lt;br /&gt;
=Lich Changelog=&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-changelog&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-changelog&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* lower game socket keepalive idle from 120s to 30s (#1449)&lt;br /&gt;
* resilient ActiveSessions ownership + shutdown watchdog (#1452)&lt;br /&gt;
* Quit Gtk.main cleanly (#1455)&lt;br /&gt;
* Refactor regex to string comparisons for ARGV options (#1456)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* ingest newly-exposed mindState experience and roommeta room fields (#1450)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add character generator support via EAccess protocol (#1384)&lt;br /&gt;
* Add modern script command shutdown method (#1385)&lt;br /&gt;
* migrate the server-stream parser from REXML to Ox, with pipe-mode benchmark harness and DR parser coverage (#1396)&lt;br /&gt;
* enumerate script subdirs with file glob (#1397)&lt;br /&gt;
* add --bind-address option to set listen socket address (#1405)&lt;br /&gt;
* add central method to determine lich ver (#1417)&lt;br /&gt;
* setup_files: support scripts/data/custom for user data overrides (#1431)&lt;br /&gt;
* Modify running? method to support optional exact matching of script names (#1436)&lt;br /&gt;
* keyword bind hosts for the detachable client (tailscale/lan/any) (#1437)&lt;br /&gt;
* add roomlinks/roommono toggles for room display (#1438)&lt;br /&gt;
* self-healing gem requires (#1439)&lt;br /&gt;
* various Saga FE compatibility tweaks (#1443)&lt;br /&gt;
* add macOS limited gem recovery (#1448)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Capture combat position from the balance status line (#1400)&lt;br /&gt;
* detect scheduled shutdown and expose it on DRParser (#1409)&lt;br /&gt;
* xmlparser: add structured parser for the assess (combat situation) stream (#1413)&lt;br /&gt;
* Implement DRCA.need_buffs? method for buff checks (#1428)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* anchor Infomon parser regex unions to line start (#1391)&lt;br /&gt;
* creature xml additions (#1425)&lt;br /&gt;
* add creature template library (#1427)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* surface a failed Game.open in the connect timeout (#1408)&lt;br /&gt;
* bound long-session memory growth (index/hook/watchfor/buffer leaks) (#1410)&lt;br /&gt;
* improve and harden shutdown (#1416)&lt;br /&gt;
* use bundler to check for required Ruby gems (#1420)&lt;br /&gt;
* pin lich directory for gemfile check (#1423)&lt;br /&gt;
* Show CLI login ARGV for SAL connections (#1424)&lt;br /&gt;
* increase read timeout on idle socket to 300 seconds (#1426)&lt;br /&gt;
* monkeypatch gi for memoryreleaser / asyncprocessor until patched upstream (#1429)&lt;br /&gt;
* Mapdb sort tags by downcase and original case (#1433)&lt;br /&gt;
* stop locking the load path at boot; keep Gemfile.lock in sync on self-update (#1434)&lt;br /&gt;
* minimum Ruby 4.0 required &amp;amp; migrate Ruby version check (#1444)&lt;br /&gt;
* align --announce with --update for Ruby version (#1447)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* BalanceValue regex to match combat status lines (#1398)&lt;br /&gt;
* equipmanager.rb - Fix unload weapon detection when AimTimerDialog tag is prepended (#1414)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* global_defs update pushStream regex to include &#039;reserve&#039; id (#1379)&lt;br /&gt;
* psms Warcry.available? correction (#1387)&lt;br /&gt;
* xmlparser support new field exp, climate, terrain XML feeds (#1388)&lt;br /&gt;
* global_defs move() update regex for standing condition (#1407)&lt;br /&gt;
* Currency add method to retrieve aevit event currency (#1411)&lt;br /&gt;
* Stash check result type before comparing regex for wear_to_inv (#1430)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.18.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-crafting add method for creating mechanisms (#1375)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* stringproc normalize CRLF | CR to LF (#1378)&lt;br /&gt;
* rubocop custom cop ascii only cleanup (#1382)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* equipmanager update to assume missing items aren&#039;t worn (#1376)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1326)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Script module replace MemoryReleaser with GC.start for cleanup (#1364)&lt;br /&gt;
* Add sqlite busy timeout policy to core (#1365)&lt;br /&gt;
* Script#kill remove GC.start and add optional instrumentation (#1368)&lt;br /&gt;
* reorder shutdown ala MahtraDR and detect script teardown de... (#1369)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* harden custom repo identity, collision, and contract boundaries (#1333)&lt;br /&gt;
* stop SessionLifecycle before closing database on normal exit (#1334)&lt;br /&gt;
* harden FeatureFlags for closed db handle (#1335)&lt;br /&gt;
* SynchronizedSocket write resilience and zombie client elimination (#1338)&lt;br /&gt;
* correct RP timing issue for release notes (#1348)&lt;br /&gt;
* gate object cleanup in GTK queue (#1354)&lt;br /&gt;
* recover from cross-process zombie in ActiveSessions service (#1355)&lt;br /&gt;
* Improve shutdown session state handling (#1359)&lt;br /&gt;
* non-ascii hygeine to address rubocop errors (#1360)&lt;br /&gt;
* Remove debug log IO from heartbeat tick loop (#1363)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRC text2num correction for thousand (#1343)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Overwatch add REVEALED_EXPLODES regex pattern (#1356)&lt;br /&gt;
* Stash add_to_bag result type check before regex compare (#1357)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* enable heartbeat-driven failover for ActiveSessions service owner (#1340)&lt;br /&gt;
* copy Gemfile and LICENSE during self-update (#1345)&lt;br /&gt;
* Add top-level parse_args/display_args bridge to global_defs (#1346)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* replace undefined custom_require in check_moonwatch (#1336)&lt;br /&gt;
* set_stance places 100 in the correct positional slot (#1337)&lt;br /&gt;
* cache SlackBot users list to prevent API throttling (#1342)&lt;br /&gt;
* Add CORE_AUTOSTART sentinel to skip dependency.lic autostart helpers (#1344)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon Status.cutthroat? Effect Debuff correction (#1331)&lt;br /&gt;
* add support for RESERVE xml in GameObj.reserve (#1341)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* custom 3rd-party repo support for ScriptSync (#1285)&lt;br /&gt;
* Add get_settings, get_data, start_scripts_if_available to core (#1305)&lt;br /&gt;
* Add Map.apply_wayto_overrides for personal map overrides (#1306)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Decouple SetupFiles from script-scoped echo and XML feed timing (#1304)&lt;br /&gt;
* Add game flags and obsolete script warnings to DRInfomon startup (#1307)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* use :__unset for --without-frontend CLI request YAML matches (#1301)&lt;br /&gt;
* prevent zombie server deadlock in Active Sessions accept loop (#1302)&lt;br /&gt;
* improve MacOS keychain system check for older OS variants (#1310)&lt;br /&gt;
* stub sync_all_repos to prevent leaked thread in games_spec (#1311)&lt;br /&gt;
* enforce beta confirmation 10s timeout (#1315)&lt;br /&gt;
* use send(:respond) in StatusReporter fallback path (#1316)&lt;br /&gt;
* ensure SessionLifecycle.stop runs on abnormal exit (#1317)&lt;br /&gt;
* address ActiveSessions lifecycle hot path feature-flag polling (#1325)&lt;br /&gt;
* catch ECONNRESET in _puts and bound walk_to retry depth (#1327)&lt;br /&gt;
* safeguard gtk logo.png loading (#1329)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Add InnCheckedOut pattern to parser (#1309)&lt;br /&gt;
* Claim corrections to handle mounts in room_players stream (#1324)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
* repair regression on gui button reenable from refactor (#1297)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Mutli-launch persistent login GUI (#1245)&lt;br /&gt;
* Remove Windows OS CMD prompt flash (#1255)&lt;br /&gt;
* guard against broken pipe errors in Game._puts and send_to_client (#1260)&lt;br /&gt;
* add timeout safety to fput to prevent infinite hangs (#1261)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* anchor stow success pattern to prevent fan close recovery bypass (#1254)&lt;br /&gt;
* add bounded recursion depth limits to 9 methods (#1257)&lt;br /&gt;
* stow_helper failure detection + unload_weapon ammo recovery (#1259)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add InstanceSettings for core Settings API access (#1233)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Overwatch module into core (#1201)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* fix GameObj container initialization and add clear_all_containers (#1226)&lt;br /&gt;
* GameObj object dedupe &amp;amp; GC (#1234)&lt;br /&gt;
* script.rb show Script.kill source (#1235)&lt;br /&gt;
* Exit quickly on CLI authentication failure (#1237)&lt;br /&gt;
* suppress wine detection noise and skip when unneeded (#1244)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DR modules fixes and enhancements (#1232)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* psms.rb add additional failure matches (#1238)&lt;br /&gt;
* Bounty parser fix regex pattern for skin retrieval task (#1242)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* add retry with exponential backoff for all login authentication (#1205)&lt;br /&gt;
* update.rb allow for bugfix betas and branch updates (#1211)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb bug in _key transformation (#1216)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Change server_time_offset in XMLParser to be float instead of int (#1184)&lt;br /&gt;
* change encodings in main.rb to wizard FE only (#1199)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon parser.rb update Account.subscription/type (#1192)&lt;br /&gt;
* spell.rb add last_cast to track last time casted (#1193)&lt;br /&gt;
* stash.rb additional improvements with ReadyList/StowList (#1197)&lt;br /&gt;
* Infomon parser.rb bug in EnhanciveEnd (#1198)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add Genie map cross-reference fields to the DragonRealms map data model (#1169)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRExpMonitor move into core lich (#1154)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* add Enhancive module for enhancive item bonus tracking (#1113)&lt;br /&gt;
* add QStrike module for optimal stamina-based RT reduction (#1114)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* remove strip! from settingsInfo replacement (#1161)&lt;br /&gt;
* map_base.rb sort JSON better (#1171)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* logbook_item recovery when crafted item not in hand (#1175)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* xmlparser.rb capture additional death messaging (#1158)&lt;br /&gt;
* stash.rb ReadyList sheath handling and update inventory checks (#1166)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* allow --add-account to run without yaml and dat (#1143)&lt;br /&gt;
* enable --login for multi-variable custom launch commands (#1144)&lt;br /&gt;
* update.rb pervent update if MIN_RUBY not met (#1146)&lt;br /&gt;
* messaging.rb return &amp;quot;&amp;quot; for xml_encode with Wizard (#1147)&lt;br /&gt;
* prevent closing connection on module reload (#1148)&lt;br /&gt;
* Allow hmr to work on global_defs.rb (#1156)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* buffer split room obj lines and merge instead of appending closing tag to broken line (#1149)&lt;br /&gt;
* add buffering for multiline room players (#1151)&lt;br /&gt;
* add verify_script def here instead of depending on dependency (#1155)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb added updated_at field to upsert_batch (#1145)&lt;br /&gt;
* stowlist.rb check method fix when dead (#1152)&lt;br /&gt;
* readylist.rb check method fix when dead (#1153)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* util.rb only show gem installing debug messaging if gem mis… (#1131)&lt;br /&gt;
* add --gs and --dr, refactor argv_options to helpers (#1133)&lt;br /&gt;
* fix multiple custom entries, improvements to yaml save (#1134)&lt;br /&gt;
* login_tab_utils.rb expand helper text show Warlock (#1135)&lt;br /&gt;
* update CLI for YAML security signature, add auto-convert fo… (#1136)&lt;br /&gt;
* remove password parameter from debug logging in all cases (#1137)&lt;br /&gt;
* reduce minimum GUI window footprint for non-tabbed view (#1138)&lt;br /&gt;
* remove double save in YAML to preserve yaml.bak integrity (#1139)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* stash.rb additional improvements (#1132)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* force system gem install if RubyGems fails (#1126)&lt;br /&gt;
* gui_login prevent destroying window if already destroyed (#1127)&lt;br /&gt;
* add window size / position saves to login GUI (#1128)&lt;br /&gt;
* non tabbed saved entries in reduced button / font size (not… (#1129)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* account manager sorting GUI fix (#1123)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* install_gem_requirements update available gems after install (#1120)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* password_cipher.rb upcase account_name for key (#1118)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* validator.rb change sleep to should_sleep named param (#1116)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* add base stats capture from &#039;info full&#039; command (#1115)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Refocus Frontend (#960)&lt;br /&gt;
* socket configurator to better guard TCPSocket (#976)&lt;br /&gt;
* add simplified DB maintenance (#991)&lt;br /&gt;
* TextStripper module support for XML, HTML, Markdown (#1055)&lt;br /&gt;
* Login modernization and refactor to yaml (#1063)&lt;br /&gt;
* Ruby Memory Releaser module (#1066)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* support meta:trashcan tag for DRCI.dispose_trash (#966)&lt;br /&gt;
* Add GameObj.inv support for DR items (#1080)&lt;br /&gt;
* DRCS allow custom adjective for summoned weapons (#1088)&lt;br /&gt;
* DRParser support for new exp window xml stream elements (rested exp, tdps, favors) (#1104)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Add Armaments (Weapon, Armor, and Shield) Module (#911)&lt;br /&gt;
* add creature module, including Hinterwilds creatures (#1002)&lt;br /&gt;
* Creature module combat tracking (#1003)&lt;br /&gt;
* track time of last total_experience record (#1030)&lt;br /&gt;
* add Injured class for checking ability to perform actions (#1035)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* map dijkstra optimization (#1061)&lt;br /&gt;
* update.rb keep script/data file incase of error on update (#1070)&lt;br /&gt;
* ensure proxy path is set for non-destructive array write-th… (#1073)&lt;br /&gt;
* [lib][global-defs] - move update (#1079)&lt;br /&gt;
* GameObj force new objects ID to be string (#1087)&lt;br /&gt;
* xmlparser.rb gate GSL exits sending behind @send_fake_tags (#1103)&lt;br /&gt;
* change Hash[] pair key conversion to use to_h for Ruby 4.0 (#1108)&lt;br /&gt;
* move gui-login.rb to Ruby standard gui_login.rb (#1111)&lt;br /&gt;
* update location for currency and move game-loader.rb to Ruby standard gameloader.rb (#1112)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRCA allow custom spell prep messaging (#1089)&lt;br /&gt;
* Update Slackbot error handling, and lnet management (#1091)&lt;br /&gt;
* Fix exp mods parsing for DR (#1102)&lt;br /&gt;
* equipmanager.rb support for custom messaging in forester&#039;s longbow (#1105)&lt;br /&gt;
* Fix hang in equipment manager when game doesn&#039;t respond to commands (#1110)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon additional CHE resign regex (#1067)&lt;br /&gt;
* Resource tracking for sorcerer shadow essence (#1085)&lt;br /&gt;
* cman.rb add hamstring regex for already lying down target (#1090)&lt;br /&gt;
* cman.rb hamstring regex update when can&#039;t perform on target (#1092)&lt;br /&gt;
* Bounty parser.rb FWI guard regex update (#1096)&lt;br /&gt;
* currency.rb track gold (#1109)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.12&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (general)&lt;br /&gt;
    Update module strip markdown comments (#1056)&lt;br /&gt;
    Vars/UserVars module fixes and corrections (#1057)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    Infomon parse fix for singular currency (#1051)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (dr)&lt;br /&gt;
    add bput match for system updates preventing actions (#1034)&lt;br /&gt;
    drdefs.rb npc parsing (#1038)&lt;br /&gt;
    Fix container reference in get_item_from_eddy_portal method (#1039)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    bounty location regex needs to match &amp;quot;under&amp;quot; (#1037)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.10&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: games.rb catch additional error for nested single/double quotes (#1031)&lt;br /&gt;
    dr: change keys for DR_SKILLS_DATA[:guild_skill_aliases] to be strings instead of symbols (#1032)&lt;br /&gt;
    gs: Bounty parser for SG npcs matching (#1027)&lt;br /&gt;
    gs: match READY/STOW items with a/an/some inside the link (#1026)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.9&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    gs: StowList/ReadyList reset bug if non-default keys added #1019&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: script.rb show custom at script exit as well (#993)&lt;br /&gt;
    all: Updated update.rb for single trunk and release please (#1001)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.7&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): ensure updates do not target detached proxy views #990 &lt;br /&gt;
fix(gs): bounty parser and move fixes for sailor&#039;s grief #987 &lt;br /&gt;
fix(gs): Infomon xmlparser.rb Ready/Stow fix for LONG before exist #988 &lt;br /&gt;
fix(gs): gameobj.rb for Sailor&#039;s Grief ghostly/boss/guild tentacles #989 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): settings.rb update to preserve root of derived views #975&lt;br /&gt;
fix(all): show custom in various script output when custom script #967&lt;br /&gt;
fix(dr): drparser.rb update for PlayedSubscription #983&lt;br /&gt;
fix(gs): include store location for ReadyList #977&lt;br /&gt;
fix(gs): infomon parser.rb update for ACCOUNT output varies #979&lt;br /&gt;
fix(gs): global_defs.rb move def update for Hive traps #980&lt;br /&gt;
fix(gs): activespell.rb prevent removal of RF Penalty #981&lt;br /&gt;
fix(gs): add .compact to input of Disk.find_by_name #982&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): update.rb word boundary for abbreviations #971&lt;br /&gt;
fix(dr): equipmanager.rb Fix for changed game output. #969&lt;br /&gt;
fix(dr): common-arcana.rb Regalia fix for changed game output. #970&lt;br /&gt;
fix(dr): common-items.rb Fix for changed inventory command output #973&lt;br /&gt;
fix(gs): StowList missing space in capture in xmlparser.rb #963&lt;br /&gt;
fix(gs): stowlist.rb wait for RT when issuing check #964&lt;br /&gt;
fix(gs): readylist.rb wait for RT when issuing check #965&lt;br /&gt;
fix(gs): Bounty heirloom return msg&#039;ing update #972&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
build(all): installer.yml use windows-2022 #950&lt;br /&gt;
fix(all): restore Wrayth / Wizard script execution ability #952&lt;br /&gt;
fix(all): database_adapter.rb error handling improvement #956&lt;br /&gt;
fix(dr): common-items.rb wear/remove messaging additions #949&lt;br /&gt;
fix(dr): games.rb - ignore UIDs for Frostbite mapping #951&lt;br /&gt;
fix(dr): map_dr.rb prevent inadvertent settings changes #958&lt;br /&gt;
fix(gs): GameObj targets for new Sailor&#039;s Grief tentacle npc #948&lt;br /&gt;
fix(gs): map_gs.rb remove delete_if to prevent bad settings #957&lt;br /&gt;
fix(gs): weapon.rb assault break if no targets #962&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): limitedarray.rb max_size increase #946&lt;br /&gt;
fix(all): uservars.rb update for vars method missing #940&lt;br /&gt;
fix(dr): drparser.rb to set ShowRoomID to on if turned off #945&lt;br /&gt;
fix(gs): change namespace accessors to Ruby 2.6 compatible #944&lt;br /&gt;
fix(gs): infomon state reset on status prompt #943&lt;br /&gt;
fix(gs): Societies to check membership for various methods #942&lt;br /&gt;
fix(gs): standardize warcry.rb to match other PSMS #941&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(gs): infomon parser.rb for profile full name matching #938&lt;br /&gt;
fix(gs): force PROFILE FULL to sync CHE info for infomon #937&lt;br /&gt;
fix(dr): Tighten checks on releasing invisibility for thieves #936&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): gameobj.rb - add type? method for explicit type check #928&lt;br /&gt;
- fix(all): messaging.rb encoding issue #933&lt;br /&gt;
- fix(gs): Various CMan cost corrections #932&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- feat(all): settings.rb - proposal for sequel based Settings #591, #875, #889, #896, #927&lt;br /&gt;
- feat(all): util.rb add Ruby gem install helper method #861&lt;br /&gt;
- feat(all): messaging.rb add cmd link method #866&lt;br /&gt;
- refactor(all): games.rb modernization #849, #882, #924&lt;br /&gt;
- fix(all): add class extensions #800&lt;br /&gt;
- fix(all): lich.rb deprecated FE message #852&lt;br /&gt;
- fix(all): messaging.rb fix XML encoding for wizard and avalon #853&lt;br /&gt;
- fix(all): lich.rb class variable not initialized #855&lt;br /&gt;
- fix(all): log.rb force msg to String for regexp comparison #856&lt;br /&gt;
- fix(all): global_defs.rb bug in fput #864&lt;br /&gt;
- fix(all): messaging.rb xml_encode mono method msg #868&lt;br /&gt;
- fix(all): script.rb class to is_a? checks #878&lt;br /&gt;
- fix(all): gameobj.rb deeper lookup #885&lt;br /&gt;
- fix(all): messaging.rb debug not compared to falseclass #887&lt;br /&gt;
- fix(all): change class to is_a? checks #91-3&lt;br /&gt;
- fix(all): Util.issue_command allow single line captures #918&lt;br /&gt;
- fix(dr): drparser.rb casing for Premium status check #842&lt;br /&gt;
- fix(dr): map_dr.rb Don&#039;t assign UID of zero to rooms #844&lt;br /&gt;
- fix(dr): drparser.rb add $last_logoff tracking #851&lt;br /&gt;
- fix(dr): update message patterns in common-items #859&lt;br /&gt;
- fix(dr): add moon_visible?(moon) convenience method to common-moonmage #860&lt;br /&gt;
- fix(dr): exp mods output is not enclosed in preset xml tags anymore #870&lt;br /&gt;
- fix(dr): update.rb beta send validation for genie lich char #880&lt;br /&gt;
- fix(dr): Update regex and parsing for active spells #894&lt;br /&gt;
- fix(dr): add &#039;You scoop&#039; match pattern to common-items #900&lt;br /&gt;
- fix(dr): add missing match patterns #901&lt;br /&gt;
- fix(dr): common-items: add and fix match strings #904&lt;br /&gt;
- fix(dr): Add missing matches for common-items #905&lt;br /&gt;
- fix(dr): Release Khri Vanish if Thief, when going visible #906&lt;br /&gt;
- fix(dr): Fix race condition when clearing and repopulating XMLData.dr_active_spells #907&lt;br /&gt;
- fix(dr): Fix SLS release pattern #908&lt;br /&gt;
- fix(dr): resolve race condition in DR crafting_magic_routine #914&lt;br /&gt;
- fix(dr): xmlparser.rb - Fix XMLData.dr_active_spells race condition #915&lt;br /&gt;
- fix(dr): xmlparser.rb - Clear out spells properly #916&lt;br /&gt;
- fix(dr): drparser.rb update for Platinum account status #922&lt;br /&gt;
- feat(gs): gameobj.rb allow for custom gameobj data #848&lt;br /&gt;
- feat(gs): PSMS updates, including CMan.use #865, #874, #881, #890, #899&lt;br /&gt;
- feat(gs): ReadyList &amp;amp; StowList classes for item tracking #884&lt;br /&gt;
- feat(gs): Breakout and Buildout Societes #919&lt;br /&gt;
- fix(gs): infomon parsing for CHE membership #841&lt;br /&gt;
- fix(gs): map_gs.rb for no UID when hexdigest used #843&lt;br /&gt;
- fix(gs): warcry.rb yowlp :buff to string instead of regexp #847&lt;br /&gt;
- fix(gs): group.rb multiple corrections #850, #869, #883&lt;br /&gt;
- fix(gs): Bounty parser.rb fix for HW &amp;amp; KF guard return #862&lt;br /&gt;
- fix(gs): Bounty task.rb fix for assigned? and Ruby 2.6 #863&lt;br /&gt;
- fix(gs): stash.rb stale sheaths recheck #867&lt;br /&gt;
- fix(gs): allow spell.rb casting to take a force_stance parameter #902&lt;br /&gt;
- fix(gs): update Infomon parsing for new ACCOUNT output format #903&lt;br /&gt;
- fix(gs): PSMS cost for multiple cost types &amp;amp; add Excoriate feat #912&lt;br /&gt;
- fix(gs): Feat excoriate regex correction #920&lt;br /&gt;
- fix(gs): weapon PSM affordable check against Glorious Momentum #926&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): restore @theme_state and add to CLI capability #795&lt;br /&gt;
- fix(all): retire gtk2 monkey patch for gtk3 #823&lt;br /&gt;
- fix(all): games.rb XMLData.name wait till both not NIL and not EMPTY #826&lt;br /&gt;
- fix(all): standardize xmlparser game instance #827&lt;br /&gt;
- fix(all): games.rb fix multiple single and double quote in XML #832,836,837&lt;br /&gt;
- fix(dr): games.rb - optional hide Room Title display of Real IDs with FLAG on #782&lt;br /&gt;
- chore(dr): common-moonmage - refactor of peer_telescope #783&lt;br /&gt;
- fix(dr): move HMR load to common before for dragonrealms #784&lt;br /&gt;
- fix(dr): common-crafting.rb minor edit to add &amp;quot;You tuck&amp;quot; #787&lt;br /&gt;
- fix(dr): common-arcana.rb - remove unecessary pause from discern code #792&lt;br /&gt;
- fix(dr): drparser.rb Restore Premium status checking #834&lt;br /&gt;
- fix(gs): migrate PSMS.name_normal to Lich::Util.normalize_name #790,833&lt;br /&gt;
- fix(gs): add Char.che to know current character&#039;s CHE #791&lt;br /&gt;
- fix(gs): FEAT and Infomon module parsing of new Covert Art feats. #796&lt;br /&gt;
- fix(gs): add Currency.gemstone_dust and fix redsteel mark capture #797&lt;br /&gt;
- fix(gs): FEAT Covert Arts colon normalization and stamina costs #799&lt;br /&gt;
- fix(gs): escape dash in regex for HouseCHE #824&lt;br /&gt;
- fix(gs): disk.rb comparison helpers #828&lt;br /&gt;
- fix(gs): allow for Group.disks to show self disk in array #829&lt;br /&gt;
- fix(gs): feat.rb Covert Arts throw poison costs 15 stam #830&lt;br /&gt;
- fix(gs): add missing Feat.use ability #831&lt;br /&gt;
- fix(gs): multiple CritRanks updates #801-822&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- [all] - chore: Namespace &amp;amp; File Path Updates #713&lt;br /&gt;
- [all] - [argv_options.rb] bugfix: correct darkmode to work via CLI #693&lt;br /&gt;
- [all] - [games.rb] feat: make show Room Exits of non-StringProc/Obvious Exits toggable for all games #699&lt;br /&gt;
- [all] - [games.rb] feat: toggleable display of StringProcs with clickable links #751&lt;br /&gt;
- [all] - [gui-manual-login.rb] fix: change label to Wrayth #720&lt;br /&gt;
- [all] - [gui-saved-login.rb] fix: update Stormfront label #721&lt;br /&gt;
- [all] - [update.rb] fix: purge old LIB folder prior to update release #729&lt;br /&gt;
- [all] - [util.rb] bugfix: allow issue_command to use fput or put #715&lt;br /&gt;
- [all] - [xmlparser.rb] feat: add XMLData.room_name attribute #685&lt;br /&gt;
- [all] - [main.rb] fix: create session file in regular connect method #733&lt;br /&gt;
- [all] - [init.rb] bugfix: error for Windows DISPLAY variable #735&lt;br /&gt;
- [all] - [main.rb] fix: Mudlet support #736&lt;br /&gt;
- [all] - [wine.rb] fix: add --no-wine CLI flag prevent WINE startup&lt;br /&gt;
- [all] - [init.rb] fix: add --no-gtk CLI flag prevent GTK3 gem load&lt;br /&gt;
- [dr] - [games.rb] feat: DRinfomon and common files as core lich libraries #686&lt;br /&gt;
- [dr] - [games.rb] chore: add DR requires here #690&lt;br /&gt;
- [dr] - [games.rb] fix: add Room# display for DR #697&lt;br /&gt;
- [dr] - [games.rb] bugfix: Genie FE real ID#s not supported, hide by default #728&lt;br /&gt;
- [dr] - [drdefs.rb] bugfix: fix for Shadow Servants #710&lt;br /&gt;
- [dr] - [map_dr.rb] fix: cleanup and support for UIDs #719&lt;br /&gt;
- [dr] - [xmldata.rb] bugfix: add support for DR Room IDs #716&lt;br /&gt;
- [dr] - [xmlparser.rb] feat: XMLData - adding dr_active_spells #691&lt;br /&gt;
- [gs] - [games.rb] bugfix: support for pre/post room name txt #683&lt;br /&gt;
- [gs] - [group.rb] chore: update to account for hold #701&lt;br /&gt;
- [gs] - [resource.rb] feat: add additional tracking of covert art charges #714&lt;br /&gt;
- [gs] - [spell.rb] bugfix: Spell.affordable? 515 release #687&lt;br /&gt;
- [gs] - [stash.rb] bugfix: sheath_bags when not found #694&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: missing real ID in nav #684&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: Claim module obvious hiding #717&lt;br /&gt;
- [gs] - [sk.rb] feat: Self-Knowledge functionality in core #748&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: Simu XML breaking change RoomID #679&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [crit_tables] fix: CritRanks regex fixes (multiple files and changes) #671&lt;br /&gt;
-o- [GS4] - [spellsong.rb] fix: Correct Spellsong sync method #674&lt;br /&gt;
-o- [GS4] - [parser.rb] fix: thorn status regex correction #673&lt;br /&gt;
-o- [All] - [xmlparser.rb] fix: Split out if elif block to account for DR having multiple… #670&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: percentconcentration #676&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: update move failure message to handle attack and casting #667&lt;br /&gt;
-o- [All] - [init.rb] fix: update required ruby check messaging #669&lt;br /&gt;
-o- [All] - [sessionvars.rb] feat: new module SessionVars for non-persistent variable storage #666&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [DR] - [games.rb] bugfix: tweak XML rewrite section #662&lt;br /&gt;
-o- [GS4] - [crit_tables] bugfix: additional crit table regex corrections #663&lt;br /&gt;
-o- [GS4] - [ascension.rb] bugfix: add new Transcend Destiny to lookups #661&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: regexp escape txt #660&lt;br /&gt;
-o- [GS4] - [disruption_critical_table.rb] Bugfix in regex #659&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [games.rb] bugfix: prevent race condition in games thread #656 &lt;br /&gt;
-o- [All] - [init.rb] bugfix: address WINE variance between linux / installs #655&lt;br /&gt;
-o- [GS4] - [gs][stash.rb] bugfix: wear code improvement #657 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [main.rb] bugfix: correct encoding for WizardFE PR #640&lt;br /&gt;
-o- [All] - [games.rb] bugfix: correct logic for room detection when using CLI --start-scripts PR #639&lt;br /&gt;
-o- [All] - [DB_Store.rb] feat: add direct support for Simu RENAME and CHANGE PROF PR #633&lt;br /&gt;
-o- [All] - chore: breakout code to individual files for easier management PR #617&lt;br /&gt;
-o- [All] - [lich.rbw] chore: add deprecated msg to old Settings/GameSettings/CharSettings methods PR #589&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add new --dark-mode CLI option PR #583&lt;br /&gt;
-o- [All] - [global_defs.rb] bugfix: monsterbold fix for additional clients PR #581&lt;br /&gt;
-o- [All] - [update.rb] feat: update core scripts from source on Lich5 update/install PR #579&lt;br /&gt;
-o- [All] - [log.rb] feat: add new Log module copied from Olib PR #577&lt;br /&gt;
-o- [All] - [numeric.rb] feat: add days/hours/minutes/seconds methods to numerics PR #623&lt;br /&gt;
-o- [All] - [messaging.rb] feat: WizardFE Voln window support #647&lt;br /&gt;
-o- [All] - [init.rb] bugfix: WINE entries for Linux / MacOS #649&lt;br /&gt;
-o- [DR] - [lich.rbw] bugfix: cleanup downstream hook exclusions PR #593&lt;br /&gt;
-o- [DR] - [global_defs.rb] bugfix: missing climb failure message PR #592&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: show non-standard Effects in `;magic` output PR #641&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: fix WARCRY duplication results / add WALL OF THORNS effect detection PR #634 / PR #637&lt;br /&gt;
-o- [GS4] - [critranks.rb] feat: add critical rank resolution tables and methods PR #625&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: to support regex for active? &amp;amp; time_left PR #590&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: add implicit NPC death monitoring PR #588&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: change PSM to be stored as type.mnemonic PR #587&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: strip_xml multiline fix PR #584&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: fix sack detection to use Stash.container(param) PR #578&lt;br /&gt;
-o- [GS4] - [spell.rb] feat: Spell.after_stance #644 &lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: for Claim module #646&lt;br /&gt;
-o- [GS4] - [infomon] feat: track Voln favor via RESOURCE output #648&lt;br /&gt;
-o- [GS4] - [gameobj.rb] feat: add Bandit hidden target API #650&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: proper leader detection from GROUP output&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back depracted Char.maxvitals with msging to switch to new Char.max_vitals methods&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: group.check syntax change&lt;br /&gt;
-o- [GS4] - [spell.rb] bugfix: affordable? Char.mana parenthesis logic&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] -  feat: sqlite3 gem syntax code cleanup PR#553&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: remove unused Setting, GameSetting, CharSetting PR#542&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: scrub login key from error message popups PR#548&lt;br /&gt;
-o- [All] - [messaging.rb] bugfix: color mismatch WizardFE white txt PR#554&lt;br /&gt;
-o- [All] - [lich.rb] feat: add new Lich.deprecated method to aid in deprecating older API calls PR#523&lt;br /&gt;
-o- [GS4] - [char.rb] feat: log method_missing calls PR#552&lt;br /&gt;
-o- [GS4] - [char.rb] feat: add missing global_def related methods PR#523&lt;br /&gt;
-o- [GS4] - [global_defs.rb] feat: deprecate various Char module methods PR#523&lt;br /&gt;
-o- [GS4] - [spellsong.rb] bugfix: cache spellsong duration calc PR#551&lt;br /&gt;
-o- [GS4] - [effects.rb] feat: Effects module breakout PR#549&lt;br /&gt;
-o- [GS4] - [group.rb][disk.rb] feat: Group &amp;amp; Disk class PR#532&lt;br /&gt;
-o- [GS4] - [activespell.rb] feat: add duration change messaging, off by default, see ;help for details PR#487&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add Game:Character to debug log file ouput&lt;br /&gt;
-o- [All] - [init.rb] feat: add milliseconds to debug filename&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: reorder parsing of $SERVERSTRING to avoid certain conflicts&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: update for new Empath resource and sleep/bind messaging&lt;br /&gt;
-o- [GS4] - [status.rb] bugfix: bound? calmed? and sleeping? support for spellnames flag being off&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: additional creature dying messaging to check against XML dead not being sent&lt;br /&gt;
-o- [GS4] - [gameobj.rb] bugfix: remove sorcerer arms and animates from GameObj.targets&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - Ruby 3.3 compatibility&lt;br /&gt;
-o- [All] - [lich.rbw] feat: adds .sources for up/downstream hooks&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: don&#039;t use WINE for custom frontends&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back Char.stance&lt;br /&gt;
-o- [GS4] - [claim.rb] feat: new module and associated changes to xmlparser&lt;br /&gt;
-o- [GS4] - [experience.rb] feat: percent experience options&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow for negative TNL exp value&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow hyphenated last names in character names&lt;br /&gt;
-o- [GS4] - [parser.rb] feat: update resource matching for new Bard service&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: catch more shield removal messages&lt;br /&gt;
-o- [GS4] - [util.rb] bugfix: underscore issue for PSMs&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.7.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Supports Ruby 3.2 - security enhancements and huge speed improvements for regex&lt;br /&gt;
-o- New libraries/modules/classes: Account, HMR (Hot Module Reloading)&lt;br /&gt;
-o- GS4 Infomon now baked into Lich5 as a library, no more need to run standalone script&lt;br /&gt;
-o- New GS4 libraries/modules/classes: Ascension, Bounty, Currency, Experience, Resources, Society, Status, Warcry&lt;br /&gt;
-o- Updates to existing libraries/modules/classes: Armor, Util, Weapon, Spell, GameObj, Messaging&lt;br /&gt;
-o- Several Bugfixes for lots of things&lt;br /&gt;
-o- Lots of code cleanup&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML errors&lt;br /&gt;
-o- Adds the DR Plat instance for Frostbite FE&lt;br /&gt;
-o- Adds ‘ball’ as the noun used for ‘ball and chain’&lt;br /&gt;
-o- Adds the movement result ‘slip in the mud and fall flat’&lt;br /&gt;
-o- Corrects stamina cost for the feature Dispel Magic&lt;br /&gt;
-o- Plus all the latest script updates from Elanthia-Online!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML to limit login errors (DR)&lt;br /&gt;
-o- Fix for XMLData.active_spells to properly register wizard &#039;recovery&#039; spell cooldowns&lt;br /&gt;
-o- Messaging updates to remove error in Wizard FE encodings&lt;br /&gt;
-o- Corrects for error in detecting PSM skill changes (cman) via warrior / rogue guild lessons&lt;br /&gt;
-o- Deprecates LNet script from master repository&lt;br /&gt;
-o- Miscellaneous small bug squashing&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.6.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- (DragonRealms) Support for Genie and Frostbite frontends&lt;br /&gt;
-o- (GemStone) Changed methods to improve ;go2 speed and reduce lich.db3 calls&lt;br /&gt;
-o- (GemStone) Updates to support silver_count function&lt;br /&gt;
-o- (Both) Changed method for updating lich ecosystem&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.5.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for DragonRealms&lt;br /&gt;
-o- Updated support for scripts like BigShot&lt;br /&gt;
-o- Providing the LichID and UID on Profanity&lt;br /&gt;
-o- Spell.force_incant, .force_channel, and .force_evoke&lt;br /&gt;
-o- Standardized message method for script authors&lt;br /&gt;
-o- Sundry small improvements / fixes and changes&lt;br /&gt;
-o- And the creme de la creme - a custom directory&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.4.0&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Simu Room IDs (formally called &#039;unique ID&#039; or &#039;uid&#039; for Lich) added to Map, mapDB where known, and ;go2 for navigation (courtesy Xanlin and with our thanks!) ;go2 u7120 for all you ex-GMs out there. &lt;br /&gt;
-o- Room titles will now display the Lich ID and / or the UID for the room based on user selections - default is on for both, and enabled / disabled via Lich.display_lichid or Lich.display_uid toggles that can be set to on / off or true / false. (;e Lich.display_lichid=true/false and ;e Lich.display_uid=true/false) You can remove that rnum from your autostart now! To gain the benefit of the UID deployment, be sure to ;repo download-mapdb&lt;br /&gt;
-o- REQUESTS: Drop 5 minute timeout function from Lich&lt;br /&gt;
-o- waitrt? and waitcastrt? will still pause activities, but will return TRUE or FALSE in keeping with the Ruby functionname? tradition (no more failing to get a weapon out due to RT from climbing!)&lt;br /&gt;
-o- empty_hands and fill_hands will now check to see if the character is in roundtime before trying to put away or retrieve held items&lt;br /&gt;
-o- Infomon received an update that keeps spell timers in sync with the information received from the server - no more need to immediately do a spell active in game to get the right times to display for various legacy scripts and ;magic after visiting the invoker or using an SK item&lt;br /&gt;
-o- Lich now provides a facility to get current coins on the character that is a bit more agnostic to data changes from Simu - Lich::Util.silver_count&lt;br /&gt;
-o- Various other small tidbits to help ease maintenance and future development&lt;br /&gt;
-o- PLEASE NOTE:  This update is required for the newest Bigshot (released today!) and for future eloot and eherbs scripts (release RSN)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.3.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Added support for Wrayth (renamed Stormfront) installations &lt;br /&gt;
-o- Converted Linux | WINE login methods to &#039;method 0&#039;, does not use Simu launcher&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.2.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for STOWing items irrespective of special item scripts&lt;br /&gt;
-o- Improved query support for Effects and CMans&lt;br /&gt;
-o- Fix Lich bug to respect the &#039;groupmovement&#039; flag in game&lt;br /&gt;
-o- Fix Lich round time calculations (more aggressive timing)&lt;br /&gt;
-o- Dark Mode is now a thing&lt;br /&gt;
-o- Lich4 Style GUI layout available&lt;br /&gt;
-o- Several file location changes to support future code change efforts&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.19&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Benefit: Monks with Mental Acuity (all 3 of you) rejoice - stamina casting!&lt;br /&gt;
-o- Benefit: PSM3 included, no charge. No hair remaining, either!&lt;br /&gt;
-o- Benefit: Ok, stay seated: Some of your various SF spell duration windows may work. . . better? Yes, not perfect, but better. No pictures, please!&lt;br /&gt;
-o- Updated infomon that properly detects Cloak of Shadows on those pesky sorcerers, and the Raise Dead Cooldown periods for those wondrous clerics.&lt;br /&gt;
-o- A new update process for Lich 5 - tired of having to download that script over and over just to update? Get yourself a copy of lich5-update.lic. Note, if you already have it, you&#039;re set! If not - ;jinx script install lich5-update --repo=elanthia-online&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Updated the method used to log onto SIMU servers.&lt;br /&gt;
-o- Added the Animalist item specifics to Lich5&#039;s empty and fill hands routines&lt;br /&gt;
-o- Improved Invoker messages for Avalon and Wizard FEs (no change for SF FE)&lt;br /&gt;
-o- Improved cleanup and store methods when player EXIT&#039;s or QUIT&#039;s game&lt;br /&gt;
-o- Crafted two new methods (stash_hands and equip_hands) for future script use&lt;br /&gt;
-o- Some behind-the-scenes cleanup to improve maintaining the Lich5 ecosystem&lt;br /&gt;
-o- Add Spell Active improvements&lt;br /&gt;
-o- Add PSM and Ranger improvements&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
* [[Mac Installation - Lich (software)]]&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
[[Category:New Player]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Saga&amp;diff=263368</id>
		<title>Saga</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Saga&amp;diff=263368"/>
		<updated>2026-08-14T01:09:15Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: initial creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Saga&#039;&#039;&#039; is an officially supported front end (FE) for [[GemStone IV]] and [[DragonRealms]], currently in &#039;&#039;&#039;beta&#039;&#039;&#039;, offered by Simutronics as an alternative to [[Wrayth]]. It is a modern, cross-platform client built with Electron, React, and TypeScript that speaks the GemStone IV/DragonRealms protocol natively and renders the game stream into dockable panels, replacing the old Wrayth/Stormfront client. It supports [[Lich:Software|Lich]] scripting.&lt;br /&gt;
&lt;br /&gt;
Download / info page: https://www.play.net/gs4/play/saga-info.asp&lt;br /&gt;
&lt;br /&gt;
Because Saga is in active beta, features and settings menus described here may change between releases.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
# Go to https://www.play.net/gs4/play/saga-info.asp and click the download button for your platform.&lt;br /&gt;
#* &#039;&#039;&#039;Windows&#039;&#039;&#039; (10/11, x64 and ARM64) — installs automatically and checks for/installs updates going forward.&lt;br /&gt;
#* &#039;&#039;&#039;macOS&#039;&#039;&#039; — separate builds for Apple Silicon and Intel. Experimental; does not yet auto-update.&lt;br /&gt;
#* &#039;&#039;&#039;Linux&#039;&#039;&#039; — distributed as an AppImage (x86_64). Experimental; does not yet auto-update.&lt;br /&gt;
# Run the installer (Windows) or launch the downloaded build (Mac/Linux).&lt;br /&gt;
#* On Windows, the first launch may trigger a SmartScreen warning because the builds aren&#039;t code-signed yet during the beta. Choose &amp;quot;More info &amp;amp;rarr; Run anyway&amp;quot; to continue — this is expected and not a sign of a problem.&lt;br /&gt;
# Log in from inside Saga. Saga completely replaces the Simutronics Game Launcher/SGE with its own login screen — there is no separate launcher install and no &amp;lt;code&amp;gt;.sal&amp;lt;/code&amp;gt; handshake file to deal with.&lt;br /&gt;
# New players can use the guided character creation flow built into the login screen; returning players get a Quick Logins grid with one click per character.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
A few things Saga does that Wrayth doesn&#039;t:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Cloud-synced settings&#039;&#039;&#039; — per-character settings (layout, highlights, preferences) sync automatically, so logging in from a different computer picks up where you left off.&lt;br /&gt;
* &#039;&#039;&#039;Inventory Manager&#039;&#039;&#039; — a live, structured view of everything worn, held, and on the ground as container cards you can open and nest (in/on/behind/under). Dragging an item between containers has Saga plan and issue the actual game commands for you. Weight/capacity show in sortable columns, and an inspector pane collects an item&#039;s LOOK/ANALYZE/RECALL output in one place.&lt;br /&gt;
* &#039;&#039;&#039;Custom panels&#039;&#039;&#039; — a widget palette (vitals bars, timer rings, compass rose, loadout rows, gauges) you assemble into your own panels. Floating script windows or server dialogs can be promoted into a docked panel that persists across logins.&lt;br /&gt;
* &#039;&#039;&#039;Scripting and highlights&#039;&#039;&#039; — full support for the classic script language with an editor and recording, switchable macro sets, layered highlights with capture-group precision and per-rule sounds, regex triggers with cooldowns, and a settings importer for existing Wrayth configs.&lt;br /&gt;
* &#039;&#039;&#039;Interactive maps&#039;&#039;&#039; — in-client area maps that dock into your layout or float standalone, with click-to-travel.&lt;br /&gt;
* &#039;&#039;&#039;Accessibility&#039;&#039;&#039; — a dedicated screen-reader mode.&lt;br /&gt;
* &#039;&#039;&#039;Environmental ambience&#039;&#039;&#039; — full-screen weather/ambient effects (snow, rain, sandstorm, embers, aurora) paired with panel skins that restyle the interface to match.&lt;br /&gt;
&lt;br /&gt;
== Login with Lich ==&lt;br /&gt;
&lt;br /&gt;
Saga can be used with [[Lich:Software|Lich]] in one of two ways:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Saga Direct&#039;&#039;&#039; &amp;amp;mdash; After logging into Saga normally, go to &#039;&#039;&#039;File &amp;amp;rarr; Enable Login with Lich&#039;&#039;&#039;. Then disconnect and return to the login screen; a new &amp;quot;Via Lich&amp;quot; option will appear under the connect options. (Requires Lich v5.19+.)&lt;br /&gt;
* &#039;&#039;&#039;Lich Launcher GUI&#039;&#039;&#039; &amp;amp;mdash; (Requires Lich v5.20+.) The Lich Launcher autodetects Saga on both macOS and Windows as an available client when creating a saved entry, so you can select it directly without the manual toggle above.&lt;br /&gt;
&lt;br /&gt;
If Lich still isn&#039;t connecting after trying the above, a refresh install of Lich is recommended — make sure you&#039;re on the latest version first. For further help, see the #help channel on the [https://discord.gg/KF9Wr8u Official Gemstone Discord].&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
Saga stores settings (highlights, macros, scripts, panel layouts, etc.) per character and syncs them to the cloud automatically. If you&#039;re moving from Wrayth, you can bring your existing settings over:&lt;br /&gt;
&lt;br /&gt;
# In Wrayth, go to &#039;&#039;&#039;Options &amp;amp;rarr; Settings &amp;amp;rarr; Export&#039;&#039;&#039; and export your settings to a file.&lt;br /&gt;
# In Saga, go to &#039;&#039;&#039;Settings &amp;amp;rarr; Import Settings&#039;&#039;&#039; and select the exported file.&lt;br /&gt;
&lt;br /&gt;
=== Appearance ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Fonts&#039;&#039;&#039;: Settings &amp;amp;rarr; Appearances &amp;amp; Themes &amp;amp;rarr; Fonts.&lt;br /&gt;
* &#039;&#039;&#039;Link/bold text/room name size&#039;&#039;&#039;: Settings &amp;amp;rarr; Presets. The rightmost box controls font size (shown as &amp;quot;-&amp;quot; at default size).&lt;br /&gt;
* &#039;&#039;&#039;Per-panel look (background, trim, font)&#039;&#039;&#039;: Right-click the panel you want to change.&lt;br /&gt;
* &#039;&#039;&#039;Roundtime display (RT / Cast RT wheel) and status icon size&#039;&#039;&#039;: Settings &amp;amp;rarr; Appearances &amp;amp; Themes &amp;amp;rarr; Status Bar.&lt;br /&gt;
* &#039;&#039;&#039;Loadout panel text&#039;&#039;&#039;: Settings &amp;amp;rarr; Appearances &amp;amp; Themes, bottom left (not under the panel&#039;s own alternative-text settings, despite being panel-specific).&lt;br /&gt;
&lt;br /&gt;
=== Panels ===&lt;br /&gt;
&lt;br /&gt;
* To stop thoughts, logins, deaths, etc. from displaying in your main story window, open a dedicated panel for that stream via &#039;&#039;&#039;View &amp;amp;rarr; Panels&#039;&#039;&#039;.&lt;br /&gt;
* To see your statuses in a separate panel: not yet available; on the development backlog.&lt;br /&gt;
* To make vitals display vertically instead of horizontally: not yet available as a built-in option. In the meantime, create a &#039;&#039;&#039;custom panel&#039;&#039;&#039; (&#039;&#039;&#039;View &amp;amp;rarr; Custom Panel&#039;&#039;&#039;), which allows flexible layout of individual elements (see [[#Features|Custom panels]] above).&lt;br /&gt;
* To pop a text panel (thoughts, speech, familiar, etc.) into its own tab, click and drag it onto another text panel.&lt;br /&gt;
* To remove a tab, click and drag it out of the header and release.&lt;br /&gt;
&lt;br /&gt;
== Rest Mode ==&lt;br /&gt;
&lt;br /&gt;
As in Wrayth, pressing CTRL-R puts you into rest mode, which periodically sends the EXP command to prevent an idle timeout.&lt;br /&gt;
&lt;br /&gt;
== Logging ==&lt;br /&gt;
&lt;br /&gt;
Logging is configured per-window from the Windows pane, similar to Wrayth.&lt;br /&gt;
&lt;br /&gt;
== Backup ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backup Saga Settings and Scripts Regularly&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Even though settings sync to the cloud, it&#039;s worth keeping your own backup of your macros, scripts, highlights, panel layout, and more:&lt;br /&gt;
&lt;br /&gt;
# In Saga, go to &#039;&#039;&#039;Settings &amp;amp;rarr; Export&#039;&#039;&#039;.&lt;br /&gt;
# Save the exported file somewhere safe — cloud storage (Dropbox, Google Drive) or emailed to yourself both work well. Consider including the date and character name in the filename rather than overwriting a single backup file each time.&lt;br /&gt;
# Repeat this for each character, since each has its own settings.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
=== Official FAQ ===&lt;br /&gt;
&lt;br /&gt;
From the [https://www.play.net/gs4/play/saga-info.asp Saga info page]:&lt;br /&gt;
&lt;br /&gt;
; Is Saga an official Simutronics product?&lt;br /&gt;
: Yes. Saga is an officially supported client for GemStone IV and DragonRealms, currently in beta, offered as an alternative to Wrayth.&lt;br /&gt;
&lt;br /&gt;
; Is it safe to use?&lt;br /&gt;
: Saga connects to the game the same way Wrayth or SGE does, using your normal account login. The builds aren&#039;t currently code-signed, so Windows SmartScreen may warn you on first launch — this is expected during the beta and not a sign of a problem.&lt;br /&gt;
&lt;br /&gt;
; Does this work with/require the SGE (Simutronics Game Entry) application?&lt;br /&gt;
: No. Saga completely replaces the SGE with its own modern login solution.&lt;br /&gt;
&lt;br /&gt;
; What does &amp;quot;beta&amp;quot; mean here?&lt;br /&gt;
: Saga is under active development. Features may change between releases, and you may run into rough edges. It updates itself automatically, so you&#039;ll always be running the latest version without needing to reinstall.&lt;br /&gt;
&lt;br /&gt;
; I found a bug, or Saga isn&#039;t working — who do I contact?&lt;br /&gt;
: You can report a bug or request a feature from inside Saga via &#039;&#039;&#039;File &amp;amp;rarr; Report Bug / Feature Request...&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Why am I downloading a file from GitHub for this?&lt;br /&gt;
: While in beta, builds are hosted on the author&#039;s GitHub repository — GameMaster Auchand from GemStone IV.&lt;br /&gt;
&lt;br /&gt;
=== Community FAQ ===&lt;br /&gt;
&lt;br /&gt;
The following is drawn from an unofficial FAQ compiled by GM Casil and may not stay accurate as Saga continues development.&lt;br /&gt;
&lt;br /&gt;
; How do I change links/bold text/room name size?&lt;br /&gt;
: Settings &amp;amp;rarr; Presets. The rightmost box is the font size (shows as &amp;quot;-&amp;quot; when at default size).&lt;br /&gt;
&lt;br /&gt;
; How do I make Lich work?&lt;br /&gt;
: A refresh install of Lich is recommended, but at minimum make sure Lich is updated. Log in with Saga, then go to &#039;&#039;&#039;File &amp;amp;rarr; Enable login with Lich&#039;&#039;&#039;. Go to &#039;&#039;&#039;File &amp;amp;rarr; Return to login&#039;&#039;&#039;. Click &amp;quot;Connect&amp;quot;, then &amp;quot;Via Lich&amp;quot;, and point it to your Lich folder. Log in. If it&#039;s still not working, ask for help in the #help channel on the [https://discord.gg/KF9Wr8u Official Gemstone Discord].&lt;br /&gt;
&lt;br /&gt;
; How do I get the roundtime wheel off my screen?&lt;br /&gt;
: Settings &amp;amp;rarr; Appearances &amp;amp; Themes &amp;amp;rarr; Status Bar. From here you can change how roundtime (RT and Cast RT) displays, and the size of the status icons in the corner.&lt;br /&gt;
&lt;br /&gt;
; How do I change font?&lt;br /&gt;
: Settings &amp;amp;rarr; Appearances &amp;amp; Themes &amp;amp;rarr; Fonts.&lt;br /&gt;
&lt;br /&gt;
; How do I change how a specific panel looks?&lt;br /&gt;
: Right-click the panel. You can update the background, trim, and font per panel this way.&lt;br /&gt;
&lt;br /&gt;
; How do I make thoughts/logins/deaths stop displaying in my story window?&lt;br /&gt;
: View &amp;amp;rarr; Panels. From here you can open dedicated panels for different streams.&lt;br /&gt;
&lt;br /&gt;
; How do I make something a tab or pop a tab out?&lt;br /&gt;
: To remove a tab, click and drag on the tab until it&#039;s out of the header, then release. To make a tab, click and drag a text-only panel (thoughts, speech, familiar, etc.) onto another text panel.&lt;br /&gt;
&lt;br /&gt;
; How do I import highlights, scripts, etc. from Wrayth?&lt;br /&gt;
: Export your settings in Wrayth (&#039;&#039;&#039;Options &amp;amp;rarr; Settings &amp;amp;rarr; Export&#039;&#039;&#039;). In Saga, use &#039;&#039;&#039;Settings &amp;amp;rarr; Import Settings&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; How do I change the Lich command color?&lt;br /&gt;
: Not currently possible.&lt;br /&gt;
&lt;br /&gt;
; How do I change the loadout panel text?&lt;br /&gt;
: It isn&#039;t in the panel&#039;s alternative-text settings — it&#039;s under &#039;&#039;&#039;Settings &amp;amp;rarr; Appearance &amp;amp; Themes&#039;&#039;&#039;, bottom left. It&#039;s an unusual location since the loadout panel was one of the first panels built; moving it has been added to the backlog.&lt;br /&gt;
&lt;br /&gt;
; How do you make vitals vertical instead of horizontal?&lt;br /&gt;
: Not built in yet. Create a custom panel under &#039;&#039;&#039;View &amp;amp;rarr; Custom Panel&#039;&#039;&#039; — custom panels are powerful and can be arranged this way, though some snapping/nudging behavior for them is a known rough edge that&#039;s been raised with the devs.&lt;br /&gt;
&lt;br /&gt;
; What about putting my statuses in a separate panel?&lt;br /&gt;
: On the development backlog.&lt;br /&gt;
&lt;br /&gt;
== Unofficial Plugins ==&lt;br /&gt;
&lt;br /&gt;
See [[Lich:Software]].&lt;br /&gt;
&lt;br /&gt;
== Other FEs ==&lt;br /&gt;
*[[Wrayth]] - previous official Windows front end&lt;br /&gt;
*[[Wizard (front end)]] - official Windows front end&lt;br /&gt;
*[[Avalon]] - official Mac OS X front end&lt;br /&gt;
*[[Lich:Software]] - unofficial scripting addon, works with any of Saga/Wrayth/Wizard/Avalon.&lt;br /&gt;
&lt;br /&gt;
[[Category:Front Ends]]&lt;br /&gt;
[[Category:New Player]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Portmaster&amp;diff=262127</id>
		<title>Portmaster</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Portmaster&amp;diff=262127"/>
		<updated>2026-07-31T16:01:51Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: update IMT to mirror the other location sand use RealID instead of LichID&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Portmasters of Elanthia ==&lt;br /&gt;
Portmasters of Elanthia are NPCs stationed in every seaport within the [[Open Sea Adventures]] system. They offer a fast ferry service between ports, allowing players to travel quickly across Elanthia&#039;s expanded maritime network. To use the service, simply {{boldmono|ASK PORTMASTER ABOUT TRAVEL}}. Passage costs 25,000 - 35,000 silvers depending on the trip, and ferries depart almost immediately after the request.  Trips take ten minutes.  Trips during holidays and festivals may be discounted.&lt;br /&gt;
&lt;br /&gt;
== Locations ==&lt;br /&gt;
* [[Icemule Trace]] - The Frostmain, Black Jetty (u7133026)&lt;br /&gt;
* [[Kraken&#039;s Fall]] - Kraken&#039;s Fall, First Pier (u7118259)&lt;br /&gt;
* [[River&#039;s Rest]] - River&#039;s Rest, Dilapidated Pier (u2101030)&lt;br /&gt;
* [[Solhaven]] - Marshtown, Fewr&#039;s Pier (u4744014)&lt;br /&gt;
* [[Ta&#039;Vaalor]] - Mistwatch (Lich ID# 31493) (u7136032)&lt;br /&gt;
* [[Teras Isle]] - Copper Avenue, West Docks (u3002033)&lt;br /&gt;
* [[Wehnimer&#039;s Landing]] - Wehnimer&#039;s, North Dock (u7111)&lt;br /&gt;
* [[Glaoveln]] - Glaoveln, Pulct Docks (u4426101)&lt;br /&gt;
* [[Nielira Harbor]] - Nielira Harbor, Boardwalk (u14150050)&lt;br /&gt;
* [[Brisker&#039;s Cove]] - Comyner&#039;s Docks, Pier 5 (u7140125)&lt;br /&gt;
* [[Sleeping Drake Harbor]] - Sleeping Drake Harbor, Docks (u7142028)&lt;br /&gt;
* [[Flotilla]] - Twisted Tentacle Overlook (u7134031)&lt;br /&gt;
&lt;br /&gt;
[[Category:Open_Sea_Adventures]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Icy_cloak&amp;diff=261826</id>
		<title>Icy cloak</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Icy_cloak&amp;diff=261826"/>
		<updated>2026-07-28T14:50:44Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: added clarification about origin of the item being a reward from SimuCon 2023&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;td&amp;gt;&amp;lt;!-- Please see Help:Item scripts page for instructions on how to properly create and format an item page.--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Ice cloaks&#039;&#039;&#039; are highly scripted cloaks that were introduced as the attendee goodie bag scripted item from [[:Category:SimuCon|SimuCon 2023]]. They were made available to be purchased off the shelf at [[:Category:Currents of Myth|Currents of Myth]], the 2026 [[:Category:Premium Festival|Premium Festival]]. They have a normal side and an empowered side that are both fully alterable ([[long description]] and [[show description]]) and have ambient messaging while empowered. The empowered side reflects the icy nature of the cloak.&lt;br /&gt;
{{TOC limit|2}}&lt;br /&gt;
==Analyze==&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;You analyze the cerulean nyra cloak and sense that the creator has provided the following information:&lt;br /&gt;
&lt;br /&gt;
This cerulean nyra cloak will react to ice and water spells being cast at it and transform into an ice-covered cloak!&lt;br /&gt;
While in this state it has ambient messaging.&lt;br /&gt;
Verbs:  BOW, PULL, PUSH, SHAKE, WAVE, ATTEND, CLEAN, PINCH, NUDGE, PROD, WAGGLE, and INVOKE.&lt;br /&gt;
&lt;br /&gt;
It is fully alterable, but the fabric form must remain actual fabric.  The icy form is also alterable, and the ice-clad description (long + show) can make reference to the cloak being EMPOWERED.&lt;br /&gt;
&lt;br /&gt;
When altering cloaks, please keep in mind that the messaging references a long garment.&lt;br /&gt;
The ice crystal color may also be customized.  There&#039;s more room than the traditional 15, so color descriptions needn&#039;t be one word&lt;br /&gt;
only, but let&#039;s keep it reasonable.  &amp;quot;Azure and silver&amp;quot; = Okay. &amp;quot;Gold-hearted scarlet&amp;quot; = Okay.&lt;br /&gt;
Brightly luminescent absinthe green-tinged aquamarine and cerulean = Too much.&lt;br /&gt;
&lt;br /&gt;
CURRENT SETTINGS:&lt;br /&gt;
Normal cloak:  a shimmering cerulean nyra cloak layered with crystal droplets&lt;br /&gt;
Show of normal cloak:  Dyed a rich shade of cerulean, the cloak is woven from shimmering glassthread nyra.  Layers of tiny droplets are sewn into the material, creating a fall of crystals down the garment&#039;s length.  A cluster of veilspire pearls set in an oval frame of silver clasps the cloak over one shoulder.&lt;br /&gt;
&lt;br /&gt;
Iced Over cloak:  a flowing ice-covered cloak layered with frosted droplets&lt;br /&gt;
Show of Iced Over cloak:  Dyed a rich shade of cerulean, the cloak is woven from shimmering glassthread nyra.  Layers of frosted droplets cover the material, creating a fall of ice down the garment&#039;s length.  A cluster of veilspire pearls set in an oval frame of silver clasps the cloak over one shoulder.&lt;br /&gt;
&lt;br /&gt;
Ice color:  cerulean-flecked silver&lt;br /&gt;
&lt;br /&gt;
You can tell that the cloak is as light as it can get and that its pockets could not possibly get any deeper.&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Usage==&lt;br /&gt;
{| {{verbtable}} &amp;lt;!-- REQUIRED if there are verbs for this tier.  For instructions on how to use this template, see Template:Verbtable. --&amp;gt;&lt;br /&gt;
|- {{verbtableheader|90}}&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:5em;&amp;quot;|Verb&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:5em;&amp;quot;|Style&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 40%&amp;quot;|First&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 40%&amp;quot;|Third&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|ATTEND&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You briskly ruffle your hands through the excess fabric of your cerulean nyra cloak, causing any wrinkles to fall away and leaving the lengths to drape in smooth folds.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) briskly ruffles (her/his) hands through the excess fabric of (her/his) cerulean nyra cloak, causing ripples in the fabric that race from hip to hem.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You briskly ruffle your hands through the excess fabric of your ice-covered cloak, and tendrils of cerulean-flecked silver icy mist chased by snowflakes follow the motion of your hands before retreating again to the fabric of your ice-covered cloak.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) briskly ruffles (her/his) hands through the excess fabric of (her/his) ice-covered cloak, and threads of cerulean-flecked silver icy mist chased by snowflakes follow (her/his) hands before retreating again to the fabric of (her/his) ice-covered cloak.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|BOW&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You gently take hold of a fold of your cerulean nyra cloak with your left hand and pull it behind you, your right hand in front of you as you take a short bow.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) gently takes hold of a fold of (her/his) cerulean nyra cloak with (her/his) left hand and pulls it behind (her/him), (her/his) right hand in front of (her/his) body as (she/he) takes a short bow.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You bow deeply, sweeping your ice-covered cloak behind you.  As your fingers brush across the fabric of your ice-covered cloak, a series of chasms open in the icy surface, each releasing plumes of cerulean-flecked silver vapor.  The mist shatters, sending shards of colorful ice flying.  Before the small chunks make contact with anything, they dissipate into a fine, cooling mist.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) bows deeply, sweeping (her/his) ice-covered cloak behind (her/him).  As (her/his) fingers brush across the fabric of (her/his) ice-covered cloak, a series of chasms open in the icy surface, each releasing plumes of cerulean-flecked silver vapor.  The mist shatters, sending shards of colorful ice flying.  Before the small chunks make contact with anything, they dissipate into a fine, cooling mist.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|CAST&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Ice activating&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You channel at a shimmering cerulean nyra cloak layered with crystal droplets.&amp;lt;br/&amp;gt;As the ice breaks upon the cerulean nyra cloak, the cold is absorbed into the fabric, each thread subtly backlit by a faint glacial light.  In a rush that causes the air to distort, cerulean-flecked silver crystals race to cover the garment in a cloak of living ice as a flowing ice-covered cloak layered with frosted droplets is revealed.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) channels at a shimmering cerulean nyra cloak layered with crystal droplets.&amp;lt;br/&amp;gt;As the ice breaks upon the cerulean nyra cloak, the cold is absorbed into the fabric, each thread subtly backlit by a faint glacial glow.  In a rush that causes the air to distort, cerulean-flecked silver crystals race to cover the garment in a cloak of living ice as a flowing ice-covered cloak layered with frosted droplets is revealed.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|CLEAN&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You make a cursory account of yourself, brushing your hands across the front of your cerulean nyra cloak and assuring yourself that everything is perfectly in place.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) brushes (her/his) hands across the front of (her/his) cerulean nyra cloak, as if assuring (herself/himself) everything is perfectly in place.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;With a disaffected nonchalance, you brush at the shoulder of your ice-covered cloak, throwing shimmering cerulean-flecked silver ice crystals from your fingertips as you arch a single brow.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) brushes at the shoulder of (her/his) ice-covered cloak with a disaffected nonchalance, and a flurry of shimmering cerulean-flecked silver ice crystals are thrown from (her/his) fingertips as (she/he) arches a single brow.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|INVOKE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;The cerulean nyra cloak must be iced over to do that!&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;&amp;lt;!-- Message does not reference the wearer by name or pronoun in the first-person capture; unconfirmed whether a distinct third-person form exists. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You concentrate on the magical ice of your ice-covered cloak...&amp;lt;br/&amp;gt;Illuminated with brilliant cerulean-flecked silver energy, the ice of your ice-covered cloak blossoms into a shrieking snowstorm that engulfs you!  The frigid ice of the cocoon does nothing to impede your vision.  With a cracking roar, the ice swirls around you, throwing off a cascade of shimmering cerulean-flecked silver ice crystals.  Faster and faster the blizzard rages and with a sudden hiss, it vanishes, leaving you unharmed but certainly the center of attention.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;Illuminated with brilliant cerulean-flecked silver energy, the ice of (Character)&#039;s ice-covered cloak blossoms into a shrieking snowstorm that engulfs (her/him)!  With a roar, the frigid cocoon begins to swirl around (her/him), throwing off a cascade of shimmering cerulean-flecked silver ice crystals.  Faster and faster the blizzard rages around (Character)!&amp;lt;br/&amp;gt;With a guttering hiss, the snowstorm vanishes, leaving (Character) unharmed in its center.  Tiny snowflakes swirl around (her/him) for a moment before winking out.  A faint cerulean-flecked silver light illuminates (her/his) eyes.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|NUDGE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;With your hand inside the cerulean nyra cloak, you give it a small nudge, causing the fabric to puff out briefly before falling back into place.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) flicks (her/his) hand inside the fabric of (her/his) cerulean nyra cloak, causing it to puff out briefly before falling back into place.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;With your hand inside the ice-covered cloak, you give it a small nudge.  In response, a spray of glittering cerulean-flecked silver snowflakes are thrown from your shoulders, and as they fall, they dim into a hazy mist winking out at your heels.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;A spray of glittering cerulean-flecked silver snowflakes erupts from the shoulders of (Character)&#039;s ice-covered cloak!  As the shimmering ice crystals fall, they dim into a hazy mist before winking out around (her/his) heels.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|PINCH&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You idly pick at an invisible flaw in the fabric of your cerulean nyra cloak.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;&amp;lt;!-- Third person messaging for PINCH in the normal state has not been captured. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You idly pick at an invisible flaw in the fabric of your ice-covered cloak and give a start when the ice engulfing the fabric spreads to your fingertips.  With a smoldering glare, you focus your gaze on the cerulean-flecked silver ice on your fingertip, and it shrinks and shudders before spreading back to the frigid covering on your cloak that birthed it.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) idly picks at an invisible flaw in the fabric of (her/his) ice-covered cloak.  A cluster of cerulean-flecked silver ice leaps from the frigid garment to engulf (her/his) fingertips.  With a smoldering glare, (she/he) focuses (her/his) gaze on the ice on (her/his) fingertip, and it shrinks and shudders before vacating (her/his) fingertip and spreading back to the frigid covering on (her/his) cloak that birthed it.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|PROD&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;Your cerulean nyra cloak is not currently iced over; there is nothing to extinguish.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;With a discordant cracking sound, the cerulean-flecked silver ice covering the surface of your cerulean nyra cloak recedes into the fabric, leaving naught behind but a faint chill in the air.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;With a discordant cracking sound, the cerulean-flecked silver ice covering the surface of (Character)&#039;s cerulean nyra cloak recedes into the fabric of the garment, leaving naught behind but a faint chill in the air.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|PULL&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;Hooking two fingers discreetly in the excess fabric of your cerulean nyra cloak, you give it the subtlest tug, causing the garment to sway and swoosh, then settle in perfect folds about your legs.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;A gentle touch from (Character) causes the fabric of (her/his) cerulean nyra cloak to sway and swoosh before settling in perfect folds about (her/his) legs.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You gather a handful of fabric within your hand, clenching the cloak tightly.  Thin tendrils of frost soon creep upwards along your palm and you let go, the cerulean-flecked silver mist glazing over the fabric once again.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) gathers a handful of fabric within (her/his) hand, clenching (her/his) cloak tightly.  Thin tendrils of frost soon creep upwards along (her/his) palm as (her/his) fingers begin to turn blue.  (Character) releases the fabric, the cerulean-flecked silver mist-like frost glazing over the fabric once again.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|PUSH&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You stiffly smooth your hands over the fabric of your cerulean nyra cloak before clasping them behind your back.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) smooths (her/his) hands over the fabric of (her/his) cerulean nyra cloak before clasping them behind (her/his) back.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You stiffly smooth your hands over the fabric of your ice-covered cloak, the cerulean-flecked silver ice crystals darkening under your touch, before clasping them behind your back.  The ice crystals follow the motion of your hands as a frosty deluge of cerulean-flecked silver crystals ripples across the front of your cloak.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) smooths (her/his) hands over the fabric of (her/his) ice-covered cloak, the cerulean-flecked silver ice crystals darkening under (her/his) touch, before clasping them behind (her/his) back.  The ice crystals follow the motion of (her/his) hands as a frosty deluge of cerulean-flecked silver crystals ripples across the front of (her/his) cloak.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|SHAKE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You give your cerulean nyra cloak a lazy shake, clearing any dust or debris from its surface.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;(Character) gives (her/his) cerulean nyra cloak a lazy shake, clearing any dust or debris from its surface.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;An avalanche of cerulean-flecked silver crystals forms at the shoulders of your ice-covered cloak, quickly gaining momentum as it falls down the length of your ice-covered cloak.  As the cerulean-flecked silver cascade reaches the lower edge of the garment it tumbles and disperses into a fine layer of cool mist, pooling at your feet.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;An avalanche of cerulean-flecked silver crystals forms at the shoulders of (Character)&#039;s ice-covered cloak, quickly gaining momentum as it falls down the length of the garment.  As the cerulean-flecked silver cascade reaches the lower edge of the cloak it tumbles and disperses into a fine layer of cool mist, pooling at (her/his) feet.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|WAGGLE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;You subtly pull your hands inside your cerulean nyra cloak as you feed the fabric a tiny flow of mana.  In a rush that causes the air to distort, cerulean-flecked silver ice crystals erupt and race to cover the garment in a cloak of crystalline ice scales as a flowing ice-covered cloak layered with frosted droplets is revealed.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;The cerulean nyra cloak wrapped around (Character) suddenly shimmers.  In a rush that causes the air to distort, cerulean-flecked silver ice crystals erupt and race to cover the garment in a cloak of crystalline ice scales as a flowing ice-covered cloak layered with frosted droplets is revealed.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;Your ice-covered cloak is already iced over!&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;&amp;lt;!-- Message does not reference the wearer by name or pronoun in the first-person capture; unconfirmed whether a distinct third-person form exists. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;  rowspan=&amp;quot;2&amp;quot;|WAVE&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Normal&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;Taking each side of your cerulean nyra cloak in hand, you swish the garment back and forth, creating a soft rustling whisper of fabric.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;Taking each side of (her/his) cerulean nyra cloak in hand, (Character) swishes the garment back and forth, creating a soft rustling whisper of fabric.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot;|Empowered&lt;br /&gt;
|&amp;lt;!-- First Person View --&amp;gt;Taking each side of your ice-covered cloak in hand, you swish the cerulean-flecked silver ice-covered fabric of your cloak back and forth, casting a flurry of sparkling snowflakes into the air accompanied by an insistent cracking sound like a piece of fracturing ice.&lt;br /&gt;
|&amp;lt;!-- Third Person View --&amp;gt;Taking each side of (her/his) ice-covered cloak in hand, (Character) swishes the cerulean-flecked silver ice-covered fabric of (her/his) cloak back and forth, casting a flurry of sparkling snowflakes into the air accompanied by an insistent cracking sound like a piece of fracturing ice.&lt;br /&gt;
|}&lt;br /&gt;
==Additional Information==&lt;br /&gt;
The cloak enters its empowered state when an ice or water spell is cast or channeled at it; the messaging above was captured using [[Major Cold (907)]].  The wearer may also empower the cloak without a spell by using {{boldmono|WAGGLE}}, and may return it to its normal state at any time with {{boldmono|PROD}}.&lt;br /&gt;
&lt;br /&gt;
{{boldmono|INVOKE}} is only documented in the empowered state.  {{boldmono|PROD}} used in the normal state returns an informational message rather than scripted messaging.&lt;br /&gt;
&lt;br /&gt;
According to the item&#039;s owner, the ice does not wear off on its own and must be manually returned to normal with {{boldmono|PROD}}; this has not been independently confirmed with a long-duration test. {{boldmono|WAGGLE}} while already empowered returns a refusal message rather than re-triggering the effect. {{boldmono|INVOKE}} while not empowered similarly returns a refusal message rather than doing nothing silently.&lt;br /&gt;
&lt;br /&gt;
The item was obtained as a raffle prize during Currents of Myth 2026 rather than purchased directly from a merchant; the specific raffle is not otherwise documented here. Per the owner, it has no tiers and is fully unlocked as obtained. As of this writing it is also the only ice-themed cloak of its kind.&lt;br /&gt;
===Empowered Ambients===&lt;br /&gt;
{| {{verbtable}}&lt;br /&gt;
|- {{verbtableheader|90}}&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|First&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Third&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | A blizzard of pale cerulean-flecked silver snowflakes rolls across the fabric of your ice-covered cloak, crashing against the hem in a vibrant, chilly display.&lt;br /&gt;
| A blizzard of pale cerulean-flecked silver snowflakes rolls across the fabric of (Character)&#039;s ice-covered cloak, crashing against the hem in a vibrant, chilly display.&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | A layer of cerulean-flecked silver rime creeps slowly across your ice-covered cloak, the misty hoarfrost glazing over the fabric.&lt;br /&gt;
| A layer of cerulean-flecked silver rime creeps slowly across (Character)&#039;s ice-covered cloak, the misty hoarfrost glazing over the fabric.&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | Chasms of razor-edged cerulean-flecked silver frost form along the fabric of your ice-covered cloak, the ice cracking into splayed crystalline patterns across the shoulders and chest before fusing together into a perfectly smooth finish once again.&lt;br /&gt;
| Chasms of razor-edged cerulean-flecked silver frost form along the fabric of (Character)&#039;s ice-covered cloak, the ice cracking into splayed crystalline patterns across (her/his) shoulders and chest before fusing together into a perfectly smooth finish once again.&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | A sudden chill sweeps through the area as the cerulean-flecked silver mist that encases your ice-covered cloak evaporates away and reforms into a complex crystalline pattern on the surface of the cloak.&lt;br /&gt;
| A sudden chill sweeps through the area, emanating from (Character) as the cerulean-flecked silver mist that encases (her/his) ice-covered cloak evaporates and reforms into a complex crystalline pattern on the surface of the cloak.&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | Formations of slender icicles suddenly jut from the shoulders of your ice-covered cloak, framing your body in oversized, frigid pauldrons of cerulean-flecked silver ice before melting back into the fabric of your cloak once again.&lt;br /&gt;
| Formations of slender icicles suddenly jut from the shoulders of (Character)&#039;s ice-covered cloak, framing (her/his) body in oversized, frigid pauldrons of cerulean-flecked silver ice before melting back into the fabric of (her/his) cloak once again.&amp;lt;!-- UNCONFIRMED: this is the owner&#039;s best guess, not a captured line, since no observer was present when this ambient fired. Needs an in-game capture to verify or correct. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | A film of cerulean-flecked silver icy mist hardens along the edge of your ice-covered cloak, reflecting rainbow-like patterns in the folds of the fabric.  With a sudden creaking sound, the ice shatters into a shower of snowflakes.&lt;br /&gt;
| Layers of cerulean-flecked silver icy mist harden along the skirts of (Character)&#039;s ice-covered cloak, reflecting rainbow-like patterns in the folds of the fabric.  With a sudden creaking sound, the ice shatters into a shower of snowflakes.&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | Elongated icicles of cerulean-flecked silver mist jut outward from the sleeves of your ice-covered cloak, lasting but a moment before shattering in frigid puffs of colorful ice crystals and mist.&lt;br /&gt;
| Elongated icicles of cerulean-flecked silver mist jut outward from the sleeves of (Character)&#039;s ice-covered cloak, lasting but for a moment before shattering in frigid puffs of colorful ice crystals and mist.&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; | Tendrils of cerulean-flecked silver icy mist pool at your feet, billowing from beneath your ice-covered cloak.&lt;br /&gt;
| Tendrils of cerulean-flecked silver icy mist pool at (Character)&#039;s feet, billowing from beneath (her/his) ice-covered cloak.&lt;br /&gt;
|}&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Icy gown]]&lt;br /&gt;
* [[Fiery cloak]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
{{iteminfo&lt;br /&gt;
|type=Fluff &amp;lt;!-- REQUIRED: Mechanical or Fluff.  OPTIONAL: If an item is feature altering or crafting, as well, please enter &amp;quot;Feature altering&amp;quot; or &amp;quot;crafting&amp;quot; below this line for &amp;quot;type2=&amp;quot; --&amp;gt;&lt;br /&gt;
|itemclass=Clothing &amp;lt;!-- REQUIRED: Valid options are: Armor, Weapon, Shield, Clothing, Accessory, Container, Creature (Pets/Mounts), or Miscellaneous.  If more than one classification, additional lines can be added with &amp;quot;itemclass2=&amp;quot; &amp;amp; &amp;quot;itemclass3=&amp;quot; --&amp;gt;&lt;br /&gt;
|itemtype=Cloak &amp;lt;!-- REQUIRED: What items can this apply to.  Up to 8 can be specified by setting &amp;quot;itemtype2&amp;quot; - &amp;quot;itemtype8&amp;quot;. --&amp;gt;&lt;br /&gt;
|alter=Yes &amp;lt;!-- REQUIRED: Can this be altered? Valid response is Yes or No. If there are restrictions, enter in Restrictions line at the end of this particular template. --&amp;gt;&lt;br /&gt;
|ld=Yes &amp;lt;!-- REQUIRED: Is this item able to be lightened or deepened?  Valid response is Yes or No. If there are restrictions, enter in Restrictions line. --&amp;gt;&lt;br /&gt;
|feature= &amp;lt;!-- OPTIONAL: This area is only REQUIRED if feature altering is indicated. Up to 8 features can be entered by setting &amp;quot;feature2=&amp;quot; - &amp;quot;feature8=&amp;quot;. --&amp;gt;&lt;br /&gt;
|customize=Yes &amp;lt;!-- OPTIONAL: Enter &amp;quot;Yes&amp;quot; if the item is customizable beyond an ALTER.  If no, leave blank. --&amp;gt;&lt;br /&gt;
|custom=Ice crystal color &amp;lt;!-- OPTIONAL:  This area is REQUIRED if customization is indicated.  Up to 5 customizations can be entered with &amp;quot;custom2=&amp;quot; - &amp;quot;custom5=&amp;quot;. If the messaging is alterable, simply enter &amp;quot;Verb&amp;quot;.--&amp;gt;&lt;br /&gt;
|origmerch= &amp;lt;!-- OPTIONAL: This area is for indicating the original release merchant name, if known. If released as a quest item, please enter &amp;quot;Quest&amp;quot; ONLY.  Otherwise, leave blank.--&amp;gt;&lt;br /&gt;
|releasevenue=Currents of Myth &amp;lt;!-- OPTIONAL: This area is for indicating the original release venue only, if known. If not, leave blank. --&amp;gt;&lt;br /&gt;
|releaseyear=2026 &amp;lt;!-- OPTIONAL: This area is for indicating the original release year only, if known. If not, leave blank. --&amp;gt;&lt;br /&gt;
|questitem= &amp;lt;!-- OPTIONAL: Enter &amp;quot;Yes&amp;quot; if the item&#039;s release was part of a quest/storyline.  If no, leave blank.  --&amp;gt;&lt;br /&gt;
|tiered= &amp;lt;!-- OPTIONAL: Enter &amp;quot;Yes&amp;quot; if the item is tiered. If no, leave blank. --&amp;gt;&lt;br /&gt;
|tiersnumber= &amp;lt;!-- OPTIONAL: This area is only REQUIRED if an item has tiers. It is to note how many tiers there are (This includes off the shelf). --&amp;gt;&lt;br /&gt;
|unlock= &amp;lt;!-- OPTIONAL: This area is only required if an item has tiers. It is to note how tiers can be unlocked.  Valid options are &amp;quot;Merchant&amp;quot;, &amp;quot;Certificate&amp;quot;, or &amp;quot;Quest&amp;quot; ONLY. If more than one, enter at unlock2.--&amp;gt;&lt;br /&gt;
|legendary= &amp;lt;!-- OPTIONAL: Enter &amp;quot;Yes&amp;quot; if the item/script was released/distributed at an auction or was a jackpot prize.  Extremely limited release only (3 or less in existence).  --&amp;gt;&lt;br /&gt;
|demeanor= &amp;lt;!-- OPTIONAL: Enter &amp;quot;Yes&amp;quot; if the item&#039;s messaging is affected by DEMEANOR.  If no, leave blank. --&amp;gt;&lt;br /&gt;
|loresong= &amp;lt;!-- OPTIONAL:  Enter &amp;quot;Yes&amp;quot; if the item has a loresong as part of the base script.  If no, leave blank. --&amp;gt;&lt;br /&gt;
|corrscript= &amp;lt;!-- OPTIONAL: This area is for indicating if an item has scripts that correspond with it, specifically, they are scripts that work separately AND together in one way or another (i.e. Bloodrunes and MoonShard Pendants).  Additional slots can be added with &amp;quot;corrscript2=&amp;quot; - &amp;quot;corrscript5&amp;quot;= --&amp;gt;&lt;br /&gt;
|attune= &amp;lt;!-- OPTIONAL: This area is for indicating if an item attunes.  If permanent, enter Permanent; if temporary, enter Temporary (as in, it can be broken).  If there is none, leave blank. --&amp;gt;&lt;br /&gt;
|attunement= &amp;lt;!-- OPTIONAL: This area is only REQUIRED if attunement was indicated. Options are &amp;quot;Character&amp;quot; or &amp;quot;Account&amp;quot;. Please note, &amp;quot;Temporary attunement&amp;quot; will ALWAYS be &amp;quot;Character&amp;quot;. --&amp;gt;&lt;br /&gt;
|affinity= &amp;lt;!-- OPTIONAL: Enter &amp;quot;Yes&amp;quot; if the item requires affinity to work.  If no, leave blank. --&amp;gt;&lt;br /&gt;
|spell= &amp;lt;!-- OPTIONAL: This area is for indicating if an item has a spell inherent to the script ONLY.  Up to 4 may be specified with &amp;quot;spell2=&amp;quot; - &amp;quot;spell4=&amp;quot;. Example to enter: Call Familiar (920). If no, leave blank. --&amp;gt;&lt;br /&gt;
|enhancive= &amp;lt;!-- OPTIONAL: This area is for indicating if an item has enhancives inherent to the script ONLY.  Answer YES. If no, leave blank. --&amp;gt;&lt;br /&gt;
|swap= &amp;lt;!-- OPTIONAL: This area is for indicating if an item is eligible for script swapping.  Answer YES. If no, leave blank. --&amp;gt;&lt;br /&gt;
|add= &amp;lt;!-- OPTIONAL: This area is for indicating if the script is eligible to be added to an item.  Answer YES. If no, leave blank. --&amp;gt;&lt;br /&gt;
|restrictions=Must remain actual fabric.&amp;lt;br&amp;gt;Messaging references a long garment.&amp;lt;br&amp;gt;Ice crystal color must be kept to a reasonable length. &amp;lt;!-- OPTIONAL: This area is for indicating if an item has specific restrictions. If more than one, separate with &amp;lt;br&amp;gt;. DO NOT ENTER ON A SEPARATE LINE. --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{itemverb&lt;br /&gt;
|verb=ATTEND &amp;lt;!-- Verbs MUST be capitalized when entered. Up to 28 verbs can be added with &amp;quot;verb2=&amp;quot; - &amp;quot;verb28=&amp;quot;.  Verbs should be listed in alphabetical order, not by tier.--&amp;gt;&lt;br /&gt;
|verb2=BOW&lt;br /&gt;
|verb3=CAST&lt;br /&gt;
|verb4=CLEAN&lt;br /&gt;
|verb5=INVOKE&lt;br /&gt;
|verb6=NUDGE&lt;br /&gt;
|verb7=PINCH&lt;br /&gt;
|verb8=PROD&lt;br /&gt;
|verb9=PULL&lt;br /&gt;
|verb10=PUSH&lt;br /&gt;
|verb11=SHAKE&lt;br /&gt;
|verb12=WAGGLE&lt;br /&gt;
|verb13=WAVE&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=SimuCon_2025&amp;diff=261424</id>
		<title>SimuCon 2025</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=SimuCon_2025&amp;diff=261424"/>
		<updated>2026-07-22T15:34:44Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Attendee Ticket Options */ fix year for attendee spirit beast&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SimuCon&#039;&#039;&#039; is a yearly gathering in St. Louis near [[Simutronics]] headquarters usually taking place near the end of the summer. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;OFFICIAL&amp;lt;/u&amp;gt;&#039;&#039;&#039; dates for 2025 are Thursday, July 10 through Sunday, July 13, 2025 at the Sheraton Westport Plaza Hotel. Room reservation link Room reservation link [https://www.marriott.com/event-reservations/reservation-link.mi?id=1741039429417&amp;amp;key=GRP&amp;amp;app=resvlink here].&lt;br /&gt;
&lt;br /&gt;
==2025 Schedule==&lt;br /&gt;
===Main Schedule===&lt;br /&gt;
All times CST (CENTRAL TIME)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! colspan=&amp;quot;8&amp;quot; |Activity:  See printed schedule for correct location.&lt;br /&gt;
|-&lt;br /&gt;
!Day&lt;br /&gt;
!Time&lt;br /&gt;
! colspan=&amp;quot;6&amp;quot; |Activity &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;font-weight:bold; vertical-align:top;&amp;quot; |Wednesday&amp;lt;br /&amp;gt;July 9th&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |3:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center;background-color: #F2DDDC;&amp;quot; |Lend a hand with setup and hang out (Check-in starts on Thursday)&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;15&amp;quot; style=&amp;quot;text-align: center;font-weight:bold; vertical-align:top;&amp;quot; |Thursday&amp;lt;br /&amp;gt;July 10th&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |All Day&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Check-in and Socialize&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 AM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; | Coffee, Tea, and Water&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |12:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Lunch break (on your own)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |2:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; | Betrayer&#039;s Session 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |3:00 PM&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |4:00 PM&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: red;&amp;quot;  |GS - Who in the Whatnow?&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot;  |D&amp;amp;D Session 0	**&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |5:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Dinner break (on your own)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |6:00 PM&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |D&amp;amp;D One-Shot **&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |7:00 PM&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; | Betrayer&#039;s Session 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |8:00 PM &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 PM&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: blue;&amp;quot; | Ice Breaker Event&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |D&amp;amp;D One-Shot **&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |10:00 PM&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |11:00 PM&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |1:00 AM &lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center;background-color: #F2DDDC;&amp;quot; | Quiet Hours - Volume down, liquor bottles away&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;20&amp;quot; style=&amp;quot;text-align: center;font-weight:bold; vertical-align:top;&amp;quot; |Friday&amp;lt;br /&amp;gt;July 11th&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |All Day&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Check-in and Socialize&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 AM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; | Coffee, Tea, and Water&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: center&amp;quot; |&#039;&#039;&#039;Instance&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: red;&amp;quot; |Gemstone &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: #BF40BF;&amp;quot; |Dragon Realms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |10:00 AM&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6F3FF; color: red;&amp;quot; |Panel: ALTER and You &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;background-color: #D6FFE7; color: #BF40BF;&amp;quot; |PANEL: Live Dev&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |11:00 AM&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6F3FF; color: red;&amp;quot; |Panel: Premium Benefits&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |12:00 PM&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Lunch break (on your own)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |Blood on the Clocktower&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6;&amp;quot; |Lunch with Staff (perk)&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center&amp;quot; |1:00 PM&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: center&amp;quot; |&#039;&#039;&#039;Instance&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: red;&amp;quot; |Gemstone &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: #BF40BF;&amp;quot; |Dragon Realms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |2:00 PM &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6F3FF; color: red;&amp;quot; | Panel: World Announcements &amp;amp; OSA Workshop&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;background-color: #D6FFE7; color: #BF40BF;&amp;quot; |Panel: Alteration and Item Design&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |3:00 PM&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6F3FF; color: red;&amp;quot; | Panel: Duskruin&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |4:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; |Panel Breaks&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |5:00 PM&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6F3FF; color: red;&amp;quot; | Blindfolded Duskruin Endless&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6FFE7; color: #BF40BF;&amp;quot; | Blindfolded PvP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |6:00 PM&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6F3FF; color: red;&amp;quot; | Droughtman&#039;s Challenge (Prime &amp;amp; Shattered)&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6FFE7; color: #BF40BF;&amp;quot; | Basic Orienteering&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |7:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Dinner break (on your own)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |8:00 PM&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |D&amp;amp;D One-Shot **&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 PM &lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: blue;&amp;quot; | Live Alterations&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |10:00 PM &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |11:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; |Socializing&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |1:00 AM&lt;br /&gt;
| colspan=&amp;quot;65&amp;amp;quot;&amp;quot; style=&amp;quot;text-align: center;background-color: #F2DDDC;&amp;quot; |Quiet Hours - Volume down, liquor bottles away&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;20&amp;quot; style=&amp;quot;text-align: center;font-weight:bold; vertical-align:top;&amp;quot; |Saturday&amp;lt;br /&amp;gt;July 12th&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |All Day&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Check-in and Socialize&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 AM&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; | Coffee, Tea, and Water&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |D&amp;amp;D One-Shot **&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: center&amp;quot; |&#039;&#039;&#039;Instance&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: red;&amp;quot; |Gemstone &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: #BF40BF;&amp;quot; |Dragon Realms&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |10:00 AM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6F3FF; color: red;&amp;quot; |Panel: What&#039;s New?&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;background-color: #D6FFE7; color: #BF40BF;&amp;quot; |PANEL: History and Lore&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |11:00 AM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6F3FF; color: red;&amp;quot; |Panel: Creating Items&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |12:00 PM&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Lunch break (on your own)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |Blood on the Clocktower&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |Sip and Paint&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |1:00 PM&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |2:00 PM&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: center&amp;quot; |&#039;&#039;&#039;Instance&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: red;&amp;quot; |Gemstone&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: #BF40BF;&amp;quot; |Dragon Realms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |3:00 PM&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6F3FF; color: red;&amp;quot; | Panel: Gemstones&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6FFE7; color: #BF40BF;&amp;quot; | Informal Q &amp;amp; A&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |4:00 PM &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6F3FF; color: red;&amp;quot; | Panel: Sailor&#039;s Grief&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; |Panel Breaks&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |5:00 PM &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6F3FF; color: red;&amp;quot; | Exploration&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: left;background-color: #D6FFE7; color: #BF40BF;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |6:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Dinner break (on your own)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |7:00 PM &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |8:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; |Costume Party Contest&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; | Raffles&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |10:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; | Music&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |11:00 PM&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |1:00 AM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center;background-color: #F2DDDC;&amp;quot; | Quiet Hours - Volume down, liquor bottles away&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align: center;font-weight:bold; vertical-align:top;&amp;quot; |Sunday&amp;lt;br&amp;gt;July 13th&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |All Day&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Check-in and Socialize&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center;background-color: #F2DDDC;&amp;quot; |Socialize/Clean up!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |2:00 AM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align: center;background-color: #F2DDDC;&amp;quot; |Rooms Close - Con Ends!&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For the Live Alteration Sessions:&amp;lt;br&amp;gt;&lt;br /&gt;
- First come, first served!  If you would rather socialize, then feel free to let GM Thandiwe know, and she will send you an alteration token that you can REDEEM in-game.  It will have an expiration on it, though, so be aware of that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;This event requires a laptop or use of one of the workstations provided in the main conference room to access the game.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;D&amp;amp;D One Shots: You must pre-register for a session in the Box Office. It is strongly recommended to attend Session 0.&lt;br /&gt;
&lt;br /&gt;
Event Color Coding:&amp;lt;br&amp;gt;&lt;br /&gt;
This event is in the main conference room.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;This event is in Breakout 1.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#BF40BF&amp;quot;&amp;gt;This event is in Breakout 2.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;This event is in Breakout 3.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Streaming Schedule===&lt;br /&gt;
The following Gemstone IV panels will be streamed. All times CST (CENTRAL TIME)&lt;br /&gt;
&lt;br /&gt;
Streaming link: [https://www.twitch.tv/simuradio SimuRadio]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!Day&lt;br /&gt;
!Time&lt;br /&gt;
!Panel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Friday, July 11th&#039;&#039;&#039;&lt;br /&gt;
|10:00 AM&lt;br /&gt;
|[https://docs.google.com/presentation/d/e/2PACX-1vQ4a0-F_noQJuZt1KJJJgNkSVqQdaE3cHkUE2axPkcVlJ4eErdmo80xWnFs1UhSF4HB58fNwlbuskuh/pub?start=true&amp;amp;loop=false&amp;amp;delayms=10000 Panel: ALTER and YOU]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Friday, July 11th&#039;&#039;&#039;&lt;br /&gt;
|11:00 AM&lt;br /&gt;
|[https://docs.google.com/presentation/d/e/2PACX-1vTAzCR6A6b_KfVLMyOmnnQ40pvjbcMaFdNnL8Qr3I27DuBL3PI5o2NSRd5mwoxhFDX8egZbbE3qPIVd/pub?start=true&amp;amp;loop=false&amp;amp;delayms=10000 Panel: Premium Benefits]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Saturday, July 12th&#039;&#039;&#039;&lt;br /&gt;
|3:00 PM&lt;br /&gt;
|Panel: Gemstones&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Saturday, July 12th&#039;&#039;&#039;&lt;br /&gt;
|4:00 PM&lt;br /&gt;
|Panel: Sailor&#039;s Grief&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unstreamed Panels ===&lt;br /&gt;
* [https://docs.google.com/presentation/d/e/2PACX-1vRuao5m6EL1SleZsg5zH4ulRJxEll5QLV4ukhbM15k_eEpeGbTK1UvF_QCG06x2kW44lPYsadcoCJdp/pub?start=true&amp;amp;loop=false&amp;amp;delayms=10000 Duskruin Panel]&lt;br /&gt;
* [https://docs.google.com/presentation/d/e/2PACX-1vQ5tLmNfrX2D8F9ciDO81eiB9I7e_jgmxK6_bgrHWeSNB7ZZf57fWep6YhbwZA16S6io2cAb5l0z7Zh/pub?start=true&amp;amp;loop=false&amp;amp;delayms=10000 World Announcements &amp;amp; OSA]&lt;br /&gt;
* [https://docs.google.com/presentation/d/e/2PACX-1vRdLYjYoyhllY0TkeOaS0OwLxSGMYYTZD_UkVIvxUQ25sriFx2Ly39luSTjH_E8F3dRl6HE0qNo4_mT/pub?start=true&amp;amp;loop=false&amp;amp;delayms=10000 What&#039;s New?]&lt;br /&gt;
* [https://docs.google.com/presentation/d/e/2PACX-1vTeS59eQ1ZOVf_6vd3YfT64Vbbu0NNQUgrndvXzSbafKAKKeuW7F9hqN4cU6gpBAoPFT4B5BF8tz2RF/pub?start=true&amp;amp;loop=false&amp;amp;delayms=10000 Gemstones]&lt;br /&gt;
* [https://docs.google.com/presentation/d/e/2PACX-1vRoADIRpPaU_w3mOh_GFPFobazx0_aVpvV8A81vpAysvydJs9C3Tj7oATUx0I9EI92RRl8kPlwT7rHL/pub?start=false&amp;amp;loop=false&amp;amp;delayms=3000 Sailor&#039;s Grief]&lt;br /&gt;
&lt;br /&gt;
==Attendee List==&lt;br /&gt;
===Prime Players===&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:4;-moz-column-count:4;-webkit-column-count:4&amp;quot;&amp;gt;&lt;br /&gt;
* [[Altheren (prime)|Altheren]]&lt;br /&gt;
* Amerek&lt;br /&gt;
* Callayne&lt;br /&gt;
* Citan&lt;br /&gt;
* [[Delindra (prime)|Delindra]]&lt;br /&gt;
* [[Dergoatean (prime)|Dergoatean]]&lt;br /&gt;
* Desorceri&lt;br /&gt;
* Durakar&lt;br /&gt;
* [[Elgrim (prime)|Elgrim]]&lt;br /&gt;
* [[Fyg (prime)|Fyg]]&lt;br /&gt;
* Julenne&lt;br /&gt;
* Liras&lt;br /&gt;
* [[Maylan (prime)|Maylan]]&lt;br /&gt;
* Madmountan&lt;br /&gt;
* Mourdeyan&lt;br /&gt;
* Raelee&lt;br /&gt;
* Ramladu&lt;br /&gt;
* Roblar&lt;br /&gt;
* Valanis&lt;br /&gt;
* Zangow&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Platinum Players===&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:4;-moz-column-count:4;-webkit-column-count:4&amp;quot;&amp;gt;&lt;br /&gt;
* Deleu&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Shattered Players===&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:4;-moz-column-count:4;-webkit-column-count:4&amp;quot;&amp;gt;&lt;br /&gt;
* Drekoi&lt;br /&gt;
* Omrii&lt;br /&gt;
* Tysong&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Game Staff===&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:4;-moz-column-count:4;-webkit-column-count:4&amp;quot;&amp;gt;&lt;br /&gt;
* Aergo&lt;br /&gt;
* Auchand&lt;br /&gt;
* Haxus&lt;br /&gt;
* &amp;lt;s&amp;gt;Ivry&amp;lt;/s&amp;gt;&lt;br /&gt;
* Kaonashi&lt;br /&gt;
* Lydil&lt;br /&gt;
* Mestys&lt;br /&gt;
* Nyxus&lt;br /&gt;
* Tago&lt;br /&gt;
* Thandiwe&lt;br /&gt;
* Valyrka&lt;br /&gt;
* Xeraphina&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
===How much does SimuCon cost?===&lt;br /&gt;
Attendance badges have previously cost $40 when purchased in advance. Tickets are available at the door, but will be more expensive. Please see the [[#Ticketing|Ticketing]] section for more details.&lt;br /&gt;
&lt;br /&gt;
=== Where do I sign up?===&lt;br /&gt;
&lt;br /&gt;
Ticketing will likely be handled via the play.net Box Office when available. Please see the [[#Ticketing|Ticketing]] section for more details.&lt;br /&gt;
&lt;br /&gt;
===Who organizes SimuCon?===&lt;br /&gt;
&lt;br /&gt;
Typically GameMasters from Gemstone IV and DragonRealms are the official organizers. However, many players pitch in to plan unofficial events or to offer support. All work is strictly volunteer, so please be sure to thank your organizer team!&lt;br /&gt;
&lt;br /&gt;
===What is it like to attend a SimuCon?===&lt;br /&gt;
&lt;br /&gt;
SimuCon is a gathering of players and GameMasters for Simutronics games, including Gemstone IV and DragonRealms. The convention includes several events, as listed in the [[#2025 Schedule|2025 Schedule]], that are planned by both players and staff. In-between events, attendees typically gather at conference tables similar to a large LAN party to play. Board games and other activities are frequently available as well.&lt;br /&gt;
&lt;br /&gt;
===How many people attend SimuCon and when do they show up?===&lt;br /&gt;
&lt;br /&gt;
SimuCon has experienced a growth spurt over the past three years or so. A current rough estimate would be 100 attendees (GS and DR combined) over the course of the weekend. The main convention days are Thursday through Sunday, although several people arrive on Wednesday and stay through Monday. The convention room is typically setup by Wednesday evening.&lt;br /&gt;
&lt;br /&gt;
===What equipment should I bring? ===&lt;br /&gt;
&lt;br /&gt;
Bring your laptop/computer so that you can play Gemstone during the convention. Internet access and power strips are typically provided. &#039;&#039;&#039;Note:&#039;&#039;&#039; It is not recommended that you leave your equipment unattended in the conference room.&lt;br /&gt;
&lt;br /&gt;
===Will I need a car?===&lt;br /&gt;
&lt;br /&gt;
Many attendees never leave the hotel. However if you are planning to explore St. Louis, a car is recommended as public transportation options are slim. Lyft and Uber are both operational in St. Louis and are ideal for single trips. For any excursions listed in the schedule, carpool options may be available. A shuttle may be available to and from your hotel for airport travel, but don&#039;t forget to bring cash for a tip!&lt;br /&gt;
&lt;br /&gt;
===Is SimuCon family friendly?===&lt;br /&gt;
&lt;br /&gt;
In general, yes. Some attendees do bring children but activities in the convention room may be of limited interest to them. Note the [[#Attractions|Attractions]] section listed below for additional kid-friendly activities available in St. Louis. Please expect to encounter explicit language and consumption of alcoholic beverages, which will increase in the late night hours.&lt;br /&gt;
&lt;br /&gt;
===What is the weather typically like?===&lt;br /&gt;
&lt;br /&gt;
Missouri is nicknamed &amp;quot;Misery&amp;quot; for its hot and humid summers. For a current local forecast, click here: https://www.ksdk.com/weather&lt;br /&gt;
&lt;br /&gt;
===Do I need to bring food or beverages?===&lt;br /&gt;
&lt;br /&gt;
Depending on funds available, basic snacks will be provided. You are generally on your own for meals and can purchase food at the grocery or restaurant options listed in the [[#Dining.2FEating|Dining/Eating]] section. SimuCon is strictly BYOB. Alcohol can be purchased in most grocery stores and gas stations in Missouri.&lt;br /&gt;
&lt;br /&gt;
===What should I wear?===&lt;br /&gt;
&lt;br /&gt;
SimuCon is casual attire unless the schedule for a specific event indicates otherwise. Some events may encourage costumes or themed attire.&lt;br /&gt;
&lt;br /&gt;
=== Is there a pool?===&lt;br /&gt;
&lt;br /&gt;
YES, pack your bathing suit! The Sheraton Westport Plaza has an indoor pool, and their sister property the Sheraton Westport Chalet has an outdoor pool. The Chalet&#039;s outdoor pool is very close and is a popular day time destination for attendees. All facilities at both hotels are available to any guest staying at either hotel. There is even a poolside bar with snacks and beverages (open Friday through Sunday), and towel service is available. It is recommended that you pack sunscreen ahead of time, because the hotel and nearby shops do not stock any. It is also recommended that you bring pool noodles, because pool noodles are wicked cool.&lt;br /&gt;
&lt;br /&gt;
==Visitor Information==&lt;br /&gt;
The convention is typically held in the St. Louis area, home of Simutronic&#039;s headquarters. While the host hotel may very, it is usually held at one of the many convention spaces at or near the Westport Plaza. For specific details on the official hotel, please see the below accommodations list. Also below are some nearby shops and other information for visitors. All distances calculated from the host hotel.&lt;br /&gt;
&lt;br /&gt;
===Accommodations===&lt;br /&gt;
https://www.marriott.com/event-reservations/reservation-link.mi?id=1741039429417&amp;amp;key=GRP&amp;amp;app=resvlink&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 1em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;  &amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;lightblue&amp;quot;&lt;br /&gt;
!Name||Distance||Address|| Link&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Sheraton Westport Plaza (Official Hotel)&#039;&#039;&#039;||onsite||900 Westport Plaza, St. Louis, MO 63146||[https://www.marriott.com/event-reservations/reservation-link.mi?id=1741039429417&amp;amp;key=GRP&amp;amp;app=resvlink Group Discount Booking Link]&lt;br /&gt;
|-&lt;br /&gt;
|Sheraton Westport Chalet||onsite||191 Westport Plaza, St. Louis, MO 63146||[https://www.marriott.com/en-us/hotels/stlsi-sheraton-westport-chalet-hotel-st-louis/ Booking Link]&lt;br /&gt;
|-&lt;br /&gt;
|Staybridge Suites||0.3 miles||25 Progress Pkwy, St. Louis, MO 63146||[https://www.ihg.com/staybridge/hotels/us/en/st-louis/stlsb/hoteldetail Booking Link]&lt;br /&gt;
|-&lt;br /&gt;
|Comfort Inn Suites||0.7 miles||12031 Lackland Rd., Saint Louis, MO, 63146||[https://www.choicehotels.com/missouri/saint-louis/comfort-inn-hotels/mo608/rates?checkInDate=2022-08-03&amp;amp;checkOutDate=2022-08-79 Booking Link]&lt;br /&gt;
|-&lt;br /&gt;
|Residence Inn St. Louis Westport||0.6 miles|| 11918 Westline Industrial Drive, St. Louis, MO 63146|| [https://www.marriott.com/hotels/travel/stlwr-residence-inn-st-louis-westport/ Booking Link]&lt;br /&gt;
|-&lt;br /&gt;
|Farfield Inn and Suites St. Louis Westport||0.6 miles||11918 Westline Industrial Drive, St. Louis, MO 63146||[https://www.marriott.com/hotels/travel/stlfw-fairfield-inn-and-suites-st-louis-westport/ Booking Link]&lt;br /&gt;
|-&lt;br /&gt;
|Courtyard by Marriott St. Louis Westport||0.7 miles||11888 Westline Industrial Drive, St. Louis, MO 63146||[https://www.marriott.com/hotels/travel/stlwp-courtyard-st-louis-westport-plaza/ Booking Link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Dining/Eating===&lt;br /&gt;
{| {{prettytable}} cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 1em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;  &amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;lightblue&amp;quot;&lt;br /&gt;
!Name||Type||Distance||Address||Link&lt;br /&gt;
|-&lt;br /&gt;
|Drunken Fish||Sushi||onsite||639 West Port Plaza, St. Louis, MO 63146 ||https://www.drunkenfish.com/&lt;br /&gt;
|-&lt;br /&gt;
|Kobe Japanese Grill||Japanese/Hibachi||onsite||645 West Port Plaza, St. Louis, MO 63146||https://www.kobeofwestport.com/menus/&lt;br /&gt;
|-&lt;br /&gt;
|Starbucks||Coffee|| onsite||111 West Port Plaza, St. Louis, MO 63146 ||https://www.westportstl.com/tenant/starbucks/&lt;br /&gt;
|-&lt;br /&gt;
|Trainwreck Saloon||American/Grill||onsite|| 314 West Port Plaza, St. Louis, MO 63146||https://www.trainwrecksaloon.com/westport-home&lt;br /&gt;
|-&lt;br /&gt;
|Westport Social||Bar/Games/Karaoke||onsite||910 West Port Plaza Dr, St. Louis, MO 63146||https://westportsocial-stl.com/menu/&lt;br /&gt;
|-&lt;br /&gt;
|360 Westport||Rooftop Bar &amp;amp; Lounge||onsite||111 West Port Plaza, Suite 1200, St. Louis, MO 63146||https://www.360-stl.com/westport/&lt;br /&gt;
|-&lt;br /&gt;
|Soda Fountain Express||Modern Diner||onsite||147 West Port Plaza Dr, St. Louis, MO 63146||https://sodafountainexpress-stl.com/&lt;br /&gt;
|-&lt;br /&gt;
|Basso on the Plaza||Italian||onsite||545 West Port Plaza Dr, St. Louis, MO 63146||https://www.basso-stl.com/westport/&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Off-Site Dining===&lt;br /&gt;
For attendees who want to explore St. Louis cuisine, local players recommend the following restaurants.&lt;br /&gt;
 &lt;br /&gt;
{| {{prettytable}} cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 1em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;  &amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;lightblue&amp;quot;&lt;br /&gt;
!Name|| Type||Distance||Address||Link&lt;br /&gt;
|-&lt;br /&gt;
|St. Louis Bread Company||Cafe &amp;amp; Bakery||0.3 mi||15 Progress Pkwy, Maryland Heights, MO 63043 ||https://www.panerabread.com/en-us/cafe/locations/mo/maryland-heights/15-progress-parkway&lt;br /&gt;
|-&lt;br /&gt;
|O&#039;Fallon Brewery||Beer/American Food||0.3 mi ||45 Progress Pkwy, Maryland Heights, MO 63043 ||http://www.ofallonbrewery.com/&lt;br /&gt;
|-&lt;br /&gt;
|Giola&#039;s Deli||Sandwiches||0.8 mi||11855 Adie Rd, Maryland Heights, MO 63043||https://www.gioiasdeli.com/&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DD Mau||Vietnamese / Bao||1.3 mi||11982 Dorsett Rd, Maryland Heights, MO 63043||http://www.ddmaustl.com/ &lt;br /&gt;
|-&lt;br /&gt;
|Gobble STOP Smokehouse|| BBQ Poultry||2.8 mi||1227 Castillon Arcade Plaza, Creve Coeur, MO 63141||http://gobblestopsmokehouse.net/&lt;br /&gt;
|-&lt;br /&gt;
| Nudo House STL||Ramen / Japanese||3.0 mi||11423 Olive Blvd, St. Louis, MO 63141||http://nudohousestl.com/ &lt;br /&gt;
|-&lt;br /&gt;
|Dave &amp;amp; Tony&#039;s||Premium Burgers||3.2 mi||12766 Olive Blvd, St. Louis, MO 63146||http://www.daveandtonys.com/&lt;br /&gt;
|-&lt;br /&gt;
|Taqueria Durango|| Mexican||3.5 mi|| 10238 Page Ave, Overland, MO||https://www.facebook.com/TaqueriaDurangoSaintLouis&lt;br /&gt;
|-&lt;br /&gt;
| Nick &amp;amp; Elena&#039;s Pizzeria||Pizza/Italian||5.4 mi||3007 Woodson Rd, Overland, MO 63114||https://www.facebook.com/NICKnELENAS/&lt;br /&gt;
|-&lt;br /&gt;
|Sugarfire Smokehouse||BBQ||6.0 mi||9200 Olive Blvd, St. Louis, MO 63132||https://sugarfiresmokehouse.com/locations/mo-olivette/&lt;br /&gt;
|-&lt;br /&gt;
|Salt + Smoke|| BBQ||9.0 mi||501 S Main St, St. Charles, MO 63301 || https://saltandsmokestl.com/&lt;br /&gt;
|-&lt;br /&gt;
|BEAST||BBQ||17.1 mi||4156 Manchester Ave, St. Louis, MO 63110||https://beastbbqstl.com/ &lt;br /&gt;
|-&lt;br /&gt;
|Pappy&#039;s Smokehouse||BBQ||18.7 mi||3106 Olive St, St. Louis, MO 63103||https://www.pappyssmokehouse.com/&lt;br /&gt;
|-&lt;br /&gt;
|Bogart&#039;s||BBQ||20.8 mi||71627 S 9th St, St. Louis, MO 63104||https://www.bogartssmokehouse.com/&lt;br /&gt;
|-&lt;br /&gt;
|Broadway Oyster Bar||Cajun||23.7 mi||736 S Broadway, St. Louis, MO 63102||http://www.broadwayoysterbar.com/&lt;br /&gt;
|-&lt;br /&gt;
| Ted Drewes||Famous local frozen custard||21.6 mi||6726 Chippewa, St. Louis, MO 63109|| http://teddrewes.com/&lt;br /&gt;
|-&lt;br /&gt;
|Bombay Food Junkies||Vegan Options||5.2 mi||3580 Adie Rd, St Ann, MO 63074||https://www.bombayfoodjunkies.com/&lt;br /&gt;
|-&lt;br /&gt;
|Hi-Point Drive-In||Burgers||12 mi||1033 McCausland Ave, St. Louis, MO 63117||https://hipointedrivein.com/about/&lt;br /&gt;
|-&lt;br /&gt;
|Bar Louie||Bar &amp;amp; Grill||8.4 mi||1650 Beale Street Suite 180, St. Charles, MO 63303||https://www.barlouie.com/ &lt;br /&gt;
|-&lt;br /&gt;
|Sauce on the Side||Calzones||9.2 mi||7810 Forsyth Blvd., Clayton, MO 63105||https://sauceontheside.com/&lt;br /&gt;
|-&lt;br /&gt;
|Blueberry Hill||Landmark restaurant / Americana||9.4 mi||6504 Delmar Blvd, University City, MO 63130||https://blueberryhill.com/&lt;br /&gt;
|-&lt;br /&gt;
|Fitz&#039;s||Local root beer &amp;amp; burgers||9.3 mi||6605 Delmar Blvd, St. Louis, MO 63130||https://fitzsrootbeer.com/&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Shopping/Groceries===&lt;br /&gt;
{| {{prettytable}} cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 1em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;  &amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;lightblue&amp;quot;&lt;br /&gt;
!Name||Distance||Address||Link&lt;br /&gt;
|-&lt;br /&gt;
|Target||5.9 mi||12275 St Charles Rock Rd, Bridgeton, MO 63044||[https://www.target.com/sl/bridgeton/12 website]&lt;br /&gt;
|-&lt;br /&gt;
|Costco||13.3 mi||200 Costco Way, St Peters, MO 63376||[https://www.costco.com/warehouse-locations/st-peters-saint-peters-mo-382.html website]&lt;br /&gt;
|-&lt;br /&gt;
|Schnucks Dorsett (Grocery Store) ||1.5 mi||2030 Dorsett Rd, Maryland Heights, MO 63043||[https://locations.schnucks.com/mo-maryland-heights-117 website]&lt;br /&gt;
|-&lt;br /&gt;
|Walgreens ||1.6 mi||12509 Dorsett Rd, Maryland Heights, MO 63043||[https://www.walgreens.com/locator/walgreens-12509+dorsett+rd-maryland+heights-mo-63043/id=9481 website]&lt;br /&gt;
|-&lt;br /&gt;
|BP Gas Station||0.3 mi||11988 Westline Industrial Dr, St. Louis, MO 63146||&lt;br /&gt;
|-&lt;br /&gt;
|ALDI||2.6 mi||11745 Olive Blvd, Creve Coeur, MO 63141||[https://www.aldi.us/ website]&lt;br /&gt;
|-&lt;br /&gt;
|Trader Joe&#039;s||[https://goo.gl/maps/3aV8WLBakaB2 2.4 mi]||11505 Olive Blvd, Creve Coeur, MO 63141||[https://locations.traderjoes.com/mo/creve-coeur/694/ website]&lt;br /&gt;
|-&lt;br /&gt;
|D&amp;amp;J Liquor||[https://goo.gl/maps/a6m73h9w4ynWnWqh8 1.5 mi]||1914 McKelvey Rd, Maryland Heights, MO 63043||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attractions===&lt;br /&gt;
&lt;br /&gt;
Most attractions are a 15-30 minute drive from the hotel. For tourism information, click here: https://explorestlouis.com/&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 1em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;  &amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;lightblue&amp;quot;&lt;br /&gt;
!Name||Description||Address||Link&lt;br /&gt;
|-&lt;br /&gt;
|The Gateway Arch||Oh look, it&#039;s the Arch||200 Washington Ave, St. Louis, MO 63102|| https://www.gatewayarch.com/&lt;br /&gt;
|-&lt;br /&gt;
|Busch Stadium ||Cardinals Baseball Stadium||700 Clark Ave, St. Louis, MO 63102||https://www.mlb.com/cardinals/ballpark&lt;br /&gt;
|-&lt;br /&gt;
|Forest Park||Large public park, home to several free attractions ||5595 Grand Dr, St. Louis, MO 63112||https://forestparkmap.org/&lt;br /&gt;
|-&lt;br /&gt;
|St. Louis Zoo||Free zoo, located inside Forest Park||Government Dr, St. Louis, MO 63110 ||https://www.stlzoo.org/&lt;br /&gt;
|-&lt;br /&gt;
|St. Louis Aquarium at Union Station||Opened Dec. 2019, the otters and spitting fish are worth the admission, skip the wheel||201 S 18th St, St. Louis, MO 63103||https://www.stlouisaquarium.com/&lt;br /&gt;
|-&lt;br /&gt;
|St. Louis Art Museum||Free art museum, located inside Forest Park||1 Fine Arts Dr, St. Louis, MO 63110||https://www.slam.org/ &lt;br /&gt;
|-&lt;br /&gt;
|Creve Coeur Lake Park||[https://goo.gl/maps/7s9nUCbcyBM2 3.4 mi] from the hotel. Trails, kayak rentals, Go Ape||13725 Marine Ave, St. Louis, MO 63146||[https://www.stlouisco.com/Parks-and-Recreation/Park-Pages/Creve-Coeur website]&lt;br /&gt;
|-&lt;br /&gt;
|The Muny||Outdoor theater, located inside Forest Park||1 Theatre Dr, St. Louis, MO 63112||https://muny.org/&lt;br /&gt;
|-&lt;br /&gt;
|Missouri Botanical Gardens||Outdoor garden ||4344 Shaw Blvd, St. Louis, MO 63110 ||http://www.missouribotanicalgarden.org/&lt;br /&gt;
|-&lt;br /&gt;
|Anheuser-Busch St. Louis Brewery||Main brewery, offers tours||1200 Lynch St, St. Louis, MO 63118||https://www.budweisertours.com/locations/st-louis-missouri.html&lt;br /&gt;
|-&lt;br /&gt;
|City Museum||Architectural Anomaly/Interactive Art/Climbing Museum||750 N 16th St, St. Louis, MO 63103|| https://www.citymuseum.org/&lt;br /&gt;
|-&lt;br /&gt;
|Grants Farm||Free wildlife park with tram tours and free beer||10501 Gravois Rd, St. Louis, MO 63123||https://www.grantsfarm.com/home.html&lt;br /&gt;
|-&lt;br /&gt;
|The Butterfly House||Indoor butterfly pavilion ||15193 Olive Blvd, Chesterfield, MO 63017|| http://www.missouribotanicalgarden.org/visit/family-of-attractions/butterfly-house.aspx&lt;br /&gt;
|-&lt;br /&gt;
|Science Center||Kid-friendly interactive museum, includes IMAX and planetarium||5050 Oakland Ave, St. Louis, MO 63110||https://www.slsc.org/&lt;br /&gt;
|-&lt;br /&gt;
| Magic House ||Kid-friendly interactive museum, includes magic||516 S Kirkwood Rd, St. Louis, MO 63122||https://www.magichouse.org/&lt;br /&gt;
|-&lt;br /&gt;
|Fox Theatre||Historic theater, offers tours||527 NORTH GRAND BLVD., St. Louis, MO 63103||https://www.fabulousfox.com/visit/tours&lt;br /&gt;
|-&lt;br /&gt;
|St. Louis Neighborhoods||Shopping/Nightlife/Exploring|| Various||https://explorestlouis.com/things-to-do/neighborhoods/&lt;br /&gt;
|-&lt;br /&gt;
|Live Music Venues||St. Louis is known for its blues and jazz scene||Various ||https://explorestlouis.com/discover/st-louis-music-lovers/st-louis-live-music-venues/&lt;br /&gt;
|-&lt;br /&gt;
|Casinos||Gambling||Various||https://www.tripadvisor.com/Attractions-g44881-Activities-c53-Saint_Louis_Missouri.html&lt;br /&gt;
|-&lt;br /&gt;
|Cahokia Mounds||Ruins of the largest prehistoric civilization north of Mexico, 30 min drive from hotel||30 Ramey Street Collinsville, IL 62234|| https://cahokiamounds.org/&lt;br /&gt;
|-&lt;br /&gt;
|A Gathering Place||Massages within walking distance of convention center||12140 Lackland Rd, St. Louis, MO 63146 ||https://www.agatheringplace.com/&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Ticketing==&lt;br /&gt;
Ticketing is handled through the play.net [https://www.play.net/gs4/quests/ Box Office] page. &#039;&#039;&#039;Be sure to click on the Details button in the Box Office to view the specifics of your selection.&#039;&#039;&#039; To attend, a badge is required and all attendees must display their badge at all times while in the official event rooms. Badges can be purchased at the door, but will be more expensive. &lt;br /&gt;
&lt;br /&gt;
===Non-Attendee Options===&lt;br /&gt;
&#039;&#039;&#039;Non-Attendee Goodie Bag: $40 - 1000 Available&#039;&#039;&#039;  &lt;br /&gt;
* 4x RPA orb (account attuned)&lt;br /&gt;
* Chronomage Spheres, 1x per town&lt;br /&gt;
* Urchin Guide, 90 days&lt;br /&gt;
* Adv Guild Vouchers, 20 uses&lt;br /&gt;
* Quest Orb, 1 use&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Special Item: $40 - 1000 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This an ADDITIONAL special item!  &lt;br /&gt;
*A unique Spirit Beast available only at SimuCon 2025!&lt;br /&gt;
&lt;br /&gt;
===Attendee Ticket Options===&lt;br /&gt;
&#039;&#039;&#039;Badge (Option 10 in the Box Office): $40 Base Price - 1000 Available&#039;&#039;&#039;&lt;br /&gt;
All attendees must display their badge at all times while in the official event rooms. Includes:&lt;br /&gt;
&lt;br /&gt;
Attendee Goodie Bag  &lt;br /&gt;
* 4x RPA orb (account attuned)&lt;br /&gt;
* Chronomage Spheres, 1x per town&lt;br /&gt;
* Urchin Guide, 90 days&lt;br /&gt;
* Adv Guild Vouchers, 20 uses&lt;br /&gt;
* Quest Orb, 1 use&lt;br /&gt;
* Special Attendee-only Scripted Item! (account attuned)&lt;br /&gt;
* Title: Kindred Spirit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Special Item: $40 Add-On - 1000 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This an ADDITIONAL special item!  &lt;br /&gt;
* A unique Spirit Beast available only at SimuCon 2025!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Character Portrait: $250 Add-On - 8 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A rendering of your character, copy to be provided to you and included in your character&#039;s LOOK in game.&lt;br /&gt;
&lt;br /&gt;
Provide your character&#039;s full LOOK description.  Include as much detail as possible to convey to the artist a clear vision of your character. &lt;br /&gt;
* You may note one or two items that you want specifically depicted.  If you prefer a certain pose, specify it.&lt;br /&gt;
You will be provided with a composite sketch and allowed one round of revision before the final product is completed.&lt;br /&gt;
&lt;br /&gt;
Images will be delivered in the following formats -&lt;br /&gt;
* Low res:830x1080 (to fit within the Wiki upload file size limit, if you want to display your image there)&lt;br /&gt;
* High res:2400x3000 pixels. (print size of 8x10)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Custom Room: $250 Add-On - 3 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Purchaser will work with a GM to create a unique room that will be deployed to all instances of the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Custom Siegery Set: $200 Add-On - 10 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This package contains:&lt;br /&gt;
* 1 repair / carrying case&lt;br /&gt;
* 1 (choice of) castle or fortress&lt;br /&gt;
* 2 siege weapons&lt;br /&gt;
* 2 soldiers&lt;br /&gt;
* You can design the appearance of each piece, and we will write custom messaging to match!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;D&amp;amp;D One-Shot Game: $5 Add-On - 15 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Participate in one of the Elanthia-themed One-Shot campaigns. You will receive a pouch of dice to play the game with!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lunch with Simutronics: $150 Add-On - 3 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Participate in the small group lunch on Friday at noon with DR PM Lyneya, GS PM Wyrom (tentative, and Simutronics CEO Skippy, Chris in Billing, and Mike the New Tech Guy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Simu Swag: $50 Add-On - 25 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SimuCon branded bag containing:&lt;br /&gt;
* 2024 Ceramic Mug&lt;br /&gt;
* 2024 SimuCon T-shirt&lt;br /&gt;
* ... and other stuff!&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[https://discord.gg/ypGH9P4AsB Official Simutronics Discord Server]&lt;br /&gt;
*[https://elanthipedia.play.net/SimuCon DragonRealms Simucon Page] (DR&#039;s Wiki Page)&lt;br /&gt;
&lt;br /&gt;
[[Category:SimuCon]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=SimuCon_2026&amp;diff=261423</id>
		<title>SimuCon 2026</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=SimuCon_2026&amp;diff=261423"/>
		<updated>2026-07-22T15:34:21Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Attendee Ticket Options */ fix year for attendee spirit beast&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SimuCon&#039;&#039;&#039; is a yearly gathering in St. Louis near [[Simutronics]] headquarters usually taking place near the end of the summer. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;OFFICIAL&amp;lt;/u&amp;gt;&#039;&#039;&#039; dates for 2026 are Thursday, July 9 through Sunday, July 12, 2026 at the Sheraton Westport Plaza Hotel.  Room reservation link Room reservation link [https://www.marriott.com/event-reservations/reservation-link.mi?id=1770159231629&amp;amp;key=GRP&amp;amp;app=resvlink here]&lt;br /&gt;
&lt;br /&gt;
==2026 Schedule==&lt;br /&gt;
===Main Schedule===&lt;br /&gt;
All times CST (CENTRAL TIME)&lt;br /&gt;
&lt;br /&gt;
Event Color Coding:&amp;lt;br&amp;gt;&lt;br /&gt;
This event is in the main conference room.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;This event is in Breakout 1.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#BF40BF&amp;quot;&amp;gt;This event is in Breakout 2.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! colspan=&amp;quot;10&amp;quot; |Activity:  See printed schedule for correct location.&lt;br /&gt;
|-&lt;br /&gt;
!Day&lt;br /&gt;
!Time&lt;br /&gt;
! colspan=&amp;quot;8&amp;quot; |Activity &lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;font-weight:bold; vertical-align:top;&amp;quot; |Wednesday&amp;lt;br /&amp;gt;July 8th&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |3:00 PM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #F2DDDC;&amp;quot; |Lend a hand with setup and hang out (Check-in starts on Thursday)&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;16&amp;quot; style=&amp;quot;text-align: center;font-weight:bold; vertical-align:top;&amp;quot; |Thursday&amp;lt;br /&amp;gt;July 9th&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |All Day&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Check-in and Socialize&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 AM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; | Coffee, Tea, and Water&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |12:00 PM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Lunch break (on your own)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |2:00 PM&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; | Live Alterations&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |3:00 PM&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |4:00 PM&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot;  |D&amp;amp;D Session 0	**&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |5:00 PM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Dinner break (on your own)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |6:00 PM&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Dinner break (on your own)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: #BF40BF;&amp;quot; |D&amp;amp;D One-Shot **&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |7:00 PM&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |7:30 PM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: #BF40BF;&amp;quot; | Presentation:  Saga&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |8:00 PM &lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; | SINGO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 PM&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: #BF40BF;&amp;quot; |D&amp;amp;D One-Shot **&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |10:00 PM&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |11:00 PM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; | Socializing&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |1:00 AM &lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #F2DDDC;&amp;quot; | Quiet Hours - Volume down, liquor bottles away&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;20&amp;quot; style=&amp;quot;text-align: center;font-weight:bold; vertical-align:top;&amp;quot; |Friday&amp;lt;br /&amp;gt;July 10th&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |All Day&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Check-in and Socialize&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 AM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; | Coffee, Tea, and Water&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: center&amp;quot; |&#039;&#039;&#039;Instance&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; |Gemstone &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; |Dragon Realms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |10:00 AM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; | Dev&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; | Auchand, Nyxus, and Friends&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; | Live Dev	&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; |Paklin / Zadraes (remote)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |11:00 AM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; | Mounts!&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; | Aergo, Auchand, and Thandiwe&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; | World Building	&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; |Lyneya / Ulerith (remote)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |12:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Lunch break (on your own)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: #BF40BF;&amp;quot; |Blood on the Clocktower&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6;&amp;quot; |Lunch with Staff (perk)&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center&amp;quot; |1:00 PM&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: center&amp;quot; |&#039;&#039;&#039;Instance&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; |Gemstone &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; |Dragon Realms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |2:00 PM &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF;&amp;quot; | Panel Break&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; | Lyneya&#039;s Project&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |3:00 PM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; | Quests Feedback Workshop	&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; | Nyxus, Kaonashi, Marstreforn&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; | Wiki Work with Miskton	&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; | Player-run: Miskton&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |4:00 PM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; | HALP!!1one!!	&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; | Valyrka, Haxus, and Kaonashi&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; |Panel Breaks&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |5:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF;&amp;quot; | Panel Break&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |D&amp;amp;D One-Shot **&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |D&amp;amp;D One-Shot **&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |6:00 PM&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; | GS Raffles&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; | DR Raffles&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |7:00 PM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Dinner break (on your own)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |8:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Dinner break (on your own)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |D&amp;amp;D One-Shot **&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |D&amp;amp;D One-Shot **&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 PM &lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;`&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6;&amp;quot; | Play Stupid Games, Win Stupid Prizes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |10:00 PM &lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6;&amp;quot; | Play Stupid Games, Win Stupid Prizes&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |11:00 PM&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |1:00 AM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #F2DDDC;&amp;quot; |Quiet Hours - Volume down, liquor bottles away&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;20&amp;quot; style=&amp;quot;text-align: center;font-weight:bold; vertical-align:top;&amp;quot; |Saturday&amp;lt;br /&amp;gt;July 11th&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |All Day&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Check-in and Socialize&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 AM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; | Coffee, Tea, and Water&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: center&amp;quot; |&#039;&#039;&#039;Instance&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; |Gemstone &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; |Dragon Realms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |10:00 AM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; | Inquisitor	&lt;br /&gt;
&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; |Kaonashi and Thandiwe&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; | History Without Homework:  Event Callbacks	&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; |Irenos&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |11:00 AM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; |World	&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; |Thandiwe, Marstreforn, Xynwen, Kaonashi&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; | Getting Started with PvP	&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; | Sheearyn / Navesi / Kethrai / Crobin&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |12:00 PM&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Lunch break (on your own)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |Blood on the Clocktower&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFED6; color: red;&amp;quot; |Sip and Paint&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |1:00 PM&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align: center&amp;quot; |&#039;&#039;&#039;Instance&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; |Gemstone &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; |Dragon Realms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |2:00 PM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; | The Dark Crystal&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: #BF40BF;&amp;quot; |  Auchand and Nyxus&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; | Panel Break&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |3:00 PM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; | Informal Q&amp;amp;A&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6FFE7; color: blue;&amp;quot; |	All GMs&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |4:00 PM &lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #D6F3FF; color: blue;&amp;quot; | Workshop: Lynena&#039;s Project&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |5:00 PM &lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Dinner break (on your own)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |6:00 PM&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |7:00 PM &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |8:00 PM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; |Costume Contest&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 PM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center;background-color: #FFE6CC;&amp;quot; | Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |10:00 PM&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |11:00 PM&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |1:00 AM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #F2DDDC;&amp;quot; | Quiet Hours - Volume down, liquor bottles away&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;font-weight:bold; vertical-align:top;&amp;quot; |Sunday&amp;lt;br&amp;gt;July 12th&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |All Day&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #FFFFFF;&amp;quot; |Check-in and Socialize&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |9:00 PM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #F2DDDC;&amp;quot; |Socialize/Clean up!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |2:00 PM&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align: center;background-color: #F2DDDC;&amp;quot; |Rooms Close - Con Ends!&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For the Live Alteration Sessions:&amp;lt;br&amp;gt;&lt;br /&gt;
- First come, first served!  If you would rather socialize, then feel free to let GM Thandiwe know, and she will send you an alteration token that you can REDEEM in-game.  It will have an expiration on it, though, so be aware of that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;This event requires a laptop or use of one of the workstations provided in the main conference room to access the game.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;D&amp;amp;D One Shots: You must pre-register for a session in the Box Office. It is strongly recommended to attend Session 0.&lt;br /&gt;
&lt;br /&gt;
===Twitch Streaming Schedule===&lt;br /&gt;
The following Gemstone IV panels will be streamed. All times CST (CENTRAL TIME)&lt;br /&gt;
&lt;br /&gt;
==== Friday Panels ====&lt;br /&gt;
10:00 AM - [https://docs.google.com/presentation/d/e/2PACX-1vQh19cV5YkFIN9CC7LqhCEN0BpRcE5KCT6u_SY7-PbRBkMA7vpPnLYW5yUmX2EJ36n6Usuyk2gCvUCr/pub?start=true&amp;amp;loop=true&amp;amp;delayms=10000 The Dev Panel] (slide) - [https://www.youtube.com/watch?v=TcMjfQkLZFU Dev Panel] (YouTube)&lt;br /&gt;
&lt;br /&gt;
11:00 AM - [https://docs.google.com/presentation/d/e/2PACX-1vT-pjLaZ0ZiEcp4ALoYInYh-n5xg74_dmNAS0vFliYtPSm7U52TaIT379RBrQi3dc0pUIroyRakctr0/pub?start=true&amp;amp;loop=true&amp;amp;delayms=10000 Mounts]  (slide) - [https://www.youtube.com/watch?v=RgJgoXF7-sw Mounts] (YouTube)&lt;br /&gt;
&lt;br /&gt;
4:00 PM - [https://docs.google.com/presentation/d/e/2PACX-1vRosu1wtQRbv_E6QXjTueUzJdUiAvbHMOjD-GMm8ZSHwC-3w9ugvnPmsVdbx0Cjp70Dcp6WdlEojc4J/pub?start=true&amp;amp;loop=true&amp;amp;delayms=10000 HALP!!1one!!]  (slide) - [https://www.youtube.com/watch?v=eBd15ZqCaX8 HALP!!1one!!] (YouTube)&lt;br /&gt;
&lt;br /&gt;
==== Saturday Panels ====&lt;br /&gt;
&lt;br /&gt;
2:00 PM - [https://www.youtube.com/watch?v=cNVK6QSHp84 Saga] (YouTube)&lt;br /&gt;
&lt;br /&gt;
Streaming link: [https://www.twitch.tv/simuradio SimuRadio]&lt;br /&gt;
&lt;br /&gt;
=== Discord Streaming Schedule ===&lt;br /&gt;
&lt;br /&gt;
==== Saturday Panels ====&lt;br /&gt;
&lt;br /&gt;
10:00 AM - [https://docs.google.com/presentation/d/e/2PACX-1vQFNTMDS4XLi0XdC8IYhS8moYp6MWFlR3w4mTMlDGzJD6oajE6jqqm9PmKNeVEqIJhIQLAcoiBeTbXt/pub?start=true&amp;amp;loop=true&amp;amp;delayms=10000 Inquisitors]&lt;br /&gt;
&lt;br /&gt;
11:00 AM - [https://docs.google.com/presentation/d/e/2PACX-1vSLle1zoesyIrzd0Getrs3hzkLuAHvHzMWKO0eI29I0YKgNnEVimzYQD7pgy1HA1cBW_d30UKJxHiwR/pub?start=true&amp;amp;loop=true&amp;amp;delayms=10000 World]&lt;br /&gt;
&lt;br /&gt;
=== Unstreamed Panels ===&lt;br /&gt;
&lt;br /&gt;
==Attendee List==&lt;br /&gt;
===Prime Players===&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:4;-moz-column-count:4;-webkit-column-count:4&amp;quot;&amp;gt;&lt;br /&gt;
* Altheren&lt;br /&gt;
* Amerek&lt;br /&gt;
* Blanks&lt;br /&gt;
* Callayne&lt;br /&gt;
* Citan&lt;br /&gt;
* Delindra&lt;br /&gt;
* Deza&lt;br /&gt;
* Drekoi&lt;br /&gt;
* Elgrim&lt;br /&gt;
* Erienne&lt;br /&gt;
* Eruheran&lt;br /&gt;
* Faerous&lt;br /&gt;
* Falvicar&lt;br /&gt;
* Fizzleworth&lt;br /&gt;
* Fyg&lt;br /&gt;
* HebrewToYou&lt;br /&gt;
* Hexbane&lt;br /&gt;
* Julenne&lt;br /&gt;
* Katiesa&lt;br /&gt;
* Kragdruk&lt;br /&gt;
* Leifa&lt;br /&gt;
* Liras&lt;br /&gt;
* Maags&lt;br /&gt;
* Maylan&lt;br /&gt;
* Naamit&lt;br /&gt;
* Oogey&lt;br /&gt;
* Opalina&lt;br /&gt;
* Peche&lt;br /&gt;
* Puptilian&lt;br /&gt;
* Raelee&lt;br /&gt;
* Regwen&lt;br /&gt;
* Roblar&lt;br /&gt;
* Saesyra&lt;br /&gt;
* Taulramil&lt;br /&gt;
* Tranquia&lt;br /&gt;
* Zangow&lt;br /&gt;
* Zyandi&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Shattered Players===&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:4;-moz-column-count:4;-webkit-column-count:4&amp;quot;&amp;gt;&lt;br /&gt;
* Penny&lt;br /&gt;
* Sue&lt;br /&gt;
* Tysong&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Game Staff===&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:4;-moz-column-count:4;-webkit-column-count:4&amp;quot;&amp;gt;&lt;br /&gt;
* GM Auchand&lt;br /&gt;
* GM Aergo&lt;br /&gt;
* GM Flannihan&lt;br /&gt;
* GM Ivry&lt;br /&gt;
* GM Kaonashi&lt;br /&gt;
* GM Lydil&lt;br /&gt;
* GM Marstreforn&lt;br /&gt;
* GM Mestys&lt;br /&gt;
* GM Nyxus&lt;br /&gt;
* GM Tago&lt;br /&gt;
* GM Thandiwe&lt;br /&gt;
* GM Valyrka&lt;br /&gt;
* GM Xynwen&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions==&lt;br /&gt;
===How much does SimuCon cost?===&lt;br /&gt;
Attendance badges have previously cost $100 when purchased in advance. Tickets are available at the door, but will be more expensive. Please see the [[#Ticketing|Ticketing]] section for more details.&lt;br /&gt;
&lt;br /&gt;
=== Where do I sign up?===&lt;br /&gt;
&lt;br /&gt;
Ticketing will likely be handled via the play.net Box Office when available. Please see the [[#Ticketing|Ticketing]] section for more details.&lt;br /&gt;
&lt;br /&gt;
===Who organizes SimuCon?===&lt;br /&gt;
&lt;br /&gt;
Typically GameMasters from Gemstone IV and DragonRealms are the official organizers. However, many players pitch in to plan unofficial events or to offer support. All work is strictly volunteer, so please be sure to thank your organizer team!&lt;br /&gt;
&lt;br /&gt;
===What is it like to attend a SimuCon?===&lt;br /&gt;
&lt;br /&gt;
SimuCon is a gathering of players and GameMasters for Simutronics games, including Gemstone IV and DragonRealms. The convention includes several events, as listed in the [[#2025 Schedule|2025 Schedule]], that are planned by both players and staff. In-between events, attendees typically gather at conference tables similar to a large LAN party to play. Board games and other activities are frequently available as well.&lt;br /&gt;
&lt;br /&gt;
===How many people attend SimuCon and when do they show up?===&lt;br /&gt;
&lt;br /&gt;
SimuCon has experienced a growth spurt over the past three years or so. A current rough estimate would be 100 attendees (GS and DR combined) over the course of the weekend. The main convention days are Thursday through Sunday, although several people arrive on Wednesday and stay through Monday. The convention room is typically setup by Wednesday evening.&lt;br /&gt;
&lt;br /&gt;
===What equipment should I bring? ===&lt;br /&gt;
&lt;br /&gt;
Bring your laptop/computer so that you can play Gemstone during the convention. Internet access and power strips are typically provided. &#039;&#039;&#039;Note:&#039;&#039;&#039; It is not recommended that you leave your equipment unattended in the conference room.&lt;br /&gt;
&lt;br /&gt;
===Will I need a car?===&lt;br /&gt;
&lt;br /&gt;
Many attendees never leave the hotel. However if you are planning to explore St. Louis, a car is recommended as public transportation options are slim. Lyft and Uber are both operational in St. Louis and are ideal for single trips. For any excursions listed in the schedule, carpool options may be available. A shuttle may be available to and from your hotel for airport travel, but don&#039;t forget to bring cash for a tip!&lt;br /&gt;
&lt;br /&gt;
===Is SimuCon family friendly?===&lt;br /&gt;
&lt;br /&gt;
In general, yes. Some attendees do bring children but activities in the convention room may be of limited interest to them. Note the [[#Attractions|Attractions]] section listed below for additional kid-friendly activities available in St. Louis. Please expect to encounter explicit language and consumption of alcoholic beverages, which will increase in the late night hours.&lt;br /&gt;
&lt;br /&gt;
===What is the weather typically like?===&lt;br /&gt;
&lt;br /&gt;
Missouri is nicknamed &amp;quot;Misery&amp;quot; for its hot and humid summers. For a current local forecast, click here: https://www.ksdk.com/weather&lt;br /&gt;
&lt;br /&gt;
===Do I need to bring food or beverages?===&lt;br /&gt;
&lt;br /&gt;
Depending on funds available, basic snacks will be provided. You are generally on your own for meals and can purchase food at the grocery or restaurant options listed in the [[#Dining.2FEating|Dining/Eating]] section. SimuCon is strictly BYOB. Alcohol can be purchased in most grocery stores and gas stations in Missouri.&lt;br /&gt;
&lt;br /&gt;
===What should I wear?===&lt;br /&gt;
&lt;br /&gt;
SimuCon is casual attire unless the schedule for a specific event indicates otherwise. Some events may encourage costumes or themed attire.&lt;br /&gt;
&lt;br /&gt;
=== Is there a pool?===&lt;br /&gt;
&lt;br /&gt;
YES, pack your bathing suit! The Sheraton Westport Plaza has an indoor pool, and their sister property the Sheraton Westport Chalet has an outdoor pool. The Chalet&#039;s outdoor pool is very close and is a popular day time destination for attendees. All facilities at both hotels are available to any guest staying at either hotel. There is even a poolside bar with snacks and beverages (open Friday through Sunday), and towel service is available. It is recommended that you pack sunscreen ahead of time, because the hotel and nearby shops do not stock any. It is also recommended that you bring pool noodles, because pool noodles are wicked cool.&lt;br /&gt;
==Visitor Information==&lt;br /&gt;
The convention is typically held in the St. Louis area, home of Simutronic&#039;s headquarters. While the host hotel may very, it is usually held at one of the many convention spaces at or near the Westport Plaza. For specific details on the official hotel, please see the below accommodations list. Also below are some nearby shops and other information for visitors. All distances calculated from the host hotel.&lt;br /&gt;
&lt;br /&gt;
===Accommodations===&lt;br /&gt;
https://www.marriott.com/event-reservations/reservation-link.mi?id=1770159231629&amp;amp;key=GRP&amp;amp;app=resvlink&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 1em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;  &amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;lightblue&amp;quot;&lt;br /&gt;
!Name||Distance||Address|| Link&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Sheraton Westport Plaza (Official Hotel)&#039;&#039;&#039;||onsite||900 Westport Plaza, St. Louis, MO 63146||[https://www.marriott.com/event-reservations/reservation-link.mi?id=1770159231629&amp;amp;key=GRP&amp;amp;app=resvlink Booking Link]&lt;br /&gt;
|-&lt;br /&gt;
|Sheraton Westport Chalet||onsite||191 Westport Plaza, St. Louis, MO 63146||[https://www.marriott.com/en-us/hotels/stlsi-sheraton-westport-chalet-hotel-st-louis/ Booking Link]&lt;br /&gt;
|-&lt;br /&gt;
|Staybridge Suites||0.3 miles||25 Progress Pkwy, St. Louis, MO 63146||[https://www.ihg.com/staybridge/hotels/us/en/st-louis/stlsb/hoteldetail Booking Link]&lt;br /&gt;
|-&lt;br /&gt;
|Comfort Inn Suites||0.7 miles||12031 Lackland Rd., Saint Louis, MO, 63146||[https://www.choicehotels.com/missouri/saint-louis/comfort-inn-hotels/mo608/rates?checkInDate=2022-08-03&amp;amp;checkOutDate=2022-08-79 Booking Link]&lt;br /&gt;
|-&lt;br /&gt;
|Residence Inn St. Louis Westport||0.6 miles|| 11918 Westline Industrial Drive, St. Louis, MO 63146|| [https://www.marriott.com/hotels/travel/stlwr-residence-inn-st-louis-westport/ Booking Link]&lt;br /&gt;
|-&lt;br /&gt;
|Farfield Inn and Suites St. Louis Westport||0.6 miles||11918 Westline Industrial Drive, St. Louis, MO 63146||[https://www.marriott.com/hotels/travel/stlfw-fairfield-inn-and-suites-st-louis-westport/ Booking Link]&lt;br /&gt;
|-&lt;br /&gt;
|Courtyard by Marriott St. Louis Westport||0.7 miles||11888 Westline Industrial Drive, St. Louis, MO 63146||[https://www.marriott.com/hotels/travel/stlwp-courtyard-st-louis-westport-plaza/ Booking Link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Dining/Eating===&lt;br /&gt;
{| {{prettytable}} cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 1em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;  &amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;lightblue&amp;quot;&lt;br /&gt;
!Name||Type||Distance||Address||Link&lt;br /&gt;
|-&lt;br /&gt;
|Drunken Fish||Sushi||onsite||639 West Port Plaza, St. Louis, MO 63146 ||https://www.drunkenfish.com/&lt;br /&gt;
|-&lt;br /&gt;
|Kobe Japanese Grill||Japanese/Hibachi||onsite||645 West Port Plaza, St. Louis, MO 63146||https://www.kobeofwestport.com/menus/&lt;br /&gt;
|-&lt;br /&gt;
|Starbucks||Coffee|| onsite||111 West Port Plaza, St. Louis, MO 63146 ||https://www.westportstl.com/tenant/starbucks/&lt;br /&gt;
|-&lt;br /&gt;
|Trainwreck Saloon||American/Grill||onsite|| 314 West Port Plaza, St. Louis, MO 63146||https://www.trainwrecksaloon.com/westport-home&lt;br /&gt;
|-&lt;br /&gt;
|Westport Social||Bar/Games/Karaoke||onsite||910 West Port Plaza Dr, St. Louis, MO 63146||https://westportsocial-stl.com/menu/&lt;br /&gt;
|-&lt;br /&gt;
|360 Westport||Rooftop Bar &amp;amp; Lounge||onsite||111 West Port Plaza, Suite 1200, St. Louis, MO 63146||https://www.360-stl.com/westport/&lt;br /&gt;
|-&lt;br /&gt;
|Soda Fountain Express||Modern Diner||onsite||147 West Port Plaza Dr, St. Louis, MO 63146||https://sodafountainexpress-stl.com/&lt;br /&gt;
|-&lt;br /&gt;
|Basso on the Plaza||Italian||onsite||545 West Port Plaza Dr, St. Louis, MO 63146||https://www.basso-stl.com/westport/&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Off-Site Dining===&lt;br /&gt;
For attendees who want to explore St. Louis cuisine, local players recommend the following restaurants.&lt;br /&gt;
 &lt;br /&gt;
{| {{prettytable}} cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 1em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;  &amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;lightblue&amp;quot;&lt;br /&gt;
!Name|| Type||Distance||Address||Link&lt;br /&gt;
|-&lt;br /&gt;
|St. Louis Bread Company||Cafe &amp;amp; Bakery||0.3 mi||15 Progress Pkwy, Maryland Heights, MO 63043 ||https://www.panerabread.com/en-us/cafe/locations/mo/maryland-heights/15-progress-parkway&lt;br /&gt;
|-&lt;br /&gt;
|O&#039;Fallon Brewery||Beer/American Food||0.3 mi ||45 Progress Pkwy, Maryland Heights, MO 63043 ||http://www.ofallonbrewery.com/&lt;br /&gt;
|-&lt;br /&gt;
|Giola&#039;s Deli||Sandwiches||0.8 mi||11855 Adie Rd, Maryland Heights, MO 63043||https://www.gioiasdeli.com/&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DD Mau||Vietnamese / Bao||1.3 mi||11982 Dorsett Rd, Maryland Heights, MO 63043||http://www.ddmaustl.com/ &lt;br /&gt;
|-&lt;br /&gt;
|Gobble STOP Smokehouse|| BBQ Poultry||2.8 mi||1227 Castillon Arcade Plaza, Creve Coeur, MO 63141||http://gobblestopsmokehouse.net/&lt;br /&gt;
|-&lt;br /&gt;
| Nudo House STL||Ramen / Japanese||3.0 mi||11423 Olive Blvd, St. Louis, MO 63141||http://nudohousestl.com/ &lt;br /&gt;
|-&lt;br /&gt;
|Dave &amp;amp; Tony&#039;s||Premium Burgers||3.2 mi||12766 Olive Blvd, St. Louis, MO 63146||http://www.daveandtonys.com/&lt;br /&gt;
|-&lt;br /&gt;
|Taqueria Durango|| Mexican||3.5 mi|| 10238 Page Ave, Overland, MO||https://www.facebook.com/TaqueriaDurangoSaintLouis&lt;br /&gt;
|-&lt;br /&gt;
| Nick &amp;amp; Elena&#039;s Pizzeria||Pizza/Italian||5.4 mi||3007 Woodson Rd, Overland, MO 63114||https://www.facebook.com/NICKnELENAS/&lt;br /&gt;
|-&lt;br /&gt;
|Sugarfire Smokehouse||BBQ||6.0 mi||9200 Olive Blvd, St. Louis, MO 63132||https://sugarfiresmokehouse.com/locations/mo-olivette/&lt;br /&gt;
|-&lt;br /&gt;
|Salt + Smoke|| BBQ||9.0 mi||501 S Main St, St. Charles, MO 63301 || https://saltandsmokestl.com/&lt;br /&gt;
|-&lt;br /&gt;
|BEAST||BBQ||17.1 mi||4156 Manchester Ave, St. Louis, MO 63110||https://beastbbqstl.com/ &lt;br /&gt;
|-&lt;br /&gt;
|Pappy&#039;s Smokehouse||BBQ||18.7 mi||3106 Olive St, St. Louis, MO 63103||https://www.pappyssmokehouse.com/&lt;br /&gt;
|-&lt;br /&gt;
|Bogart&#039;s||BBQ||20.8 mi||71627 S 9th St, St. Louis, MO 63104||https://www.bogartssmokehouse.com/&lt;br /&gt;
|-&lt;br /&gt;
|Broadway Oyster Bar||Cajun||23.7 mi||736 S Broadway, St. Louis, MO 63102||http://www.broadwayoysterbar.com/&lt;br /&gt;
|-&lt;br /&gt;
| Ted Drewes||Famous local frozen custard||21.6 mi||6726 Chippewa, St. Louis, MO 63109|| http://teddrewes.com/&lt;br /&gt;
|-&lt;br /&gt;
|Bombay Food Junkies||Vegan Options||5.2 mi||3580 Adie Rd, St Ann, MO 63074||https://www.bombayfoodjunkies.com/&lt;br /&gt;
|-&lt;br /&gt;
|Hi-Point Drive-In||Burgers||12 mi||1033 McCausland Ave, St. Louis, MO 63117||https://hipointedrivein.com/about/&lt;br /&gt;
|-&lt;br /&gt;
|Bar Louie||Bar &amp;amp; Grill||8.4 mi||1650 Beale Street Suite 180, St. Charles, MO 63303||https://www.barlouie.com/ &lt;br /&gt;
|-&lt;br /&gt;
|Sauce on the Side||Calzones||9.2 mi||7810 Forsyth Blvd., Clayton, MO 63105||https://sauceontheside.com/&lt;br /&gt;
|-&lt;br /&gt;
|Blueberry Hill||Landmark restaurant / Americana||9.4 mi||6504 Delmar Blvd, University City, MO 63130||https://blueberryhill.com/&lt;br /&gt;
|-&lt;br /&gt;
|Fitz&#039;s||Local root beer &amp;amp; burgers||9.3 mi||6605 Delmar Blvd, St. Louis, MO 63130||https://fitzsrootbeer.com/&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Shopping/Groceries===&lt;br /&gt;
{| {{prettytable}} cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 1em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;  &amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;lightblue&amp;quot;&lt;br /&gt;
!Name||Distance||Address||Link&lt;br /&gt;
|-&lt;br /&gt;
|Target||5.9 mi||12275 St Charles Rock Rd, Bridgeton, MO 63044||[https://www.target.com/sl/bridgeton/12 website]&lt;br /&gt;
|-&lt;br /&gt;
|Costco||13.3 mi||200 Costco Way, St Peters, MO 63376||[https://www.costco.com/warehouse-locations/st-peters-saint-peters-mo-382.html website]&lt;br /&gt;
|-&lt;br /&gt;
|Schnucks Dorsett (Grocery Store) ||1.5 mi||2030 Dorsett Rd, Maryland Heights, MO 63043||[https://locations.schnucks.com/mo-maryland-heights-117 website]&lt;br /&gt;
|-&lt;br /&gt;
|Walgreens ||1.6 mi||12509 Dorsett Rd, Maryland Heights, MO 63043||[https://www.walgreens.com/locator/walgreens-12509+dorsett+rd-maryland+heights-mo-63043/id=9481 website]&lt;br /&gt;
|-&lt;br /&gt;
|BP Gas Station||0.3 mi||11988 Westline Industrial Dr, St. Louis, MO 63146||&lt;br /&gt;
|-&lt;br /&gt;
|ALDI||2.6 mi||11745 Olive Blvd, Creve Coeur, MO 63141||[https://www.aldi.us/ website]&lt;br /&gt;
|-&lt;br /&gt;
|Trader Joe&#039;s||[https://goo.gl/maps/3aV8WLBakaB2 2.4 mi]||11505 Olive Blvd, Creve Coeur, MO 63141||[https://locations.traderjoes.com/mo/creve-coeur/694/ website]&lt;br /&gt;
|-&lt;br /&gt;
|D&amp;amp;J Liquor||[https://goo.gl/maps/a6m73h9w4ynWnWqh8 1.5 mi]||1914 McKelvey Rd, Maryland Heights, MO 63043||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attractions===&lt;br /&gt;
&lt;br /&gt;
Most attractions are a 15-30 minute drive from the hotel. For tourism information, click here: https://explorestlouis.com/&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 1em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;  &amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;lightblue&amp;quot;&lt;br /&gt;
!Name||Description||Address||Link&lt;br /&gt;
|-&lt;br /&gt;
|The Gateway Arch||Oh look, it&#039;s the Arch||200 Washington Ave, St. Louis, MO 63102|| https://www.gatewayarch.com/&lt;br /&gt;
|-&lt;br /&gt;
|Busch Stadium ||Cardinals Baseball Stadium||700 Clark Ave, St. Louis, MO 63102||https://www.mlb.com/cardinals/ballpark&lt;br /&gt;
|-&lt;br /&gt;
|Forest Park||Large public park, home to several free attractions ||5595 Grand Dr, St. Louis, MO 63112||https://forestparkmap.org/&lt;br /&gt;
|-&lt;br /&gt;
|St. Louis Zoo||Free zoo, located inside Forest Park||Government Dr, St. Louis, MO 63110 ||https://www.stlzoo.org/&lt;br /&gt;
|-&lt;br /&gt;
|St. Louis Aquarium at Union Station||Opened Dec. 2019, the otters and spitting fish are worth the admission, skip the wheel||201 S 18th St, St. Louis, MO 63103||https://www.stlouisaquarium.com/&lt;br /&gt;
|-&lt;br /&gt;
|St. Louis Art Museum||Free art museum, located inside Forest Park||1 Fine Arts Dr, St. Louis, MO 63110||https://www.slam.org/ &lt;br /&gt;
|-&lt;br /&gt;
|Creve Coeur Lake Park||[https://goo.gl/maps/7s9nUCbcyBM2 3.4 mi] from the hotel. Trails, kayak rentals, Go Ape||13725 Marine Ave, St. Louis, MO 63146||[https://www.stlouisco.com/Parks-and-Recreation/Park-Pages/Creve-Coeur website]&lt;br /&gt;
|-&lt;br /&gt;
|The Muny||Outdoor theater, located inside Forest Park||1 Theatre Dr, St. Louis, MO 63112||https://muny.org/&lt;br /&gt;
|-&lt;br /&gt;
|Missouri Botanical Gardens||Outdoor garden ||4344 Shaw Blvd, St. Louis, MO 63110 ||http://www.missouribotanicalgarden.org/&lt;br /&gt;
|-&lt;br /&gt;
|Anheuser-Busch St. Louis Brewery||Main brewery, offers tours||1200 Lynch St, St. Louis, MO 63118||https://www.budweisertours.com/locations/st-louis-missouri.html&lt;br /&gt;
|-&lt;br /&gt;
|City Museum||Architectural Anomaly/Interactive Art/Climbing Museum||750 N 16th St, St. Louis, MO 63103|| https://www.citymuseum.org/&lt;br /&gt;
|-&lt;br /&gt;
|Grants Farm||Free wildlife park with tram tours and free beer||10501 Gravois Rd, St. Louis, MO 63123||https://www.grantsfarm.com/home.html&lt;br /&gt;
|-&lt;br /&gt;
|The Butterfly House||Indoor butterfly pavilion ||15193 Olive Blvd, Chesterfield, MO 63017|| http://www.missouribotanicalgarden.org/visit/family-of-attractions/butterfly-house.aspx&lt;br /&gt;
|-&lt;br /&gt;
|Science Center||Kid-friendly interactive museum, includes IMAX and planetarium||5050 Oakland Ave, St. Louis, MO 63110||https://www.slsc.org/&lt;br /&gt;
|-&lt;br /&gt;
| Magic House ||Kid-friendly interactive museum, includes magic||516 S Kirkwood Rd, St. Louis, MO 63122||https://www.magichouse.org/&lt;br /&gt;
|-&lt;br /&gt;
|Fox Theatre||Historic theater, offers tours||527 NORTH GRAND BLVD., St. Louis, MO 63103||https://www.fabulousfox.com/visit/tours&lt;br /&gt;
|-&lt;br /&gt;
|St. Louis Neighborhoods||Shopping/Nightlife/Exploring|| Various||https://explorestlouis.com/things-to-do/neighborhoods/&lt;br /&gt;
|-&lt;br /&gt;
|Live Music Venues||St. Louis is known for its blues and jazz scene||Various ||https://explorestlouis.com/discover/st-louis-music-lovers/st-louis-live-music-venues/&lt;br /&gt;
|-&lt;br /&gt;
|Casinos||Gambling||Various||https://www.tripadvisor.com/Attractions-g44881-Activities-c53-Saint_Louis_Missouri.html&lt;br /&gt;
|-&lt;br /&gt;
|Cahokia Mounds||Ruins of the largest prehistoric civilization north of Mexico, 30 min drive from hotel||30 Ramey Street Collinsville, IL 62234|| https://cahokiamounds.org/&lt;br /&gt;
|-&lt;br /&gt;
|A Gathering Place||Massages within walking distance of convention center||11960 Westline Industrial Dr, St. Louis, MO 63146 ||https://www.agatheringplace.com/&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Ticketing==&lt;br /&gt;
Ticketing is handled through the play.net [https://www.play.net/simucon/register/home.asp Simucon Box Office] page. To attend, a badge is required and all attendees must display their badge at all times while in the official event rooms. Badges likely can be purchased at the door, but will be more expensive. &lt;br /&gt;
&lt;br /&gt;
===Non-Attendee Options===&lt;br /&gt;
&#039;&#039;&#039;Non-Attendee Goodie Bag: $40 - 999 Available&#039;&#039;&#039;  &lt;br /&gt;
* goodies unknown at this time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Special Item: $40 - 999 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This an ADDITIONAL special item!  &lt;br /&gt;
*A unique Spirit Beast available only at SimuCon 2026!&lt;br /&gt;
&lt;br /&gt;
===Attendee Ticket Options===&lt;br /&gt;
&#039;&#039;&#039;Badge: $100 Base Price - 999 Available&#039;&#039;&#039;&lt;br /&gt;
All attendees must display their badge at all times while in the official event rooms. Includes:&lt;br /&gt;
&lt;br /&gt;
Attendee Goodie Bag  &lt;br /&gt;
* goodies unknown at this time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Special Item: $40 Add-On - 999 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This an ADDITIONAL special item!  &lt;br /&gt;
* A unique Spirit Beast available only at SimuCon 2026!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Character Portrait: $250 Add-On - 5 Available&#039;&#039;&#039;&lt;br /&gt;
A rendering of your character, copy to be provided to you and included in your character&#039;s LOOK in game.&lt;br /&gt;
&lt;br /&gt;
Provide your character&#039;s full LOOK description.  Include as much detail as possible to convey to the artist a clear vision of your character. &lt;br /&gt;
* You may note one or two items that you want specifically depicted.  If you prefer a certain pose, specify it.&lt;br /&gt;
You will be provided with a composite sketch and allowed one round of revision before the final product is completed.&lt;br /&gt;
&lt;br /&gt;
Images will be delivered in the following formats -&lt;br /&gt;
* Low res:830x1080 (to fit within the Wiki upload file size limit, if you want to display your image there)&lt;br /&gt;
* High res:2400x3000 pixels. (print size of 8x10)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Custom Room: $250 Add-On - 3 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Purchaser will work with a GM to create a unique room that will be deployed to all instances of the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sip &amp;amp; Paint: $50 Add-On - 10 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Join artist Rita Craighead as she guides you through an afternoon of painting your very own masterpiece! Each step will be explained and demonstrated, along with some helpful tips and tricks to bring out the best in your work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;D&amp;amp;D One-Shot Game: $15 Add-On - 15 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Participate in one of the Elanthia-themed One-Shot campaigns. You will receive a pouch of dice to play the game with!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lunch with Simutronics: $150 Add-On - 3 Available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Participate in the small group lunch on Friday at noon.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[https://discord.gg/ypGH9P4AsB Official Simutronics Discord Server]&lt;br /&gt;
*[https://elanthipedia.play.net/SimuCon DragonRealms Simucon Page] (DR&#039;s Wiki Page)&lt;br /&gt;
&lt;br /&gt;
[[Category:SimuCon]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=261302</id>
		<title>Lich:Software/Installation</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=261302"/>
		<updated>2026-07-21T00:24:54Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Lich Changelog */ update to 5.19.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
=About=&lt;br /&gt;
&lt;br /&gt;
Lich is an add-on scripting engine that works alongside existing front ends.  The most common installation is a combination of Lich on Windows using the Wrayth or Wizard FE. Lich is also used by many on both MacOS and multiple Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=Installing the Latest Stable Release=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The latest stable lich version is 5.19.1 supporting Ruby 4.0 - published July 20, 2026&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==In-Place Upgrade==&lt;br /&gt;
&lt;br /&gt;
If you are on an older version of Lich 5 and want to upgrade to the most current version, you can choose to either upgrade Lich5 only or both Lich 5 and Ruby. If you&#039;re currently on Lich 4, able to check by running the command &amp;lt;CODE&amp;gt;;e echo LICH_VERSION&amp;lt;/CODE&amp;gt;, go to the [[#Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)|upgrade from Lich 4 section]].&lt;br /&gt;
&lt;br /&gt;
For each section, please follow the directions/commands one at a time.&lt;br /&gt;
&lt;br /&gt;
===Lich 5 Only===&lt;br /&gt;
&lt;br /&gt;
====Lich 5.7 or newer====&lt;br /&gt;
# You must be running Ruby 4.0 or greater for Lich 5.19 +.  If unsure, please update both (see below)!&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Run this command in-game &amp;lt;CODE&amp;gt;;lich5-update --update&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
====Lich 5.6 or older====&lt;br /&gt;
Please proceed to updating both Ruby and Lich 5&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 4.0 &amp;amp; Lich 5===&lt;br /&gt;
This method is for Windows only. Linux and MacOS users, please do a Lich 5 only update and update Ruby manually via normal install/update methods for the OS.&lt;br /&gt;
&lt;br /&gt;
# Logout of all characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall existing Ruby4Lich5 installs from Programs &amp;amp; Features control panel, or alternatively, rename your existing Ruby4Lich5 folder to Ruby4Lich5save. (Defaults to C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the installer and be sure to have both Ruby and Lich 5 option selected&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich &amp;amp; Ruby!&lt;br /&gt;
&lt;br /&gt;
===Ruby 4.0 Only===&lt;br /&gt;
Use this to upgrade to the newest version of Ruby only if you&#039;re already on the latest version of Lich5 and now want to update Ruby afterwards. If you&#039;re not already on the latest version of Lich5, please use previous section steps instead.&lt;br /&gt;
# Logout of all instances/characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall your existing Ruby4Lich5 install via Programs &amp;amp; Features (ensure it&#039;s now gone, default location was C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the new installer and choose to only install Ruby Only&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version Ruby!&lt;br /&gt;
&lt;br /&gt;
==Windows New Installation==&lt;br /&gt;
&lt;br /&gt;
{{blue|These instructions are not for DragonRealms. [[#Ecosystem Information|For those scroll to the bottom]].}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows 11 / 10 / 8 / 7&#039;&#039;&#039; users: you can download the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and install everything you need automatically. Click on the &#039;&#039;&#039;Ruby4Lich5.exe&#039;&#039;&#039; and download it to your computer then double click on the executable in your default download folder. Note, a user may need to adjust their browser or security settings to allow download and installation.&lt;br /&gt;
If you have never played before, follow the &#039;New Installation&#039; instructions. If you have played before, and have used Lich before, follow the &#039;Upgrade Installation&#039; instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Installation for Lich 5 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Please log into the game of your choice through the Simutronics website first&#039;&#039;&#039;.  Install the launcher (not SGE), and install your FrontEnd of Choice.  The Wrayth FrontEnd is presently the supported FrontEnd, but Wizard will work as well, if you are nostalgic.  After you&#039;ve logged in, log out and continue.&lt;br /&gt;
# Download and Run the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe  Installer]. You will receive the Microsoft Warning because this is not distributed through the MS Store.  Click on &#039;More Info&#039; and then select the &#039;Run Anyway&#039; button.&lt;br /&gt;
# The installation may take a few minutes, especially on non-SSD harddrives.&lt;br /&gt;
# A Lich5 folder will be placed on your desktop after the install is finished, open that folder and double click the lich.rbw file contained inside to start Lich&#039;s Game Entry window.&lt;br /&gt;
# Use your existing Simutronics Account and Password and click connect.  Then select the character you wish to play, and select the FrontEnd you wish to use.  Then click the Play button.&lt;br /&gt;
# Your game FrontEnd should start, and you should see Lich5 initializing.  You will see it downloading files - these are the map files, wait for the download to finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
This option is deprecated.  Lich 5 architectures are not compatible with Lich 4. Back up your existing Lich 4 folder, uninstall any existing Ruby executables, and then follow the instructions for a new install above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional assistance in installation can be found in the scripting channel of the GemStone [https://discord.gg/KF9Wr8u Discord].&lt;br /&gt;
&lt;br /&gt;
==MacOS==&lt;br /&gt;
There two common options for playing Gemstone IV on a Mac is either to play natively with Avalon or to use virtualization software such as Parallels with Wrayth/WizardFE. Below are the options on how to do that.&lt;br /&gt;
&lt;br /&gt;
===Native Avalon===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. This process works well for Mac OS Catalina and Big Sur. If you have not updated your Mac OS yet, these instructions may work depending on your actual version.  If you run into a snag, follow the contact instructions provided.&lt;br /&gt;
&lt;br /&gt;
===Parallels Windows===&lt;br /&gt;
With the latest releases of Ruby4Lich5 installer, you can now follow the normal Windows installation for both Intel and Apple silicon based Apple computers.&lt;br /&gt;
&lt;br /&gt;
To install Wrayth/WizardFE, Lich, and Ruby via Parallels you will need to do a few various steps as outlined below. Please note, the rubyw file in C:\Ruby4Lich5\X.X.X\bin may be set to run in compatibility mode for windows 7.  On an ARM Mac running parallels, this may causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file could fixe this issue if it was enabled.&lt;br /&gt;
&lt;br /&gt;
The following steps are to be done AFTER you&#039;ve successfully installed Wrayth/WizardFE and can login normally without Lich5 on the machine. Once you&#039;ve done that and can successful connect normally, then follow these steps:&lt;br /&gt;
# Download and install [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and use default options presented during install&lt;br /&gt;
# Double click the lich.rbw file that is now located in the extracted Lich5 location you did above. Login and play as usual.&lt;br /&gt;
&lt;br /&gt;
==Chromebook &amp;amp; Debian variants==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-debian&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-debian&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Debian/Chromebooks. Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1.&#039;&#039;&#039; &lt;br /&gt;
Update the list of available software and make sure some requirements are installed:&lt;br /&gt;
&amp;lt;!-- don&#039;t think I&#039;m gonna include this stuff but might as well not delete it.&lt;br /&gt;
:&amp;lt;small&amp;gt;sudo: as a super-user&amp;lt;/small&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;apt-get: Debian&#039;s software repository&amp;lt;/small&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;-y: answer all questions yes&amp;lt;/small&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get -y update&lt;br /&gt;
sudo apt-get -y install autoconf bison build-essential curl libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libsqlite3-dev git unzip libcairo2-dev libgirepository1.0-dev libgtk-3-dev gobject-introspection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing Ruby installation rather than installing from scratch, skip steps 2, 3, and 4.  Instead, update your ruby-build with the following command, and then proceed to Step 5.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2.&#039;&#039;&#039;&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3.&#039;&#039;&#039;&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4.&#039;&#039;&#039;&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Arch Linux &amp;amp; Arch-based distributions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-arch&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-arch&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
Update the system and install required dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pacman -Syu&lt;br /&gt;
sudo pacman -S --needed base-devel openssl libyaml readline zlib ncurses libffi gdbm sqlite git unzip curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby 3.4.5 and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fedora==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-fedora&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-fedora&amp;quot;&amp;gt;&lt;br /&gt;
Currently supported versions of Fedora&lt;br /&gt;
* 41 uses Ruby 3.3&lt;br /&gt;
* 42 uses Ruby 3.4&lt;br /&gt;
* 43 uses Ruby 3.4&lt;br /&gt;
All of which are currently compatible with Lich 5.7.0 or higher.&lt;br /&gt;
&lt;br /&gt;
1. Update The Base Installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf -y update&lt;br /&gt;
$ sudo dnf -y install vim git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Install required Ruby and Development packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf install -y autoconf bison cairo-devel curl gcc gdbm gdbm-devel gdk-pixbuf2-devel glib2-devel \&lt;br /&gt;
gobject-introspection-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5a. Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5b. Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Popular Scripts=&lt;br /&gt;
{{#section:Lich:Script Repository|popularscripts}}&lt;br /&gt;
&lt;br /&gt;
=Ecosystem Information=&lt;br /&gt;
&lt;br /&gt;
* DragonRealms Variant - [https://elanthipedia.play.net/Lich_script_repository#Setup_and_Installation Setup and Install instructions]&lt;br /&gt;
&lt;br /&gt;
=Lich Changelog=&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-changelog&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-changelog&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* lower game socket keepalive idle from 120s to 30s (#1449)&lt;br /&gt;
* resilient ActiveSessions ownership + shutdown watchdog (#1452)&lt;br /&gt;
* Quit Gtk.main cleanly (#1455)&lt;br /&gt;
* Refactor regex to string comparisons for ARGV options (#1456)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* ingest newly-exposed mindState experience and roommeta room fields (#1450)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.19.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add character generator support via EAccess protocol (#1384)&lt;br /&gt;
* Add modern script command shutdown method (#1385)&lt;br /&gt;
* migrate the server-stream parser from REXML to Ox, with pipe-mode benchmark harness and DR parser coverage (#1396)&lt;br /&gt;
* enumerate script subdirs with file glob (#1397)&lt;br /&gt;
* add --bind-address option to set listen socket address (#1405)&lt;br /&gt;
* add central method to determine lich ver (#1417)&lt;br /&gt;
* setup_files: support scripts/data/custom for user data overrides (#1431)&lt;br /&gt;
* Modify running? method to support optional exact matching of script names (#1436)&lt;br /&gt;
* keyword bind hosts for the detachable client (tailscale/lan/any) (#1437)&lt;br /&gt;
* add roomlinks/roommono toggles for room display (#1438)&lt;br /&gt;
* self-healing gem requires (#1439)&lt;br /&gt;
* various Saga FE compatibility tweaks (#1443)&lt;br /&gt;
* add macOS limited gem recovery (#1448)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Capture combat position from the balance status line (#1400)&lt;br /&gt;
* detect scheduled shutdown and expose it on DRParser (#1409)&lt;br /&gt;
* xmlparser: add structured parser for the assess (combat situation) stream (#1413)&lt;br /&gt;
* Implement DRCA.need_buffs? method for buff checks (#1428)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* anchor Infomon parser regex unions to line start (#1391)&lt;br /&gt;
* creature xml additions (#1425)&lt;br /&gt;
* add creature template library (#1427)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* surface a failed Game.open in the connect timeout (#1408)&lt;br /&gt;
* bound long-session memory growth (index/hook/watchfor/buffer leaks) (#1410)&lt;br /&gt;
* improve and harden shutdown (#1416)&lt;br /&gt;
* use bundler to check for required Ruby gems (#1420)&lt;br /&gt;
* pin lich directory for gemfile check (#1423)&lt;br /&gt;
* Show CLI login ARGV for SAL connections (#1424)&lt;br /&gt;
* increase read timeout on idle socket to 300 seconds (#1426)&lt;br /&gt;
* monkeypatch gi for memoryreleaser / asyncprocessor until patched upstream (#1429)&lt;br /&gt;
* Mapdb sort tags by downcase and original case (#1433)&lt;br /&gt;
* stop locking the load path at boot; keep Gemfile.lock in sync on self-update (#1434)&lt;br /&gt;
* minimum Ruby 4.0 required &amp;amp; migrate Ruby version check (#1444)&lt;br /&gt;
* align --announce with --update for Ruby version (#1447)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* BalanceValue regex to match combat status lines (#1398)&lt;br /&gt;
* equipmanager.rb - Fix unload weapon detection when AimTimerDialog tag is prepended (#1414)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* global_defs update pushStream regex to include &#039;reserve&#039; id (#1379)&lt;br /&gt;
* psms Warcry.available? correction (#1387)&lt;br /&gt;
* xmlparser support new field exp, climate, terrain XML feeds (#1388)&lt;br /&gt;
* global_defs move() update regex for standing condition (#1407)&lt;br /&gt;
* Currency add method to retrieve aevit event currency (#1411)&lt;br /&gt;
* Stash check result type before comparing regex for wear_to_inv (#1430)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.18.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-crafting add method for creating mechanisms (#1375)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* stringproc normalize CRLF | CR to LF (#1378)&lt;br /&gt;
* rubocop custom cop ascii only cleanup (#1382)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* equipmanager update to assume missing items aren&#039;t worn (#1376)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1326)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Script module replace MemoryReleaser with GC.start for cleanup (#1364)&lt;br /&gt;
* Add sqlite busy timeout policy to core (#1365)&lt;br /&gt;
* Script#kill remove GC.start and add optional instrumentation (#1368)&lt;br /&gt;
* reorder shutdown ala MahtraDR and detect script teardown de... (#1369)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* harden custom repo identity, collision, and contract boundaries (#1333)&lt;br /&gt;
* stop SessionLifecycle before closing database on normal exit (#1334)&lt;br /&gt;
* harden FeatureFlags for closed db handle (#1335)&lt;br /&gt;
* SynchronizedSocket write resilience and zombie client elimination (#1338)&lt;br /&gt;
* correct RP timing issue for release notes (#1348)&lt;br /&gt;
* gate object cleanup in GTK queue (#1354)&lt;br /&gt;
* recover from cross-process zombie in ActiveSessions service (#1355)&lt;br /&gt;
* Improve shutdown session state handling (#1359)&lt;br /&gt;
* non-ascii hygeine to address rubocop errors (#1360)&lt;br /&gt;
* Remove debug log IO from heartbeat tick loop (#1363)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRC text2num correction for thousand (#1343)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Overwatch add REVEALED_EXPLODES regex pattern (#1356)&lt;br /&gt;
* Stash add_to_bag result type check before regex compare (#1357)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* enable heartbeat-driven failover for ActiveSessions service owner (#1340)&lt;br /&gt;
* copy Gemfile and LICENSE during self-update (#1345)&lt;br /&gt;
* Add top-level parse_args/display_args bridge to global_defs (#1346)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* replace undefined custom_require in check_moonwatch (#1336)&lt;br /&gt;
* set_stance places 100 in the correct positional slot (#1337)&lt;br /&gt;
* cache SlackBot users list to prevent API throttling (#1342)&lt;br /&gt;
* Add CORE_AUTOSTART sentinel to skip dependency.lic autostart helpers (#1344)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon Status.cutthroat? Effect Debuff correction (#1331)&lt;br /&gt;
* add support for RESERVE xml in GameObj.reserve (#1341)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.17.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* custom 3rd-party repo support for ScriptSync (#1285)&lt;br /&gt;
* Add get_settings, get_data, start_scripts_if_available to core (#1305)&lt;br /&gt;
* Add Map.apply_wayto_overrides for personal map overrides (#1306)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* Decouple SetupFiles from script-scoped echo and XML feed timing (#1304)&lt;br /&gt;
* Add game flags and obsolete script warnings to DRInfomon startup (#1307)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* use :__unset for --without-frontend CLI request YAML matches (#1301)&lt;br /&gt;
* prevent zombie server deadlock in Active Sessions accept loop (#1302)&lt;br /&gt;
* improve MacOS keychain system check for older OS variants (#1310)&lt;br /&gt;
* stub sync_all_repos to prevent leaked thread in games_spec (#1311)&lt;br /&gt;
* enforce beta confirmation 10s timeout (#1315)&lt;br /&gt;
* use send(:respond) in StatusReporter fallback path (#1316)&lt;br /&gt;
* ensure SessionLifecycle.stop runs on abnormal exit (#1317)&lt;br /&gt;
* address ActiveSessions lifecycle hot path feature-flag polling (#1325)&lt;br /&gt;
* catch ECONNRESET in _puts and bound walk_to retry depth (#1327)&lt;br /&gt;
* safeguard gtk logo.png loading (#1329)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Add InnCheckedOut pattern to parser (#1309)&lt;br /&gt;
* Claim corrections to handle mounts in room_players stream (#1324)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
* repair regression on gui button reenable from refactor (#1297)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
* narrow safe_write rollback scope so cleanup failure preserves successful write (#1287)&lt;br /&gt;
* fix three revert bugs in SnapshotManager (#1289)&lt;br /&gt;
* guard nil release asset and validate before deleting lib/ (#1290)&lt;br /&gt;
* guard nil stable version in beta channel resolution (#1291)&lt;br /&gt;
* remove dead code in BranchInstaller (#1292)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
* forward vitality and dead fields in perceive_health (#1288)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.16.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* session summary store and reporting (#1247)&lt;br /&gt;
* add core classes, ScriptSync, and login auto-sync (#1273)&lt;br /&gt;
* Add active sessions API (#1274)&lt;br /&gt;
* Add session status CLI query (#1276)&lt;br /&gt;
* configurable debug log retention (#1282)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* common-healing.rb - add vitality parsing to HealthResult (#1265)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* handle auth exceptions in manual login to prevent hang on bad password (#1267)&lt;br /&gt;
* set SO_REUSEADDR before bind to allow immediate port reuse (#1268)&lt;br /&gt;
* Persistent Launcher re-enable play button post launch (#1269)&lt;br /&gt;
* Restore manual login behaviors to not require saved entry t... (#1270)&lt;br /&gt;
* log and re-raise unexpected errors in saved login auth handler (#1271)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* common-items.rb - move pattern from failure to success block (#1262)&lt;br /&gt;
* buffer_room_objs missed split components with leading stream tags (#1284)&lt;br /&gt;
* common-items.rb - get_item_unsafe false positives via XML feed verification (#1286)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1275)&lt;br /&gt;
* Infomon xmlparser additional npc death messaging (#1281)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Mutli-launch persistent login GUI (#1245)&lt;br /&gt;
* Remove Windows OS CMD prompt flash (#1255)&lt;br /&gt;
* guard against broken pipe errors in Game._puts and send_to_client (#1260)&lt;br /&gt;
* add timeout safety to fput to prevent infinite hangs (#1261)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* anchor stow success pattern to prevent fan close recovery bypass (#1254)&lt;br /&gt;
* add bounded recursion depth limits to 9 methods (#1257)&lt;br /&gt;
* stow_helper failure detection + unload_weapon ammo recovery (#1259)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.15.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* add InstanceSettings for core Settings API access (#1233)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Overwatch module into core (#1201)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* fix GameObj container initialization and add clear_all_containers (#1226)&lt;br /&gt;
* GameObj object dedupe &amp;amp; GC (#1234)&lt;br /&gt;
* script.rb show Script.kill source (#1235)&lt;br /&gt;
* Exit quickly on CLI authentication failure (#1237)&lt;br /&gt;
* suppress wine detection noise and skip when unneeded (#1244)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DR modules fixes and enhancements (#1232)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* psms.rb add additional failure matches (#1238)&lt;br /&gt;
* Bounty parser fix regex pattern for skin retrieval task (#1242)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* add retry with exponential backoff for all login authentication (#1205)&lt;br /&gt;
* update.rb allow for bugfix betas and branch updates (#1211)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb bug in _key transformation (#1216)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* Change server_time_offset in XMLParser to be float instead of int (#1184)&lt;br /&gt;
* change encodings in main.rb to wizard FE only (#1199)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon parser.rb update Account.subscription/type (#1192)&lt;br /&gt;
* spell.rb add last_cast to track last time casted (#1193)&lt;br /&gt;
* stash.rb additional improvements with ReadyList/StowList (#1197)&lt;br /&gt;
* Infomon parser.rb bug in EnhanciveEnd (#1198)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.14.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Add Genie map cross-reference fields to the DragonRealms map data model (#1169)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRExpMonitor move into core lich (#1154)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* add Enhancive module for enhancive item bonus tracking (#1113)&lt;br /&gt;
* add QStrike module for optimal stamina-based RT reduction (#1114)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* remove strip! from settingsInfo replacement (#1161)&lt;br /&gt;
* map_base.rb sort JSON better (#1171)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* logbook_item recovery when crafted item not in hand (#1175)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* xmlparser.rb capture additional death messaging (#1158)&lt;br /&gt;
* stash.rb ReadyList sheath handling and update inventory checks (#1166)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* allow --add-account to run without yaml and dat (#1143)&lt;br /&gt;
* enable --login for multi-variable custom launch commands (#1144)&lt;br /&gt;
* update.rb pervent update if MIN_RUBY not met (#1146)&lt;br /&gt;
* messaging.rb return &amp;quot;&amp;quot; for xml_encode with Wizard (#1147)&lt;br /&gt;
* prevent closing connection on module reload (#1148)&lt;br /&gt;
* Allow hmr to work on global_defs.rb (#1156)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* buffer split room obj lines and merge instead of appending closing tag to broken line (#1149)&lt;br /&gt;
* add buffering for multiline room players (#1151)&lt;br /&gt;
* add verify_script def here instead of depending on dependency (#1155)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* infomon.rb added updated_at field to upsert_batch (#1145)&lt;br /&gt;
* stowlist.rb check method fix when dead (#1152)&lt;br /&gt;
* readylist.rb check method fix when dead (#1153)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* util.rb only show gem installing debug messaging if gem mis… (#1131)&lt;br /&gt;
* add --gs and --dr, refactor argv_options to helpers (#1133)&lt;br /&gt;
* fix multiple custom entries, improvements to yaml save (#1134)&lt;br /&gt;
* login_tab_utils.rb expand helper text show Warlock (#1135)&lt;br /&gt;
* update CLI for YAML security signature, add auto-convert fo… (#1136)&lt;br /&gt;
* remove password parameter from debug logging in all cases (#1137)&lt;br /&gt;
* reduce minimum GUI window footprint for non-tabbed view (#1138)&lt;br /&gt;
* remove double save in YAML to preserve yaml.bak integrity (#1139)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* stash.rb additional improvements (#1132)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* force system gem install if RubyGems fails (#1126)&lt;br /&gt;
* gui_login prevent destroying window if already destroyed (#1127)&lt;br /&gt;
* add window size / position saves to login GUI (#1128)&lt;br /&gt;
* non tabbed saved entries in reduced button / font size (not… (#1129)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* account manager sorting GUI fix (#1123)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* install_gem_requirements update available gems after install (#1120)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* password_cipher.rb upcase account_name for key (#1118)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* validator.rb change sleep to should_sleep named param (#1116)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* add base stats capture from &#039;info full&#039; command (#1115)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Refocus Frontend (#960)&lt;br /&gt;
* socket configurator to better guard TCPSocket (#976)&lt;br /&gt;
* add simplified DB maintenance (#991)&lt;br /&gt;
* TextStripper module support for XML, HTML, Markdown (#1055)&lt;br /&gt;
* Login modernization and refactor to yaml (#1063)&lt;br /&gt;
* Ruby Memory Releaser module (#1066)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* support meta:trashcan tag for DRCI.dispose_trash (#966)&lt;br /&gt;
* Add GameObj.inv support for DR items (#1080)&lt;br /&gt;
* DRCS allow custom adjective for summoned weapons (#1088)&lt;br /&gt;
* DRParser support for new exp window xml stream elements (rested exp, tdps, favors) (#1104)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Add Armaments (Weapon, Armor, and Shield) Module (#911)&lt;br /&gt;
* add creature module, including Hinterwilds creatures (#1002)&lt;br /&gt;
* Creature module combat tracking (#1003)&lt;br /&gt;
* track time of last total_experience record (#1030)&lt;br /&gt;
* add Injured class for checking ability to perform actions (#1035)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* map dijkstra optimization (#1061)&lt;br /&gt;
* update.rb keep script/data file incase of error on update (#1070)&lt;br /&gt;
* ensure proxy path is set for non-destructive array write-th… (#1073)&lt;br /&gt;
* [lib][global-defs] - move update (#1079)&lt;br /&gt;
* GameObj force new objects ID to be string (#1087)&lt;br /&gt;
* xmlparser.rb gate GSL exits sending behind @send_fake_tags (#1103)&lt;br /&gt;
* change Hash[] pair key conversion to use to_h for Ruby 4.0 (#1108)&lt;br /&gt;
* move gui-login.rb to Ruby standard gui_login.rb (#1111)&lt;br /&gt;
* update location for currency and move game-loader.rb to Ruby standard gameloader.rb (#1112)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRCA allow custom spell prep messaging (#1089)&lt;br /&gt;
* Update Slackbot error handling, and lnet management (#1091)&lt;br /&gt;
* Fix exp mods parsing for DR (#1102)&lt;br /&gt;
* equipmanager.rb support for custom messaging in forester&#039;s longbow (#1105)&lt;br /&gt;
* Fix hang in equipment manager when game doesn&#039;t respond to commands (#1110)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon additional CHE resign regex (#1067)&lt;br /&gt;
* Resource tracking for sorcerer shadow essence (#1085)&lt;br /&gt;
* cman.rb add hamstring regex for already lying down target (#1090)&lt;br /&gt;
* cman.rb hamstring regex update when can&#039;t perform on target (#1092)&lt;br /&gt;
* Bounty parser.rb FWI guard regex update (#1096)&lt;br /&gt;
* currency.rb track gold (#1109)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.12&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (general)&lt;br /&gt;
    Update module strip markdown comments (#1056)&lt;br /&gt;
    Vars/UserVars module fixes and corrections (#1057)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    Infomon parse fix for singular currency (#1051)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (dr)&lt;br /&gt;
    add bput match for system updates preventing actions (#1034)&lt;br /&gt;
    drdefs.rb npc parsing (#1038)&lt;br /&gt;
    Fix container reference in get_item_from_eddy_portal method (#1039)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    bounty location regex needs to match &amp;quot;under&amp;quot; (#1037)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.10&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: games.rb catch additional error for nested single/double quotes (#1031)&lt;br /&gt;
    dr: change keys for DR_SKILLS_DATA[:guild_skill_aliases] to be strings instead of symbols (#1032)&lt;br /&gt;
    gs: Bounty parser for SG npcs matching (#1027)&lt;br /&gt;
    gs: match READY/STOW items with a/an/some inside the link (#1026)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.9&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    gs: StowList/ReadyList reset bug if non-default keys added #1019&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: script.rb show custom at script exit as well (#993)&lt;br /&gt;
    all: Updated update.rb for single trunk and release please (#1001)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.7&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): ensure updates do not target detached proxy views #990 &lt;br /&gt;
fix(gs): bounty parser and move fixes for sailor&#039;s grief #987 &lt;br /&gt;
fix(gs): Infomon xmlparser.rb Ready/Stow fix for LONG before exist #988 &lt;br /&gt;
fix(gs): gameobj.rb for Sailor&#039;s Grief ghostly/boss/guild tentacles #989 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): settings.rb update to preserve root of derived views #975&lt;br /&gt;
fix(all): show custom in various script output when custom script #967&lt;br /&gt;
fix(dr): drparser.rb update for PlayedSubscription #983&lt;br /&gt;
fix(gs): include store location for ReadyList #977&lt;br /&gt;
fix(gs): infomon parser.rb update for ACCOUNT output varies #979&lt;br /&gt;
fix(gs): global_defs.rb move def update for Hive traps #980&lt;br /&gt;
fix(gs): activespell.rb prevent removal of RF Penalty #981&lt;br /&gt;
fix(gs): add .compact to input of Disk.find_by_name #982&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): update.rb word boundary for abbreviations #971&lt;br /&gt;
fix(dr): equipmanager.rb Fix for changed game output. #969&lt;br /&gt;
fix(dr): common-arcana.rb Regalia fix for changed game output. #970&lt;br /&gt;
fix(dr): common-items.rb Fix for changed inventory command output #973&lt;br /&gt;
fix(gs): StowList missing space in capture in xmlparser.rb #963&lt;br /&gt;
fix(gs): stowlist.rb wait for RT when issuing check #964&lt;br /&gt;
fix(gs): readylist.rb wait for RT when issuing check #965&lt;br /&gt;
fix(gs): Bounty heirloom return msg&#039;ing update #972&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
build(all): installer.yml use windows-2022 #950&lt;br /&gt;
fix(all): restore Wrayth / Wizard script execution ability #952&lt;br /&gt;
fix(all): database_adapter.rb error handling improvement #956&lt;br /&gt;
fix(dr): common-items.rb wear/remove messaging additions #949&lt;br /&gt;
fix(dr): games.rb - ignore UIDs for Frostbite mapping #951&lt;br /&gt;
fix(dr): map_dr.rb prevent inadvertent settings changes #958&lt;br /&gt;
fix(gs): GameObj targets for new Sailor&#039;s Grief tentacle npc #948&lt;br /&gt;
fix(gs): map_gs.rb remove delete_if to prevent bad settings #957&lt;br /&gt;
fix(gs): weapon.rb assault break if no targets #962&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): limitedarray.rb max_size increase #946&lt;br /&gt;
fix(all): uservars.rb update for vars method missing #940&lt;br /&gt;
fix(dr): drparser.rb to set ShowRoomID to on if turned off #945&lt;br /&gt;
fix(gs): change namespace accessors to Ruby 2.6 compatible #944&lt;br /&gt;
fix(gs): infomon state reset on status prompt #943&lt;br /&gt;
fix(gs): Societies to check membership for various methods #942&lt;br /&gt;
fix(gs): standardize warcry.rb to match other PSMS #941&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(gs): infomon parser.rb for profile full name matching #938&lt;br /&gt;
fix(gs): force PROFILE FULL to sync CHE info for infomon #937&lt;br /&gt;
fix(dr): Tighten checks on releasing invisibility for thieves #936&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): gameobj.rb - add type? method for explicit type check #928&lt;br /&gt;
- fix(all): messaging.rb encoding issue #933&lt;br /&gt;
- fix(gs): Various CMan cost corrections #932&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- feat(all): settings.rb - proposal for sequel based Settings #591, #875, #889, #896, #927&lt;br /&gt;
- feat(all): util.rb add Ruby gem install helper method #861&lt;br /&gt;
- feat(all): messaging.rb add cmd link method #866&lt;br /&gt;
- refactor(all): games.rb modernization #849, #882, #924&lt;br /&gt;
- fix(all): add class extensions #800&lt;br /&gt;
- fix(all): lich.rb deprecated FE message #852&lt;br /&gt;
- fix(all): messaging.rb fix XML encoding for wizard and avalon #853&lt;br /&gt;
- fix(all): lich.rb class variable not initialized #855&lt;br /&gt;
- fix(all): log.rb force msg to String for regexp comparison #856&lt;br /&gt;
- fix(all): global_defs.rb bug in fput #864&lt;br /&gt;
- fix(all): messaging.rb xml_encode mono method msg #868&lt;br /&gt;
- fix(all): script.rb class to is_a? checks #878&lt;br /&gt;
- fix(all): gameobj.rb deeper lookup #885&lt;br /&gt;
- fix(all): messaging.rb debug not compared to falseclass #887&lt;br /&gt;
- fix(all): change class to is_a? checks #91-3&lt;br /&gt;
- fix(all): Util.issue_command allow single line captures #918&lt;br /&gt;
- fix(dr): drparser.rb casing for Premium status check #842&lt;br /&gt;
- fix(dr): map_dr.rb Don&#039;t assign UID of zero to rooms #844&lt;br /&gt;
- fix(dr): drparser.rb add $last_logoff tracking #851&lt;br /&gt;
- fix(dr): update message patterns in common-items #859&lt;br /&gt;
- fix(dr): add moon_visible?(moon) convenience method to common-moonmage #860&lt;br /&gt;
- fix(dr): exp mods output is not enclosed in preset xml tags anymore #870&lt;br /&gt;
- fix(dr): update.rb beta send validation for genie lich char #880&lt;br /&gt;
- fix(dr): Update regex and parsing for active spells #894&lt;br /&gt;
- fix(dr): add &#039;You scoop&#039; match pattern to common-items #900&lt;br /&gt;
- fix(dr): add missing match patterns #901&lt;br /&gt;
- fix(dr): common-items: add and fix match strings #904&lt;br /&gt;
- fix(dr): Add missing matches for common-items #905&lt;br /&gt;
- fix(dr): Release Khri Vanish if Thief, when going visible #906&lt;br /&gt;
- fix(dr): Fix race condition when clearing and repopulating XMLData.dr_active_spells #907&lt;br /&gt;
- fix(dr): Fix SLS release pattern #908&lt;br /&gt;
- fix(dr): resolve race condition in DR crafting_magic_routine #914&lt;br /&gt;
- fix(dr): xmlparser.rb - Fix XMLData.dr_active_spells race condition #915&lt;br /&gt;
- fix(dr): xmlparser.rb - Clear out spells properly #916&lt;br /&gt;
- fix(dr): drparser.rb update for Platinum account status #922&lt;br /&gt;
- feat(gs): gameobj.rb allow for custom gameobj data #848&lt;br /&gt;
- feat(gs): PSMS updates, including CMan.use #865, #874, #881, #890, #899&lt;br /&gt;
- feat(gs): ReadyList &amp;amp; StowList classes for item tracking #884&lt;br /&gt;
- feat(gs): Breakout and Buildout Societes #919&lt;br /&gt;
- fix(gs): infomon parsing for CHE membership #841&lt;br /&gt;
- fix(gs): map_gs.rb for no UID when hexdigest used #843&lt;br /&gt;
- fix(gs): warcry.rb yowlp :buff to string instead of regexp #847&lt;br /&gt;
- fix(gs): group.rb multiple corrections #850, #869, #883&lt;br /&gt;
- fix(gs): Bounty parser.rb fix for HW &amp;amp; KF guard return #862&lt;br /&gt;
- fix(gs): Bounty task.rb fix for assigned? and Ruby 2.6 #863&lt;br /&gt;
- fix(gs): stash.rb stale sheaths recheck #867&lt;br /&gt;
- fix(gs): allow spell.rb casting to take a force_stance parameter #902&lt;br /&gt;
- fix(gs): update Infomon parsing for new ACCOUNT output format #903&lt;br /&gt;
- fix(gs): PSMS cost for multiple cost types &amp;amp; add Excoriate feat #912&lt;br /&gt;
- fix(gs): Feat excoriate regex correction #920&lt;br /&gt;
- fix(gs): weapon PSM affordable check against Glorious Momentum #926&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): restore @theme_state and add to CLI capability #795&lt;br /&gt;
- fix(all): retire gtk2 monkey patch for gtk3 #823&lt;br /&gt;
- fix(all): games.rb XMLData.name wait till both not NIL and not EMPTY #826&lt;br /&gt;
- fix(all): standardize xmlparser game instance #827&lt;br /&gt;
- fix(all): games.rb fix multiple single and double quote in XML #832,836,837&lt;br /&gt;
- fix(dr): games.rb - optional hide Room Title display of Real IDs with FLAG on #782&lt;br /&gt;
- chore(dr): common-moonmage - refactor of peer_telescope #783&lt;br /&gt;
- fix(dr): move HMR load to common before for dragonrealms #784&lt;br /&gt;
- fix(dr): common-crafting.rb minor edit to add &amp;quot;You tuck&amp;quot; #787&lt;br /&gt;
- fix(dr): common-arcana.rb - remove unecessary pause from discern code #792&lt;br /&gt;
- fix(dr): drparser.rb Restore Premium status checking #834&lt;br /&gt;
- fix(gs): migrate PSMS.name_normal to Lich::Util.normalize_name #790,833&lt;br /&gt;
- fix(gs): add Char.che to know current character&#039;s CHE #791&lt;br /&gt;
- fix(gs): FEAT and Infomon module parsing of new Covert Art feats. #796&lt;br /&gt;
- fix(gs): add Currency.gemstone_dust and fix redsteel mark capture #797&lt;br /&gt;
- fix(gs): FEAT Covert Arts colon normalization and stamina costs #799&lt;br /&gt;
- fix(gs): escape dash in regex for HouseCHE #824&lt;br /&gt;
- fix(gs): disk.rb comparison helpers #828&lt;br /&gt;
- fix(gs): allow for Group.disks to show self disk in array #829&lt;br /&gt;
- fix(gs): feat.rb Covert Arts throw poison costs 15 stam #830&lt;br /&gt;
- fix(gs): add missing Feat.use ability #831&lt;br /&gt;
- fix(gs): multiple CritRanks updates #801-822&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- [all] - chore: Namespace &amp;amp; File Path Updates #713&lt;br /&gt;
- [all] - [argv_options.rb] bugfix: correct darkmode to work via CLI #693&lt;br /&gt;
- [all] - [games.rb] feat: make show Room Exits of non-StringProc/Obvious Exits toggable for all games #699&lt;br /&gt;
- [all] - [games.rb] feat: toggleable display of StringProcs with clickable links #751&lt;br /&gt;
- [all] - [gui-manual-login.rb] fix: change label to Wrayth #720&lt;br /&gt;
- [all] - [gui-saved-login.rb] fix: update Stormfront label #721&lt;br /&gt;
- [all] - [update.rb] fix: purge old LIB folder prior to update release #729&lt;br /&gt;
- [all] - [util.rb] bugfix: allow issue_command to use fput or put #715&lt;br /&gt;
- [all] - [xmlparser.rb] feat: add XMLData.room_name attribute #685&lt;br /&gt;
- [all] - [main.rb] fix: create session file in regular connect method #733&lt;br /&gt;
- [all] - [init.rb] bugfix: error for Windows DISPLAY variable #735&lt;br /&gt;
- [all] - [main.rb] fix: Mudlet support #736&lt;br /&gt;
- [all] - [wine.rb] fix: add --no-wine CLI flag prevent WINE startup&lt;br /&gt;
- [all] - [init.rb] fix: add --no-gtk CLI flag prevent GTK3 gem load&lt;br /&gt;
- [dr] - [games.rb] feat: DRinfomon and common files as core lich libraries #686&lt;br /&gt;
- [dr] - [games.rb] chore: add DR requires here #690&lt;br /&gt;
- [dr] - [games.rb] fix: add Room# display for DR #697&lt;br /&gt;
- [dr] - [games.rb] bugfix: Genie FE real ID#s not supported, hide by default #728&lt;br /&gt;
- [dr] - [drdefs.rb] bugfix: fix for Shadow Servants #710&lt;br /&gt;
- [dr] - [map_dr.rb] fix: cleanup and support for UIDs #719&lt;br /&gt;
- [dr] - [xmldata.rb] bugfix: add support for DR Room IDs #716&lt;br /&gt;
- [dr] - [xmlparser.rb] feat: XMLData - adding dr_active_spells #691&lt;br /&gt;
- [gs] - [games.rb] bugfix: support for pre/post room name txt #683&lt;br /&gt;
- [gs] - [group.rb] chore: update to account for hold #701&lt;br /&gt;
- [gs] - [resource.rb] feat: add additional tracking of covert art charges #714&lt;br /&gt;
- [gs] - [spell.rb] bugfix: Spell.affordable? 515 release #687&lt;br /&gt;
- [gs] - [stash.rb] bugfix: sheath_bags when not found #694&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: missing real ID in nav #684&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: Claim module obvious hiding #717&lt;br /&gt;
- [gs] - [sk.rb] feat: Self-Knowledge functionality in core #748&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: Simu XML breaking change RoomID #679&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [crit_tables] fix: CritRanks regex fixes (multiple files and changes) #671&lt;br /&gt;
-o- [GS4] - [spellsong.rb] fix: Correct Spellsong sync method #674&lt;br /&gt;
-o- [GS4] - [parser.rb] fix: thorn status regex correction #673&lt;br /&gt;
-o- [All] - [xmlparser.rb] fix: Split out if elif block to account for DR having multiple… #670&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: percentconcentration #676&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: update move failure message to handle attack and casting #667&lt;br /&gt;
-o- [All] - [init.rb] fix: update required ruby check messaging #669&lt;br /&gt;
-o- [All] - [sessionvars.rb] feat: new module SessionVars for non-persistent variable storage #666&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [DR] - [games.rb] bugfix: tweak XML rewrite section #662&lt;br /&gt;
-o- [GS4] - [crit_tables] bugfix: additional crit table regex corrections #663&lt;br /&gt;
-o- [GS4] - [ascension.rb] bugfix: add new Transcend Destiny to lookups #661&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: regexp escape txt #660&lt;br /&gt;
-o- [GS4] - [disruption_critical_table.rb] Bugfix in regex #659&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [games.rb] bugfix: prevent race condition in games thread #656 &lt;br /&gt;
-o- [All] - [init.rb] bugfix: address WINE variance between linux / installs #655&lt;br /&gt;
-o- [GS4] - [gs][stash.rb] bugfix: wear code improvement #657 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [main.rb] bugfix: correct encoding for WizardFE PR #640&lt;br /&gt;
-o- [All] - [games.rb] bugfix: correct logic for room detection when using CLI --start-scripts PR #639&lt;br /&gt;
-o- [All] - [DB_Store.rb] feat: add direct support for Simu RENAME and CHANGE PROF PR #633&lt;br /&gt;
-o- [All] - chore: breakout code to individual files for easier management PR #617&lt;br /&gt;
-o- [All] - [lich.rbw] chore: add deprecated msg to old Settings/GameSettings/CharSettings methods PR #589&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add new --dark-mode CLI option PR #583&lt;br /&gt;
-o- [All] - [global_defs.rb] bugfix: monsterbold fix for additional clients PR #581&lt;br /&gt;
-o- [All] - [update.rb] feat: update core scripts from source on Lich5 update/install PR #579&lt;br /&gt;
-o- [All] - [log.rb] feat: add new Log module copied from Olib PR #577&lt;br /&gt;
-o- [All] - [numeric.rb] feat: add days/hours/minutes/seconds methods to numerics PR #623&lt;br /&gt;
-o- [All] - [messaging.rb] feat: WizardFE Voln window support #647&lt;br /&gt;
-o- [All] - [init.rb] bugfix: WINE entries for Linux / MacOS #649&lt;br /&gt;
-o- [DR] - [lich.rbw] bugfix: cleanup downstream hook exclusions PR #593&lt;br /&gt;
-o- [DR] - [global_defs.rb] bugfix: missing climb failure message PR #592&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: show non-standard Effects in `;magic` output PR #641&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: fix WARCRY duplication results / add WALL OF THORNS effect detection PR #634 / PR #637&lt;br /&gt;
-o- [GS4] - [critranks.rb] feat: add critical rank resolution tables and methods PR #625&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: to support regex for active? &amp;amp; time_left PR #590&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: add implicit NPC death monitoring PR #588&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: change PSM to be stored as type.mnemonic PR #587&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: strip_xml multiline fix PR #584&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: fix sack detection to use Stash.container(param) PR #578&lt;br /&gt;
-o- [GS4] - [spell.rb] feat: Spell.after_stance #644 &lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: for Claim module #646&lt;br /&gt;
-o- [GS4] - [infomon] feat: track Voln favor via RESOURCE output #648&lt;br /&gt;
-o- [GS4] - [gameobj.rb] feat: add Bandit hidden target API #650&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: proper leader detection from GROUP output&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back depracted Char.maxvitals with msging to switch to new Char.max_vitals methods&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: group.check syntax change&lt;br /&gt;
-o- [GS4] - [spell.rb] bugfix: affordable? Char.mana parenthesis logic&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] -  feat: sqlite3 gem syntax code cleanup PR#553&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: remove unused Setting, GameSetting, CharSetting PR#542&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: scrub login key from error message popups PR#548&lt;br /&gt;
-o- [All] - [messaging.rb] bugfix: color mismatch WizardFE white txt PR#554&lt;br /&gt;
-o- [All] - [lich.rb] feat: add new Lich.deprecated method to aid in deprecating older API calls PR#523&lt;br /&gt;
-o- [GS4] - [char.rb] feat: log method_missing calls PR#552&lt;br /&gt;
-o- [GS4] - [char.rb] feat: add missing global_def related methods PR#523&lt;br /&gt;
-o- [GS4] - [global_defs.rb] feat: deprecate various Char module methods PR#523&lt;br /&gt;
-o- [GS4] - [spellsong.rb] bugfix: cache spellsong duration calc PR#551&lt;br /&gt;
-o- [GS4] - [effects.rb] feat: Effects module breakout PR#549&lt;br /&gt;
-o- [GS4] - [group.rb][disk.rb] feat: Group &amp;amp; Disk class PR#532&lt;br /&gt;
-o- [GS4] - [activespell.rb] feat: add duration change messaging, off by default, see ;help for details PR#487&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add Game:Character to debug log file ouput&lt;br /&gt;
-o- [All] - [init.rb] feat: add milliseconds to debug filename&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: reorder parsing of $SERVERSTRING to avoid certain conflicts&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: update for new Empath resource and sleep/bind messaging&lt;br /&gt;
-o- [GS4] - [status.rb] bugfix: bound? calmed? and sleeping? support for spellnames flag being off&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: additional creature dying messaging to check against XML dead not being sent&lt;br /&gt;
-o- [GS4] - [gameobj.rb] bugfix: remove sorcerer arms and animates from GameObj.targets&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - Ruby 3.3 compatibility&lt;br /&gt;
-o- [All] - [lich.rbw] feat: adds .sources for up/downstream hooks&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: don&#039;t use WINE for custom frontends&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back Char.stance&lt;br /&gt;
-o- [GS4] - [claim.rb] feat: new module and associated changes to xmlparser&lt;br /&gt;
-o- [GS4] - [experience.rb] feat: percent experience options&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow for negative TNL exp value&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow hyphenated last names in character names&lt;br /&gt;
-o- [GS4] - [parser.rb] feat: update resource matching for new Bard service&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: catch more shield removal messages&lt;br /&gt;
-o- [GS4] - [util.rb] bugfix: underscore issue for PSMs&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.7.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Supports Ruby 3.2 - security enhancements and huge speed improvements for regex&lt;br /&gt;
-o- New libraries/modules/classes: Account, HMR (Hot Module Reloading)&lt;br /&gt;
-o- GS4 Infomon now baked into Lich5 as a library, no more need to run standalone script&lt;br /&gt;
-o- New GS4 libraries/modules/classes: Ascension, Bounty, Currency, Experience, Resources, Society, Status, Warcry&lt;br /&gt;
-o- Updates to existing libraries/modules/classes: Armor, Util, Weapon, Spell, GameObj, Messaging&lt;br /&gt;
-o- Several Bugfixes for lots of things&lt;br /&gt;
-o- Lots of code cleanup&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML errors&lt;br /&gt;
-o- Adds the DR Plat instance for Frostbite FE&lt;br /&gt;
-o- Adds ‘ball’ as the noun used for ‘ball and chain’&lt;br /&gt;
-o- Adds the movement result ‘slip in the mud and fall flat’&lt;br /&gt;
-o- Corrects stamina cost for the feature Dispel Magic&lt;br /&gt;
-o- Plus all the latest script updates from Elanthia-Online!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML to limit login errors (DR)&lt;br /&gt;
-o- Fix for XMLData.active_spells to properly register wizard &#039;recovery&#039; spell cooldowns&lt;br /&gt;
-o- Messaging updates to remove error in Wizard FE encodings&lt;br /&gt;
-o- Corrects for error in detecting PSM skill changes (cman) via warrior / rogue guild lessons&lt;br /&gt;
-o- Deprecates LNet script from master repository&lt;br /&gt;
-o- Miscellaneous small bug squashing&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.6.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- (DragonRealms) Support for Genie and Frostbite frontends&lt;br /&gt;
-o- (GemStone) Changed methods to improve ;go2 speed and reduce lich.db3 calls&lt;br /&gt;
-o- (GemStone) Updates to support silver_count function&lt;br /&gt;
-o- (Both) Changed method for updating lich ecosystem&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.5.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for DragonRealms&lt;br /&gt;
-o- Updated support for scripts like BigShot&lt;br /&gt;
-o- Providing the LichID and UID on Profanity&lt;br /&gt;
-o- Spell.force_incant, .force_channel, and .force_evoke&lt;br /&gt;
-o- Standardized message method for script authors&lt;br /&gt;
-o- Sundry small improvements / fixes and changes&lt;br /&gt;
-o- And the creme de la creme - a custom directory&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.4.0&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Simu Room IDs (formally called &#039;unique ID&#039; or &#039;uid&#039; for Lich) added to Map, mapDB where known, and ;go2 for navigation (courtesy Xanlin and with our thanks!) ;go2 u7120 for all you ex-GMs out there. &lt;br /&gt;
-o- Room titles will now display the Lich ID and / or the UID for the room based on user selections - default is on for both, and enabled / disabled via Lich.display_lichid or Lich.display_uid toggles that can be set to on / off or true / false. (;e Lich.display_lichid=true/false and ;e Lich.display_uid=true/false) You can remove that rnum from your autostart now! To gain the benefit of the UID deployment, be sure to ;repo download-mapdb&lt;br /&gt;
-o- REQUESTS: Drop 5 minute timeout function from Lich&lt;br /&gt;
-o- waitrt? and waitcastrt? will still pause activities, but will return TRUE or FALSE in keeping with the Ruby functionname? tradition (no more failing to get a weapon out due to RT from climbing!)&lt;br /&gt;
-o- empty_hands and fill_hands will now check to see if the character is in roundtime before trying to put away or retrieve held items&lt;br /&gt;
-o- Infomon received an update that keeps spell timers in sync with the information received from the server - no more need to immediately do a spell active in game to get the right times to display for various legacy scripts and ;magic after visiting the invoker or using an SK item&lt;br /&gt;
-o- Lich now provides a facility to get current coins on the character that is a bit more agnostic to data changes from Simu - Lich::Util.silver_count&lt;br /&gt;
-o- Various other small tidbits to help ease maintenance and future development&lt;br /&gt;
-o- PLEASE NOTE:  This update is required for the newest Bigshot (released today!) and for future eloot and eherbs scripts (release RSN)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.3.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Added support for Wrayth (renamed Stormfront) installations &lt;br /&gt;
-o- Converted Linux | WINE login methods to &#039;method 0&#039;, does not use Simu launcher&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.2.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for STOWing items irrespective of special item scripts&lt;br /&gt;
-o- Improved query support for Effects and CMans&lt;br /&gt;
-o- Fix Lich bug to respect the &#039;groupmovement&#039; flag in game&lt;br /&gt;
-o- Fix Lich round time calculations (more aggressive timing)&lt;br /&gt;
-o- Dark Mode is now a thing&lt;br /&gt;
-o- Lich4 Style GUI layout available&lt;br /&gt;
-o- Several file location changes to support future code change efforts&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.19&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Benefit: Monks with Mental Acuity (all 3 of you) rejoice - stamina casting!&lt;br /&gt;
-o- Benefit: PSM3 included, no charge. No hair remaining, either!&lt;br /&gt;
-o- Benefit: Ok, stay seated: Some of your various SF spell duration windows may work. . . better? Yes, not perfect, but better. No pictures, please!&lt;br /&gt;
-o- Updated infomon that properly detects Cloak of Shadows on those pesky sorcerers, and the Raise Dead Cooldown periods for those wondrous clerics.&lt;br /&gt;
-o- A new update process for Lich 5 - tired of having to download that script over and over just to update? Get yourself a copy of lich5-update.lic. Note, if you already have it, you&#039;re set! If not - ;jinx script install lich5-update --repo=elanthia-online&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Updated the method used to log onto SIMU servers.&lt;br /&gt;
-o- Added the Animalist item specifics to Lich5&#039;s empty and fill hands routines&lt;br /&gt;
-o- Improved Invoker messages for Avalon and Wizard FEs (no change for SF FE)&lt;br /&gt;
-o- Improved cleanup and store methods when player EXIT&#039;s or QUIT&#039;s game&lt;br /&gt;
-o- Crafted two new methods (stash_hands and equip_hands) for future script use&lt;br /&gt;
-o- Some behind-the-scenes cleanup to improve maintaining the Lich5 ecosystem&lt;br /&gt;
-o- Add Spell Active improvements&lt;br /&gt;
-o- Add PSM and Ranger improvements&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
* [[Mac Installation - Lich (software)]]&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
[[Category:New Player]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=261301</id>
		<title>Lich:Software/Installation</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=261301"/>
		<updated>2026-07-20T23:56:18Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Installing the Latest Stable Release */ update to 5.19.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
=About=&lt;br /&gt;
&lt;br /&gt;
Lich is an add-on scripting engine that works alongside existing front ends.  The most common installation is a combination of Lich on Windows using the Wrayth or Wizard FE. Lich is also used by many on both MacOS and multiple Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=Installing the Latest Stable Release=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The latest stable lich version is 5.19.1 supporting Ruby 4.0 - published July 20, 2026&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==In-Place Upgrade==&lt;br /&gt;
&lt;br /&gt;
If you are on an older version of Lich 5 and want to upgrade to the most current version, you can choose to either upgrade Lich5 only or both Lich 5 and Ruby. If you&#039;re currently on Lich 4, able to check by running the command &amp;lt;CODE&amp;gt;;e echo LICH_VERSION&amp;lt;/CODE&amp;gt;, go to the [[#Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)|upgrade from Lich 4 section]].&lt;br /&gt;
&lt;br /&gt;
For each section, please follow the directions/commands one at a time.&lt;br /&gt;
&lt;br /&gt;
===Lich 5 Only===&lt;br /&gt;
&lt;br /&gt;
====Lich 5.7 or newer====&lt;br /&gt;
# You must be running Ruby 4.0 or greater for Lich 5.19 +.  If unsure, please update both (see below)!&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Run this command in-game &amp;lt;CODE&amp;gt;;lich5-update --update&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
====Lich 5.6 or older====&lt;br /&gt;
Please proceed to updating both Ruby and Lich 5&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 4.0 &amp;amp; Lich 5===&lt;br /&gt;
This method is for Windows only. Linux and MacOS users, please do a Lich 5 only update and update Ruby manually via normal install/update methods for the OS.&lt;br /&gt;
&lt;br /&gt;
# Logout of all characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall existing Ruby4Lich5 installs from Programs &amp;amp; Features control panel, or alternatively, rename your existing Ruby4Lich5 folder to Ruby4Lich5save. (Defaults to C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the installer and be sure to have both Ruby and Lich 5 option selected&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich &amp;amp; Ruby!&lt;br /&gt;
&lt;br /&gt;
===Ruby 4.0 Only===&lt;br /&gt;
Use this to upgrade to the newest version of Ruby only if you&#039;re already on the latest version of Lich5 and now want to update Ruby afterwards. If you&#039;re not already on the latest version of Lich5, please use previous section steps instead.&lt;br /&gt;
# Logout of all instances/characters&lt;br /&gt;
# &#039;&#039;&#039;Backup existing Lich 5 folder&#039;&#039;&#039;&lt;br /&gt;
# Uninstall your existing Ruby4Lich5 install via Programs &amp;amp; Features (ensure it&#039;s now gone, default location was C:\Ruby4Lich5)&lt;br /&gt;
# Download the latest [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer]&lt;br /&gt;
# Run the new installer and choose to only install Ruby Only&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version Ruby!&lt;br /&gt;
&lt;br /&gt;
==Windows New Installation==&lt;br /&gt;
&lt;br /&gt;
{{blue|These instructions are not for DragonRealms. [[#Ecosystem Information|For those scroll to the bottom]].}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows 11 / 10 / 8 / 7&#039;&#039;&#039; users: you can download the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and install everything you need automatically. Click on the &#039;&#039;&#039;Ruby4Lich5.exe&#039;&#039;&#039; and download it to your computer then double click on the executable in your default download folder. Note, a user may need to adjust their browser or security settings to allow download and installation.&lt;br /&gt;
If you have never played before, follow the &#039;New Installation&#039; instructions. If you have played before, and have used Lich before, follow the &#039;Upgrade Installation&#039; instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New Installation for Lich 5 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Please log into the game of your choice through the Simutronics website first&#039;&#039;&#039;.  Install the launcher (not SGE), and install your FrontEnd of Choice.  The Wrayth FrontEnd is presently the supported FrontEnd, but Wizard will work as well, if you are nostalgic.  After you&#039;ve logged in, log out and continue.&lt;br /&gt;
# Download and Run the [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe  Installer]. You will receive the Microsoft Warning because this is not distributed through the MS Store.  Click on &#039;More Info&#039; and then select the &#039;Run Anyway&#039; button.&lt;br /&gt;
# The installation may take a few minutes, especially on non-SSD harddrives.&lt;br /&gt;
# A Lich5 folder will be placed on your desktop after the install is finished, open that folder and double click the lich.rbw file contained inside to start Lich&#039;s Game Entry window.&lt;br /&gt;
# Use your existing Simutronics Account and Password and click connect.  Then select the character you wish to play, and select the FrontEnd you wish to use.  Then click the Play button.&lt;br /&gt;
# Your game FrontEnd should start, and you should see Lich5 initializing.  You will see it downloading files - these are the map files, wait for the download to finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)===&lt;br /&gt;
&lt;br /&gt;
This option is deprecated.  Lich 5 architectures are not compatible with Lich 4. Back up your existing Lich 4 folder, uninstall any existing Ruby executables, and then follow the instructions for a new install above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional assistance in installation can be found in the scripting channel of the GemStone [https://discord.gg/KF9Wr8u Discord].&lt;br /&gt;
&lt;br /&gt;
==MacOS==&lt;br /&gt;
There two common options for playing Gemstone IV on a Mac is either to play natively with Avalon or to use virtualization software such as Parallels with Wrayth/WizardFE. Below are the options on how to do that.&lt;br /&gt;
&lt;br /&gt;
===Native Avalon===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. This process works well for Mac OS Catalina and Big Sur. If you have not updated your Mac OS yet, these instructions may work depending on your actual version.  If you run into a snag, follow the contact instructions provided.&lt;br /&gt;
&lt;br /&gt;
===Parallels Windows===&lt;br /&gt;
With the latest releases of Ruby4Lich5 installer, you can now follow the normal Windows installation for both Intel and Apple silicon based Apple computers.&lt;br /&gt;
&lt;br /&gt;
To install Wrayth/WizardFE, Lich, and Ruby via Parallels you will need to do a few various steps as outlined below. Please note, the rubyw file in C:\Ruby4Lich5\X.X.X\bin may be set to run in compatibility mode for windows 7.  On an ARM Mac running parallels, this may causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file could fixe this issue if it was enabled.&lt;br /&gt;
&lt;br /&gt;
The following steps are to be done AFTER you&#039;ve successfully installed Wrayth/WizardFE and can login normally without Lich5 on the machine. Once you&#039;ve done that and can successful connect normally, then follow these steps:&lt;br /&gt;
# Download and install [https://github.com/elanthia-online/lich-5/releases/latest/download/Ruby4Lich5.exe Ruby4Lich5.exe Installer] and use default options presented during install&lt;br /&gt;
# Double click the lich.rbw file that is now located in the extracted Lich5 location you did above. Login and play as usual.&lt;br /&gt;
&lt;br /&gt;
==Chromebook &amp;amp; Debian variants==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-debian&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-debian&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Debian/Chromebooks. Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1.&#039;&#039;&#039; &lt;br /&gt;
Update the list of available software and make sure some requirements are installed:&lt;br /&gt;
&amp;lt;!-- don&#039;t think I&#039;m gonna include this stuff but might as well not delete it.&lt;br /&gt;
:&amp;lt;small&amp;gt;sudo: as a super-user&amp;lt;/small&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;apt-get: Debian&#039;s software repository&amp;lt;/small&amp;gt;&lt;br /&gt;
::&amp;lt;small&amp;gt;-y: answer all questions yes&amp;lt;/small&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get -y update&lt;br /&gt;
sudo apt-get -y install autoconf bison build-essential curl libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libsqlite3-dev git unzip libcairo2-dev libgirepository1.0-dev libgtk-3-dev gobject-introspection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing Ruby installation rather than installing from scratch, skip steps 2, 3, and 4.  Instead, update your ruby-build with the following command, and then proceed to Step 5.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2.&#039;&#039;&#039;&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3.&#039;&#039;&#039;&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4.&#039;&#039;&#039;&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Arch Linux &amp;amp; Arch-based distributions==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-arch&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-arch&amp;quot;&amp;gt;&lt;br /&gt;
The following steps should install Lich and Profanity for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth).&lt;br /&gt;
&lt;br /&gt;
Update the system and install required dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pacman -Syu&lt;br /&gt;
sudo pacman -S --needed base-devel openssl libyaml readline zlib ncurses libffi gdbm sqlite git unzip curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, a Ruby version manager. Add it to the &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the shell&#039;s launch script now to enable those two changes and get rbenv working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the tools to let rbenv install Ruby on its own, then install Ruby 3.4.5 and set it to be our default version of Ruby system-wide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.5 -v&lt;br /&gt;
rbenv global 4.0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;gem: --no-document&amp;quot; &amp;gt; ~/.gemrc&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the &#039;&#039;&#039;[[Profanity | Profanity FE]]&#039;&#039;&#039; page for initial configuration and additional instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fedora==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-fedora&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-fedora&amp;quot;&amp;gt;&lt;br /&gt;
Currently supported versions of Fedora&lt;br /&gt;
* 41 uses Ruby 3.3&lt;br /&gt;
* 42 uses Ruby 3.4&lt;br /&gt;
* 43 uses Ruby 3.4&lt;br /&gt;
All of which are currently compatible with Lich 5.7.0 or higher.&lt;br /&gt;
&lt;br /&gt;
1. Update The Base Installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf -y update&lt;br /&gt;
$ sudo dnf -y install vim git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Install required Ruby and Development packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo dnf install -y autoconf bison cairo-devel curl gcc gdbm gdbm-devel gdk-pixbuf2-devel glib2-devel \&lt;br /&gt;
gobject-introspection-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Install Lich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
curl -L &amp;quot;https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip&amp;quot; -o temp.zip &amp;amp;&amp;amp; unzip temp.zip -d ./ &amp;amp;&amp;amp; rm temp.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Tell Ruby not to create documentation for its gems (plugins/packages) unless asked, because it takes a long time and they are available online. Then install the dependencies for Lich and Profanity using Ruby&#039;s Gemfile that in included with Lich-5 now by using `bundle install` as shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Lich5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5a. Profanity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5b. Warlock:&lt;br /&gt;
download from https://sproctor.github.io/warlock3/download.html&lt;br /&gt;
run lich the normal way with ruby&lt;br /&gt;
&amp;lt;pre{{log2|margin-right=35%}}&amp;gt;&lt;br /&gt;
ruby ~/lich5/lich.rbw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
use use your login information with these settings to use lich launcher https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Popular Scripts=&lt;br /&gt;
{{#section:Lich:Script Repository|popularscripts}}&lt;br /&gt;
&lt;br /&gt;
=Ecosystem Information=&lt;br /&gt;
&lt;br /&gt;
* DragonRealms Variant - [https://elanthipedia.play.net/Lich_script_repository#Setup_and_Installation Setup and Install instructions]&lt;br /&gt;
&lt;br /&gt;
=Lich Changelog=&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-changelog&amp;quot; style=&amp;quot;font-size:16px;overflow:auto;color:#0000FF&amp;quot;&amp;gt;[Click to Expand]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-changelog&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* util.rb only show gem installing debug messaging if gem mis… (#1131)&lt;br /&gt;
* add --gs and --dr, refactor argv_options to helpers (#1133)&lt;br /&gt;
* fix multiple custom entries, improvements to yaml save (#1134)&lt;br /&gt;
* login_tab_utils.rb expand helper text show Warlock (#1135)&lt;br /&gt;
* update CLI for YAML security signature, add auto-convert fo… (#1136)&lt;br /&gt;
* remove password parameter from debug logging in all cases (#1137)&lt;br /&gt;
* reduce minimum GUI window footprint for non-tabbed view (#1138)&lt;br /&gt;
* remove double save in YAML to preserve yaml.bak integrity (#1139)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* stash.rb additional improvements (#1132)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* force system gem install if RubyGems fails (#1126)&lt;br /&gt;
* gui_login prevent destroying window if already destroyed (#1127)&lt;br /&gt;
* add window size / position saves to login GUI (#1128)&lt;br /&gt;
* non tabbed saved entries in reduced button / font size (not… (#1129)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* account manager sorting GUI fix (#1123)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* install_gem_requirements update available gems after install (#1120)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* password_cipher.rb upcase account_name for key (#1118)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* validator.rb change sleep to should_sleep named param (#1116)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* add base stats capture from &#039;info full&#039; command (#1115)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.13.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Refocus Frontend (#960)&lt;br /&gt;
* socket configurator to better guard TCPSocket (#976)&lt;br /&gt;
* add simplified DB maintenance (#991)&lt;br /&gt;
* TextStripper module support for XML, HTML, Markdown (#1055)&lt;br /&gt;
* Login modernization and refactor to yaml (#1063)&lt;br /&gt;
* Ruby Memory Releaser module (#1066)&lt;br /&gt;
&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* support meta:trashcan tag for DRCI.dispose_trash (#966)&lt;br /&gt;
* Add GameObj.inv support for DR items (#1080)&lt;br /&gt;
* DRCS allow custom adjective for summoned weapons (#1088)&lt;br /&gt;
* DRParser support for new exp window xml stream elements (rested exp, tdps, favors) (#1104)&lt;br /&gt;
&lt;br /&gt;
### Features (gs)&lt;br /&gt;
* Add Armaments (Weapon, Armor, and Shield) Module (#911)&lt;br /&gt;
* add creature module, including Hinterwilds creatures (#1002)&lt;br /&gt;
* Creature module combat tracking (#1003)&lt;br /&gt;
* track time of last total_experience record (#1030)&lt;br /&gt;
* add Injured class for checking ability to perform actions (#1035)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* map dijkstra optimization (#1061)&lt;br /&gt;
* update.rb keep script/data file incase of error on update (#1070)&lt;br /&gt;
* ensure proxy path is set for non-destructive array write-th… (#1073)&lt;br /&gt;
* [lib][global-defs] - move update (#1079)&lt;br /&gt;
* GameObj force new objects ID to be string (#1087)&lt;br /&gt;
* xmlparser.rb gate GSL exits sending behind @send_fake_tags (#1103)&lt;br /&gt;
* change Hash[] pair key conversion to use to_h for Ruby 4.0 (#1108)&lt;br /&gt;
* move gui-login.rb to Ruby standard gui_login.rb (#1111)&lt;br /&gt;
* update location for currency and move game-loader.rb to Ruby standard gameloader.rb (#1112)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRCA allow custom spell prep messaging (#1089)&lt;br /&gt;
* Update Slackbot error handling, and lnet management (#1091)&lt;br /&gt;
* Fix exp mods parsing for DR (#1102)&lt;br /&gt;
* equipmanager.rb support for custom messaging in forester&#039;s longbow (#1105)&lt;br /&gt;
* Fix hang in equipment manager when game doesn&#039;t respond to commands (#1110)&lt;br /&gt;
&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* Infomon additional CHE resign regex (#1067)&lt;br /&gt;
* Resource tracking for sorcerer shadow essence (#1085)&lt;br /&gt;
* cman.rb add hamstring regex for already lying down target (#1090)&lt;br /&gt;
* cman.rb hamstring regex update when can&#039;t perform on target (#1092)&lt;br /&gt;
* Bounty parser.rb FWI guard regex update (#1096)&lt;br /&gt;
* currency.rb track gold (#1109)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.12&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (general)&lt;br /&gt;
    Update module strip markdown comments (#1056)&lt;br /&gt;
    Vars/UserVars module fixes and corrections (#1057)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    Infomon parse fix for singular currency (#1051)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes (dr)&lt;br /&gt;
    add bput match for system updates preventing actions (#1034)&lt;br /&gt;
    drdefs.rb npc parsing (#1038)&lt;br /&gt;
    Fix container reference in get_item_from_eddy_portal method (#1039)&lt;br /&gt;
Bug Fixes (gs)&lt;br /&gt;
    bounty location regex needs to match &amp;quot;under&amp;quot; (#1037)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.10&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: games.rb catch additional error for nested single/double quotes (#1031)&lt;br /&gt;
    dr: change keys for DR_SKILLS_DATA[:guild_skill_aliases] to be strings instead of symbols (#1032)&lt;br /&gt;
    gs: Bounty parser for SG npcs matching (#1027)&lt;br /&gt;
    gs: match READY/STOW items with a/an/some inside the link (#1026)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.9&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    gs: StowList/ReadyList reset bug if non-default keys added #1019&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Bug Fixes&lt;br /&gt;
    all: script.rb show custom at script exit as well (#993)&lt;br /&gt;
    all: Updated update.rb for single trunk and release please (#1001)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.7&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): ensure updates do not target detached proxy views #990 &lt;br /&gt;
fix(gs): bounty parser and move fixes for sailor&#039;s grief #987 &lt;br /&gt;
fix(gs): Infomon xmlparser.rb Ready/Stow fix for LONG before exist #988 &lt;br /&gt;
fix(gs): gameobj.rb for Sailor&#039;s Grief ghostly/boss/guild tentacles #989 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): settings.rb update to preserve root of derived views #975&lt;br /&gt;
fix(all): show custom in various script output when custom script #967&lt;br /&gt;
fix(dr): drparser.rb update for PlayedSubscription #983&lt;br /&gt;
fix(gs): include store location for ReadyList #977&lt;br /&gt;
fix(gs): infomon parser.rb update for ACCOUNT output varies #979&lt;br /&gt;
fix(gs): global_defs.rb move def update for Hive traps #980&lt;br /&gt;
fix(gs): activespell.rb prevent removal of RF Penalty #981&lt;br /&gt;
fix(gs): add .compact to input of Disk.find_by_name #982&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.5&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): update.rb word boundary for abbreviations #971&lt;br /&gt;
fix(dr): equipmanager.rb Fix for changed game output. #969&lt;br /&gt;
fix(dr): common-arcana.rb Regalia fix for changed game output. #970&lt;br /&gt;
fix(dr): common-items.rb Fix for changed inventory command output #973&lt;br /&gt;
fix(gs): StowList missing space in capture in xmlparser.rb #963&lt;br /&gt;
fix(gs): stowlist.rb wait for RT when issuing check #964&lt;br /&gt;
fix(gs): readylist.rb wait for RT when issuing check #965&lt;br /&gt;
fix(gs): Bounty heirloom return msg&#039;ing update #972&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
build(all): installer.yml use windows-2022 #950&lt;br /&gt;
fix(all): restore Wrayth / Wizard script execution ability #952&lt;br /&gt;
fix(all): database_adapter.rb error handling improvement #956&lt;br /&gt;
fix(dr): common-items.rb wear/remove messaging additions #949&lt;br /&gt;
fix(dr): games.rb - ignore UIDs for Frostbite mapping #951&lt;br /&gt;
fix(dr): map_dr.rb prevent inadvertent settings changes #958&lt;br /&gt;
fix(gs): GameObj targets for new Sailor&#039;s Grief tentacle npc #948&lt;br /&gt;
fix(gs): map_gs.rb remove delete_if to prevent bad settings #957&lt;br /&gt;
fix(gs): weapon.rb assault break if no targets #962&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(all): limitedarray.rb max_size increase #946&lt;br /&gt;
fix(all): uservars.rb update for vars method missing #940&lt;br /&gt;
fix(dr): drparser.rb to set ShowRoomID to on if turned off #945&lt;br /&gt;
fix(gs): change namespace accessors to Ruby 2.6 compatible #944&lt;br /&gt;
fix(gs): infomon state reset on status prompt #943&lt;br /&gt;
fix(gs): Societies to check membership for various methods #942&lt;br /&gt;
fix(gs): standardize warcry.rb to match other PSMS #941&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fix(gs): infomon parser.rb for profile full name matching #938&lt;br /&gt;
fix(gs): force PROFILE FULL to sync CHE info for infomon #937&lt;br /&gt;
fix(dr): Tighten checks on releasing invisibility for thieves #936&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): gameobj.rb - add type? method for explicit type check #928&lt;br /&gt;
- fix(all): messaging.rb encoding issue #933&lt;br /&gt;
- fix(gs): Various CMan cost corrections #932&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.12.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- feat(all): settings.rb - proposal for sequel based Settings #591, #875, #889, #896, #927&lt;br /&gt;
- feat(all): util.rb add Ruby gem install helper method #861&lt;br /&gt;
- feat(all): messaging.rb add cmd link method #866&lt;br /&gt;
- refactor(all): games.rb modernization #849, #882, #924&lt;br /&gt;
- fix(all): add class extensions #800&lt;br /&gt;
- fix(all): lich.rb deprecated FE message #852&lt;br /&gt;
- fix(all): messaging.rb fix XML encoding for wizard and avalon #853&lt;br /&gt;
- fix(all): lich.rb class variable not initialized #855&lt;br /&gt;
- fix(all): log.rb force msg to String for regexp comparison #856&lt;br /&gt;
- fix(all): global_defs.rb bug in fput #864&lt;br /&gt;
- fix(all): messaging.rb xml_encode mono method msg #868&lt;br /&gt;
- fix(all): script.rb class to is_a? checks #878&lt;br /&gt;
- fix(all): gameobj.rb deeper lookup #885&lt;br /&gt;
- fix(all): messaging.rb debug not compared to falseclass #887&lt;br /&gt;
- fix(all): change class to is_a? checks #91-3&lt;br /&gt;
- fix(all): Util.issue_command allow single line captures #918&lt;br /&gt;
- fix(dr): drparser.rb casing for Premium status check #842&lt;br /&gt;
- fix(dr): map_dr.rb Don&#039;t assign UID of zero to rooms #844&lt;br /&gt;
- fix(dr): drparser.rb add $last_logoff tracking #851&lt;br /&gt;
- fix(dr): update message patterns in common-items #859&lt;br /&gt;
- fix(dr): add moon_visible?(moon) convenience method to common-moonmage #860&lt;br /&gt;
- fix(dr): exp mods output is not enclosed in preset xml tags anymore #870&lt;br /&gt;
- fix(dr): update.rb beta send validation for genie lich char #880&lt;br /&gt;
- fix(dr): Update regex and parsing for active spells #894&lt;br /&gt;
- fix(dr): add &#039;You scoop&#039; match pattern to common-items #900&lt;br /&gt;
- fix(dr): add missing match patterns #901&lt;br /&gt;
- fix(dr): common-items: add and fix match strings #904&lt;br /&gt;
- fix(dr): Add missing matches for common-items #905&lt;br /&gt;
- fix(dr): Release Khri Vanish if Thief, when going visible #906&lt;br /&gt;
- fix(dr): Fix race condition when clearing and repopulating XMLData.dr_active_spells #907&lt;br /&gt;
- fix(dr): Fix SLS release pattern #908&lt;br /&gt;
- fix(dr): resolve race condition in DR crafting_magic_routine #914&lt;br /&gt;
- fix(dr): xmlparser.rb - Fix XMLData.dr_active_spells race condition #915&lt;br /&gt;
- fix(dr): xmlparser.rb - Clear out spells properly #916&lt;br /&gt;
- fix(dr): drparser.rb update for Platinum account status #922&lt;br /&gt;
- feat(gs): gameobj.rb allow for custom gameobj data #848&lt;br /&gt;
- feat(gs): PSMS updates, including CMan.use #865, #874, #881, #890, #899&lt;br /&gt;
- feat(gs): ReadyList &amp;amp; StowList classes for item tracking #884&lt;br /&gt;
- feat(gs): Breakout and Buildout Societes #919&lt;br /&gt;
- fix(gs): infomon parsing for CHE membership #841&lt;br /&gt;
- fix(gs): map_gs.rb for no UID when hexdigest used #843&lt;br /&gt;
- fix(gs): warcry.rb yowlp :buff to string instead of regexp #847&lt;br /&gt;
- fix(gs): group.rb multiple corrections #850, #869, #883&lt;br /&gt;
- fix(gs): Bounty parser.rb fix for HW &amp;amp; KF guard return #862&lt;br /&gt;
- fix(gs): Bounty task.rb fix for assigned? and Ruby 2.6 #863&lt;br /&gt;
- fix(gs): stash.rb stale sheaths recheck #867&lt;br /&gt;
- fix(gs): allow spell.rb casting to take a force_stance parameter #902&lt;br /&gt;
- fix(gs): update Infomon parsing for new ACCOUNT output format #903&lt;br /&gt;
- fix(gs): PSMS cost for multiple cost types &amp;amp; add Excoriate feat #912&lt;br /&gt;
- fix(gs): Feat excoriate regex correction #920&lt;br /&gt;
- fix(gs): weapon PSM affordable check against Glorious Momentum #926&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- fix(all): restore @theme_state and add to CLI capability #795&lt;br /&gt;
- fix(all): retire gtk2 monkey patch for gtk3 #823&lt;br /&gt;
- fix(all): games.rb XMLData.name wait till both not NIL and not EMPTY #826&lt;br /&gt;
- fix(all): standardize xmlparser game instance #827&lt;br /&gt;
- fix(all): games.rb fix multiple single and double quote in XML #832,836,837&lt;br /&gt;
- fix(dr): games.rb - optional hide Room Title display of Real IDs with FLAG on #782&lt;br /&gt;
- chore(dr): common-moonmage - refactor of peer_telescope #783&lt;br /&gt;
- fix(dr): move HMR load to common before for dragonrealms #784&lt;br /&gt;
- fix(dr): common-crafting.rb minor edit to add &amp;quot;You tuck&amp;quot; #787&lt;br /&gt;
- fix(dr): common-arcana.rb - remove unecessary pause from discern code #792&lt;br /&gt;
- fix(dr): drparser.rb Restore Premium status checking #834&lt;br /&gt;
- fix(gs): migrate PSMS.name_normal to Lich::Util.normalize_name #790,833&lt;br /&gt;
- fix(gs): add Char.che to know current character&#039;s CHE #791&lt;br /&gt;
- fix(gs): FEAT and Infomon module parsing of new Covert Art feats. #796&lt;br /&gt;
- fix(gs): add Currency.gemstone_dust and fix redsteel mark capture #797&lt;br /&gt;
- fix(gs): FEAT Covert Arts colon normalization and stamina costs #799&lt;br /&gt;
- fix(gs): escape dash in regex for HouseCHE #824&lt;br /&gt;
- fix(gs): disk.rb comparison helpers #828&lt;br /&gt;
- fix(gs): allow for Group.disks to show self disk in array #829&lt;br /&gt;
- fix(gs): feat.rb Covert Arts throw poison costs 15 stam #830&lt;br /&gt;
- fix(gs): add missing Feat.use ability #831&lt;br /&gt;
- fix(gs): multiple CritRanks updates #801-822&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.11.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
- [all] - chore: Namespace &amp;amp; File Path Updates #713&lt;br /&gt;
- [all] - [argv_options.rb] bugfix: correct darkmode to work via CLI #693&lt;br /&gt;
- [all] - [games.rb] feat: make show Room Exits of non-StringProc/Obvious Exits toggable for all games #699&lt;br /&gt;
- [all] - [games.rb] feat: toggleable display of StringProcs with clickable links #751&lt;br /&gt;
- [all] - [gui-manual-login.rb] fix: change label to Wrayth #720&lt;br /&gt;
- [all] - [gui-saved-login.rb] fix: update Stormfront label #721&lt;br /&gt;
- [all] - [update.rb] fix: purge old LIB folder prior to update release #729&lt;br /&gt;
- [all] - [util.rb] bugfix: allow issue_command to use fput or put #715&lt;br /&gt;
- [all] - [xmlparser.rb] feat: add XMLData.room_name attribute #685&lt;br /&gt;
- [all] - [main.rb] fix: create session file in regular connect method #733&lt;br /&gt;
- [all] - [init.rb] bugfix: error for Windows DISPLAY variable #735&lt;br /&gt;
- [all] - [main.rb] fix: Mudlet support #736&lt;br /&gt;
- [all] - [wine.rb] fix: add --no-wine CLI flag prevent WINE startup&lt;br /&gt;
- [all] - [init.rb] fix: add --no-gtk CLI flag prevent GTK3 gem load&lt;br /&gt;
- [dr] - [games.rb] feat: DRinfomon and common files as core lich libraries #686&lt;br /&gt;
- [dr] - [games.rb] chore: add DR requires here #690&lt;br /&gt;
- [dr] - [games.rb] fix: add Room# display for DR #697&lt;br /&gt;
- [dr] - [games.rb] bugfix: Genie FE real ID#s not supported, hide by default #728&lt;br /&gt;
- [dr] - [drdefs.rb] bugfix: fix for Shadow Servants #710&lt;br /&gt;
- [dr] - [map_dr.rb] fix: cleanup and support for UIDs #719&lt;br /&gt;
- [dr] - [xmldata.rb] bugfix: add support for DR Room IDs #716&lt;br /&gt;
- [dr] - [xmlparser.rb] feat: XMLData - adding dr_active_spells #691&lt;br /&gt;
- [gs] - [games.rb] bugfix: support for pre/post room name txt #683&lt;br /&gt;
- [gs] - [group.rb] chore: update to account for hold #701&lt;br /&gt;
- [gs] - [resource.rb] feat: add additional tracking of covert art charges #714&lt;br /&gt;
- [gs] - [spell.rb] bugfix: Spell.affordable? 515 release #687&lt;br /&gt;
- [gs] - [stash.rb] bugfix: sheath_bags when not found #694&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: missing real ID in nav #684&lt;br /&gt;
- [gs] - [xmlparser.rb] bugfix: Claim module obvious hiding #717&lt;br /&gt;
- [gs] - [sk.rb] feat: Self-Knowledge functionality in core #748&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: Simu XML breaking change RoomID #679&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [crit_tables] fix: CritRanks regex fixes (multiple files and changes) #671&lt;br /&gt;
-o- [GS4] - [spellsong.rb] fix: Correct Spellsong sync method #674&lt;br /&gt;
-o- [GS4] - [parser.rb] fix: thorn status regex correction #673&lt;br /&gt;
-o- [All] - [xmlparser.rb] fix: Split out if elif block to account for DR having multiple… #670&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: percentconcentration #676&lt;br /&gt;
-o- [All] - [global_defs.rb] fix: update move failure message to handle attack and casting #667&lt;br /&gt;
-o- [All] - [init.rb] fix: update required ruby check messaging #669&lt;br /&gt;
-o- [All] - [sessionvars.rb] feat: new module SessionVars for non-persistent variable storage #666&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [DR] - [games.rb] bugfix: tweak XML rewrite section #662&lt;br /&gt;
-o- [GS4] - [crit_tables] bugfix: additional crit table regex corrections #663&lt;br /&gt;
-o- [GS4] - [ascension.rb] bugfix: add new Transcend Destiny to lookups #661&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: regexp escape txt #660&lt;br /&gt;
-o- [GS4] - [disruption_critical_table.rb] Bugfix in regex #659&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [games.rb] bugfix: prevent race condition in games thread #656 &lt;br /&gt;
-o- [All] - [init.rb] bugfix: address WINE variance between linux / installs #655&lt;br /&gt;
-o- [GS4] - [gs][stash.rb] bugfix: wear code improvement #657 &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.10.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [main.rb] bugfix: correct encoding for WizardFE PR #640&lt;br /&gt;
-o- [All] - [games.rb] bugfix: correct logic for room detection when using CLI --start-scripts PR #639&lt;br /&gt;
-o- [All] - [DB_Store.rb] feat: add direct support for Simu RENAME and CHANGE PROF PR #633&lt;br /&gt;
-o- [All] - chore: breakout code to individual files for easier management PR #617&lt;br /&gt;
-o- [All] - [lich.rbw] chore: add deprecated msg to old Settings/GameSettings/CharSettings methods PR #589&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add new --dark-mode CLI option PR #583&lt;br /&gt;
-o- [All] - [global_defs.rb] bugfix: monsterbold fix for additional clients PR #581&lt;br /&gt;
-o- [All] - [update.rb] feat: update core scripts from source on Lich5 update/install PR #579&lt;br /&gt;
-o- [All] - [log.rb] feat: add new Log module copied from Olib PR #577&lt;br /&gt;
-o- [All] - [numeric.rb] feat: add days/hours/minutes/seconds methods to numerics PR #623&lt;br /&gt;
-o- [All] - [messaging.rb] feat: WizardFE Voln window support #647&lt;br /&gt;
-o- [All] - [init.rb] bugfix: WINE entries for Linux / MacOS #649&lt;br /&gt;
-o- [DR] - [lich.rbw] bugfix: cleanup downstream hook exclusions PR #593&lt;br /&gt;
-o- [DR] - [global_defs.rb] bugfix: missing climb failure message PR #592&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: show non-standard Effects in `;magic` output PR #641&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: fix WARCRY duplication results / add WALL OF THORNS effect detection PR #634 / PR #637&lt;br /&gt;
-o- [GS4] - [critranks.rb] feat: add critical rank resolution tables and methods PR #625&lt;br /&gt;
-o- [GS4] - [effects.rb] bugfix: to support regex for active? &amp;amp; time_left PR #590&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: add implicit NPC death monitoring PR #588&lt;br /&gt;
-o- [GS4] - [infomon.rb] bugfix: change PSM to be stored as type.mnemonic PR #587&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: strip_xml multiline fix PR #584&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: fix sack detection to use Stash.container(param) PR #578&lt;br /&gt;
-o- [GS4] - [spell.rb] feat: Spell.after_stance #644 &lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: for Claim module #646&lt;br /&gt;
-o- [GS4] - [infomon] feat: track Voln favor via RESOURCE output #648&lt;br /&gt;
-o- [GS4] - [gameobj.rb] feat: add Bandit hidden target API #650&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: proper leader detection from GROUP output&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back depracted Char.maxvitals with msging to switch to new Char.max_vitals methods&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [GS4] - [group.rb] bugfix: group.check syntax change&lt;br /&gt;
-o- [GS4] - [spell.rb] bugfix: affordable? Char.mana parenthesis logic&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.9.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] -  feat: sqlite3 gem syntax code cleanup PR#553&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: remove unused Setting, GameSetting, CharSetting PR#542&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: scrub login key from error message popups PR#548&lt;br /&gt;
-o- [All] - [messaging.rb] bugfix: color mismatch WizardFE white txt PR#554&lt;br /&gt;
-o- [All] - [lich.rb] feat: add new Lich.deprecated method to aid in deprecating older API calls PR#523&lt;br /&gt;
-o- [GS4] - [char.rb] feat: log method_missing calls PR#552&lt;br /&gt;
-o- [GS4] - [char.rb] feat: add missing global_def related methods PR#523&lt;br /&gt;
-o- [GS4] - [global_defs.rb] feat: deprecate various Char module methods PR#523&lt;br /&gt;
-o- [GS4] - [spellsong.rb] bugfix: cache spellsong duration calc PR#551&lt;br /&gt;
-o- [GS4] - [effects.rb] feat: Effects module breakout PR#549&lt;br /&gt;
-o- [GS4] - [group.rb][disk.rb] feat: Group &amp;amp; Disk class PR#532&lt;br /&gt;
-o- [GS4] - [activespell.rb] feat: add duration change messaging, off by default, see ;help for details PR#487&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - [lich.rbw] feat: add Game:Character to debug log file ouput&lt;br /&gt;
-o- [All] - [init.rb] feat: add milliseconds to debug filename&lt;br /&gt;
-o- [GS4] - [lich.rbw] bugfix: reorder parsing of $SERVERSTRING to avoid certain conflicts&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: update for new Empath resource and sleep/bind messaging&lt;br /&gt;
-o- [GS4] - [status.rb] bugfix: bound? calmed? and sleeping? support for spellnames flag being off&lt;br /&gt;
-o- [GS4] - [xmlparser.rb] bugfix: additional creature dying messaging to check against XML dead not being sent&lt;br /&gt;
-o- [GS4] - [gameobj.rb] bugfix: remove sorcerer arms and animates from GameObj.targets&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.8.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- [All] - Ruby 3.3 compatibility&lt;br /&gt;
-o- [All] - [lich.rbw] feat: adds .sources for up/downstream hooks&lt;br /&gt;
-o- [All] - [lich.rbw] bugfix: don&#039;t use WINE for custom frontends&lt;br /&gt;
-o- [GS4] - [char.rb] bugfix: add back Char.stance&lt;br /&gt;
-o- [GS4] - [claim.rb] feat: new module and associated changes to xmlparser&lt;br /&gt;
-o- [GS4] - [experience.rb] feat: percent experience options&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow for negative TNL exp value&lt;br /&gt;
-o- [GS4] - [parser.rb] bugfix: allow hyphenated last names in character names&lt;br /&gt;
-o- [GS4] - [parser.rb] feat: update resource matching for new Bard service&lt;br /&gt;
-o- [GS4] - [stash.rb] bugfix: catch more shield removal messages&lt;br /&gt;
-o- [GS4] - [util.rb] bugfix: underscore issue for PSMs&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.7.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Supports Ruby 3.2 - security enhancements and huge speed improvements for regex&lt;br /&gt;
-o- New libraries/modules/classes: Account, HMR (Hot Module Reloading)&lt;br /&gt;
-o- GS4 Infomon now baked into Lich5 as a library, no more need to run standalone script&lt;br /&gt;
-o- New GS4 libraries/modules/classes: Ascension, Bounty, Currency, Experience, Resources, Society, Status, Warcry&lt;br /&gt;
-o- Updates to existing libraries/modules/classes: Armor, Util, Weapon, Spell, GameObj, Messaging&lt;br /&gt;
-o- Several Bugfixes for lots of things&lt;br /&gt;
-o- Lots of code cleanup&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML errors&lt;br /&gt;
-o- Adds the DR Plat instance for Frostbite FE&lt;br /&gt;
-o- Adds ‘ball’ as the noun used for ‘ball and chain’&lt;br /&gt;
-o- Adds the movement result ‘slip in the mud and fall flat’&lt;br /&gt;
-o- Corrects stamina cost for the feature Dispel Magic&lt;br /&gt;
-o- Plus all the latest script updates from Elanthia-Online!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;5.6.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Fix for XML to limit login errors (DR)&lt;br /&gt;
-o- Fix for XMLData.active_spells to properly register wizard &#039;recovery&#039; spell cooldowns&lt;br /&gt;
-o- Messaging updates to remove error in Wizard FE encodings&lt;br /&gt;
-o- Corrects for error in detecting PSM skill changes (cman) via warrior / rogue guild lessons&lt;br /&gt;
-o- Deprecates LNet script from master repository&lt;br /&gt;
-o- Miscellaneous small bug squashing&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.6.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- (DragonRealms) Support for Genie and Frostbite frontends&lt;br /&gt;
-o- (GemStone) Changed methods to improve ;go2 speed and reduce lich.db3 calls&lt;br /&gt;
-o- (GemStone) Updates to support silver_count function&lt;br /&gt;
-o- (Both) Changed method for updating lich ecosystem&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.5.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for DragonRealms&lt;br /&gt;
-o- Updated support for scripts like BigShot&lt;br /&gt;
-o- Providing the LichID and UID on Profanity&lt;br /&gt;
-o- Spell.force_incant, .force_channel, and .force_evoke&lt;br /&gt;
-o- Standardized message method for script authors&lt;br /&gt;
-o- Sundry small improvements / fixes and changes&lt;br /&gt;
-o- And the creme de la creme - a custom directory&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.4.0&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Simu Room IDs (formally called &#039;unique ID&#039; or &#039;uid&#039; for Lich) added to Map, mapDB where known, and ;go2 for navigation (courtesy Xanlin and with our thanks!) ;go2 u7120 for all you ex-GMs out there. &lt;br /&gt;
-o- Room titles will now display the Lich ID and / or the UID for the room based on user selections - default is on for both, and enabled / disabled via Lich.display_lichid or Lich.display_uid toggles that can be set to on / off or true / false. (;e Lich.display_lichid=true/false and ;e Lich.display_uid=true/false) You can remove that rnum from your autostart now! To gain the benefit of the UID deployment, be sure to ;repo download-mapdb&lt;br /&gt;
-o- REQUESTS: Drop 5 minute timeout function from Lich&lt;br /&gt;
-o- waitrt? and waitcastrt? will still pause activities, but will return TRUE or FALSE in keeping with the Ruby functionname? tradition (no more failing to get a weapon out due to RT from climbing!)&lt;br /&gt;
-o- empty_hands and fill_hands will now check to see if the character is in roundtime before trying to put away or retrieve held items&lt;br /&gt;
-o- Infomon received an update that keeps spell timers in sync with the information received from the server - no more need to immediately do a spell active in game to get the right times to display for various legacy scripts and ;magic after visiting the invoker or using an SK item&lt;br /&gt;
-o- Lich now provides a facility to get current coins on the character that is a bit more agnostic to data changes from Simu - Lich::Util.silver_count&lt;br /&gt;
-o- Various other small tidbits to help ease maintenance and future development&lt;br /&gt;
-o- PLEASE NOTE:  This update is required for the newest Bigshot (released today!) and for future eloot and eherbs scripts (release RSN)&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.3.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Added support for Wrayth (renamed Stormfront) installations &lt;br /&gt;
-o- Converted Linux | WINE login methods to &#039;method 0&#039;, does not use Simu launcher&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.2.1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Support for STOWing items irrespective of special item scripts&lt;br /&gt;
-o- Improved query support for Effects and CMans&lt;br /&gt;
-o- Fix Lich bug to respect the &#039;groupmovement&#039; flag in game&lt;br /&gt;
-o- Fix Lich round time calculations (more aggressive timing)&lt;br /&gt;
-o- Dark Mode is now a thing&lt;br /&gt;
-o- Lich4 Style GUI layout available&lt;br /&gt;
-o- Several file location changes to support future code change efforts&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.19&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Benefit: Monks with Mental Acuity (all 3 of you) rejoice - stamina casting!&lt;br /&gt;
-o- Benefit: PSM3 included, no charge. No hair remaining, either!&lt;br /&gt;
-o- Benefit: Ok, stay seated: Some of your various SF spell duration windows may work. . . better? Yes, not perfect, but better. No pictures, please!&lt;br /&gt;
-o- Updated infomon that properly detects Cloak of Shadows on those pesky sorcerers, and the Raise Dead Cooldown periods for those wondrous clerics.&lt;br /&gt;
-o- A new update process for Lich 5 - tired of having to download that script over and over just to update? Get yourself a copy of lich5-update.lic. Note, if you already have it, you&#039;re set! If not - ;jinx script install lich5-update --repo=elanthia-online&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.0.11&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
-o- Updated the method used to log onto SIMU servers.&lt;br /&gt;
-o- Added the Animalist item specifics to Lich5&#039;s empty and fill hands routines&lt;br /&gt;
-o- Improved Invoker messages for Avalon and Wizard FEs (no change for SF FE)&lt;br /&gt;
-o- Improved cleanup and store methods when player EXIT&#039;s or QUIT&#039;s game&lt;br /&gt;
-o- Crafted two new methods (stash_hands and equip_hands) for future script use&lt;br /&gt;
-o- Some behind-the-scenes cleanup to improve maintaining the Lich5 ecosystem&lt;br /&gt;
-o- Add Spell Active improvements&lt;br /&gt;
-o- Add PSM and Ranger improvements&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
* [[Mac Installation - Lich (software)]]&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
[[Category:New Player]]&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Mac_Installation&amp;diff=261250</id>
		<title>Lich:Software/Mac Installation</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software/Mac_Installation&amp;diff=261250"/>
		<updated>2026-07-19T20:50:41Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* The Process */ add ox gem, need to change whole page to use bundle install instead of gem install&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
To install Lich on newer versions of Mac OS, you will need a bit of familiarity with the Mac Terminal application. Some familiarity with Homebrew will help, although you should be able to follow the steps below without any prior knowledge of Homebrew.&lt;br /&gt;
&lt;br /&gt;
This guide will attempt to install Lich for the Avalon Front End only. The entire process will take 60-90 minutes to complete, but the time required will depend on how many prerequisites you need to install and how many errors you encounter. If you get stuck, see any errors or run into any problems, or for information about other front ends, please contact Doug (doug@play.net or Doug#6198 on Discord) for help. &lt;br /&gt;
&lt;br /&gt;
Please note that this guide will involve changing settings on your device for the technologies involved. You will need to decide whether it’s safe for you to customize these tools to work with Lich. If you have no idea what any of these technologies are, then you probably aren’t using them for any other purpose, but proceed at your own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Before You Start==&lt;br /&gt;
&lt;br /&gt;
You will need to install a few things.&lt;br /&gt;
&lt;br /&gt;
# Install the [https://www.play.net/gs4/play/avalon-info.asp Avalon Front End] from the play.net site.&lt;br /&gt;
# Install [https://brew.sh Homebrew] by following the instructions at the Homebrew site. You will be asked to supply your sudo password at least once, and perhaps a couple of times through this process.&lt;br /&gt;
# The Hombrew setup will also install Apple&#039;s Command Line Tools.  You will be asked to accept the Apple license.&lt;br /&gt;
&lt;br /&gt;
When you are finished with these steps and Hombrew has installed, in the Terminal application you should run this command &amp;lt;code&amp;gt;brew doctor&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your system should respond with &amp;lt;code&amp;gt;Ready to brew&amp;lt;/code&amp;gt;.  If you get any other result, please seek assistance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Process==&lt;br /&gt;
&lt;br /&gt;
There are three general steps to installing all the packages and software needed to run Lich on Mac.&lt;br /&gt;
&lt;br /&gt;
* First we will install various packages through Homebrew.  This will include installing a different version of Ruby.  Apple&#039;s version of Ruby does not work well with Lich.&lt;br /&gt;
&lt;br /&gt;
* Second, we will install the gems in the new Ruby that we installed.&lt;br /&gt;
&lt;br /&gt;
* Finally, we will download and unzip the current Lich software so that we can run Lich.&lt;br /&gt;
&lt;br /&gt;
To get started, enter these commands in Terminal, one at a time, and press ENTER.  Allow the system to complete the command before moving on to the next one.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;brew install gtk+3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;brew install gobject-introspection&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;brew install rbenv&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;brew install adwaita-icon-theme&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;brew install openssl@3&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;brew upgrade ca-certificates&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to set up your SHELL environment to take advantage of these packages. &lt;br /&gt;
&lt;br /&gt;
Enter the following command to check your shell: &amp;lt;p&amp;gt;&amp;lt;code&amp;gt;echo $SHELL&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If the Terminal displays &amp;lt;code&amp;gt;/bin/bash&amp;lt;/code&amp;gt;, run the following commands: &amp;lt;p&amp;gt;&amp;lt;code&amp;gt;echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.bash_profile&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;echo &#039;if [ -z $DISPLAY ]; then export DISPLAY=:0.0; fi&#039; &amp;gt;&amp;gt; ~/.bash_profile&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;source ~/.bash_profile&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
* If the Terminal displays &amp;lt;code&amp;gt;/bin/zsh&amp;lt;/code&amp;gt;, run the following commands: &amp;lt;p&amp;gt;&amp;lt;code&amp;gt;echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;echo &#039;if [ -z $DISPLAY ]; then export DISPLAY=:0.0; fi&#039; &amp;gt;&amp;gt; ~/.zshrc&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;source ~/.zshrc&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This completes the installation of the core packages you will need.  Now we&#039;ll use rbenv to install the new Ruby.  You&#039;re welcome to select a Ruby version if you are comfortable with any particular one.&lt;br /&gt;
&lt;br /&gt;
Before we begin, let&#039;s check to be sure rbenv is working properly.  Enter this command in Terminal and press ENTER.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;rbenv versions&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should return one line that looks like &amp;lt;code&amp;gt;* system&amp;lt;/code&amp;gt;.  If you see that line, you can proceed.  If not, seek assistance.  If you are proceeding, then enter these commands in Terminal, one at a time, and press ENTER.  Allow the system to complete the command before moving on to the next one.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;rbenv install 4.0.5&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rbenv global 4.0.5&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;ruby -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If everything worked, the last line will return the version of Ruby that is currently active.  It should look something like this: &lt;br /&gt;
&amp;lt;code&amp;gt;ruby 4.0.5 (2026-05-20 revision 64336ffd0e) +PRISM [arm64-darwin25]&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
If you did not receive that line, or if you received a line like this: &lt;br /&gt;
&amp;lt;code&amp;gt;ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin22]&amp;lt;/code&amp;gt;&lt;br /&gt;
seek assistance (restarting the terminal you used to run commands up to this point may be required for `ruby -v` to show the proper, updated version of ruby).  &lt;br /&gt;
&lt;br /&gt;
The key is the ruby 4.0.5 part -&amp;gt; it needs to read 4.0.5&lt;br /&gt;
&lt;br /&gt;
If your version reflects 4.0.5, proceed to the next steps.  Enter this command and press ENTER.  Wait for the system to finish before moving on to the next.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;gem install ascii_charts concurrent-ruby curses ffi gtk3 jwt logger mechanize nokogiri os ox redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run a quick test to see if things work:&lt;br /&gt;
&lt;br /&gt;
* Run the following command to start the Ruby shell (you will see the command prompt change): &amp;lt;p&amp;gt;&amp;lt;code&amp;gt;irb&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
# Run this command to test if the first gem is working: &amp;lt;p&amp;gt;&amp;lt;code&amp;gt;require &#039;sqlite3&#039;&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;The system should respond &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
# Run this command to test if the second gem is working: &amp;lt;p&amp;gt;&amp;lt;code&amp;gt;require &#039;gtk3&#039;&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;This should also respond &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; in the Terminal. It might take a second or two.&amp;lt;/p&amp;gt;&lt;br /&gt;
# Now, run this command to return to your regular shell prompt: &amp;lt;p&amp;gt;&amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If all of these activities show the right results, the hard part is behind you.  Now  we simply need to get the Lich files:&lt;br /&gt;
# Download the [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip Lich5] files. (Windows/Mac all run the same files).&lt;br /&gt;
# Unzip it the file in your Downloads folder.  This will create a folder called Lich5.  Drag the Lich5 folder (not the zip file, the folder) to your Desktop.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;That&#039;s it!&#039;&#039;&#039;  You will start / access Lich and the game from the Terminal window.&lt;br /&gt;
&lt;br /&gt;
# Run the following command in the Terminal: &amp;lt;p&amp;gt;&amp;lt;code&amp;gt;ruby ~/Desktop/Lich5/lich.rbw&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
# After a couple seconds, you should see the Lich login window. &lt;br /&gt;
# Enter your login information, and click CONNECT.&lt;br /&gt;
# Select your character, select the Avalon Front End, and click PLAY. &lt;br /&gt;
# The game will start! You will see some new Lich-related text in the scroll, including a repository error (normal).&lt;br /&gt;
&lt;br /&gt;
Lich5 will then automatically start downloading the map database and associated image files for the game.  After that&#039;s complete, you&#039;re ready to play.  Good luck and have fun!&lt;br /&gt;
&lt;br /&gt;
==Lich for Other Front Ends==&lt;br /&gt;
&lt;br /&gt;
Don&#039;t care for Avalon as a front end?  There&#039;s a new offering in town.  Give this a look!&lt;br /&gt;
&lt;br /&gt;
https://warlockfe.github.io/&lt;br /&gt;
&lt;br /&gt;
Configuration for Mac (and other OS types) here:&lt;br /&gt;
&lt;br /&gt;
https://github.com/sproctor/warlock3/wiki/Lich-support&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* [[Lich scripting reference]]&lt;br /&gt;
* Playershops by Lich: https://ps.lichproject.org/&lt;br /&gt;
* Unofficial Support for Lich: http://forum.gsplayers.com/forumdisplay.php?f=104&lt;br /&gt;
* Popular Lich script thread: http://forum.gsplayers.com/showthread.php?81229-What-Lich-Scripts-Do-You-Regularly-Use&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_allmine&amp;diff=260482</id>
		<title>Lich:Script allmine</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_allmine&amp;diff=260482"/>
		<updated>2026-07-13T19:23:08Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Script Source */  switched to syntaxhighlight instead of pre tag for proper code highlights&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
[[File:Allmine.jpg|thumb|right|alt=Screenshot of script working in GSIV|Screenshot of script working in GSIV]]&lt;br /&gt;
{{script&lt;br /&gt;
|title = AllMine&lt;br /&gt;
|author = Triex&lt;br /&gt;
|compat = WR/WFE&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AllMine&#039;&#039;&#039; is a [[Lich]] script that guards a placed [[All Mine]] item (a basket, bowl, or similar placeable object like Dhu Kittens) against being accidentally left behind. All Mine items can only be picked up by their owner for a set window after being placed, but players who wander off or log out without retrieving one risk losing it once that window lapses. AllMine hard-blocks movement and logoff commands while the item is on the ground, and raises repeating alerts if it is left behind anyway.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Once armed, AllMine intercepts outgoing movement and quit/exit commands and refuses to send them to the game while the configured item remains on the ground in the current room. Sending the identical command a second time within 10 seconds overrides the block, so a deliberate decision to leave the item behind is still possible — the script only guards against accidental departures.&lt;br /&gt;
&lt;br /&gt;
If the item is left behind regardless (for example, if the block is paused, or the player disconnects), a background watchdog raises a repeating alert describing where the item was placed and when. The watchdog never attempts to retrieve the item automatically or move the character — it is alert-only by design.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Detects when the configured item is placed or dropped, and arms automatically&lt;br /&gt;
* Also arms if the item is already on the ground when the script starts, or if a held item transitions to the ground without a recognized message&lt;br /&gt;
* Hard-blocks compass movement, all documented GemStone IV movement styles (crawl, limp, march, sashay, skip, sneak, stride, stumble, trudge, prance, and normal walking), and QUIT/EXIT, while the item is on the ground&lt;br /&gt;
* 10-second identical re-send bypass, so a deliberate departure is one extra keystroke rather than a separate confirmation command&lt;br /&gt;
* Repeating alert (default every 15 seconds) if the item is left behind, silenced with a single command once acknowledged&lt;br /&gt;
* Recognizes when the item is recovered and lifts the block automatically&lt;br /&gt;
* Persists its state across a Lich restart, so a crash or disconnect while the item is deployed is not silent — the script announces the item&#039;s last known location on the next launch&lt;br /&gt;
* Works with any All Mine item by noun (bowl, basket, etc.) — not hard-coded to one item&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* [[Lich]] 5, with Ruby-based script support&lt;br /&gt;
* GemStone IV, any supported front end (tested on Wrayth)&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Save the script as &amp;lt;code&amp;gt;allmine.lic&amp;lt;/code&amp;gt; in the Lich scripts directory. No dependencies beyond core Lich5.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
Configure the noun of the item once, then start the monitor:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
;allmine set bowl&lt;br /&gt;
;allmine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The monitor must be running for the movement block and watchdog to be active. If the item&#039;s noun is changed while the monitor is already running, restart it so the detection patterns rebuild.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;allmine set &amp;lt;noun&amp;gt;&amp;lt;/code&amp;gt; || Configure the item&#039;s noun (for example, &amp;lt;code&amp;gt;bowl&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;allmine&amp;lt;/code&amp;gt; (no arguments) || Start the monitor&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;allmine arm&amp;lt;/code&amp;gt; || Manually arm on a matching item already on the ground in the current room&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;allmine status&amp;lt;/code&amp;gt; || Show current configuration and state&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;allmine ack&amp;lt;/code&amp;gt; || Silence a left-behind alert without clearing the deployed state&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;allmine clear&amp;lt;/code&amp;gt; || Manually clear the deployed state (for example, if the item was recovered by other means)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;allmine pause&amp;lt;/code&amp;gt; || Disable the movement block; the watchdog continues to run&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;allmine resume&amp;lt;/code&amp;gt; || Re-enable the movement block&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;allmine debug&amp;lt;/code&amp;gt; || Toggle echoing of raw upstream command lines, for troubleshooting&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;allmine verb add &amp;lt;verb&amp;gt;&amp;lt;/code&amp;gt; || Add a custom movement verb to the block list&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;allmine verb remove &amp;lt;verb&amp;gt;&amp;lt;/code&amp;gt; || Remove a previously added custom movement verb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Default Blocked Commands ==&lt;br /&gt;
&lt;br /&gt;
* Compass directions: n, north, s, south, e, east, w, west, ne, northeast, nw, northwest, se, southeast, sw, southwest, u, up, d, down, out&lt;br /&gt;
* Movement verbs: go, climb, swim, jump, leap, dive, vault, enter, board, ride, walk, crawl, limp, march, sashay, skip, sneak, stride, stumble, trudge, prance&lt;br /&gt;
* Logoff: quit, exit&lt;br /&gt;
&lt;br /&gt;
Additional verbs can be added per character with &amp;lt;code&amp;gt;;allmine verb add &amp;lt;verb&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* The watchdog does not automatically return the character to the item&#039;s location or attempt to retrieve it. This is intentional — the script only alerts.&lt;br /&gt;
* Whether script-generated movement (as opposed to typed commands) is intercepted by the movement block has not been independently confirmed for every possible calling script; the watchdog&#039;s left-behind alert serves as a backstop regardless.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Script Source ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
=begin&lt;br /&gt;
&lt;br /&gt;
  allmine.lic - All Mine item guard&lt;br /&gt;
&lt;br /&gt;
  Prevents accidentally leaving a placed All Mine item (basket, bowl, etc.)&lt;br /&gt;
  behind when moving rooms or logging off. Hard-blocks movement/quit while&lt;br /&gt;
  the item is on the ground, with a 10-second re-send bypass. A watchdog&lt;br /&gt;
  thread fires repeating alerts (no auto-return) if the item is left behind&lt;br /&gt;
  anyway.&lt;br /&gt;
&lt;br /&gt;
    ;allmine set &amp;lt;noun&amp;gt;     configure the item noun (e.g. bowl)&lt;br /&gt;
    ;allmine arm            manually arm on an item already on the ground&lt;br /&gt;
    ;allmine status         show current state&lt;br /&gt;
    ;allmine ack            acknowledge/silence a left-behind alert&lt;br /&gt;
    ;allmine clear          manually clear deployed state&lt;br /&gt;
    ;allmine pause          disable the movement block (monitoring continues)&lt;br /&gt;
    ;allmine resume         re-enable the movement block&lt;br /&gt;
    ;allmine verb add &amp;lt;v&amp;gt;   add a custom movement verb to block&lt;br /&gt;
    ;allmine verb remove &amp;lt;v&amp;gt;&lt;br /&gt;
    ;allmine help           show help&lt;br /&gt;
&lt;br /&gt;
  Run with no arguments to start the monitor. Subcommands may be issued&lt;br /&gt;
  while the monitor runs; they modify shared settings and exit.&lt;br /&gt;
&lt;br /&gt;
  NOTE: It is unverified whether script-generated movement (e.g. go2&#039;s&lt;br /&gt;
  fput) passes through UpstreamHook. If it bypasses the block, the&lt;br /&gt;
  watchdog alert still catches the left-behind item. Test live.&lt;br /&gt;
&lt;br /&gt;
        author: Triex&lt;br /&gt;
          game: GSIV&lt;br /&gt;
          tags: utility, allmine&lt;br /&gt;
       version: 0.3.1&lt;br /&gt;
&lt;br /&gt;
  changelog:&lt;br /&gt;
    0.3.1 (2026-07-13):&lt;br /&gt;
      Fix mojibake in bold alert text (replaced em dash with plain hyphen;&lt;br /&gt;
      file is now pure ASCII). Added full GSIV movement style verb list&lt;br /&gt;
      (crawl, limp, march, sashay, skip, sneak, stride, stumble, trudge,&lt;br /&gt;
      prance) plus walk -- previously only compass verbs like sashay&lt;br /&gt;
      passed through unblocked.&lt;br /&gt;
    0.3.0 (2026-07-13):&lt;br /&gt;
      Fix movement block never firing: hooks no longer touch CharSettings&lt;br /&gt;
      (unavailable in hook context); state mirrored into module ivars.&lt;br /&gt;
      Tolerant upstream command parsing (optional &amp;lt;c&amp;gt; prefix). Added&lt;br /&gt;
      ;allmine debug to echo raw upstream lines.&lt;br /&gt;
    0.2.0 (2026-07-13):&lt;br /&gt;
      Arm when the item is already on the ground at monitor start, when a&lt;br /&gt;
      held item transitions to ground loot (missed place message), or via&lt;br /&gt;
      manual ;allmine arm.&lt;br /&gt;
    0.1.0 (2026-07-13):&lt;br /&gt;
      Initial release. Deploy/pickup detection, hard-block with 10s&lt;br /&gt;
      re-send bypass, alert-only watchdog, crash persistence.&lt;br /&gt;
&lt;br /&gt;
=end&lt;br /&gt;
&lt;br /&gt;
module AllMine&lt;br /&gt;
  UP_HOOK   = &#039;AllMine::upstream&#039;&lt;br /&gt;
  DOWN_HOOK = &#039;AllMine::downstream&#039;&lt;br /&gt;
&lt;br /&gt;
  BYPASS_WINDOW  = 10   # seconds: identical re-sent command passes through&lt;br /&gt;
  ALERT_INTERVAL = 15   # seconds between repeating left-behind alerts&lt;br /&gt;
  POLL_INTERVAL  = 1    # watchdog poll rate&lt;br /&gt;
&lt;br /&gt;
  # Single-word directional commands (whole command must match).&lt;br /&gt;
  DIRS = %w[n north s south e east w west&lt;br /&gt;
            ne northeast nw northwest se southeast sw southwest&lt;br /&gt;
            u up d down out].freeze&lt;br /&gt;
&lt;br /&gt;
  # Verbs that take an argument and cause movement (first word must match).&lt;br /&gt;
  # Includes GSIV movement styles (confirmed via in-game MOVEMENT command:&lt;br /&gt;
  # Normal, Crawl, Limp, March, Sashay, Skip, Sneak, Stride, Stumble,&lt;br /&gt;
  # Trudge, Prance) plus other common movement verbs. Extend with&lt;br /&gt;
  # ;allmine verb add &amp;lt;verb&amp;gt;.&lt;br /&gt;
  MOVE_VERBS = %w[go climb swim jump leap dive vault enter board ride walk&lt;br /&gt;
                  crawl limp march sashay skip sneak stride stumble trudge prance].freeze&lt;br /&gt;
&lt;br /&gt;
  # Logoff commands (whole command must match).&lt;br /&gt;
  QUIT_CMDS = %w[quit exit].freeze&lt;br /&gt;
&lt;br /&gt;
  @last_blocked = nil&lt;br /&gt;
  @pending_deploy_at = nil&lt;br /&gt;
  @last_held_id = nil&lt;br /&gt;
  @loot_miss_count = 0&lt;br /&gt;
  @last_alert_at = Time.at(0)&lt;br /&gt;
  @pending_clear_at = nil&lt;br /&gt;
  @hs_noun = @hs_item_id = @hs_extra = nil&lt;br /&gt;
  @hs_deployed = @hs_paused = @hs_debug = false&lt;br /&gt;
&lt;br /&gt;
  def self.settings&lt;br /&gt;
    CharSettings[&#039;allmine&#039;] ||= {}&lt;br /&gt;
    CharSettings[&#039;allmine&#039;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.bold(msg)&lt;br /&gt;
    _respond Lich::Messaging.monsterbold(msg)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.info(msg)&lt;br /&gt;
    _respond Lich::Messaging.msg_format(&#039;teal&#039;, &amp;quot;[AllMine] #{msg}&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.caution(msg)&lt;br /&gt;
    _respond Lich::Messaging.msg_format(&#039;orange&#039;, &amp;quot;[AllMine] #{msg}&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # ---------------------------------------------------------------- state&lt;br /&gt;
&lt;br /&gt;
  def self.deployed?&lt;br /&gt;
    settings[&#039;deployed&#039;] == true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.set_deployed(item_id)&lt;br /&gt;
    settings[&#039;deployed&#039;]  = true&lt;br /&gt;
    settings[&#039;item_id&#039;]   = item_id&lt;br /&gt;
    settings[&#039;room_id&#039;]   = (Room.current.id rescue nil)&lt;br /&gt;
    settings[&#039;placed_at&#039;] = Time.now.to_i&lt;br /&gt;
    settings[&#039;acked&#039;]     = false&lt;br /&gt;
    @loot_miss_count = 0&lt;br /&gt;
    sync_hook_state&lt;br /&gt;
    info &amp;quot;Your #{settings[&#039;noun&#039;]} (ID #{item_id || &#039;unknown&#039;}) is now on the ground in room #{settings[&#039;room_id&#039;] || &#039;unmapped&#039;}. Movement is guarded.&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.clear_deployed(reason)&lt;br /&gt;
    settings[&#039;deployed&#039;] = false&lt;br /&gt;
    settings[&#039;item_id&#039;]  = nil&lt;br /&gt;
    settings[&#039;acked&#039;]    = false&lt;br /&gt;
    @loot_miss_count = 0&lt;br /&gt;
    @pending_clear_at = nil&lt;br /&gt;
    sync_hook_state&lt;br /&gt;
    info &amp;quot;Your #{settings[&#039;noun&#039;]} has been recovered (#{reason}). Movement is no longer guarded.&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.item_on_ground?&lt;br /&gt;
    id = settings[&#039;item_id&#039;]&lt;br /&gt;
    if id&lt;br /&gt;
      GameObj.loot.to_a.any? { |o| o.id == id }&lt;br /&gt;
    else&lt;br /&gt;
      noun = settings[&#039;noun&#039;]&lt;br /&gt;
      return false unless noun&lt;br /&gt;
      GameObj.loot.to_a.any? { |o| o.noun == noun }&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.item_in_hands?&lt;br /&gt;
    id = settings[&#039;item_id&#039;]&lt;br /&gt;
    return false unless id&lt;br /&gt;
    [GameObj.right_hand, GameObj.left_hand].any? { |h| h &amp;amp;&amp;amp; h.id == id }&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # ------------------------------------------------------------ movement&lt;br /&gt;
&lt;br /&gt;
  def self.blocked_command?(cmd)&lt;br /&gt;
    words = cmd.downcase.split&lt;br /&gt;
    return false if words.empty?&lt;br /&gt;
    first = words.first&lt;br /&gt;
    if words.length == 1&lt;br /&gt;
      return :quit if QUIT_CMDS.include?(first)&lt;br /&gt;
      return :move if DIRS.include?(first)&lt;br /&gt;
    end&lt;br /&gt;
    return :move if MOVE_VERBS.include?(first) || (@hs_extra || []).include?(first)&lt;br /&gt;
    false&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # ---------------------------------------------------------------- hooks&lt;br /&gt;
&lt;br /&gt;
  # Hooks execute in Lich&#039;s stream context, not this script&#039;s thread, so&lt;br /&gt;
  # they must never touch CharSettings (script-scoped). All state they&lt;br /&gt;
  # need is mirrored into module ivars by sync_hook_state, which runs in&lt;br /&gt;
  # the script thread. set_deployed/clear_deployed also update the mirror&lt;br /&gt;
  # immediately.&lt;br /&gt;
  def self.sync_hook_state&lt;br /&gt;
    @hs_noun     = settings[&#039;noun&#039;]&lt;br /&gt;
    @hs_deployed = settings[&#039;deployed&#039;] == true&lt;br /&gt;
    @hs_paused   = settings[&#039;paused&#039;] == true&lt;br /&gt;
    @hs_item_id  = settings[&#039;item_id&#039;]&lt;br /&gt;
    @hs_extra    = (settings[&#039;extra_verbs&#039;] || []).dup&lt;br /&gt;
    @hs_debug    = settings[&#039;debug&#039;] == true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.install_hooks&lt;br /&gt;
    noun = Regexp.escape(settings[&#039;noun&#039;])&lt;br /&gt;
    place_re  = /You carefully place your [^.]*\b#{noun} on the ground\./&lt;br /&gt;
    pickup_re = /You pick up [^.]*\b#{noun}\./&lt;br /&gt;
&lt;br /&gt;
    DownstreamHook.add(DOWN_HOOK, proc { |xml|&lt;br /&gt;
      begin&lt;br /&gt;
        if xml =~ place_re&lt;br /&gt;
          @pending_deploy_at = Time.now&lt;br /&gt;
        elsif xml =~ pickup_re &amp;amp;&amp;amp; @hs_deployed&lt;br /&gt;
          @pending_clear_at = Time.now # watchdog confirms and clears&lt;br /&gt;
        end&lt;br /&gt;
      rescue =&amp;gt; e&lt;br /&gt;
        respond &amp;quot;[AllMine] Downstream hook error: #{e}&amp;quot; rescue nil&lt;br /&gt;
      end&lt;br /&gt;
      xml&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    UpstreamHook.add(UP_HOOK, proc { |line|&lt;br /&gt;
      begin&lt;br /&gt;
        respond &amp;quot;[AllMine DEBUG] upstream: #{line.inspect}&amp;quot; if @hs_debug&lt;br /&gt;
        next line unless @hs_deployed&lt;br /&gt;
        next line if @hs_paused&lt;br /&gt;
        # Client command framing is not documented; tolerate an optional&lt;br /&gt;
        # &amp;lt;c&amp;gt; prefix anywhere-leading, else take the raw line.&lt;br /&gt;
        cmd = line.sub(/\A\s*(?:&amp;lt;c&amp;gt;)?/, &#039;&#039;).strip&lt;br /&gt;
        next line if cmd.empty?&lt;br /&gt;
        kind = AllMine.blocked_command?(cmd)&lt;br /&gt;
        next line unless kind&lt;br /&gt;
&lt;br /&gt;
        on_ground = begin&lt;br /&gt;
          if @hs_item_id&lt;br /&gt;
            GameObj.loot.to_a.any? { |o| o.id == @hs_item_id }&lt;br /&gt;
          else&lt;br /&gt;
            GameObj.loot.to_a.any? { |o| o.noun == @hs_noun }&lt;br /&gt;
          end&lt;br /&gt;
        rescue&lt;br /&gt;
          true # if the check itself fails, block rather than risk the item&lt;br /&gt;
        end&lt;br /&gt;
        next line unless on_ground&lt;br /&gt;
&lt;br /&gt;
        key = cmd.downcase&lt;br /&gt;
        if @last_blocked &amp;amp;&amp;amp; @last_blocked[:cmd] == key &amp;amp;&amp;amp;&lt;br /&gt;
           (Time.now - @last_blocked[:time]) &amp;lt;= BYPASS_WINDOW&lt;br /&gt;
          @last_blocked = nil&lt;br /&gt;
          next line # intentional: identical command re-sent within window&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        @last_blocked = { cmd: key, time: Time.now }&lt;br /&gt;
        if kind == :quit&lt;br /&gt;
          AllMine.bold &amp;quot;*** YOUR #{@hs_noun.upcase} IS STILL ON THE GROUND - repeat #{cmd.upcase} within #{BYPASS_WINDOW} seconds to log off anyway. ***&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
          AllMine.bold &amp;quot;*** YOUR #{@hs_noun.upcase} IS STILL ON THE GROUND - repeat the command within #{BYPASS_WINDOW} seconds to leave anyway. ***&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
        next nil&lt;br /&gt;
      rescue =&amp;gt; e&lt;br /&gt;
        respond &amp;quot;[AllMine] Upstream hook error: #{e}&amp;quot; rescue nil&lt;br /&gt;
        next line&lt;br /&gt;
      end&lt;br /&gt;
    })&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def self.remove_hooks&lt;br /&gt;
    DownstreamHook.remove(DOWN_HOOK)&lt;br /&gt;
    UpstreamHook.remove(UP_HOOK)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # ------------------------------------------------------------- watchdog&lt;br /&gt;
&lt;br /&gt;
  def self.watchdog_tick&lt;br /&gt;
    sync_hook_state&lt;br /&gt;
    noun = settings[&#039;noun&#039;]&lt;br /&gt;
&lt;br /&gt;
    # Track the id of a held item matching the noun, so a deploy can be&lt;br /&gt;
    # attributed to the exact item that just left our hands.&lt;br /&gt;
    [GameObj.right_hand, GameObj.left_hand].each do |h|&lt;br /&gt;
      @last_held_id = h.id if h &amp;amp;&amp;amp; h.id &amp;amp;&amp;amp; h.noun == noun&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Pickup message seen by the downstream hook: confirm and clear.&lt;br /&gt;
    if @pending_clear_at &amp;amp;&amp;amp; deployed?&lt;br /&gt;
      if settings[&#039;item_id&#039;].nil? || item_in_hands?&lt;br /&gt;
        clear_deployed(&#039;picked up&#039;)&lt;br /&gt;
        return&lt;br /&gt;
      elsif Time.now - @pending_clear_at &amp;gt; 3&lt;br /&gt;
        @pending_clear_at = nil # pickup message was for a different item&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Complete a pending deploy: item should now appear in room loot.&lt;br /&gt;
    if @pending_deploy_at&lt;br /&gt;
      match = nil&lt;br /&gt;
      if @last_held_id&lt;br /&gt;
        match = GameObj.loot.to_a.find { |o| o.id == @last_held_id }&lt;br /&gt;
      end&lt;br /&gt;
      match ||= GameObj.loot.to_a.find { |o| o.noun == noun }&lt;br /&gt;
      if match&lt;br /&gt;
        @pending_deploy_at = nil&lt;br /&gt;
        set_deployed(match.id)&lt;br /&gt;
      elsif Time.now - @pending_deploy_at &amp;gt; 5&lt;br /&gt;
        @pending_deploy_at = nil&lt;br /&gt;
        set_deployed(nil) # deploy seen but id unresolved; guard by noun&lt;br /&gt;
      end&lt;br /&gt;
      return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    unless deployed?&lt;br /&gt;
      # Backup arm: an item we were holding (matching noun) is now on the&lt;br /&gt;
      # ground - covers missed/unrecognized place messaging.&lt;br /&gt;
      if @last_held_id &amp;amp;&amp;amp; GameObj.loot.to_a.any? { |o| o.id == @last_held_id }&lt;br /&gt;
        set_deployed(@last_held_id)&lt;br /&gt;
      end&lt;br /&gt;
      return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Backup clear: item is back in our hands (missed pickup message).&lt;br /&gt;
    if item_in_hands?&lt;br /&gt;
      clear_deployed(&#039;back in your hands&#039;)&lt;br /&gt;
      return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Left-behind detection.&lt;br /&gt;
    left_behind = false&lt;br /&gt;
    here = (Room.current.id rescue nil)&lt;br /&gt;
    if here &amp;amp;&amp;amp; settings[&#039;room_id&#039;] &amp;amp;&amp;amp; here != settings[&#039;room_id&#039;]&lt;br /&gt;
      left_behind = true&lt;br /&gt;
      @loot_miss_count = 0&lt;br /&gt;
    elsif !item_on_ground?&lt;br /&gt;
      # Could be lag or an unmapped-room move; require persistence.&lt;br /&gt;
      @loot_miss_count += 1&lt;br /&gt;
      left_behind = true if @loot_miss_count &amp;gt;= 3&lt;br /&gt;
    else&lt;br /&gt;
      @loot_miss_count = 0&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if left_behind &amp;amp;&amp;amp; !settings[&#039;acked&#039;]&lt;br /&gt;
      if Time.now - @last_alert_at &amp;gt;= ALERT_INTERVAL&lt;br /&gt;
        @last_alert_at = Time.now&lt;br /&gt;
        where = settings[&#039;room_id&#039;] ? &amp;quot;room #{settings[&#039;room_id&#039;]} (;go2 #{settings[&#039;room_id&#039;]})&amp;quot; : &#039;an unknown room&#039;&lt;br /&gt;
        placed = settings[&#039;placed_at&#039;] ? Time.at(settings[&#039;placed_at&#039;]).strftime(&#039;%H:%M&#039;) : &#039;?&#039;&lt;br /&gt;
        bold &amp;quot;*** ALL MINE ALERT: Your #{settings[&#039;noun&#039;]} was left behind in #{where}, placed at #{placed}. Use ;allmine ack to silence this alert. ***&amp;quot;&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # ------------------------------------------------------------- commands&lt;br /&gt;
&lt;br /&gt;
  def self.command(args)&lt;br /&gt;
    case args&lt;br /&gt;
    when /^set\s+(\w+)$/i&lt;br /&gt;
      settings[&#039;noun&#039;] = $1.downcase&lt;br /&gt;
      info &amp;quot;Item noun set to &#039;#{settings[&#039;noun&#039;]}&#039;. If the monitor is already running, restart it so the message patterns rebuild.&amp;quot;&lt;br /&gt;
    when /^status$/i&lt;br /&gt;
      info &amp;quot;Item noun: #{settings[&#039;noun&#039;] || &#039;not set&#039;}&amp;quot;&lt;br /&gt;
      if deployed?&lt;br /&gt;
        placed = settings[&#039;placed_at&#039;] ? Time.at(settings[&#039;placed_at&#039;]).strftime(&#039;%Y-%m-%d %H:%M&#039;) : &#039;unknown&#039;&lt;br /&gt;
        info &amp;quot;Deployed: yes - item ID #{settings[&#039;item_id&#039;] || &#039;unknown&#039;}, room #{settings[&#039;room_id&#039;] || &#039;unknown&#039;}, placed at #{placed}&amp;quot;&lt;br /&gt;
      else&lt;br /&gt;
        info &#039;Deployed: no&#039;&lt;br /&gt;
      end&lt;br /&gt;
      info &amp;quot;Movement block paused: #{settings[&#039;paused&#039;] ? &#039;yes&#039; : &#039;no&#039;}&amp;quot;&lt;br /&gt;
      info &amp;quot;Custom movement verbs: #{(settings[&#039;extra_verbs&#039;] || []).empty? ? &#039;none&#039; : settings[&#039;extra_verbs&#039;].join(&#039;, &#039;)}&amp;quot;&lt;br /&gt;
      info &amp;quot;Monitor running: #{Script.list.count { |s| s.name == Script.current.name } &amp;gt; 1 ? &#039;yes&#039; : &#039;no&#039;}&amp;quot;&lt;br /&gt;
    when /^arm$/i&lt;br /&gt;
      noun = settings[&#039;noun&#039;]&lt;br /&gt;
      if noun.nil?&lt;br /&gt;
        caution &#039;No item noun configured. Use ;allmine set &amp;lt;noun&amp;gt; first.&#039;&lt;br /&gt;
      elsif (match = GameObj.loot.to_a.find { |o| o.noun == noun })&lt;br /&gt;
        set_deployed(match.id)&lt;br /&gt;
      else&lt;br /&gt;
        caution &amp;quot;No #{noun} was found on the ground in this room.&amp;quot;&lt;br /&gt;
      end&lt;br /&gt;
    when /^ack$/i&lt;br /&gt;
      settings[&#039;acked&#039;] = true&lt;br /&gt;
      info &#039;Alert acknowledged. The deployed state remains until the item is recovered or cleared with ;allmine clear.&#039;&lt;br /&gt;
    when /^clear$/i&lt;br /&gt;
      settings[&#039;deployed&#039;] = false&lt;br /&gt;
      settings[&#039;item_id&#039;]  = nil&lt;br /&gt;
      settings[&#039;acked&#039;]    = false&lt;br /&gt;
      info &#039;Deployed state cleared.&#039;&lt;br /&gt;
    when /^debug$/i&lt;br /&gt;
      settings[&#039;debug&#039;] = !settings[&#039;debug&#039;]&lt;br /&gt;
      if settings[&#039;debug&#039;]&lt;br /&gt;
        caution &#039;Debug mode ON - every upstream line will be echoed in raw form. Toggle off with ;allmine debug.&#039;&lt;br /&gt;
      else&lt;br /&gt;
        info &#039;Debug mode off.&#039;&lt;br /&gt;
      end&lt;br /&gt;
    when /^pause$/i&lt;br /&gt;
      settings[&#039;paused&#039;] = true&lt;br /&gt;
      caution &#039;Movement block PAUSED. Watchdog alerts remain active.&#039;&lt;br /&gt;
    when /^resume$/i&lt;br /&gt;
      settings[&#039;paused&#039;] = false&lt;br /&gt;
      info &#039;Movement block resumed.&#039;&lt;br /&gt;
    when /^verb\s+add\s+(\w+)$/i&lt;br /&gt;
      settings[&#039;extra_verbs&#039;] ||= []&lt;br /&gt;
      v = $1.downcase&lt;br /&gt;
      if settings[&#039;extra_verbs&#039;].include?(v) || MOVE_VERBS.include?(v)&lt;br /&gt;
        info &amp;quot;The verb &#039;#{v}&#039; is already blocked.&amp;quot;&lt;br /&gt;
      else&lt;br /&gt;
        settings[&#039;extra_verbs&#039;].push(v)&lt;br /&gt;
        info &amp;quot;Added movement verb &#039;#{v}&#039;.&amp;quot;&lt;br /&gt;
      end&lt;br /&gt;
    when /^verb\s+remove\s+(\w+)$/i&lt;br /&gt;
      settings[&#039;extra_verbs&#039;] ||= []&lt;br /&gt;
      v = $1.downcase&lt;br /&gt;
      if settings[&#039;extra_verbs&#039;].delete(v)&lt;br /&gt;
        info &amp;quot;Removed movement verb &#039;#{v}&#039;.&amp;quot;&lt;br /&gt;
      else&lt;br /&gt;
        caution &amp;quot;The verb &#039;#{v}&#039; is not in the custom verb list.&amp;quot;&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      info &#039;Usage: set &amp;lt;noun&amp;gt; | arm | status | ack | clear | pause | resume | debug | verb add &amp;lt;verb&amp;gt; | verb remove &amp;lt;verb&amp;gt;&#039;&lt;br /&gt;
      info &amp;quot;Blocked by default: #{DIRS.join(&#039; &#039;)} | #{MOVE_VERBS.join(&#039; &#039;)} | #{QUIT_CMDS.join(&#039; &#039;)}&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  # ---------------------------------------------------------------- main&lt;br /&gt;
&lt;br /&gt;
  def self.run&lt;br /&gt;
    unless settings[&#039;noun&#039;]&lt;br /&gt;
      caution &amp;quot;No item noun configured. Use ;#{Script.current.name} set &amp;lt;noun&amp;gt; (for example, ;#{Script.current.name} set bowl).&amp;quot;&lt;br /&gt;
      exit&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if Script.list.count { |s| s.name == Script.current.name } &amp;gt; 1 &amp;amp;&amp;amp; Script.current.vars[0].to_s.strip.empty?&lt;br /&gt;
      caution &#039;The monitor is already running.&#039;&lt;br /&gt;
      exit&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    # Crash/disconnect recovery: stale deployed flag from a prior session.&lt;br /&gt;
    if deployed?&lt;br /&gt;
      where  = settings[&#039;room_id&#039;] ? &amp;quot;room #{settings[&#039;room_id&#039;]} (;go2 #{settings[&#039;room_id&#039;]})&amp;quot; : &#039;an unknown room&#039;&lt;br /&gt;
      placed = settings[&#039;placed_at&#039;] ? Time.at(settings[&#039;placed_at&#039;]).strftime(&#039;%Y-%m-%d %H:%M&#039;) : &#039;an unknown time&#039;&lt;br /&gt;
      bold &amp;quot;*** ALL MINE: A prior session shows your #{settings[&#039;noun&#039;]} may still be on the ground in #{where}, placed at #{placed}. Use ;allmine clear if it has been recovered. ***&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    before_dying {&lt;br /&gt;
      AllMine.remove_hooks&lt;br /&gt;
      if AllMine.deployed?&lt;br /&gt;
        AllMine.bold &amp;quot;*** AllMine is exiting while your #{AllMine.settings[&#039;noun&#039;]} is still on the ground! ***&amp;quot;&lt;br /&gt;
      end&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    sync_hook_state&lt;br /&gt;
    install_hooks&lt;br /&gt;
    info &amp;quot;Monitoring your #{settings[&#039;noun&#039;]}. The movement block is active with a #{BYPASS_WINDOW}-second re-send bypass, and the watchdog will alert (but never auto-return) if the item is left behind.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # Start-time arm: item matching the noun is already on the ground in&lt;br /&gt;
    # this room (placed before the monitor started).&lt;br /&gt;
    if !deployed? &amp;amp;&amp;amp; (match = GameObj.loot.to_a.find { |o| o.noun == settings[&#039;noun&#039;] })&lt;br /&gt;
      set_deployed(match.id)&lt;br /&gt;
      caution &amp;quot;Note: armed from a #{settings[&#039;noun&#039;]} already on the ground here. If it is not yours, use ;#{Script.current.name} clear.&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    loop {&lt;br /&gt;
      watchdog_tick&lt;br /&gt;
      sleep POLL_INTERVAL&lt;br /&gt;
    }&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if (args = Script.current.vars[0].to_s.strip) &amp;amp;&amp;amp; !args.empty?&lt;br /&gt;
  AllMine.command(args)&lt;br /&gt;
else&lt;br /&gt;
  AllMine.run&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Alias&amp;diff=259843</id>
		<title>Lich:Script Alias</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Alias&amp;diff=259843"/>
		<updated>2026-06-30T16:19:39Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Alias examples */ add more examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Alias is a default/core Lich scripted for creating in game shortcuts for any desired scripts or functions&lt;br /&gt;
&lt;br /&gt;
==What does it do?==&lt;br /&gt;
Alias makes an alias!&lt;br /&gt;
&lt;br /&gt;
==How do I get it?==&lt;br /&gt;
&amp;lt;CODE&amp;gt;;alias&amp;lt;/CODE&amp;gt; is installed by default for Lich and no user installation should be necessary&lt;br /&gt;
&lt;br /&gt;
==How does it work?== &lt;br /&gt;
Alias creates user shortcuts. If you have a common set scripts or don&#039;t want to type a long thing out, you can use the Alias script to create a shortened version for one or several combined commands. Think of if like a macro on steroids.&lt;br /&gt;
==Alias examples== &lt;br /&gt;
Below are examples of various aliases (one-liners) that are used to perform macros and/or Lich scripting:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! trigger !! description !! target&lt;br /&gt;
|-&lt;br /&gt;
| wag1&lt;br /&gt;
| cast missing spells after dispelled&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;;ewaggle --stop-at=1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ;wagglemax&lt;br /&gt;
| attempt to max cast all spells at self/target&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;;eq Script.start(&amp;quot;waggle&amp;quot;, &amp;quot;--start-at=250 --stop-at=250 --stop-before=999 \?&amp;quot;)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| disband&lt;br /&gt;
| will DISBAND and immediately open GROUP again&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;disband\rgroup open&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| leave&lt;br /&gt;
| will LEAVE group and immediately open GROUP status again&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;leave\rgroup open&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wear&lt;br /&gt;
| will WEAR the item you attempt and immediately try to SORT your inventory&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;;eq fput(&amp;quot;wear \?&amp;quot;); waitrt?; fput(&amp;quot;sort auto headtotoe&amp;quot;)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| getbounty&lt;br /&gt;
| will run to advguild and get new bounty&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;;e Script.run(&#039;go2&#039;, &#039;advguild&#039;);fput(&amp;quot;ask ##{GameObj.npcs.last.id} for bounty&amp;quot;)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| groupall&lt;br /&gt;
| will attempt to GROUP every character in room into your group&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;;e GameObj.pcs.each { |pc| fput &amp;quot;group #{pc.noun}&amp;quot; }&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| quitxp&lt;br /&gt;
| wait until empty mind, full health/mana/spirit before QUITing&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;;e wait_until { Char.percent_mind.eql?(0) &amp;amp;&amp;amp; Char.percent_health.eql?(100) &amp;amp;&amp;amp; Char.percent_mana.eql?(100) &amp;amp;&amp;amp; Char.percent_spirit.eql?(100)}; fput(&#039;quit&#039;)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==In game help output==&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
;alias help&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
     ;alias setup&lt;br /&gt;
          Opens a window to configure aliases.&lt;br /&gt;
     ;alias add &amp;lt;trigger&amp;gt; = &amp;lt;target&amp;gt;&lt;br /&gt;
     ;alias add --global &amp;lt;trigger&amp;gt; = &amp;lt;target&amp;gt;&lt;br /&gt;
          Creates a new alias.  When you send a command that starts with &amp;lt;trigger&amp;gt;, it will be replaced&lt;br /&gt;
          with &amp;lt;target&amp;gt;.  If --global is specified, the alias will be active for all characters.&lt;br /&gt;
          \r and \? in the target are treated special.&lt;br /&gt;
&lt;br /&gt;
     ;alias remove &amp;lt;trigger&amp;gt;&lt;br /&gt;
     ;alias remove --global &amp;lt;trigger&amp;gt;&lt;br /&gt;
          Deletes the given alias&lt;br /&gt;
&lt;br /&gt;
     ;alias list&lt;br /&gt;
          Lists the currently active aliases&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
     ;alias add zap = ;eq cast(901, &amp;quot;\?&amp;quot;)&lt;br /&gt;
     ;alias add --global ;code = ;lnet chat on code&lt;br /&gt;
     ;alias add --global ls = look&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Alias&amp;diff=259842</id>
		<title>Lich:Script Alias</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Alias&amp;diff=259842"/>
		<updated>2026-06-30T16:15:37Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Alias examples */ fix formating&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Alias is a default/core Lich scripted for creating in game shortcuts for any desired scripts or functions&lt;br /&gt;
&lt;br /&gt;
==What does it do?==&lt;br /&gt;
Alias makes an alias!&lt;br /&gt;
&lt;br /&gt;
==How do I get it?==&lt;br /&gt;
&amp;lt;CODE&amp;gt;;alias&amp;lt;/CODE&amp;gt; is installed by default for Lich and no user installation should be necessary&lt;br /&gt;
&lt;br /&gt;
==How does it work?== &lt;br /&gt;
Alias creates user shortcuts. If you have a common set scripts or don&#039;t want to type a long thing out, you can use the Alias script to create a shortened version for one or several combined commands. Think of if like a macro on steroids.&lt;br /&gt;
==Alias examples== &lt;br /&gt;
Below are examples of various aliases (one-liners) that are used to perform macros and/or Lich scripting:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! trigger !! description !! target&lt;br /&gt;
|-&lt;br /&gt;
| wag1&lt;br /&gt;
| cast missing spells after dispelled&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;;ewaggle --stop-at=1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| disband&lt;br /&gt;
| will DISBAND and immediately open GROUP again&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;disband\rgroup open&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| leave&lt;br /&gt;
| will LEAVE group and immediately open GROUP status again&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;leave\rgroup open&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wear&lt;br /&gt;
| will WEAR the item you attempt and immediately try to SORT your inventory&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;;eq fput(&amp;quot;wear \?&amp;quot;); waitrt?; fput(&amp;quot;sort auto headtotoe&amp;quot;)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| getbounty&lt;br /&gt;
| will run to advguild and get new bounty&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;;e Script.run(&#039;go2&#039;, &#039;advguild&#039;);fput(&amp;quot;ask ##{GameObj.npcs.last.id} for bounty&amp;quot;)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| groupall&lt;br /&gt;
| will attempt to GROUP every character in room into your group&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;;e GameObj.pcs.each { |pc| fput &amp;quot;group #{pc.noun}&amp;quot; }&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==In game help output==&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
;alias help&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
     ;alias setup&lt;br /&gt;
          Opens a window to configure aliases.&lt;br /&gt;
     ;alias add &amp;lt;trigger&amp;gt; = &amp;lt;target&amp;gt;&lt;br /&gt;
     ;alias add --global &amp;lt;trigger&amp;gt; = &amp;lt;target&amp;gt;&lt;br /&gt;
          Creates a new alias.  When you send a command that starts with &amp;lt;trigger&amp;gt;, it will be replaced&lt;br /&gt;
          with &amp;lt;target&amp;gt;.  If --global is specified, the alias will be active for all characters.&lt;br /&gt;
          \r and \? in the target are treated special.&lt;br /&gt;
&lt;br /&gt;
     ;alias remove &amp;lt;trigger&amp;gt;&lt;br /&gt;
     ;alias remove --global &amp;lt;trigger&amp;gt;&lt;br /&gt;
          Deletes the given alias&lt;br /&gt;
&lt;br /&gt;
     ;alias list&lt;br /&gt;
          Lists the currently active aliases&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
     ;alias add zap = ;eq cast(901, &amp;quot;\?&amp;quot;)&lt;br /&gt;
     ;alias add --global ;code = ;lnet chat on code&lt;br /&gt;
     ;alias add --global ls = look&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Alias&amp;diff=259841</id>
		<title>Lich:Script Alias</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Alias&amp;diff=259841"/>
		<updated>2026-06-30T16:11:53Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Alias examples */ update wear alias&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Alias is a default/core Lich scripted for creating in game shortcuts for any desired scripts or functions&lt;br /&gt;
&lt;br /&gt;
==What does it do?==&lt;br /&gt;
Alias makes an alias!&lt;br /&gt;
&lt;br /&gt;
==How do I get it?==&lt;br /&gt;
&amp;lt;CODE&amp;gt;;alias&amp;lt;/CODE&amp;gt; is installed by default for Lich and no user installation should be necessary&lt;br /&gt;
&lt;br /&gt;
==How does it work?== &lt;br /&gt;
Alias creates user shortcuts. If you have a common set scripts or don&#039;t want to type a long thing out, you can use the Alias script to create a shortened version for one or several combined commands. Think of if like a macro on steroids.&lt;br /&gt;
==Alias examples== &lt;br /&gt;
Below are examples of various aliases (one-liners) that are used to perform macros and/or Lich scripting:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! trigger !! description !! target&lt;br /&gt;
|-&lt;br /&gt;
| wag1&lt;br /&gt;
| cast missing spells after dispelled&lt;br /&gt;
| &amp;lt;code&amp;gt;;ewaggle --stop-at=1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| disband&lt;br /&gt;
| will DISBAND and immediately open GROUP again&lt;br /&gt;
| &amp;lt;code&amp;gt;disband\rgroup open&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| leave&lt;br /&gt;
| will LEAVE group and immediately open GROUP status again&lt;br /&gt;
| &amp;lt;code&amp;gt;leave\rgroup open&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wear&lt;br /&gt;
| will WEAR the item you attempt and immediately try to SORT your inventory&lt;br /&gt;
| &amp;lt;code&amp;gt;;eq fput(&amp;quot;wear \?&amp;quot;); waitrt?; fput(&amp;quot;sort auto headtotoe&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| getbounty&lt;br /&gt;
| will run to advguild and get new bounty&lt;br /&gt;
| &amp;lt;code&amp;gt;;e Script.run(&#039;go2&#039;, &#039;advguild&#039;);fput(&amp;quot;ask ##{GameObj.npcs.last.id} for bounty&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| groupall&lt;br /&gt;
| will attempt to GROUP every character in room into your group&lt;br /&gt;
| &amp;lt;code&amp;gt;;e GameObj.pcs.each { |pc| fput &amp;quot;group #{pc.noun}&amp;quot; }&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==In game help output==&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
;alias help&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
     ;alias setup&lt;br /&gt;
          Opens a window to configure aliases.&lt;br /&gt;
     ;alias add &amp;lt;trigger&amp;gt; = &amp;lt;target&amp;gt;&lt;br /&gt;
     ;alias add --global &amp;lt;trigger&amp;gt; = &amp;lt;target&amp;gt;&lt;br /&gt;
          Creates a new alias.  When you send a command that starts with &amp;lt;trigger&amp;gt;, it will be replaced&lt;br /&gt;
          with &amp;lt;target&amp;gt;.  If --global is specified, the alias will be active for all characters.&lt;br /&gt;
          \r and \? in the target are treated special.&lt;br /&gt;
&lt;br /&gt;
     ;alias remove &amp;lt;trigger&amp;gt;&lt;br /&gt;
     ;alias remove --global &amp;lt;trigger&amp;gt;&lt;br /&gt;
          Deletes the given alias&lt;br /&gt;
&lt;br /&gt;
     ;alias list&lt;br /&gt;
          Lists the currently active aliases&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
     ;alias add zap = ;eq cast(901, &amp;quot;\?&amp;quot;)&lt;br /&gt;
     ;alias add --global ;code = ;lnet chat on code&lt;br /&gt;
     ;alias add --global ls = look&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Alias&amp;diff=259840</id>
		<title>Lich:Script Alias</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Alias&amp;diff=259840"/>
		<updated>2026-06-30T16:09:02Z</updated>

		<summary type="html">&lt;p&gt;HORIBU1: /* Alias examples */ more examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Alias is a default/core Lich scripted for creating in game shortcuts for any desired scripts or functions&lt;br /&gt;
&lt;br /&gt;
==What does it do?==&lt;br /&gt;
Alias makes an alias!&lt;br /&gt;
&lt;br /&gt;
==How do I get it?==&lt;br /&gt;
&amp;lt;CODE&amp;gt;;alias&amp;lt;/CODE&amp;gt; is installed by default for Lich and no user installation should be necessary&lt;br /&gt;
&lt;br /&gt;
==How does it work?== &lt;br /&gt;
Alias creates user shortcuts. If you have a common set scripts or don&#039;t want to type a long thing out, you can use the Alias script to create a shortened version for one or several combined commands. Think of if like a macro on steroids.&lt;br /&gt;
==Alias examples== &lt;br /&gt;
Below are examples of various aliases (one-liners) that are used to perform macros and/or Lich scripting:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! trigger !! description !! target&lt;br /&gt;
|-&lt;br /&gt;
| wag1&lt;br /&gt;
| cast missing spells after dispelled&lt;br /&gt;
| &amp;lt;code&amp;gt;;ewaggle --stop-at=1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| disband&lt;br /&gt;
| will DISBAND and immediately open GROUP again&lt;br /&gt;
| &amp;lt;code&amp;gt;disband\rgroup open&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| leave&lt;br /&gt;
| will LEAVE group and immediately open GROUP status again&lt;br /&gt;
| &amp;lt;code&amp;gt;leave\rgroup open&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wear&lt;br /&gt;
| will WEAR the item you attempt and immediately try to SORT your inventory&lt;br /&gt;
| &amp;lt;code&amp;gt;wear \?\rsort auto headtotoe&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| getbounty&lt;br /&gt;
| will run to advguild and get new bounty&lt;br /&gt;
| &amp;lt;code&amp;gt;;e Script.run(&#039;go2&#039;, &#039;advguild&#039;);fput(&amp;quot;ask ##{GameObj.npcs.last.id} for bounty&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| groupall&lt;br /&gt;
| will attempt to GROUP every character in room into your group&lt;br /&gt;
| &amp;lt;code&amp;gt;;e GameObj.pcs.each { |pc| fput &amp;quot;group #{pc.noun}&amp;quot; }&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==In game help output==&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
;alias help&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
     ;alias setup&lt;br /&gt;
          Opens a window to configure aliases.&lt;br /&gt;
     ;alias add &amp;lt;trigger&amp;gt; = &amp;lt;target&amp;gt;&lt;br /&gt;
     ;alias add --global &amp;lt;trigger&amp;gt; = &amp;lt;target&amp;gt;&lt;br /&gt;
          Creates a new alias.  When you send a command that starts with &amp;lt;trigger&amp;gt;, it will be replaced&lt;br /&gt;
          with &amp;lt;target&amp;gt;.  If --global is specified, the alias will be active for all characters.&lt;br /&gt;
          \r and \? in the target are treated special.&lt;br /&gt;
&lt;br /&gt;
     ;alias remove &amp;lt;trigger&amp;gt;&lt;br /&gt;
     ;alias remove --global &amp;lt;trigger&amp;gt;&lt;br /&gt;
          Deletes the given alias&lt;br /&gt;
&lt;br /&gt;
     ;alias list&lt;br /&gt;
          Lists the currently active aliases&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
     ;alias add zap = ;eq cast(901, &amp;quot;\?&amp;quot;)&lt;br /&gt;
     ;alias add --global ;code = ;lnet chat on code&lt;br /&gt;
     ;alias add --global ls = look&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>HORIBU1</name></author>
	</entry>
</feed>