<?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=WHIGHTCNIGHT</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=WHIGHTCNIGHT"/>
	<link rel="alternate" type="text/html" href="https://gswiki.play.net/Special:Contributions/WHIGHTCNIGHT"/>
	<updated>2026-11-08T10:16:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.12</generator>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=267494</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=267494"/>
		<updated>2026-10-28T17:28:14Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Lich Changelog */ update to 5.23.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.23.0 supporting Ruby 4.0 - published October 28, 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;
===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;
===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;
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 are two common options for playing Gemstone IV on a Mac: play natively with Saga (the official front end) or Avalon, or 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 (Saga or Avalon)===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. That guide sets Lich up with [[Saga]], the official Simutronics front end (currently in beta), and also covers [[Avalon]]. 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;
==Linux==&lt;br /&gt;
Pick the subsection for your distribution below. Each one installs Ruby and Lich; front ends (Saga, Profanity and Warlock) are covered once in [[#Frontends|Frontends]] at the end, since their steps are the same on every distribution.&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 for users of Debian/Chromebooks. To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;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 for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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 gtk3 gobject-introspection&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 4.0.9 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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;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;
The following steps should install Lich for users of Fedora. To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&lt;br /&gt;
&lt;br /&gt;
Lich 5 requires Ruby 4.0 or newer. The Ruby that ships with currently supported versions of Fedora is older than that (41 uses Ruby 3.3; 42 and 43 use Ruby 3.4), so these steps install Ruby 4.0.9 with &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039; instead of using Fedora&#039;s Ruby.&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 gtk3-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing rbenv Ruby installation rather than installing from scratch, skip step 3.  Instead, update your ruby-build with the following command, and then run only the &amp;lt;tt&amp;gt;rbenv install&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;rbenv global&amp;lt;/tt&amp;gt; lines from step 3.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
3. Install rbenv and Ruby 4.0.9:&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;
source ~/.bashrc&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.9 -v&lt;br /&gt;
rbenv global 4.0.9&lt;br /&gt;
ruby -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last command should print a line starting with &amp;lt;tt&amp;gt;ruby 4.0.9&amp;lt;/tt&amp;gt;. If it doesn&#039;t, close and reopen the terminal and try &amp;lt;tt&amp;gt;ruby -v&amp;lt;/tt&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
4. 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;
5. 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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Frontends===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-frontends&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-frontends&amp;quot;&amp;gt;&lt;br /&gt;
Finish the Lich installation for your distribution above first, then set up one of these front ends.&lt;br /&gt;
&lt;br /&gt;
====Saga====&lt;br /&gt;
[[Saga]] is the official Simutronics front end for GemStone IV and DragonRealms (currently in beta), and it works with Lich.  On Linux it comes as a single AppImage file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Install Saga&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Go to the [https://www.play.net/gs4/play/saga-info.asp Saga info page] and click &#039;&#039;&#039;Download for Linux&#039;&#039;&#039; (AppImage, x86_64).  On a Chromebook, move the downloaded file into the &#039;&#039;&#039;Linux files&#039;&#039;&#039; folder with the Files app so Linux can see it.&lt;br /&gt;
&lt;br /&gt;
Then put it where Lich looks for Saga, make it runnable, and start it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir -p /opt/Saga&lt;br /&gt;
sudo mv ~/Downloads/Saga-*.AppImage /opt/Saga/saga&lt;br /&gt;
sudo chmod +x /opt/Saga/saga&lt;br /&gt;
/opt/Saga/saga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;On a Chromebook use &amp;lt;tt&amp;gt;~/Saga-*.AppImage&amp;lt;/tt&amp;gt; in place of &amp;lt;tt&amp;gt;~/Downloads/Saga-*.AppImage&amp;lt;/tt&amp;gt;.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to the game from inside Saga once, without Lich, to make sure Saga itself works.&lt;br /&gt;
&lt;br /&gt;
If Saga will not start and mentions FUSE or &amp;lt;tt&amp;gt;libfuse.so.2&amp;lt;/tt&amp;gt;, install FUSE 2 and try again: &amp;lt;tt&amp;gt;sudo apt-get install libfuse2&amp;lt;/tt&amp;gt; on Debian/Chromebook (on Debian 13 and newer, &amp;lt;tt&amp;gt;libfuse2t64&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;sudo pacman -S fuse2&amp;lt;/tt&amp;gt; on Arch, or &amp;lt;tt&amp;gt;sudo dnf install fuse-libs&amp;lt;/tt&amp;gt; on Fedora.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use Saga with Lich&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Saga starts Lich for you:&lt;br /&gt;
# Log in with Saga normally, then choose &#039;&#039;&#039;File &amp;amp;rarr; Enable Login with Lich&#039;&#039;&#039;.&lt;br /&gt;
# Choose &#039;&#039;&#039;File &amp;amp;rarr; Return to login&#039;&#039;&#039;.&lt;br /&gt;
# Click &#039;&#039;&#039;Connect&#039;&#039;&#039;, then &#039;&#039;&#039;Via Lich&#039;&#039;&#039;, and point it to your Lich folder (&amp;lt;tt&amp;gt;~/Lich5&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# If Saga asks where Ruby is, or Lich will not start, run &amp;lt;tt&amp;gt;rbenv which ruby&amp;lt;/tt&amp;gt; and give Saga the path it prints (it ends in &amp;lt;tt&amp;gt;.rbenv/versions/4.0.9/bin/ruby&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# Log in.  The game will start in Saga with Lich running.&lt;br /&gt;
&lt;br /&gt;
Once that works, you can also start from the Lich login window (&amp;lt;tt&amp;gt;ruby ~/Lich5/lich.rbw&amp;lt;/tt&amp;gt;): select your character, choose &#039;&#039;&#039;Saga&#039;&#039;&#039; as the front end, and click &#039;&#039;&#039;Play&#039;&#039;&#039;.  Lich will open Saga and Saga logs in with its own saved login, so make sure Saga has saved your account and quit Saga before you do this.&lt;br /&gt;
&lt;br /&gt;
See the [[Saga]] page for more about Saga, including importing Wrayth settings.&lt;br /&gt;
&lt;br /&gt;
====Profanity====&lt;br /&gt;
Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth). Its gems (such as &amp;lt;tt&amp;gt;curses&amp;lt;/tt&amp;gt;) are installed by the &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt; step above. Download 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 Warlock from https://sproctor.github.io/warlock3/download.html, then 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 your login information with these settings to use the Lich launcher: https://github.com/sproctor/warlock3/wiki/Lich-support&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.23.0&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
### Features (general)&lt;br /&gt;
* Saga identifies as /P:SAGA in the headless handshake; add --fe-version (#1682)&lt;br /&gt;
* skip syncing eo/scripts scripts that need a newer Lich (#1692)&lt;br /&gt;
* parse the Saga &amp;lt;room&amp;gt; element natively (#1707)&lt;br /&gt;
* rewrite &amp;lt;room&amp;gt; to the legacy layout for front ends without room_element (#1708)&lt;br /&gt;
* replace a proxied front end&#039;s client string with Lich&#039;s (#1724)&lt;br /&gt;
* let each client declare the rich-stream rewrites it handles (#1726)&lt;br /&gt;
* log the intercepted and emitted client strings (#1731)&lt;br /&gt;
* count the first leg in Map.estimate_time with a from: room (#1739)&lt;br /&gt;
### Features (dr)&lt;br /&gt;
* DRCA.day_night_ok? exposes the waggle day/night rule (#1691)&lt;br /&gt;
* send the legacy compass after a &amp;lt;room&amp;gt; block rewritten for the front end (#1721)&lt;br /&gt;
* strip game links and doubled bold for front ends without them (#1722)&lt;br /&gt;
* opt-in filter for the room description DragonRealms sends with FLAG DESCRIPTION OFF (#1725)&lt;br /&gt;
* ignore NPCs by full name as well as noun (#1817)&lt;br /&gt;
### Bug Fixes (general)&lt;br /&gt;
* --login no longer rejects transport/bind options as game codes (#1685)&lt;br /&gt;
* --frontend=saga headless detachable clients get Saga handling (#1696)&lt;br /&gt;
* guard ActiveSpell and Gift references in XMLParser (#1711)&lt;br /&gt;
* ;hmr no longer reloads gem/stdlib files or dies on SyntaxError (#1718)&lt;br /&gt;
* trim whitespace from GameObj nouns (#1730)&lt;br /&gt;
* repair nested quotes before judging a stream desync (#1732)&lt;br /&gt;
* note Lich&#039;s client string on the Wizard and Frostbite paths (#1733)&lt;br /&gt;
* confirm a beta install with a second command instead of reading the client socket (#1737)&lt;br /&gt;
* write top-level Settings keys into the current row with a compare-and-swap (#1742)&lt;br /&gt;
* keep the existing map when Map.save_json fails (#1751)&lt;br /&gt;
* replace updated files atomically without moving them away (#1754)&lt;br /&gt;
* stage lich5-update snapshots and refuse to revert from an incomplete one (#1755)&lt;br /&gt;
* TextStripper.strip raises ArgumentError for invalid modes as documented (#1762)&lt;br /&gt;
* keep Vars dirty when a save fails so it is retried (#1763)&lt;br /&gt;
* share one end-anchored roundtime wait pattern across fput, dothis and move (#1767)&lt;br /&gt;
* show other sessions&#039; Settings changes on the next read (#1769)&lt;br /&gt;
* let SQLite lock waits release the GVL on every connection (#1771)&lt;br /&gt;
* replay Settings proxy writes on the stored row, keeping other sessions&#039; entries (#1772)&lt;br /&gt;
* recover session heartbeats after transient failures (#1775)&lt;br /&gt;
* bound set retries when the database remains busy (#1776)&lt;br /&gt;
* coordinate active-session handler lifetime (#1777)&lt;br /&gt;
* fail unreadable scripts without caching libraries (#1778)&lt;br /&gt;
* persist display settings before applying changes (#1779)&lt;br /&gt;
* preserve native dependency recovery rollback state (F63) (#1781)&lt;br /&gt;
* protect credential publication and CLI account updates (F1) (#1782)&lt;br /&gt;
* store writes made through Settings iteration and derived views (#1787)&lt;br /&gt;
* serialize the map without moving rooms off their ids (#1797)&lt;br /&gt;
* write personal map targets into go2&#039;s custom targets (#1800)&lt;br /&gt;
* respond, _respond and Lich::Messaging.msg return nil again (#1801)&lt;br /&gt;
* re-check GitHub on every lich5-update --update instead of reusing a stale target (#1806)&lt;br /&gt;
* make a Settings write under a navigation path a key-level compare-and-swap (#1807)&lt;br /&gt;
* close the frontend settings temp file before renaming it, and retry sharing violations (#1808)&lt;br /&gt;
* hold the revert lock while snapshotting and refuse cut-off older snapshots (#1810)&lt;br /&gt;
* make SQLite3::Backup on lich.db3 connections safe to interrupt and share (#1812)&lt;br /&gt;
* explain a missing .sal launch file instead of crashing (#1818)&lt;br /&gt;
* validate --add-account arguments and correct frontend note (#1820)&lt;br /&gt;
* normalize character names one way across entry.yaml writes and lookups (#1821)&lt;br /&gt;
* remove broken Win32 shellexecute path, fix Windows error paths (#1822)&lt;br /&gt;
* recommend Ruby 4.0.9 for security fixes and refresh Gemfile.lock (#1825)&lt;br /&gt;
* send Wrayth 1.0.1.28 client string for server XML feed (#1858)&lt;br /&gt;
### Bug Fixes (dr)&lt;br /&gt;
* DRC.bput resends once per roundtime refusal and ignores player speech (#1693)&lt;br /&gt;
* match DRParser patterns and Flags against a link-stripped line (#1702)&lt;br /&gt;
* use the GS link path for room objs/players when links are present (#1705)&lt;br /&gt;
* stage the worn inv stream and learn the stow container from its header (#1709)&lt;br /&gt;
* DRCMM.set_planet_data returns nil when no planet can be used (#1735)&lt;br /&gt;
* DRCT.find_empty_room skips a room walk_to can&#039;t reach (#1736)&lt;br /&gt;
* keep one experience reporter through expgains off/on and hot reload (#1738)&lt;br /&gt;
* bound SlackBot token request wait on a quiet stream (#1741)&lt;br /&gt;
* keep DRBanking balances in per-character rows (#1743)&lt;br /&gt;
* make the issue_command timeout guards fire and flag uncaptured health (#1744)&lt;br /&gt;
* recipe_lookup returns the recipe picked from its menu (#1746)&lt;br /&gt;
* keep DRC.collect practice mode on the cluttered-room retry (#1747)&lt;br /&gt;
* only mark SlackBot initialized after users.list succeeds (#1748)&lt;br /&gt;
* walk_to fails loudly from an unresolved room and reports arrival by Room.current (#1749)&lt;br /&gt;
* DRCC.get_crafting_item stops on &amp;quot;can&#039;t quite lift it&amp;quot; and keeps skip_exit (#1750)&lt;br /&gt;
* DRCC.stow_crafting_item stops retrying a belt tie that can&#039;t succeed (#1752)&lt;br /&gt;
* DRCC.empty_crucible? tilts molten metal and stops after 3 passes (#1756)&lt;br /&gt;
* alert when a held gear-set item fails to wear or put away (#1757)&lt;br /&gt;
* DRC.bput returns the immobile reply to callers that list it (#1758)&lt;br /&gt;
* bound check_moonwatch&#039;s wait and wait for real moon data (#1759)&lt;br /&gt;
* DRCT.find_empty_room falls back at once when the last buddy room is unreachable (#1760)&lt;br /&gt;
* identify a room without a usable UID by a unique text match (#1788)&lt;br /&gt;
* DRCI tie success reply must start with the TIE verb (#1790)&lt;br /&gt;
* bound DRC.collect retries in a room that stays cluttered (#1791)&lt;br /&gt;
* parse the current Moon Mage PERC MANA reply in DRCA.perc_mana (#1792)&lt;br /&gt;
* DRCI.dispose_trash never re-fetches an item it already held (#1793)&lt;br /&gt;
* DRCT.find_empty_room stops when it has no room it can reach (#1794)&lt;br /&gt;
* drop custom spell messages that can match zero characters (#1795)&lt;br /&gt;
* keep the SlackBot users cache per token (#1796)&lt;br /&gt;
* DRCC.repair_own_tools stows the tool once and stops on engaged (#1802)&lt;br /&gt;
* DRCT merchant helpers stop when the walk to the shop fails (#1803)&lt;br /&gt;
* don&#039;t charge or cast after a prep that drew no reply and shows no spell (#1804)&lt;br /&gt;
* DRC.retreat stops when held or unable to stand (#1805)&lt;br /&gt;
* stop SlackBot connection failures from killing the calling script (#1809)&lt;br /&gt;
* cap each Slack call SlackBot.new makes at startup (#1811)&lt;br /&gt;
* DRCT.find_empty_room asks the predicate in the buddy pass (#1815)&lt;br /&gt;
* list duplicate room NPCs as plain nouns and make DRRoom.npcs read-only (#1816)&lt;br /&gt;
* anchor DRParser state patterns against player speech and ESP (#1827)&lt;br /&gt;
* stop Flags.add from racing DRParser.check_events (#1828)&lt;br /&gt;
* enter the exp-columns branch only when the scan reads a column (#1829)&lt;br /&gt;
* rejoin lines cut by a roundtime refusal (#1857)&lt;br /&gt;
### Bug Fixes (gs)&lt;br /&gt;
* apply standalone crtrStatus updates to known creatures (#1716)&lt;br /&gt;
* drop Creature.damage_report delegators to removed methods (#1717)&lt;br /&gt;
* guard the GemStone Creature.register call in XMLParser (#1719)&lt;br /&gt;
* match held ready-list items by exact id, not substring (#1764)&lt;br /&gt;
* let a failed Infomon write be retried (#1765)&lt;br /&gt;
* release Infomon DB lock when a parsed section errors (#1766)&lt;br /&gt;
* recognize Council of Light Lodge joins (#1773)&lt;br /&gt;
* restore non-corporeal neck critical location (#1774)&lt;br /&gt;
&amp;lt;/PRE&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=267493</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=267493"/>
		<updated>2026-10-28T17:27:14Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Installing the Latest Stable Release */ update to 5.23.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.23.0 supporting Ruby 4.0 - published October 28, 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;
===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;
===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;
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 are two common options for playing Gemstone IV on a Mac: play natively with Saga (the official front end) or Avalon, or 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 (Saga or Avalon)===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. That guide sets Lich up with [[Saga]], the official Simutronics front end (currently in beta), and also covers [[Avalon]]. 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;
==Linux==&lt;br /&gt;
Pick the subsection for your distribution below. Each one installs Ruby and Lich; front ends (Saga, Profanity and Warlock) are covered once in [[#Frontends|Frontends]] at the end, since their steps are the same on every distribution.&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 for users of Debian/Chromebooks. To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;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 for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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 gtk3 gobject-introspection&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 4.0.9 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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;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;
The following steps should install Lich for users of Fedora. To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&lt;br /&gt;
&lt;br /&gt;
Lich 5 requires Ruby 4.0 or newer. The Ruby that ships with currently supported versions of Fedora is older than that (41 uses Ruby 3.3; 42 and 43 use Ruby 3.4), so these steps install Ruby 4.0.9 with &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039; instead of using Fedora&#039;s Ruby.&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 gtk3-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing rbenv Ruby installation rather than installing from scratch, skip step 3.  Instead, update your ruby-build with the following command, and then run only the &amp;lt;tt&amp;gt;rbenv install&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;rbenv global&amp;lt;/tt&amp;gt; lines from step 3.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
3. Install rbenv and Ruby 4.0.9:&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;
source ~/.bashrc&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.9 -v&lt;br /&gt;
rbenv global 4.0.9&lt;br /&gt;
ruby -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last command should print a line starting with &amp;lt;tt&amp;gt;ruby 4.0.9&amp;lt;/tt&amp;gt;. If it doesn&#039;t, close and reopen the terminal and try &amp;lt;tt&amp;gt;ruby -v&amp;lt;/tt&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
4. 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;
5. 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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Frontends===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-frontends&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-frontends&amp;quot;&amp;gt;&lt;br /&gt;
Finish the Lich installation for your distribution above first, then set up one of these front ends.&lt;br /&gt;
&lt;br /&gt;
====Saga====&lt;br /&gt;
[[Saga]] is the official Simutronics front end for GemStone IV and DragonRealms (currently in beta), and it works with Lich.  On Linux it comes as a single AppImage file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Install Saga&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Go to the [https://www.play.net/gs4/play/saga-info.asp Saga info page] and click &#039;&#039;&#039;Download for Linux&#039;&#039;&#039; (AppImage, x86_64).  On a Chromebook, move the downloaded file into the &#039;&#039;&#039;Linux files&#039;&#039;&#039; folder with the Files app so Linux can see it.&lt;br /&gt;
&lt;br /&gt;
Then put it where Lich looks for Saga, make it runnable, and start it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir -p /opt/Saga&lt;br /&gt;
sudo mv ~/Downloads/Saga-*.AppImage /opt/Saga/saga&lt;br /&gt;
sudo chmod +x /opt/Saga/saga&lt;br /&gt;
/opt/Saga/saga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;On a Chromebook use &amp;lt;tt&amp;gt;~/Saga-*.AppImage&amp;lt;/tt&amp;gt; in place of &amp;lt;tt&amp;gt;~/Downloads/Saga-*.AppImage&amp;lt;/tt&amp;gt;.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to the game from inside Saga once, without Lich, to make sure Saga itself works.&lt;br /&gt;
&lt;br /&gt;
If Saga will not start and mentions FUSE or &amp;lt;tt&amp;gt;libfuse.so.2&amp;lt;/tt&amp;gt;, install FUSE 2 and try again: &amp;lt;tt&amp;gt;sudo apt-get install libfuse2&amp;lt;/tt&amp;gt; on Debian/Chromebook (on Debian 13 and newer, &amp;lt;tt&amp;gt;libfuse2t64&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;sudo pacman -S fuse2&amp;lt;/tt&amp;gt; on Arch, or &amp;lt;tt&amp;gt;sudo dnf install fuse-libs&amp;lt;/tt&amp;gt; on Fedora.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use Saga with Lich&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Saga starts Lich for you:&lt;br /&gt;
# Log in with Saga normally, then choose &#039;&#039;&#039;File &amp;amp;rarr; Enable Login with Lich&#039;&#039;&#039;.&lt;br /&gt;
# Choose &#039;&#039;&#039;File &amp;amp;rarr; Return to login&#039;&#039;&#039;.&lt;br /&gt;
# Click &#039;&#039;&#039;Connect&#039;&#039;&#039;, then &#039;&#039;&#039;Via Lich&#039;&#039;&#039;, and point it to your Lich folder (&amp;lt;tt&amp;gt;~/Lich5&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# If Saga asks where Ruby is, or Lich will not start, run &amp;lt;tt&amp;gt;rbenv which ruby&amp;lt;/tt&amp;gt; and give Saga the path it prints (it ends in &amp;lt;tt&amp;gt;.rbenv/versions/4.0.9/bin/ruby&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# Log in.  The game will start in Saga with Lich running.&lt;br /&gt;
&lt;br /&gt;
Once that works, you can also start from the Lich login window (&amp;lt;tt&amp;gt;ruby ~/Lich5/lich.rbw&amp;lt;/tt&amp;gt;): select your character, choose &#039;&#039;&#039;Saga&#039;&#039;&#039; as the front end, and click &#039;&#039;&#039;Play&#039;&#039;&#039;.  Lich will open Saga and Saga logs in with its own saved login, so make sure Saga has saved your account and quit Saga before you do this.&lt;br /&gt;
&lt;br /&gt;
See the [[Saga]] page for more about Saga, including importing Wrayth settings.&lt;br /&gt;
&lt;br /&gt;
====Profanity====&lt;br /&gt;
Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth). Its gems (such as &amp;lt;tt&amp;gt;curses&amp;lt;/tt&amp;gt;) are installed by the &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt; step above. Download 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 Warlock from https://sproctor.github.io/warlock3/download.html, then 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 your login information with these settings to use the Lich launcher: https://github.com/sproctor/warlock3/wiki/Lich-support&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Saga&amp;diff=267459</id>
		<title>Saga</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Saga&amp;diff=267459"/>
		<updated>2026-10-28T13:17:06Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Getting Started */&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; — available as x64 and ARM64 install.&lt;br /&gt;
#* &#039;&#039;&#039;macOS&#039;&#039;&#039; — separate builds for Apple Silicon and Intel.&lt;br /&gt;
#* &#039;&#039;&#039;Linux&#039;&#039;&#039; — distributed as an AppImage (x86_64).&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=267458</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=267458"/>
		<updated>2026-10-28T13:15:21Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Saga */ linux version does update itself&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;
===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;
===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;
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 are two common options for playing Gemstone IV on a Mac: play natively with Saga (the official front end) or Avalon, or 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 (Saga or Avalon)===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. That guide sets Lich up with [[Saga]], the official Simutronics front end (currently in beta), and also covers [[Avalon]]. 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;
==Linux==&lt;br /&gt;
Pick the subsection for your distribution below. Each one installs Ruby and Lich; front ends (Saga, Profanity and Warlock) are covered once in [[#Frontends|Frontends]] at the end, since their steps are the same on every distribution.&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 for users of Debian/Chromebooks. To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;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 for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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 gtk3 gobject-introspection&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 4.0.9 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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;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;
The following steps should install Lich for users of Fedora. To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&lt;br /&gt;
&lt;br /&gt;
Lich 5 requires Ruby 4.0 or newer. The Ruby that ships with currently supported versions of Fedora is older than that (41 uses Ruby 3.3; 42 and 43 use Ruby 3.4), so these steps install Ruby 4.0.9 with &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039; instead of using Fedora&#039;s Ruby.&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 gtk3-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing rbenv Ruby installation rather than installing from scratch, skip step 3.  Instead, update your ruby-build with the following command, and then run only the &amp;lt;tt&amp;gt;rbenv install&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;rbenv global&amp;lt;/tt&amp;gt; lines from step 3.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
3. Install rbenv and Ruby 4.0.9:&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;
source ~/.bashrc&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.9 -v&lt;br /&gt;
rbenv global 4.0.9&lt;br /&gt;
ruby -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last command should print a line starting with &amp;lt;tt&amp;gt;ruby 4.0.9&amp;lt;/tt&amp;gt;. If it doesn&#039;t, close and reopen the terminal and try &amp;lt;tt&amp;gt;ruby -v&amp;lt;/tt&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
4. 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;
5. 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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Frontends===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-frontends&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-frontends&amp;quot;&amp;gt;&lt;br /&gt;
Finish the Lich installation for your distribution above first, then set up one of these front ends.&lt;br /&gt;
&lt;br /&gt;
====Saga====&lt;br /&gt;
[[Saga]] is the official Simutronics front end for GemStone IV and DragonRealms (currently in beta), and it works with Lich.  On Linux it comes as a single AppImage file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Install Saga&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Go to the [https://www.play.net/gs4/play/saga-info.asp Saga info page] and click &#039;&#039;&#039;Download for Linux&#039;&#039;&#039; (AppImage, x86_64).  On a Chromebook, move the downloaded file into the &#039;&#039;&#039;Linux files&#039;&#039;&#039; folder with the Files app so Linux can see it.&lt;br /&gt;
&lt;br /&gt;
Then put it where Lich looks for Saga, make it runnable, and start it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir -p /opt/Saga&lt;br /&gt;
sudo mv ~/Downloads/Saga-*.AppImage /opt/Saga/saga&lt;br /&gt;
sudo chmod +x /opt/Saga/saga&lt;br /&gt;
/opt/Saga/saga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;On a Chromebook use &amp;lt;tt&amp;gt;~/Saga-*.AppImage&amp;lt;/tt&amp;gt; in place of &amp;lt;tt&amp;gt;~/Downloads/Saga-*.AppImage&amp;lt;/tt&amp;gt;.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to the game from inside Saga once, without Lich, to make sure Saga itself works.&lt;br /&gt;
&lt;br /&gt;
If Saga will not start and mentions FUSE or &amp;lt;tt&amp;gt;libfuse.so.2&amp;lt;/tt&amp;gt;, install FUSE 2 and try again: &amp;lt;tt&amp;gt;sudo apt-get install libfuse2&amp;lt;/tt&amp;gt; on Debian/Chromebook (on Debian 13 and newer, &amp;lt;tt&amp;gt;libfuse2t64&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;sudo pacman -S fuse2&amp;lt;/tt&amp;gt; on Arch, or &amp;lt;tt&amp;gt;sudo dnf install fuse-libs&amp;lt;/tt&amp;gt; on Fedora.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use Saga with Lich&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Saga starts Lich for you:&lt;br /&gt;
# Log in with Saga normally, then choose &#039;&#039;&#039;File &amp;amp;rarr; Enable Login with Lich&#039;&#039;&#039;.&lt;br /&gt;
# Choose &#039;&#039;&#039;File &amp;amp;rarr; Return to login&#039;&#039;&#039;.&lt;br /&gt;
# Click &#039;&#039;&#039;Connect&#039;&#039;&#039;, then &#039;&#039;&#039;Via Lich&#039;&#039;&#039;, and point it to your Lich folder (&amp;lt;tt&amp;gt;~/Lich5&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# If Saga asks where Ruby is, or Lich will not start, run &amp;lt;tt&amp;gt;rbenv which ruby&amp;lt;/tt&amp;gt; and give Saga the path it prints (it ends in &amp;lt;tt&amp;gt;.rbenv/versions/4.0.9/bin/ruby&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# Log in.  The game will start in Saga with Lich running.&lt;br /&gt;
&lt;br /&gt;
Once that works, you can also start from the Lich login window (&amp;lt;tt&amp;gt;ruby ~/Lich5/lich.rbw&amp;lt;/tt&amp;gt;): select your character, choose &#039;&#039;&#039;Saga&#039;&#039;&#039; as the front end, and click &#039;&#039;&#039;Play&#039;&#039;&#039;.  Lich will open Saga and Saga logs in with its own saved login, so make sure Saga has saved your account and quit Saga before you do this.&lt;br /&gt;
&lt;br /&gt;
See the [[Saga]] page for more about Saga, including importing Wrayth settings.&lt;br /&gt;
&lt;br /&gt;
====Profanity====&lt;br /&gt;
Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth). Its gems (such as &amp;lt;tt&amp;gt;curses&amp;lt;/tt&amp;gt;) are installed by the &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt; step above. Download 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 Warlock from https://sproctor.github.io/warlock3/download.html, then 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 your login information with these settings to use the Lich launcher: https://github.com/sproctor/warlock3/wiki/Lich-support&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=267457</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=267457"/>
		<updated>2026-10-28T13:13:26Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: update to include mention of Saga for MacOS and Linux&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;
===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;
===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;
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 are two common options for playing Gemstone IV on a Mac: play natively with Saga (the official front end) or Avalon, or 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 (Saga or Avalon)===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. That guide sets Lich up with [[Saga]], the official Simutronics front end (currently in beta), and also covers [[Avalon]]. 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;
==Linux==&lt;br /&gt;
Pick the subsection for your distribution below. Each one installs Ruby and Lich; front ends (Saga, Profanity and Warlock) are covered once in [[#Frontends|Frontends]] at the end, since their steps are the same on every distribution.&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 for users of Debian/Chromebooks. To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;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 for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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 gtk3 gobject-introspection&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 4.0.9 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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;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;
The following steps should install Lich for users of Fedora. To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&lt;br /&gt;
&lt;br /&gt;
Lich 5 requires Ruby 4.0 or newer. The Ruby that ships with currently supported versions of Fedora is older than that (41 uses Ruby 3.3; 42 and 43 use Ruby 3.4), so these steps install Ruby 4.0.9 with &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039; instead of using Fedora&#039;s Ruby.&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 gtk3-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing rbenv Ruby installation rather than installing from scratch, skip step 3.  Instead, update your ruby-build with the following command, and then run only the &amp;lt;tt&amp;gt;rbenv install&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;rbenv global&amp;lt;/tt&amp;gt; lines from step 3.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
3. Install rbenv and Ruby 4.0.9:&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;
source ~/.bashrc&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.9 -v&lt;br /&gt;
rbenv global 4.0.9&lt;br /&gt;
ruby -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last command should print a line starting with &amp;lt;tt&amp;gt;ruby 4.0.9&amp;lt;/tt&amp;gt;. If it doesn&#039;t, close and reopen the terminal and try &amp;lt;tt&amp;gt;ruby -v&amp;lt;/tt&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
4. 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;
5. 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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Frontends===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-frontends&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-frontends&amp;quot;&amp;gt;&lt;br /&gt;
Finish the Lich installation for your distribution above first, then set up one of these front ends.&lt;br /&gt;
&lt;br /&gt;
====Saga====&lt;br /&gt;
[[Saga]] is the official Simutronics front end for GemStone IV and DragonRealms (currently in beta), and it works with Lich.  On Linux it comes as a single AppImage file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Install Saga&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Go to the [https://www.play.net/gs4/play/saga-info.asp Saga info page] and click &#039;&#039;&#039;Download for Linux&#039;&#039;&#039; (AppImage, x86_64).  On a Chromebook, move the downloaded file into the &#039;&#039;&#039;Linux files&#039;&#039;&#039; folder with the Files app so Linux can see it.&lt;br /&gt;
&lt;br /&gt;
Then put it where Lich looks for Saga, make it runnable, and start it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir -p /opt/Saga&lt;br /&gt;
sudo mv ~/Downloads/Saga-*.AppImage /opt/Saga/saga&lt;br /&gt;
sudo chmod +x /opt/Saga/saga&lt;br /&gt;
/opt/Saga/saga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;On a Chromebook use &amp;lt;tt&amp;gt;~/Saga-*.AppImage&amp;lt;/tt&amp;gt; in place of &amp;lt;tt&amp;gt;~/Downloads/Saga-*.AppImage&amp;lt;/tt&amp;gt;.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to the game from inside Saga once, without Lich, to make sure Saga itself works.&lt;br /&gt;
&lt;br /&gt;
If Saga will not start and mentions FUSE or &amp;lt;tt&amp;gt;libfuse.so.2&amp;lt;/tt&amp;gt;, install FUSE 2 and try again: &amp;lt;tt&amp;gt;sudo apt-get install libfuse2&amp;lt;/tt&amp;gt; on Debian/Chromebook (on Debian 13 and newer, &amp;lt;tt&amp;gt;libfuse2t64&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;sudo pacman -S fuse2&amp;lt;/tt&amp;gt; on Arch, or &amp;lt;tt&amp;gt;sudo dnf install fuse-libs&amp;lt;/tt&amp;gt; on Fedora.&lt;br /&gt;
&lt;br /&gt;
The Linux build of Saga does not update itself yet.  Check the Saga info page now and then, download the newest AppImage, and repeat the &amp;lt;tt&amp;gt;sudo mv&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sudo chmod&amp;lt;/tt&amp;gt; steps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use Saga with Lich&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Saga starts Lich for you:&lt;br /&gt;
# Log in with Saga normally, then choose &#039;&#039;&#039;File &amp;amp;rarr; Enable Login with Lich&#039;&#039;&#039;.&lt;br /&gt;
# Choose &#039;&#039;&#039;File &amp;amp;rarr; Return to login&#039;&#039;&#039;.&lt;br /&gt;
# Click &#039;&#039;&#039;Connect&#039;&#039;&#039;, then &#039;&#039;&#039;Via Lich&#039;&#039;&#039;, and point it to your Lich folder (&amp;lt;tt&amp;gt;~/Lich5&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# If Saga asks where Ruby is, or Lich will not start, run &amp;lt;tt&amp;gt;rbenv which ruby&amp;lt;/tt&amp;gt; and give Saga the path it prints (it ends in &amp;lt;tt&amp;gt;.rbenv/versions/4.0.9/bin/ruby&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# Log in.  The game will start in Saga with Lich running.&lt;br /&gt;
&lt;br /&gt;
Once that works, you can also start from the Lich login window (&amp;lt;tt&amp;gt;ruby ~/Lich5/lich.rbw&amp;lt;/tt&amp;gt;): select your character, choose &#039;&#039;&#039;Saga&#039;&#039;&#039; as the front end, and click &#039;&#039;&#039;Play&#039;&#039;&#039;.  Lich will open Saga and Saga logs in with its own saved login, so make sure Saga has saved your account and quit Saga before you do this.&lt;br /&gt;
&lt;br /&gt;
See the [[Saga]] page for more about Saga, including importing Wrayth settings.&lt;br /&gt;
&lt;br /&gt;
====Profanity====&lt;br /&gt;
Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth). Its gems (such as &amp;lt;tt&amp;gt;curses&amp;lt;/tt&amp;gt;) are installed by the &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt; step above. Download 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 Warlock from https://sproctor.github.io/warlock3/download.html, then 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 your login information with these settings to use the Lich launcher: https://github.com/sproctor/warlock3/wiki/Lich-support&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software&amp;diff=267456</id>
		<title>Lich:Software</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software&amp;diff=267456"/>
		<updated>2026-10-28T13:13:05Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: Undo revision 267455 by WHIGHTCNIGHT (talk) wrong page... oops&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;alert alert-info&amp;quot;&amp;gt;&amp;lt;center&amp;gt;&#039;&#039;&#039;{{mono|;TUNE TOWNCRIER }}to join the TownCrier channel and get GS news and tips every five minutes.  There is no chat on this channel.&#039;&#039;&#039;&amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===About===&lt;br /&gt;
&amp;lt;section begin=About /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;The Lich&#039;&#039;&#039; is third-party software that expands scripting capabilities on Simutronics front end clients ([[Wizard (front end)|The Wizard]] and [[Wrayth]] for Windows users, and [[Avalon]] for Mac OS X users), allowing players to script using the Ruby Programming Language, a high-level programming language with almost limitless capability.  The program comes bundled with several scripts, such as scripts that calculate a character&#039;s [[redux]], move from any location to another within a database, walk through an area until a creature is found, and spell up a character using all available spells.  Also, there is a repository that allows for the quick, easy downloading of user-made scripts through The Lich, itself.  Scripts can range from being very simple to quite advanced; for example, there is a script, titled xpSF, that modifies the experience window in Wrayth to display additional information about the character&#039;s experience level that updates itself when experience is gained. &amp;lt;section end=About /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div {{prettydiv}}&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CENTER&amp;gt;{{boldmono|&amp;lt;tt&amp;gt;Installation Guides&amp;lt;/tt&amp;gt;}}&amp;lt;/CENTER&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Windows&#039;&#039;&#039;&lt;br /&gt;
** [[Lich_(software)/Installation#Windows|Windows]]&lt;br /&gt;
*&#039;&#039;&#039;Mac&#039;&#039;&#039;&lt;br /&gt;
** [[Mac_Installation_-_Lich_(software)|Mac OS X]]&lt;br /&gt;
* &#039;&#039;&#039;Linux&#039;&#039;&#039;&lt;br /&gt;
** [[Lich_(software)/Installation#Chromebook_.26_Debian_variants|Chromebook &amp;amp; Debian Variants]]&lt;br /&gt;
** [[Lich_(software)/Installation#Fedora|Fedora Installation - Lich (software)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What is &amp;quot;Lich&amp;quot;?==&lt;br /&gt;
Lich is an open source scripting engine for text-based MUDs. It is not a complete front-end in and of itself: it operates much like a proxy server and communicates with the user through their chosen front-end (effectively giving the appearance of expanding the front-end&#039;s features with its own). It allows you to write and run scripts for a text-based MUD in the Ruby language.&lt;br /&gt;
==How Does Lich Function==&lt;br /&gt;
Lich defaults on Windows to a Lich 5 folder on your desktop. Lich launches by double clicking on the lich.rbw file. Folders are created inside the Lich 5 directory, the primary ones of user interest are the &amp;lt;CODE&amp;gt;/scripts&amp;lt;/CODE&amp;gt; directory and the &amp;lt;CODE&amp;gt;/data&amp;lt;/CODE&amp;gt; directory. Scripts contains user downloaded scripts and the Data directory contains information used by lich. The most notable items here are &amp;lt;CODE&amp;gt;alias.db3&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&amp;lt;CODE&amp;gt;entry.dat&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&amp;lt;CODE&amp;gt;lich.db3&amp;lt;/CODE&amp;gt; which contains all your user information. This file should be backed up often, preferable with something like ;Lich Script:&lt;br /&gt;
&lt;br /&gt;
Lich was originally created by [http://lichproject.sourceforge.net/ Shaelun], who brought it up from an idea to version 3.57. Starting with version 3.58 through 4.6.56, Lich was maintained by [http://lichproject.org/ Tillmen]. Tillmen&#039;s versions focused more heavily on Simutronics games, specifically Gemstone IV. If you are interested in non-Simutronics games, you might be better served with Shaelun&#039;s version. Starting with Lich v5, Lich has been forked over by the team at [https://github.com/elanthia-online/lich-5/ Elanthia-Online] to update and continue development in a collaborative format with contributions from both GemstoneIV and DragonRealms contributors. Current [[Lich_(software)/Installation|installation]] instructions now use Lich v5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How do I use it==&lt;br /&gt;
Lich itself doesn&#039;t do much. At it&#039;s core, it parses incoming XML from the game and runs it through an engine. Scripts that a user downloads perform a varity of functions with that information. &lt;br /&gt;
&lt;br /&gt;
{{#section:Lich:Script Repository|popularscripts}}&lt;br /&gt;
&lt;br /&gt;
==F.A.Q and Common commands.==&lt;br /&gt;
&#039;&#039;&#039;Q: Where did my inventory windows go?&#039;&#039;&#039;&lt;br /&gt;
: A: If you use inventory windows in Wrayth, you’ll find they have disappeared the first time you run Lich on each character. Lich hijacks the setting to provide container contents to scripts. In doing so, it’s unable to tell what the setting was to start with, so it turns it off (from Wrayth’s point of view). Just type “set inv on” to turn it back on.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: Why do I keep disconnecting immediately after login?&#039;&#039;&#039;&lt;br /&gt;
: A: This generally happens on only one character, and affects only Wrayth. It seems to be caused by Wrayth downloading a characters settings from the Simu server. To fix it, change Wrayth to store scripts/highlights/macros/etc locally, or log in once on Wrayth without Lich to allow it to do whatever it’s trying to do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: How come when I cast spells on people it doesn&#039;t tell the correct duration for the spell?&#039;&#039;&#039;&lt;br /&gt;
: A: This is due to not setting permissions correctly with LNet once logged in. In general, most people should be fine with typing: ;LNET ALLOW ALL ALL. This should allow anyone with Lich installed to detect your spell durations. It also allows other things, to see exactly what you can do type ;LNET HELP ingame and read over the output it provides.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: How do I enable or disable the various LichID or RealID in room description title?&#039;&#039;&#039;&lt;br /&gt;
: A: To enable/disable the LichID or RealID you would use one of the following commands in-game:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# LichID&lt;br /&gt;
;display lichid &amp;lt;true|false&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# RealID&lt;br /&gt;
;display uid &amp;lt;true|false&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* [[Lich scripting reference]]&lt;br /&gt;
* [[Lich:Script_Repository#Popular_Lich_Scripts | Popular Lich Scripts ]]&lt;br /&gt;
* [https://nisugi.github.io/lich-5-docs/ Lich 5 AI Generated Documentation]&lt;br /&gt;
* [https://deepwiki.com/elanthia-online/lich-5 Alternative AI Lich5 Generated Wiki]&lt;br /&gt;
* [https://lich-mapdb-room.ffng.xyz/ Mapdb Lookup Reference]&lt;br /&gt;
* [https://blue-tracker.duckdns.org Blue/GM Discord Post Tracker]&lt;br /&gt;
* [https://shops.elanthia.online/ New Playershops]&lt;br /&gt;
* [https://ps.lichproject.org/ Old Playershops]&lt;br /&gt;
* [https://discord.gg/KF9Wr8u GS Discord] #scripting channel for additional Lich Support&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;br /&gt;
[[Category:New Player]]&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software&amp;diff=267455</id>
		<title>Lich:Software</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Software&amp;diff=267455"/>
		<updated>2026-10-28T13:12:25Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: update to include mention of Saga for MacOS and Linux&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;
===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;
===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;
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 are two common options for playing Gemstone IV on a Mac: play natively with Saga (the official front end) or Avalon, or 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 (Saga or Avalon)===&lt;br /&gt;
Players with Macs can use [[Mac_Installation_-_Lich_(software) | Installing Lich on Macs]] for installation help. That guide sets Lich up with [[Saga]], the official Simutronics front end (currently in beta), and also covers [[Avalon]]. 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;
==Linux==&lt;br /&gt;
Pick the subsection for your distribution below. Each one installs Ruby and Lich; front ends (Saga, Profanity and Warlock) are covered once in [[#Frontends|Frontends]] at the end, since their steps are the same on every distribution.&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 for users of Debian/Chromebooks. To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;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 for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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 gtk3 gobject-introspection&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 4.0.9 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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;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;
The following steps should install Lich for users of Fedora. To also install a front end such as Saga, Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&lt;br /&gt;
&lt;br /&gt;
Lich 5 requires Ruby 4.0 or newer. The Ruby that ships with currently supported versions of Fedora is older than that (41 uses Ruby 3.3; 42 and 43 use Ruby 3.4), so these steps install Ruby 4.0.9 with &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039; instead of using Fedora&#039;s Ruby.&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 gtk3-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing rbenv Ruby installation rather than installing from scratch, skip step 3.  Instead, update your ruby-build with the following command, and then run only the &amp;lt;tt&amp;gt;rbenv install&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;rbenv global&amp;lt;/tt&amp;gt; lines from step 3.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
3. Install rbenv and Ruby 4.0.9:&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;
source ~/.bashrc&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.9 -v&lt;br /&gt;
rbenv global 4.0.9&lt;br /&gt;
ruby -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last command should print a line starting with &amp;lt;tt&amp;gt;ruby 4.0.9&amp;lt;/tt&amp;gt;. If it doesn&#039;t, close and reopen the terminal and try &amp;lt;tt&amp;gt;ruby -v&amp;lt;/tt&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
4. 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;
5. 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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Frontends===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-frontends&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-frontends&amp;quot;&amp;gt;&lt;br /&gt;
Finish the Lich installation for your distribution above first, then set up one of these front ends.&lt;br /&gt;
&lt;br /&gt;
====Saga====&lt;br /&gt;
[[Saga]] is the official Simutronics front end for GemStone IV and DragonRealms (currently in beta), and it works with Lich.  On Linux it comes as a single AppImage file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Install Saga&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Go to the [https://www.play.net/gs4/play/saga-info.asp Saga info page] and click &#039;&#039;&#039;Download for Linux&#039;&#039;&#039; (AppImage, x86_64).  On a Chromebook, move the downloaded file into the &#039;&#039;&#039;Linux files&#039;&#039;&#039; folder with the Files app so Linux can see it.&lt;br /&gt;
&lt;br /&gt;
Then put it where Lich looks for Saga, make it runnable, and start it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir -p /opt/Saga&lt;br /&gt;
sudo mv ~/Downloads/Saga-*.AppImage /opt/Saga/saga&lt;br /&gt;
sudo chmod +x /opt/Saga/saga&lt;br /&gt;
/opt/Saga/saga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;On a Chromebook use &amp;lt;tt&amp;gt;~/Saga-*.AppImage&amp;lt;/tt&amp;gt; in place of &amp;lt;tt&amp;gt;~/Downloads/Saga-*.AppImage&amp;lt;/tt&amp;gt;.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to the game from inside Saga once, without Lich, to make sure Saga itself works.&lt;br /&gt;
&lt;br /&gt;
If Saga will not start and mentions FUSE or &amp;lt;tt&amp;gt;libfuse.so.2&amp;lt;/tt&amp;gt;, install FUSE 2 and try again: &amp;lt;tt&amp;gt;sudo apt-get install libfuse2&amp;lt;/tt&amp;gt; on Debian/Chromebook (on Debian 13 and newer, &amp;lt;tt&amp;gt;libfuse2t64&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;sudo pacman -S fuse2&amp;lt;/tt&amp;gt; on Arch, or &amp;lt;tt&amp;gt;sudo dnf install fuse-libs&amp;lt;/tt&amp;gt; on Fedora.&lt;br /&gt;
&lt;br /&gt;
The Linux build of Saga does not update itself yet.  Check the Saga info page now and then, download the newest AppImage, and repeat the &amp;lt;tt&amp;gt;sudo mv&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sudo chmod&amp;lt;/tt&amp;gt; steps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use Saga with Lich&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Saga starts Lich for you:&lt;br /&gt;
# Log in with Saga normally, then choose &#039;&#039;&#039;File &amp;amp;rarr; Enable Login with Lich&#039;&#039;&#039;.&lt;br /&gt;
# Choose &#039;&#039;&#039;File &amp;amp;rarr; Return to login&#039;&#039;&#039;.&lt;br /&gt;
# Click &#039;&#039;&#039;Connect&#039;&#039;&#039;, then &#039;&#039;&#039;Via Lich&#039;&#039;&#039;, and point it to your Lich folder (&amp;lt;tt&amp;gt;~/Lich5&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# If Saga asks where Ruby is, or Lich will not start, run &amp;lt;tt&amp;gt;rbenv which ruby&amp;lt;/tt&amp;gt; and give Saga the path it prints (it ends in &amp;lt;tt&amp;gt;.rbenv/versions/4.0.9/bin/ruby&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# Log in.  The game will start in Saga with Lich running.&lt;br /&gt;
&lt;br /&gt;
Once that works, you can also start from the Lich login window (&amp;lt;tt&amp;gt;ruby ~/Lich5/lich.rbw&amp;lt;/tt&amp;gt;): select your character, choose &#039;&#039;&#039;Saga&#039;&#039;&#039; as the front end, and click &#039;&#039;&#039;Play&#039;&#039;&#039;.  Lich will open Saga and Saga logs in with its own saved login, so make sure Saga has saved your account and quit Saga before you do this.&lt;br /&gt;
&lt;br /&gt;
See the [[Saga]] page for more about Saga, including importing Wrayth settings.&lt;br /&gt;
&lt;br /&gt;
====Profanity====&lt;br /&gt;
Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth). Its gems (such as &amp;lt;tt&amp;gt;curses&amp;lt;/tt&amp;gt;) are installed by the &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt; step above. Download 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 Warlock from https://sproctor.github.io/warlock3/download.html, then 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 your login information with these settings to use the Lich launcher: https://github.com/sproctor/warlock3/wiki/Lich-support&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Mac_Installation&amp;diff=267452</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=267452"/>
		<updated>2026-10-28T13:09:29Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: change to use Saga as the primary FE choice&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 installs Lich for use with [[Saga]], the official Simutronics front end for Mac, Windows and Linux (currently in beta). Saga is now the recommended front end on Mac. [[Avalon]] and other front ends also work, and are covered in [[#Front Ends|Front Ends]] below. 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 Homebrew first.  (You will install your front end, such as Saga, at the end of this guide.)&lt;br /&gt;
&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 Homebrew 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 Homebrew 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 download and unzip the current Lich software.&lt;br /&gt;
&lt;br /&gt;
* Finally, we will use Bundler to install the gems Lich needs (listed in Lich&#039;s own &amp;lt;code&amp;gt;Gemfile&amp;lt;/code&amp;gt;) into the new Ruby that we installed.&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.9&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rbenv global 4.0.9&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.9 (2026-10-23 revision 3e93b23afc) +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.9 part -&amp;gt; it needs to read 4.0.9&lt;br /&gt;
&lt;br /&gt;
If your version reflects 4.0.9, proceed 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 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;
Now we will install the gems Lich needs.  Lich includes a file called &amp;lt;code&amp;gt;Gemfile&amp;lt;/code&amp;gt; that lists them, so Bundler can install exactly the right set.  The Gemfile also lists some developer-only gems (the &amp;lt;code&amp;gt;development&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;vscode&amp;lt;/code&amp;gt; groups) that you do not need, so we tell Bundler to skip them.  Enter these commands in Terminal, one at a time, and press ENTER.  Wait for the system to finish before moving on to the next.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;cd ~/Desktop/Lich5&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;bundle config set --local without &#039;development vscode&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;bundle install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;bundle install&amp;lt;/code&amp;gt; step can take several minutes (building the GTK gems is the slow part).  When it finishes you should see a line beginning with &amp;lt;code&amp;gt;Bundle complete!&amp;lt;/code&amp;gt;.  If you see an error instead, seek assistance.&lt;br /&gt;
&lt;br /&gt;
Note: you may see other guides use &amp;lt;code&amp;gt;bundle install --without development vscode&amp;lt;/code&amp;gt;.  That flag has been removed from the version of Bundler that ships with Ruby 4.0, so use the &amp;lt;code&amp;gt;bundle config set&amp;lt;/code&amp;gt; command above instead.&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.&lt;br /&gt;
&lt;br /&gt;
==Starting Lich==&lt;br /&gt;
&lt;br /&gt;
To start Lich on its own, 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.  How you use it depends on your front end; see below.&lt;br /&gt;
&lt;br /&gt;
The first time Lich connects to the game, it will automatically download the map database and associated image files.  You will also see some new Lich-related text in the game window, including a repository error (normal).&lt;br /&gt;
&lt;br /&gt;
==Front Ends==&lt;br /&gt;
&lt;br /&gt;
===Saga (recommended)===&lt;br /&gt;
[[Saga]] is the official Simutronics front end for GemStone IV and DragonRealms, currently in beta.  It replaces Wrayth and the old Simutronics launcher (SGE) with its own login screen, and it works with Lich.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Install Saga&#039;&#039;&#039;&lt;br /&gt;
# Go to the [https://www.play.net/gs4/play/saga-info.asp Saga info page] and click &#039;&#039;&#039;Download for Mac&#039;&#039;&#039;.  Choose the &#039;&#039;&#039;Apple Silicon&#039;&#039;&#039; build for M1/M2/M3/M4 Macs, or &#039;&#039;&#039;Intel&#039;&#039;&#039; for older Macs.  (Apple menu &amp;amp;rarr; About This Mac shows which you have.)&lt;br /&gt;
# Open the downloaded &amp;lt;code&amp;gt;.dmg&amp;lt;/code&amp;gt; file and drag Saga into your Applications folder.&lt;br /&gt;
# Start Saga from Applications.  During the beta the Mac builds are not signed, so macOS may refuse to open it the first time.  If so, open System Settings &amp;amp;rarr; Privacy &amp;amp; Security, scroll down, and click &#039;&#039;&#039;Open Anyway&#039;&#039;&#039; next to the Saga message.&lt;br /&gt;
# Log in to the game from inside Saga once, without Lich, to make sure Saga itself works.&lt;br /&gt;
&lt;br /&gt;
The Mac build of Saga does not update itself yet.  Check the Saga info page now and then and download the newest version the same way.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use Saga with Lich&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Saga starts Lich for you:&lt;br /&gt;
# Log in with Saga normally, then choose &#039;&#039;&#039;File &amp;amp;rarr; Enable Login with Lich&#039;&#039;&#039;.&lt;br /&gt;
# Choose &#039;&#039;&#039;File &amp;amp;rarr; Return to login&#039;&#039;&#039;.&lt;br /&gt;
# Click &#039;&#039;&#039;Connect&#039;&#039;&#039;, then &#039;&#039;&#039;Via Lich&#039;&#039;&#039;, and point it to your Lich folder (&amp;lt;code&amp;gt;~/Desktop/Lich5&amp;lt;/code&amp;gt;).&lt;br /&gt;
# If Saga asks where Ruby is, or Lich will not start, run &amp;lt;code&amp;gt;rbenv which ruby&amp;lt;/code&amp;gt; in the Terminal and give Saga the path it prints (it ends in &amp;lt;code&amp;gt;.rbenv/versions/4.0.9/bin/ruby&amp;lt;/code&amp;gt;).  Apps started from Finder do not see the Ruby that rbenv set up in your Terminal.&lt;br /&gt;
# Log in.  The game will start in Saga with Lich running.&lt;br /&gt;
&lt;br /&gt;
Once that works, you can also start from the Lich login window instead (see [[#Starting Lich|Starting Lich]]): select your character, choose &#039;&#039;&#039;Saga&#039;&#039;&#039; as the front end, and click &#039;&#039;&#039;PLAY&#039;&#039;&#039;.  Lich will open Saga and Saga logs in with its own saved login, so make sure Saga has saved your account and quit Saga before you do this.&lt;br /&gt;
&lt;br /&gt;
See the [[Saga]] page for more about Saga, including importing Wrayth settings.&lt;br /&gt;
&lt;br /&gt;
===Avalon===&lt;br /&gt;
[[Avalon]] is the older official Mac front end.  Install it from the [https://www.play.net/gs4/play/avalon-info.asp Avalon info page], then:&lt;br /&gt;
# Start Lich (see [[#Starting Lich|Starting Lich]]).&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!&lt;br /&gt;
&lt;br /&gt;
===Other Front Ends===&lt;br /&gt;
[https://warlockfe.github.io/ Warlock] is a third-party front end that also works with Lich.  Configuration for Mac (and other OS types) is 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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=267451</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=267451"/>
		<updated>2026-10-28T12:53:19Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: collapse frontend section&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;
==Linux==&lt;br /&gt;
Pick the subsection for your distribution below. Each one installs Ruby and Lich; front ends (Profanity and Warlock) are covered once in [[#Frontends|Frontends]] at the end, since their steps are the same on every distribution.&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 for users of Debian/Chromebooks. To also install a front end such as Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;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 for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). To also install a front end such as Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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 gtk3 gobject-introspection&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 4.0.9 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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;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;
The following steps should install Lich for users of Fedora. To also install a front end such as Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&lt;br /&gt;
&lt;br /&gt;
Lich 5 requires Ruby 4.0 or newer. The Ruby that ships with currently supported versions of Fedora is older than that (41 uses Ruby 3.3; 42 and 43 use Ruby 3.4), so these steps install Ruby 4.0.9 with &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039; instead of using Fedora&#039;s Ruby.&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 gtk3-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing rbenv Ruby installation rather than installing from scratch, skip step 3.  Instead, update your ruby-build with the following command, and then run only the &amp;lt;tt&amp;gt;rbenv install&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;rbenv global&amp;lt;/tt&amp;gt; lines from step 3.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
3. Install rbenv and Ruby 4.0.9:&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;
source ~/.bashrc&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.9 -v&lt;br /&gt;
rbenv global 4.0.9&lt;br /&gt;
ruby -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last command should print a line starting with &amp;lt;tt&amp;gt;ruby 4.0.9&amp;lt;/tt&amp;gt;. If it doesn&#039;t, close and reopen the terminal and try &amp;lt;tt&amp;gt;ruby -v&amp;lt;/tt&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
4. 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;
5. 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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Frontends===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-customtoggle-frontends&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-frontends&amp;quot;&amp;gt;&lt;br /&gt;
Finish the Lich installation for your distribution above first, then set up one of these front ends.&lt;br /&gt;
&lt;br /&gt;
====Profanity====&lt;br /&gt;
Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth). Its gems (such as &amp;lt;tt&amp;gt;curses&amp;lt;/tt&amp;gt;) are installed by the &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt; step above. Download 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 Warlock from https://sproctor.github.io/warlock3/download.html, then 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 your login information with these settings to use the Lich launcher: https://github.com/sproctor/warlock3/wiki/Lich-support&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=267450</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=267450"/>
		<updated>2026-10-28T12:52:19Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Linux */ spacing&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;
==Linux==&lt;br /&gt;
Pick the subsection for your distribution below. Each one installs Ruby and Lich; front ends ([[#Profanity|Profanity]] and [[#Warlock|Warlock]]) are covered once in [[#Frontends|Frontends]] at the end, since their steps are the same on every distribution.&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 for users of Debian/Chromebooks. To also install a front end such as Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;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 for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). To also install a front end such as Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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 gtk3 gobject-introspection&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 4.0.9 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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;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;
The following steps should install Lich for users of Fedora. To also install a front end such as Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&lt;br /&gt;
&lt;br /&gt;
Lich 5 requires Ruby 4.0 or newer. The Ruby that ships with currently supported versions of Fedora is older than that (41 uses Ruby 3.3; 42 and 43 use Ruby 3.4), so these steps install Ruby 4.0.9 with &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039; instead of using Fedora&#039;s Ruby.&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 gtk3-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing rbenv Ruby installation rather than installing from scratch, skip step 3.  Instead, update your ruby-build with the following command, and then run only the &amp;lt;tt&amp;gt;rbenv install&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;rbenv global&amp;lt;/tt&amp;gt; lines from step 3.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
3. Install rbenv and Ruby 4.0.9:&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;
source ~/.bashrc&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.9 -v&lt;br /&gt;
rbenv global 4.0.9&lt;br /&gt;
ruby -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last command should print a line starting with &amp;lt;tt&amp;gt;ruby 4.0.9&amp;lt;/tt&amp;gt;. If it doesn&#039;t, close and reopen the terminal and try &amp;lt;tt&amp;gt;ruby -v&amp;lt;/tt&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
4. 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;
5. 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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Frontends===&lt;br /&gt;
Finish the Lich installation for your distribution above first, then set up one of these front ends.&lt;br /&gt;
&lt;br /&gt;
====Profanity====&lt;br /&gt;
Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth). Its gems (such as &amp;lt;tt&amp;gt;curses&amp;lt;/tt&amp;gt;) are installed by the &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt; step above. Download 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 Warlock from https://sproctor.github.io/warlock3/download.html, then 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 your login information with these settings to use the Lich launcher: https://github.com/sproctor/warlock3/wiki/Lich-support&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=267449</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=267449"/>
		<updated>2026-10-28T12:50:39Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: update Linux instructions to 4.0.9 Ruby&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;
==Linux==&lt;br /&gt;
Pick the subsection for your distribution below. Each one installs Ruby and Lich; front ends ([[#Profanity|Profanity]] and [[#Warlock|Warlock]]) are covered once in [[#Frontends|Frontends]] at the end, since their steps are the same on every distribution.&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 for users of Debian/Chromebooks. To also install a front end such as Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;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 for users of Arch Linux and Arch-based distributions (Manjaro, EndeavourOS, etc.). To also install a front end such as Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&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 gtk3 gobject-introspection&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 4.0.9 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.9 -v&lt;br /&gt;
rbenv global 4.0.9&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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&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;
The following steps should install Lich for users of Fedora. To also install a front end such as Profanity or Warlock, see [[#Frontends|Frontends]] at the end of the Linux section.&lt;br /&gt;
&lt;br /&gt;
Lich 5 requires Ruby 4.0 or newer. The Ruby that ships with currently supported versions of Fedora is older than that (41 uses Ruby 3.3; 42 and 43 use Ruby 3.4), so these steps install Ruby 4.0.9 with &#039;&#039;&#039;&amp;lt;tt&amp;gt;[https://github.com/rbenv/rbenv rbenv]&amp;lt;/tt&amp;gt;&#039;&#039;&#039; instead of using Fedora&#039;s Ruby.&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 gtk3-devel libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel \&lt;br /&gt;
redhat-rpm-config sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{side box|NOTE: If you are updating an existing rbenv Ruby installation rather than installing from scratch, skip step 3.  Instead, update your ruby-build with the following command, and then run only the &amp;lt;tt&amp;gt;rbenv install&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;rbenv global&amp;lt;/tt&amp;gt; lines from step 3.&amp;lt;pre&amp;gt;git -C ~/.rbenv/plugins/ruby-build pull&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
3. Install rbenv and Ruby 4.0.9:&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;
source ~/.bashrc&lt;br /&gt;
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
rbenv install 4.0.9 -v&lt;br /&gt;
rbenv global 4.0.9&lt;br /&gt;
ruby -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The last command should print a line starting with &amp;lt;tt&amp;gt;ruby 4.0.9&amp;lt;/tt&amp;gt;. If it doesn&#039;t, close and reopen the terminal and try &amp;lt;tt&amp;gt;ruby -v&amp;lt;/tt&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
4. 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;
5. 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 the &amp;lt;tt&amp;gt;Gemfile&amp;lt;/tt&amp;gt; included with Lich5 by running &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt;. The Gemfile also lists developer-only gems (the &amp;lt;tt&amp;gt;development&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;vscode&amp;lt;/tt&amp;gt; groups) that you do not need, so tell Bundler to skip them first:&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 config set --local without &#039;development vscode&#039;&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;small&amp;gt;Note: &amp;lt;tt&amp;gt;bundle install --without ...&amp;lt;/tt&amp;gt; no longer works; that flag was removed from the version of Bundler that ships with Ruby 4.0. Use &amp;lt;tt&amp;gt;bundle config set&amp;lt;/tt&amp;gt; as shown above.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Frontends===&lt;br /&gt;
Finish the Lich installation for your distribution above first, then set up one of these front ends.&lt;br /&gt;
&lt;br /&gt;
====Profanity====&lt;br /&gt;
Profanity is a terminal-based Front-End that will let you play the game (in lieu of The Wizard or Wrayth). Its gems (such as &amp;lt;tt&amp;gt;curses&amp;lt;/tt&amp;gt;) are installed by the &amp;lt;tt&amp;gt;bundle install&amp;lt;/tt&amp;gt; step above. Download 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 Warlock from https://sproctor.github.io/warlock3/download.html, then 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 your login information with these settings to use the Lich launcher: https://github.com/sproctor/warlock3/wiki/Lich-support&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Mac_Installation&amp;diff=267448</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=267448"/>
		<updated>2026-10-28T12:43:31Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: update instructions to use Ruby 4.0.9&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 download and unzip the current Lich software.&lt;br /&gt;
&lt;br /&gt;
* Finally, we will use Bundler to install the gems Lich needs (listed in Lich&#039;s own &amp;lt;code&amp;gt;Gemfile&amp;lt;/code&amp;gt;) into the new Ruby that we installed.&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.9&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rbenv global 4.0.9&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.9 (2026-10-23 revision 3e93b23afc) +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.9 part -&amp;gt; it needs to read 4.0.9&lt;br /&gt;
&lt;br /&gt;
If your version reflects 4.0.9, proceed 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 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;
Now we will install the gems Lich needs.  Lich includes a file called &amp;lt;code&amp;gt;Gemfile&amp;lt;/code&amp;gt; that lists them, so Bundler can install exactly the right set.  The Gemfile also lists some developer-only gems (the &amp;lt;code&amp;gt;development&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;vscode&amp;lt;/code&amp;gt; groups) that you do not need, so we tell Bundler to skip them.  Enter these commands in Terminal, one at a time, and press ENTER.  Wait for the system to finish before moving on to the next.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;cd ~/Desktop/Lich5&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;bundle config set --local without &#039;development vscode&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;bundle install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;bundle install&amp;lt;/code&amp;gt; step can take several minutes (building the GTK gems is the slow part).  When it finishes you should see a line beginning with &amp;lt;code&amp;gt;Bundle complete!&amp;lt;/code&amp;gt;.  If you see an error instead, seek assistance.&lt;br /&gt;
&lt;br /&gt;
Note: you may see other guides use &amp;lt;code&amp;gt;bundle install --without development vscode&amp;lt;/code&amp;gt;.  That flag has been removed from the version of Bundler that ships with Ruby 4.0, so use the &amp;lt;code&amp;gt;bundle config set&amp;lt;/code&amp;gt; command above instead.&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.&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Category:Evermore_Hollow&amp;diff=267278</id>
		<title>Category:Evermore Hollow</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Category:Evermore_Hollow&amp;diff=267278"/>
		<updated>2026-10-22T14:28:45Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Shopping */ un-comment the 2026 list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Ebon_Gate_The_Dark_Carnival.png|right|600px|Ebon Gate 2026 - The Dark Carnival|alt=Digital art featuring a worn carnival bathed half in shadows and moonlight, and half in sunlight.  A carousel and ferris wheel are heavily featured here, amid wagons and tents, while a marionette stands to one side. Text in the upper left reads: &amp;quot;Ebon Gate: The Dark Carnival.&amp;quot;]]&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&#039;&#039;&#039;Naidem&#039;&#039;&#039;, the land between where those that have died but are not ready to move on, or the respective deities are not ready to claim them, reside, and is home to the village of &#039;&#039;&#039;Evermore Hollow&#039;&#039;&#039;.  As of 2022, it is the new &#039;&#039;&#039;permanent home&#039;&#039;&#039; for the [[Ebon Gate Festival]].&lt;br /&gt;
{{CollapseAll|collapsetoggle = mw-customtoggle-2025games mw-customtoggle-2024games mw-customtoggle-2023games mw-customtoggle-2022games mw-customtoggle-flares mw-customtoggle-titles mw-customtoggle-previousruns}}&lt;br /&gt;
==Run Dates &amp;amp; Schedule==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center&amp;quot;&lt;br /&gt;
! Dates&lt;br /&gt;
&amp;lt;includeonly&amp;gt;! Venue&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
! Storyline Schedule&lt;br /&gt;
! Merchants&lt;br /&gt;
! Live Games&lt;br /&gt;
! Services Schedule&lt;br /&gt;
! Games Schedule&lt;br /&gt;
! Shop Listings&lt;br /&gt;
! Special Offerings&lt;br /&gt;
! [[:Category:Harvest Luminary Festival|Luminary Festival]]&lt;br /&gt;
! Announcements&lt;br /&gt;
|-&amp;lt;section begin=current /&amp;gt;&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; style=&amp;quot;white-space: nowrap&amp;quot; | &#039;&#039;&#039;Oct 9 - Nov 3, 2026&#039;&#039;&#039; &amp;lt;includeonly&amp;gt;|| [[Evermore Hollow]]&amp;lt;/includeonly&amp;gt; || 10/12 - 10/15&amp;lt;br&amp;gt;10/26 - 10/31 || Noon on 10/16 through to Midnight on 10/20 || 10/21 - 10/22: Seynne&#039;s Games&amp;lt;br&amp;gt;10/24 - 10/25: [[Evermore Hollow/live games#Game Descriptions|Live Games]] || [[Ebon Gate Festival/services 2026|Services]] || [[Evermore Hollow/live games#2026 Schedule|Live Games &amp;amp; GHOUL]] || [[Evermore Hollow/shop listing 2026 part 1|Shop List, part 1]]&amp;lt;br&amp;gt;[[Evermore Hollow/shop listing 2026 part 2|Shop List, part 2]]&amp;lt;br&amp;gt;[[Evermore Hollow/shop listing 2026 part 3|Shop List, part 3]] || [[Ebon Gate Treasure Trove/2026|Treasure Trove]], [[Ebon Gate Festival/2026 auction|Auction]] || 10/31 - 11/3 || [[Ebon Gate Festival/saved posts 2026|Announcements]]&amp;lt;section end=current /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Previous Schedule===&lt;br /&gt;
&amp;lt;small&amp;gt;The below schedule was based on the prime/ platinum instance split.&amp;lt;!-- Moving forward, please utilize the above table for the events. --&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-previousruns&amp;quot; style=&amp;quot;text-align: center&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;white-space:nowrap; text-align: left&amp;quot; | For a list of previous run dates, shop lists, special offerings, and saved posts, click &amp;lt;span class=&amp;quot;mw-customtoggle-previousruns&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;color:#0000ff&amp;quot;&amp;gt;here&amp;lt;/span&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;2&amp;quot; | Dates&lt;br /&gt;
&amp;lt;includeonly&amp;gt;! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;2&amp;quot; | Venue&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;2&amp;quot; | Storyline Schedule&lt;br /&gt;
! scope=&amp;quot;colgroup&amp;quot; colspan=&amp;quot;2&amp;quot; | Merchant Week&lt;br /&gt;
! scope=&amp;quot;colgroup&amp;quot; colspan=&amp;quot;2&amp;quot; | Live Games Week&lt;br /&gt;
! scope=&amp;quot;colgroup&amp;quot; colspan=&amp;quot;2&amp;quot; | Services Schedule&lt;br /&gt;
&amp;lt;!-- ! scope=&amp;quot;colgroup&amp;quot; colspan=&amp;quot;2&amp;quot; | [[Eve of the Reunion Event|Eve of the Reunion]] --&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;2&amp;quot; | Games Schedule&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;2&amp;quot; | Shop Listings&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;2&amp;quot; | Special Offerings&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; rowspan=&amp;quot;2&amp;quot; | Announcements&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Prime&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Plat&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Prime&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Plat&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Prime&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Plat&lt;br /&gt;
&amp;lt;!-- ! scope=&amp;quot;col&amp;quot; | Prime&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Plat --&amp;gt;&lt;br /&gt;
|-&amp;lt;section begin=oldschedule /&amp;gt;&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; style=&amp;quot;white-space: nowrap&amp;quot; | &#039;&#039;&#039;Oct 10 - Nov 2, 2025&#039;&#039;&#039; &amp;lt;includeonly&amp;gt;|| [[Evermore Hollow]]&amp;lt;/includeonly&amp;gt; || 10/12 - 10/16 &amp;lt;br&amp;gt; 10/24 - 10/31 || 10/17 - 10/24 || || 10/24 - 10/26 || || [[Ebon Gate Festival/services 2025#Prime|Services]] || &amp;lt;includeonly&amp;gt;||colspan=&amp;quot;2&amp;quot; | - &amp;lt;/includeonly&amp;gt;|| [[Evermore Hollow/live games#2025|Live Games &amp;amp; GHOUL]] ||[[Evermore Hollow/shop listing 2025 part 1|Shop List, part 1]]&amp;lt;br&amp;gt;[[Evermore Hollow/shop listing 2025 part 2|Shop List, part 2]]&amp;lt;br&amp;gt;[[Evermore Hollow/shop listing 2025 part 3|Shop List, part 3]] || [[Ebon Gate Treasure Trove/2025|Treasure Trove]], [[Ebon Gate Festival/2025 auction|Auction]] || [[Ebon Gate Festival/saved posts 2025|Announcements]]&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; style=&amp;quot;white-space: nowrap&amp;quot; | &#039;&#039;&#039;Oct 4 - Nov 3, 2024&#039;&#039;&#039;&amp;lt;includeonly&amp;gt;|| [[Evermore Hollow]] &amp;lt;/includeonly&amp;gt;|| 10/4 - 10/11 &amp;amp; 10/25 - 10/29 || 10/18 - 10/25 || 10/11- 10/18 || 10/11 - 10/18 || 10/4 - 10/11 || [[Ebon Gate Festival/services 2024#Prime|Prime Services]] || [[Ebon Gate Festival/services 2024#Plat|Plat Services]]&amp;lt;includeonly&amp;gt;||colspan=&amp;quot;2&amp;quot; | - &amp;lt;/includeonly&amp;gt;|| [[Evermore Hollow/live games#2024|Live Games &amp;amp; GHOUL]] ||[[Evermore Hollow/shop listing 2024 part 1|Shop List, part 1]]&amp;lt;br&amp;gt;[[Evermore Hollow/shop listing 2024 part 2|Shop List, part 2]] || [[Ebon Gate Treasure Trove/2024|Treasure Trove]] || [[Ebon Gate Festival/saved posts 2024|Announcements]]&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; style=&amp;quot;white-space: nowrap&amp;quot; | &#039;&#039;&#039;Sept 29 - Oct 31, 2023&#039;&#039;&#039;&amp;lt;includeonly&amp;gt;|| [[Evermore Hollow]] &amp;lt;/includeonly&amp;gt;||  9/29 - 10/6 &amp;amp; 10/22 - 10/27&amp;lt;br&amp;gt;  || 10/13 - 10/20 || 10/6 - 10/13 || 10/6 - 10/13 || 9/29 - 10/6 || [[Ebon Gate Festival/services 2023#Prime|Prime Services]] || [[Ebon Gate Festival/services 2023#Plat|Plat Services]]&amp;lt;includeonly&amp;gt;||colspan=&amp;quot;2&amp;quot; | - &amp;lt;/includeonly&amp;gt;|| [[Evermore Hollow/live games#2023|Live Games &amp;amp; GHOUL]] || [[Evermore Hollow/shop listing 2023|Shop Listing]] || [[Ebon Gate Treasure Trove/2023|Treasure Trove]] || [[Ebon Gate Festival/saved posts 2023|Announcements]]&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; style=&amp;quot;white-space: nowrap&amp;quot; | &#039;&#039;&#039;Sept 30 - Oct 30, 2022&#039;&#039;&#039;&amp;lt;includeonly&amp;gt;|| [[Evermore Hollow]] &amp;lt;/includeonly&amp;gt;|| || 10/14 - 10/21 || 10/7 - 10/14 || 10/7 - 10/14 || 9/30 - 10/7  || [[Ebon Gate Festival/services 2022#Prime|Prime Services]] || [[Ebon Gate Festival/services 2022#Plat|Plat Services]]&amp;lt;includeonly&amp;gt;|| 10/29 || 10/30 &amp;lt;/includeonly&amp;gt;|| [[Evermore Hollow/live games#2022|Live Games &amp;amp; GHOUL]] || [[Evermore Hollow/shop listing 2022|Shop Listing]] || [[Ebon Gate Treasure Trove/2022|Treasure Trove]] || [[Ebon Gate Festival/announcements 2022|Announcements]]&amp;lt;section end=oldschedule /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Activities==&lt;br /&gt;
&amp;lt;section begin=activities /&amp;gt;&amp;lt;includeonly&amp;gt;* &#039;&#039;&#039;[[Evermore Hollow]]&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;&#039;&#039;&#039;Automated Games&#039;&#039;&#039; - entries purchased with [[SimuCoin]]s.  Each offers the ability to earn [[soul shard]]s.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;**&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;***&amp;lt;/includeonly&amp;gt;&#039;&#039;&#039;[[Trick-or-Treat]]&#039;&#039;&#039; - &#039;&#039;&#039;Returning in 2022&#039;&#039;&#039; to Evermore Hollow, Trick-or-Treat allows participants to obtain a variety of prizes. Cost for entry is 100 SimuCoins.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;**&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;***&amp;lt;/includeonly&amp;gt;&#039;&#039;&#039;[[Herb Hunt]]&#039;&#039;&#039; - &#039;&#039;&#039;New in 2022&#039;&#039;&#039;, the Herb Hunt allows participants the chance to wander the Gardens of Bittermere woods in search of a toadshade, similar to the [[Fox Hunt]] at [[Rumor Woods]]. Lucky winners may even find a new [[Mandrake pet]] to take home. Cost for entry is 100 SimuCoins.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;**&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;***&amp;lt;/includeonly&amp;gt;&#039;&#039;&#039;[[Arena of the Abyss]]&#039;&#039;&#039; - &#039;&#039;&#039;Returning in 2022&#039;&#039;&#039; to Evermore Hollow. Entrants face five undead creatures, one a time, and when complete, prizes are awarded, including a chance at [[necrotic ring]]. Cost for entry is 10 SimuCoins.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;**&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;***&amp;lt;/includeonly&amp;gt;&#039;&#039;&#039;[[Undergrowth of Bittermere Woods]]&#039;&#039;&#039; - &#039;&#039;&#039;Premiering 2024&#039;&#039;&#039; to Evermore Hollow. Entrants can complete 1 witch task, and when complete, prizes are awarded, including a chance at [[Lightweaver&#039;s Ocarina]]. Cost for entry is 10 SimuCoins.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;**&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;***&amp;lt;/includeonly&amp;gt;&#039;&#039;&#039;[[Sonreeva]]&#039;&#039;&#039; - &#039;&#039;&#039;New in 2022&#039;&#039;&#039; to Evermore Hollow, alternatively known as &#039;&#039;&#039;Newcropolis&#039;&#039;&#039;.  More information coming soon.  Cost for entry is 10 SimuCoins.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;&#039;&#039;&#039;[[Evermore Hollow/live games|Live Games]]&#039;&#039;&#039; - accessible with a merchant pass. To view the schedule, click &#039;&#039;&#039;[[:Category:Evermore Hollow#Live Games and GHOUL Schedules|here]]&#039;&#039;&#039;.  &#039;&#039;&#039;Note:&#039;&#039;&#039; All times listed in EDT.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;&#039;&#039;&#039;[[Spook Contest]]&#039;&#039;&#039; - &#039;&#039;&#039;New in 2022&#039;&#039;&#039;, join the contest by visiting the Spectral Waifling at the Spookorium to get started.  Top five winners at the end of Ebon Gate will receive special titles.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;&#039;&#039;&#039;[[Fishing]]&#039;&#039;&#039; - &#039;&#039;&#039;Returning in 2022&#039;&#039;&#039; to Evermore Hollow. As in previous years, participants can throw a line into the water and win various &#039;&#039;&#039;[[Evermore Hollow/fishing prizes|prizes]]&#039;&#039;&#039;, including new &#039;&#039;&#039;Death Announcement Customizations&#039;&#039;&#039;. Cost will be 50 soul shards per entry.&amp;lt;section end=activities /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Live Games and [[GHOUL]] Schedules===&lt;br /&gt;
* &#039;&#039;&#039;[[Evermore Hollow/live games|2026 Live Games]]&#039;&#039;&#039;&lt;br /&gt;
{{#section:Evermore Hollow/live games 2026|schedule}}&lt;br /&gt;
* &amp;lt;span class=&amp;quot;mw-customtoggle-2025games&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;color:#0000ff&amp;quot;&amp;gt;&#039;&#039;&#039;2025 Live Games&#039;&#039;&#039;&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-2025games&amp;quot;&amp;gt;{{#section:Evermore Hollow/live games|2025}}&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;mw-customtoggle-2024games&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;color:#0000ff&amp;quot;&amp;gt;&#039;&#039;&#039;2024 Live Games&#039;&#039;&#039;&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-2024games&amp;quot;&amp;gt;{{#section:Evermore Hollow/live games|2024}}&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;mw-customtoggle-2023games&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;color:#0000ff&amp;quot;&amp;gt;&#039;&#039;&#039;2023 Live Games&#039;&#039;&#039;&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-2023games&amp;quot;&amp;gt;{{#section:Evermore Hollow/live games|2023}}&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;mw-customtoggle-2022games&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;color:#0000ff&amp;quot;&amp;gt;&#039;&#039;&#039;2022 Live Games&#039;&#039;&#039;&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-2022games&amp;quot;&amp;gt;{{#section:Evermore Hollow/live games|2022}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
===[[Currency]]===&lt;br /&gt;
&amp;lt;section begin=currency /&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Evermore Hollow&#039;&#039;&#039;&lt;br /&gt;
:&amp;lt;/includeonly&amp;gt;The featured currency for &amp;lt;includeonly&amp;gt;&#039;&#039;&#039;[[&amp;lt;/includeonly&amp;gt;Evermore Hollow&amp;lt;includeonly&amp;gt;]]&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt; is [[soul shard]]s which are used to purchase goods and services from the various shops. They can be earned through participation in the various available activities.&amp;lt;section end=currency /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Shopping===&lt;br /&gt;
Shopping is available on the grounds, with new items introduced for sale each year.&amp;lt;section begin=shoppinglists /&amp;gt;&lt;br /&gt;
* &amp;lt;includeonly&amp;gt;&#039;&#039;&#039;Evermore Hollow&#039;&#039;&#039; shopping&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Shopping&amp;lt;/noinclude&amp;gt; lists by year:&lt;br /&gt;
** &amp;lt;big&amp;gt;&#039;&#039;&#039;[[Evermore Hollow/shop listing 2026 part 1|2026 shop listing - part 1]] &amp;amp; [[Evermore Hollow/shop listing 2026 part 2|part 2]]  &amp;amp; [[Evermore Hollow/shop listing 2026 part 3|part 3]] - Current List&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
** [[Evermore Hollow/shop listing 2025 part 1|2025 shop listing - part 1]] &amp;amp; [[Evermore Hollow/shop listing 2025 part 2|part 2]]  &amp;amp; [[Evermore Hollow/shop listing 2025 part 3|part 3]]&lt;br /&gt;
** [[Evermore Hollow/shop listing 2024 part 1|2024 shop listing - part 1]] &amp;amp; [[Evermore Hollow/shop listing 2024 part 2|part 2]]&lt;br /&gt;
** [[Evermore Hollow/shop listing 2023|2023 shop listing]]&lt;br /&gt;
** [[Evermore Hollow/shop listing 2022|2022 shop listing]]&amp;lt;section end=shoppinglists /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[Ebon Gate Treasure Trove|Treasure Trove]]===&lt;br /&gt;
Introduced in 2019 to the [[:Category:Ebon Gate Festival|Ebon Gate festival]], Evermore Hollow will feature its own [[Ebon Gate Treasure Trove|Treasure Trove]] raffle area similar to the one found at [[:Category:Duskruin|Duskruin]].&amp;lt;section begin=treasuretrove /&amp;gt;&lt;br /&gt;
* &amp;lt;includeonly&amp;gt;&#039;&#039;&#039;Evermore Hollow&#039;&#039;&#039; &amp;lt;/includeonly&amp;gt;Treasure Trove lists by year:&lt;br /&gt;
** &amp;lt;big&amp;gt;&#039;&#039;&#039;[[Ebon Gate Treasure Trove/2026|2026 raffle list]] - Current List&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
** [[Ebon Gate Treasure Trove/2025|2025 raffle list]]&lt;br /&gt;
** [[Ebon Gate Treasure Trove/2024|2024 raffle list]]&lt;br /&gt;
** [[Ebon Gate Treasure Trove/2023|2023 raffle list]]&lt;br /&gt;
** [[Ebon Gate Treasure Trove/2022|2022 raffle list]]&amp;lt;section end=treasuretrove /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[:Category:Ebon Gate Festival auctions|Auctions]]===&lt;br /&gt;
Evermore Hollow occasionally hosts grand auction events.&lt;br /&gt;
&amp;lt;section begin=auctions /&amp;gt;* 2026 Auction&lt;br /&gt;
* [[Ebon Gate Festival/2025 auction|2025 Auction]]&amp;lt;section end=auctions /&amp;gt;&lt;br /&gt;
{{#section:Category:Caligos Isle|eve}} &#039;&#039;&#039;&#039;&#039;- Discontinued after 2022.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Merchant Work and Raffles===&lt;br /&gt;
Merchant week during the festival features many merchants and raffles available to those with a merchant pass.&amp;lt;section begin=merchants /&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Evermore Hollow&#039;&#039;&#039; announced services and raffles:&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;[[Ebon Gate Festival/services 2026|2026 announced services and raffles]] - Current List&#039;&#039;&#039;&amp;lt;/big&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate Festival/services 2025|2025 announced services and raffles]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate Festival/services 2024|2024 announced services and raffles]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate Festival/services 2023|2023 announced services and raffles]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate Festival/services 2022|2022 announced services and raffles]]&amp;lt;section end=merchants /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Automated Services===&lt;br /&gt;
Automated services are those that can be performed without merchant intervention and are done through [[NPC]] interactions.&amp;lt;section begin=automated /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Incanter&#039;&#039;&#039; - Returning once again to charge [[Intricately painted tin carousel|carousels]], the incanter can be found wandering the grounds.&lt;br /&gt;
* &#039;&#039;&#039;[[EHShop:Quinton Manse|Quinton Manse]]&#039;&#039;&#039; - &#039;&#039;&#039;New in 2022&#039;&#039;&#039;, Quinton Manse features NPCs capable of performing much sought after services.  [[Custom flare messaging|Custom flare certificates]] will be sold here, as well.&lt;br /&gt;
** &#039;&#039;&#039;[[Fusion Shaman]]&#039;&#039;&#039; - Have a great enhancive on a not-so-great item? Tokens found in [[Arena of the Abyss]] grant access to his services, and from there, you can select which enhancive property to convert to a tier 2 [[fusion orb]].  He can be found in the &#039;&#039;&#039;Parlor&#039;&#039;&#039;.&lt;br /&gt;
** &#039;&#039;&#039;[[Dabbler]]&#039;&#039;&#039; - &#039;&#039;&#039;New to Evermore Hollow&#039;&#039;&#039;, the dabbler can automatically remove properties from equipment, similar to [[Duskruin]].  He can be found in the &#039;&#039;&#039;Eastern Nook&#039;&#039;&#039;.&lt;br /&gt;
** &#039;&#039;&#039;[[Gilded locus|Half-elf Traveler]]&#039;&#039;&#039; - Get a locus or upgrade one you currently have.  She can be found at the &#039;&#039;&#039;Garden Fountain&#039;&#039;&#039;.&lt;br /&gt;
** &#039;&#039;&#039;Study&#039;&#039;&#039; - [[:Category:Automated Unlocking Certificates|Unlock certificates]] of items previously sold can be purchased here.&lt;br /&gt;
** &#039;&#039;&#039;Sylinar&#039;&#039;&#039; - &#039;&#039;&#039;Returning in 2022&#039;&#039;&#039;, Sylinar is hiding out in the &#039;&#039;&#039;Garden&#039;&#039;&#039; and will be offering the same services he had before, with some improvements:&lt;br /&gt;
*** &#039;&#039;&#039;[[Enhancive services#Permanence|Pemanence]]&#039;&#039;&#039;: make a crumbly enhancive persist - 10,000 soul shards&lt;br /&gt;
*** &#039;&#039;&#039;[[Enhancive services#Max Charge Pool Increase|Charge Pool Increase]]&#039;&#039;&#039;: increase the total charge pool of an enhancive by 10 charges or 10%, whichever is greater - 4,000 soul shards&lt;br /&gt;
*** &#039;&#039;&#039;[[Enhancive services#Recharging|Recharging]]&#039;&#039;&#039;: Recharge an enhancive item by 10 charges up to the item&#039;s maximum - 4,000 soul shards&lt;br /&gt;
*** &#039;&#039;&#039;[[Enhancive services#Removal|Removal]]&#039;&#039;&#039;: Remove a single enhancive property from an item - 10,000 soul shards&lt;br /&gt;
*** &#039;&#039;&#039;[[Enhancive services#Swapping|Swapping]]&#039;&#039;&#039; - Swap enhancives between the listed categories - 10,000 soul shards/&#039;&#039;20,000 soul shards for Aura (to or from)&#039;&#039;{{#section:Enhancive services|swap}}&lt;br /&gt;
** &#039;&#039;&#039;[[Ebon Gate auto flarer|Auto-flarer]]&#039;&#039;&#039; - Debuting in 2018 at [[Caligos Isle]], the auto-flarer grants flares, both scripted and not, to eligible items when presented with an appropriate token and payment. He can be found in the &#039;&#039;&#039;Western Nook&#039;&#039;&#039;. For a list of eligible [[flares]], click &amp;lt;span class=&amp;quot;mw-customtoggle-flares&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;color:#0000ff&amp;quot;&amp;gt;&#039;&#039;&#039;here&#039;&#039;&#039;&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-flares&amp;quot;&amp;gt;{{#section:Ebon Gate auto flarer|autoflarer}}&amp;lt;/div&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[EHShop:Antiquarian Manor|Antiquarian Manor]]&#039;&#039;&#039; - &#039;&#039;&#039;New in 2022&#039;&#039;&#039;.  Turn your hoards of stashed away alter fodder into items easily stored in the &#039;&#039;&#039;[[Antiquarian&#039;s Apparatus]]&#039;&#039;&#039; to cut down on storage woes.&lt;br /&gt;
** &#039;&#039;&#039;[[PERM-ifier|Permifier]]&#039;&#039;&#039; - The permifier returns to permify [[PERM-ifier#Applicable Items|applicable items]] for soul shards in the Garden.&amp;lt;section end=automated /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Unique Gems===&lt;br /&gt;
To see a list of unique gems exclusive to Evermore Hollow, click &#039;&#039;&#039;[[Evermore Hollow/list of gems|here]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Storyline Information==&lt;br /&gt;
&amp;lt;section begin=storyline /&amp;gt;&amp;lt;includeonly&amp;gt;* &#039;&#039;&#039;Evermore Hollow&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Denizens of Naidem|Denizens of Naidem]] (2022 introduction)&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[:Category:The Vistix&#039;s Last Bride|The Last Bride of the Vistix]] (2023)&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[:Category:The Ivsenra&#039;s Fate|The Ivsenra&#039;s Fate]] (2024)&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[:Category:SPECTRE and SHADOW Conference|SPECTRE and SHADOW Conference]] (2024, 2025, 2026)&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[:Category:Weavers of Arachne|Weavers of Arachne]] (2025)&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[:category:Of Masks and Marionettes|Of Masks and Marionettes]] (2026)&amp;lt;section end=&amp;quot;storyline&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quest Information==&lt;br /&gt;
Opening in 2022, Evermore Hollow offers a quest to obtain the &#039;&#039;&#039;[[shadowy leatherbound guidebook|Guidebook to the Unliving]]&#039;&#039;&#039;. &amp;lt;section begin=quest /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Welcome to Evermore Hollow]]&#039;&#039;&#039; - This quest serves as an introduction to Evermore Hollow allows anyone to obtain the Guidebook to the Unliving.  The original quest was updated in 2026 to utilize the {{boldmono|[[Verb:QUEST|QUEST]]}} system.&lt;br /&gt;
&lt;br /&gt;
===Guidebook===&lt;br /&gt;
This [[shadowy leatherbound guidebook|Guidebook]] starts you on your adventures in Naidem by giving you small tasks to complete. Each task unlocks a new chapter in your Guidebook that is designed to ease your transition into this new realm. &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; Regardless of if you’ve completed the quest, each portal leading to a merchant’s workroom has been equipped with a Monster Bold display of what the merchant is working on, when they started, and how long they will be working.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Completing every quest fully unlocks the Guidebook and provides the following:&lt;br /&gt;
* Detailed chapters of about each area in Bittermere Woods, Ember Orchard, Evermore Hollow, Gleyminn Anni River, and Graveyard Temporalis.&lt;br /&gt;
* Your book now becomes a guide to working merchants during Service Week.&lt;br /&gt;
* Your book now tells you what each merchant is working on and when they started.&lt;br /&gt;
* Your book now becomes a guide to all currently running raffles.&lt;br /&gt;
* Your book now teleports you to the shop of a working merchant (PnC only).&amp;lt;section end=quest /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
===Key Locations===&lt;br /&gt;
&amp;lt;section begin=keyloc /&amp;gt;&amp;lt;includeonly&amp;gt;* &#039;&#039;&#039;Evermore Hollow Key Locations&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
====Quest-Related====&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;:&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable alternating&amp;quot; width=30%&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|+ style=&amp;quot;text-align: left&amp;quot; | &#039;&#039;&#039;Quest-Related&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Quest Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Room Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Lich Room Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Room ID&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Newcropolis || Sonreeva, Mausoleum || 32213 || 8083347&lt;br /&gt;
|- &lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Spook Pin || Town Hall, Spookorium || 31813 || 8084003&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Guidebook Quest || Town Hall, Hallway || 32200 || 8084004&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
====Games====&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;:&amp;lt;/includeonly&amp;gt; &lt;br /&gt;
{| class=&amp;quot;wikitable alternating&amp;quot; width=30%&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|+ style=&amp;quot;text-align: left&amp;quot; | &#039;&#039;&#039;Games&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Game&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Room Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Lich Room Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Room ID&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [[Trick or Treat]] || Endeltime Estates, Neighborhood || 31980 || 8086199&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [[Herb Hunt]] || The Garden Shack || 31978 || 8086350&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [[Arena of the Abyss]] || Arena of the Abyss, Influx || 28549 || 8225001&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [[Undergrowth of Bittermere Woods]] || Bittermere Woods || || 8083284&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
====Fishing====&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;:&amp;lt;/includeonly&amp;gt; &lt;br /&gt;
{| class=&amp;quot;wikitable alternating&amp;quot; width=30%&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|+ style=&amp;quot;text-align: left&amp;quot; | &#039;&#039;&#039;Fishing&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Fishing Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Fishing Area Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Lich Room Number&lt;br /&gt;
! scope-&amp;quot;col&amp;quot; | Room ID&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Gleyminn Anni River, Island || Stream of Reflections || 31834 || 8083431&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Gleyminn Anni River, Shore || Moss Pond || 32073 || 8083432&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Gleyminn Anni River, Rocky Path || Misty Waters || 31846 || 8083429&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Gleyminn Anni River, Shore || Mold Marsh || 32074 || 8083430&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
====Nodes====&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;:&amp;lt;/includeonly&amp;gt; &lt;br /&gt;
{| class=&amp;quot;wikitable alternating&amp;quot; width=80%&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|+ style=&amp;quot;text-align: left&amp;quot; | &#039;&#039;&#039;Nodes&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Room Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Lich Room Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Room ID&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Node Type&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [Evermore Hollow, Jester&#039;s Court] || 31567 || u8083006 || earth&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [Evermore Hollow, Fallen Court] || 31561 || u8083007|| earth&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [Evermore Hollow, Fate&#039;s Fire] || 31591 || u8083010|| earth&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [Evermore Hollow, Nature&#039;s Glade] || 31571 || u8083008|| earth&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [Evermore Hollow, Noble Guardian] || 31603 || u8083009|| earth&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [Fate&#039;s Barrow] || 31771  || u8083137|| earth&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [Bittermere Woods, Convergence] || 31660 || u8083262|| earth&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [Bittermere Woods] || ||u8083286|| earth&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [Evermore Hollow, Outer Circle] || || u8083030 || super&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [Evermore Hollow, Outer Circle] || || u8083017 || super&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [The Wayward Soul Chapel] || || u8083362 || super&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Automated Services====&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;:&amp;lt;/includeonly&amp;gt; &lt;br /&gt;
{| class=&amp;quot;wikitable alternating&amp;quot; width=80%&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|+ style=&amp;quot;text-align: left&amp;quot; | &#039;&#039;&#039;AutomatedServices&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Service&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Room Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Lich Room Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Room ID&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Bank || [Otherworldly Wealth, Lobby] || 31775 || 8084062&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Enhancive Swap || [Quinton Manse, Hedged Garden] || 32076 || 8084687&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Flare Additions || [Quinton Manse, Western Nook] || 31773 || 8084686&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Gem Pile || [Antiquarian Manor, Showroom] || 31755|| 8084696&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [[Gilded locus]] || [Quinton Manse, Garden Fountain] || || 8084689&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Permifier || [Antiquarian Manor, Garden] || 31606 || 8084692&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Game Prizes for Soul Shards Gjenganger || [Gavelsdown Hall, Sitting Room] || 31574 || 8084015&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Wishing Well || [Bittermere Woods, Convergence] || 31660 || 8083262&lt;br /&gt;
|-&lt;br /&gt;
|}&amp;lt;section end=keyloc /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Souvenir===&lt;br /&gt;
{{addmetext}}&lt;br /&gt;
&lt;br /&gt;
===Pricing===&lt;br /&gt;
&amp;lt;section begin=pricing /&amp;gt;&amp;lt;includeonly&amp;gt;* &#039;&#039;&#039;Evermore Hollow&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;:&amp;lt;/includeonly&amp;gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Activity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Item(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Cost&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Length&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Applicability&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | Merchant Pass || Ebon Gate service pass || 3000 [[SimuCoin]]s|| Event Duration&amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;&amp;amp;dagger;&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; || Character &amp;lt;br&amp;gt; 10 Characters for Platinum&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [[Arena of the Abyss]]&amp;lt;br&amp;gt;[[Sonreeva]] || an enruned stone cube* || 10 SimuCoins  || 5 rounds or death/surrender || Per Entry&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;rowgroup&amp;quot; role=&amp;quot;rowheader&amp;quot; | [[Undergrowth of Bittermere Woods]] || an enruned stone cube* || 10 SimuCoins || 1 task || Per Entry&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;rowgroup&amp;quot; rowspan=&amp;quot;6&amp;quot; role=&amp;quot;rowheader&amp;quot; | [[Trick-or-Treat]]&amp;lt;br&amp;gt;[[Herb Hunt]] || a gilded copper barrel key (1 entry) || 100 SimuCoins || rowspan=&amp;quot;6&amp;quot; | 10 &amp;quot;treats&amp;quot; || rowspan=&amp;quot;6&amp;quot; | Per Entry&lt;br /&gt;
|-&lt;br /&gt;
| a gilded ivory barrel key (10 entries) || 1000 SimuCoins&lt;br /&gt;
|-&lt;br /&gt;
| a gilded silver barrel key (25 entries) || 2500 SimuCoins&lt;br /&gt;
|-&lt;br /&gt;
| a gilded laje barrel key (50 entries) || 5000 SimuCoins&lt;br /&gt;
|-&lt;br /&gt;
| a gilded alum barrel key (100 entries) || 10000 SimuCoins&lt;br /&gt;
|-&lt;br /&gt;
| a gilded vaalin barrel key (250 entries) || 25000 SimuCoins&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | [[Fishing]] || style=&amp;quot;text-align: center&amp;quot; | - ||50 [[soul shard]]s || Fish is caught or person leaves area || Per Entry&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;:&amp;lt;/includeonly&amp;gt;&amp;lt;small&amp;gt;&amp;lt;sup&amp;gt;&amp;amp;dagger;&amp;lt;/sup&amp;gt; The merchant event is scheduled to be 7 days in each instance (Prime and Plat) as noted in the schedule, but the pass is set up for the duration of the event to cover any mishaps or re-scheduling.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;:&amp;lt;/includeonly&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; The base item is the same, however &amp;quot;an enruned stone cube&amp;quot; is available in 1, 10, 50, 100, and 250 count entries.&amp;lt;/small&amp;gt;&amp;lt;section end=pricing /&amp;gt;&lt;br /&gt;
&amp;lt;section begin=refunds /&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;=&amp;lt;/noinclude&amp;gt;==Refund Policy==&amp;lt;noinclude&amp;gt;=&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{:Pay events refund policy}}&amp;lt;section end=refunds /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[Title System|Titles]]===&lt;br /&gt;
Titles have been made available for contest winners.&lt;br /&gt;
&amp;lt;section begin=egtitles /&amp;gt;&lt;br /&gt;
{| &amp;lt;noinclude&amp;gt;class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; id=&amp;quot;mw-customcollapsible-titles&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;white-space:nowrap; text-align:left;&amp;quot; | To view the lists of potential titles, click &amp;lt;span class=&amp;quot;mw-customtoggle-titles&amp;quot; role=&amp;quot;link&amp;quot; style=&amp;quot;color:#0000ff&amp;quot;&amp;gt;&#039;&#039;&#039;here&#039;&#039;&#039;&amp;lt;/span&amp;gt;.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;row&amp;quot; role=&amp;quot;rowheader&amp;quot; | &#039;&#039;&#039;Contest Titles&#039;&#039;&#039;&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| {{#section:Event titles|ebongate}}&lt;br /&gt;
|}&amp;lt;section end=egtitles /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Announcements and Teasers===&lt;br /&gt;
&amp;lt;section begin=announcements /&amp;gt;&amp;lt;includeonly&amp;gt;* &#039;&#039;&#039;Evermore Hollow&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;[[Ebon Gate Festival/saved posts 2026|2026 announcements]] - Current List&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate Festival/saved posts 2025|2025 announcements]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate Festival/saved posts 2024|2024 announcements]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate Festival/saved posts 2023|2023 announcements]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate Festival/announcements 2022|2022 announcements]]&amp;lt;section end=announcements /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[TownCrier]] Articles===&lt;br /&gt;
&amp;lt;section begin=towncrier /&amp;gt;&amp;lt;includeonly&amp;gt;* &#039;&#039;&#039;Evermore Hollow&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[The Ebon Gate FAQ for Evermore Hollow]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate 2024 Quick Reference Shop Index]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate Teasers Archive by The TownCrier/2024|TownCrier list of teasers - 2024]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate 2024 Buyer&#039;s Choice]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate 2023 Quick Reference Shop Index]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate Teasers Archive by The TownCrier/2023|TownCrier list of teasers - 2023]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate 2023 Buyer&#039;s Choice]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate Teasers Archive by The TownCrier/2022|TownCrier list of teasers - 2022]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate 2022 Buyer&#039;s Choice]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;*&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;**&amp;lt;/includeonly&amp;gt;[[Ebon Gate 2022 Quick Reference Shop Index]]&amp;lt;section end=towncrier /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Player-Created Content===&lt;br /&gt;
* [[An Illustrated Guide to Elanthian Flora - Naidem]] by [[Alisaire (prime)|Alisaire Frey]]&lt;br /&gt;
&lt;br /&gt;
===Artwork Archive===&lt;br /&gt;
* [[:Category:Evermore Hollow artwork#Yearly Promotional Artwork|Promotional Artwork]]&lt;br /&gt;
* [[:Category:Evermore Hollow artwork##Maps|Player-created Maps]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Ebon Gate Festival]]&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=User_talk:WHIGHTCNIGHT/EG_Fishing&amp;diff=267150</id>
		<title>User talk:WHIGHTCNIGHT/EG Fishing</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=User_talk:WHIGHTCNIGHT/EG_Fishing&amp;diff=267150"/>
		<updated>2026-10-20T15:07:51Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: add permission&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I give full authorization to [[User:HORIBU1]] to edit/modify/do whatever to my user, player, and talk pages of mine as well as any subpages created in the future on said page types [[User:WHIGHTCNIGHT|WHIGHTCNIGHT]] ([[User talk:WHIGHTCNIGHT|talk]]) 10:07, 20 October 2026 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Article/Edits at Risk for Deletion==&lt;br /&gt;
This article is missing a statement that permission was granted by the account holder for another user to create or edit articles for their user page.&lt;br /&gt;
&lt;br /&gt;
For more information, see [[Gswiki:Policy]], specifically Policy #4.  This information will need to be added within the timeframe stated on the article banner or it will be deleted or reverted to an earlier version.  Do not remove the &amp;lt;nowiki&amp;gt;{{moddelete}}&amp;lt;/nowiki&amp;gt; template from this article.  Another moderator or I will remove that template after updates have been reviewed to ensure that they meet [[Gswiki:Policy]] requirements. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 08:36, 20 October 2026 (CDT)&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=User_talk:WHIGHTCNIGHT&amp;diff=267149</id>
		<title>User talk:WHIGHTCNIGHT</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=User_talk:WHIGHTCNIGHT&amp;diff=267149"/>
		<updated>2026-10-20T15:07:18Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: add permission&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello! I tried to email you at your play.net and got a bounce back. Thanks for helping with the EG shops :) [[User:VANKRASN39|VANKRASN39]] ([[User talk:VANKRASN39|talk]]) 22:54, 16 October 2015 (CDT)&lt;br /&gt;
&lt;br /&gt;
I give full authorization to [[User:HORIBU1]] to edit/modify/do whatever to my user, player, and talk pages of mine as well as any subpages created in the future on said page types [[User:WHIGHTCNIGHT|WHIGHTCNIGHT]] ([[User talk:WHIGHTCNIGHT|talk]]) 10:07, 20 October 2026 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Article/Edits at Risk for Deletion ==&lt;br /&gt;
&lt;br /&gt;
Hi there, WHIGHTCNIGHT.  In reviewing some of the recent updates, I saw another user, HORIBU1, created and made edits to [[User:WHIGHTCNIGHT/EG Fishing]], which is a subarticle of your user page.&lt;br /&gt;
&lt;br /&gt;
There is no indication on the article&#039;s Discussion/Talk tab that you gave any other account permission to create or edit your user page or any subpages on your behalf.  [[Gswiki:Policy]] prohibits users from editing user pages unless the account is theirs or they have been given permission by that account holder to make those edits.  If you did give permission to another account to edit your user page, you will need to indicate this by clearly stating it on the subarticle&#039;s Discussion/Talk tab, [[User talk:WHIGHTCNIGHT/EG Fishing]], that you have given permission to any accounts do so.  Simply noting that in the edit reason for an article is not enough for Gswiki:Policy.  Alternatively, the other user can put that information on the discussion page on your behalf.  When adding that information, please make sure to add &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; at the end of your comments, which will automatically add a &amp;quot;signature&amp;quot; with your user name, plus the date and time of when your edit was made.&lt;br /&gt;
&lt;br /&gt;
If you are HORIBU1&#039;s account holder and are using multiple accounts to edit a user page, you will still need to include that permissions statement; this needs to be done for each subarticle edited by more than one account.  Alternatively, those accounts with permission to edit can add that information on your behalf.  Edits made prior to July, 2023, are grandfathered into an earlier version of Gswiki:Policy for character pages and will not be reverted or deleted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If that information is not added within 7 days, the edits made by another account to your user page will be deleted from the wiki.&#039;&#039;&#039;  Please do not remove the &amp;lt;nowiki&amp;gt;{{moddelete}}&amp;lt;/nowiki&amp;gt; template from any flagged user page.  Another moderator or I will remove that template after any updates have been reviewed to ensure that they meet [[Gswiki:Policy]] requirements.  If you have any questions about this process or need more information about the updated policy for editing user pages, please reach out to the wiki team on the Gemstone [https://discord.com/channels/226045346399256576/1061330227843833926 Discord forum&#039;s wiki thread].  Thank you for understanding. [[User:HOST-GSKEBECHET|HOST-GSKEBECHET]] ([[User talk:HOST-GSKEBECHET|talk]]) 08:36, 20 October 2026 (CDT)&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=254878</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=254878"/>
		<updated>2026-03-17T15:41:30Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Command Checks */&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 ranger&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;;bigshot companion&amp;lt;/CODE&amp;gt; - Resets the ranger companion setting so you can reconfigure it. Use this when you change your companion.&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 &amp;lt;creature&amp;gt;&amp;lt;/CODE&amp;gt; - Any input that does not match the above commands defaults to ranger tracking (e.g., &amp;lt;CODE&amp;gt;;bigshot single giant rat&amp;lt;/CODE&amp;gt; will track and hunt a giant rat).&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).&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&#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. Use &amp;lt;CODE&amp;gt;wandolier defensive&amp;lt;/CODE&amp;gt; to wave in a different stance.&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;
* &#039;&#039;&#039;rebuke&#039;&#039;&#039; - Performs Righteous Rebuke.&lt;br /&gt;
* &#039;&#039;&#039;scourge&#039;&#039;&#039; - Performs Ardor of the Scourge.&lt;br /&gt;
* &#039;&#039;&#039;momentum&#039;&#039;&#039; - Performs Glorious Momentum.&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;
&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;
====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;
&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;
&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;buffXX&#039;&#039;&#039; - Fires the ability when the buff duration is &amp;lt;= XX seconds. Supported for barrage, bearhug, coupdegrace, fury, flurry, pummel, thrash, shout, yowlp, garrote.&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.11.4                          |&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;
&amp;lt;/pre&amp;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;
==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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=254877</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=254877"/>
		<updated>2026-03-17T15:40:02Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Command Checks */ header changes&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 ranger&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;;bigshot companion&amp;lt;/CODE&amp;gt; - Resets the ranger companion setting so you can reconfigure it. Use this when you change your companion.&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 &amp;lt;creature&amp;gt;&amp;lt;/CODE&amp;gt; - Any input that does not match the above commands defaults to ranger tracking (e.g., &amp;lt;CODE&amp;gt;;bigshot single giant rat&amp;lt;/CODE&amp;gt; will track and hunt a giant rat).&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).&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&#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. Use &amp;lt;CODE&amp;gt;wandolier defensive&amp;lt;/CODE&amp;gt; to wave in a different stance.&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;
* &#039;&#039;&#039;rebuke&#039;&#039;&#039; - Performs Righteous Rebuke.&lt;br /&gt;
* &#039;&#039;&#039;scourge&#039;&#039;&#039; - Performs Ardor of the Scourge.&lt;br /&gt;
* &#039;&#039;&#039;momentum&#039;&#039;&#039; - Performs Glorious Momentum.&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;
&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;
====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;
&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;
&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;buffXX&#039;&#039;&#039; - Fires the ability when the buff duration is &amp;lt;= XX seconds. Supported for barrage, bearhug, coupdegrace, fury, flurry, pummel, thrash, shout, yowlp, garrote.&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.11.4                          |&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;
&amp;lt;/pre&amp;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;
==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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=252554</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=252554"/>
		<updated>2026-01-30T21:38:17Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Fedora */ use bundle install instead of individual gem install&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.13.5 supporting Ruby 4.0 - published January 16, 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;
# &#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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.3-1/rubyinstaller-devkit-3.4.3-1-x86.exe Ruby 3.4.3 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.4 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.1 -v&lt;br /&gt;
rbenv global 4.0.1&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 ~/lich-5&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;
&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.1 -v&lt;br /&gt;
rbenv global 4.0.1&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 ~/lich-5&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;
&amp;lt;/div&amp;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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
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 ~/lich-5&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. 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;
&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=252553</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=252553"/>
		<updated>2026-01-30T21:36:46Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Arch Linux &amp;amp; Arch-based distributions */ update to use BUNDLE INSTALL instead of individual gems&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.13.5 supporting Ruby 4.0 - published January 16, 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;
# &#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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.3-1/rubyinstaller-devkit-3.4.3-1-x86.exe Ruby 3.4.3 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.4 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.1 -v&lt;br /&gt;
rbenv global 4.0.1&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 ~/lich-5&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;
&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.1 -v&lt;br /&gt;
rbenv global 4.0.1&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 ~/lich-5&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;
&amp;lt;/div&amp;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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Perform Ruby Gem Installations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gem install rake&lt;br /&gt;
$ gem update&lt;br /&gt;
$ gem install ascii_charts concurrent-ruby curses ffi gtk3 jwt logger mechanize nokogiri os redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Download Lich &amp;amp; Profanity:&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;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=252552</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=252552"/>
		<updated>2026-01-30T21:36:03Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Chromebook &amp;amp; Debian variants */ update to use BUNDLE INSTALL instead of individual gems&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.13.5 supporting Ruby 4.0 - published January 16, 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;
# &#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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.3-1/rubyinstaller-devkit-3.4.3-1-x86.exe Ruby 3.4.3 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.4 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.1 -v&lt;br /&gt;
rbenv global 4.0.1&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 ~/lich-5&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;
&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.1 -v&lt;br /&gt;
rbenv global 4.0.1&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:&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;
gem install ascii_charts concurrent-ruby curses ffi gtk3 jwt logger mechanize nokogiri os redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich and Profanity:&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;
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;
&amp;lt;/div&amp;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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Perform Ruby Gem Installations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gem install rake&lt;br /&gt;
$ gem update&lt;br /&gt;
$ gem install ascii_charts concurrent-ruby curses ffi gtk3 jwt logger mechanize nokogiri os redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Download Lich &amp;amp; Profanity:&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;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=251956</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=251956"/>
		<updated>2026-01-15T17:05:56Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Lich 5 Only */ update Lich5 only directions&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.13.4 supporting Ruby 4.0 - published January 14, 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;
# &#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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.3-1/rubyinstaller-devkit-3.4.3-1-x86.exe Ruby 3.4.3 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.4 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.1 -v&lt;br /&gt;
rbenv global 4.0.1&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:&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;
gem install ascii_charts concurrent-ruby curses ffi gtk3 jwt logger mechanize nokogiri os redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich and Profanity:&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;
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;
&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.1 -v&lt;br /&gt;
rbenv global 4.0.1&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:&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;
gem install ascii_charts concurrent-ruby curses ffi gtk3 jwt logger mechanize nokogiri os redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich and Profanity:&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;
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;
&amp;lt;/div&amp;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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Perform Ruby Gem Installations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gem install rake&lt;br /&gt;
$ gem update&lt;br /&gt;
$ gem install ascii_charts concurrent-ruby curses ffi gtk3 jwt logger mechanize nokogiri os redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Download Lich &amp;amp; Profanity:&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;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;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.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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Sailor%27s_Grief&amp;diff=250139</id>
		<title>Sailor&#039;s Grief</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Sailor%27s_Grief&amp;diff=250139"/>
		<updated>2025-12-11T15:45:31Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: change to redirect to actual main content page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[:Category:Sailor&#039;s Grief creatures]]&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=File:Tysong_Wiki.jpg&amp;diff=248552</id>
		<title>File:Tysong Wiki.jpg</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=File:Tysong_Wiki.jpg&amp;diff=248552"/>
		<updated>2025-10-27T19:53:37Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tysong&#039;s official SimuCon portrait, by Josh Stover&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Ebounty&amp;diff=245558</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=245558"/>
		<updated>2025-09-08T16:05:33Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Changelog */ updated to 1.7.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Ebounty is management script for handling Bounties from the [[Adventurer&#039;s Guild]].&lt;br /&gt;
Afk scripting on any server but Shattered is in violation of game policy.&lt;br /&gt;
&lt;br /&gt;
==What Does Ebounty Do?==&lt;br /&gt;
&lt;br /&gt;
Ebounty will handle the management for Adventurer&#039;s Guild tasks. It utilizes a primary workflow of&lt;br /&gt;
&amp;lt;PRE&amp;gt;Find acceptable tasks. If acceptable task can not be found, execute the default Bigshot routine. If a task is available, execute the task and then turn in if not saturated. When bounty timer is up, grab a new task. Repeat. &amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How Do I Get It?==&lt;br /&gt;
&lt;br /&gt;
Eloot can be downloaded via &amp;lt;CODE&amp;gt;;repo download ebounty&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a script in active development and with the constant state of changes in the game, it is recommended to set ebountyand all Elanthia-Online scripts to auto-update via &amp;lt;CODE&amp;gt;;repo set-updatable ebounty&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 ;ebounty setup. There you will see a configuration window with various tabs to configure for your guild tasks. Presently Ebounty is designed to utilize [[Bigshot]] for it&#039;s attack related parameters, and will run a bigshot routine when there is no available active bounty. &lt;br /&gt;
&#039;&#039;&#039;Bigshot profiles need to be configured inside Bigshot before they can be utilized in Ebounty&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
As with most scripts, using a SETUP command will open a graphical user interface for configuring the script. Use ;ebounty setup to open this dialog. This will open a window with the following tabs:&lt;br /&gt;
* General - This is where you tell ebounty what type of bounties you are looking for and any task limits.  &lt;br /&gt;
* Escort - Set up your escort and location preferences&lt;br /&gt;
* Profiles - Exclusions and which creatures you do/do not which to hunt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The General Tab==&lt;br /&gt;
===Bounty Types===&lt;br /&gt;
* Bounty Types - This is where you will define which bounty types you wish. Enabling the checkboxes will tell ebounty which types of bounties you wish to get and which ones to drop. &lt;br /&gt;
Ebounty will use ;echild for children tasks and ;ego2 for escort tasks. &lt;br /&gt;
&lt;br /&gt;
===Task Limits===&lt;br /&gt;
* Task Limits - Here you can define maximum number of tasks you want to accept&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
* Rest when mind full - Will perform a bigshot attack, based on your default profile, and then return to your resting location once your mind is full. If disabled, ebounty will keep killing creatures until the bounty is or other rest condition like injury or mana are met. &lt;br /&gt;
* Run one bounty and quit - Ebounty will run a single bounty until successful and then quit.  &lt;br /&gt;
* Use Vouchers - Ebounty will use advguild vouchers until a desired bounty type has been met&lt;br /&gt;
* Rest at random nodes in town - Will find a random [[supernode]] in town for resting&lt;br /&gt;
* Just the Basics- Will only get/drop tasks and not perform any other bounty related routines&lt;br /&gt;
* Selling script - Which script you want to sell. No arguments needed. Default is Eloot&lt;br /&gt;
* Healing script - Which healing script you want when injured. No arguments needed. Default is Eherb&lt;br /&gt;
* Resting Room - Define where you want to rest between activities. &lt;br /&gt;
&lt;br /&gt;
==The Escort Tab==&lt;br /&gt;
Here you can define your travel preferences and which destinations to/from. &lt;br /&gt;
&lt;br /&gt;
==The Profiles Tab==&lt;br /&gt;
This is the area to tell Ebounty how to hunt&lt;br /&gt;
&lt;br /&gt;
===Creature Exclusions===&lt;br /&gt;
* Input a list of creature nouns that you do not wish to perform any tasks for and then click &#039;&#039;add&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===Profiles===&lt;br /&gt;
The heart of ebounty combat routines. &#039;&#039;Only Kill Bounty Creatures&#039;&#039; option is available if you only want to kill the creatures listed in the Creature Name field and ignore other creatures in the bigshot profile. &lt;br /&gt;
* Gem/Default profile - This is the default bigshot profile that Ebounty will utilize when there&#039;s no acceptable bounty to initiate. Ebounty will run bigshot using the parameters established in the profile for hunting, skinning, resting, etc... until the bigshot is resting and the bounty timer is available. See workflow screenshot. &lt;br /&gt;
* Bandits profile - Ebounty will attempt to locate where bandits are based in game location and then attack based on profile settings. &lt;br /&gt;
* Creatures - Associate a profile for one or more creature names. User can separate creatures by commas or each creature on a separate line. The pulldown will grab all bigshot profiles in the Bigshot profiles folder. &lt;br /&gt;
&#039;&#039;&#039;Creature names must match exactly in the Creature Names field and there must be a routine for that creature in the Associated Profile. Ebounty will not function for combat without these two items being correct.&#039;&#039;&#039; &lt;br /&gt;
If a creature is not listed in exclusions and no available Creature Name can be located, Ebounty will return to the resting spot and kill itself.&lt;br /&gt;
* Incorrect &amp;lt;CODE&amp;gt;executioner&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Correct &amp;lt;CODE&amp;gt;triton executioner&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Planned work and known issues==&lt;br /&gt;
&lt;br /&gt;
* Grouping: Not presently supported but planned&lt;br /&gt;
&lt;br /&gt;
* Hoarding: Basics work but we&#039;ll likely need to clean up ;shoard and rerelease it to fully support hoarding. That&#039;s going to be quite a bit of work&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: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.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;
    - 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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Eloot&amp;diff=245557</id>
		<title>Lich:Script Eloot</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Eloot&amp;diff=245557"/>
		<updated>2025-09-08T16:05:02Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Changelog */ updated to 2.4.10&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Eloot is an automatic looting script in [[lich]] that is the spiritual predessory, and borrows heavily from concepts in [[sloot]]. Eloot is actively maintained by the Elanthia-Online team. As with all scripts that deal with inventory management, it is &#039;&#039;&#039;Highly&#039;&#039;&#039; recommend to mark and register every item you value until you understand how eloot will handle your inventory, and it is not recommended to be wearing any gem hoarding containers until you can verify your eloot settings and behavior. &lt;br /&gt;
&lt;br /&gt;
==What does it do?==&lt;br /&gt;
Eloot will gather loot from a killed monster or room, place that loot into the defined containers including overflow containers. It will not gather specific loot types you define,skin creatures, will drop boxes off at the locksmith pool or town locksmith if you desire, and will sell loot that meets the criteria and deposit coins. Eloot settings are saved per character per instance, in your lich5 data folder. Ex lich-5\data\eloot\GSIV\Rinualdo.yaml. If you wish to keep eloot settings across more than one char, you can copy and paste this file and rename the .yaml to each character you have. &lt;br /&gt;
&lt;br /&gt;
==How do I get it?==&lt;br /&gt;
Eloot can be downloaded via &amp;lt;CODE&amp;gt;;repo download eloot&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As a script in active development and with the constant state of changes in the game, it is recommended to set eloot and all Elanthia-Online scripts to auto-update via &amp;lt;CODE&amp;gt;;repo set-updatable eloot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eloot scans your inventory each time lost, so adding ;autostart add --global eloot start to your lich autostart can populate the information it needs at the start of your gaming session.&lt;br /&gt;
&lt;br /&gt;
==How does it work?== &lt;br /&gt;
Eloot operates off in game [[STOW]] settings where a user can define one or multiple containers for loot. [[STOW]] settings need to be configured in game or eloot will not function. Eloot does not utilize User.vars like [[Sloot]] does. &lt;br /&gt;
Eloot allows the user to define a variety of loot and selling conditions. You can access the configuration via ;eloot setup&lt;br /&gt;
&lt;br /&gt;
==The Looting Tab==&lt;br /&gt;
The looting tab allows the user to define what items you want eloot to pick up. Item categorization is based on lich&#039;s gameobj-data.xml file. When no exclusions are defined and all available loot on the ground meets the relevant criteria, eloot will use the in game verb loot room, which the game engine gathers and places items based on your stow settings&lt;br /&gt;
* &#039;&#039;&#039;Loot Types&#039;&#039;&#039;&lt;br /&gt;
** Allows the user to tell eloot what things to loot. Of note, this is based on lich classification so some items may fit multiple categories. For example, a weapon may be both a weapon, magical, valuable, and uncommon. &lt;br /&gt;
* &#039;&#039;&#039;Other Settings&#039;&#039;&#039;&lt;br /&gt;
**A variety of switches for eloot configuration. Supports Coin Hands and a switch is provided for eloot to keep a lot in the yaml file for items that eloot is unable to loot. &lt;br /&gt;
* &#039;&#039;&#039;Overflow containers&#039;&#039;&#039;&lt;br /&gt;
**These are containers the user defines when the default stow containers are full. Of note, these should not be your default or box containers. For example, if your default container is a cloak and your box container is a backpack, then you would not designate either as overflow for boxes, but instead would pick satchel and knapsack as your primary and secondary overflow. &lt;br /&gt;
*&#039;&#039;&#039;Never Loot&#039;&#039;&#039;&lt;br /&gt;
** Items to never loot. Black ora, urglaes are popular exclusions for non clerics. &lt;br /&gt;
*&#039;&#039;&#039;Always Loot&#039;&#039;&#039;&lt;br /&gt;
**Always loot these items, no matter what other settings contain&lt;br /&gt;
*&#039;&#039;&#039;Creature exclusions&#039;&#039;&#039;&lt;br /&gt;
** If there is a creature you do not want to loot, such as one that can injur you when searching. &lt;br /&gt;
*&#039;&#039;&#039;Unlootable&#039;&#039;&#039;&lt;br /&gt;
** Note, sometimes due to player interaction, an item can be classified as unlootable. For example, if there is an uncut diamond on the ground and you run eloot, then another group or group member loots that diamond before eloot finishes, eloot may attempt to classify that as an unlootable item and will not try to loot again. You can check this location to see what items eloot was unable to loot previously.&lt;br /&gt;
==The Selling Tab==&lt;br /&gt;
* &#039;&#039;&#039;Sell Types&#039;&#039;&#039;&lt;br /&gt;
**Which items you want eloot to sell. &#039;&#039;&#039;MARK EVERYTHING IMPORTANT&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Only Sell from these STOW containers&#039;&#039;&#039;&lt;br /&gt;
**If you have a STOW container you want eloot not to sell from, you would remove it here. Testing beforehand is highly recommended.&lt;br /&gt;
* &#039;&#039;&#039;Exclusions&#039;&#039;&#039;&lt;br /&gt;
**If you want eloot not to sell any items supported by nouns or regex here&lt;br /&gt;
* &#039;&#039;&#039;Keep Scrolls&#039;&#039;&#039;&lt;br /&gt;
**Allows a defined list of spell numbers that eloot will not attempt to sell. Requires the appropriate training in reading scrolls to determine if a scroll contains the defined spells. Supports vibrant scrolls by doing 401v or 401 vibrant.&lt;br /&gt;
* &#039;&#039;&#039;Appraisals&#039;&#039;&#039;&lt;br /&gt;
**If enabled, eloot will attempt to appraise the designated categories to determine if they meet the Gemshop and Pawnshop limits established. This is useful for determining enhancive items that may require futher player inspection. Eloot will not attempt to resell items above these thresholds during the current session and will provide a notification to the user. If the current session is closed, eloot will attempt again on the next session. &lt;br /&gt;
* &#039;&#039;&#039;Locksmithing&#039;&#039;&#039;&lt;br /&gt;
**Allows the user to define which, if any, locksmithing component to use and allows the user to set a preconfigured tip as an actual silver amount or as a tip percentage. &lt;br /&gt;
* &#039;&#039;&#039;Other Settings&#039;&#039;&#039;&lt;br /&gt;
**Allows the user to define if they want collectiables deposited to the town collection location, to sell in FWI and if they want gold rings delivered to the chronomaster. 1212/1205/650 are options as well for those who can cast.&lt;br /&gt;
&lt;br /&gt;
==The Skinning Tab==&lt;br /&gt;
* &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
**Fill in the appropriate switches if you want eloot to skin, if you want it to keel and or use ranger spell 604 or Sunfist&#039;s Sigil of Resolve&lt;br /&gt;
* &#039;&#039;&#039;Skin Weapons&#039;&#039;&#039;&lt;br /&gt;
**Eloot needs to know what your skin weapon is and what container it is contained in. If your creature list requires a blunt weapon to skin, these also need to be filled out&lt;br /&gt;
* &#039;&#039;&#039;Skinning Exclusions&#039;&#039;&#039;&lt;br /&gt;
**Any creatures you do not want eloot to attempt to skin&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:eloot-1.PNG|Looting&lt;br /&gt;
File:eloot-2.PNG|Selling&lt;br /&gt;
File:eloot-3.PNG|Skinning&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;
  v2.4.10 (2025-09-06)&lt;br /&gt;
    - rework box contents check to store box instead of pausing&lt;br /&gt;
    - bugfix for looting coins on the ground&lt;br /&gt;
  v2.4.9 (2025-09-05)&lt;br /&gt;
    - bugfix in regex for use_coin_hand method&lt;br /&gt;
  v2.4.8 (2025-08-30)&lt;br /&gt;
    - bugfix for setting ELoot.data.coin_bag_full to false when empty.&lt;br /&gt;
  v2.4.7 (2025-08-15)&lt;br /&gt;
    - if debug to file enabled, allow for when started with a parameter (sell/pool/etc)&lt;br /&gt;
  v2.4.6 (2025-08-12)&lt;br /&gt;
    - fix encumbered after box opening by depositing silvers in process_boxes&lt;br /&gt;
  v2.4.5 (2025-07-22)&lt;br /&gt;
    - bugfix for default locksmith_withdrawl_amount&lt;br /&gt;
  v2.4.4 (2025-07-16)&lt;br /&gt;
    - allow customizable locksmith tip amount withdrawal&lt;br /&gt;
    - typo correction in bulk sell gem method&lt;br /&gt;
    - force clean overflow containers from sell_container list&lt;br /&gt;
    - utilize File.join for save/load&lt;br /&gt;
    - bugfix in pool_return to allow up to 2 seconds for GameObj right/left hand to populate&lt;br /&gt;
    - remove Unicode characters in formula explanation for scaled box tipping (non-logic change) / Warlock&lt;br /&gt;
  v2.4.3 (2025-07-15)&lt;br /&gt;
    - bugfix for town locksmith regex to open box after return being too generic&lt;br /&gt;
  v2.4.2 (2025-07-09)&lt;br /&gt;
    - bugfix for silver withdrawals failing on f2p accounts with low bank balances&lt;br /&gt;
  v2.4.1 (2025-06-05)&lt;br /&gt;
    - bugfix for unable to lighten load during pool return and no silvers to deposit to allow more boxes to be returned&lt;br /&gt;
    - bugfix for box loot to deposit coins if too many coins on yourself to be able to loot coins from box&lt;br /&gt;
    - change class checks to is_a? checks&lt;br /&gt;
  v2.4.0 (2025-05-21)&lt;br /&gt;
    - add CLI option to skin only&lt;br /&gt;
    - fix regex for sellable/type/sell CLI to make = optional to match help text&lt;br /&gt;
  v2.3.12 (2025-05-10)&lt;br /&gt;
    - fix for Pinefar banker withdraw/deposit&lt;br /&gt;
    - fix for disk/container contents being nil prior to storing an item&lt;br /&gt;
  v2.3.11 (2025-05-05)&lt;br /&gt;
    - fix find_boxes to now clear sacks found with boxes from sacks_full&lt;br /&gt;
    - bugfix in regex for pool parameters to match help text&lt;br /&gt;
    - general sanitation of GTK values on load and close of GTK window&lt;br /&gt;
    - bugfix in incremental tipping display chart&lt;br /&gt;
    - bugfix in locksmith_pool_count due to truncated results list returning incorrect list of boxes unopened&lt;br /&gt;
    - correctly display incremental tipping chart starting at base 0&lt;br /&gt;
  v2.3.10 (2025-04-28)&lt;br /&gt;
    - bugfix in locksmith_tip to ensure numerics incase of string values saved in yaml&lt;br /&gt;
  v2.3.9 (2025-04-27)&lt;br /&gt;
    - bugfix add coin bag full msg&#039;ing to regex&lt;br /&gt;
  v2.3.8 (2025-04-22)&lt;br /&gt;
    - bugfix for older Ruby 2.6 users and Bounty.task.assigned?&lt;br /&gt;
  v2.3.7 (2025-03-27)&lt;br /&gt;
    - add ;eloot pool return to options&lt;br /&gt;
    - bugfix for Rift talons gem hoarding&lt;br /&gt;
    - bugfix in get_regex to support hidden dagger harness&lt;br /&gt;
    - bugfix in check_type for hoarding HW hyphenated gem names&lt;br /&gt;
    - bugfix for locker reset while hoarding&lt;br /&gt;
    - bugfix in wait_for_disk logic&lt;br /&gt;
    - bugfix for spinbutton&lt;br /&gt;
    - add additional in_region boundaries and convert to UID lookup&lt;br /&gt;
    - bugfix for note deposit when using urchin guide and bounties&lt;br /&gt;
  v2.3.6 (2025-03-15)&lt;br /&gt;
    - typo for horde to hoard&lt;br /&gt;
    - bugfix to deposit local note if selling in FWI&lt;br /&gt;
    - bugfix in gem name standardization&lt;br /&gt;
    - remove deprecated percentstance &amp;amp; percentencumbrance calls&lt;br /&gt;
    - bugfix to not timeout on creatures that get ressurrected&lt;br /&gt;
    - bugfix on find_weapons_ready_list&lt;br /&gt;
    - bugfix in looting gemstone jewels if both hands currently used&lt;br /&gt;
    - bugfix in validate_setup when toggling on/off skinning&lt;br /&gt;
  v2.3.5 (2025-03-14)&lt;br /&gt;
    - additional updates to put_regex and get_regex&lt;br /&gt;
    - bugfix to not Regexp escape loot_keep&lt;br /&gt;
  v2.3.4 (2025-03-11)&lt;br /&gt;
    - bugfix for spin buttons not saving properly&lt;br /&gt;
    - add debug for loot method&lt;br /&gt;
  v2.3.2 (2025-03-10)&lt;br /&gt;
    - update to appraise method&lt;br /&gt;
    - fix for monsterbold gemstone jewel drop msging at feet&lt;br /&gt;
  v2.3.1 (2025-03-09)&lt;br /&gt;
    - add space for regex_at_feet&lt;br /&gt;
  v2.3.0 (2025-03-09)&lt;br /&gt;
    - add support for gambling kits&lt;br /&gt;
    - update for gemstones&lt;br /&gt;
    - bugfix when ELoot.data.settings[:loot_keep] is nil&lt;br /&gt;
    - bugfix when emptying jars to add to empty jar count&lt;br /&gt;
    - bugfix in store_item when gem hoarding&lt;br /&gt;
    - bugfix for weapon displayer&lt;br /&gt;
    - bugfix for container_contents&lt;br /&gt;
    - broke up the set_inventory method into smaller sections&lt;br /&gt;
    - bugfix add daybringer put_regex match&lt;br /&gt;
    - bugfix for swordbelts and neck sheaths&lt;br /&gt;
  v2.2.3  (2025-03-03)&lt;br /&gt;
    - added support for Lock &amp;amp; Key gameobj types to loot_special and loot_regular&lt;br /&gt;
    - bugfix in Bounty.task usage for gem/skin&lt;br /&gt;
  v2.2.2  (2025-02-28)&lt;br /&gt;
    - bugfix in Region.in_region for HW/Cold River&lt;br /&gt;
  v2.2.1  (2025-02-26)&lt;br /&gt;
    - bugfix in check_bounty_gems using furrier instead of gemshop&lt;br /&gt;
    - bugfix for neck sheath containers not populating contents&lt;br /&gt;
  v2.2.0  (2025-02-20)&lt;br /&gt;
    - updated required lich version to 5.8.0&lt;br /&gt;
    - added support for house lockers&lt;br /&gt;
    - added additional container content checks&lt;br /&gt;
    - added check for selling bounty items in the correct town&lt;br /&gt;
    - misc improvements to UI functionality&lt;br /&gt;
  v2.1.6  (2025-02-10)&lt;br /&gt;
    - bugfix for selling boxtraps&lt;br /&gt;
    - modified hording bugfix to be more comprehensive. Was failing on an end of line condition&lt;br /&gt;
    - bugfix for standard account gem inventory&lt;br /&gt;
  v2.1.5  (2025-02-07)&lt;br /&gt;
    - bugfix for hoarding inventory when using a family vault&lt;br /&gt;
  v2.1.4  (2025-01-25&lt;br /&gt;
    - rework coin bag logic to reduce excessive inspect calls&lt;br /&gt;
  v2.1.3  (2025-01-24)&lt;br /&gt;
    - bugfix in incrimental tipping&lt;br /&gt;
  v2.1.2  (2025-01-23)&lt;br /&gt;
    - added support for looting/selling locksmith traps&lt;br /&gt;
    - bugfix for breakdown calc&lt;br /&gt;
  v2.1.1  (2025-01-23)&lt;br /&gt;
    - add support for keeping vibrant scrolls. Enter the scroll number (Ex:101v or 101 vibrant) in the Keep Scrolls section&lt;br /&gt;
    - add box detail to selling output&lt;br /&gt;
    - added support for looting/selling locksmith traps&lt;br /&gt;
  v2.1.0  (2025-01-13)&lt;br /&gt;
    - added option to output debug information to file&lt;br /&gt;
  v2.0.10 (2025-01-11)&lt;br /&gt;
    - bugfix for box inhand and full locksmith pool&lt;br /&gt;
  v2.0.9  (2025-01-01)&lt;br /&gt;
    - bugfix for locksmith pool box list&lt;br /&gt;
  v2.0.8  (2024-12-21)&lt;br /&gt;
    - additional error checking for looting to avoid false pauses&lt;br /&gt;
    - removed get_lines method and combined it with get_command&lt;br /&gt;
    - add custom vine name&lt;br /&gt;
    - bugfix in loot_regular method when looting a box and default container is full&lt;br /&gt;
  v2.0.7  (2024-12-12)&lt;br /&gt;
    - add HW uncommon loot to loot_specials method&lt;br /&gt;
    - update reject loot method for 335 Deity effects&lt;br /&gt;
    - added automatic data reload if new version downloaded&lt;br /&gt;
  v2.0.6  (2024-12-06)&lt;br /&gt;
    - temporarily disable raiding from house lockers&lt;br /&gt;
    - bugfix in account type comparison&lt;br /&gt;
    - bugfix for running results report when nothing to report&lt;br /&gt;
  v2.0.5  (2024-12-06)&lt;br /&gt;
    - bugfix for house lockers check&lt;br /&gt;
    - bugfix for thinking bags were full when actually stunned.&lt;br /&gt;
  v2.0.4  (2024-12-01)&lt;br /&gt;
    - temporarily disable hording for house lockers&lt;br /&gt;
    - bugfix to hording regex when creating inventory&lt;br /&gt;
  v2.0.3  (2024-11-23)&lt;br /&gt;
    - will try to selling clothing at the gemshop first, then the pawnshop if applicable&lt;br /&gt;
    - bugfix in put_regex&lt;br /&gt;
    - bugfix in store_item&lt;br /&gt;
  v2.0.2  (2024-11-20)&lt;br /&gt;
    - bugfix in single_loot method&lt;br /&gt;
    - bugfix in hording process&lt;br /&gt;
    - bugfix for urchin guide&lt;br /&gt;
  v2.0.1  (2024-11-12)&lt;br /&gt;
    - bugfix to only buff for selling if something to sell&lt;br /&gt;
    - bugfix to exit if insufficient funds at bank&lt;br /&gt;
  v2.0.0  (2024-09-04)&lt;br /&gt;
    - support for hording gems and alchemy ingredients&lt;br /&gt;
    - support for in-between script to run. This runs between finishing the pool and before selling. Usecase: totems, hording, supplies, whatever&lt;br /&gt;
    - addition of CLI selling options: sellable, type, and itemized&lt;br /&gt;
    - disk usage tracking improvements&lt;br /&gt;
    - incremental tipping added for locksmith pool&lt;br /&gt;
    - added appraisal container to store items appraised over limit.&lt;br /&gt;
    - added crumble messaging for the bowels&lt;br /&gt;
    - bugfix for selling in HW&lt;br /&gt;
    - bugfix for closed coin bag&lt;br /&gt;
    - bugfix for favor_left skinning&lt;br /&gt;
    - bugfix for silver_deposit if keeper_silvers returns a note&lt;br /&gt;
    - bugfix for coin hand bank deposit&lt;br /&gt;
    - changes to UI&lt;br /&gt;
    - bugfix for coin bag capacity check&lt;br /&gt;
    - bugfix for shattered urchin usage&lt;br /&gt;
    - bugfix for 1205 Glamour&lt;br /&gt;
    - updated changelog on wiki&lt;br /&gt;
    - removed changelog in script before 1.6.20&lt;br /&gt;
  v1.6.36 (2024-08-16)&lt;br /&gt;
    - pause script instead of exit when failing to empty container&lt;br /&gt;
  v1.6.35 (2024-08-10)&lt;br /&gt;
    - fix for emptying container but failing due to full bag&lt;br /&gt;
  v1.6.34 (2024-08-07)&lt;br /&gt;
    - bugfix for box_in_hand method&lt;br /&gt;
  v1.6.33 (2024-07-25)&lt;br /&gt;
    - add additional get_regex for READY WEAPON&lt;br /&gt;
  v1.6.32 (2024-07-20)&lt;br /&gt;
    - box_in_hand method updated to process both hands.&lt;br /&gt;
  v1.6.31 (2024-06-30)&lt;br /&gt;
    - add toggle for coin hand closing to be optional after selling&lt;br /&gt;
  v1.6.30 (2024-06-28)&lt;br /&gt;
    - fix for coin hand not closing after selling routine&lt;br /&gt;
  v1.6.28 (2024-05-01)&lt;br /&gt;
    - Change bad Char.methods to Stats.method&lt;br /&gt;
  v1.6.27 (2024-04-28)&lt;br /&gt;
    - add additional disk noun bassinet&lt;br /&gt;
  v1.6.26 (2024-04-24)&lt;br /&gt;
    - fix for GST and F2P accounts&lt;br /&gt;
    - fix for disk noun regex word boundary&lt;br /&gt;
  v1.6.25 (2024-04-24)&lt;br /&gt;
    - handle all the new custom disk nouns&lt;br /&gt;
  v1.6.24 (2024-04-05)&lt;br /&gt;
    - update change_stance to use percentstance instead of checkstance&lt;br /&gt;
    - add support for CMAN STANCE in change_stance&lt;br /&gt;
  v1.6.23 (2024-04-05)&lt;br /&gt;
    - additional open/close messaging for squelching&lt;br /&gt;
    - reduce Lich::Util.quiet_command_xml timeout from default 5 to 2 seconds&lt;br /&gt;
  v1.6.22 (2024-03-29)&lt;br /&gt;
    - fix for Frozen Bramble creatures requiring left hand to be empty in order to loot.&lt;br /&gt;
  v1.6.21 (2024-03-26)&lt;br /&gt;
    - add messaging for valence weapons&lt;br /&gt;
  v1.6.20 (2024-03-16)&lt;br /&gt;
    - added use of trash verb&lt;br /&gt;
    - (F2P) withdraw a note when the max bank account balance is reached&lt;br /&gt;
    - fix to not &amp;quot;Share silvers&amp;quot; from the allotment of &amp;quot;Keep Silvers&amp;quot;&lt;br /&gt;
    - fix to locksmith rooms without trashcans&lt;br /&gt;
  v1.6.19 (2024-03-13)&lt;br /&gt;
    - fix to not sell bounty items in FWI when selling disabled for that type&lt;br /&gt;
  v1.6.18 (2024-03-08)&lt;br /&gt;
    - fix for bulk selling skins when bundles are worth to much to sell via bulk sell&lt;br /&gt;
  v1.6.17 (2024-02-25)&lt;br /&gt;
    - withdraw exact amount if using flat tipping for locksmith pool&lt;br /&gt;
  v1.6.16 (2024-01-29)&lt;br /&gt;
    - bugfix in break_rocks method&lt;br /&gt;
  v1.6.15 (2023-12-17)&lt;br /&gt;
    - added breakable looting and selling options for Hive items (released 12/17/2023)&lt;br /&gt;
    - added word boundary check for notes&lt;br /&gt;
    - bugfix for urchin guild at locksmith pool in Hinterwilds&lt;br /&gt;
  v1.6.14 (2023-12-04)&lt;br /&gt;
    - fix bug in coin bag. It needed a free hand&lt;br /&gt;
    - incorporated urchin guide support for shattered and plat (prime already supported)&lt;br /&gt;
    - typo in gem selling method&lt;br /&gt;
  v1.6.13 (2023-11-27)&lt;br /&gt;
    - changed unknown response at locksmith to put item in container and keep going instead of exiting&lt;br /&gt;
  v1.6.12 (2023-11-24)&lt;br /&gt;
    - update get_regex for unique messaging&lt;br /&gt;
  v1.6.11 (2023-11-19)&lt;br /&gt;
    - check to make sure box is locked when using locksmith&lt;br /&gt;
  v1.6.10 (2023-11-03)&lt;br /&gt;
    - bugfix to use eonake gauntlet with correct hand&lt;br /&gt;
    - bugfix for sewer rat sack&lt;br /&gt;
    - support for coin bags&lt;br /&gt;
    - add &#039;sling&#039; to get_regex&lt;br /&gt;
    - add check for Gtk gem&lt;br /&gt;
    - fix typo in return_hands method&lt;br /&gt;
    - add look messaging for modular neck sheath&lt;br /&gt;
  v1.6.9 (2023-11-02)&lt;br /&gt;
    - check mapdb and xmldata for trashcan searching fallback logic&lt;br /&gt;
  v1.6.8 (2023-09-21)&lt;br /&gt;
    - added support to sell when a box is in hand&lt;br /&gt;
  v1.6.7 (2023-09-21)&lt;br /&gt;
    - Bugfix for matching change in wealth output.&lt;br /&gt;
  v1.6.6 (2023-09-10)&lt;br /&gt;
    - bugfix to deposit silvers for ;eloot pool deposit.&lt;br /&gt;
  v1.6.5 (2023-09-05)&lt;br /&gt;
    - bugfix for the bugfix for calling deposit when nothing to do.&lt;br /&gt;
  v1.6.4 (2023-09-05)&lt;br /&gt;
    - bugfix for skinning routine not excluding from creature exclude list&lt;br /&gt;
    - bugfix for calling deposit when nothing to do.&lt;br /&gt;
  v1.6.3 (2023-08-24)&lt;br /&gt;
    - update for dropping boxes (shattered only) to include both hands&lt;br /&gt;
    - excluded shimmering orbs from sell list&lt;br /&gt;
    - bugfix for excluding items&lt;br /&gt;
    - added method to get script version from only one location&lt;br /&gt;
    - misc variable adjustments in Data class&lt;br /&gt;
  v1.6.2 (2023-08-14)&lt;br /&gt;
    - added regex for GEF weapon retrieval&lt;br /&gt;
  v1.6.1 (2023-08-03)&lt;br /&gt;
    - extended support for fossil charm (ground coins)&lt;br /&gt;
  v1.6.0 (2023-07-31)&lt;br /&gt;
    - added support for fossil charm&lt;br /&gt;
  v1.5.37 (2023-07-19)&lt;br /&gt;
    - switched Lich::Util.silver_count for using &#039;wealth quiet&#039;&lt;br /&gt;
  v1.5.36 (2023-06-23)&lt;br /&gt;
    - fix for assume lion to check for 25 mana if 650 already active&lt;br /&gt;
    - fix for assume lion to check for proper cooldown number&lt;br /&gt;
  v1.5.35 (2023-06-11)&lt;br /&gt;
    - change to 650 implementation&lt;br /&gt;
  v1.5.34 (2023-06-08)&lt;br /&gt;
    - bugfix for looting coins in a box when encumbered&lt;br /&gt;
  v1.5.33 (2023-06-04)&lt;br /&gt;
    - prep for new Lich 5.7.0 infomon.lic change&lt;br /&gt;
  v1.5.32 (2023-05-12)&lt;br /&gt;
    - reworked method for cursed items to support eonake gauntlets&lt;br /&gt;
  v1.5.31 (2023-04-12)&lt;br /&gt;
    - bugfix for never loot section not working correctly with regex&lt;br /&gt;
  v1.5.30 (2023-04-07)&lt;br /&gt;
    - split drag method to wear and drag and added RT check for wearing containers after bulk sell.&lt;br /&gt;
  v1.5.29 (2023-04-04)&lt;br /&gt;
    - added regex for pirate harnesses&lt;br /&gt;
  v1.5.28 (2023-03-30)&lt;br /&gt;
    - bugfix for trashcans&lt;br /&gt;
  v1.5.27 (2023-03-30)&lt;br /&gt;
    - additional find_trash method changes to utilize meta:trashcan&lt;br /&gt;
  v1.5.26 (2023-03-30)&lt;br /&gt;
    - added &amp;quot;wastebin&amp;quot; to list of trashcans&lt;br /&gt;
  v1.5.25 (2023-03-25)&lt;br /&gt;
    - another try at finding the trashcan&lt;br /&gt;
  v1.5.24 (2023-03-23)&lt;br /&gt;
    - added additional trashcan identification if no room description available&lt;br /&gt;
  v1.5.23 (2023-03-22)&lt;br /&gt;
    - added open regex for container&lt;br /&gt;
  v1.5.22 (2023-03-08)&lt;br /&gt;
    - bugfix for updating setting on nil for Ruby v3&lt;br /&gt;
  v1.5.21 (2023-03-06)&lt;br /&gt;
    - bugfix for bag_loot method&lt;br /&gt;
  v1.5.20 (2023-02-25)&lt;br /&gt;
    - bugfix for scroll selling in setup&lt;br /&gt;
  v1.5.19 (2023-02-22)&lt;br /&gt;
    - added toggle for unlootable tracking&lt;br /&gt;
  v1.5.18 (2023-02-07)&lt;br /&gt;
    - added additional error checking for autoclose bags&lt;br /&gt;
  v1.5.17 (2023-02-01)&lt;br /&gt;
    - added support for Assume Aspect - Lion (650)&lt;br /&gt;
  v1.5.16 (2023-01-31)&lt;br /&gt;
    - added child to unlootable list&lt;br /&gt;
  v1.5.15 (2023-01-30)&lt;br /&gt;
    - bug fix for wait_for_disk method&lt;br /&gt;
  v1.5.14 (2023-01-22)&lt;br /&gt;
    - added support for plinite looting&lt;br /&gt;
  v1.5.13 (2023-01-22)&lt;br /&gt;
    - add RT check to retrieving weapon/shield after looting&lt;br /&gt;
    - added support to not sell alchemy items: ;eloot sell alchemy_mode&lt;br /&gt;
  v1.5.12 (2023-01-17)&lt;br /&gt;
    - add check to prevent trying to loot something that&#039;s not yours&lt;br /&gt;
  v1.5.11 (2023-01-13)&lt;br /&gt;
    - add extra output to eloot test (disk and full containers)&lt;br /&gt;
  v1.5.10 (2022-12-23)&lt;br /&gt;
    - fixed location bug for locksmithing in KF&lt;br /&gt;
  v1.5.9 (2022-12-05)&lt;br /&gt;
    - added unlootable list to the UI (bottom of loot tab)&lt;br /&gt;
    - bugfix for trying to put loot in full container&lt;br /&gt;
  v1.5.8 (2022-12-05)&lt;br /&gt;
    - added word boundary checks for container setup&lt;br /&gt;
    - bug fix for phased box&#039;s&lt;br /&gt;
  v1.5.7 (2022-11-27)&lt;br /&gt;
    - removed custom quiet command to use Lich command instead&lt;br /&gt;
    - fixed bug if encumbered at the locksmith and can&#039;t get the box out of the disk&lt;br /&gt;
    - fixed bug for ice elemental looting&lt;br /&gt;
  v1.5.6 (2022-11-11)&lt;br /&gt;
    - added an &amp;quot;Always Loot&amp;quot; list&lt;br /&gt;
    - added support for auto closing bags&lt;br /&gt;
    - bug fix for handling reliquaries&lt;br /&gt;
    - bug fix for skinning without a designated skinning tool&lt;br /&gt;
  v1.5.5 (2022-11-03)&lt;br /&gt;
    -bugfix for unlootable tracking&lt;br /&gt;
  v1.5.4 (2022-11-01)&lt;br /&gt;
    - bugfix for silver totals&lt;br /&gt;
  v1.5.3 (2022-10-31)&lt;br /&gt;
    - added check for unlootable items&lt;br /&gt;
  v1.5.2 (2022-10-29)&lt;br /&gt;
    - added muck and cloud to unlootable list&lt;br /&gt;
  v1.5.1 (2022-10-28)&lt;br /&gt;
    - bugfix for terminal-table silver breakdown&lt;br /&gt;
  v1.5.0 (2022-10-09)&lt;br /&gt;
    - removed dependancy on separate UI file and associated code&lt;br /&gt;
    - cleaned up inventory &amp;amp; looting logic&lt;br /&gt;
    - added support to always check the locksmith pool&lt;br /&gt;
    - fixed bug that was looting cursed items in boxes&lt;br /&gt;
    - added validation check for setup&lt;br /&gt;
    - silver summary at end of selling using terminal-table&lt;br /&gt;
    - archived change log before 1.4.0&lt;br /&gt;
    - adds CLI interface to update settings&lt;br /&gt;
  v1.4.22 (2022-09-25)&lt;br /&gt;
    - bug fix for cursed items in boxes&lt;br /&gt;
  v1.4.21 (2022-09-23)&lt;br /&gt;
    - added support for hidden skin sheathes&lt;br /&gt;
    - bug fix for crumbly bandit bandanas&lt;br /&gt;
    - locksmith pool functionality added: over encumbered coin deposit and box drop off only option&lt;br /&gt;
    - fixed bug in track_full_sacks default setting&lt;br /&gt;
    - fixed bug when trying to do initial load when in RT&lt;br /&gt;
    - added small delay to ;eloot start&lt;br /&gt;
  v1.4.20&lt;br /&gt;
    - bug fix for cursed items and some crumbly ones&lt;br /&gt;
  v1.4.19&lt;br /&gt;
    - fixed looting logic when its flagged as two items with one not wanted (eg. uncommon &amp;amp; clothing). It will pick up the item to prevent valuable items getting left behind&lt;br /&gt;
    - additional error checking for empty box&#039;s in containers&lt;br /&gt;
    - additional error checking for looting&lt;br /&gt;
    - added support to use left hand for looting&lt;br /&gt;
    - added support for users who don&#039;t sell with eloot (full container tracking)&lt;br /&gt;
    - added secondary overflow container&lt;br /&gt;
    - moved UI check only when loading or setup&lt;br /&gt;
  v1.4.18&lt;br /&gt;
    - follow-up typo fix for default crumbly list&lt;br /&gt;
  v1.4.17&lt;br /&gt;
    - add rough leather quiver to the default crumbly items&lt;br /&gt;
  v1.4.16 (2022-08-23)&lt;br /&gt;
    - fixed typo in overflow setting&lt;br /&gt;
  v1.4.15 (2022-08-23)&lt;br /&gt;
    - changed regex for scabbards again&lt;br /&gt;
  v1.4.14 (2022-08-19)&lt;br /&gt;
    - will sell bounty items in original town if selling in FWI&lt;br /&gt;
    - added regex for custom scabbard&lt;br /&gt;
    - reworked data loading, should be faster now&lt;br /&gt;
    - changed the container identification to skip non-worn containers (helps with getting the correct skinning sheath)&lt;br /&gt;
  v1.4.13&lt;br /&gt;
    - empty gold, silver, mithril boxes if selling them&lt;br /&gt;
    - fixed trying to loot gangplank&lt;br /&gt;
    - fix for stancing with verbose turned on&lt;br /&gt;
  v1.4.12&lt;br /&gt;
    - fixed duplicate container saving&lt;br /&gt;
    - fixed bug in box looting that wasn&#039;t recognizing box found armor/weapons&lt;br /&gt;
  v1.4.11 (2022-08-02)&lt;br /&gt;
    - added support for looting coins on the ground&lt;br /&gt;
  v1.4.10 (2022-07-28)&lt;br /&gt;
    - more edits for locksmithpool not recognizing worker&lt;br /&gt;
  v1.4.9 (2022-07-28)&lt;br /&gt;
    - another edit to the locksmith pool&lt;br /&gt;
  v1.4.8 (2022-07-20)&lt;br /&gt;
    - close sacks function had a bug preventing it from working&lt;br /&gt;
    - additional changes for the load delay in locksmith pool&lt;br /&gt;
  v1.4.7 (2022-07-09)&lt;br /&gt;
    - fix for object load delay in locksmith pool&lt;br /&gt;
  v1.4.6 (2022-07-09)&lt;br /&gt;
    - added option to deposit coins/notes without sell routine&lt;br /&gt;
    - fixed bug in empty box selling causing it to duplicate&lt;br /&gt;
  v1.4.5&lt;br /&gt;
    - performance improvement in selling and storing items&lt;br /&gt;
    - added logic to address having a box in hand at start of sell routine.&lt;br /&gt;
    - added support to loot a box in hand then exit - ;eloot box&lt;br /&gt;
  v1.4.4&lt;br /&gt;
    - added skin matching for alchemically ruined skins&lt;br /&gt;
  v1.4.3&lt;br /&gt;
    - added support for skinning rotting chimera&#039;s when they have scorpion tails&lt;br /&gt;
  v1.4.2 (2022-06-15)&lt;br /&gt;
    - bug fix in blunt skinning&lt;br /&gt;
  v1.4.1 (2022-06-15)&lt;br /&gt;
    - bug fix for disks&lt;br /&gt;
  v1.4.0 (2022-06-10)&lt;br /&gt;
    - added support for shroud and glamour&lt;br /&gt;
    - added check in valid loot routine to exclude disks&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=245556</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=245556"/>
		<updated>2025-09-08T16:04:35Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Command Checks */ add coupdegrace&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Bigshot is designed to handle combat routines, including moving to and from hunting areas, defining creatures to hunt and accompanying attack routines&lt;br /&gt;
Afk scripting on any server but Shattered is in 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 commands inputs, Bigshot lets a user 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: ;repository download Bigshot&lt;br /&gt;
&lt;br /&gt;
===How Do I Make it GO!?===&lt;br /&gt;
Initial setup is accessed through ;bigshot setup. There you will see a configuration window with various tabs to setup for your hunting routine. &lt;br /&gt;
&lt;br /&gt;
As with most scripts, using a SETUP command will open a graphical user interface for configuring the script. Use ;bigshot setup to open this dialog. This will open a window with the following tabs:&lt;br /&gt;
* Profile - This is where you save/load your profile information. Profiles are saved to your \Lich5\data\&amp;lt;GSServer\&amp;lt;charname&amp;gt;\bigshot_profiles directory. Eg, \Lich5\data\GSIV\Rinualdo\bigshot_profiles (note, if you&#039;ve previously used bigshot, the file location has changed. The previous location was in your \Lich5\scripts\bigshot_profiles folder. You can copy/paste &lt;br /&gt;
* Resting - Set up your resting routine and location.&lt;br /&gt;
* Hunting - Create a hunting map by adding BOUNDARIES, define your attack stance and any pre hunt information&lt;br /&gt;
* Attacking - configuration for ambushing, bless, reactions, and similar flags&lt;br /&gt;
* Commands - Where you define your valid targets and associated attack routines. See sample routines below. &lt;br /&gt;
* Misc tab - Various config options&lt;br /&gt;
&lt;br /&gt;
We will take a closer look at each of these individually further on.&lt;br /&gt;
&lt;br /&gt;
There is also several other commands you can do for more functionality.&lt;br /&gt;
* ;bigshot quick - Special hunting mode that kills everything in the room your in and quits bigshot. Wont wander at all, and wont attempt to rest. Has its own hunting commands and hunting targets.&lt;br /&gt;
* ;bigshot head/tail - This is for Multi-Account hunting. It only works for a single computer. Every character needs to be setup for the hunting area your going to. You start it by having your following characters join your head character. The following characters need to be running bigshot with ;bigshot tail. Once that happens, have the leader of the group do ;Bigshot head. They will then procede to hunt in the area you have setup.&lt;br /&gt;
* ;bigshot display - Shows all your current settings.&lt;br /&gt;
* ;bigshot reset - Resets all your targetable and untargetable lists. Useful if you find bigshot won&#039;t targets something it should.&lt;br /&gt;
* ;bigshot ranger or ;bigshot companion - Resets ranger companion setting so you can set it again. Used when you change your companion.&lt;br /&gt;
* ;bigshot profile save &amp;lt;name here&amp;gt; - Saves a profile in YAML format in your character&#039;s profile folder. Also accessible via the Profiles tab in the setup menu.&lt;br /&gt;
* ;bigshot profile load &amp;lt;name here&amp;gt; - Loads a profile from your character&#039;s profile folder. Also accessible via the Profiles tab in the setup menu. &lt;br /&gt;
* ;bigshot single  - When used solo, will execute a single hunting routine, return to your resting location and then exit&lt;br /&gt;
* ;bigshot &amp;lt;options&amp;gt; &amp;lt;creature&amp;gt; - example: ;bigshot single giant rat - Will activate ranger tracking of a creature. Anything input besides the above commands will default to &amp;quot;track &amp;lt;input&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==The Profile Tab==&lt;br /&gt;
* Load Profile - will load an existing profile. Nothing will be available if no previous profiles are saved&lt;br /&gt;
* Current Profile - shows the existing profile if a new one is loaded. &lt;br /&gt;
* Save profile - Valid profile information for future ebounty script support&lt;br /&gt;
  Save Current Settings - tell Bigshot what you want your profile to be named. Any name will work here. Once a profile is saved, will show up in the Load Profile menu. &lt;br /&gt;
&lt;br /&gt;
==The Resting Tab==&lt;br /&gt;
Short and sweet, here is where we setup our resting routines. During REST mode, Bigshot uses the EXP command and checks your mind, hit points, wound status, mana and spirit. Once all of these values are at the specified Should_hunt? settings, Bigshot leaves REST mode and begins a HUNT.&lt;br /&gt;
&lt;br /&gt;
* room id: - This is the room that Bigshot will return to for resting. Use Room Numbers from Map/Go2. Support both LichIDs and SimuIDs with a u, for example, 228 for Town Square Central or u7120.&lt;br /&gt;
* pre-rest commands: - These commands run before entering REST mode. An example routine is: &#039;shea, wear shield, sit, stance offensive, rest&#039;. This will sheath your weapon, wear your shield, sit, enter offensives stance and use the REST verb.&lt;br /&gt;
* active resting scripts: - Active resting scripts are scripts that will be run upon entering REST mode. These scripts should be things that you do after a hunt: get healed, empty your bags, spell up. An example list is: &#039;eloot sell, waggle, eherbs&#039;. This will use eloot to sell according to the options set with eloot. After selling, it will use Waggle to spell you up according to however Waggle is setup. Finally, eherbs will check your PACK and use herbs stored there to heal whatever wounds you have.&lt;br /&gt;
* Fog Option: - Uses [[Spirit Guide (130)]], Voln [[Symbol of Return]], [[Traveler&#039;s Song (1020)]], [[Sigil of Escape]], [[Familiar Gate (930)]] or Custom when heading back to rest. Setting it to None does nothing. Setting it to 130 will cause it to use 130 first then if that fails symbol of return. Symbol of return will use that first, then 130 if that fails. Setting to Traveler&#039;s Song will attempt once and continue. Setting to Familiar Gate will attempt to summon a portal once and walk through it. Will perform a mana pulse if not enough mana is detected. Custom option allows for comma separated list of commands to perform.&lt;br /&gt;
* Should Rest? &lt;br /&gt;
Bigshot evaluates these conditions and, when they are met, will go to your resting room set on the Resting tab and execute any resting scripts you have set.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Rests when your mind has reached this threshold. Generally, set this to 100 to rest when fried.&lt;br /&gt;
* &#039;&#039;&#039;and extra kills &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of extra monsters to kill after reaching your `when percent mind` threshold and after LTE boosts used&lt;br /&gt;
* &#039;&#039;&#039;and used lte boosts &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of LTE boosts it will attempt to use after reaching your `when percent mind` threshold&lt;br /&gt;
* &#039;&#039;&#039;or percentmana &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your percentage of mana is at or below this threshold.&lt;br /&gt;
** This can be set to 0, but leaving a bit in the tank can be good if you have to use 406 (Unlock) to open the WL Graveyard gate. 11/17/24: If you run into an error that calls to an &amp;quot;OOM&amp;quot; message, try setting this to 1.&lt;br /&gt;
* &#039;&#039;&#039;or percentencumbrance &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when you have reached a given level of encumbrance.&lt;br /&gt;
* &#039;&#039;&#039;or wounded eval&#039;&#039;&#039;&lt;br /&gt;
** Allows you to set an evaluation phrase to determine if you are too wounded to continue hunting. Wound evaluations can send you home on nearly any wounded condition of your choice: bleeding, level 2 wound, can&#039;t cast, too many scars etc.&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 not cast anymore (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 &amp;gt; 0 &amp;amp;&amp;amp; [Wounds.rightArm, Wounds.rightHand, Scars.leftArm, Scars.leftHand].max &amp;gt; 0)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The following can be added to one of the above wound evaluations 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 is at or below this threshold.&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 is at or below this threshold.&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;
&lt;br /&gt;
==The Hunting Tab==&lt;br /&gt;
This is where you will tell bigshot when to hunt, any commands or society abilities to use prior to hunting, and where on the map you want to hunt. &lt;br /&gt;
===The Hunting Map===&lt;br /&gt;
Your hunting map is a series of Boundaries - rooms that Bigshot will not enter - and a Start room - the first room that Bigshot moves to when a hunt starts. These function very similarly to the boundaries in the ;Wander script, but are stored in Bigshot&#039;s configuration files and not in a character cache as with ;Wander. Here you also configure when to hunt&lt;br /&gt;
* starting room ID: - This is the first room that Bigshot goes to when hunting. You may set this to any room within the Boundaries that you set with the second option.&lt;br /&gt;
* boundary rooms: - Boundary rooms are walls. Bigshot will not 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;
The proper syntax for boundary rooms are separated by commas&lt;br /&gt;
Some popular Rift boundaries as an example&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;
For Maaghara boundaries, you can use &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
9734&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Confluence boundaries:&amp;lt;pre&amp;gt;&lt;br /&gt;
2300, 3519, 228, 188, 1932, 10855, 3668, 1438, 1005 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imagine a hunting area that is a six room square. To enter this square, one must GO DOORWAY from room A. You would set the room outside of the square - ie room A - before you GO DOORWAY, as a boundary. Then, you would set room B to the Starting Room. From there, Bigshot will move to room B and then wander around inside the Boundary - ie the square hunting area - until it your &#039;&#039;&#039;Should_rest?&#039;&#039;&#039; conditions are met.&lt;br /&gt;
&lt;br /&gt;
* Wait before wandering to another room: - Time you wait before leaving a room to find some creatures. Default is 0.3 seconds. Set to 0 for fastest (spammy) movement. &lt;br /&gt;
&lt;br /&gt;
* attack stance: - Specify what stance you want to attack from. Bigshot will remain in Stance Defensive until an attack command is issued, whereupon it will stance to your Attack Stance and execute your Attacking routine. Bigshot recognizes all stances from the game, Offensive -&amp;gt;-&amp;gt; Defensive.&lt;br /&gt;
* pre-hunt commands: - These commands will be executed before Bigshot uses Go2 to travel to your hunt&#039;s Starting Room. As an example: &#039;gird, stance defensive&#039;. This will ensure that you have readied your weapon and are in Defensive stance before traveling. Set short lived combat spells like 1605 (Arm of the Arkati) to be cast in this line.&lt;br /&gt;
* active hunting scripts: - Active hunting scripts are scripts that will run while Bigshot is in Hunt mode. Many of these scripts have been made obsolete by the next option. Clever scripters have written some nice scripts that will keep certain spells up, execute cmans based on conditions etc. If you need a complex action to run while Hunting that Bigshot does not have the capacity for, an active hunting script may be called for.&lt;br /&gt;
* society abilities/spells/cmans: - Bigshot can be asked to keep certain abilities up at all times during a hunt. Hovering your mouse over this field will display a list of cmans and society abilities specified by their numerical designations. Spells may also be added here. Separate all values by commas. For example, entering &#039;506&#039; will keep the spell Haste up during Hunts, casting whenever it has worn off.&lt;br /&gt;
* loot script - Bigshot will call a loot script to loot your kills for you. eloot is commonly scripts used here. Be sure to use the SETUP command on whatever loot script you use, as if it is not configured properly, Bigshot will likely error.&lt;br /&gt;
* wracking spirit &amp;gt;= - Setting a value here will WRACK for mana if your spirit is greater than or equal to the value specified. Setting 6, for example, will WRACK down to 5 spirit. This will ONLY function if you have the &#039;Use sign of wracking/sigil of power&#039; box checked.&lt;br /&gt;
* Use sign of wracking/sigil of power - checkbox to enable the use of wracking&lt;br /&gt;
* Priority hunt - checkbox to enable the use of the priority system for hunting. This allows you to change targets based on the order listed in valid targets/quickhunt targets. For example, your hunting thunder trolls, wind witches, and puma. Your valid target order is wind witch, thunder troll, puma. Your currently attacking a puma, when a thunder troll walks in. You will switch to the attacking the thunder troll because its before the puma in the valid targets list. After killing the thunder troll, you go back to the puma, only to have a wind witch walk into your room. You will again switch to the wind witch because its in front of the puma. Hope you get the idea. When using the ;bigshot quick option, it will base the order of targets by your quickhunt targets first, then the order of the targets in the room that don&#039;t match any of your quickhunt targets. Example, bandits are in your quickhunt targets. You type ;bigshot quick when you get ambushed in the room. Currently in the room is a large ogre and three bandits. The order of targets will be the bandits first, then the large ogre.&lt;br /&gt;
* Delay looting - delays looting of creatures in a room.&lt;br /&gt;
* Pull players to feet - attempt to pull players to their feet upon passing them in a room&lt;br /&gt;
* Stop for dead players - checkbox will pause bigshot if you encounter a dead player&lt;br /&gt;
* Sneaky Sneaky - sneak around while out in the hunting area&lt;br /&gt;
&lt;br /&gt;
===Should hunt ===&lt;br /&gt;
Bigshot evaluates the conditions set on this tab to determine if you are ready to hunt or not.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Setting this to 51 will rest until Cleared. Setting at 65 will wait until Muddled.&lt;br /&gt;
* &#039;&#039;&#039;and percent mana&amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Determines the percent total of your maximum mana that must be present before hunting&lt;br /&gt;
** Setting below 50 will result in quick, uneventful hunts if you cast much. Generally, this is set at 95 or higher.&lt;br /&gt;
* &#039;&#039;&#039;and CHECKspirit &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Bigshot will check to see that your current Spirit value is higher than what is listed here.&lt;br /&gt;
** Make sure that you have this set high enough that Bigshot won&#039;t hunt immediately after DEPARTing if you have Depart / re-run Bigshot checked on the General tab.&lt;br /&gt;
&lt;br /&gt;
==The Attacking Tab==&lt;br /&gt;
* Ambush aiming locations (head, etc): - Allows you to specify what order you aim for ambush. Default is head, right leg, left leg, chest.&lt;br /&gt;
* Archery aiming locations (head, etc): - Allows you to specify what order you aim for archery. Loops through your aiming locations once you hit the area your aiming at.&lt;br /&gt;
* flee if enemy count is &amp;gt; - Flees the room if the total number of enemies in the room exceeds the value. Set this to 1 if you want to engage single targets.&lt;br /&gt;
* ...but don&#039;t count these: - Bigshot will ignore monsters specified in this line when eveluating if it should flee based on how many monsters are in the room. Useful for when you are hunting in an area with extremely low level monsters mixed in with your targets.&lt;br /&gt;
* ...and always flee from: - Bigshot will always flee from the specified monster as soon as possible. Extremely useful if your hunting area has higher level and/or extremely dangerous monsters mixed in with your intented target(s).&lt;br /&gt;
* flee from environment message: - Will flee whenever anything you put in here gets sent from the game. (XML regex matching)&lt;br /&gt;
* Wait before wandering to another room: - time you spend before moving to a new room. Default is 0.3 seconds. You can set it to 0 to move instantly. Tends to be spammy for anyone in the same hunting area.&lt;br /&gt;
* Approach lone targets only - Forces Bigshot to only begin combats against creatures that are alone.&lt;br /&gt;
* Bless weapon? - Performs a Consecrate (1604), then a Cleric Bless or Voln Bless on whatever weapon loses its bless during hunting. If you can&#039;t bless your weapon while hunting will return you to your rest area and quit the script.&lt;br /&gt;
* Flee from boon - Enabling this check box will force Bigshot to flee from all boon/gifted/boss creatures (available in [https://github.com/elanthia-online/scripts/pull/449/commits/afade49e25dd6042c30b6d62fec4d65376667f80 v4.3.0])&lt;br /&gt;
* Activate weapon reactions - Will initiate reactive strikes when the opportunity presents itself&lt;br /&gt;
* Flee from clouds - Enabling this check box will force Bigshot to flee from Cloud spells such as 125(Call Lightning with its Ominous Cloud), 1704 (Stun Cloud) and 1713 (Death Cloud)&lt;br /&gt;
* Flee from vines - Enabling this check box will force Bigshot to flee from Vine spell such as 610(Tangle Weed)&lt;br /&gt;
* Flee from webs - Enabling this check box will force Bigshot to flee from webs.&lt;br /&gt;
* Flee from voids- Enabling this check box will force Bigshot to flee from voids.&lt;br /&gt;
&lt;br /&gt;
==Commands Tab==&lt;br /&gt;
The true guts of Bigshot, this is where you specify your Attack Routine. &lt;br /&gt;
* hunting commands - These are the commands that Bigshot will evaluate (ie execute) when it is in the room with a valid target (one that you specified in your Hunting section. These commands are separated by a comma. Bigshot recognizes most hunting verbs and, failing that, will use an fput command (a direct entry method) and just execute the commands directly as written. The following are a list of usable hunting commands:&lt;br /&gt;
** kill - Attacks using the KILL verb.&lt;br /&gt;
** incant &amp;lt;spell number&amp;gt; - Casts the specified spell with the INCANT verb. This will automatically stance into offensive for bolt and other stance-sensitive spells. A caster may CHANNEL the spell using [[INCANT (verb)]] to INCANT SET CHANNEL &amp;lt;spell&amp;gt; (a standard GSIV verb, not part of Lich). Alternatively, a caster may CHANNEL spells by using the SET verb (a standard GSIV verb, not part of Lich) to SET ChannelIncant ON. This will CHANNEL an INCANTed spell if the caster is in a stance higher than neutral.&lt;br /&gt;
** channel &amp;lt;spell number&amp;gt; - Channels the specified spell at the target. This requires a stance higher than neutral to have any effect.&lt;br /&gt;
** &amp;lt;Spell Number&amp;gt; - Casts the specified spell with the PREPARE and CAST verbs.&lt;br /&gt;
** wand - As in, &amp;lt;CODE&amp;gt;wand target&amp;lt;/CODE&amp;gt;. Gets a wand from the specified storage and WAVES it at the target.&lt;br /&gt;
** wandolier - Similiar to wand, but uses wandoliers. Gets a wand from the fresh wand container and waves it, rubs container if no wands found. Default waves in offensive. Can change via &amp;lt;CODE&amp;gt;wandolier defensive&amp;lt;/CODE&amp;gt; to wave in a different stance&lt;br /&gt;
** fire - As in, &amp;lt;CODE&amp;gt;fire target&amp;lt;/CODE&amp;gt;. Gets ammunition from the specified storage and FIREs it at the target. Will attempt to aim based on settings on hunting tab.&lt;br /&gt;
*** The above listed commands should be used with the (x#) syntax. For example, &amp;lt;CODE&amp;gt;kill target (x3)&amp;lt;/CODE&amp;gt; will swing three times at the target before re-evaluating the attack routine. If the (xx) variable is used, Bigshot will continue using the specified attack command up to five (5) times. Example: &amp;lt;CODE&amp;gt;903 target (xx)&amp;lt;/CODE&amp;gt; will continue to cast 903 at the target (5) times before restarting the attack routine or until it is dead. If you want to ensure the routine does not restart, using a sufficiently large number should suffice (e.g. x100). Bigshot may also be set to only execute a command based on how much mana or stamina you currently have. For mana, use the (m##) command. &amp;lt;CODE&amp;gt;920 target (m50)&amp;lt;/CODE&amp;gt; will only cast 920 (Implosion) if you have 50 or more mana. Similarly, &amp;lt;CODE&amp;gt;cman feint target (s10)&amp;lt;/CODE&amp;gt; will only execute the combat maneuver Feint on the target if you have 10 or more stamina. The command syntax is used as a separate call and wrapped in separate parenthesis, as in (m50 s20)(x2). &lt;br /&gt;
** aim &amp;lt;location&amp;gt; - Aims at the specified location.&lt;br /&gt;
** ambush - Uses the AMBUSH verb to attack. Will aim based on settings in Hunting tab. Also will aim dynamically, &amp;quot;Ambush head&amp;quot; would aim at the head, overwriting any settings or defaults for that attack.&lt;br /&gt;
** wait &amp;lt;time&amp;gt; - Bigshot may Stance Dance by using the WAIT command. Bigshot will go into and stay in Stance Defensive until the specified time is over OR the target swings / casts, whereupon it will evaluate the rest of the Attack Routine, changing into your specified attack stance.&lt;br /&gt;
** mstrike - As in, &amp;lt;CODE&amp;gt;mstrike target&amp;lt;/CODE&amp;gt;. Mstrike depending on mstrike cooldown and stamina. Has its own option page. Can also be used with UAC, &amp;quot;mstrike punch&amp;quot;.&lt;br /&gt;
** berserk - Executes the BERSERK verb and stands by until it fades.&lt;br /&gt;
** throw - Empties hands, Attempts throw, get the stuff you emptied.&lt;br /&gt;
** weed/kweed - Casts 610 at target. Using &amp;quot;kweed&amp;quot; as your command will force evoke 610 ensuring the damage version&lt;br /&gt;
** curse &amp;lt;curse&amp;gt; - Clumsy/Weakness/Darkness/Itch/Hex/Pox/Nightmare/Star - will prep 715 and use curse command as defined. Will skip &amp;quot;curse star&amp;quot; if buff is up.&lt;br /&gt;
** unarmed - Uses the Bigshot UAC routine. Routine will attack with appropriate attacks to rank up and use mstrike based on mstrike options page. Usage &amp;quot;unarmed (punch|jab|kick|grapple)&amp;quot;.&lt;br /&gt;
** smite - Performs an [[Order of Voln]] [[Kai&#039;s_Smite|Smite]] on target until successful.&lt;br /&gt;
** leech - Performs a [[Mana Leech (516)]] on target if cooldown is under 15 minutes.&lt;br /&gt;
** script &amp;lt;script name&amp;gt; - Executes a specified custom attack script.&lt;br /&gt;
** hide - Continue hiding until you&#039;re actually hidden. Or it&#039;s tired of trying.&lt;br /&gt;
** sleep - As in, &amp;lt;CODE&amp;gt;sleep 10&amp;lt;/CODE&amp;gt;. Pause bigshot. Useful with fried hunting commands such as: &amp;lt;CODE&amp;gt;410, sleep 15&amp;lt;/CODE&amp;gt; will E-wave then wait 15 seconds and e-wave again if there are valid targets.&lt;br /&gt;
** stance - As in, &amp;lt;CODE&amp;gt;stance defense&amp;lt;/CODE&amp;gt;. Change stances.&lt;br /&gt;
** nudgeweapons - Move all weapons on the ground to an adjacent room. Useful for casting Implosion (720).&lt;br /&gt;
** force &amp;lt;cmd&amp;gt; until &amp;lt;endroll&amp;gt; - As in, &amp;lt;CODE&amp;gt;force incant 1002 until 101&amp;lt;/CODE&amp;gt;. Continue issuing a command until a desired endroll. Only works for normal looking swings/spells/cmans.&lt;br /&gt;
** eachtarget  &amp;lt;cmd&amp;gt; - issues command to each valid target in room&lt;br /&gt;
** efury &amp;lt;fire|cold&amp;gt; - casts Earthern Fury (917) on the target and waits for DOT to end or 12secs to pass&lt;br /&gt;
** caststop &amp;lt;spell&amp;gt; - casts the spell and then immediately stops it after casting&lt;br /&gt;
** wield &amp;lt;noun&amp;gt; &amp;lt;left|right&amp;gt; - weilds new noun and stores the hand given to put new noun item in&lt;br /&gt;
** store - store left, right or both, but only if something is in those hands&lt;br /&gt;
** tether &amp;lt;recast&amp;gt; - casts 706 with built-in logic to wait, can also do recast to auto-recast 706 on creature death and DOTs transfer&lt;br /&gt;
** unravel &amp;lt;spell&amp;gt; - casts 1013 Song of Unravelling with an optional spell to target against creature&lt;br /&gt;
** depress - casts 1015 Song of Depression with some some built in logic&lt;br /&gt;
** phase - force CASTs 704 Phase due to needing to prep/cast for usage on NPC targets&lt;br /&gt;
* hunting commands (b) - Attack routines set up for a monster flagged (b) in the Hunting section.&lt;br /&gt;
* hunting commands (c) - Attack routines set up for a monster flagged (c) in the Hunting section.&lt;br /&gt;
* hunting commands (d) - Attack routines set up for a monster flagged (d) in the Hunting section.&lt;br /&gt;
* hunting commands (e) - Attack routines set up for a monster flagged (e) in the Hunting section.&lt;br /&gt;
* hunting commands (f) - Attack routines set up for a monster flagged (f) in the Hunting section.&lt;br /&gt;
* hunting commands (g) - Attack routines set up for a monster flagged (g) in the Hunting section.&lt;br /&gt;
* hunting commands (h) - Attack routines set up for a monster flagged (h) in the Hunting section.&lt;br /&gt;
* hunting commands (i) - Attack routines set up for a monster flagged (i) in the Hunting section.&lt;br /&gt;
* hunting commands (j) - Attack routines set up for a monster flagged (j) in the Hunting section.&lt;br /&gt;
* fried hunting commands - Commands executed specifically when fried. Useful when hunting in a group.&lt;br /&gt;
* quick hunting commands - Commands executed specifically when using ;bigshot quick.&lt;br /&gt;
* valid targets: - These are the monsters you are hunting. Bigshot will most easily recognize monsters based on the NOUNs or their name. For example, &#039;a large ogre&#039; can be targeted with just &#039;ogre&#039;. Using longer descriptors can be troublesome, and you should copy a monster&#039;s name directly from the game front end to avoid troubles. You can use multiple entries separated by commas. For example: &#039;manticore, thrak&#039; will kill manticores and thraks.&lt;br /&gt;
* quickhunt targets: - These are monsters you have designated attacks for when your using the ;bigshot quick option for hunting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PSM3 Integration===&lt;br /&gt;
* hunting commands - Bigshot now supports weapon/shield skills and warcries. Assaults will wait until they finish or are interuppted. These commands are separated by a comma. The following are a list of usable hunting commands:&lt;br /&gt;
** barrage, flurry, fury, gthrusts, pummel, thrash - Assaults will wait until attacks are completed/interrupted.&lt;br /&gt;
** fury - You can specify the default attack fury will use. Will jab if not specified: fury punch or fury kick&lt;br /&gt;
** charge, cripple, dizzyingswing, pindown, twinhammer  - Setups will execute on cooldown so make sure to check for prone/stun/root/ect.&lt;br /&gt;
** clash, cyclone, pulverize, volley, wblade, whirlwind - AOE will execute on cooldown, limit with check volley(mob3).&lt;br /&gt;
** shout - Will perform warcry shout. Must use a command check or it will shout every loop: shout(!shout),shout(buff10 s25) &lt;br /&gt;
** yowlp - Will perform warcry yowlp. Must use a command check or it will yowlp every loop: yowlp(!yowlp), yowlp(buff10 s10)&lt;br /&gt;
** holler - Will perform warcry holler every loop taunting all the mobs. holler(s60)&lt;br /&gt;
** bellow, growl, cry - Offensive warcries can be used with target for single target or all for aoe.&lt;br /&gt;
** shield bash, shield charge, shield pin, shield push, shield strike, shield trample, shield throw&lt;br /&gt;
** surge - Will keep surge of strength up. surge or surge(surge) will cast even on cooldown, surge(!surge) will only cast when not on cooldown.&lt;br /&gt;
** 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&lt;br /&gt;
** dislodge &amp;lt;location&amp;gt; - Dislodge from location specified: dislodge eye neck&lt;br /&gt;
** stomp - Will perform a stomp attack. Channels 909 if not active. Can also add 909 to society abilities to keep it active.&lt;br /&gt;
** dhurl - Hurl your weapon and recovers it. Works with weapon bonding auto return and the recover verb.&lt;br /&gt;
** assume &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt; - Will cycle between two aspects, or evoke a single aspect. Also works in society ability box. &amp;quot;650 &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt;&amp;quot;&lt;br /&gt;
** briar &amp;lt;weapon&amp;gt; - activate the AS buff on briar weapons. Tracks weapon charge and uses on cooldown.&lt;br /&gt;
** stance perfection - Put 10, 20, 30, ect in your attack stance box to take advantage of stance perfection.&lt;br /&gt;
** chastise, excoriate - Will perform FEAT if available and affordable&lt;br /&gt;
&lt;br /&gt;
You may need to &#039;&#039;&#039;SKILLS FULL/CMAN INFO/WEAPON INFO/SHIELD INFO&#039;&#039;&#039; if you&#039;ve recently changed training or skills are being outright skipped.&lt;br /&gt;
&lt;br /&gt;
===Additional Options===&lt;br /&gt;
*haste or 506 - Placing this in front of any command will cause you to cast 506 before doing that command. It only casts if it isn&#039;t currently up or has less than 3 seconds left on its timer.&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 10, haste kill (x3)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
*slayer or 240 - Placing this in front of any command will cause you to cast 240 before doing that command. It will not recast if it&#039;s 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;
&lt;br /&gt;
Commands need to use the following format:&lt;br /&gt;
&amp;lt;CODE&amp;gt;COMMAND (CHECKS)(REPETITIONS)&amp;lt;/CODE&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So &amp;lt;CODE&amp;gt;hamstring (mob1 prone)(x2)&amp;lt;/CODE&amp;gt; Any (x#) needs to be separate. Also (xx) is not unlimited and is just short for (x5).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional checks you can add to any command to customize the attack to your desired scenario.&lt;br /&gt;
Each check below can be used by itself or with any other check. Put them inside () with a space between each additional check. Example - Kill(m20 s5 e20)&lt;br /&gt;
&amp;lt;p&amp;gt;Each of these also has an inverse or opposite.&lt;br /&gt;
Just put a ! in front of the command. Example - Kill(!m20 !s5 !e20)&lt;br /&gt;
*s# - Checks that you have the required stamina&lt;br /&gt;
*m# - Checks that you have the required mana&lt;br /&gt;
*h# - Checks that you have the required health but based on a percentage instead of fixed number&lt;br /&gt;
*v# - Checks that you have the required spirit&lt;br /&gt;
*e# - Checks that your encumbrance percentage is at or below&lt;br /&gt;
*tier# - Checks for your current UAC tier (1,2,3). Performs command if UAC Tier is equal or greater.&lt;br /&gt;
*mob# - Checks for the number of npcs in room. Performs command if npcs in room is equal to or more than number specified. Only use for 2 or more creatures in the room&lt;br /&gt;
&amp;lt;PRE&amp;gt;To further clarify the mob# implimentation&lt;br /&gt;
1 mob, mob2, 1 IS less than 2, attack should not proceed.&lt;br /&gt;
2 mob, 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 mob, !mob2, 2 IS NOT more than 2, attack can proceed&lt;br /&gt;
3 mob, !mob2, 3 IS more than 2, attack should not proceed&amp;lt;/PRE&amp;gt;&lt;br /&gt;
*once - Performs the command once on a specified target, resets on room change&lt;br /&gt;
*room - Performs the command once in a room only, resets on room change&lt;br /&gt;
*prone - Checks to see if target is not sleeping|webbed|stunned|kneeling|sitting|lying down|prone|frozen|held in place. Performs command if target status is not one of the previous.&lt;br /&gt;
*frozen - Same usage as prone. Broke out of prone check for archers against non-corporeal creatures that deflect ranged. Corporeal creatures can be stunned and will break this check.&lt;br /&gt;
*undead - Checks to see if target is undead. Performed command if target is undead.&lt;br /&gt;
*flying - Checks to see if target is flying. Performed command if target is flying.&lt;br /&gt;
*rooted - Checks to see if the target is rooted. Performed command if target is rooted.&lt;br /&gt;
*hidden - Checks to see if you&#039;re currently hidden.&lt;br /&gt;
*poison - Checks to see if you&#039;re currently poisoned.&lt;br /&gt;
*disease - Checks to see if you&#039;re currently diseased.&lt;br /&gt;
*noncorporeal - Checks to see if NPC is [[noncorporeal|non-corporeal]] undead&lt;br /&gt;
*pcs - Checks to see if there are any PCS in room that are also not in your group&lt;br /&gt;
*outside - Checks to see if the room you are in is outside&lt;br /&gt;
*barrage - Checks for the Enhanced Dexterity buff from Barrage.&lt;br /&gt;
*fury - Checks for the Enhanced Constitution buff from Fury.&lt;br /&gt;
*flurry - Checks for the Slashing Strikes buff from Flurry.&lt;br /&gt;
*pummel - Checks for the Concussive Blows buff from Pummel.&lt;br /&gt;
*thrash - Checks for the Forceful Blows buff from Thrash.&lt;br /&gt;
*vigor - Checks for the Tangleweed Vigor buff from Tangleweed.&lt;br /&gt;
*reflex - Checks for the Arcane Reflex buff from Nature&#039;s Touch.&lt;br /&gt;
*tailwind - Checks for Tailwind buff from Breeze. (tailwind) (!tailwind)&lt;br /&gt;
*shout - Checks for the Empowered buff from Shout.&lt;br /&gt;
*yowlp - Checks for the Yertie&#039;s Yowlp buff from Yowlp.&lt;br /&gt;
*holler - Checks for the Horland&#039;s Holler buff from Holler.&lt;br /&gt;
*voidweaver - checks for the Voidweaver buff from Implosion(720)&lt;br /&gt;
*justice - Checks for charges of Swift Justice. (justice) do skill with charges (!justice) do skill with no charges&lt;br /&gt;
*buffXX - Fire ability when buff duration is &amp;lt;= XX. Supported for barrage,bearhug,coupdegrace,fury,flurry,pummel,thrash,shout,yowlp&lt;br /&gt;
*tier# - Perform action if you are at the corresponding tier. (!tier3) don&#039;t do it if you are at tier3. (tier2) do it if you are tier2&lt;br /&gt;
*censer - Attempt to cast 320 before your command checking mana and cooldown. 309(censer), 335(censer mob3), attack(censer)&lt;br /&gt;
*ancient - Checks for grizzled/ancient creatures&lt;br /&gt;
*animate - Checks for if you have an animate present or not&lt;br /&gt;
*rebuke - Checks for Righteous Rebuke buff&lt;br /&gt;
*scourge - Checks for Ardor of the Scourge buff&lt;br /&gt;
*momentum - Checks for Glorious Momentum buff&lt;br /&gt;
*coupdegrace - Checks for Empowered buff.&lt;br /&gt;
**If command is a spell, will only cast censer if you have the mana for censer and the spell you intend.&lt;br /&gt;
**If command is not a spell, will only check you have enough mana for the censer.&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;
&lt;br /&gt;
Waits 10 seconds for the monster to swing or cast and then immediately counter attacks from the specified attack stance set in the Hunting tab. Swings a total of three times before going into Defensive stance and waiting 10 seconds 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;
&lt;br /&gt;
Waits 15 seconds before INCANTing 505 (Hand of Tonis), hopefully knocking down or stunning the target. Following this, Bigshot casts 903 (minor water) repeatedly 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;
&lt;br /&gt;
Casts 1615 (Divine Strike) at the target from Defensive stance, possibly forcing the target to kneel. Then, uses the kill verb to swing continuously until the target is dead or 100 times..whichever happens 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;
&lt;br /&gt;
Uses the Combat Maneuver FEINT against the target until a successful end roll and then hits the target twice before trying to 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;
&lt;br /&gt;
Hides from Defensive stance and then ambushes that the target&#039;s left leg. Once round-time is up, repeats (ie HIDES again from defensive stance).&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;
&lt;br /&gt;
Casts 720 (Implosion) at the target if your character has 50 or more mana. Then, INCANTs 708 (Limb Disruption) at the target, using the default AIM location (if set). Finally, casts 702 (Mana Disruption) at the target up to (5) times or until it is 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;
&lt;br /&gt;
Prepares 708 (Limb Disruption) and CASTs it at the target&#039;s left leg. The second prepares the same spell and then CHANNELs it at the target&#039;s left leg. It will then cast 719 (Dark Catalyst) if there is at least 50 mana, and will only cast one time. The last will incant 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;
&lt;br /&gt;
Waits 30 seconds or until your target attacks. Begins attacked with 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;
&lt;br /&gt;
Will shield charge the target if your character has 15 or more stamina and the target is NOT prone.  &lt;br /&gt;
&lt;br /&gt;
The second command will then ambush based on the settings in the &amp;quot;Attacking&amp;quot; Tab - in this case a custom order of head, neck, right leg, back was given so Bigshot will first try to Ambush the head unless the head is too injured or the head cannot be reached followed by the neck then right leg then back.  &lt;br /&gt;
&lt;br /&gt;
Bigshot will then focus mstrike the target unless the creature count is equal to or greater than the setting in the MSTRIKE Tab, in which case it will open mstrike instead.  If you put &amp;quot;mstrike target&amp;quot;, Bigshot will always focused mstrike regardless of the settings in the MSTRIKE Tab.  Alternatively, you can set the &amp;quot;Unfocused MSTRIKE when creatures equal or greater&amp;quot; to a large number, to always focus your mstrikes (or set it to 1 to always open mstrike).&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;
&lt;br /&gt;
Will aoe bellow, then whirling blade if there are at least 3 targets. The third command will flurry if you don&#039;t have the slashing strikes buff. Finally it will attack and continue to attack until one of the previous attacks become available.&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;
&lt;br /&gt;
Will open up with a taunt from holler, then shield throw if there are at least 3 targets. Third command will flurry on cooldown. Fourth will thrash on cooldown. Finally we will attack if everything else ends up on cooldown or we run out of stamina.&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;
&lt;br /&gt;
If there is more than one mob, it will hide with shroud and divert one of the targets. Third command will ambush if hidden. Fourth will flurry on cooldown followed up with attack to finish anything off.&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;
&lt;br /&gt;
Will cast surge when not on cooldown, and bullrush to bust up and apply vulnerable, then bearhug which is faster if target is vulnerable. Third we will pummel on cooldown and attack when nothing else is available.&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;
&lt;br /&gt;
Will keep surge active, casting during cooldown for 60 stamina. Next it will shout and refresh shout when there is less than 11 seconds left on the duration. Third it will shield strike followed up with a pummel once every minute. It will finish off 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;
&lt;br /&gt;
Will open up with pin down if there are at least 4 targets, then will volley if there are at least 2 targets. The third command will cast tangleweed if you do not have the tangleweed vigor buff or the arcane reflex buff. Our fourth command will barrage unless we have the enhanced dexterity buff from barage. Fifth we will cast a 1 second spike thorn if we do have 16 mana and do have the arcane reflex buff. Finally we will fire until one of our other commands become available.&lt;br /&gt;
&lt;br /&gt;
===Hunting Target Examples===&lt;br /&gt;
All of the examples below will work for both the &#039;valid targets&#039; and &#039;quickhunt targets&#039; entries.&lt;br /&gt;
* A hunting option only using the default command (a) for each creature in an area:&lt;br /&gt;
&amp;lt;pre&amp;gt;crazed zombie, niirsha, sacristan spirit&amp;lt;/pre&amp;gt;&lt;br /&gt;
* A hunting option using custom hunt commands depending on the creature.  In this case it will use command (a) for a [[crazed zombie]] and a [[sacristan spirit]], while using (b) for a [[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;
* A hunting option that will include the [[:Category:Boss creatures|Boss Creatures]] variations as valid targets:&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;
* Some additional advanced options for identifying valid targets:&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;
* To attack everything in the room &amp;lt;code&amp;gt;(?:.*)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc Tab==&lt;br /&gt;
Various specialized config options&lt;br /&gt;
&lt;br /&gt;
===UAC Options===&lt;br /&gt;
The various options for configuring how UAC works:&lt;br /&gt;
* &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039;&lt;br /&gt;
** The attack used when you have reached excellent in the UAC tier&lt;br /&gt;
** Options are jab, punch, grapple, or kick&lt;br /&gt;
* &#039;&#039;&#039;Aim at location (head, etc)&#039;&#039;&#039;&lt;br /&gt;
** Used for aimed UAC Combat, which requires ambush training to be effective&lt;br /&gt;
** Leave blank when you don&#039;t want to aim.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE when creatures equal or greater&#039;&#039;&#039;&lt;br /&gt;
** Determines how many creatures must be present before using MSTRIKE&lt;br /&gt;
* &#039;&#039;&#039;Use Voln SMITE?&#039;&#039;&#039;&lt;br /&gt;
** Will perform a Voln SMITE on [[Non-corporeal]] undead&lt;br /&gt;
&lt;br /&gt;
Frequently, people have trouble setting up Bigshot to work with Unarmed Combat. Bigshot only requires minimal configuration to ensure UAC works well.&lt;br /&gt;
#UAC tab: Input your &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039; (jab, punch, grapple, or kick)&lt;br /&gt;
#Commands tab: Input your &#039;&#039;&#039;hunting commands(a)&#039;&#039;&#039; option as &#039;&#039;&#039;unarmed jab&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Important notes to keep in mind on how UAC works in Bigshot:&lt;br /&gt;
* The hunting option &#039;&#039;&#039;unarmed jab&#039;&#039;&#039; can be replaced by any UAC attack type (e.g. &#039;&#039;&#039;unarmed punch&#039;&#039;&#039;)&lt;br /&gt;
* UAC follow up strikes will be selected over the base or tier 3 attack&lt;br /&gt;
* Tier 3 attacks will be used only when positioning is excellent&lt;br /&gt;
&lt;br /&gt;
There is almost no reason to ever use anything other than &#039;&#039;&#039;unarmed jab&#039;&#039; as the hunting command, and either &#039;&#039;&#039;grapple&#039;&#039;&#039; or &#039;&#039;&#039;kick&#039;&#039;&#039; as the Tier 3 attack.&lt;br /&gt;
&lt;br /&gt;
===MSTRIKE Options===&lt;br /&gt;
MSTRIKE attack now has options for when it should be used.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown stamina requirement&#039;&#039;&#039;&lt;br /&gt;
** Allows you to specify how much stamina you want before it will MSTRIKE during the MSTRIKE Cooldown&lt;br /&gt;
** Be careful when setting this too low as it can pop your muscles&lt;br /&gt;
** Leave blank for it to use your max stamina.&lt;br /&gt;
* &#039;&#039;&#039;QUICKSTRIKE stamina requirement&#039;&#039;&#039;&lt;br /&gt;
** Like above but instead for using QUICKSTRIKE during the MSTRIKE routine.&lt;br /&gt;
* &#039;&#039;&#039;Unfocused MSTRIKE when creatures equal or greater&#039;&#039;&#039;&lt;br /&gt;
** Number of creatures in room before you do an unfocused mstrike. Default is 2.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown&#039;&#039;&#039;&lt;br /&gt;
**Toggle for MSTRIKEing during its cooldown period&lt;br /&gt;
* &#039;&#039;&#039;Use QUICKSTRIKE for MSTRIKE&#039;&#039;&#039;&lt;br /&gt;
** Toggle for using QUICKSTRIKE when you MSTRIKE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ammo/Wands===&lt;br /&gt;
Here you find the settings to tell Bigshot where you keep all of your nifty wands and bolts and arrows. If your attack routine involves FIRE or WAND verbs, these fields must be set lest Bigshot hang up.&lt;br /&gt;
* find ammo in this container: - Leave BLANK if having Bigshot use FIRE without getting ammo out (Archery 2020 Update). Rather self explanatory, this field holds the location of your ammunition storage, be it a wand harness, a quiver or just your backpack.&lt;br /&gt;
* use this ammo type: - Leave BLANK to have Bigshot use FIRE without getting any ammo (Archery 2020 Update). Again, like specifying monsters, Bigshot is most sensative about the NOUNs that you use here. If you &lt;br /&gt;
* fresh wand container: - Bigshot looks in this container to find fesh wands to WAVE.&lt;br /&gt;
* dead wand container: - ...And then will deposit the used up wands in this container.&lt;br /&gt;
* use this wand type: - Here you specify which particular wand type you want to use. Bigshot will then pull only these kinds for WAVEing. Can have multiple types listed. Seperate each one with a comma. Example: &amp;quot;aquamarine wand, bloodwood wand, etc&amp;quot;&lt;br /&gt;
* Hide while waiting to pick up ammo - Checking this box will have Bigshot hide when gathering up your spent arrows and bolts.&lt;br /&gt;
* Use wands when out of mana - Bigshot will pull whatever wand you have specified in the use this wand type field and automatically stance to your attacking stance and WAVE your wand at valid targets until you are out of wands OR hit your resting conditions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MA Grouping===&lt;br /&gt;
* Enter the name of the looter in Head/Tail configuration&lt;br /&gt;
&lt;br /&gt;
==Monitoring Tab==&lt;br /&gt;
* Monitor interaction - Running scripts automates most functions and happens rather mechanically. Most anyone can tell if you are scripting just by watching you. Checking this box will pop up a window whenever Bigshot thinks that someone or something is trying to interact with you.&lt;br /&gt;
* Engage deadman&#039;s switch - Selecting this option will force Bigshot to quit Gemstone IV when your character is at less than 40% health, allowing you to log back on and assess the situation manually later.&lt;br /&gt;
* Depart/rerun if dead - Enabling this option will force a DEPART, causing your character to wake up in the Temple with low spirit. Following this, Bigshot will re-start, starting a fresh hunt. If you do not have a Check Spirit value set in your Should_hunt? tab, you will start hunting without recuperating lost stats.&lt;br /&gt;
* Quiet followers - Followers will wait until leader is done with both actions and resting scripts to begin using their own.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Debugging:===&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
|                         Bigshot Debug Help v5.8.5                         |&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;
&amp;lt;/pre&amp;gt;&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot/Changelog&amp;diff=245555</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=245555"/>
		<updated>2025-09-08T16:02:13Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Change Log */ updated to 5.9.5&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.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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=245554</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=245554"/>
		<updated>2025-09-08T16:01:02Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Lich Changelog */ updated to 5.12.5&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.12.5 supporting Ruby 3.4 - published September 8, 2025&#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.6.0 or newer====&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 --library=update.rb&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&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.5 or older====&lt;br /&gt;
Does not work for Lich 4 upgrades, please do a full new install if on Lich 4.&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 --snapshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and close out of the game.&lt;br /&gt;
# Download the full release [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip]&lt;br /&gt;
# Extract the zip file over your existing Lich5 installation, choosing to overwrite existing files.&lt;br /&gt;
# Restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 3.4 &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 3.4 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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.3-1/rubyinstaller-devkit-3.4.3-1-x86.exe Ruby 3.4.3 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.4 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 3.4.5 -v&lt;br /&gt;
rbenv global 3.4.5&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:&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;
gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to use LNet with newer versions of Ruby, you&#039;ll need to downgrade the default version of REXML to be 3.3.1 or older due to Tillmen&#039;s LNet server not supporting the newer version currently:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gem install rexml:&#039;&amp;lt;3.3.2&#039; &amp;amp;&amp;amp; gem uninstall rexml:&#039;&amp;gt;3.3.1&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich and Profanity:&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;
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;
&amp;lt;/div&amp;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 38 &amp;amp; 39 use Ruby 3.2.2, while Fedora 40 uses Ruby 3.3.0. 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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Perform Ruby Gem Installations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gem install rake&lt;br /&gt;
$ gem update&lt;br /&gt;
$ gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Download Lich &amp;amp; Profanity:&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;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;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.12.5&#039;&#039;&#039; (current)&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=245553</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=245553"/>
		<updated>2025-09-08T16:00:14Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Installing the Latest Stable Release */ update to Lich 5.12.5&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.12.5 supporting Ruby 3.4 - published September 8, 2025&#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.6.0 or newer====&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 --library=update.rb&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&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.5 or older====&lt;br /&gt;
Does not work for Lich 4 upgrades, please do a full new install if on Lich 4.&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 --snapshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and close out of the game.&lt;br /&gt;
# Download the full release [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip]&lt;br /&gt;
# Extract the zip file over your existing Lich5 installation, choosing to overwrite existing files.&lt;br /&gt;
# Restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 3.4 &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 3.4 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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.3-1/rubyinstaller-devkit-3.4.3-1-x86.exe Ruby 3.4.3 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.4 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 3.4.5 -v&lt;br /&gt;
rbenv global 3.4.5&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:&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;
gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to use LNet with newer versions of Ruby, you&#039;ll need to downgrade the default version of REXML to be 3.3.1 or older due to Tillmen&#039;s LNet server not supporting the newer version currently:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gem install rexml:&#039;&amp;lt;3.3.2&#039; &amp;amp;&amp;amp; gem uninstall rexml:&#039;&amp;gt;3.3.1&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich and Profanity:&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;
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;
&amp;lt;/div&amp;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 38 &amp;amp; 39 use Ruby 3.2.2, while Fedora 40 uses Ruby 3.3.0. 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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Perform Ruby Gem Installations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gem install rake&lt;br /&gt;
$ gem update&lt;br /&gt;
$ gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Download Lich &amp;amp; Profanity:&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;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;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.12.4&#039;&#039;&#039; (current)&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=244241</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=244241"/>
		<updated>2025-08-14T17:53:52Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Lich Changelog */ add changelog for 5.12.4&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.12.4 supporting Ruby 3.4 - published August 13, 2025&#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.6.0 or newer====&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 --library=update.rb&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&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.5 or older====&lt;br /&gt;
Does not work for Lich 4 upgrades, please do a full new install if on Lich 4.&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 --snapshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and close out of the game.&lt;br /&gt;
# Download the full release [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip]&lt;br /&gt;
# Extract the zip file over your existing Lich5 installation, choosing to overwrite existing files.&lt;br /&gt;
# Restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 3.4 &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 3.4 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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.3-1/rubyinstaller-devkit-3.4.3-1-x86.exe Ruby 3.4.3 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.4 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 3.4.5 -v&lt;br /&gt;
rbenv global 3.4.5&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:&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;
gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to use LNet with newer versions of Ruby, you&#039;ll need to downgrade the default version of REXML to be 3.3.1 or older due to Tillmen&#039;s LNet server not supporting the newer version currently:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gem install rexml:&#039;&amp;lt;3.3.2&#039; &amp;amp;&amp;amp; gem uninstall rexml:&#039;&amp;gt;3.3.1&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich and Profanity:&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;
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;
&amp;lt;/div&amp;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 38 &amp;amp; 39 use Ruby 3.2.2, while Fedora 40 uses Ruby 3.3.0. 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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Perform Ruby Gem Installations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gem install rake&lt;br /&gt;
$ gem update&lt;br /&gt;
$ gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Download Lich &amp;amp; Profanity:&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;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;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.12.4&#039;&#039;&#039; (current)&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=244240</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=244240"/>
		<updated>2025-08-14T17:53:15Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Chromebook &amp;amp; Debian variants */ update to 3.4.5 ruby&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.12.4 supporting Ruby 3.4 - published August 13, 2025&#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.6.0 or newer====&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 --library=update.rb&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&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.5 or older====&lt;br /&gt;
Does not work for Lich 4 upgrades, please do a full new install if on Lich 4.&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 --snapshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and close out of the game.&lt;br /&gt;
# Download the full release [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip]&lt;br /&gt;
# Extract the zip file over your existing Lich5 installation, choosing to overwrite existing files.&lt;br /&gt;
# Restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 3.4 &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 3.4 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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.3-1/rubyinstaller-devkit-3.4.3-1-x86.exe Ruby 3.4.3 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.4 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 3.4.5 -v&lt;br /&gt;
rbenv global 3.4.5&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:&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;
gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to use LNet with newer versions of Ruby, you&#039;ll need to downgrade the default version of REXML to be 3.3.1 or older due to Tillmen&#039;s LNet server not supporting the newer version currently:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gem install rexml:&#039;&amp;lt;3.3.2&#039; &amp;amp;&amp;amp; gem uninstall rexml:&#039;&amp;gt;3.3.1&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich and Profanity:&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;
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;
&amp;lt;/div&amp;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 38 &amp;amp; 39 use Ruby 3.2.2, while Fedora 40 uses Ruby 3.3.0. 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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Perform Ruby Gem Installations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gem install rake&lt;br /&gt;
$ gem update&lt;br /&gt;
$ gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Download Lich &amp;amp; Profanity:&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;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;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.12.3&#039;&#039;&#039; (current)&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=244012</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=244012"/>
		<updated>2025-08-11T16:19:02Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Hunting Target Examples */ fix formating of sections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Bigshot is designed to handle combat routines, including moving to and from hunting areas, defining creatures to hunt and accompanying attack routines&lt;br /&gt;
Afk scripting on any server but Shattered is in 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 commands inputs, Bigshot lets a user 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: ;repository download Bigshot&lt;br /&gt;
&lt;br /&gt;
===How Do I Make it GO!?===&lt;br /&gt;
Initial setup is accessed through ;bigshot setup. There you will see a configuration window with various tabs to setup for your hunting routine. &lt;br /&gt;
&lt;br /&gt;
As with most scripts, using a SETUP command will open a graphical user interface for configuring the script. Use ;bigshot setup to open this dialog. This will open a window with the following tabs:&lt;br /&gt;
* Profile - This is where you save/load your profile information. Profiles are saved to your \Lich5\data\&amp;lt;GSServer\&amp;lt;charname&amp;gt;\bigshot_profiles directory. Eg, \Lich5\data\GSIV\Rinualdo\bigshot_profiles (note, if you&#039;ve previously used bigshot, the file location has changed. The previous location was in your \Lich5\scripts\bigshot_profiles folder. You can copy/paste &lt;br /&gt;
* Resting - Set up your resting routine and location.&lt;br /&gt;
* Hunting - Create a hunting map by adding BOUNDARIES, define your attack stance and any pre hunt information&lt;br /&gt;
* Attacking - configuration for ambushing, bless, reactions, and similar flags&lt;br /&gt;
* Commands - Where you define your valid targets and associated attack routines. See sample routines below. &lt;br /&gt;
* Misc tab - Various config options&lt;br /&gt;
&lt;br /&gt;
We will take a closer look at each of these individually further on.&lt;br /&gt;
&lt;br /&gt;
There is also several other commands you can do for more functionality.&lt;br /&gt;
* ;bigshot quick - Special hunting mode that kills everything in the room your in and quits bigshot. Wont wander at all, and wont attempt to rest. Has its own hunting commands and hunting targets.&lt;br /&gt;
* ;bigshot head/tail - This is for Multi-Account hunting. It only works for a single computer. Every character needs to be setup for the hunting area your going to. You start it by having your following characters join your head character. The following characters need to be running bigshot with ;bigshot tail. Once that happens, have the leader of the group do ;Bigshot head. They will then procede to hunt in the area you have setup.&lt;br /&gt;
* ;bigshot display - Shows all your current settings.&lt;br /&gt;
* ;bigshot reset - Resets all your targetable and untargetable lists. Useful if you find bigshot won&#039;t targets something it should.&lt;br /&gt;
* ;bigshot ranger or ;bigshot companion - Resets ranger companion setting so you can set it again. Used when you change your companion.&lt;br /&gt;
* ;bigshot profile save &amp;lt;name here&amp;gt; - Saves a profile in YAML format in your character&#039;s profile folder. Also accessible via the Profiles tab in the setup menu.&lt;br /&gt;
* ;bigshot profile load &amp;lt;name here&amp;gt; - Loads a profile from your character&#039;s profile folder. Also accessible via the Profiles tab in the setup menu. &lt;br /&gt;
* ;bigshot single  - When used solo, will execute a single hunting routine, return to your resting location and then exit&lt;br /&gt;
* ;bigshot &amp;lt;options&amp;gt; &amp;lt;creature&amp;gt; - example: ;bigshot single giant rat - Will activate ranger tracking of a creature. Anything input besides the above commands will default to &amp;quot;track &amp;lt;input&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==The Profile Tab==&lt;br /&gt;
* Load Profile - will load an existing profile. Nothing will be available if no previous profiles are saved&lt;br /&gt;
* Current Profile - shows the existing profile if a new one is loaded. &lt;br /&gt;
* Save profile - Valid profile information for future ebounty script support&lt;br /&gt;
  Save Current Settings - tell Bigshot what you want your profile to be named. Any name will work here. Once a profile is saved, will show up in the Load Profile menu. &lt;br /&gt;
&lt;br /&gt;
==The Resting Tab==&lt;br /&gt;
Short and sweet, here is where we setup our resting routines. During REST mode, Bigshot uses the EXP command and checks your mind, hit points, wound status, mana and spirit. Once all of these values are at the specified Should_hunt? settings, Bigshot leaves REST mode and begins a HUNT.&lt;br /&gt;
&lt;br /&gt;
* room id: - This is the room that Bigshot will return to for resting. Use Room Numbers from Map/Go2. Support both LichIDs and SimuIDs with a u, for example, 228 for Town Square Central or u7120.&lt;br /&gt;
* pre-rest commands: - These commands run before entering REST mode. An example routine is: &#039;shea, wear shield, sit, stance offensive, rest&#039;. This will sheath your weapon, wear your shield, sit, enter offensives stance and use the REST verb.&lt;br /&gt;
* active resting scripts: - Active resting scripts are scripts that will be run upon entering REST mode. These scripts should be things that you do after a hunt: get healed, empty your bags, spell up. An example list is: &#039;eloot sell, waggle, eherbs&#039;. This will use eloot to sell according to the options set with eloot. After selling, it will use Waggle to spell you up according to however Waggle is setup. Finally, eherbs will check your PACK and use herbs stored there to heal whatever wounds you have.&lt;br /&gt;
* Fog Option: - Uses [[Spirit Guide (130)]], Voln [[Symbol of Return]], [[Traveler&#039;s Song (1020)]], [[Sigil of Escape]], [[Familiar Gate (930)]] or Custom when heading back to rest. Setting it to None does nothing. Setting it to 130 will cause it to use 130 first then if that fails symbol of return. Symbol of return will use that first, then 130 if that fails. Setting to Traveler&#039;s Song will attempt once and continue. Setting to Familiar Gate will attempt to summon a portal once and walk through it. Will perform a mana pulse if not enough mana is detected. Custom option allows for comma separated list of commands to perform.&lt;br /&gt;
* Should Rest? &lt;br /&gt;
Bigshot evaluates these conditions and, when they are met, will go to your resting room set on the Resting tab and execute any resting scripts you have set.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Rests when your mind has reached this threshold. Generally, set this to 100 to rest when fried.&lt;br /&gt;
* &#039;&#039;&#039;and extra kills &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of extra monsters to kill after reaching your `when percent mind` threshold and after LTE boosts used&lt;br /&gt;
* &#039;&#039;&#039;and used lte boosts &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of LTE boosts it will attempt to use after reaching your `when percent mind` threshold&lt;br /&gt;
* &#039;&#039;&#039;or percentmana &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your percentage of mana is at or below this threshold.&lt;br /&gt;
** This can be set to 0, but leaving a bit in the tank can be good if you have to use 406 (Unlock) to open the WL Graveyard gate. 11/17/24: If you run into an error that calls to an &amp;quot;OOM&amp;quot; message, try setting this to 1.&lt;br /&gt;
* &#039;&#039;&#039;or percentencumbrance &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when you have reached a given level of encumbrance.&lt;br /&gt;
* &#039;&#039;&#039;or wounded eval&#039;&#039;&#039;&lt;br /&gt;
** Allows you to set an evaluation phrase to determine if you are too wounded to continue hunting. Wound evaluations can send you home on nearly any wounded condition of your choice: bleeding, level 2 wound, can&#039;t cast, too many scars etc.&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 not cast anymore (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 &amp;gt; 0 &amp;amp;&amp;amp; [Wounds.rightArm, Wounds.rightHand, Scars.leftArm, Scars.leftHand].max &amp;gt; 0)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The following can be added to one of the above wound evaluations 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 is at or below this threshold.&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 is at or below this threshold.&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;
&lt;br /&gt;
==The Hunting Tab==&lt;br /&gt;
This is where you will tell bigshot when to hunt, any commands or society abilities to use prior to hunting, and where on the map you want to hunt. &lt;br /&gt;
===The Hunting Map===&lt;br /&gt;
Your hunting map is a series of Boundaries - rooms that Bigshot will not enter - and a Start room - the first room that Bigshot moves to when a hunt starts. These function very similarly to the boundaries in the ;Wander script, but are stored in Bigshot&#039;s configuration files and not in a character cache as with ;Wander. Here you also configure when to hunt&lt;br /&gt;
* starting room ID: - This is the first room that Bigshot goes to when hunting. You may set this to any room within the Boundaries that you set with the second option.&lt;br /&gt;
* boundary rooms: - Boundary rooms are walls. Bigshot will not 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;
The proper syntax for boundary rooms are separated by commas&lt;br /&gt;
Some popular Rift boundaries as an example&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;
For Maaghara boundaries, you can use &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
9734&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Confluence boundaries:&amp;lt;pre&amp;gt;&lt;br /&gt;
2300, 3519, 228, 188, 1932, 10855, 3668, 1438, 1005 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imagine a hunting area that is a six room square. To enter this square, one must GO DOORWAY from room A. You would set the room outside of the square - ie room A - before you GO DOORWAY, as a boundary. Then, you would set room B to the Starting Room. From there, Bigshot will move to room B and then wander around inside the Boundary - ie the square hunting area - until it your &#039;&#039;&#039;Should_rest?&#039;&#039;&#039; conditions are met.&lt;br /&gt;
&lt;br /&gt;
* Wait before wandering to another room: - Time you wait before leaving a room to find some creatures. Default is 0.3 seconds. Set to 0 for fastest (spammy) movement. &lt;br /&gt;
&lt;br /&gt;
* attack stance: - Specify what stance you want to attack from. Bigshot will remain in Stance Defensive until an attack command is issued, whereupon it will stance to your Attack Stance and execute your Attacking routine. Bigshot recognizes all stances from the game, Offensive -&amp;gt;-&amp;gt; Defensive.&lt;br /&gt;
* pre-hunt commands: - These commands will be executed before Bigshot uses Go2 to travel to your hunt&#039;s Starting Room. As an example: &#039;gird, stance defensive&#039;. This will ensure that you have readied your weapon and are in Defensive stance before traveling. Set short lived combat spells like 1605 (Arm of the Arkati) to be cast in this line.&lt;br /&gt;
* active hunting scripts: - Active hunting scripts are scripts that will run while Bigshot is in Hunt mode. Many of these scripts have been made obsolete by the next option. Clever scripters have written some nice scripts that will keep certain spells up, execute cmans based on conditions etc. If you need a complex action to run while Hunting that Bigshot does not have the capacity for, an active hunting script may be called for.&lt;br /&gt;
* society abilities/spells/cmans: - Bigshot can be asked to keep certain abilities up at all times during a hunt. Hovering your mouse over this field will display a list of cmans and society abilities specified by their numerical designations. Spells may also be added here. Separate all values by commas. For example, entering &#039;506&#039; will keep the spell Haste up during Hunts, casting whenever it has worn off.&lt;br /&gt;
* loot script - Bigshot will call a loot script to loot your kills for you. eloot is commonly scripts used here. Be sure to use the SETUP command on whatever loot script you use, as if it is not configured properly, Bigshot will likely error.&lt;br /&gt;
* wracking spirit &amp;gt;= - Setting a value here will WRACK for mana if your spirit is greater than or equal to the value specified. Setting 6, for example, will WRACK down to 5 spirit. This will ONLY function if you have the &#039;Use sign of wracking/sigil of power&#039; box checked.&lt;br /&gt;
* Use sign of wracking/sigil of power - checkbox to enable the use of wracking&lt;br /&gt;
* Priority hunt - checkbox to enable the use of the priority system for hunting. This allows you to change targets based on the order listed in valid targets/quickhunt targets. For example, your hunting thunder trolls, wind witches, and puma. Your valid target order is wind witch, thunder troll, puma. Your currently attacking a puma, when a thunder troll walks in. You will switch to the attacking the thunder troll because its before the puma in the valid targets list. After killing the thunder troll, you go back to the puma, only to have a wind witch walk into your room. You will again switch to the wind witch because its in front of the puma. Hope you get the idea. When using the ;bigshot quick option, it will base the order of targets by your quickhunt targets first, then the order of the targets in the room that don&#039;t match any of your quickhunt targets. Example, bandits are in your quickhunt targets. You type ;bigshot quick when you get ambushed in the room. Currently in the room is a large ogre and three bandits. The order of targets will be the bandits first, then the large ogre.&lt;br /&gt;
* Delay looting - delays looting of creatures in a room.&lt;br /&gt;
* Pull players to feet - attempt to pull players to their feet upon passing them in a room&lt;br /&gt;
* Stop for dead players - checkbox will pause bigshot if you encounter a dead player&lt;br /&gt;
* Sneaky Sneaky - sneak around while out in the hunting area&lt;br /&gt;
&lt;br /&gt;
===Should hunt ===&lt;br /&gt;
Bigshot evaluates the conditions set on this tab to determine if you are ready to hunt or not.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Setting this to 51 will rest until Cleared. Setting at 65 will wait until Muddled.&lt;br /&gt;
* &#039;&#039;&#039;and percent mana&amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Determines the percent total of your maximum mana that must be present before hunting&lt;br /&gt;
** Setting below 50 will result in quick, uneventful hunts if you cast much. Generally, this is set at 95 or higher.&lt;br /&gt;
* &#039;&#039;&#039;and CHECKspirit &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Bigshot will check to see that your current Spirit value is higher than what is listed here.&lt;br /&gt;
** Make sure that you have this set high enough that Bigshot won&#039;t hunt immediately after DEPARTing if you have Depart / re-run Bigshot checked on the General tab.&lt;br /&gt;
&lt;br /&gt;
==The Attacking Tab==&lt;br /&gt;
* Ambush aiming locations (head, etc): - Allows you to specify what order you aim for ambush. Default is head, right leg, left leg, chest.&lt;br /&gt;
* Archery aiming locations (head, etc): - Allows you to specify what order you aim for archery. Loops through your aiming locations once you hit the area your aiming at.&lt;br /&gt;
* flee if enemy count is &amp;gt; - Flees the room if the total number of enemies in the room exceeds the value. Set this to 1 if you want to engage single targets.&lt;br /&gt;
* ...but don&#039;t count these: - Bigshot will ignore monsters specified in this line when eveluating if it should flee based on how many monsters are in the room. Useful for when you are hunting in an area with extremely low level monsters mixed in with your targets.&lt;br /&gt;
* ...and always flee from: - Bigshot will always flee from the specified monster as soon as possible. Extremely useful if your hunting area has higher level and/or extremely dangerous monsters mixed in with your intented target(s).&lt;br /&gt;
* flee from environment message: - Will flee whenever anything you put in here gets sent from the game. (XML regex matching)&lt;br /&gt;
* Wait before wandering to another room: - time you spend before moving to a new room. Default is 0.3 seconds. You can set it to 0 to move instantly. Tends to be spammy for anyone in the same hunting area.&lt;br /&gt;
* Approach lone targets only - Forces Bigshot to only begin combats against creatures that are alone.&lt;br /&gt;
* Bless weapon? - Performs a Consecrate (1604), then a Cleric Bless or Voln Bless on whatever weapon loses its bless during hunting. If you can&#039;t bless your weapon while hunting will return you to your rest area and quit the script.&lt;br /&gt;
* Flee from boon - Enabling this check box will force Bigshot to flee from all boon/gifted/boss creatures (available in [https://github.com/elanthia-online/scripts/pull/449/commits/afade49e25dd6042c30b6d62fec4d65376667f80 v4.3.0])&lt;br /&gt;
* Activate weapon reactions - Will initiate reactive strikes when the opportunity presents itself&lt;br /&gt;
* Flee from clouds - Enabling this check box will force Bigshot to flee from Cloud spells such as 125(Call Lightning with its Ominous Cloud), 1704 (Stun Cloud) and 1713 (Death Cloud)&lt;br /&gt;
* Flee from vines - Enabling this check box will force Bigshot to flee from Vine spell such as 610(Tangle Weed)&lt;br /&gt;
* Flee from webs - Enabling this check box will force Bigshot to flee from webs.&lt;br /&gt;
* Flee from voids- Enabling this check box will force Bigshot to flee from voids.&lt;br /&gt;
&lt;br /&gt;
==Commands Tab==&lt;br /&gt;
The true guts of Bigshot, this is where you specify your Attack Routine. &lt;br /&gt;
* hunting commands - These are the commands that Bigshot will evaluate (ie execute) when it is in the room with a valid target (one that you specified in your Hunting section. These commands are separated by a comma. Bigshot recognizes most hunting verbs and, failing that, will use an fput command (a direct entry method) and just execute the commands directly as written. The following are a list of usable hunting commands:&lt;br /&gt;
** kill - Attacks using the KILL verb.&lt;br /&gt;
** incant &amp;lt;spell number&amp;gt; - Casts the specified spell with the INCANT verb. This will automatically stance into offensive for bolt and other stance-sensitive spells. A caster may CHANNEL the spell using [[INCANT (verb)]] to INCANT SET CHANNEL &amp;lt;spell&amp;gt; (a standard GSIV verb, not part of Lich). Alternatively, a caster may CHANNEL spells by using the SET verb (a standard GSIV verb, not part of Lich) to SET ChannelIncant ON. This will CHANNEL an INCANTed spell if the caster is in a stance higher than neutral.&lt;br /&gt;
** channel &amp;lt;spell number&amp;gt; - Channels the specified spell at the target. This requires a stance higher than neutral to have any effect.&lt;br /&gt;
** &amp;lt;Spell Number&amp;gt; - Casts the specified spell with the PREPARE and CAST verbs.&lt;br /&gt;
** wand - As in, &amp;lt;CODE&amp;gt;wand target&amp;lt;/CODE&amp;gt;. Gets a wand from the specified storage and WAVES it at the target.&lt;br /&gt;
** wandolier - Similiar to wand, but uses wandoliers. Gets a wand from the fresh wand container and waves it, rubs container if no wands found. Default waves in offensive. Can change via &amp;lt;CODE&amp;gt;wandolier defensive&amp;lt;/CODE&amp;gt; to wave in a different stance&lt;br /&gt;
** fire - As in, &amp;lt;CODE&amp;gt;fire target&amp;lt;/CODE&amp;gt;. Gets ammunition from the specified storage and FIREs it at the target. Will attempt to aim based on settings on hunting tab.&lt;br /&gt;
*** The above listed commands should be used with the (x#) syntax. For example, &amp;lt;CODE&amp;gt;kill target (x3)&amp;lt;/CODE&amp;gt; will swing three times at the target before re-evaluating the attack routine. If the (xx) variable is used, Bigshot will continue using the specified attack command up to five (5) times. Example: &amp;lt;CODE&amp;gt;903 target (xx)&amp;lt;/CODE&amp;gt; will continue to cast 903 at the target (5) times before restarting the attack routine or until it is dead. If you want to ensure the routine does not restart, using a sufficiently large number should suffice (e.g. x100). Bigshot may also be set to only execute a command based on how much mana or stamina you currently have. For mana, use the (m##) command. &amp;lt;CODE&amp;gt;920 target (m50)&amp;lt;/CODE&amp;gt; will only cast 920 (Implosion) if you have 50 or more mana. Similarly, &amp;lt;CODE&amp;gt;cman feint target (s10)&amp;lt;/CODE&amp;gt; will only execute the combat maneuver Feint on the target if you have 10 or more stamina. The command syntax is used as a separate call and wrapped in separate parenthesis, as in (m50 s20)(x2). &lt;br /&gt;
** aim &amp;lt;location&amp;gt; - Aims at the specified location.&lt;br /&gt;
** ambush - Uses the AMBUSH verb to attack. Will aim based on settings in Hunting tab. Also will aim dynamically, &amp;quot;Ambush head&amp;quot; would aim at the head, overwriting any settings or defaults for that attack.&lt;br /&gt;
** wait &amp;lt;time&amp;gt; - Bigshot may Stance Dance by using the WAIT command. Bigshot will go into and stay in Stance Defensive until the specified time is over OR the target swings / casts, whereupon it will evaluate the rest of the Attack Routine, changing into your specified attack stance.&lt;br /&gt;
** mstrike - As in, &amp;lt;CODE&amp;gt;mstrike target&amp;lt;/CODE&amp;gt;. Mstrike depending on mstrike cooldown and stamina. Has its own option page. Can also be used with UAC, &amp;quot;mstrike punch&amp;quot;.&lt;br /&gt;
** berserk - Executes the BERSERK verb and stands by until it fades.&lt;br /&gt;
** throw - Empties hands, Attempts throw, get the stuff you emptied.&lt;br /&gt;
** weed/kweed - Casts 610 at target. Using &amp;quot;kweed&amp;quot; as your command will force evoke 610 ensuring the damage version&lt;br /&gt;
** curse &amp;lt;curse&amp;gt; - Clumsy/Weakness/Darkness/Itch/Hex/Pox/Nightmare/Star - will prep 715 and use curse command as defined. Will skip &amp;quot;curse star&amp;quot; if buff is up.&lt;br /&gt;
** unarmed - Uses the Bigshot UAC routine. Routine will attack with appropriate attacks to rank up and use mstrike based on mstrike options page. Usage &amp;quot;unarmed (punch|jab|kick|grapple)&amp;quot;.&lt;br /&gt;
** smite - Performs an [[Order of Voln]] [[Kai&#039;s_Smite|Smite]] on target until successful.&lt;br /&gt;
** leech - Performs a [[Mana Leech (516)]] on target if cooldown is under 15 minutes.&lt;br /&gt;
** script &amp;lt;script name&amp;gt; - Executes a specified custom attack script.&lt;br /&gt;
** hide - Continue hiding until you&#039;re actually hidden. Or it&#039;s tired of trying.&lt;br /&gt;
** sleep - As in, &amp;lt;CODE&amp;gt;sleep 10&amp;lt;/CODE&amp;gt;. Pause bigshot. Useful with fried hunting commands such as: &amp;lt;CODE&amp;gt;410, sleep 15&amp;lt;/CODE&amp;gt; will E-wave then wait 15 seconds and e-wave again if there are valid targets.&lt;br /&gt;
** stance - As in, &amp;lt;CODE&amp;gt;stance defense&amp;lt;/CODE&amp;gt;. Change stances.&lt;br /&gt;
** nudgeweapons - Move all weapons on the ground to an adjacent room. Useful for casting Implosion (720).&lt;br /&gt;
** force &amp;lt;cmd&amp;gt; until &amp;lt;endroll&amp;gt; - As in, &amp;lt;CODE&amp;gt;force incant 1002 until 101&amp;lt;/CODE&amp;gt;. Continue issuing a command until a desired endroll. Only works for normal looking swings/spells/cmans.&lt;br /&gt;
** eachtarget  &amp;lt;cmd&amp;gt; - issues command to each valid target in room&lt;br /&gt;
** efury &amp;lt;fire|cold&amp;gt; - casts Earthern Fury (917) on the target and waits for DOT to end or 12secs to pass&lt;br /&gt;
** caststop &amp;lt;spell&amp;gt; - casts the spell and then immediately stops it after casting&lt;br /&gt;
** wield &amp;lt;noun&amp;gt; &amp;lt;left|right&amp;gt; - weilds new noun and stores the hand given to put new noun item in&lt;br /&gt;
** store - store left, right or both, but only if something is in those hands&lt;br /&gt;
** tether &amp;lt;recast&amp;gt; - casts 706 with built-in logic to wait, can also do recast to auto-recast 706 on creature death and DOTs transfer&lt;br /&gt;
** unravel &amp;lt;spell&amp;gt; - casts 1013 Song of Unravelling with an optional spell to target against creature&lt;br /&gt;
** depress - casts 1015 Song of Depression with some some built in logic&lt;br /&gt;
** phase - force CASTs 704 Phase due to needing to prep/cast for usage on NPC targets&lt;br /&gt;
* hunting commands (b) - Attack routines set up for a monster flagged (b) in the Hunting section.&lt;br /&gt;
* hunting commands (c) - Attack routines set up for a monster flagged (c) in the Hunting section.&lt;br /&gt;
* hunting commands (d) - Attack routines set up for a monster flagged (d) in the Hunting section.&lt;br /&gt;
* hunting commands (e) - Attack routines set up for a monster flagged (e) in the Hunting section.&lt;br /&gt;
* hunting commands (f) - Attack routines set up for a monster flagged (f) in the Hunting section.&lt;br /&gt;
* hunting commands (g) - Attack routines set up for a monster flagged (g) in the Hunting section.&lt;br /&gt;
* hunting commands (h) - Attack routines set up for a monster flagged (h) in the Hunting section.&lt;br /&gt;
* hunting commands (i) - Attack routines set up for a monster flagged (i) in the Hunting section.&lt;br /&gt;
* hunting commands (j) - Attack routines set up for a monster flagged (j) in the Hunting section.&lt;br /&gt;
* fried hunting commands - Commands executed specifically when fried. Useful when hunting in a group.&lt;br /&gt;
* quick hunting commands - Commands executed specifically when using ;bigshot quick.&lt;br /&gt;
* valid targets: - These are the monsters you are hunting. Bigshot will most easily recognize monsters based on the NOUNs or their name. For example, &#039;a large ogre&#039; can be targeted with just &#039;ogre&#039;. Using longer descriptors can be troublesome, and you should copy a monster&#039;s name directly from the game front end to avoid troubles. You can use multiple entries separated by commas. For example: &#039;manticore, thrak&#039; will kill manticores and thraks.&lt;br /&gt;
* quickhunt targets: - These are monsters you have designated attacks for when your using the ;bigshot quick option for hunting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PSM3 Integration===&lt;br /&gt;
* hunting commands - Bigshot now supports weapon/shield skills and warcries. Assaults will wait until they finish or are interuppted. These commands are separated by a comma. The following are a list of usable hunting commands:&lt;br /&gt;
** barrage, flurry, fury, gthrusts, pummel, thrash - Assaults will wait until attacks are completed/interrupted.&lt;br /&gt;
** fury - You can specify the default attack fury will use. Will jab if not specified: fury punch or fury kick&lt;br /&gt;
** charge, cripple, dizzyingswing, pindown, twinhammer  - Setups will execute on cooldown so make sure to check for prone/stun/root/ect.&lt;br /&gt;
** clash, cyclone, pulverize, volley, wblade, whirlwind - AOE will execute on cooldown, limit with check volley(mob3).&lt;br /&gt;
** shout - Will perform warcry shout. Must use a command check or it will shout every loop: shout(!shout),shout(buff10 s25) &lt;br /&gt;
** yowlp - Will perform warcry yowlp. Must use a command check or it will yowlp every loop: yowlp(!yowlp), yowlp(buff10 s10)&lt;br /&gt;
** holler - Will perform warcry holler every loop taunting all the mobs. holler(s60)&lt;br /&gt;
** bellow, growl, cry - Offensive warcries can be used with target for single target or all for aoe.&lt;br /&gt;
** shield bash, shield charge, shield pin, shield push, shield strike, shield trample, shield throw&lt;br /&gt;
** surge - Will keep surge of strength up. surge or surge(surge) will cast even on cooldown, surge(!surge) will only cast when not on cooldown.&lt;br /&gt;
** 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&lt;br /&gt;
** dislodge &amp;lt;location&amp;gt; - Dislodge from location specified: dislodge eye neck&lt;br /&gt;
** stomp - Will perform a stomp attack. Channels 909 if not active. Can also add 909 to society abilities to keep it active.&lt;br /&gt;
** dhurl - Hurl your weapon and recovers it. Works with weapon bonding auto return and the recover verb.&lt;br /&gt;
** assume &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt; - Will cycle between two aspects, or evoke a single aspect. Also works in society ability box. &amp;quot;650 &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt;&amp;quot;&lt;br /&gt;
** briar &amp;lt;weapon&amp;gt; - activate the AS buff on briar weapons. Tracks weapon charge and uses on cooldown.&lt;br /&gt;
** stance perfection - Put 10, 20, 30, ect in your attack stance box to take advantage of stance perfection.&lt;br /&gt;
** chastise, excoriate - Will perform FEAT if available and affordable&lt;br /&gt;
&lt;br /&gt;
You may need to &#039;&#039;&#039;SKILLS FULL/CMAN INFO/WEAPON INFO/SHIELD INFO&#039;&#039;&#039; if you&#039;ve recently changed training or skills are being outright skipped.&lt;br /&gt;
&lt;br /&gt;
===Additional Options===&lt;br /&gt;
*haste or 506 - Placing this in front of any command will cause you to cast 506 before doing that command. It only casts if it isn&#039;t currently up or has less than 3 seconds left on its timer.&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 10, haste kill (x3)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
*slayer or 240 - Placing this in front of any command will cause you to cast 240 before doing that command. It will not recast if it&#039;s 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;
&lt;br /&gt;
Commands need to use the following format:&lt;br /&gt;
&amp;lt;CODE&amp;gt;COMMAND (CHECKS)(REPETITIONS)&amp;lt;/CODE&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So &amp;lt;CODE&amp;gt;hamstring (mob1 prone)(x2)&amp;lt;/CODE&amp;gt; Any (x#) needs to be separate. Also (xx) is not unlimited and is just short for (x5).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional checks you can add to any command to customize the attack to your desired scenario.&lt;br /&gt;
Each check below can be used by itself or with any other check. Put them inside () with a space between each additional check. Example - Kill(m20 s5 e20)&lt;br /&gt;
&amp;lt;p&amp;gt;Each of these also has an inverse or opposite.&lt;br /&gt;
Just put a ! in front of the command. Example - Kill(!m20 !s5 !e20)&lt;br /&gt;
*s# - Checks that you have the required stamina&lt;br /&gt;
*m# - Checks that you have the required mana&lt;br /&gt;
*h# - Checks that you have the required health but based on a percentage instead of fixed number&lt;br /&gt;
*v# - Checks that you have the required spirit&lt;br /&gt;
*e# - Checks that your encumbrance percentage is at or below&lt;br /&gt;
*tier# - Checks for your current UAC tier (1,2,3). Performs command if UAC Tier is equal or greater.&lt;br /&gt;
*mob# - Checks for the number of npcs in room. Performs command if npcs in room is equal to or more than number specified. Only use for 2 or more creatures in the room&lt;br /&gt;
&amp;lt;PRE&amp;gt;To further clarify the mob# implimentation&lt;br /&gt;
1 mob, mob2, 1 IS less than 2, attack should not proceed.&lt;br /&gt;
2 mob, 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 mob, !mob2, 2 IS NOT more than 2, attack can proceed&lt;br /&gt;
3 mob, !mob2, 3 IS more than 2, attack should not proceed&amp;lt;/PRE&amp;gt;&lt;br /&gt;
*once - Performs the command once on a specified target, resets on room change&lt;br /&gt;
*room - Performs the command once in a room only, resets on room change&lt;br /&gt;
*prone - Checks to see if target is not sleeping|webbed|stunned|kneeling|sitting|lying down|prone|frozen|held in place. Performs command if target status is not one of the previous.&lt;br /&gt;
*frozen - Same usage as prone. Broke out of prone check for archers against non-corporeal creatures that deflect ranged. Corporeal creatures can be stunned and will break this check.&lt;br /&gt;
*undead - Checks to see if target is undead. Performed command if target is undead.&lt;br /&gt;
*flying - Checks to see if target is flying. Performed command if target is flying.&lt;br /&gt;
*rooted - Checks to see if the target is rooted. Performed command if target is rooted.&lt;br /&gt;
*hidden - Checks to see if you&#039;re currently hidden.&lt;br /&gt;
*poison - Checks to see if you&#039;re currently poisoned.&lt;br /&gt;
*disease - Checks to see if you&#039;re currently diseased.&lt;br /&gt;
*noncorporeal - Checks to see if NPC is [[noncorporeal|non-corporeal]] undead&lt;br /&gt;
*pcs - Checks to see if there are any PCS in room that are also not in your group&lt;br /&gt;
*outside - Checks to see if the room you are in is outside&lt;br /&gt;
*barrage - Checks for the Enhanced Dexterity buff from Barrage.&lt;br /&gt;
*fury - Checks for the Enhanced Constitution buff from Fury.&lt;br /&gt;
*flurry - Checks for the Slashing Strikes buff from Flurry.&lt;br /&gt;
*pummel - Checks for the Concussive Blows buff from Pummel.&lt;br /&gt;
*thrash - Checks for the Forceful Blows buff from Thrash.&lt;br /&gt;
*vigor - Checks for the Tangleweed Vigor buff from Tangleweed.&lt;br /&gt;
*reflex - Checks for the Arcane Reflex buff from Nature&#039;s Touch.&lt;br /&gt;
*tailwind - Checks for Tailwind buff from Breeze. (tailwind) (!tailwind)&lt;br /&gt;
*shout - Checks for the Empowered buff from Shout.&lt;br /&gt;
*yowlp - Checks for the Yertie&#039;s Yowlp buff from Yowlp.&lt;br /&gt;
*holler - Checks for the Horland&#039;s Holler buff from Holler.&lt;br /&gt;
*voidweaver - checks for the Voidweaver buff from Implosion(720)&lt;br /&gt;
*justice - Checks for charges of Swift Justice. (justice) do skill with charges (!justice) do skill with no charges&lt;br /&gt;
*buffXX - Fire ability when buff duration is &amp;lt;= XX. Supported for barrage,bearhug,fury,flurry,pummel,thrash,shout,yowlp&lt;br /&gt;
*tier# - Perform action if you are at the corresponding tier. (!tier3) don&#039;t do it if you are at tier3. (tier2) do it if you are tier2&lt;br /&gt;
*censer - Attempt to cast 320 before your command checking mana and cooldown. 309(censer), 335(censer mob3), attack(censer)&lt;br /&gt;
*ancient - Checks for grizzled/ancient creatures&lt;br /&gt;
*animate - Checks for if you have an animate present or not&lt;br /&gt;
*rebuke - Checks for Righteous Rebuke buff&lt;br /&gt;
*scourge - Checks for Ardor of the Scourge buff&lt;br /&gt;
*momentum - Checks for Glorious Momentum buff&lt;br /&gt;
**If command is a spell, will only cast censer if you have the mana for censer and the spell you intend.&lt;br /&gt;
**If command is not a spell, will only check you have enough mana for the censer.&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;
&lt;br /&gt;
Waits 10 seconds for the monster to swing or cast and then immediately counter attacks from the specified attack stance set in the Hunting tab. Swings a total of three times before going into Defensive stance and waiting 10 seconds 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;
&lt;br /&gt;
Waits 15 seconds before INCANTing 505 (Hand of Tonis), hopefully knocking down or stunning the target. Following this, Bigshot casts 903 (minor water) repeatedly 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;
&lt;br /&gt;
Casts 1615 (Divine Strike) at the target from Defensive stance, possibly forcing the target to kneel. Then, uses the kill verb to swing continuously until the target is dead or 100 times..whichever happens 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;
&lt;br /&gt;
Uses the Combat Maneuver FEINT against the target until a successful end roll and then hits the target twice before trying to 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;
&lt;br /&gt;
Hides from Defensive stance and then ambushes that the target&#039;s left leg. Once round-time is up, repeats (ie HIDES again from defensive stance).&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;
&lt;br /&gt;
Casts 720 (Implosion) at the target if your character has 50 or more mana. Then, INCANTs 708 (Limb Disruption) at the target, using the default AIM location (if set). Finally, casts 702 (Mana Disruption) at the target up to (5) times or until it is 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;
&lt;br /&gt;
Prepares 708 (Limb Disruption) and CASTs it at the target&#039;s left leg. The second prepares the same spell and then CHANNELs it at the target&#039;s left leg. It will then cast 719 (Dark Catalyst) if there is at least 50 mana, and will only cast one time. The last will incant 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;
&lt;br /&gt;
Waits 30 seconds or until your target attacks. Begins attacked with 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;
&lt;br /&gt;
Will shield charge the target if your character has 15 or more stamina and the target is NOT prone.  &lt;br /&gt;
&lt;br /&gt;
The second command will then ambush based on the settings in the &amp;quot;Attacking&amp;quot; Tab - in this case a custom order of head, neck, right leg, back was given so Bigshot will first try to Ambush the head unless the head is too injured or the head cannot be reached followed by the neck then right leg then back.  &lt;br /&gt;
&lt;br /&gt;
Bigshot will then focus mstrike the target unless the creature count is equal to or greater than the setting in the MSTRIKE Tab, in which case it will open mstrike instead.  If you put &amp;quot;mstrike target&amp;quot;, Bigshot will always focused mstrike regardless of the settings in the MSTRIKE Tab.  Alternatively, you can set the &amp;quot;Unfocused MSTRIKE when creatures equal or greater&amp;quot; to a large number, to always focus your mstrikes (or set it to 1 to always open mstrike).&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;
&lt;br /&gt;
Will aoe bellow, then whirling blade if there are at least 3 targets. The third command will flurry if you don&#039;t have the slashing strikes buff. Finally it will attack and continue to attack until one of the previous attacks become available.&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;
&lt;br /&gt;
Will open up with a taunt from holler, then shield throw if there are at least 3 targets. Third command will flurry on cooldown. Fourth will thrash on cooldown. Finally we will attack if everything else ends up on cooldown or we run out of stamina.&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;
&lt;br /&gt;
If there is more than one mob, it will hide with shroud and divert one of the targets. Third command will ambush if hidden. Fourth will flurry on cooldown followed up with attack to finish anything off.&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;
&lt;br /&gt;
Will cast surge when not on cooldown, and bullrush to bust up and apply vulnerable, then bearhug which is faster if target is vulnerable. Third we will pummel on cooldown and attack when nothing else is available.&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;
&lt;br /&gt;
Will keep surge active, casting during cooldown for 60 stamina. Next it will shout and refresh shout when there is less than 11 seconds left on the duration. Third it will shield strike followed up with a pummel once every minute. It will finish off 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;
&lt;br /&gt;
Will open up with pin down if there are at least 4 targets, then will volley if there are at least 2 targets. The third command will cast tangleweed if you do not have the tangleweed vigor buff or the arcane reflex buff. Our fourth command will barrage unless we have the enhanced dexterity buff from barage. Fifth we will cast a 1 second spike thorn if we do have 16 mana and do have the arcane reflex buff. Finally we will fire until one of our other commands become available.&lt;br /&gt;
&lt;br /&gt;
===Hunting Target Examples===&lt;br /&gt;
All of the examples below will work for both the &#039;valid targets&#039; and &#039;quickhunt targets&#039; entries.&lt;br /&gt;
* A hunting option only using the default command (a) for each creature in an area:&lt;br /&gt;
&amp;lt;pre&amp;gt;crazed zombie, niirsha, sacristan spirit&amp;lt;/pre&amp;gt;&lt;br /&gt;
* A hunting option using custom hunt commands depending on the creature.  In this case it will use command (a) for a [[crazed zombie]] and a [[sacristan spirit]], while using (b) for a [[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;
* A hunting option that will include the [[:Category:Boss creatures|Boss Creatures]] variations as valid targets:&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;
* Some additional advanced options for identifying valid targets:&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;
* To attack everything in the room &amp;lt;code&amp;gt;(?:.*)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc Tab==&lt;br /&gt;
Various specialized config options&lt;br /&gt;
&lt;br /&gt;
===UAC Options===&lt;br /&gt;
The various options for configuring how UAC works:&lt;br /&gt;
* &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039;&lt;br /&gt;
** The attack used when you have reached excellent in the UAC tier&lt;br /&gt;
** Options are jab, punch, grapple, or kick&lt;br /&gt;
* &#039;&#039;&#039;Aim at location (head, etc)&#039;&#039;&#039;&lt;br /&gt;
** Used for aimed UAC Combat, which requires ambush training to be effective&lt;br /&gt;
** Leave blank when you don&#039;t want to aim.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE when creatures equal or greater&#039;&#039;&#039;&lt;br /&gt;
** Determines how many creatures must be present before using MSTRIKE&lt;br /&gt;
* &#039;&#039;&#039;Use Voln SMITE?&#039;&#039;&#039;&lt;br /&gt;
** Will perform a Voln SMITE on [[Non-corporeal]] undead&lt;br /&gt;
&lt;br /&gt;
Frequently, people have trouble setting up Bigshot to work with Unarmed Combat. Bigshot only requires minimal configuration to ensure UAC works well.&lt;br /&gt;
#UAC tab: Input your &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039; (jab, punch, grapple, or kick)&lt;br /&gt;
#Commands tab: Input your &#039;&#039;&#039;hunting commands(a)&#039;&#039;&#039; option as &#039;&#039;&#039;unarmed jab&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Important notes to keep in mind on how UAC works in Bigshot:&lt;br /&gt;
* The hunting option &#039;&#039;&#039;unarmed jab&#039;&#039;&#039; can be replaced by any UAC attack type (e.g. &#039;&#039;&#039;unarmed punch&#039;&#039;&#039;)&lt;br /&gt;
* UAC follow up strikes will be selected over the base or tier 3 attack&lt;br /&gt;
* Tier 3 attacks will be used only when positioning is excellent&lt;br /&gt;
&lt;br /&gt;
There is almost no reason to ever use anything other than &#039;&#039;&#039;unarmed jab&#039;&#039; as the hunting command, and either &#039;&#039;&#039;grapple&#039;&#039;&#039; or &#039;&#039;&#039;kick&#039;&#039;&#039; as the Tier 3 attack.&lt;br /&gt;
&lt;br /&gt;
===MSTRIKE Options===&lt;br /&gt;
MSTRIKE attack now has options for when it should be used.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown stamina requirement&#039;&#039;&#039;&lt;br /&gt;
** Allows you to specify how much stamina you want before it will MSTRIKE during the MSTRIKE Cooldown&lt;br /&gt;
** Be careful when setting this too low as it can pop your muscles&lt;br /&gt;
** Leave blank for it to use your max stamina.&lt;br /&gt;
* &#039;&#039;&#039;QUICKSTRIKE stamina requirement&#039;&#039;&#039;&lt;br /&gt;
** Like above but instead for using QUICKSTRIKE during the MSTRIKE routine.&lt;br /&gt;
* &#039;&#039;&#039;Unfocused MSTRIKE when creatures equal or greater&#039;&#039;&#039;&lt;br /&gt;
** Number of creatures in room before you do an unfocused mstrike. Default is 2.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown&#039;&#039;&#039;&lt;br /&gt;
**Toggle for MSTRIKEing during its cooldown period&lt;br /&gt;
* &#039;&#039;&#039;Use QUICKSTRIKE for MSTRIKE&#039;&#039;&#039;&lt;br /&gt;
** Toggle for using QUICKSTRIKE when you MSTRIKE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ammo/Wands===&lt;br /&gt;
Here you find the settings to tell Bigshot where you keep all of your nifty wands and bolts and arrows. If your attack routine involves FIRE or WAND verbs, these fields must be set lest Bigshot hang up.&lt;br /&gt;
* find ammo in this container: - Leave BLANK if having Bigshot use FIRE without getting ammo out (Archery 2020 Update). Rather self explanatory, this field holds the location of your ammunition storage, be it a wand harness, a quiver or just your backpack.&lt;br /&gt;
* use this ammo type: - Leave BLANK to have Bigshot use FIRE without getting any ammo (Archery 2020 Update). Again, like specifying monsters, Bigshot is most sensative about the NOUNs that you use here. If you &lt;br /&gt;
* fresh wand container: - Bigshot looks in this container to find fesh wands to WAVE.&lt;br /&gt;
* dead wand container: - ...And then will deposit the used up wands in this container.&lt;br /&gt;
* use this wand type: - Here you specify which particular wand type you want to use. Bigshot will then pull only these kinds for WAVEing. Can have multiple types listed. Seperate each one with a comma. Example: &amp;quot;aquamarine wand, bloodwood wand, etc&amp;quot;&lt;br /&gt;
* Hide while waiting to pick up ammo - Checking this box will have Bigshot hide when gathering up your spent arrows and bolts.&lt;br /&gt;
* Use wands when out of mana - Bigshot will pull whatever wand you have specified in the use this wand type field and automatically stance to your attacking stance and WAVE your wand at valid targets until you are out of wands OR hit your resting conditions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MA Grouping===&lt;br /&gt;
* Enter the name of the looter in Head/Tail configuration&lt;br /&gt;
&lt;br /&gt;
==Monitoring Tab==&lt;br /&gt;
* Monitor interaction - Running scripts automates most functions and happens rather mechanically. Most anyone can tell if you are scripting just by watching you. Checking this box will pop up a window whenever Bigshot thinks that someone or something is trying to interact with you.&lt;br /&gt;
* Engage deadman&#039;s switch - Selecting this option will force Bigshot to quit Gemstone IV when your character is at less than 40% health, allowing you to log back on and assess the situation manually later.&lt;br /&gt;
* Depart/rerun if dead - Enabling this option will force a DEPART, causing your character to wake up in the Temple with low spirit. Following this, Bigshot will re-start, starting a fresh hunt. If you do not have a Check Spirit value set in your Should_hunt? tab, you will start hunting without recuperating lost stats.&lt;br /&gt;
* Quiet followers - Followers will wait until leader is done with both actions and resting scripts to begin using their own.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Debugging:===&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
|                         Bigshot Debug Help v5.8.5                         |&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;
&amp;lt;/pre&amp;gt;&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=241657</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=241657"/>
		<updated>2025-07-08T16:35:56Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Lich Changelog */ add 5.12.3 notes&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.12.3 supporting Ruby 3.4 - published July 8, 2025&#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.6.0 or newer====&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 --library=update.rb&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&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.5 or older====&lt;br /&gt;
Does not work for Lich 4 upgrades, please do a full new install if on Lich 4.&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 --snapshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and close out of the game.&lt;br /&gt;
# Download the full release [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip]&lt;br /&gt;
# Extract the zip file over your existing Lich5 installation, choosing to overwrite existing files.&lt;br /&gt;
# Restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 3.4 &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 3.4 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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.3-1/rubyinstaller-devkit-3.4.3-1-x86.exe Ruby 3.4.3 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.4 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 3.4.4 -v&lt;br /&gt;
rbenv global 3.4.4&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:&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;
gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to use LNet with newer versions of Ruby, you&#039;ll need to downgrade the default version of REXML to be 3.3.1 or older due to Tillmen&#039;s LNet server not supporting the newer version currently:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gem install rexml:&#039;&amp;lt;3.3.2&#039; &amp;amp;&amp;amp; gem uninstall rexml:&#039;&amp;gt;3.3.1&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich and Profanity:&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;
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;
&amp;lt;/div&amp;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 38 &amp;amp; 39 use Ruby 3.2.2, while Fedora 40 uses Ruby 3.3.0. 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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Perform Ruby Gem Installations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gem install rake&lt;br /&gt;
$ gem update&lt;br /&gt;
$ gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Download Lich &amp;amp; Profanity:&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;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;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.12.3&#039;&#039;&#039; (current)&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=241656</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=241656"/>
		<updated>2025-07-08T16:35:14Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Installing the Latest Stable Release */ update released version to 5.12.3&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.12.3 supporting Ruby 3.4 - published July 8, 2025&#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.6.0 or newer====&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 --library=update.rb&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&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.5 or older====&lt;br /&gt;
Does not work for Lich 4 upgrades, please do a full new install if on Lich 4.&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 --snapshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and close out of the game.&lt;br /&gt;
# Download the full release [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip]&lt;br /&gt;
# Extract the zip file over your existing Lich5 installation, choosing to overwrite existing files.&lt;br /&gt;
# Restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 3.4 &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 3.4 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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.3-1/rubyinstaller-devkit-3.4.3-1-x86.exe Ruby 3.4.3 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.4 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 3.4.4 -v&lt;br /&gt;
rbenv global 3.4.4&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:&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;
gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to use LNet with newer versions of Ruby, you&#039;ll need to downgrade the default version of REXML to be 3.3.1 or older due to Tillmen&#039;s LNet server not supporting the newer version currently:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gem install rexml:&#039;&amp;lt;3.3.2&#039; &amp;amp;&amp;amp; gem uninstall rexml:&#039;&amp;gt;3.3.1&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich and Profanity:&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;
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;
&amp;lt;/div&amp;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 38 &amp;amp; 39 use Ruby 3.2.2, while Fedora 40 uses Ruby 3.3.0. 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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Perform Ruby Gem Installations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gem install rake&lt;br /&gt;
$ gem update&lt;br /&gt;
$ gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Download Lich &amp;amp; Profanity:&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;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;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.12.2&#039;&#039;&#039; (current)&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=240797</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=240797"/>
		<updated>2025-06-25T17:46:37Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Lich Changelog */ updated to 5.12.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.12.1 supporting Ruby 3.4 - published June 25, 2025&#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.6.0 or newer====&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 --library=update.rb&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&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.5 or older====&lt;br /&gt;
Does not work for Lich 4 upgrades, please do a full new install if on Lich 4.&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 --snapshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and close out of the game.&lt;br /&gt;
# Download the full release [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip]&lt;br /&gt;
# Extract the zip file over your existing Lich5 installation, choosing to overwrite existing files.&lt;br /&gt;
# Restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 3.4 &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 3.4 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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.3-1/rubyinstaller-devkit-3.4.3-1-x86.exe Ruby 3.4.3 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.4 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 3.4.4 -v&lt;br /&gt;
rbenv global 3.4.4&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:&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;
gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to use LNet with newer versions of Ruby, you&#039;ll need to downgrade the default version of REXML to be 3.3.1 or older due to Tillmen&#039;s LNet server not supporting the newer version currently:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gem install rexml:&#039;&amp;lt;3.3.2&#039; &amp;amp;&amp;amp; gem uninstall rexml:&#039;&amp;gt;3.3.1&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich and Profanity:&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;
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;
&amp;lt;/div&amp;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 38 &amp;amp; 39 use Ruby 3.2.2, while Fedora 40 uses Ruby 3.3.0. 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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Perform Ruby Gem Installations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gem install rake&lt;br /&gt;
$ gem update&lt;br /&gt;
$ gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Download Lich &amp;amp; Profanity:&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;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;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.12.1&#039;&#039;&#039; (current)&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=240796</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=240796"/>
		<updated>2025-06-25T17:42:53Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Installing the Latest Stable Release */ updated for Lich 5.12.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.12.1 supporting Ruby 3.4 - published June 25, 2025&#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.6.0 or newer====&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 --library=update.rb&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&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.5 or older====&lt;br /&gt;
Does not work for Lich 4 upgrades, please do a full new install if on Lich 4.&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 --snapshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and close out of the game.&lt;br /&gt;
# Download the full release [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip]&lt;br /&gt;
# Extract the zip file over your existing Lich5 installation, choosing to overwrite existing files.&lt;br /&gt;
# Restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 3.4 &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 3.4 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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.3-1/rubyinstaller-devkit-3.4.3-1-x86.exe Ruby 3.4.3 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.4 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 3.4.4 -v&lt;br /&gt;
rbenv global 3.4.4&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:&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;
gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to use LNet with newer versions of Ruby, you&#039;ll need to downgrade the default version of REXML to be 3.3.1 or older due to Tillmen&#039;s LNet server not supporting the newer version currently:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gem install rexml:&#039;&amp;lt;3.3.2&#039; &amp;amp;&amp;amp; gem uninstall rexml:&#039;&amp;gt;3.3.1&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich and Profanity:&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;
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;
&amp;lt;/div&amp;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 38 &amp;amp; 39 use Ruby 3.2.2, while Fedora 40 uses Ruby 3.3.0. 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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Perform Ruby Gem Installations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gem install rake&lt;br /&gt;
$ gem update&lt;br /&gt;
$ gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Download Lich &amp;amp; Profanity:&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;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;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.11.1&#039;&#039;&#039; (current)&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=238753</id>
		<title>Lich:Script Repository</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=238753"/>
		<updated>2025-05-27T14:39:22Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Jinx Lich Repository Mirror */ minor corrections to repo name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
The repository, owned by Tillmen, is the most common location for downloading scripts that are not pre-installed with Lich. &lt;br /&gt;
&lt;br /&gt;
==How to Use the Repository==&lt;br /&gt;
&lt;br /&gt;
The repository has four basic commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;repository&lt;br /&gt;
&lt;br /&gt;
;repository download &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository info &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first shows a Help screen and is the root command for all others.&lt;br /&gt;
&lt;br /&gt;
The second, often shortened to &#039;;repo down&#039;, lets you download a specified script.&lt;br /&gt;
&lt;br /&gt;
Third, INFO provides information about whatever script is specified. If the author has been kind and thorough, this will tell you how to use the script and if it has any interdependencies.&lt;br /&gt;
&lt;br /&gt;
Fourth, LIST will list all scripts in the repository.&lt;br /&gt;
&lt;br /&gt;
==Updating Scripts==&lt;br /&gt;
The repository supports updates via prefedined scripts and the MapDatabase&lt;br /&gt;
To see a list of scripts you currently have set to updatable, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;. &lt;br /&gt;
For users on Lich 5+, you want &amp;lt;CODE&amp;gt;Lich: off&amp;lt;/CODE&amp;gt; to be displayed.&lt;br /&gt;
&lt;br /&gt;
To add a script to be updated, &amp;lt;CODE&amp;gt;;repo set-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
To view scripts you have set to be auto-updated, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
It is only recommended to set scripts from authors you trust to auto-update.&lt;br /&gt;
&lt;br /&gt;
If you want to remove, &amp;lt;CODE&amp;gt;;repo unset-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Popular Lich Scripts==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=popularscripts /&amp;gt;The following are a list of scripts that enhance or extend basic functions of Gemstone IV and can improve or streamline your gaming experience to a point where you can&#039;t think of ever going back. It&#039;s not all inclusive but contains a good starter set or some of the most popular scripts in use. &lt;br /&gt;
=== Core components installed with Lich ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generally speaking, the below scripts should not need to be updated manually by the user, especially if the user keeps up to date on the current lich version.&#039;&#039;&#039; &lt;br /&gt;
* [[Lich:Script Alias|alias]] - A default script used to create shortcuts in lich. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Autostart|autostart]] - A default script to handle which scripts run on startup. See wiki page for details.&lt;br /&gt;
* [[Script Go2|go2]] - Go2 is an intelligent travel script that is synchronized to many of the more complex scripts. Go2 uses a Room Number system and can intelligently plot routes between most any two rooms in all of Elanthia. Use can be as simple as &amp;lt;code&amp;gt;;go2 town&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;;go2 bank&amp;lt;/code&amp;gt; to head to the nearest town square or bank. Use &amp;lt;code&amp;gt;;go2 targets&amp;lt;/code&amp;gt; to see a list of pre-programmed locations broken down by towns. Or, use &amp;lt;code&amp;gt;;go2 save &amp;lt;new location name&amp;gt;=&amp;lt;new location room number&amp;gt;&amp;lt;/code&amp;gt; to create your own locations. Go2 is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Lich:Script Map|map]] - map (fork of Narost/XNarost) is an active map library that can display your location and allows Point-And-Click travel. Simply right click and choose a map, pick a room on it and click on it. map is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Script Repository|repository]] - A default script to view and download other scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Vars|vars]] - A default script to create and view variables for both users and scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Version|version]] - A default script to output your current lich version and other information. See wiki page for details.&lt;br /&gt;
&lt;br /&gt;
=== Scripts maintained by Elanthia-Online ===&lt;br /&gt;
* [[Lich:Script Bigshot|bigshot]] - A script for attacking and hunting routines. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;blackarts&#039;&#039;&#039; - A script for doing various [[alchemy]] tasks. &amp;lt;CODE&amp;gt;;blackarts setup&amp;lt;/CODE&amp;gt; for configuration details&lt;br /&gt;
* [[Lich:Script Ebounty|ebounty]] - A script to get and perform bounties. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecaster&#039;&#039;&#039; - Allows user to type just the spell number and have lich cast that spell. Usage syntax is &amp;lt;code&amp;gt;;ecaster setup&amp;lt;/code&amp;gt; for configuration. Set to autostart.&lt;br /&gt;
* &#039;&#039;&#039;echild&#039;&#039;&#039; - A child bounty script that monitors for and returns a child during bounty sessions. Add to autostart or your hunting script when performing a bounty.&lt;br /&gt;
* [[Lich:Script Ecleanse|ecleanse]] - A script for dealing with status conditions. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecure&#039;&#039;&#039; - A script for healing for empaths. Usage syntax is &amp;lt;code&amp;gt;;ecure setup&amp;lt;/code&amp;gt; for first usage.&lt;br /&gt;
* [[Lich:Script Eherbs|eherbs]] - A herb healing and stocking script.  See wiki page for details.&lt;br /&gt;
* [[Lich:Script Eloot|eloot]] - A looting and loot management script. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;elogin&#039;&#039;&#039; - A script for command line login for your characters. . Usage syntax is &amp;lt;code&amp;gt;;elogin &amp;lt;charname&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;escortgo2&#039;&#039;&#039; - A script for bounty escorts. Usage syntax is &amp;lt;code&amp;gt;;escortgo2 help&amp;lt;/code&amp;gt; for relevant commands (replaces ;ego2)&lt;br /&gt;
* [[Lich:Script Ewaggle|ewaggle]] - A script for spelling yourself and others up. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ewander&#039;&#039;&#039; - The last of the Trifector of Travel, wander will move from room to room until it runs into a Boundary - a specified room number - or finds a room with a monster AND empty of players. Wander can be used to create a walled in hunting ground, letting you automatically move from room to room without having to use keystrokes. Use the &amp;lt;code&amp;gt;;ewander add&amp;lt;/code&amp;gt; command to add the room you are currently standing in to the Wander List. Note: Wander will NOT enter your boundary rooms. For example, adding Town Square East to the list and then executing ;ewander from within the confines of Moot Hall will send your character exploring every room in Moot, but unable to leave as TSE is a Boundary.&lt;br /&gt;
* [[Lich:Script foreach|foreach]] - A script for sending a series of commands for each item that matches its criteria. See wiki page for details.&lt;br /&gt;
* &#039;&#039;&#039;jbackup &#039;&#039;&#039; - A excellent backup and recovery tool that allows lich database and any additional file backup a user prefers. Set to autostart. &lt;br /&gt;
* &#039;&#039;&#039;ledger&#039;&#039;&#039; - A scripting for tracking your silver and bounty incoming across sessions and over time per character and account with a nice ascii display. Requires ascii_charts gem (installed by default with Lich 5.7.0+ full installer)&lt;br /&gt;
* &#039;&#039;&#039;signore &#039;&#039;&#039; - A script for using society powers &amp;lt;CODE&amp;gt;;signore setup&amp;lt;/CODE&amp;gt; for configuration&lt;br /&gt;
* &#039;&#039;&#039;resource&#039;&#039;&#039; - A script for determining your current player service bonus. &amp;lt;CODE&amp;gt; ;resource bonus &amp;lt;/CODE&amp;gt; Can also be used to determine the cost of enchanting with the syntax ;resource calc &amp;lt;starting enchant&amp;gt; &amp;lt;ending enchant&amp;gt; &amp;lt;cost per essence&amp;gt; as in &amp;lt;CODE&amp;gt;;resource calc 35 45 50&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;uberbar_eo &#039;&#039;&#039; - The most current Uberbar variant. This will provide a paperdoll with room number, resource information, etc. inside Wrayth. Set to autostart. Note- there is a small performance impact when using Uberbars.&lt;br /&gt;
&lt;br /&gt;
=== Other scripts that are popular ===&lt;br /&gt;
* &#039;&#039;&#039;character-planner &#039;&#039;&#039; - A script for planning out your character skills and training. &amp;lt;CODE&amp;gt;;character-planner&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;colmaster &#039;&#039;&#039; - A script for getting and performing COL tasks in Solhaven&lt;br /&gt;
* &#039;&#039;&#039;dirty-deeds &#039;&#039;&#039; - A script for getting deeds in IMT and WL. &amp;lt;CODE&amp;gt;;dirty-deeds setup&amp;lt;/CODE&amp;gt; for configuration  &lt;br /&gt;
* [[Script invdb|invdb]] - An inventory management database. See wiki page for details&lt;br /&gt;
* &#039;&#039;&#039;linktothefast&#039;&#039;&#039; - A complex script that provides highlighting for Wrayth links when links are disabled. This script can cause issues with [[STOW]] settings, so disable prior to adjusting those settings.&lt;br /&gt;
* [[Script LNet|lnet]] - An out of game, third party, not Simutronics controlled chat server. &amp;lt;CODE&amp;gt;;repo download lnet --author=elanthia-online&amp;lt;/CODE&amp;gt;. See wiki page for details &#039;&#039;&#039;LNet should be installed at your own risk&#039;&#039;&#039;. Simutronics has no control over LNet or policy enforcement there. The in-game [[ESP]] is now available and replaces many of the functions that LNet provided.&lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; - A script to perform repetitive set of commands. Usage syntax is &amp;lt;code&amp;gt;;multi; &amp;lt;number&amp;gt; &amp;lt;action&amp;gt;&amp;lt;/code&amp;gt; such as &amp;lt;code&amp;gt;;multi 10, get my diamond, drop my diamond&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;rogues&#039;&#039;&#039; - A script for rogue guild tasks &amp;lt;CODE&amp;gt;;rogues setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;sorter &#039;&#039;&#039; Sorter cleans up your bags and breaks down the the output of a LOOK command, sorting the results by type. Makes looking in your locker or backpack, and especially your gem pouch, infinitely easier. *Note* Sorter can mess up some other scripts that deal with inventory, so be cautious in usage. Elanthia-Online scripts like eloot disable sorter when performing relevant functions&lt;br /&gt;
* &#039;&#039;&#039;stat-maximizer&#039;&#039;&#039; - A script for configuring character stats. &amp;lt;CODE&amp;gt;;stat-maximizer&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;tpick&#039;&#039;&#039; - A script for lockpicking &amp;lt;CODE&amp;gt;;tpick setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;volnstep &#039;&#039;&#039; - A script for performing voln tasks in Wehnimer&#039;s Landing&lt;br /&gt;
* &#039;&#039;&#039;warrior&#039;&#039;&#039; - A script for warrior guild tasks &amp;lt;CODE&amp;gt;;warrior setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
&amp;lt;section end=popularscripts /&amp;gt;&amp;lt;!--- Add any additional popular scripts to the list ABOVE this line. ---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Help Output==&lt;br /&gt;
&amp;lt;PRE&amp;gt;Usage:&lt;br /&gt;
&lt;br /&gt;
   ;repository list [alpha]            lists all scripts available for download (optionally in alphabetial order)&lt;br /&gt;
   ;repository sync [alpha]            lists only new and/or updated scripts&lt;br /&gt;
   ;repository info &amp;lt;script name&amp;gt;      shows the comments at the top of the script&lt;br /&gt;
   ;repository download &amp;lt;script name&amp;gt;  downloads the script&lt;br /&gt;
   ;repository upload &amp;lt;script name&amp;gt;    uploads the script&lt;br /&gt;
   ;repository delete &amp;lt;script name&amp;gt;    deletes the script from the server&lt;br /&gt;
&lt;br /&gt;
Scripts should include comments at the top describing the purpose of the script.  Scripts without comments at the top will not show up on the server.&lt;br /&gt;
&lt;br /&gt;
After uploading a script, a key that allows you to delete/update the script will be saved to C:/Games/lich/keys&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sortable list==&lt;br /&gt;
The repository script has an in game GUI available that allows sorting by date, tags, etc. &lt;br /&gt;
&amp;lt;CODE&amp;gt;;repo gui&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Jinx (Repository alternative)==&lt;br /&gt;
&lt;br /&gt;
Jinx is a project that is an alternative form of script installation from the default ;repository. It can serve up scripts for download similar to the ;repo however it is not dependent on a single server that may be prone to outages. Any one can set up their own script library, and then users can add it as a source for the ;jinx script to search and download from.&lt;br /&gt;
&lt;br /&gt;
Jinx is installed in the default Lich5 package. Jinx can be downloaded and installed into your scripts folder from the Elanthia Online github&lt;br /&gt;
&lt;br /&gt;
https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&lt;br /&gt;
&lt;br /&gt;
Right-click the above link and save it into the scripts folder in your lich directory.&lt;br /&gt;
&lt;br /&gt;
Alternatively, the following command can be issued in game via lich to attempt to download the script to the proper directory for you (this command is for when the repository is down and the script cannot be downloaded naturally):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;e require &#039;open-uri&#039;;begin;jinx_remote = open(&amp;quot;https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&amp;quot;); jinx_local = File.open(File.join(SCRIPT_DIR, &#039;jinx.lic&#039;), &amp;quot;wb&amp;quot;); jinx_local.write(jinx_remote.read);ensure; jinx_remote.close(); jinx_local.close();end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once installed you can issue: &amp;lt;CODE&amp;gt;;jinx help&amp;lt;/CODE&amp;gt; for basic usage information.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Mirror===&lt;br /&gt;
In the event the main &amp;lt;code&amp;gt;;repository&amp;lt;/code&amp;gt; is unavailable, there is currently an actively maintained &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; repository that is a direct mirror.&lt;br /&gt;
&lt;br /&gt;
https://github.com/FarFigNewGut/lich_repo_mirror&lt;br /&gt;
&lt;br /&gt;
Scripts can be manually retrieved from this Github repository (they are all located in the lib folder). The repository is also packaged and published for use directly with Jinx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;jinx repo add mirror https://ffnglichrepoarchive.netlify.app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once it is setup as a source for &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; you can install any scripts from the repo with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# install script for the first time&lt;br /&gt;
;jinx script install &amp;lt;script name&amp;gt; --repo=mirror&lt;br /&gt;
&lt;br /&gt;
# update previously installed script&lt;br /&gt;
;jinx script update &amp;lt;script name&amp;gt; --repo=mirror&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example if you wanted to download or update invdb.lic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install invdb --repo=mirror&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded invdb.lic&lt;br /&gt;
;jinx script update invdb --repo=mirror&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do note, if a script is not available on the archive, it&#039;s likely because it belongs to Elanthia-Online and those scripts are not found within the archive, but under a default repo that is configured with jinx. To use it, you would do the following, using bigshot.lic as an example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install bigshot --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded bigshot.lic&lt;br /&gt;
;jinx script update bigshot --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also leave the &amp;lt;code&amp;gt;--repo=&amp;lt;REPO_NAME&amp;gt;&amp;lt;/code&amp;gt; off to see all available options for a script that is found.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Offline Update Info===&lt;br /&gt;
At times the default Lich repository (accessed via &amp;lt;code&amp;gt;;repo&amp;lt;/code&amp;gt;) can go offline, below are some helpful commands to update core Lich related functionality using Jinx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# ensure running latest jinx.lic for newest compatibility&lt;br /&gt;
;jinx script update jinx.lic --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update spell-list.xml for new spells, cmans, cooldowns, etc&lt;br /&gt;
;jinx data update effect-list.xml --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update gameobj-data.xml for proper classification of NPCs and items&lt;br /&gt;
;jinx data update gameobj-data.xml --repo=mirror&lt;br /&gt;
&lt;br /&gt;
# update mapdb and associated missing map files for graphical use&lt;br /&gt;
;jinx data update mapdb.json --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Screenshot==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Repo-1.png|Repo&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=238752</id>
		<title>Lich:Script Repository</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=238752"/>
		<updated>2025-05-27T14:38:20Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Jinx Lich Repository Offline Update Info */ update for more modern Lich5 changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
The repository, owned by Tillmen, is the most common location for downloading scripts that are not pre-installed with Lich. &lt;br /&gt;
&lt;br /&gt;
==How to Use the Repository==&lt;br /&gt;
&lt;br /&gt;
The repository has four basic commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;repository&lt;br /&gt;
&lt;br /&gt;
;repository download &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository info &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first shows a Help screen and is the root command for all others.&lt;br /&gt;
&lt;br /&gt;
The second, often shortened to &#039;;repo down&#039;, lets you download a specified script.&lt;br /&gt;
&lt;br /&gt;
Third, INFO provides information about whatever script is specified. If the author has been kind and thorough, this will tell you how to use the script and if it has any interdependencies.&lt;br /&gt;
&lt;br /&gt;
Fourth, LIST will list all scripts in the repository.&lt;br /&gt;
&lt;br /&gt;
==Updating Scripts==&lt;br /&gt;
The repository supports updates via prefedined scripts and the MapDatabase&lt;br /&gt;
To see a list of scripts you currently have set to updatable, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;. &lt;br /&gt;
For users on Lich 5+, you want &amp;lt;CODE&amp;gt;Lich: off&amp;lt;/CODE&amp;gt; to be displayed.&lt;br /&gt;
&lt;br /&gt;
To add a script to be updated, &amp;lt;CODE&amp;gt;;repo set-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
To view scripts you have set to be auto-updated, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
It is only recommended to set scripts from authors you trust to auto-update.&lt;br /&gt;
&lt;br /&gt;
If you want to remove, &amp;lt;CODE&amp;gt;;repo unset-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Popular Lich Scripts==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=popularscripts /&amp;gt;The following are a list of scripts that enhance or extend basic functions of Gemstone IV and can improve or streamline your gaming experience to a point where you can&#039;t think of ever going back. It&#039;s not all inclusive but contains a good starter set or some of the most popular scripts in use. &lt;br /&gt;
=== Core components installed with Lich ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generally speaking, the below scripts should not need to be updated manually by the user, especially if the user keeps up to date on the current lich version.&#039;&#039;&#039; &lt;br /&gt;
* [[Lich:Script Alias|alias]] - A default script used to create shortcuts in lich. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Autostart|autostart]] - A default script to handle which scripts run on startup. See wiki page for details.&lt;br /&gt;
* [[Script Go2|go2]] - Go2 is an intelligent travel script that is synchronized to many of the more complex scripts. Go2 uses a Room Number system and can intelligently plot routes between most any two rooms in all of Elanthia. Use can be as simple as &amp;lt;code&amp;gt;;go2 town&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;;go2 bank&amp;lt;/code&amp;gt; to head to the nearest town square or bank. Use &amp;lt;code&amp;gt;;go2 targets&amp;lt;/code&amp;gt; to see a list of pre-programmed locations broken down by towns. Or, use &amp;lt;code&amp;gt;;go2 save &amp;lt;new location name&amp;gt;=&amp;lt;new location room number&amp;gt;&amp;lt;/code&amp;gt; to create your own locations. Go2 is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Lich:Script Map|map]] - map (fork of Narost/XNarost) is an active map library that can display your location and allows Point-And-Click travel. Simply right click and choose a map, pick a room on it and click on it. map is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Script Repository|repository]] - A default script to view and download other scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Vars|vars]] - A default script to create and view variables for both users and scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Version|version]] - A default script to output your current lich version and other information. See wiki page for details.&lt;br /&gt;
&lt;br /&gt;
=== Scripts maintained by Elanthia-Online ===&lt;br /&gt;
* [[Lich:Script Bigshot|bigshot]] - A script for attacking and hunting routines. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;blackarts&#039;&#039;&#039; - A script for doing various [[alchemy]] tasks. &amp;lt;CODE&amp;gt;;blackarts setup&amp;lt;/CODE&amp;gt; for configuration details&lt;br /&gt;
* [[Lich:Script Ebounty|ebounty]] - A script to get and perform bounties. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecaster&#039;&#039;&#039; - Allows user to type just the spell number and have lich cast that spell. Usage syntax is &amp;lt;code&amp;gt;;ecaster setup&amp;lt;/code&amp;gt; for configuration. Set to autostart.&lt;br /&gt;
* &#039;&#039;&#039;echild&#039;&#039;&#039; - A child bounty script that monitors for and returns a child during bounty sessions. Add to autostart or your hunting script when performing a bounty.&lt;br /&gt;
* [[Lich:Script Ecleanse|ecleanse]] - A script for dealing with status conditions. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecure&#039;&#039;&#039; - A script for healing for empaths. Usage syntax is &amp;lt;code&amp;gt;;ecure setup&amp;lt;/code&amp;gt; for first usage.&lt;br /&gt;
* [[Lich:Script Eherbs|eherbs]] - A herb healing and stocking script.  See wiki page for details.&lt;br /&gt;
* [[Lich:Script Eloot|eloot]] - A looting and loot management script. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;elogin&#039;&#039;&#039; - A script for command line login for your characters. . Usage syntax is &amp;lt;code&amp;gt;;elogin &amp;lt;charname&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;escortgo2&#039;&#039;&#039; - A script for bounty escorts. Usage syntax is &amp;lt;code&amp;gt;;escortgo2 help&amp;lt;/code&amp;gt; for relevant commands (replaces ;ego2)&lt;br /&gt;
* [[Lich:Script Ewaggle|ewaggle]] - A script for spelling yourself and others up. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ewander&#039;&#039;&#039; - The last of the Trifector of Travel, wander will move from room to room until it runs into a Boundary - a specified room number - or finds a room with a monster AND empty of players. Wander can be used to create a walled in hunting ground, letting you automatically move from room to room without having to use keystrokes. Use the &amp;lt;code&amp;gt;;ewander add&amp;lt;/code&amp;gt; command to add the room you are currently standing in to the Wander List. Note: Wander will NOT enter your boundary rooms. For example, adding Town Square East to the list and then executing ;ewander from within the confines of Moot Hall will send your character exploring every room in Moot, but unable to leave as TSE is a Boundary.&lt;br /&gt;
* [[Lich:Script foreach|foreach]] - A script for sending a series of commands for each item that matches its criteria. See wiki page for details.&lt;br /&gt;
* &#039;&#039;&#039;jbackup &#039;&#039;&#039; - A excellent backup and recovery tool that allows lich database and any additional file backup a user prefers. Set to autostart. &lt;br /&gt;
* &#039;&#039;&#039;ledger&#039;&#039;&#039; - A scripting for tracking your silver and bounty incoming across sessions and over time per character and account with a nice ascii display. Requires ascii_charts gem (installed by default with Lich 5.7.0+ full installer)&lt;br /&gt;
* &#039;&#039;&#039;signore &#039;&#039;&#039; - A script for using society powers &amp;lt;CODE&amp;gt;;signore setup&amp;lt;/CODE&amp;gt; for configuration&lt;br /&gt;
* &#039;&#039;&#039;resource&#039;&#039;&#039; - A script for determining your current player service bonus. &amp;lt;CODE&amp;gt; ;resource bonus &amp;lt;/CODE&amp;gt; Can also be used to determine the cost of enchanting with the syntax ;resource calc &amp;lt;starting enchant&amp;gt; &amp;lt;ending enchant&amp;gt; &amp;lt;cost per essence&amp;gt; as in &amp;lt;CODE&amp;gt;;resource calc 35 45 50&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;uberbar_eo &#039;&#039;&#039; - The most current Uberbar variant. This will provide a paperdoll with room number, resource information, etc. inside Wrayth. Set to autostart. Note- there is a small performance impact when using Uberbars.&lt;br /&gt;
&lt;br /&gt;
=== Other scripts that are popular ===&lt;br /&gt;
* &#039;&#039;&#039;character-planner &#039;&#039;&#039; - A script for planning out your character skills and training. &amp;lt;CODE&amp;gt;;character-planner&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;colmaster &#039;&#039;&#039; - A script for getting and performing COL tasks in Solhaven&lt;br /&gt;
* &#039;&#039;&#039;dirty-deeds &#039;&#039;&#039; - A script for getting deeds in IMT and WL. &amp;lt;CODE&amp;gt;;dirty-deeds setup&amp;lt;/CODE&amp;gt; for configuration  &lt;br /&gt;
* [[Script invdb|invdb]] - An inventory management database. See wiki page for details&lt;br /&gt;
* &#039;&#039;&#039;linktothefast&#039;&#039;&#039; - A complex script that provides highlighting for Wrayth links when links are disabled. This script can cause issues with [[STOW]] settings, so disable prior to adjusting those settings.&lt;br /&gt;
* [[Script LNet|lnet]] - An out of game, third party, not Simutronics controlled chat server. &amp;lt;CODE&amp;gt;;repo download lnet --author=elanthia-online&amp;lt;/CODE&amp;gt;. See wiki page for details &#039;&#039;&#039;LNet should be installed at your own risk&#039;&#039;&#039;. Simutronics has no control over LNet or policy enforcement there. The in-game [[ESP]] is now available and replaces many of the functions that LNet provided.&lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; - A script to perform repetitive set of commands. Usage syntax is &amp;lt;code&amp;gt;;multi; &amp;lt;number&amp;gt; &amp;lt;action&amp;gt;&amp;lt;/code&amp;gt; such as &amp;lt;code&amp;gt;;multi 10, get my diamond, drop my diamond&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;rogues&#039;&#039;&#039; - A script for rogue guild tasks &amp;lt;CODE&amp;gt;;rogues setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;sorter &#039;&#039;&#039; Sorter cleans up your bags and breaks down the the output of a LOOK command, sorting the results by type. Makes looking in your locker or backpack, and especially your gem pouch, infinitely easier. *Note* Sorter can mess up some other scripts that deal with inventory, so be cautious in usage. Elanthia-Online scripts like eloot disable sorter when performing relevant functions&lt;br /&gt;
* &#039;&#039;&#039;stat-maximizer&#039;&#039;&#039; - A script for configuring character stats. &amp;lt;CODE&amp;gt;;stat-maximizer&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;tpick&#039;&#039;&#039; - A script for lockpicking &amp;lt;CODE&amp;gt;;tpick setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;volnstep &#039;&#039;&#039; - A script for performing voln tasks in Wehnimer&#039;s Landing&lt;br /&gt;
* &#039;&#039;&#039;warrior&#039;&#039;&#039; - A script for warrior guild tasks &amp;lt;CODE&amp;gt;;warrior setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
&amp;lt;section end=popularscripts /&amp;gt;&amp;lt;!--- Add any additional popular scripts to the list ABOVE this line. ---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Help Output==&lt;br /&gt;
&amp;lt;PRE&amp;gt;Usage:&lt;br /&gt;
&lt;br /&gt;
   ;repository list [alpha]            lists all scripts available for download (optionally in alphabetial order)&lt;br /&gt;
   ;repository sync [alpha]            lists only new and/or updated scripts&lt;br /&gt;
   ;repository info &amp;lt;script name&amp;gt;      shows the comments at the top of the script&lt;br /&gt;
   ;repository download &amp;lt;script name&amp;gt;  downloads the script&lt;br /&gt;
   ;repository upload &amp;lt;script name&amp;gt;    uploads the script&lt;br /&gt;
   ;repository delete &amp;lt;script name&amp;gt;    deletes the script from the server&lt;br /&gt;
&lt;br /&gt;
Scripts should include comments at the top describing the purpose of the script.  Scripts without comments at the top will not show up on the server.&lt;br /&gt;
&lt;br /&gt;
After uploading a script, a key that allows you to delete/update the script will be saved to C:/Games/lich/keys&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sortable list==&lt;br /&gt;
The repository script has an in game GUI available that allows sorting by date, tags, etc. &lt;br /&gt;
&amp;lt;CODE&amp;gt;;repo gui&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Jinx (Repository alternative)==&lt;br /&gt;
&lt;br /&gt;
Jinx is a project that is an alternative form of script installation from the default ;repository. It can serve up scripts for download similar to the ;repo however it is not dependent on a single server that may be prone to outages. Any one can set up their own script library, and then users can add it as a source for the ;jinx script to search and download from.&lt;br /&gt;
&lt;br /&gt;
Jinx is installed in the default Lich5 package. Jinx can be downloaded and installed into your scripts folder from the Elanthia Online github&lt;br /&gt;
&lt;br /&gt;
https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&lt;br /&gt;
&lt;br /&gt;
Right-click the above link and save it into the scripts folder in your lich directory.&lt;br /&gt;
&lt;br /&gt;
Alternatively, the following command can be issued in game via lich to attempt to download the script to the proper directory for you (this command is for when the repository is down and the script cannot be downloaded naturally):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;e require &#039;open-uri&#039;;begin;jinx_remote = open(&amp;quot;https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&amp;quot;); jinx_local = File.open(File.join(SCRIPT_DIR, &#039;jinx.lic&#039;), &amp;quot;wb&amp;quot;); jinx_local.write(jinx_remote.read);ensure; jinx_remote.close(); jinx_local.close();end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once installed you can issue: &amp;lt;CODE&amp;gt;;jinx help&amp;lt;/CODE&amp;gt; for basic usage information.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Mirror===&lt;br /&gt;
In the event the main &amp;lt;code&amp;gt;;repository&amp;lt;/code&amp;gt; is unavailable, there is currently an actively maintained &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; repository that is a direct mirror.&lt;br /&gt;
&lt;br /&gt;
https://github.com/FarFigNewGut/lich_repo_mirror&lt;br /&gt;
&lt;br /&gt;
Scripts can be manually retrieved from this Github repository (they are all located in the lib folder). The repository is also packaged and published for use directly with Jinx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;jinx repo add ffnglichrepoarchive https://ffnglichrepoarchive.netlify.app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(You can use something shorter instead of &amp;quot;ffnglichrepoarchive&amp;quot; for the repo name if you&#039;d like.)&lt;br /&gt;
&lt;br /&gt;
Once it is setup as a source for &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; you can install any scripts from the repo with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# install script for the first time&lt;br /&gt;
;jinx script install &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update previously installed script&lt;br /&gt;
;jinx script update &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example if you wanted to download or update invdb.lic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded invdb.lic&lt;br /&gt;
;jinx script update invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do note, if a script is not available on the archive, it&#039;s likely because it belongs to Elanthia-Online and those scripts are not found within the archive, but under a default repo that is configured with jinx. To use it, you would do the following, using bigshot.lic as an example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install bigshot--repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded bigshot.lic&lt;br /&gt;
;jinx script update bigshot --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also leave the &amp;lt;code&amp;gt;--repo=&amp;lt;REPO_NAME&amp;gt;&amp;lt;/code&amp;gt; off to see all available options for a script that is found.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Offline Update Info===&lt;br /&gt;
At times the default Lich repository (accessed via &amp;lt;code&amp;gt;;repo&amp;lt;/code&amp;gt;) can go offline, below are some helpful commands to update core Lich related functionality using Jinx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# ensure running latest jinx.lic for newest compatibility&lt;br /&gt;
;jinx script update jinx.lic --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update spell-list.xml for new spells, cmans, cooldowns, etc&lt;br /&gt;
;jinx data update effect-list.xml --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update gameobj-data.xml for proper classification of NPCs and items&lt;br /&gt;
;jinx data update gameobj-data.xml --repo=mirror&lt;br /&gt;
&lt;br /&gt;
# update mapdb and associated missing map files for graphical use&lt;br /&gt;
;jinx data update mapdb.json --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Screenshot==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Repo-1.png|Repo&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=237633</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=237633"/>
		<updated>2025-04-25T15:57:06Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* The Resting Tab */ updated percenthealth to Char.percent_health check&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Bigshot is designed to handle combat routines, including moving to and from hunting areas, defining creatures to hunt and accompanying attack routines&lt;br /&gt;
Afk scripting on any server but Shattered is in 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 commands inputs, Bigshot lets a user 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: ;repository download Bigshot&lt;br /&gt;
&lt;br /&gt;
===How Do I Make it GO!?===&lt;br /&gt;
Initial setup is accessed through ;bigshot setup. There you will see a configuration window with various tabs to setup for your hunting routine. &lt;br /&gt;
&lt;br /&gt;
As with most scripts, using a SETUP command will open a graphical user interface for configuring the script. Use ;bigshot setup to open this dialog. This will open a window with the following tabs:&lt;br /&gt;
* Profile - This is where you save/load your profile information. Profiles are saved to your \Lich5\data\&amp;lt;GSServer\&amp;lt;charname&amp;gt;\bigshot_profiles directory. Eg, \Lich5\data\GSIV\Rinualdo\bigshot_profiles (note, if you&#039;ve previously used bigshot, the file location has changed. The previous location was in your \Lich5\scripts\bigshot_profiles folder. You can copy/paste &lt;br /&gt;
* Resting - Set up your resting routine and location.&lt;br /&gt;
* Hunting - Create a hunting map by adding BOUNDARIES, define your attack stance and any pre hunt information&lt;br /&gt;
* Attacking - configuration for ambushing, bless, reactions, and similar flags&lt;br /&gt;
* Commands - Where you define your valid targets and associated attack routines. See sample routines below. &lt;br /&gt;
* Misc tab - Various config options&lt;br /&gt;
&lt;br /&gt;
We will take a closer look at each of these individually further on.&lt;br /&gt;
&lt;br /&gt;
There is also several other commands you can do for more functionality.&lt;br /&gt;
* ;bigshot quick - Special hunting mode that kills everything in the room your in and quits bigshot. Wont wander at all, and wont attempt to rest. Has its own hunting commands and hunting targets.&lt;br /&gt;
* ;bigshot head/tail - This is for Multi-Account hunting. It only works for a single computer. Every character needs to be setup for the hunting area your going to. You start it by having your following characters join your head character. The following characters need to be running bigshot with ;bigshot tail. Once that happens, have the leader of the group do ;Bigshot head. They will then procede to hunt in the area you have setup.&lt;br /&gt;
* ;bigshot display - Shows all your current settings.&lt;br /&gt;
* ;bigshot reset - Resets all your targetable and untargetable lists. Useful if you find bigshot won&#039;t targets something it should.&lt;br /&gt;
* ;bigshot ranger or ;bigshot companion - Resets ranger companion setting so you can set it again. Used when you change your companion.&lt;br /&gt;
* ;bigshot profile save &amp;lt;name here&amp;gt; - Saves a profile in YAML format in your character&#039;s profile folder. Also accessible via the Profiles tab in the setup menu.&lt;br /&gt;
* ;bigshot profile load &amp;lt;name here&amp;gt; - Loads a profile from your character&#039;s profile folder. Also accessible via the Profiles tab in the setup menu. &lt;br /&gt;
* ;bigshot single  - When used solo, will execute a single hunting routine, return to your resting location and then exit&lt;br /&gt;
* ;bigshot &amp;lt;options&amp;gt; &amp;lt;creature&amp;gt; - example: ;bigshot single giant rat - Will activate ranger tracking of a creature. Anything input besides the above commands will default to &amp;quot;track &amp;lt;input&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==The Profile Tab==&lt;br /&gt;
* Load Profile - will load an existing profile. Nothing will be available if no previous profiles are saved&lt;br /&gt;
* Current Profile - shows the existing profile if a new one is loaded. &lt;br /&gt;
* Save profile - Valid profile information for future ebounty script support&lt;br /&gt;
  Save Current Settings - tell Bigshot what you want your profile to be named. Any name will work here. Once a profile is saved, will show up in the Load Profile menu. &lt;br /&gt;
&lt;br /&gt;
==The Resting Tab==&lt;br /&gt;
Short and sweet, here is where we setup our resting routines. During REST mode, Bigshot uses the EXP command and checks your mind, hit points, wound status, mana and spirit. Once all of these values are at the specified Should_hunt? settings, Bigshot leaves REST mode and begins a HUNT.&lt;br /&gt;
&lt;br /&gt;
* room id: - This is the room that Bigshot will return to for resting. Use Room Numbers from Map/Go2. Support both LichIDs and SimuIDs with a u, for example, 228 for Town Square Central or u7120.&lt;br /&gt;
* pre-rest commands: - These commands run before entering REST mode. An example routine is: &#039;shea, wear shield, sit, stance offensive, rest&#039;. This will sheath your weapon, wear your shield, sit, enter offensives stance and use the REST verb.&lt;br /&gt;
* active resting scripts: - Active resting scripts are scripts that will be run upon entering REST mode. These scripts should be things that you do after a hunt: get healed, empty your bags, spell up. An example list is: &#039;eloot sell, waggle, eherbs&#039;. This will use eloot to sell according to the options set with eloot. After selling, it will use Waggle to spell you up according to however Waggle is setup. Finally, eherbs will check your PACK and use herbs stored there to heal whatever wounds you have.&lt;br /&gt;
* Fog Option: - Uses [[Spirit Guide (130)]], Voln [[Symbol of Return]], [[Traveler&#039;s Song (1020)]], [[Sigil of Escape]], [[Familiar Gate (930)]] or Custom when heading back to rest. Setting it to None does nothing. Setting it to 130 will cause it to use 130 first then if that fails symbol of return. Symbol of return will use that first, then 130 if that fails. Setting to Traveler&#039;s Song will attempt once and continue. Setting to Familiar Gate will attempt to summon a portal once and walk through it. Will perform a mana pulse if not enough mana is detected. Custom option allows for comma separated list of commands to perform.&lt;br /&gt;
* Should Rest? &lt;br /&gt;
Bigshot evaluates these conditions and, when they are met, will go to your resting room set on the Resting tab and execute any resting scripts you have set.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Rests when your mind has reached this threshold. Generally, set this to 100 to rest when fried.&lt;br /&gt;
* &#039;&#039;&#039;and extra kills &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of extra monsters to kill after reaching your `when percent mind` threshold and after LTE boosts used&lt;br /&gt;
* &#039;&#039;&#039;and used lte boosts &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of LTE boosts it will attempt to use after reaching your `when percent mind` threshold&lt;br /&gt;
* &#039;&#039;&#039;or percentmana &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your percentage of mana is at or below this threshold.&lt;br /&gt;
** This can be set to 0, but leaving a bit in the tank can be good if you have to use 406 (Unlock) to open the WL Graveyard gate. 11/17/24: If you run into an error that calls to an &amp;quot;OOM&amp;quot; message, try setting this to 1.&lt;br /&gt;
* &#039;&#039;&#039;or percentencumbrance &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when you have reached a given level of encumbrance.&lt;br /&gt;
* &#039;&#039;&#039;or wounded eval&#039;&#039;&#039;&lt;br /&gt;
** Allows you to set an evaluation phrase to determine if you are too wounded to continue hunting. Wound evaluations can send you home on nearly any wounded condition of your choice: bleeding, level 2 wound, can&#039;t cast, too many scars etc.&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 not cast anymore (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 &amp;gt; 0 &amp;amp;&amp;amp; [Wounds.rightArm, Wounds.rightHand, Scars.leftArm, Scars.leftHand].max &amp;gt; 0)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The following can be added to one of the above wound evaluations 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 is at or below this threshold.&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 is at or below this threshold.&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;
&lt;br /&gt;
==The Hunting Tab==&lt;br /&gt;
This is where you will tell bigshot when to hunt, any commands or society abilities to use prior to hunting, and where on the map you want to hunt. &lt;br /&gt;
===The Hunting Map===&lt;br /&gt;
Your hunting map is a series of Boundaries - rooms that Bigshot will not enter - and a Start room - the first room that Bigshot moves to when a hunt starts. These function very similarly to the boundaries in the ;Wander script, but are stored in Bigshot&#039;s configuration files and not in a character cache as with ;Wander. Here you also configure when to hunt&lt;br /&gt;
* starting room ID: - This is the first room that Bigshot goes to when hunting. You may set this to any room within the Boundaries that you set with the second option.&lt;br /&gt;
* boundary rooms: - Boundary rooms are walls. Bigshot will not 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;
The proper syntax for boundary rooms are separated by commas&lt;br /&gt;
Some popular Rift boundaries as an example&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;
For Maaghara boundaries, you can use &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
9734&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Confluence boundaries:&amp;lt;pre&amp;gt;&lt;br /&gt;
2300, 3519, 228, 188, 1932, 10855, 3668, 1438, 1005 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Imagine a hunting area that is a six room square. To enter this square, one must GO DOORWAY from room A. You would set the room outside of the square - ie room A - before you GO DOORWAY, as a boundary. Then, you would set room B to the Starting Room. From there, Bigshot will move to room B and then wander around inside the Boundary - ie the square hunting area - until it your &#039;&#039;&#039;Should_rest?&#039;&#039;&#039; conditions are met.&lt;br /&gt;
&lt;br /&gt;
* Wait before wandering to another room: - Time you wait before leaving a room to find some creatures. Default is 0.3 seconds. Set to 0 for fastest (spammy) movement. &lt;br /&gt;
&lt;br /&gt;
* attack stance: - Specify what stance you want to attack from. Bigshot will remain in Stance Defensive until an attack command is issued, whereupon it will stance to your Attack Stance and execute your Attacking routine. Bigshot recognizes all stances from the game, Offensive -&amp;gt;-&amp;gt; Defensive.&lt;br /&gt;
* pre-hunt commands: - These commands will be executed before Bigshot uses Go2 to travel to your hunt&#039;s Starting Room. As an example: &#039;gird, stance defensive&#039;. This will ensure that you have readied your weapon and are in Defensive stance before traveling. Set short lived combat spells like 1605 (Arm of the Arkati) to be cast in this line.&lt;br /&gt;
* active hunting scripts: - Active hunting scripts are scripts that will run while Bigshot is in Hunt mode. Many of these scripts have been made obsolete by the next option. Clever scripters have written some nice scripts that will keep certain spells up, execute cmans based on conditions etc. If you need a complex action to run while Hunting that Bigshot does not have the capacity for, an active hunting script may be called for.&lt;br /&gt;
* society abilities/spells/cmans: - Bigshot can be asked to keep certain abilities up at all times during a hunt. Hovering your mouse over this field will display a list of cmans and society abilities specified by their numerical designations. Spells may also be added here. Separate all values by commas. For example, entering &#039;506&#039; will keep the spell Haste up during Hunts, casting whenever it has worn off.&lt;br /&gt;
* loot script - Bigshot will call a loot script to loot your kills for you. eloot is commonly scripts used here. Be sure to use the SETUP command on whatever loot script you use, as if it is not configured properly, Bigshot will likely error.&lt;br /&gt;
* wracking spirit &amp;gt;= - Setting a value here will WRACK for mana if your spirit is greater than or equal to the value specified. Setting 6, for example, will WRACK down to 5 spirit. This will ONLY function if you have the &#039;Use sign of wracking/sigil of power&#039; box checked.&lt;br /&gt;
* Use sign of wracking/sigil of power - checkbox to enable the use of wracking&lt;br /&gt;
* Priority hunt - checkbox to enable the use of the priority system for hunting. This allows you to change targets based on the order listed in valid targets/quickhunt targets. For example, your hunting thunder trolls, wind witches, and puma. Your valid target order is wind witch, thunder troll, puma. Your currently attacking a puma, when a thunder troll walks in. You will switch to the attacking the thunder troll because its before the puma in the valid targets list. After killing the thunder troll, you go back to the puma, only to have a wind witch walk into your room. You will again switch to the wind witch because its in front of the puma. Hope you get the idea. When using the ;bigshot quick option, it will base the order of targets by your quickhunt targets first, then the order of the targets in the room that don&#039;t match any of your quickhunt targets. Example, bandits are in your quickhunt targets. You type ;bigshot quick when you get ambushed in the room. Currently in the room is a large ogre and three bandits. The order of targets will be the bandits first, then the large ogre.&lt;br /&gt;
* Delay looting - delays looting of creatures in a room.&lt;br /&gt;
* Pull players to feet - attempt to pull players to their feet upon passing them in a room&lt;br /&gt;
* Stop for dead players - checkbox will pause bigshot if you encounter a dead player&lt;br /&gt;
* Sneaky Sneaky - sneak around while out in the hunting area&lt;br /&gt;
&lt;br /&gt;
===Should hunt ===&lt;br /&gt;
Bigshot evaluates the conditions set on this tab to determine if you are ready to hunt or not.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Setting this to 51 will rest until Cleared. Setting at 65 will wait until Muddled.&lt;br /&gt;
* &#039;&#039;&#039;and percent mana&amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Determines the percent total of your maximum mana that must be present before hunting&lt;br /&gt;
** Setting below 50 will result in quick, uneventful hunts if you cast much. Generally, this is set at 95 or higher.&lt;br /&gt;
* &#039;&#039;&#039;and CHECKspirit &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Bigshot will check to see that your current Spirit value is higher than what is listed here.&lt;br /&gt;
** Make sure that you have this set high enough that Bigshot won&#039;t hunt immediately after DEPARTing if you have Depart / re-run Bigshot checked on the General tab.&lt;br /&gt;
&lt;br /&gt;
==The Attacking Tab==&lt;br /&gt;
* Ambush aiming locations (head, etc): - Allows you to specify what order you aim for ambush. Default is head, right leg, left leg, chest.&lt;br /&gt;
* Archery aiming locations (head, etc): - Allows you to specify what order you aim for archery. Loops through your aiming locations once you hit the area your aiming at.&lt;br /&gt;
* flee if enemy count is &amp;gt; - Flees the room if the total number of enemies in the room exceeds the value. Set this to 1 if you want to engage single targets.&lt;br /&gt;
* ...but don&#039;t count these: - Bigshot will ignore monsters specified in this line when eveluating if it should flee based on how many monsters are in the room. Useful for when you are hunting in an area with extremely low level monsters mixed in with your targets.&lt;br /&gt;
* ...and always flee from: - Bigshot will always flee from the specified monster as soon as possible. Extremely useful if your hunting area has higher level and/or extremely dangerous monsters mixed in with your intented target(s).&lt;br /&gt;
* flee from environment message: - Will flee whenever anything you put in here gets sent from the game. (XML regex matching)&lt;br /&gt;
* Wait before wandering to another room: - time you spend before moving to a new room. Default is 0.3 seconds. You can set it to 0 to move instantly. Tends to be spammy for anyone in the same hunting area.&lt;br /&gt;
* Approach lone targets only - Forces Bigshot to only begin combats against creatures that are alone.&lt;br /&gt;
* Bless weapon? - Performs a Consecrate (1604), then a Cleric Bless or Voln Bless on whatever weapon loses its bless during hunting. If you can&#039;t bless your weapon while hunting will return you to your rest area and quit the script.&lt;br /&gt;
* Flee from boon - Enabling this check box will force Bigshot to flee from all boon/gifted/boss creatures (available in [https://github.com/elanthia-online/scripts/pull/449/commits/afade49e25dd6042c30b6d62fec4d65376667f80 v4.3.0])&lt;br /&gt;
* Activate weapon reactions - Will initiate reactive strikes when the opportunity presents itself&lt;br /&gt;
* Flee from clouds - Enabling this check box will force Bigshot to flee from Cloud spells such as 125(Call Lightning with its Ominous Cloud), 1704 (Stun Cloud) and 1713 (Death Cloud)&lt;br /&gt;
* Flee from vines - Enabling this check box will force Bigshot to flee from Vine spell such as 610(Tangle Weed)&lt;br /&gt;
* Flee from webs - Enabling this check box will force Bigshot to flee from webs.&lt;br /&gt;
* Flee from voids- Enabling this check box will force Bigshot to flee from voids.&lt;br /&gt;
&lt;br /&gt;
==Commands Tab==&lt;br /&gt;
The true guts of Bigshot, this is where you specify your Attack Routine. &lt;br /&gt;
* hunting commands - These are the commands that Bigshot will evaluate (ie execute) when it is in the room with a valid target (one that you specified in your Hunting section. These commands are separated by a comma. Bigshot recognizes most hunting verbs and, failing that, will use an fput command (a direct entry method) and just execute the commands directly as written. The following are a list of usable hunting commands:&lt;br /&gt;
** kill - Attacks using the KILL verb.&lt;br /&gt;
** incant &amp;lt;spell number&amp;gt; - Casts the specified spell with the INCANT verb. This will automatically stance into offensive for bolt and other stance-sensitive spells. A caster may CHANNEL the spell using [[INCANT (verb)]] to INCANT SET CHANNEL &amp;lt;spell&amp;gt; (a standard GSIV verb, not part of Lich). Alternatively, a caster may CHANNEL spells by using the SET verb (a standard GSIV verb, not part of Lich) to SET ChannelIncant ON. This will CHANNEL an INCANTed spell if the caster is in a stance higher than neutral.&lt;br /&gt;
** channel &amp;lt;spell number&amp;gt; - Channels the specified spell at the target. This requires a stance higher than neutral to have any effect.&lt;br /&gt;
** &amp;lt;Spell Number&amp;gt; - Casts the specified spell with the PREPARE and CAST verbs.&lt;br /&gt;
** wand - As in, &amp;lt;CODE&amp;gt;wand target&amp;lt;/CODE&amp;gt;. Gets a wand from the specified storage and WAVES it at the target.&lt;br /&gt;
** wandolier - Similiar to wand, but uses wandoliers. Gets a wand from the fresh wand container and waves it, rubs container if no wands found. Default waves in offensive. Can change via &amp;lt;CODE&amp;gt;wandolier defensive&amp;lt;/CODE&amp;gt; to wave in a different stance&lt;br /&gt;
** fire - As in, &amp;lt;CODE&amp;gt;fire target&amp;lt;/CODE&amp;gt;. Gets ammunition from the specified storage and FIREs it at the target. Will attempt to aim based on settings on hunting tab.&lt;br /&gt;
*** The above listed commands should be used with the (x#) syntax. For example, &amp;lt;CODE&amp;gt;kill target (x3)&amp;lt;/CODE&amp;gt; will swing three times at the target before re-evaluating the attack routine. If the (xx) variable is used, Bigshot will continue using the specified attack command up to five (5) times. Example: &amp;lt;CODE&amp;gt;903 target (xx)&amp;lt;/CODE&amp;gt; will continue to cast 903 at the target (5) times before restarting the attack routine or until it is dead. If you want to ensure the routine does not restart, using a sufficiently large number should suffice (e.g. x100). Bigshot may also be set to only execute a command based on how much mana or stamina you currently have. For mana, use the (m##) command. &amp;lt;CODE&amp;gt;920 target (m50)&amp;lt;/CODE&amp;gt; will only cast 920 (Implosion) if you have 50 or more mana. Similarly, &amp;lt;CODE&amp;gt;cman feint target (s10)&amp;lt;/CODE&amp;gt; will only execute the combat maneuver Feint on the target if you have 10 or more stamina. The command syntax is used as a separate call and wrapped in separate parenthesis, as in (m50 s20)(x2). &lt;br /&gt;
** aim &amp;lt;location&amp;gt; - Aims at the specified location.&lt;br /&gt;
** ambush - Uses the AMBUSH verb to attack. Will aim based on settings in Hunting tab. Also will aim dynamically, &amp;quot;Ambush head&amp;quot; would aim at the head, overwriting any settings or defaults for that attack.&lt;br /&gt;
** wait &amp;lt;time&amp;gt; - Bigshot may Stance Dance by using the WAIT command. Bigshot will go into and stay in Stance Defensive until the specified time is over OR the target swings / casts, whereupon it will evaluate the rest of the Attack Routine, changing into your specified attack stance.&lt;br /&gt;
** mstrike - As in, &amp;lt;CODE&amp;gt;mstrike target&amp;lt;/CODE&amp;gt;. Mstrike depending on mstrike cooldown and stamina. Has its own option page. Can also be used with UAC, &amp;quot;mstrike punch&amp;quot;.&lt;br /&gt;
** berserk - Executes the BERSERK verb and stands by until it fades.&lt;br /&gt;
** throw - Empties hands, Attempts throw, get the stuff you emptied.&lt;br /&gt;
** weed/kweed - Casts 610 at target. Using &amp;quot;kweed&amp;quot; as your command will force evoke 610 ensuring the damage version&lt;br /&gt;
** curse &amp;lt;curse&amp;gt; - Clumsy/Weakness/Darkness/Itch/Hex/Pox/Nightmare/Star - will prep 715 and use curse command as defined. Will skip &amp;quot;curse star&amp;quot; if buff is up.&lt;br /&gt;
** unarmed - Uses the Bigshot UAC routine. Routine will attack with appropriate attacks to rank up and use mstrike based on mstrike options page. Usage &amp;quot;unarmed (punch|jab|kick|grapple)&amp;quot;.&lt;br /&gt;
** smite - Performs an [[Order of Voln]] [[Kai&#039;s_Smite|Smite]] on target until successful.&lt;br /&gt;
** leech - Performs a [[Mana Leech (516)]] on target if cooldown is under 15 minutes.&lt;br /&gt;
** script &amp;lt;script name&amp;gt; - Executes a specified custom attack script.&lt;br /&gt;
** hide - Continue hiding until you&#039;re actually hidden. Or it&#039;s tired of trying.&lt;br /&gt;
** sleep - As in, &amp;lt;CODE&amp;gt;sleep 10&amp;lt;/CODE&amp;gt;. Pause bigshot. Useful with fried hunting commands such as: &amp;lt;CODE&amp;gt;410, sleep 15&amp;lt;/CODE&amp;gt; will E-wave then wait 15 seconds and e-wave again if there are valid targets.&lt;br /&gt;
** stance - As in, &amp;lt;CODE&amp;gt;stance defense&amp;lt;/CODE&amp;gt;. Change stances.&lt;br /&gt;
** nudgeweapons - Move all weapons on the ground to an adjacent room. Useful for casting Implosion (720).&lt;br /&gt;
** force &amp;lt;cmd&amp;gt; until &amp;lt;endroll&amp;gt; - As in, &amp;lt;CODE&amp;gt;force incant 1002 until 101&amp;lt;/CODE&amp;gt;. Continue issuing a command until a desired endroll. Only works for normal looking swings/spells/cmans.&lt;br /&gt;
** eachtarget  &amp;lt;cmd&amp;gt; - issues command to each valid target in room&lt;br /&gt;
** efury &amp;lt;fire|cold&amp;gt; - casts Earthern Fury (917) on the target and waits for DOT to end or 12secs to pass&lt;br /&gt;
** caststop &amp;lt;spell&amp;gt; - casts the spell and then immediately stops it after casting&lt;br /&gt;
** wield &amp;lt;noun&amp;gt; &amp;lt;left|right&amp;gt; - weilds new noun and stores the hand given to put new noun item in&lt;br /&gt;
** store - store left, right or both, but only if something is in those hands&lt;br /&gt;
** tether &amp;lt;recast&amp;gt; - casts 706 with built-in logic to wait, can also do recast to auto-recast 706 on creature death and DOTs transfer&lt;br /&gt;
** unravel &amp;lt;spell&amp;gt; - casts 1013 Song of Unravelling with an optional spell to target against creature&lt;br /&gt;
* hunting commands (b) - Attack routines set up for a monster flagged (b) in the Hunting section.&lt;br /&gt;
* hunting commands (c) - Attack routines set up for a monster flagged (c) in the Hunting section.&lt;br /&gt;
* hunting commands (d) - Attack routines set up for a monster flagged (d) in the Hunting section.&lt;br /&gt;
* hunting commands (e) - Attack routines set up for a monster flagged (e) in the Hunting section.&lt;br /&gt;
* hunting commands (f) - Attack routines set up for a monster flagged (f) in the Hunting section.&lt;br /&gt;
* hunting commands (g) - Attack routines set up for a monster flagged (g) in the Hunting section.&lt;br /&gt;
* hunting commands (h) - Attack routines set up for a monster flagged (h) in the Hunting section.&lt;br /&gt;
* hunting commands (i) - Attack routines set up for a monster flagged (i) in the Hunting section.&lt;br /&gt;
* hunting commands (j) - Attack routines set up for a monster flagged (j) in the Hunting section.&lt;br /&gt;
* fried hunting commands - Commands executed specifically when fried. Useful when hunting in a group.&lt;br /&gt;
* quick hunting commands - Commands executed specifically when using ;bigshot quick.&lt;br /&gt;
* valid targets: - These are the monsters you are hunting. Bigshot will most easily recognize monsters based on the NOUNs or their name. For example, &#039;a large ogre&#039; can be targeted with just &#039;ogre&#039;. Using longer descriptors can be troublesome, and you should copy a monster&#039;s name directly from the game front end to avoid troubles. You can use multiple entries separated by commas. For example: &#039;manticore, thrak&#039; will kill manticores and thraks.&lt;br /&gt;
* quickhunt targets: - These are monsters you have designated attacks for when your using the ;bigshot quick option for hunting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PSM3 Integration===&lt;br /&gt;
* hunting commands - Bigshot now supports weapon/shield skills and warcries. Assaults will wait until they finish or are interuppted. These commands are separated by a comma. The following are a list of usable hunting commands:&lt;br /&gt;
** barrage, flurry, fury, gthrusts, pummel, thrash - Assaults will wait until attacks are completed/interrupted.&lt;br /&gt;
** fury - You can specify the default attack fury will use. Will jab if not specified: fury punch or fury kick&lt;br /&gt;
** charge, cripple, dizzyingswing, pindown, twinhammer  - Setups will execute on cooldown so make sure to check for prone/stun/root/ect.&lt;br /&gt;
** clash, cyclone, pulverize, volley, wblade, whirlwind - AOE will execute on cooldown, limit with check volley(mob3).&lt;br /&gt;
** shout - Will perform warcry shout. Must use a command check or it will shout every loop: shout(!shout),shout(buff10 s25) &lt;br /&gt;
** yowlp - Will perform warcry yowlp. Must use a command check or it will yowlp every loop: yowlp(!yowlp), yowlp(buff10 s10)&lt;br /&gt;
** holler - Will perform warcry holler every loop taunting all the mobs. holler(s60)&lt;br /&gt;
** bellow, growl, cry - Offensive warcries can be used with target for single target or all for aoe.&lt;br /&gt;
** shield bash, shield charge, shield pin, shield push, shield strike, shield trample, shield throw&lt;br /&gt;
** surge - Will keep surge of strength up. surge or surge(surge) will cast even on cooldown, surge(!surge) will only cast when not on cooldown.&lt;br /&gt;
** bearhug, bullrush, coupdegrace, cpress, cutthroat, dirtkick, 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&lt;br /&gt;
** dislodge &amp;lt;location&amp;gt; - Dislodge from location specified: dislodge eye neck&lt;br /&gt;
** stomp - Will perform a stomp attack. Channels 909 if not active. Can also add 909 to society abilities to keep it active.&lt;br /&gt;
** dhurl - Hurl your weapon and recovers it. Works with weapon bonding auto return and the recover verb.&lt;br /&gt;
** assume &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt; - Will cycle between two aspects, or evoke a single aspect. Also works in society ability box. &amp;quot;650 &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt;&amp;quot;&lt;br /&gt;
** briar &amp;lt;weapon&amp;gt; - activate the AS buff on briar weapons. Tracks weapon charge and uses on cooldown.&lt;br /&gt;
** stance perfection - Put 10, 20, 30, ect in your attack stance box to take advantage of stance perfection.&lt;br /&gt;
&lt;br /&gt;
You may need to &#039;&#039;&#039;SKILLS FULL/CMAN INFO/WEAPON INFO/SHIELD INFO&#039;&#039;&#039; if you&#039;ve recently changed training or skills are being outright skipped.&lt;br /&gt;
&lt;br /&gt;
===Additional Options===&lt;br /&gt;
*haste or 506 - Placing this in front of any command will cause you to cast 506 before doing that command. It only casts if it isn&#039;t currently up or has less than 3 seconds left on its timer.&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 10, haste kill (x3)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
*slayer or 240 - Placing this in front of any command will cause you to cast 240 before doing that command. It will not recast if it&#039;s 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;
&lt;br /&gt;
Commands need to use the following format:&lt;br /&gt;
&amp;lt;CODE&amp;gt;COMMAND (CHECKS)(REPETITIONS)&amp;lt;/CODE&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So &amp;lt;CODE&amp;gt;hamstring (mob1 prone)(x2)&amp;lt;/CODE&amp;gt; Any (x#) needs to be separate. Also (xx) is not unlimited and is just short for (x5).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional checks you can add to any command to customize the attack to your desired scenario.&lt;br /&gt;
Each check below can be used by itself or with any other check. Put them inside () with a space between each additional check. Example - Kill(m20 s5 e20)&lt;br /&gt;
&amp;lt;p&amp;gt;Each of these also has an inverse or opposite.&lt;br /&gt;
Just put a ! in front of the command. Example - Kill(!m20 !s5 !e20)&lt;br /&gt;
*s# - Checks that you have the required stamina&lt;br /&gt;
*m# - Checks that you have the required mana&lt;br /&gt;
*h# - Checks that you have the required health but based on a percentage instead of fixed number&lt;br /&gt;
*v# - Checks that you have the required spirit&lt;br /&gt;
*e# - Checks that your encumbrance percentage is at or below&lt;br /&gt;
*tier# - Checks for your current UAC tier (1,2,3). Performs command if UAC Tier is equal or greater.&lt;br /&gt;
*mob# - Checks for the number of npcs in room. Performs command if npcs in room is equal to or more than number specified. Only use for 2 or more creatures in the room&lt;br /&gt;
&amp;lt;PRE&amp;gt;To further clarify the mob# implimentation&lt;br /&gt;
1 mob, mob2, 1 IS less than 2, attack should not proceed.&lt;br /&gt;
2 mob, 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 mob, !mob2, 2 IS NOT more than 2, attack can proceed&lt;br /&gt;
3 mob, !mob2, 3 IS more than 2, attack should not proceed&amp;lt;/PRE&amp;gt;&lt;br /&gt;
*once - Performs the command once on a specified target, resets on room change&lt;br /&gt;
*room - Performs the command once in a room only, resets on room change&lt;br /&gt;
*prone - Checks to see if target is not sleeping|webbed|stunned|kneeling|sitting|lying down|prone|frozen|held in place. Performs command if target status is not one of the previous.&lt;br /&gt;
*frozen - Same usage as prone. Broke out of prone check for archers against non-corporeal creatures that deflect ranged. Corporeal creatures can be stunned and will break this check.&lt;br /&gt;
*undead - Checks to see if target is undead. Performed command if target is undead.&lt;br /&gt;
*flying - Checks to see if target is flying. Performed command if target is flying.&lt;br /&gt;
*rooted - Checks to see if the target is rooted. Performed command if target is rooted.&lt;br /&gt;
*hidden - Checks to see if you&#039;re currently hidden.&lt;br /&gt;
*poison - Checks to see if you&#039;re currently poisoned.&lt;br /&gt;
*disease - Checks to see if you&#039;re currently diseased.&lt;br /&gt;
*noncorporeal - Checks to see if NPC is [[noncorporeal|non-corporeal]] undead&lt;br /&gt;
*pcs - Checks to see if there are any PCS in room that are also not in your group&lt;br /&gt;
*outside - Checks to see if the room you are in is outside&lt;br /&gt;
*barrage - Checks for the Enhanced Dexterity buff from Barrage.&lt;br /&gt;
*fury - Checks for the Enhanced Constitution buff from Fury.&lt;br /&gt;
*flurry - Checks for the Slashing Strikes buff from Flurry.&lt;br /&gt;
*pummel - Checks for the Concussive Blows buff from Pummel.&lt;br /&gt;
*thrash - Checks for the Forceful Blows buff from Thrash.&lt;br /&gt;
*vigor - Checks for the Tangleweed Vigor buff from Tangleweed.&lt;br /&gt;
*reflex - Checks for the Arcane Reflex buff from Nature&#039;s Touch.&lt;br /&gt;
*tailwind - Checks for Tailwind buff from Breeze. (tailwind) (!tailwind)&lt;br /&gt;
*shout - Checks for the Empowered buff from Shout.&lt;br /&gt;
*yowlp - Checks for the Yertie&#039;s Yowlp buff from Yowlp.&lt;br /&gt;
*holler - Checks for the Horland&#039;s Holler buff from Holler.&lt;br /&gt;
*voidweaver - checks for the Voidweaver buff from Implosion(720)&lt;br /&gt;
*justice - Checks for charges of Swift Justice. (justice) do skill with charges (!justice) do skill with no charges&lt;br /&gt;
*buffXX - Fire ability when buff duration is &amp;lt;= XX. Supported for barrage,bearhug,fury,flurry,pummel,thrash,shout,yowlp&lt;br /&gt;
*tier# - Perform action if you are at the corresponding tier. (!tier3) don&#039;t do it if you are at tier3. (tier2) do it if you are tier2&lt;br /&gt;
*censer - Attempt to cast 320 before your command checking mana and cooldown. 309(censer), 335(censer mob3), attack(censer)&lt;br /&gt;
*ancient - Checks for grizzled/ancient creatures&lt;br /&gt;
*animate - Checks for if you have an animate present or not&lt;br /&gt;
**If command is a spell, will only cast censer if you have the mana for censer and the spell you intend.&lt;br /&gt;
**If command is not a spell, will only check you have enough mana for the censer.&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;
&lt;br /&gt;
Waits 10 seconds for the monster to swing or cast and then immediately counter attacks from the specified attack stance set in the Hunting tab. Swings a total of three times before going into Defensive stance and waiting 10 seconds 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;
&lt;br /&gt;
Waits 15 seconds before INCANTing 505 (Hand of Tonis), hopefully knocking down or stunning the target. Following this, Bigshot casts 903 (minor water) repeatedly 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;
&lt;br /&gt;
Casts 1615 (Divine Strike) at the target from Defensive stance, possibly forcing the target to kneel. Then, uses the kill verb to swing continuously until the target is dead or 100 times..whichever happens 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;
&lt;br /&gt;
Uses the Combat Maneuver FEINT against the target until a successful end roll and then hits the target twice before trying to 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;
&lt;br /&gt;
Hides from Defensive stance and then ambushes that the target&#039;s left leg. Once round-time is up, repeats (ie HIDES again from defensive stance).&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;
&lt;br /&gt;
Casts 720 (Implosion) at the target if your character has 50 or more mana. Then, INCANTs 708 (Limb Disruption) at the target, using the default AIM location (if set). Finally, casts 702 (Mana Disruption) at the target up to (5) times or until it is 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;
&lt;br /&gt;
Prepares 708 (Limb Disruption) and CASTs it at the target&#039;s left leg. The second prepares the same spell and then CHANNELs it at the target&#039;s left leg. It will then cast 719 (Dark Catalyst) if there is at least 50 mana, and will only cast one time. The last will incant 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;
&lt;br /&gt;
Waits 30 seconds or until your target attacks. Begins attacked with 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;
&lt;br /&gt;
Will shield charge the target if your character has 15 or more stamina and the target is NOT prone.  &lt;br /&gt;
&lt;br /&gt;
The second command will then ambush based on the settings in the &amp;quot;Attacking&amp;quot; Tab - in this case a custom order of head, neck, right leg, back was given so Bigshot will first try to Ambush the head unless the head is too injured or the head cannot be reached followed by the neck then right leg then back.  &lt;br /&gt;
&lt;br /&gt;
Bigshot will then focus mstrike the target unless the creature count is equal to or greater than the setting in the MSTRIKE Tab, in which case it will open mstrike instead.  If you put &amp;quot;mstrike target&amp;quot;, Bigshot will always focused mstrike regardless of the settings in the MSTRIKE Tab.  Alternatively, you can set the &amp;quot;Unfocused MSTRIKE when creatures equal or greater&amp;quot; to a large number, to always focus your mstrikes (or set it to 1 to always open mstrike).&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;
&lt;br /&gt;
Will aoe bellow, then whirling blade if there are at least 3 targets. The third command will flurry if you don&#039;t have the slashing strikes buff. Finally it will attack and continue to attack until one of the previous attacks become available.&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;
&lt;br /&gt;
Will open up with a taunt from holler, then shield throw if there are at least 3 targets. Third command will flurry on cooldown. Fourth will thrash on cooldown. Finally we will attack if everything else ends up on cooldown or we run out of stamina.&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;
&lt;br /&gt;
If there is more than one mob, it will hide with shroud and divert one of the targets. Third command will ambush if hidden. Fourth will flurry on cooldown followed up with attack to finish anything off.&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;
&lt;br /&gt;
Will cast surge when not on cooldown, and bullrush to bust up and apply vulnerable, then bearhug which is faster if target is vulnerable. Third we will pummel on cooldown and attack when nothing else is available.&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;
&lt;br /&gt;
Will keep surge active, casting during cooldown for 60 stamina. Next it will shout and refresh shout when there is less than 11 seconds left on the duration. Third it will shield strike followed up with a pummel once every minute. It will finish off 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;
&lt;br /&gt;
Will open up with pin down if there are at least 4 targets, then will volley if there are at least 2 targets. The third command will cast tangleweed if you do not have the tangleweed vigor buff or the arcane reflex buff. Our fourth command will barrage unless we have the enhanced dexterity buff from barage. Fifth we will cast a 1 second spike thorn if we do have 16 mana and do have the arcane reflex buff. Finally we will fire until one of our other commands become available.&lt;br /&gt;
&lt;br /&gt;
===Hunting Target Examples===&lt;br /&gt;
All of the examples below will work for both the &#039;valid targets&#039; and &#039;quickhunt targets&#039; entries.&lt;br /&gt;
* A hunting option only using the default command (a) for each creature in an area:&lt;br /&gt;
&amp;lt;pre&amp;gt;crazed zombie, niirsha, sacristan spirit&amp;lt;/pre&amp;gt;&lt;br /&gt;
* A hunting option using custom hunt commands depending on the creature.  In this case it will use command (a) for a [[crazed zombie]] and a [[sacristan spirit]], while using (b) for a [[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;
* A hunting option that will include the [[:Category:Boss creatures|Boss Creatures]] variations as valid targets:&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;
* Some additional advanced options for identifying valid targets:&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;
&lt;br /&gt;
To attack everything in the room (?:.*)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc Tab==&lt;br /&gt;
Various specialized config options&lt;br /&gt;
&lt;br /&gt;
===UAC Options===&lt;br /&gt;
The various options for configuring how UAC works:&lt;br /&gt;
* &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039;&lt;br /&gt;
** The attack used when you have reached excellent in the UAC tier&lt;br /&gt;
** Options are jab, punch, grapple, or kick&lt;br /&gt;
* &#039;&#039;&#039;Aim at location (head, etc)&#039;&#039;&#039;&lt;br /&gt;
** Used for aimed UAC Combat, which requires ambush training to be effective&lt;br /&gt;
** Leave blank when you don&#039;t want to aim.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE when creatures equal or greater&#039;&#039;&#039;&lt;br /&gt;
** Determines how many creatures must be present before using MSTRIKE&lt;br /&gt;
* &#039;&#039;&#039;Use Voln SMITE?&#039;&#039;&#039;&lt;br /&gt;
** Will perform a Voln SMITE on [[Non-corporeal]] undead&lt;br /&gt;
&lt;br /&gt;
Frequently, people have trouble setting up Bigshot to work with Unarmed Combat. Bigshot only requires minimal configuration to ensure UAC works well.&lt;br /&gt;
#UAC tab: Input your &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039; (jab, punch, grapple, or kick)&lt;br /&gt;
#Commands tab: Input your &#039;&#039;&#039;hunting commands(a)&#039;&#039;&#039; option as &#039;&#039;&#039;unarmed jab&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Important notes to keep in mind on how UAC works in Bigshot:&lt;br /&gt;
* The hunting option &#039;&#039;&#039;unarmed jab&#039;&#039;&#039; can be replaced by any UAC attack type (e.g. &#039;&#039;&#039;unarmed punch&#039;&#039;&#039;)&lt;br /&gt;
* UAC follow up strikes will be selected over the base or tier 3 attack&lt;br /&gt;
* Tier 3 attacks will be used only when positioning is excellent&lt;br /&gt;
&lt;br /&gt;
There is almost no reason to ever use anything other than &#039;&#039;&#039;unarmed jab&#039;&#039; as the hunting command, and either &#039;&#039;&#039;grapple&#039;&#039;&#039; or &#039;&#039;&#039;kick&#039;&#039;&#039; as the Tier 3 attack.&lt;br /&gt;
&lt;br /&gt;
===MSTRIKE Options===&lt;br /&gt;
MSTRIKE attack now has options for when it should be used.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown stamina requirement&#039;&#039;&#039;&lt;br /&gt;
** Allows you to specify how much stamina you want before it will MSTRIKE during the MSTRIKE Cooldown&lt;br /&gt;
** Be careful when setting this too low as it can pop your muscles&lt;br /&gt;
** Leave blank for it to use your max stamina.&lt;br /&gt;
* &#039;&#039;&#039;QUICKSTRIKE stamina requirement&#039;&#039;&#039;&lt;br /&gt;
** Like above but instead for using QUICKSTRIKE during the MSTRIKE routine.&lt;br /&gt;
* &#039;&#039;&#039;Unfocused MSTRIKE when creatures equal or greater&#039;&#039;&#039;&lt;br /&gt;
** Number of creatures in room before you do an unfocused mstrike. Default is 2.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown&#039;&#039;&#039;&lt;br /&gt;
**Toggle for MSTRIKEing during its cooldown period&lt;br /&gt;
* &#039;&#039;&#039;Use QUICKSTRIKE for MSTRIKE&#039;&#039;&#039;&lt;br /&gt;
** Toggle for using QUICKSTRIKE when you MSTRIKE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ammo/Wands===&lt;br /&gt;
Here you find the settings to tell Bigshot where you keep all of your nifty wands and bolts and arrows. If your attack routine involves FIRE or WAND verbs, these fields must be set lest Bigshot hang up.&lt;br /&gt;
* find ammo in this container: - Leave BLANK if having Bigshot use FIRE without getting ammo out (Archery 2020 Update). Rather self explanatory, this field holds the location of your ammunition storage, be it a wand harness, a quiver or just your backpack.&lt;br /&gt;
* use this ammo type: - Leave BLANK to have Bigshot use FIRE without getting any ammo (Archery 2020 Update). Again, like specifying monsters, Bigshot is most sensative about the NOUNs that you use here. If you &lt;br /&gt;
* fresh wand container: - Bigshot looks in this container to find fesh wands to WAVE.&lt;br /&gt;
* dead wand container: - ...And then will deposit the used up wands in this container.&lt;br /&gt;
* use this wand type: - Here you specify which particular wand type you want to use. Bigshot will then pull only these kinds for WAVEing. Can have multiple types listed. Seperate each one with a comma. Example: &amp;quot;aquamarine wand, bloodwood wand, etc&amp;quot;&lt;br /&gt;
* Hide while waiting to pick up ammo - Checking this box will have Bigshot hide when gathering up your spent arrows and bolts.&lt;br /&gt;
* Use wands when out of mana - Bigshot will pull whatever wand you have specified in the use this wand type field and automatically stance to your attacking stance and WAVE your wand at valid targets until you are out of wands OR hit your resting conditions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MA Grouping===&lt;br /&gt;
* Enter the name of the looter in Head/Tail configuration&lt;br /&gt;
&lt;br /&gt;
==Monitoring Tab==&lt;br /&gt;
* Monitor interaction - Running scripts automates most functions and happens rather mechanically. Most anyone can tell if you are scripting just by watching you. Checking this box will pop up a window whenever Bigshot thinks that someone or something is trying to interact with you.&lt;br /&gt;
* Engage deadman&#039;s switch - Selecting this option will force Bigshot to quit Gemstone IV when your character is at less than 40% health, allowing you to log back on and assess the situation manually later.&lt;br /&gt;
* Depart/rerun if dead - Enabling this option will force a DEPART, causing your character to wake up in the Temple with low spirit. Following this, Bigshot will re-start, starting a fresh hunt. If you do not have a Check Spirit value set in your Should_hunt? tab, you will start hunting without recuperating lost stats.&lt;br /&gt;
* Quiet followers - Followers will wait until leader is done with both actions and resting scripts to begin using their own.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Debugging:===&lt;br /&gt;
&amp;lt;pre{{log2}}&amp;gt;&lt;br /&gt;
+---------------------------------------------------------------------------+&lt;br /&gt;
|                         Bigshot Debug Help v5.8.5                         |&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;
&amp;lt;/pre&amp;gt;&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=SimuCon_2025&amp;diff=237286</id>
		<title>SimuCon 2025</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=SimuCon_2025&amp;diff=237286"/>
		<updated>2025-04-23T15:01:30Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Attendee List */ alphabetized prime players, linked known player wiki profile pages, and corrected spacing&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;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!Day&lt;br /&gt;
!Time&lt;br /&gt;
!Activity &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Wednesday&amp;lt;br /&amp;gt;July 9th&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |00:00 PM&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Thursday&amp;lt;br /&amp;gt;July 10th&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |00:00 PM&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Friday&amp;lt;br /&amp;gt;July 11th&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |00:00 PM&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Saturday&amp;lt;br /&amp;gt;July 12th&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |00:00 PM&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Sunday&amp;lt;br /&amp;gt;July 13th&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: right&amp;quot; |00:00 PM&lt;br /&gt;
| Unknown&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!  There are several sessions scheduled, and everyone is allowed to claim one alteration but they MUST make it to one of these sessions.&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: TBD&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;
|00:00 PM&lt;br /&gt;
|unknown&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Friday, July 11th&#039;&#039;&#039;&lt;br /&gt;
|00:00 PM&lt;br /&gt;
|unknown&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Saturday, July 12th&#039;&#039;&#039;&lt;br /&gt;
|00:00 PM&lt;br /&gt;
|unknown&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Saturday, July 12th&#039;&#039;&#039;&lt;br /&gt;
|00:00 PM&lt;br /&gt;
|unknown&lt;br /&gt;
|}&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;
* [[Delindra (prime)|Delindra]]&lt;br /&gt;
* [[Dergoatean (prime)|Dergoatean]]&lt;br /&gt;
* Durakar&lt;br /&gt;
* [[Elgrim (prime)|Elgrim]]&lt;br /&gt;
* [[Fyg (prime)|Fyg]]&lt;br /&gt;
* Liras&lt;br /&gt;
* [[Maylan (prime)|Maylan]]&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;
* unknown&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;
* Ivry&lt;br /&gt;
* Mestys&lt;br /&gt;
* Nyxus&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.westportstl.com/tenant/drunken-fish/&lt;br /&gt;
|-&lt;br /&gt;
|Fuzzy&#039;s Taco Shop ||Baja Tacos||onsite||302 West Port Plaza, St. Louis, MO 63146|| https://www.westportstl.com/tenant/fuzzys-taco-shop/&lt;br /&gt;
|-&lt;br /&gt;
|Kobe Japanese Grill||Japanese/Hibachi||onsite||645 West Port Plaza, St. Louis, MO 63146||https://www.westportstl.com/tenant/kobe-steakhouse-of-japan/&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.westportstl.com/tenant/trainwreck-saloon/&lt;br /&gt;
|-&lt;br /&gt;
|Westport Social&lt;br /&gt;
|Bar/Games/Karaoke&lt;br /&gt;
|onsite&lt;br /&gt;
|910 West Port Plaza Dr. St. Louis, MO 63146&lt;br /&gt;
|https://www.westportstl.com/tenant/westport-social/&lt;br /&gt;
|-&lt;br /&gt;
|Jovick Brothers Deli&lt;br /&gt;
|Deli&lt;br /&gt;
|onsite&lt;br /&gt;
|318 West Port Plaza Dr. St. Louis, MO 63146&lt;br /&gt;
|https://www.westportstl.com/tenant/jovick-brothers-deli/&lt;br /&gt;
|-&lt;br /&gt;
|360 Westport&lt;br /&gt;
|Rooftop Bar &amp;amp; Lounge&lt;br /&gt;
|onsite&lt;br /&gt;
|111 West Port Plaza, Suite 1200 St. Louis, MO 63146&lt;br /&gt;
| https://www.westportstl.com/tenant/360-westport/&lt;br /&gt;
|-&lt;br /&gt;
|Soda Fountain Express&lt;br /&gt;
|Modern Diner &lt;br /&gt;
|onsite &lt;br /&gt;
| 147 West Port Plaza Dr St. Louis, MO 63146 &lt;br /&gt;
|https://www.westportstl.com/tenant/soda-fountain-express/&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&lt;br /&gt;
| 11855 Adie Rd, Maryland Heights, MO 63043||https://www.gioiasdeli.com/&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;
|DD Mau||Vietnamese / Bao||1.3 mi||11982 Dorsett Rd, Maryland Heights, MO 63043&lt;br /&gt;
|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&lt;br /&gt;
|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;
|-&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&lt;br /&gt;
|Burgers&lt;br /&gt;
|12 mi&lt;br /&gt;
|1033 McCausland Ave, St. Louis, MO 63117&lt;br /&gt;
|https://hipointedrivein.com/about/&lt;br /&gt;
|-&lt;br /&gt;
|Bar Louie&lt;br /&gt;
|Bar &amp;amp; Grill&lt;br /&gt;
|8.4 mi&lt;br /&gt;
|1650 Beale Street Suite 180, St. Charles, MO 63303&lt;br /&gt;
|https://www.barlouie.com/ &lt;br /&gt;
|-&lt;br /&gt;
|Sauce on the Side&lt;br /&gt;
|Calzones &lt;br /&gt;
|9.2 mi&lt;br /&gt;
|7810 Forsyth Blvd., Clayton, MO 63105&lt;br /&gt;
|https://sauceontheside.com/&lt;br /&gt;
|-&lt;br /&gt;
|Blueberry Hill&lt;br /&gt;
|Landmark restaurant / Americana&lt;br /&gt;
|9.4 mi&lt;br /&gt;
|6504 Delmar Blvd, University City, MO 63130&lt;br /&gt;
|https://blueberryhill.com/&lt;br /&gt;
|-&lt;br /&gt;
|Fitz&#039;s &lt;br /&gt;
|Local root beer &amp;amp; burgers&lt;br /&gt;
|9.3 mi&lt;br /&gt;
|6605 Delmar Blvd, St. Louis, MO 63130&lt;br /&gt;
|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;
Not available yet.&lt;br /&gt;
&lt;br /&gt;
===Attendee Ticket Options===&lt;br /&gt;
Not available yet.&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot/Changelog&amp;diff=235766</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=235766"/>
		<updated>2025-04-08T13:35:46Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Change Log */ update changelog&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.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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Bigshot&amp;diff=235765</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=235765"/>
		<updated>2025-04-08T13:34:17Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Commands Tab */ add unravel cmd&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
Bigshot is designed to handle combat routines, including moving to and from hunting areas, defining creatures to hunt and accompanying attack routines&lt;br /&gt;
Afk scripting on any server but Shattered is in 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 commands inputs, Bigshot lets a user 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: ;repository download Bigshot&lt;br /&gt;
&lt;br /&gt;
===How Do I Make it GO!?===&lt;br /&gt;
Initial setup is accessed through ;bigshot setup. There you will see a configuration window with various tabs to setup for your hunting routine. &lt;br /&gt;
&lt;br /&gt;
As with most scripts, using a SETUP command will open a graphical user interface for configuring the script. Use ;bigshot setup to open this dialog. This will open a window with the following tabs:&lt;br /&gt;
* Profile - This is where you save/load your profile information. Profiles are saved to your \Lich5\data\&amp;lt;GSServer\&amp;lt;charname&amp;gt;\bigshot_profiles directory. Eg, \Lich5\data\GSIV\Rinualdo\bigshot_profiles (note, if you&#039;ve previously used bigshot, the file location has changed. The previous location was in your \Lich5\scripts\bigshot_profiles folder. You can copy/paste &lt;br /&gt;
* Resting - Set up your resting routine and location.&lt;br /&gt;
* Hunting - Create a hunting map by adding BOUNDARIES, define your attack stance and any pre hunt information&lt;br /&gt;
* Attacking - configuration for ambushing, bless, reactions, and similar flags&lt;br /&gt;
* Commands - Where you define your valid targets and associated attack routines. See sample routines below. &lt;br /&gt;
* Misc tab - Various config options&lt;br /&gt;
&lt;br /&gt;
We will take a closer look at each of these individually further on.&lt;br /&gt;
&lt;br /&gt;
There is also several other commands you can do for more functionality.&lt;br /&gt;
* ;bigshot quick - Special hunting mode that kills everything in the room your in and quits bigshot. Wont wander at all, and wont attempt to rest. Has its own hunting commands and hunting targets.&lt;br /&gt;
* ;bigshot head/tail - This is for Multi-Account hunting. It only works for a single computer. Every character needs to be setup for the hunting area your going to. You start it by having your following characters join your head character. The following characters need to be running bigshot with ;bigshot tail. Once that happens, have the leader of the group do ;Bigshot head. They will then procede to hunt in the area you have setup.&lt;br /&gt;
* ;bigshot display - Shows all your current settings.&lt;br /&gt;
* ;bigshot reset - Resets all your targetable and untargetable lists. Useful if you find bigshot won&#039;t targets something it should.&lt;br /&gt;
* ;bigshot ranger or ;bigshot companion - Resets ranger companion setting so you can set it again. Used when you change your companion.&lt;br /&gt;
* ;bigshot profile save &amp;lt;name here&amp;gt; - Saves a profile in YAML format in your character&#039;s profile folder. Also accessible via the Profiles tab in the setup menu.&lt;br /&gt;
* ;bigshot profile load &amp;lt;name here&amp;gt; - Loads a profile from your character&#039;s profile folder. Also accessible via the Profiles tab in the setup menu. &lt;br /&gt;
* ;bigshot single  - When used solo, will execute a single hunting routine, return to your resting location and then exit&lt;br /&gt;
* ;bigshot &amp;lt;options&amp;gt; &amp;lt;creature&amp;gt; - example: ;bigshot single giant rat - Will activate ranger tracking of a creature. Anything input besides the above commands will default to &amp;quot;track &amp;lt;input&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==The Profile Tab==&lt;br /&gt;
* Load Profile - will load an existing profile. Nothing will be available if no previous profiles are saved&lt;br /&gt;
* Current Profile - shows the existing profile if a new one is loaded. &lt;br /&gt;
* Save profile - Valid profile information for future ebounty script support&lt;br /&gt;
  Save Current Settings - tell Bigshot what you want your profile to be named. Any name will work here. Once a profile is saved, will show up in the Load Profile menu. &lt;br /&gt;
&lt;br /&gt;
==The Resting Tab==&lt;br /&gt;
Short and sweet, here is where we setup our resting routines. During REST mode, Bigshot uses the EXP command and checks your mind, hit points, wound status, mana and spirit. Once all of these values are at the specified Should_hunt? settings, Bigshot leaves REST mode and begins a HUNT.&lt;br /&gt;
&lt;br /&gt;
* room id: - This is the room that Bigshot will return to for resting. Use Room Numbers from Map/Go2. Support both LichIDs and SimuIDs with a u, for example, 228 for Town Square Central or u7120.&lt;br /&gt;
* pre-rest commands: - These commands run before entering REST mode. An example routine is: &#039;shea, wear shield, sit, stance offensive, rest&#039;. This will sheath your weapon, wear your shield, sit, enter offensives stance and use the REST verb.&lt;br /&gt;
* active resting scripts: - Active resting scripts are scripts that will be run upon entering REST mode. These scripts should be things that you do after a hunt: get healed, empty your bags, spell up. An example list is: &#039;eloot sell, waggle, eherbs&#039;. This will use eloot to sell according to the options set with eloot. After selling, it will use Waggle to spell you up according to however Waggle is setup. Finally, eherbs will check your PACK and use herbs stored there to heal whatever wounds you have.&lt;br /&gt;
* Fog Option: - Uses [[Spirit Guide (130)]], Voln [[Symbol of Return]], [[Traveler&#039;s Song (1020)]], [[Sigil of Escape]], [[Familiar Gate (930)]] or Custom when heading back to rest. Setting it to None does nothing. Setting it to 130 will cause it to use 130 first then if that fails symbol of return. Symbol of return will use that first, then 130 if that fails. Setting to Traveler&#039;s Song will attempt once and continue. Setting to Familiar Gate will attempt to summon a portal once and walk through it. Will perform a mana pulse if not enough mana is detected. Custom option allows for comma separated list of commands to perform.&lt;br /&gt;
* Should Rest? &lt;br /&gt;
Bigshot evaluates these conditions and, when they are met, will go to your resting room set on the Resting tab and execute any resting scripts you have set.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Rests when your mind has reached this threshold. Generally, set this to 100 to rest when fried.&lt;br /&gt;
* &#039;&#039;&#039;and extra kills &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of extra monsters to kill after reaching your `when percent mind` threshold and after LTE boosts used&lt;br /&gt;
* &#039;&#039;&#039;and used lte boosts &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** The number of LTE boosts it will attempt to use after reaching your `when percent mind` threshold&lt;br /&gt;
* &#039;&#039;&#039;or percentmana &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when your percentage of mana is at or below this threshold.&lt;br /&gt;
** This can be set to 0, but leaving a bit in the tank can be good if you have to use 406 (Unlock) to open the WL Graveyard gate. 11/17/24: If you run into an error that calls to an &amp;quot;OOM&amp;quot; message, try setting this to 1.&lt;br /&gt;
* &#039;&#039;&#039;or percentencumbrance &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Forces Bigshot to rest when you have reached a given level of encumbrance.&lt;br /&gt;
* &#039;&#039;&#039;or wounded eval&#039;&#039;&#039;&lt;br /&gt;
** Allows you to set an evaluation phrase to determine if you are too wounded to continue hunting. Wound evaluations can send you home on nearly any wounded condition of your choice: bleeding, level 2 wound, can&#039;t cast, too many scars etc.&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} || percenthealth &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 not cast anymore (nerves, level 2 head/eyes, bad scars etc.):&lt;br /&gt;
&amp;lt;PRE&amp;gt;bleeding? || percenthealth &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 &amp;gt; 0 &amp;amp;&amp;amp; [Wounds.rightArm, Wounds.rightHand, Scars.leftArm, Scars.leftHand].max &amp;gt; 0)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
The following can be added to one of the above wound evaluations 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 is at or below this threshold.&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 is at or below this threshold.&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;
&lt;br /&gt;
==The Hunting Tab==&lt;br /&gt;
This is where you will tell bigshot when to hunt, any commands or society abilities to use prior to hunting, and where on the map you want to hunt. &lt;br /&gt;
===The Hunting Map===&lt;br /&gt;
Your hunting map is a series of Boundaries - rooms that Bigshot will not enter - and a Start room - the first room that Bigshot moves to when a hunt starts. These function very similarly to the boundaries in the ;Wander script, but are stored in Bigshot&#039;s configuration files and not in a character cache as with ;Wander. Here you also configure when to hunt&lt;br /&gt;
* starting room ID: - This is the first room that Bigshot goes to when hunting. You may set this to any room within the Boundaries that you set with the second option.&lt;br /&gt;
* boundary rooms: - Boundary rooms are walls. Bigshot will not 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;
The proper syntax for boundry rooms are separated by commas&lt;br /&gt;
Some popular Rift boundries as an example&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;
For Maaghara boundries, you can use &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
9734&lt;br /&gt;
&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, one must GO DOORWAY from room A. You would set the room outside of the square - ie room A - before you GO DOORWAY, as a boundary. Then, you would set room B to the Starting Room. From there, Bigshot will move to room B and then wander around inside the Boundary - ie the square hunting area - until it your &#039;&#039;&#039;Should_rest?&#039;&#039;&#039; conditions are met.&lt;br /&gt;
&lt;br /&gt;
* Wait before wandering to another room: - Time you wait before leaving a room to find some creatures. Default is 0.3 seconds. Set to 0 for fastest (spammy) movement. &lt;br /&gt;
&lt;br /&gt;
* attack stance: - Specify what stance you want to attack from. Bigshot will remain in Stance Defensive until an attack command is issued, whereupon it will stance to your Attack Stance and execute your Attacking routine. Bigshot recognizes all stances from the game, Offensive -&amp;gt;-&amp;gt; Defensive.&lt;br /&gt;
* pre-hunt commands: - These commands will be executed before Bigshot uses Go2 to travel to your hunt&#039;s Starting Room. As an example: &#039;gird, stance defensive&#039;. This will ensure that you have readied your weapon and are in Defensive stance before traveling. Set short lived combat spells like 1605 (Arm of the Arkati) to be cast in this line.&lt;br /&gt;
* active hunting scripts: - Active hunting scripts are scripts that will run while Bigshot is in Hunt mode. Many of these scripts have been made obsolete by the next option. Clever scripters have written some nice scripts that will keep certain spells up, execute cmans based on conditions etc. If you need a complex action to run while Hunting that Bigshot does not have the capacity for, an active hunting script may be called for.&lt;br /&gt;
* society abilities/spells/cmans: - Bigshot can be asked to keep certain abilities up at all times during a hunt. Hovering your mouse over this field will display a list of cmans and society abilities specified by their numerical designations. Spells may also be added here. Separate all values by commas. For example, entering &#039;506&#039; will keep the spell Haste up during Hunts, casting whenever it has worn off.&lt;br /&gt;
* loot script - Bigshot will call a loot script to loot your kills for you. eloot is commonly scripts used here. Be sure to use the SETUP command on whatever loot script you use, as if it is not configured properly, Bigshot will likely error.&lt;br /&gt;
* wracking spirit &amp;gt;= - Setting a value here will WRACK for mana if your spirit is greater than or equal to the value specified. Setting 6, for example, will WRACK down to 5 spirit. This will ONLY function if you have the &#039;Use sign of wracking/sigil of power&#039; box checked.&lt;br /&gt;
* Use sign of wracking/sigil of power - checkbox to enable the use of wracking&lt;br /&gt;
* Priority hunt - checkbox to enable the use of the priority system for hunting. This allows you to change targets based on the order listed in valid targets/quickhunt targets. For example, your hunting thunder trolls, wind witches, and puma. Your valid target order is wind witch, thunder troll, puma. Your currently attacking a puma, when a thunder troll walks in. You will switch to the attacking the thunder troll because its before the puma in the valid targets list. After killing the thunder troll, you go back to the puma, only to have a wind witch walk into your room. You will again switch to the wind witch because its in front of the puma. Hope you get the idea. When using the ;bigshot quick option, it will base the order of targets by your quickhunt targets first, then the order of the targets in the room that don&#039;t match any of your quickhunt targets. Example, bandits are in your quickhunt targets. You type ;bigshot quick when you get ambushed in the room. Currently in the room is a large ogre and three bandits. The order of targets will be the bandits first, then the large ogre.&lt;br /&gt;
* Delay looting - delays looting of creatures in a room.&lt;br /&gt;
* Pull players to feet - attempt to pull players to their feet upon passing them in a room&lt;br /&gt;
* Stop for dead players - checkbox will pause bigshot if you encounter a dead player&lt;br /&gt;
* Sneaky Sneaky - sneak around while out in the hunting area&lt;br /&gt;
&lt;br /&gt;
===Should hunt ===&lt;br /&gt;
Bigshot evaluates the conditions set on this tab to determine if you are ready to hunt or not.&lt;br /&gt;
* &#039;&#039;&#039;when percent mind &amp;lt;=&#039;&#039;&#039;&lt;br /&gt;
** Setting this to 51 will rest until Cleared. Setting at 65 will wait until Muddled.&lt;br /&gt;
* &#039;&#039;&#039;and percent mana&amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Determines the percent total of your maximum mana that must be present before hunting&lt;br /&gt;
** Setting below 50 will result in quick, uneventful hunts if you cast much. Generally, this is set at 95 or higher.&lt;br /&gt;
* &#039;&#039;&#039;and CHECKspirit &amp;gt;=&#039;&#039;&#039;&lt;br /&gt;
** Bigshot will check to see that your current Spirit value is higher than what is listed here.&lt;br /&gt;
** Make sure that you have this set high enough that Bigshot won&#039;t hunt immediately after DEPARTing if you have Depart / re-run Bigshot checked on the General tab.&lt;br /&gt;
&lt;br /&gt;
==The Attacking Tab==&lt;br /&gt;
* Ambush aiming locations (head, etc): - Allows you to specify what order you aim for ambush. Default is head, right leg, left leg, chest.&lt;br /&gt;
* Archery aiming locations (head, etc): - Allows you to specify what order you aim for archery. Loops through your aiming locations once you hit the area your aiming at.&lt;br /&gt;
* flee if enemy count is &amp;gt; - Flees the room if the total number of enemies in the room exceeds the value. Set this to 1 if you want to engage single targets.&lt;br /&gt;
* ...but don&#039;t count these: - Bigshot will ignore monsters specified in this line when eveluating if it should flee based on how many monsters are in the room. Useful for when you are hunting in an area with extremely low level monsters mixed in with your targets.&lt;br /&gt;
* ...and always flee from: - Bigshot will always flee from the specified monster as soon as possible. Extremely useful if your hunting area has higher level and/or extremely dangerous monsters mixed in with your intented target(s).&lt;br /&gt;
* flee from environment message: - Will flee whenever anything you put in here gets sent from the game. (XML regex matching)&lt;br /&gt;
* Wait before wandering to another room: - time you spend before moving to a new room. Default is 0.3 seconds. You can set it to 0 to move instantly. Tends to be spammy for anyone in the same hunting area.&lt;br /&gt;
* Approach lone targets only - Forces Bigshot to only begin combats against creatures that are alone.&lt;br /&gt;
* Bless weapon? - Performs a Consecrate (1604), then a Cleric Bless or Voln Bless on whatever weapon loses its bless during hunting. If you can&#039;t bless your weapon while hunting will return you to your rest area and quit the script.&lt;br /&gt;
* Flee from boon - Enabling this check box will force Bigshot to flee from all boon/gifted/boss creatures (available in [https://github.com/elanthia-online/scripts/pull/449/commits/afade49e25dd6042c30b6d62fec4d65376667f80 v4.3.0])&lt;br /&gt;
* Activate weapon reactions - Will initiate reactive strikes when the opportunity presents itself&lt;br /&gt;
* Flee from clouds - Enabling this check box will force Bigshot to flee from Cloud spells such as 125(Call Lightning with its Ominous Cloud), 1704 (Stun Cloud) and 1713 (Death Cloud)&lt;br /&gt;
* Flee from vines - Enabling this check box will force Bigshot to flee from Vine spell such as 610(Tangle Weed)&lt;br /&gt;
* Flee from webs - Enabling this check box will force Bigshot to flee from webs.&lt;br /&gt;
* Flee from voids- Enabling this check box will force Bigshot to flee from voids.&lt;br /&gt;
&lt;br /&gt;
==Commands Tab==&lt;br /&gt;
The true guts of Bigshot, this is where you specify your Attack Routine. &lt;br /&gt;
* hunting commands - These are the commands that Bigshot will evaluate (ie execute) when it is in the room with a valid target (one that you specified in your Hunting section. These commands are separated by a comma. Bigshot recognizes most hunting verbs and, failing that, will use an fput command (a direct entry method) and just execute the commands directly as written. The following are a list of usable hunting commands:&lt;br /&gt;
** kill - Attacks using the KILL verb.&lt;br /&gt;
** incant &amp;lt;spell number&amp;gt; - Casts the specified spell with the INCANT verb. This will automatically stance into offensive for bolt and other stance-sensitive spells. A caster may CHANNEL the spell using [[INCANT (verb)]] to INCANT SET CHANNEL &amp;lt;spell&amp;gt; (a standard GSIV verb, not part of Lich). Alternatively, a caster may CHANNEL spells by using the SET verb (a standard GSIV verb, not part of Lich) to SET ChannelIncant ON. This will CHANNEL an INCANTed spell if the caster is in a stance higher than neutral.&lt;br /&gt;
** channel &amp;lt;spell number&amp;gt; - Channels the specified spell at the target. This requires a stance higher than neutral to have any effect.&lt;br /&gt;
** &amp;lt;Spell Number&amp;gt; - Casts the specified spell with the PREPARE and CAST verbs.&lt;br /&gt;
** wand - As in, &amp;lt;CODE&amp;gt;wand target&amp;lt;/CODE&amp;gt;. Gets a wand from the specified storage and WAVES it at the target.&lt;br /&gt;
** wandolier - Similiar to wand, but uses wandoliers. Gets a wand from the fresh wand container and waves it, rubs container if no wands found. Default waves in offensive. Can change via &amp;lt;CODE&amp;gt;wandolier defensive&amp;lt;/CODE&amp;gt; to wave in a different stance&lt;br /&gt;
** fire - As in, &amp;lt;CODE&amp;gt;fire target&amp;lt;/CODE&amp;gt;. Gets ammunition from the specified storage and FIREs it at the target. Will attempt to aim based on settings on hunting tab.&lt;br /&gt;
*** The above listed commands should be used with the (x#) syntax. For example, &amp;lt;CODE&amp;gt;kill target (x3)&amp;lt;/CODE&amp;gt; will swing three times at the target before re-evaluating the attack routine. If the (xx) variable is used, Bigshot will continue using the specified attack command up to five (5) times. Example: &amp;lt;CODE&amp;gt;903 target (xx)&amp;lt;/CODE&amp;gt; will continue to cast 903 at the target (5) times before restarting the attack routine or until it is dead. If you want to ensure the routine does not restart, using a sufficiently large number should suffice (e.g. x100). Bigshot may also be set to only execute a command based on how much mana or stamina you currently have. For mana, use the (m##) command. &amp;lt;CODE&amp;gt;920 target (m50)&amp;lt;/CODE&amp;gt; will only cast 920 (Implosion) if you have 50 or more mana. Similarly, &amp;lt;CODE&amp;gt;cman feint target (s10)&amp;lt;/CODE&amp;gt; will only execute the combat maneuver Feint on the target if you have 10 or more stamina. The command syntax is used as a separate call and wrapped in separate parenthesis, as in (m50 s20)(x2). &lt;br /&gt;
** aim &amp;lt;location&amp;gt; - Aims at the specified location.&lt;br /&gt;
** ambush - Uses the AMBUSH verb to attack. Will aim based on settings in Hunting tab. Also will aim dynamically, &amp;quot;Ambush head&amp;quot; would aim at the head, overwriting any settings or defaults for that attack.&lt;br /&gt;
** wait &amp;lt;time&amp;gt; - Bigshot may Stance Dance by using the WAIT command. Bigshot will go into and stay in Stance Defensive until the specified time is over OR the target swings / casts, whereupon it will evaluate the rest of the Attack Routine, changing into your specified attack stance.&lt;br /&gt;
** mstrike - As in, &amp;lt;CODE&amp;gt;mstrike target&amp;lt;/CODE&amp;gt;. Mstrike depending on mstrike cooldown and stamina. Has its own option page. Can also be used with UAC, &amp;quot;mstrike punch&amp;quot;.&lt;br /&gt;
** berserk - Executes the BERSERK verb and stands by until it fades.&lt;br /&gt;
** throw - Empties hands, Attempts throw, get the stuff you emptied.&lt;br /&gt;
** weed/kweed - Casts 610 at target. Using &amp;quot;kweed&amp;quot; as your command will force evoke 610 ensuring the damage version&lt;br /&gt;
** curse &amp;lt;curse&amp;gt; - Clumsy/Weakness/Darkness/Itch/Hex/Pox/Nightmare/Star - will prep 715 and use curse command as defined. Will skip &amp;quot;curse star&amp;quot; if buff is up.&lt;br /&gt;
** unarmed - Uses the Bigshot UAC routine. Routine will attack with appropriate attacks to rank up and use mstrike based on mstrike options page. Usage &amp;quot;unarmed (punch|jab|kick|grapple)&amp;quot;.&lt;br /&gt;
** smite - Performs an [[Order of Voln]] [[Kai&#039;s_Smite|Smite]] on target until successful.&lt;br /&gt;
** leech - Performs a [[Mana Leech (516)]] on target if cooldown is under 15 minutes.&lt;br /&gt;
** script &amp;lt;script name&amp;gt; - Executes a specified custom attack script.&lt;br /&gt;
** hide - Continue hiding until you&#039;re actually hidden. Or it&#039;s tired of trying.&lt;br /&gt;
** sleep - As in, &amp;lt;CODE&amp;gt;sleep 10&amp;lt;/CODE&amp;gt;. Pause bigshot. Useful with fried hunting commands such as: &amp;lt;CODE&amp;gt;410, sleep 15&amp;lt;/CODE&amp;gt; will E-wave then wait 15 seconds and e-wave again if there are valid targets.&lt;br /&gt;
** stance - As in, &amp;lt;CODE&amp;gt;stance defense&amp;lt;/CODE&amp;gt;. Change stances.&lt;br /&gt;
** nudgeweapons - Move all weapons on the ground to an adjacent room. Useful for casting Implosion (720).&lt;br /&gt;
** force &amp;lt;cmd&amp;gt; until &amp;lt;endroll&amp;gt; - As in, &amp;lt;CODE&amp;gt;force incant 1002 until 101&amp;lt;/CODE&amp;gt;. Continue issuing a command until a desired endroll. Only works for normal looking swings/spells/cmans.&lt;br /&gt;
** eachtarget  &amp;lt;cmd&amp;gt; - issues command to each valid target in room&lt;br /&gt;
** efury &amp;lt;fire|cold&amp;gt; - casts Earthern Fury (917) on the target and waits for DOT to end or 12secs to pass&lt;br /&gt;
** caststop &amp;lt;spell&amp;gt; - casts the spell and then immediately stops it after casting&lt;br /&gt;
** wield &amp;lt;noun&amp;gt; &amp;lt;left|right&amp;gt; - weilds new noun and stores the hand given to put new noun item in&lt;br /&gt;
** store - store left, right or both, but only if something is in those hands&lt;br /&gt;
** tether &amp;lt;recast&amp;gt; - casts 706 with built-in logic to wait, can also do recast to auto-recast 706 on creature death and DOTs transfer&lt;br /&gt;
** unravel &amp;lt;spell&amp;gt; - casts 1013 Song of Unravelling with an optional spell to target against creature&lt;br /&gt;
* hunting commands (b) - Attack routines set up for a monster flagged (b) in the Hunting section.&lt;br /&gt;
* hunting commands (c) - Attack routines set up for a monster flagged (c) in the Hunting section.&lt;br /&gt;
* hunting commands (d) - Attack routines set up for a monster flagged (d) in the Hunting section.&lt;br /&gt;
* hunting commands (e) - Attack routines set up for a monster flagged (e) in the Hunting section.&lt;br /&gt;
* hunting commands (f) - Attack routines set up for a monster flagged (f) in the Hunting section.&lt;br /&gt;
* hunting commands (g) - Attack routines set up for a monster flagged (g) in the Hunting section.&lt;br /&gt;
* hunting commands (h) - Attack routines set up for a monster flagged (h) in the Hunting section.&lt;br /&gt;
* hunting commands (i) - Attack routines set up for a monster flagged (i) in the Hunting section.&lt;br /&gt;
* hunting commands (j) - Attack routines set up for a monster flagged (j) in the Hunting section.&lt;br /&gt;
* fried hunting commands - Commands executed specifically when fried. Useful when hunting in a group.&lt;br /&gt;
* quick hunting commands - Commands executed specifically when using ;bigshot quick.&lt;br /&gt;
* valid targets: - These are the monsters you are hunting. Bigshot will most easily recognize monsters based on the NOUNs or their name. For example, &#039;a large ogre&#039; can be targeted with just &#039;ogre&#039;. Using longer descriptors can be troublesome, and you should copy a monster&#039;s name directly from the game front end to avoid troubles. You can use multiple entries separated by commas. For example: &#039;manticore, thrak&#039; will kill manticores and thraks.&lt;br /&gt;
* quickhunt targets: - These are monsters you have designated attacks for when your using the ;bigshot quick option for hunting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PSM3 Integration===&lt;br /&gt;
* hunting commands - Bigshot now supports weapon/shield skills and warcries. Assaults will wait until they finish or are interuppted. These commands are separated by a comma. The following are a list of usable hunting commands:&lt;br /&gt;
** barrage, flurry, fury, gthrusts, pummel, thrash - Assaults will wait until attacks are completed/interrupted.&lt;br /&gt;
** fury - You can specify the default attack fury will use. Will jab if not specified: fury punch or fury kick&lt;br /&gt;
** charge, cripple, dizzyingswing, pindown, twinhammer  - Setups will execute on cooldown so make sure to check for prone/stun/root/ect.&lt;br /&gt;
** clash, cyclone, pulverize, volley, wblade, whirlwind - AOE will execute on cooldown, limit with check volley(mob3).&lt;br /&gt;
** shout - Will perform warcry shout. Must use a command check or it will shout every loop: shout(!shout),shout(buff10 s25) &lt;br /&gt;
** yowlp - Will perform warcry yowlp. Must use a command check or it will yowlp every loop: yowlp(!yowlp), yowlp(buff10 s10)&lt;br /&gt;
** holler - Will perform warcry holler every loop taunting all the mobs. holler(s60)&lt;br /&gt;
** bellow, growl, cry - Offensive warcries can be used with target for single target or all for aoe.&lt;br /&gt;
** shield bash, shield charge, shield pin, shield push, shield strike, shield trample, shield throw&lt;br /&gt;
** surge - Will keep surge of strength up. surge or surge(surge) will cast even on cooldown, surge(!surge) will only cast when not on cooldown.&lt;br /&gt;
** bearhug, bullrush, coupdegrace, cpress, cutthroat, dirtkick, 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&lt;br /&gt;
** dislodge &amp;lt;location&amp;gt; - Dislodge from location specified: dislodge eye neck&lt;br /&gt;
** stomp - Will perform a stomp attack. Channels 909 if not active. Can also add 909 to society abilities to keep it active.&lt;br /&gt;
** dhurl - Hurl your weapon and recovers it. Works with weapon bonding auto return and the recover verb.&lt;br /&gt;
** assume &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt; - Will cycle between two aspects, or evoke a single aspect. Also works in society ability box. &amp;quot;650 &amp;lt;aspect&amp;gt; &amp;lt;aspect/evoke&amp;gt;&amp;quot;&lt;br /&gt;
** briar &amp;lt;weapon&amp;gt; - activate the AS buff on briar weapons. Tracks weapon charge and uses on cooldown.&lt;br /&gt;
** stance perfection - Put 10, 20, 30, ect in your attack stance box to take advantage of stance perfection.&lt;br /&gt;
&lt;br /&gt;
You may need to &#039;&#039;&#039;SKILLS FULL/CMAN INFO/WEAPON INFO/SHIELD INFO&#039;&#039;&#039; if you&#039;ve recently changed training or skills are being outright skipped.&lt;br /&gt;
&lt;br /&gt;
===Additional Options===&lt;br /&gt;
*haste or 506 - Placing this in front of any command will cause you to cast 506 before doing that command. It only casts if it isn&#039;t currently up or has less than 3 seconds left on its timer.&lt;br /&gt;
&amp;lt;PRE&amp;gt;wait 10, haste kill (x3)&amp;lt;/PRE&amp;gt;&lt;br /&gt;
*slayer or 240 - Placing this in front of any command will cause you to cast 240 before doing that command. It will not recast if it&#039;s 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;
&lt;br /&gt;
Commands need to use the following format:&lt;br /&gt;
&amp;lt;CODE&amp;gt;COMMAND (CHECKS)(REPETITIONS)&amp;lt;/CODE&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So &amp;lt;CODE&amp;gt;hamstring (mob1 prone)(x2)&amp;lt;/CODE&amp;gt; Any (x#) needs to be separate. Also (xx) is not unlimited and is just short for (x5).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional checks you can add to any command to customize the attack to your desired scenario.&lt;br /&gt;
Each check below can be used by itself or with any other check. Put them inside () with a space between each additional check. Example - Kill(m20 s5 e20)&lt;br /&gt;
&amp;lt;p&amp;gt;Each of these also has an inverse or opposite.&lt;br /&gt;
Just put a ! in front of the command. Example - Kill(!m20 !s5 !e20)&lt;br /&gt;
*s# - Checks that you have the required stamina&lt;br /&gt;
*m# - Checks that you have the required mana&lt;br /&gt;
*h# - Checks that you have the required health but based on a percentage instead of fixed number&lt;br /&gt;
*v# - Checks that you have the required spirit&lt;br /&gt;
*e# - Checks that your encumbrance percentage is at or below&lt;br /&gt;
*tier# - Checks for your current UAC tier (1,2,3). Performs command if UAC Tier is equal or greater.&lt;br /&gt;
*mob# - Checks for the number of npcs in room. Performs command if npcs in room is equal to or more than number specified. Only use for 2 or more creatures in the room&lt;br /&gt;
&amp;lt;PRE&amp;gt;To further clarify the mob# implimentation&lt;br /&gt;
1 mob, mob2, 1 IS less than 2, attack should not proceed.&lt;br /&gt;
2 mob, 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 mob, !mob2, 2 IS NOT more than 2, attack can proceed&lt;br /&gt;
3 mob, !mob2, 3 IS more than 2, attack should not proceed&amp;lt;/PRE&amp;gt;&lt;br /&gt;
*once - Performs the command once on a specified target, resets on room change&lt;br /&gt;
*room - Performs the command once in a room only, resets on room change&lt;br /&gt;
*prone - Checks to see if target is not sleeping|webbed|stunned|kneeling|sitting|lying down|prone|frozen|held in place. Performs command if target status is not one of the previous.&lt;br /&gt;
*frozen - Same usage as prone. Broke out of prone check for archers against non-corporeal creatures that deflect ranged. Corporeal creatures can be stunned and will break this check.&lt;br /&gt;
*undead - Checks to see if target is undead. Performed command if target is undead.&lt;br /&gt;
*flying - Checks to see if target is flying. Performed command if target is flying.&lt;br /&gt;
*rooted - Checks to see if the target is rooted. Performed command if target is rooted.&lt;br /&gt;
*hidden - Checks to see if you&#039;re currently hidden.&lt;br /&gt;
*poison - Checks to see if you&#039;re currently poisoned.&lt;br /&gt;
*disease - Checks to see if you&#039;re currently diseased.&lt;br /&gt;
*noncorporeal - Checks to see if NPC is [[noncorporeal|non-corporeal]] undead&lt;br /&gt;
*pcs - Checks to see if there are any PCS in room that are also not in your group&lt;br /&gt;
*outside - Checks to see if the room you are in is outside&lt;br /&gt;
*barrage - Checks for the Enhanced Dexterity buff from Barrage.&lt;br /&gt;
*fury - Checks for the Enhanced Constitution buff from Fury.&lt;br /&gt;
*flurry - Checks for the Slashing Strikes buff from Flurry.&lt;br /&gt;
*pummel - Checks for the Concussive Blows buff from Pummel.&lt;br /&gt;
*thrash - Checks for the Forceful Blows buff from Thrash.&lt;br /&gt;
*vigor - Checks for the Tangleweed Vigor buff from Tangleweed.&lt;br /&gt;
*reflex - Checks for the Arcane Reflex buff from Nature&#039;s Touch.&lt;br /&gt;
*tailwind - Checks for Tailwind buff from Breeze. (tailwind) (!tailwind)&lt;br /&gt;
*shout - Checks for the Empowered buff from Shout.&lt;br /&gt;
*yowlp - Checks for the Yertie&#039;s Yowlp buff from Yowlp.&lt;br /&gt;
*holler - Checks for the Horland&#039;s Holler buff from Holler.&lt;br /&gt;
*voidweaver - checks for the Voidweaver buff from Implosion(720)&lt;br /&gt;
*justice - Checks for charges of Swift Justice. (justice) do skill with charges (!justice) do skill with no charges&lt;br /&gt;
*buffXX - Fire ability when buff duration is &amp;lt;= XX. Supported for barrage,bearhug,fury,flurry,pummel,thrash,shout,yowlp&lt;br /&gt;
*tier# - Perform action if you are at the corresponding tier. (!tier3) don&#039;t do it if you are at tier3. (tier2) do it if you are tier2&lt;br /&gt;
*censer - Attempt to cast 320 before your command checking mana and cooldown. 309(censer), 335(censer mob3), attack(censer)&lt;br /&gt;
*ancient - Checks for grizzled/ancient creatures&lt;br /&gt;
*animate - Checks for if you have an animate present or not&lt;br /&gt;
**If command is a spell, will only cast censer if you have the mana for censer and the spell you intend.&lt;br /&gt;
**If command is not a spell, will only check you have enough mana for the censer.&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;
&lt;br /&gt;
Waits 10 seconds for the monster to swing or cast and then immediately counter attacks from the specified attack stance set in the Hunting tab. Swings a total of three times before going into Defensive stance and waiting 10 seconds 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;
&lt;br /&gt;
Waits 15 seconds before INCANTing 505 (Hand of Tonis), hopefully knocking down or stunning the target. Following this, Bigshot casts 903 (minor water) repeatedly 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;
&lt;br /&gt;
Casts 1615 (Divine Strike) at the target from Defensive stance, possibly forcing the target to kneel. Then, uses the kill verb to swing continuously until the target is dead or 100 times..whichever happens 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;
&lt;br /&gt;
Uses the Combat Maneuver FEINT against the target until a successful end roll and then hits the target twice before trying to 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;
&lt;br /&gt;
Hides from Defensive stance and then ambushes that the target&#039;s left leg. Once round-time is up, repeats (ie HIDES again from defensive stance).&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;
&lt;br /&gt;
Casts 720 (Implosion) at the target if your character has 50 or more mana. Then, INCANTs 708 (Limb Disruption) at the target, using the default AIM location (if set). Finally, casts 702 (Mana Disruption) at the target up to (5) times or until it is 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;
&lt;br /&gt;
Prepares 708 (Limb Disruption) and CASTs it at the target&#039;s left leg. The second prepares the same spell and then CHANNELs it at the target&#039;s left leg. It will then cast 719 (Dark Catalyst) if there is at least 50 mana, and will only cast one time. The last will incant 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;
&lt;br /&gt;
Waits 30 seconds or until your target attacks. Begins attacked with 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;
&lt;br /&gt;
Will shield charge the target if your character has 15 or more stamina and the target is NOT prone.  &lt;br /&gt;
&lt;br /&gt;
The second command will then ambush based on the settings in the &amp;quot;Attacking&amp;quot; Tab - in this case a custom order of head, neck, right leg, back was given so Bigshot will first try to Ambush the head unless the head is too injured or the head cannot be reached followed by the neck then right leg then back.  &lt;br /&gt;
&lt;br /&gt;
Bigshot will then focus mstrike the target unless the creature count is equal to or greater than the setting in the MSTRIKE Tab, in which case it will open mstrike instead.  If you put &amp;quot;mstrike target&amp;quot;, Bigshot will always focused mstrike regardless of the settings in the MSTRIKE Tab.  Alternatively, you can set the &amp;quot;Unfocused MSTRIKE when creatures equal or greater&amp;quot; to a large number, to always focus your mstrikes (or set it to 1 to always open mstrike).&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;
&lt;br /&gt;
Will aoe bellow, then whirling blade if there are at least 3 targets. The third command will flurry if you don&#039;t have the slashing strikes buff. Finally it will attack and continue to attack until one of the previous attacks become available.&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;
&lt;br /&gt;
Will open up with a taunt from holler, then shield throw if there are at least 3 targets. Third command will flurry on cooldown. Fourth will thrash on cooldown. Finally we will attack if everything else ends up on cooldown or we run out of stamina.&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;
&lt;br /&gt;
If there is more than one mob, it will hide with shroud and divert one of the targets. Third command will ambush if hidden. Fourth will flurry on cooldown followed up with attack to finish anything off.&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;
&lt;br /&gt;
Will cast surge when not on cooldown, and bullrush to bust up and apply vulnerable, then bearhug which is faster if target is vulnerable. Third we will pummel on cooldown and attack when nothing else is available.&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;
&lt;br /&gt;
Will keep surge active, casting during cooldown for 60 stamina. Next it will shout and refresh shout when there is less than 11 seconds left on the duration. Third it will shield strike followed up with a pummel once every minute. It will finish off 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;
&lt;br /&gt;
Will open up with pin down if there are at least 4 targets, then will volley if there are at least 2 targets. The third command will cast tangleweed if you do not have the tangleweed vigor buff or the arcane reflex buff. Our fourth command will barrage unless we have the enhanced dexterity buff from barage. Fifth we will cast a 1 second spike thorn if we do have 16 mana and do have the arcane reflex buff. Finally we will fire until one of our other commands become available.&lt;br /&gt;
&lt;br /&gt;
===Hunting Target Examples===&lt;br /&gt;
All of the examples below will work for both the &#039;valid targets&#039; and &#039;quickhunt targets&#039; entries.&lt;br /&gt;
* A hunting option only using the default command (a) for each creature in an area:&lt;br /&gt;
&amp;lt;pre&amp;gt;crazed zombie, niirsha, sacristan spirit&amp;lt;/pre&amp;gt;&lt;br /&gt;
* A hunting option using custom hunt commands depending on the creature.  In this case it will use command (a) for a [[crazed zombie]] and a [[sacristan spirit]], while using (b) for a [[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;
* A hunting option that will include the [[:Category:Boss creatures|Boss Creatures]] variations as valid targets:&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;
* Some additional advanced options for identifying valid targets:&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;
&lt;br /&gt;
To attack everything in the room (?:.*)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc Tab==&lt;br /&gt;
Various specialized config options&lt;br /&gt;
&lt;br /&gt;
===UAC Options===&lt;br /&gt;
The various options for configuring how UAC works:&lt;br /&gt;
* &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039;&lt;br /&gt;
** The attack used when you have reached excellent in the UAC tier&lt;br /&gt;
** Options are jab, punch, grapple, or kick&lt;br /&gt;
* &#039;&#039;&#039;Aim at location (head, etc)&#039;&#039;&#039;&lt;br /&gt;
** Used for aimed UAC Combat, which requires ambush training to be effective&lt;br /&gt;
** Leave blank when you don&#039;t want to aim.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE when creatures equal or greater&#039;&#039;&#039;&lt;br /&gt;
** Determines how many creatures must be present before using MSTRIKE&lt;br /&gt;
* &#039;&#039;&#039;Use Voln SMITE?&#039;&#039;&#039;&lt;br /&gt;
** Will perform a Voln SMITE on [[Non-corporeal]] undead&lt;br /&gt;
&lt;br /&gt;
Frequently, people have trouble setting up Bigshot to work with Unarmed Combat. Bigshot only requires minimal configuration to ensure UAC works well.&lt;br /&gt;
#UAC tab: Input your &#039;&#039;&#039;Tier 3 Attack&#039;&#039;&#039; (jab, punch, grapple, or kick)&lt;br /&gt;
#Commands tab: Input your &#039;&#039;&#039;hunting commands(a)&#039;&#039;&#039; option as &#039;&#039;&#039;unarmed jab&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Important notes to keep in mind on how UAC works in Bigshot:&lt;br /&gt;
* The hunting option &#039;&#039;&#039;unarmed jab&#039;&#039;&#039; can be replaced by any UAC attack type (e.g. &#039;&#039;&#039;unarmed punch&#039;&#039;&#039;)&lt;br /&gt;
* UAC follow up strikes will be selected over the base or tier 3 attack&lt;br /&gt;
* Tier 3 attacks will be used only when positioning is excellent&lt;br /&gt;
&lt;br /&gt;
There is almost no reason to ever use anything other than &#039;&#039;&#039;unarmed jab&#039;&#039; as the hunting command, and either &#039;&#039;&#039;grapple&#039;&#039;&#039; or &#039;&#039;&#039;kick&#039;&#039;&#039; as the Tier 3 attack.&lt;br /&gt;
&lt;br /&gt;
===MSTRIKE Options===&lt;br /&gt;
MSTRIKE attack now has options for when it should be used.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown stamina requirement&#039;&#039;&#039;&lt;br /&gt;
** Allows you to specify how much stamina you want before it will MSTRIKE during the MSTRIKE Cooldown&lt;br /&gt;
** Be careful when setting this too low as it can pop your muscles&lt;br /&gt;
** Leave blank for it to use your max stamina.&lt;br /&gt;
* &#039;&#039;&#039;QUICKSTRIKE stamina requirement&#039;&#039;&#039;&lt;br /&gt;
** Like above but instead for using QUICKSTRIKE during the MSTRIKE routine.&lt;br /&gt;
* &#039;&#039;&#039;Unfocused MSTRIKE when creatures equal or greater&#039;&#039;&#039;&lt;br /&gt;
** Number of creatures in room before you do an unfocused mstrike. Default is 2.&lt;br /&gt;
* &#039;&#039;&#039;MSTRIKE during cooldown&#039;&#039;&#039;&lt;br /&gt;
**Toggle for MSTRIKEing during its cooldown period&lt;br /&gt;
* &#039;&#039;&#039;Use QUICKSTRIKE for MSTRIKE&#039;&#039;&#039;&lt;br /&gt;
** Toggle for using QUICKSTRIKE when you MSTRIKE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ammo/Wands===&lt;br /&gt;
Here you find the settings to tell Bigshot where you keep all of your nifty wands and bolts and arrows. If your attack routine involves FIRE or WAND verbs, these fields must be set lest Bigshot hang up.&lt;br /&gt;
* find ammo in this container: - Leave BLANK if having Bigshot use FIRE without getting ammo out (Archery 2020 Update). Rather self explanatory, this field holds the location of your ammunition storage, be it a wand harness, a quiver or just your backpack.&lt;br /&gt;
* use this ammo type: - Leave BLANK to have Bigshot use FIRE without getting any ammo (Archery 2020 Update). Again, like specifying monsters, Bigshot is most sensative about the NOUNs that you use here. If you &lt;br /&gt;
* fresh wand container: - Bigshot looks in this container to find fesh wands to WAVE.&lt;br /&gt;
* dead wand container: - ...And then will deposit the used up wands in this container.&lt;br /&gt;
* use this wand type: - Here you specify which particular wand type you want to use. Bigshot will then pull only these kinds for WAVEing. Can have multiple types listed. Seperate each one with a comma. Example: &amp;quot;aquamarine wand, bloodwood wand, etc&amp;quot;&lt;br /&gt;
* Hide while waiting to pick up ammo - Checking this box will have Bigshot hide when gathering up your spent arrows and bolts.&lt;br /&gt;
* Use wands when out of mana - Bigshot will pull whatever wand you have specified in the use this wand type field and automatically stance to your attacking stance and WAVE your wand at valid targets until you are out of wands OR hit your resting conditions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MA Grouping===&lt;br /&gt;
* Enter the name of the looter in Head/Tail configuration&lt;br /&gt;
&lt;br /&gt;
==Monitoring Tab==&lt;br /&gt;
* Monitor interaction - Running scripts automates most functions and happens rather mechanically. Most anyone can tell if you are scripting just by watching you. Checking this box will pop up a window whenever Bigshot thinks that someone or something is trying to interact with you.&lt;br /&gt;
* Engage deadman&#039;s switch - Selecting this option will force Bigshot to quit Gemstone IV when your character is at less than 40% health, allowing you to log back on and assess the situation manually later.&lt;br /&gt;
* Depart/rerun if dead - Enabling this option will force a DEPART, causing your character to wake up in the Temple with low spirit. Following this, Bigshot will re-start, starting a fresh hunt. If you do not have a Check Spirit value set in your Should_hunt? tab, you will start hunting without recuperating lost stats.&lt;br /&gt;
* Quiet followers - Followers will wait until leader is done with both actions and resting scripts to begin using their own.&lt;br /&gt;
&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>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lock_and_Key&amp;diff=235756</id>
		<title>Lock and Key</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lock_and_Key&amp;diff=235756"/>
		<updated>2025-04-07T20:21:36Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Rewards */ add torn page vibrant reward&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The Lock and Key system is a new treasure system mechanic that has multiple components and rewards to help facilitate trade and make treasure more fun. The system composes of various locks, keys, baubles, and rewards. You combine a lock and key to be rewarded with a bauble that has the reward inside. The system components are all trade-able. Lock and Key component drop rate is affected by [[Loot cap]] and there are limited amount released per week into the treasure system. &lt;br /&gt;
&lt;br /&gt;
The system currently is two-tiered system components:&lt;br /&gt;
* Common: vibrant (level 30+)&lt;br /&gt;
* Rare: radiant (level 60+)&lt;br /&gt;
&lt;br /&gt;
Current system has four color components allowing for 8 combinations of locks and keys you can find.&lt;br /&gt;
* Blood Red&lt;br /&gt;
* Forest Green&lt;br /&gt;
* Frosty White&lt;br /&gt;
* Royal Blue&lt;br /&gt;
&lt;br /&gt;
You can combine two of any color tier and type component to create a rainbow-hued component. Rainbow-hued locks and keys can be used on any color of similar tier lock and key. To do so, hold two similar components of the same tier and CHANT to combine them into the rainbow-hued variant.&lt;br /&gt;
&lt;br /&gt;
==Locks==&lt;br /&gt;
Locks are found via SEARCHing creatures, as well as via [[Mug]], and are not box-found items. These come pre-marked to not be sold. To open a lock, you&#039;ll need the matching tier color key or a rainbow-hued key of the same tier in order to open it.&lt;br /&gt;
&lt;br /&gt;
==Keys==&lt;br /&gt;
Keys are found via SEARCHing creatures, as well as via [[Mug]], and are not box-found items. These come pre-marked to not be sold. To use the key on a lock, you&#039;ll need a matching tier color lock or a rainbow-hued lock of the same tier in order to open it.&lt;br /&gt;
&lt;br /&gt;
==Baubles==&lt;br /&gt;
Baubles are the result of unlocking a lock with a key. Radiant baubles having a higher tier loot than vibrant baubles.&lt;br /&gt;
&lt;br /&gt;
==Rewards==&lt;br /&gt;
Rewards vary, but the ultimate reward is a new rune system that allow you to enhance your [[Verb:RUNE|RUNE POWER]]. Each rune grants a +1 bonus to the ability that it&#039;s created for. Other rewards are possible to be found, but while not as powerful as runes, still are quite valuable.&lt;br /&gt;
&lt;br /&gt;
The system requires you to have a lock &amp;amp; key of the same color and tier. A rainbow-hued variant lock or key can be substituted in place of one or the other. You open the lock by holding both the lock and key in each hand and OPEN MY LOCK. This then grants you a bauble of the same tier. From here, you must BREAK the bauble to reveal your reward. The reward is generated at the time of breaking it open.&lt;br /&gt;
&lt;br /&gt;
All rewards are as follows:&lt;br /&gt;
{|width=&amp;quot;90%&amp;quot; class=&amp;quot;wikitable sortable&amp;quot; {{prettytable}}&lt;br /&gt;
!style=&amp;quot;width: 15%;&amp;quot;|Item Name&lt;br /&gt;
!style=&amp;quot;width: 5%;&amp;quot;|Tier&lt;br /&gt;
!style=&amp;quot;width: 65%;&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|glowing rune-incised stone||radiant||[[Verb:RUNE|rune power]], +1 bonus to Bolt Attack Strength&lt;br /&gt;
|-&lt;br /&gt;
|glowing torn page||radiant||+50% [[experience]] for 3 day(s)&lt;br /&gt;
|-&lt;br /&gt;
|shimmering indigo orb||radiant|| 3x [[Roleplaying award|RPA]]&lt;br /&gt;
|-&lt;br /&gt;
|silvery crimson vial||radiant||grants +75 [[Verb:BOOSTS|bounty boosts]]&lt;br /&gt;
|-&lt;br /&gt;
|silvery indigo vial||radiant||grants +50,000 experience worth of [[Suffusion|suffused energy]]&lt;br /&gt;
|-&lt;br /&gt;
|shimmering blue orb||vibrant|| 2x [[Roleplaying award|RPA]]&lt;br /&gt;
|-&lt;br /&gt;
|tiny blue vial||vibrant||grants +2 [[Guild]] ranks, exact guild skill changed by TAP&#039;ing the vial&lt;br /&gt;
|-&lt;br /&gt;
|tiny orange vial||vibrant||grants +10 [[deed]]s&lt;br /&gt;
|-&lt;br /&gt;
|tiny pink vial||vibrant||grants +25,000 profession&#039;s [[Verb:RESOURCE|resource]]&lt;br /&gt;
|-&lt;br /&gt;
|tiny red vial||vibrant||grants +25 [[Verb:BOOSTS|bounty boosts]]&lt;br /&gt;
|-&lt;br /&gt;
|torn page||vibrant||+50% [[experience]] for 1 day&lt;br /&gt;
|-&lt;br /&gt;
|vial of iridescent oil||vibrant||charge a [[Gilded locus]] for one month&lt;br /&gt;
|-&lt;br /&gt;
|COLOR radiant lock||vibrant||radiant lock component&lt;br /&gt;
|-&lt;br /&gt;
|COLOR radiant key||vibrant||radiant key component&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Announcement:New Rare Treasure! Baubles, Keys, and Locks!]]&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=235576</id>
		<title>Lich:Script Repository</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=235576"/>
		<updated>2025-04-04T13:51:39Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Core components installed with Lich */ spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
The repository, owned by Tillmen, is the most common location for downloading scripts that are not pre-installed with Lich. &lt;br /&gt;
&lt;br /&gt;
==How to Use the Repository==&lt;br /&gt;
&lt;br /&gt;
The repository has four basic commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;repository&lt;br /&gt;
&lt;br /&gt;
;repository download &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository info &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first shows a Help screen and is the root command for all others.&lt;br /&gt;
&lt;br /&gt;
The second, often shortened to &#039;;repo down&#039;, lets you download a specified script.&lt;br /&gt;
&lt;br /&gt;
Third, INFO provides information about whatever script is specified. If the author has been kind and thorough, this will tell you how to use the script and if it has any interdependencies.&lt;br /&gt;
&lt;br /&gt;
Fourth, LIST will list all scripts in the repository.&lt;br /&gt;
&lt;br /&gt;
==Updating Scripts==&lt;br /&gt;
The repository supports updates via prefedined scripts and the MapDatabase&lt;br /&gt;
To see a list of scripts you currently have set to updatable, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;. &lt;br /&gt;
For users on Lich 5+, you want &amp;lt;CODE&amp;gt;Lich: off&amp;lt;/CODE&amp;gt; to be displayed.&lt;br /&gt;
&lt;br /&gt;
To add a script to be updated, &amp;lt;CODE&amp;gt;;repo set-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
To view scripts you have set to be auto-updated, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
It is only recommended to set scripts from authors you trust to auto-update.&lt;br /&gt;
&lt;br /&gt;
If you want to remove, &amp;lt;CODE&amp;gt;;repo unset-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Popular Lich Scripts==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=popularscripts /&amp;gt;The following are a list of scripts that enhance or extend basic functions of Gemstone IV and can improve or streamline your gaming experience to a point where you can&#039;t think of ever going back. It&#039;s not all inclusive but contains a good starter set or some of the most popular scripts in use. &lt;br /&gt;
=== Core components installed with Lich ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generally speaking, the below scripts should not need to be updated manually by the user, especially if the user keeps up to date on the current lich version.&#039;&#039;&#039; &lt;br /&gt;
* [[Lich:Script Alias|alias]] - A default script used to create shortcuts in lich. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Autostart|autostart]] - A default script to handle which scripts run on startup. See wiki page for details.&lt;br /&gt;
* [[Script Go2|go2]] - Go2 is an intelligent travel script that is synchronized to many of the more complex scripts. Go2 uses a Room Number system and can intelligently plot routes between most any two rooms in all of Elanthia. Use can be as simple as &amp;lt;code&amp;gt;;go2 town&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;;go2 bank&amp;lt;/code&amp;gt; to head to the nearest town square or bank. Use &amp;lt;code&amp;gt;;go2 targets&amp;lt;/code&amp;gt; to see a list of pre-programmed locations broken down by towns. Or, use &amp;lt;code&amp;gt;;go2 save &amp;lt;new location name&amp;gt;=&amp;lt;new location room number&amp;gt;&amp;lt;/code&amp;gt; to create your own locations. Go2 is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Lich:Script Map|map]] - map (fork of Narost/XNarost) is an active map library that can display your location and allows Point-And-Click travel. Simply right click and choose a map, pick a room on it and click on it. map is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Script Repository|repository]] - A default script to view and download other scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Vars|vars]] - A default script to create and view variables for both users and scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Version|version]] - A default script to output your current lich version and other information. See wiki page for details.&lt;br /&gt;
&lt;br /&gt;
=== Scripts maintained by Elanthia-Online ===&lt;br /&gt;
* [[Lich:Script Bigshot|bigshot]] - A script for attacking and hunting routines. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;blackarts&#039;&#039;&#039; - A script for doing various [[alchemy]] tasks. &amp;lt;CODE&amp;gt;;blackarts setup&amp;lt;/CODE&amp;gt; for configuration details&lt;br /&gt;
* [[Lich:Script Ebounty|ebounty]] - A script to get and perform bounties. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecaster&#039;&#039;&#039; - Allows user to type just the spell number and have lich cast that spell. Usage syntax is &amp;lt;code&amp;gt;;ecaster setup&amp;lt;/code&amp;gt; for configuration. Set to autostart.&lt;br /&gt;
* &#039;&#039;&#039;echild&#039;&#039;&#039; - A child bounty script that monitors for and returns a child during bounty sessions. Add to autostart or your hunting script when performing a bounty.&lt;br /&gt;
* [[Lich:Script Ecleanse|ecleanse]] - A script for dealing with status conditions. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecure&#039;&#039;&#039; - A script for healing for empaths. Usage syntax is &amp;lt;code&amp;gt;;ecure setup&amp;lt;/code&amp;gt; for first usage.&lt;br /&gt;
* [[Lich:Script Eherbs|eherbs]] - A herb healing and stocking script.  See wiki page for details.&lt;br /&gt;
* [[Lich:Script Eloot|eloot]] - A looting and loot management script. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;elogin&#039;&#039;&#039; - A script for command line login for your characters. . Usage syntax is &amp;lt;code&amp;gt;;elogin &amp;lt;charname&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;escortgo2&#039;&#039;&#039; - A script for bounty escorts. Usage syntax is &amp;lt;code&amp;gt;;escortgo2 help&amp;lt;/code&amp;gt; for relevant commands (replaces ;ego2)&lt;br /&gt;
* [[Lich:Script Ewaggle|ewaggle]] - A script for spelling yourself and others up. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ewander&#039;&#039;&#039; - The last of the Trifector of Travel, wander will move from room to room until it runs into a Boundary - a specified room number - or finds a room with a monster AND empty of players. Wander can be used to create a walled in hunting ground, letting you automatically move from room to room without having to use keystrokes. Use the &amp;lt;code&amp;gt;;ewander add&amp;lt;/code&amp;gt; command to add the room you are currently standing in to the Wander List. Note: Wander will NOT enter your boundary rooms. For example, adding Town Square East to the list and then executing ;ewander from within the confines of Moot Hall will send your character exploring every room in Moot, but unable to leave as TSE is a Boundary.&lt;br /&gt;
* [[Lich:Script foreach|foreach]] - A script for sending a series of commands for each item that matches its criteria. See wiki page for details.&lt;br /&gt;
* &#039;&#039;&#039;jbackup &#039;&#039;&#039; - A excellent backup and recovery tool that allows lich database and any additional file backup a user prefers. Set to autostart. &lt;br /&gt;
* &#039;&#039;&#039;ledger&#039;&#039;&#039; - A scripting for tracking your silver and bounty incoming across sessions and over time per character and account with a nice ascii display. Requires ascii_charts gem (installed by default with Lich 5.7.0+ full installer)&lt;br /&gt;
* &#039;&#039;&#039;signore &#039;&#039;&#039; - A script for using society powers &amp;lt;CODE&amp;gt;;signore setup&amp;lt;/CODE&amp;gt; for configuration&lt;br /&gt;
* &#039;&#039;&#039;resource&#039;&#039;&#039; - A script for determining your current player service bonus. &amp;lt;CODE&amp;gt; ;resource bonus &amp;lt;/CODE&amp;gt; Can also be used to determine the cost of enchanting with the syntax ;resource calc &amp;lt;starting enchant&amp;gt; &amp;lt;ending enchant&amp;gt; &amp;lt;cost per essence&amp;gt; as in &amp;lt;CODE&amp;gt;;resource calc 35 45 50&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;uberbar_eo &#039;&#039;&#039; - The most current Uberbar variant. This will provide a paperdoll with room number, resource information, etc. inside Wrayth. Set to autostart. Note- there is a small performance impact when using Uberbars.&lt;br /&gt;
&lt;br /&gt;
=== Other scripts that are popular ===&lt;br /&gt;
* &#039;&#039;&#039;character-planner &#039;&#039;&#039; - A script for planning out your character skills and training. &amp;lt;CODE&amp;gt;;character-planner&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;colmaster &#039;&#039;&#039; - A script for getting and performing COL tasks in Solhaven&lt;br /&gt;
* &#039;&#039;&#039;dirty-deeds &#039;&#039;&#039; - A script for getting deeds in IMT and WL. &amp;lt;CODE&amp;gt;;dirty-deeds setup&amp;lt;/CODE&amp;gt; for configuration  &lt;br /&gt;
* [[Script invdb|invdb]] - An inventory management database. See wiki page for details&lt;br /&gt;
* &#039;&#039;&#039;linktothefast&#039;&#039;&#039; - A complex script that provides highlighting for Wrayth links when links are disabled. This script can cause issues with [[STOW]] settings, so disable prior to adjusting those settings.&lt;br /&gt;
* [[Script LNet|lnet]] - An out of game, third party, not Simutronics controlled chat server. &amp;lt;CODE&amp;gt;;repo download lnet --author=elanthia-online&amp;lt;/CODE&amp;gt;. See wiki page for details &#039;&#039;&#039;LNet should be installed at your own risk&#039;&#039;&#039;. Simutronics has no control over LNet or policy enforcement there. The in-game [[ESP]] is now available and replaces many of the functions that LNet provided.&lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; - A script to perform repetitive set of commands. Usage syntax is &amp;lt;code&amp;gt;;multi; &amp;lt;number&amp;gt; &amp;lt;action&amp;gt;&amp;lt;/code&amp;gt; such as &amp;lt;code&amp;gt;;multi 10, get my diamond, drop my diamond&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;rogues&#039;&#039;&#039; - A script for rogue guild tasks &amp;lt;CODE&amp;gt;;rogues setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;sorter &#039;&#039;&#039; Sorter cleans up your bags and breaks down the the output of a LOOK command, sorting the results by type. Makes looking in your locker or backpack, and especially your gem pouch, infinitely easier. *Note* Sorter can mess up some other scripts that deal with inventory, so be cautious in usage. Elanthia-Online scripts like eloot disable sorter when performing relevant functions&lt;br /&gt;
* &#039;&#039;&#039;stat-maximizer&#039;&#039;&#039; - A script for configuring character stats. &amp;lt;CODE&amp;gt;;stat-maximizer&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;tpick&#039;&#039;&#039; - A script for lockpicking &amp;lt;CODE&amp;gt;;tpick setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;volnstep &#039;&#039;&#039; - A script for performing voln tasks in Wehnimer&#039;s Landing&lt;br /&gt;
* &#039;&#039;&#039;warrior&#039;&#039;&#039; - A script for warrior guild tasks &amp;lt;CODE&amp;gt;;warrior setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
&amp;lt;section end=popularscripts /&amp;gt;&amp;lt;!--- Add any additional popular scripts to the list ABOVE this line. ---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Help Output==&lt;br /&gt;
&amp;lt;PRE&amp;gt;Usage:&lt;br /&gt;
&lt;br /&gt;
   ;repository list [alpha]            lists all scripts available for download (optionally in alphabetial order)&lt;br /&gt;
   ;repository sync [alpha]            lists only new and/or updated scripts&lt;br /&gt;
   ;repository info &amp;lt;script name&amp;gt;      shows the comments at the top of the script&lt;br /&gt;
   ;repository download &amp;lt;script name&amp;gt;  downloads the script&lt;br /&gt;
   ;repository upload &amp;lt;script name&amp;gt;    uploads the script&lt;br /&gt;
   ;repository delete &amp;lt;script name&amp;gt;    deletes the script from the server&lt;br /&gt;
&lt;br /&gt;
Scripts should include comments at the top describing the purpose of the script.  Scripts without comments at the top will not show up on the server.&lt;br /&gt;
&lt;br /&gt;
After uploading a script, a key that allows you to delete/update the script will be saved to C:/Games/lich/keys&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sortable list==&lt;br /&gt;
The repository script has an in game GUI available that allows sorting by date, tags, etc. &lt;br /&gt;
&amp;lt;CODE&amp;gt;;repo gui&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Jinx (Repository alternative)==&lt;br /&gt;
&lt;br /&gt;
Jinx is a project that is an alternative form of script installation from the default ;repository. It can serve up scripts for download similar to the ;repo however it is not dependent on a single server that may be prone to outages. Any one can set up their own script library, and then users can add it as a source for the ;jinx script to search and download from.&lt;br /&gt;
&lt;br /&gt;
Jinx is installed in the default Lich5 package. Jinx can be downloaded and installed into your scripts folder from the Elanthia Online github&lt;br /&gt;
&lt;br /&gt;
https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&lt;br /&gt;
&lt;br /&gt;
Right-click the above link and save it into the scripts folder in your lich directory.&lt;br /&gt;
&lt;br /&gt;
Alternatively, the following command can be issued in game via lich to attempt to download the script to the proper directory for you (this command is for when the repository is down and the script cannot be downloaded naturally):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;e require &#039;open-uri&#039;;begin;jinx_remote = open(&amp;quot;https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&amp;quot;); jinx_local = File.open(File.join(SCRIPT_DIR, &#039;jinx.lic&#039;), &amp;quot;wb&amp;quot;); jinx_local.write(jinx_remote.read);ensure; jinx_remote.close(); jinx_local.close();end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once installed you can issue: &amp;lt;CODE&amp;gt;;jinx help&amp;lt;/CODE&amp;gt; for basic usage information.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Mirror===&lt;br /&gt;
In the event the main &amp;lt;code&amp;gt;;repository&amp;lt;/code&amp;gt; is unavailable, there is currently an actively maintained &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; repository that is a direct mirror.&lt;br /&gt;
&lt;br /&gt;
https://github.com/FarFigNewGut/lich_repo_mirror&lt;br /&gt;
&lt;br /&gt;
Scripts can be manually retrieved from this Github repository (they are all located in the lib folder). The repository is also packaged and published for use directly with Jinx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;jinx repo add ffnglichrepoarchive https://ffnglichrepoarchive.netlify.app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(You can use something shorter instead of &amp;quot;ffnglichrepoarchive&amp;quot; for the repo name if you&#039;d like.)&lt;br /&gt;
&lt;br /&gt;
Once it is setup as a source for &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; you can install any scripts from the repo with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# install script for the first time&lt;br /&gt;
;jinx script install &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update previously installed script&lt;br /&gt;
;jinx script update &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example if you wanted to download or update invdb.lic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded invdb.lic&lt;br /&gt;
;jinx script update invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do note, if a script is not available on the archive, it&#039;s likely because it belongs to Elanthia-Online and those scripts are not found within the archive, but under a default repo that is configured with jinx. To use it, you would do the following, using bigshot.lic as an example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install bigshot--repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded bigshot.lic&lt;br /&gt;
;jinx script update bigshot --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also leave the &amp;lt;code&amp;gt;--repo=&amp;lt;REPO_NAME&amp;gt;&amp;lt;/code&amp;gt; off to see all available options for a script that is found.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Offline Update Info===&lt;br /&gt;
At times the default Lich repository (accessed via &amp;lt;code&amp;gt;;repo&amp;lt;/code&amp;gt;) can go offline, below are some helpful commands to update core Lich related functionality using Jinx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# ensure running latest jinx.lic for newest compatibility&lt;br /&gt;
;jinx script update jinx.lic --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update spell-list.xml for new spells, cmans, cooldowns, etc&lt;br /&gt;
;jinx data update spell-list.xml --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update gameobj-data.xml for proper classification of NPCs and items&lt;br /&gt;
;jinx data update gameobj-data.xml --repo=core&lt;br /&gt;
&lt;br /&gt;
# update mapdb and associated missing map files for graphical use&lt;br /&gt;
;jinx data update mapdb.json --repo=core&lt;br /&gt;
&lt;br /&gt;
# update infomon for proper ingame tracking of skills, stats, spells, effects&lt;br /&gt;
;jinx script update infomon.lic --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Screenshot==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Repo-1.png|Repo&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=235575</id>
		<title>Lich:Script Repository</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=235575"/>
		<updated>2025-04-04T13:51:17Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Scripts maintained by Elanthia-Online */ spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
The repository, owned by Tillmen, is the most common location for downloading scripts that are not pre-installed with Lich. &lt;br /&gt;
&lt;br /&gt;
==How to Use the Repository==&lt;br /&gt;
&lt;br /&gt;
The repository has four basic commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;repository&lt;br /&gt;
&lt;br /&gt;
;repository download &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository info &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first shows a Help screen and is the root command for all others.&lt;br /&gt;
&lt;br /&gt;
The second, often shortened to &#039;;repo down&#039;, lets you download a specified script.&lt;br /&gt;
&lt;br /&gt;
Third, INFO provides information about whatever script is specified. If the author has been kind and thorough, this will tell you how to use the script and if it has any interdependencies.&lt;br /&gt;
&lt;br /&gt;
Fourth, LIST will list all scripts in the repository.&lt;br /&gt;
&lt;br /&gt;
==Updating Scripts==&lt;br /&gt;
The repository supports updates via prefedined scripts and the MapDatabase&lt;br /&gt;
To see a list of scripts you currently have set to updatable, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;. &lt;br /&gt;
For users on Lich 5+, you want &amp;lt;CODE&amp;gt;Lich: off&amp;lt;/CODE&amp;gt; to be displayed.&lt;br /&gt;
&lt;br /&gt;
To add a script to be updated, &amp;lt;CODE&amp;gt;;repo set-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
To view scripts you have set to be auto-updated, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
It is only recommended to set scripts from authors you trust to auto-update.&lt;br /&gt;
&lt;br /&gt;
If you want to remove, &amp;lt;CODE&amp;gt;;repo unset-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Popular Lich Scripts==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=popularscripts /&amp;gt;The following are a list of scripts that enhance or extend basic functions of Gemstone IV and can improve or streamline your gaming experience to a point where you can&#039;t think of ever going back. It&#039;s not all inclusive but contains a good starter set or some of the most popular scripts in use. &lt;br /&gt;
=== Core components installed with Lich ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generally speaking, the below scripts should not need to be updated manually by the user, especially if the user keeps up to date on the current lich version.&#039;&#039;&#039; &lt;br /&gt;
* [[Lich:Script Alias|alias]] - A default script used to create shortcuts in lich. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Autostart|autostart]] - A default script to handle which scripts run on startup. See wiki page for details.&lt;br /&gt;
* [[Script Go2|go2]] - Go2 is an intelligent travel script that is synchronized to many of the more complex scripts. Go2 uses a Room Number system and can intelligently plot routes between most any two rooms in all of Elanthia. Use can be as simple as &amp;lt;code&amp;gt;;go2 town&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;;go2 bank&amp;lt;/code&amp;gt; to head to the nearest town square or bank. Use &amp;lt;code&amp;gt;;go2 targets&amp;lt;/code&amp;gt; to see a list of pre-programmed locations broken down by towns. Or, use &amp;lt;code&amp;gt;;go2 save &amp;lt;new location name&amp;gt;=&amp;lt;new location room number&amp;gt;&amp;lt;/code&amp;gt; to create your own locations. Go2 is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Lich:Script Map|map]] - map (fork of Narost/XNarost) is an active map library that can display your location and allows Point-And-Click travel. Simply right click and choose a map, pick a room on it and click on it. map is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Script Repository|repository]] - A default script to view and dowload other scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Vars|vars]] - A default script to create and view variables for both users and scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Version|version]] - A default script to output your current lich version and other information. See wiki page for details.&lt;br /&gt;
&lt;br /&gt;
=== Scripts maintained by Elanthia-Online ===&lt;br /&gt;
* [[Lich:Script Bigshot|bigshot]] - A script for attacking and hunting routines. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;blackarts&#039;&#039;&#039; - A script for doing various [[alchemy]] tasks. &amp;lt;CODE&amp;gt;;blackarts setup&amp;lt;/CODE&amp;gt; for configuration details&lt;br /&gt;
* [[Lich:Script Ebounty|ebounty]] - A script to get and perform bounties. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecaster&#039;&#039;&#039; - Allows user to type just the spell number and have lich cast that spell. Usage syntax is &amp;lt;code&amp;gt;;ecaster setup&amp;lt;/code&amp;gt; for configuration. Set to autostart.&lt;br /&gt;
* &#039;&#039;&#039;echild&#039;&#039;&#039; - A child bounty script that monitors for and returns a child during bounty sessions. Add to autostart or your hunting script when performing a bounty.&lt;br /&gt;
* [[Lich:Script Ecleanse|ecleanse]] - A script for dealing with status conditions. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecure&#039;&#039;&#039; - A script for healing for empaths. Usage syntax is &amp;lt;code&amp;gt;;ecure setup&amp;lt;/code&amp;gt; for first usage.&lt;br /&gt;
* [[Lich:Script Eherbs|eherbs]] - A herb healing and stocking script.  See wiki page for details.&lt;br /&gt;
* [[Lich:Script Eloot|eloot]] - A looting and loot management script. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;elogin&#039;&#039;&#039; - A script for command line login for your characters. . Usage syntax is &amp;lt;code&amp;gt;;elogin &amp;lt;charname&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;escortgo2&#039;&#039;&#039; - A script for bounty escorts. Usage syntax is &amp;lt;code&amp;gt;;escortgo2 help&amp;lt;/code&amp;gt; for relevant commands (replaces ;ego2)&lt;br /&gt;
* [[Lich:Script Ewaggle|ewaggle]] - A script for spelling yourself and others up. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ewander&#039;&#039;&#039; - The last of the Trifector of Travel, wander will move from room to room until it runs into a Boundary - a specified room number - or finds a room with a monster AND empty of players. Wander can be used to create a walled in hunting ground, letting you automatically move from room to room without having to use keystrokes. Use the &amp;lt;code&amp;gt;;ewander add&amp;lt;/code&amp;gt; command to add the room you are currently standing in to the Wander List. Note: Wander will NOT enter your boundary rooms. For example, adding Town Square East to the list and then executing ;ewander from within the confines of Moot Hall will send your character exploring every room in Moot, but unable to leave as TSE is a Boundary.&lt;br /&gt;
* [[Lich:Script foreach|foreach]] - A script for sending a series of commands for each item that matches its criteria. See wiki page for details.&lt;br /&gt;
* &#039;&#039;&#039;jbackup &#039;&#039;&#039; - A excellent backup and recovery tool that allows lich database and any additional file backup a user prefers. Set to autostart. &lt;br /&gt;
* &#039;&#039;&#039;ledger&#039;&#039;&#039; - A scripting for tracking your silver and bounty incoming across sessions and over time per character and account with a nice ascii display. Requires ascii_charts gem (installed by default with Lich 5.7.0+ full installer)&lt;br /&gt;
* &#039;&#039;&#039;signore &#039;&#039;&#039; - A script for using society powers &amp;lt;CODE&amp;gt;;signore setup&amp;lt;/CODE&amp;gt; for configuration&lt;br /&gt;
* &#039;&#039;&#039;resource&#039;&#039;&#039; - A script for determining your current player service bonus. &amp;lt;CODE&amp;gt; ;resource bonus &amp;lt;/CODE&amp;gt; Can also be used to determine the cost of enchanting with the syntax ;resource calc &amp;lt;starting enchant&amp;gt; &amp;lt;ending enchant&amp;gt; &amp;lt;cost per essence&amp;gt; as in &amp;lt;CODE&amp;gt;;resource calc 35 45 50&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;uberbar_eo &#039;&#039;&#039; - The most current Uberbar variant. This will provide a paperdoll with room number, resource information, etc. inside Wrayth. Set to autostart. Note- there is a small performance impact when using Uberbars.&lt;br /&gt;
&lt;br /&gt;
=== Other scripts that are popular ===&lt;br /&gt;
* &#039;&#039;&#039;character-planner &#039;&#039;&#039; - A script for planning out your character skills and training. &amp;lt;CODE&amp;gt;;character-planner&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;colmaster &#039;&#039;&#039; - A script for getting and performing COL tasks in Solhaven&lt;br /&gt;
* &#039;&#039;&#039;dirty-deeds &#039;&#039;&#039; - A script for getting deeds in IMT and WL. &amp;lt;CODE&amp;gt;;dirty-deeds setup&amp;lt;/CODE&amp;gt; for configuration  &lt;br /&gt;
* [[Script invdb|invdb]] - An inventory management database. See wiki page for details&lt;br /&gt;
* &#039;&#039;&#039;linktothefast&#039;&#039;&#039; - A complex script that provides highlighting for Wrayth links when links are disabled. This script can cause issues with [[STOW]] settings, so disable prior to adjusting those settings.&lt;br /&gt;
* [[Script LNet|lnet]] - An out of game, third party, not Simutronics controlled chat server. &amp;lt;CODE&amp;gt;;repo download lnet --author=elanthia-online&amp;lt;/CODE&amp;gt;. See wiki page for details &#039;&#039;&#039;LNet should be installed at your own risk&#039;&#039;&#039;. Simutronics has no control over LNet or policy enforcement there. The in-game [[ESP]] is now available and replaces many of the functions that LNet provided.&lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; - A script to perform repetitive set of commands. Usage syntax is &amp;lt;code&amp;gt;;multi; &amp;lt;number&amp;gt; &amp;lt;action&amp;gt;&amp;lt;/code&amp;gt; such as &amp;lt;code&amp;gt;;multi 10, get my diamond, drop my diamond&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;rogues&#039;&#039;&#039; - A script for rogue guild tasks &amp;lt;CODE&amp;gt;;rogues setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;sorter &#039;&#039;&#039; Sorter cleans up your bags and breaks down the the output of a LOOK command, sorting the results by type. Makes looking in your locker or backpack, and especially your gem pouch, infinitely easier. *Note* Sorter can mess up some other scripts that deal with inventory, so be cautious in usage. Elanthia-Online scripts like eloot disable sorter when performing relevant functions&lt;br /&gt;
* &#039;&#039;&#039;stat-maximizer&#039;&#039;&#039; - A script for configuring character stats. &amp;lt;CODE&amp;gt;;stat-maximizer&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;tpick&#039;&#039;&#039; - A script for lockpicking &amp;lt;CODE&amp;gt;;tpick setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;volnstep &#039;&#039;&#039; - A script for performing voln tasks in Wehnimer&#039;s Landing&lt;br /&gt;
* &#039;&#039;&#039;warrior&#039;&#039;&#039; - A script for warrior guild tasks &amp;lt;CODE&amp;gt;;warrior setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
&amp;lt;section end=popularscripts /&amp;gt;&amp;lt;!--- Add any additional popular scripts to the list ABOVE this line. ---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Help Output==&lt;br /&gt;
&amp;lt;PRE&amp;gt;Usage:&lt;br /&gt;
&lt;br /&gt;
   ;repository list [alpha]            lists all scripts available for download (optionally in alphabetial order)&lt;br /&gt;
   ;repository sync [alpha]            lists only new and/or updated scripts&lt;br /&gt;
   ;repository info &amp;lt;script name&amp;gt;      shows the comments at the top of the script&lt;br /&gt;
   ;repository download &amp;lt;script name&amp;gt;  downloads the script&lt;br /&gt;
   ;repository upload &amp;lt;script name&amp;gt;    uploads the script&lt;br /&gt;
   ;repository delete &amp;lt;script name&amp;gt;    deletes the script from the server&lt;br /&gt;
&lt;br /&gt;
Scripts should include comments at the top describing the purpose of the script.  Scripts without comments at the top will not show up on the server.&lt;br /&gt;
&lt;br /&gt;
After uploading a script, a key that allows you to delete/update the script will be saved to C:/Games/lich/keys&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sortable list==&lt;br /&gt;
The repository script has an in game GUI available that allows sorting by date, tags, etc. &lt;br /&gt;
&amp;lt;CODE&amp;gt;;repo gui&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Jinx (Repository alternative)==&lt;br /&gt;
&lt;br /&gt;
Jinx is a project that is an alternative form of script installation from the default ;repository. It can serve up scripts for download similar to the ;repo however it is not dependent on a single server that may be prone to outages. Any one can set up their own script library, and then users can add it as a source for the ;jinx script to search and download from.&lt;br /&gt;
&lt;br /&gt;
Jinx is installed in the default Lich5 package. Jinx can be downloaded and installed into your scripts folder from the Elanthia Online github&lt;br /&gt;
&lt;br /&gt;
https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&lt;br /&gt;
&lt;br /&gt;
Right-click the above link and save it into the scripts folder in your lich directory.&lt;br /&gt;
&lt;br /&gt;
Alternatively, the following command can be issued in game via lich to attempt to download the script to the proper directory for you (this command is for when the repository is down and the script cannot be downloaded naturally):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;e require &#039;open-uri&#039;;begin;jinx_remote = open(&amp;quot;https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&amp;quot;); jinx_local = File.open(File.join(SCRIPT_DIR, &#039;jinx.lic&#039;), &amp;quot;wb&amp;quot;); jinx_local.write(jinx_remote.read);ensure; jinx_remote.close(); jinx_local.close();end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once installed you can issue: &amp;lt;CODE&amp;gt;;jinx help&amp;lt;/CODE&amp;gt; for basic usage information.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Mirror===&lt;br /&gt;
In the event the main &amp;lt;code&amp;gt;;repository&amp;lt;/code&amp;gt; is unavailable, there is currently an actively maintained &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; repository that is a direct mirror.&lt;br /&gt;
&lt;br /&gt;
https://github.com/FarFigNewGut/lich_repo_mirror&lt;br /&gt;
&lt;br /&gt;
Scripts can be manually retrieved from this Github repository (they are all located in the lib folder). The repository is also packaged and published for use directly with Jinx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;jinx repo add ffnglichrepoarchive https://ffnglichrepoarchive.netlify.app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(You can use something shorter instead of &amp;quot;ffnglichrepoarchive&amp;quot; for the repo name if you&#039;d like.)&lt;br /&gt;
&lt;br /&gt;
Once it is setup as a source for &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; you can install any scripts from the repo with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# install script for the first time&lt;br /&gt;
;jinx script install &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update previously installed script&lt;br /&gt;
;jinx script update &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example if you wanted to download or update invdb.lic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded invdb.lic&lt;br /&gt;
;jinx script update invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do note, if a script is not available on the archive, it&#039;s likely because it belongs to Elanthia-Online and those scripts are not found within the archive, but under a default repo that is configured with jinx. To use it, you would do the following, using bigshot.lic as an example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install bigshot--repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded bigshot.lic&lt;br /&gt;
;jinx script update bigshot --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also leave the &amp;lt;code&amp;gt;--repo=&amp;lt;REPO_NAME&amp;gt;&amp;lt;/code&amp;gt; off to see all available options for a script that is found.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Offline Update Info===&lt;br /&gt;
At times the default Lich repository (accessed via &amp;lt;code&amp;gt;;repo&amp;lt;/code&amp;gt;) can go offline, below are some helpful commands to update core Lich related functionality using Jinx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# ensure running latest jinx.lic for newest compatibility&lt;br /&gt;
;jinx script update jinx.lic --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update spell-list.xml for new spells, cmans, cooldowns, etc&lt;br /&gt;
;jinx data update spell-list.xml --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update gameobj-data.xml for proper classification of NPCs and items&lt;br /&gt;
;jinx data update gameobj-data.xml --repo=core&lt;br /&gt;
&lt;br /&gt;
# update mapdb and associated missing map files for graphical use&lt;br /&gt;
;jinx data update mapdb.json --repo=core&lt;br /&gt;
&lt;br /&gt;
# update infomon for proper ingame tracking of skills, stats, spells, effects&lt;br /&gt;
;jinx script update infomon.lic --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Screenshot==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Repo-1.png|Repo&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=235572</id>
		<title>Lich:Script Repository</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=235572"/>
		<updated>2025-04-04T13:49:06Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Other scripts that are popular */ added info about ESP to lnet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
The repository, owned by Tillmen, is the most common location for downloading scripts that are not pre-installed with Lich. &lt;br /&gt;
&lt;br /&gt;
==How to Use the Repository==&lt;br /&gt;
&lt;br /&gt;
The repository has four basic commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;repository&lt;br /&gt;
&lt;br /&gt;
;repository download &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository info &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first shows a Help screen and is the root command for all others.&lt;br /&gt;
&lt;br /&gt;
The second, often shortened to &#039;;repo down&#039;, lets you download a specified script.&lt;br /&gt;
&lt;br /&gt;
Third, INFO provides information about whatever script is specified. If the author has been kind and thorough, this will tell you how to use the script and if it has any interdependencies.&lt;br /&gt;
&lt;br /&gt;
Fourth, LIST will list all scripts in the repository.&lt;br /&gt;
&lt;br /&gt;
==Updating Scripts==&lt;br /&gt;
The repository supports updates via prefedined scripts and the MapDatabase&lt;br /&gt;
To see a list of scripts you currently have set to updatable, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;. &lt;br /&gt;
For users on Lich 5+, you want &amp;lt;CODE&amp;gt;Lich: off&amp;lt;/CODE&amp;gt; to be displayed.&lt;br /&gt;
&lt;br /&gt;
To add a script to be updated, &amp;lt;CODE&amp;gt;;repo set-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
To view scripts you have set to be auto-updated, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
It is only recommended to set scripts from authors you trust to auto-update.&lt;br /&gt;
&lt;br /&gt;
If you want to remove, &amp;lt;CODE&amp;gt;;repo unset-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Popular Lich Scripts==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=popularscripts /&amp;gt;The following are a list of scripts that enhance or extend basic functions of Gemstone IV and can improve or streamline your gaming experience to a point where you can&#039;t think of ever going back. It&#039;s not all inclusive but contains a good starter set or some of the most popular scripts in use. &lt;br /&gt;
=== Core components installed with Lich ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generally speaking, the below scripts should not need to be updated manually by the user, especially if the user keeps up to date on the current lich version.&#039;&#039;&#039; &lt;br /&gt;
* [[Lich:Script Alias|alias]] - A default script used to create shortcuts in lich. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Autostart|autostart]] - A default script to handle which scripts run on startup. See wiki page for details.&lt;br /&gt;
* [[Script Go2|go2]] - Go2 is an intelligent travel script that is synchronized to many of the more complex scripts. Go2 uses a Room Number system and can intelligently plot routes between most any two rooms in all of Elanthia. Use can be as simple as &amp;lt;code&amp;gt;;go2 town&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;;go2 bank&amp;lt;/code&amp;gt; to head to the nearest town square or bank. Use &amp;lt;code&amp;gt;;go2 targets&amp;lt;/code&amp;gt; to see a list of pre-programmed locations broken down by towns. Or, use &amp;lt;code&amp;gt;;go2 save &amp;lt;new location name&amp;gt;=&amp;lt;new location room number&amp;gt;&amp;lt;/code&amp;gt; to create your own locations. Go2 is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Lich:Script Map|map]] - map (fork of Narost/XNarost) is an active map library that can display your location and allows Point-And-Click travel. Simply right click and choose a map, pick a room on it and click on it. map is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Script Repository|repository]] - A default script to view and dowload other scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Vars|vars]] - A default script to create and view variables for both users and scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Version|version]] - A default script to output your current lich version and other information. See wiki page for details.&lt;br /&gt;
&lt;br /&gt;
=== Scripts maintained by Elanthia-Online ===&lt;br /&gt;
* [[Lich:Script Bigshot|bigshot]] - A script for attacking and hunting routines. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;blackarts&#039;&#039;&#039; - A script for doing various [[alchemy]] tasks. &amp;lt;CODE&amp;gt;;blackarts setup&amp;lt;/CODE&amp;gt; for configuration details&lt;br /&gt;
* [[Lich:Script Ebounty|ebounty]] - A script to get and perform bounties. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecaster&#039;&#039;&#039; - Allows user to type just the spell number and have lich cast that spell. Usage syntax is &amp;lt;code&amp;gt;;ecaster setup&amp;lt;/code&amp;gt; for configuration. Set to autostart.&lt;br /&gt;
* &#039;&#039;&#039;echild&#039;&#039;&#039; - A child bounty script that monitors for and returns a child during bounty sessions. Add to autostart or your hunting script when performing a bounty.&lt;br /&gt;
* [[Lich:Script Ecleanse|ecleanse]] - A script for dealing with status conditions. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecure&#039;&#039;&#039; - A script for healing for empaths. Usage syntax is &amp;lt;code&amp;gt;;ecure setup&amp;lt;/code&amp;gt; for first usage.&lt;br /&gt;
* [[Lich:Script Eherbs|eherbs]] - A herb heaing and stocking script.  See wiki page for details.&lt;br /&gt;
* [[Lich:Script Eloot|eloot]] - A looting and loot management script. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;elogin&#039;&#039;&#039; - A script for command line login for your characters. . Usage syntax is &amp;lt;code&amp;gt;;elogin &amp;lt;charname&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;escortgo2&#039;&#039;&#039; - A script for bounty escorts. Usage syntax is &amp;lt;code&amp;gt;;escortgo2 help&amp;lt;/code&amp;gt; for relevant commands (replaces ;ego2)&lt;br /&gt;
* [[Lich:Script Ewaggle|ewaggle]] - A script for spelling yourself and others up. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ewander&#039;&#039;&#039; - The last of the Trifector of Travel, wander will move from room to room until it runs into a Boundary - a specified room number - or finds a room with a monster AND empty of players. Wander can be used to create a walled in hunting ground, letting you automatically move from room to room without having to use keystrokes. Use the &amp;lt;code&amp;gt;;ewander add&amp;lt;/code&amp;gt; command to add the room you are currently standing in to the Wander List. Note: Wander will NOT enter your boundary rooms. For example, adding Town Square East to the list and then executing ;ewander from within the confines of Moot Hall will send your character exploring every room in Moot, but unable to leave as TSE is a Boundary.&lt;br /&gt;
* [[Lich:Script foreach|foreach]] - A script for sending a series of commands for each item that matches its criteria. See wiki page for details.&lt;br /&gt;
* &#039;&#039;&#039;jbackup &#039;&#039;&#039; - A excellent backup and recovery tool that allows lich database and any additional file backup a user prefers. Set to autostart. &lt;br /&gt;
* &#039;&#039;&#039;ledger&#039;&#039;&#039; - A scripting for tracking your silver and bounty incoming across sessios and over time per character and account with a nice ascii discplay. Requires ascii_charts gem (installed by default with Lich 5.7.0+ full installer)&lt;br /&gt;
* &#039;&#039;&#039;signore &#039;&#039;&#039; - A script for using society powers &amp;lt;CODE&amp;gt;;signore setup&amp;lt;/CODE&amp;gt; for configuration&lt;br /&gt;
* &#039;&#039;&#039;resource&#039;&#039;&#039; - A script for determining your current player service bonus. &amp;lt;CODE&amp;gt; ;resource bonus &amp;lt;/CODE&amp;gt; Can also be used to determine the cost of enchanting with the syntanx ;Resource calc &amp;lt;starting enchant&amp;gt; &amp;lt;ending enchant&amp;gt; &amp;lt;cost per essence&amp;gt; as in &amp;lt;CODE&amp;gt;;resource calc 35 45 50&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;uberbar_eo &#039;&#039;&#039; - The most current Uberbar variant. This will provide a paperdoll with room number, resource information, etc inside wrayth. Set to autostart. Note- there is a small performance impact when using Uberbars.&lt;br /&gt;
&lt;br /&gt;
=== Other scripts that are popular ===&lt;br /&gt;
* &#039;&#039;&#039;character-planner &#039;&#039;&#039; - A script for planning out your character skills and training. &amp;lt;CODE&amp;gt;;character-planner&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;colmaster &#039;&#039;&#039; - A script for getting and performing COL tasks in Solhaven&lt;br /&gt;
* &#039;&#039;&#039;dirty-deeds &#039;&#039;&#039; - A script for getting deeds in IMT and WL. &amp;lt;CODE&amp;gt;;dirty-deeds setup&amp;lt;/CODE&amp;gt; for configuration  &lt;br /&gt;
* [[Script invdb|invdb]] - An inventory management database. See wiki page for details&lt;br /&gt;
* &#039;&#039;&#039;linktothefast&#039;&#039;&#039; - A complex script that provides highlighting for Wrayth links when links are disabled. This script can cause issues with [[STOW]] settings, so disable prior to adjusting those settings.&lt;br /&gt;
* [[Script LNet|lnet]] - An out of game, third party, not Simutronics controlled chat server. &amp;lt;CODE&amp;gt;;repo download lnet --author=elanthia-online&amp;lt;/CODE&amp;gt;. See wiki page for details &#039;&#039;&#039;LNet should be installed at your own risk&#039;&#039;&#039;. Simutronics has no control over LNet or policy enforcement there. The in-game [[ESP]] is now available and replaces many of the functions that LNet provided.&lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; - A script to perform repetitive set of commands. Usage syntax is &amp;lt;code&amp;gt;;multi; &amp;lt;number&amp;gt; &amp;lt;action&amp;gt;&amp;lt;/code&amp;gt; such as &amp;lt;code&amp;gt;;multi 10, get my diamond, drop my diamond&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;rogues&#039;&#039;&#039; - A script for rogue guild tasks &amp;lt;CODE&amp;gt;;rogues setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;sorter &#039;&#039;&#039; Sorter cleans up your bags and breaks down the the output of a LOOK command, sorting the results by type. Makes looking in your locker or backpack, and especially your gem pouch, infinitely easier. *Note* Sorter can mess up some other scripts that deal with inventory, so be cautious in usage. Elanthia-Online scripts like eloot disable sorter when performing relevant functions&lt;br /&gt;
* &#039;&#039;&#039;stat-maximizer&#039;&#039;&#039; - A script for configuring character stats. &amp;lt;CODE&amp;gt;;stat-maximizer&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;tpick&#039;&#039;&#039; - A script for lockpicking &amp;lt;CODE&amp;gt;;tpick setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;volnstep &#039;&#039;&#039; - A script for performing voln tasks in Wehnimer&#039;s Landing&lt;br /&gt;
* &#039;&#039;&#039;warrior&#039;&#039;&#039; - A script for warrior guild tasks &amp;lt;CODE&amp;gt;;warrior setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
&amp;lt;section end=popularscripts /&amp;gt;&amp;lt;!--- Add any additional popular scripts to the list ABOVE this line. ---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Help Output==&lt;br /&gt;
&amp;lt;PRE&amp;gt;Usage:&lt;br /&gt;
&lt;br /&gt;
   ;repository list [alpha]            lists all scripts available for download (optionally in alphabetial order)&lt;br /&gt;
   ;repository sync [alpha]            lists only new and/or updated scripts&lt;br /&gt;
   ;repository info &amp;lt;script name&amp;gt;      shows the comments at the top of the script&lt;br /&gt;
   ;repository download &amp;lt;script name&amp;gt;  downloads the script&lt;br /&gt;
   ;repository upload &amp;lt;script name&amp;gt;    uploads the script&lt;br /&gt;
   ;repository delete &amp;lt;script name&amp;gt;    deletes the script from the server&lt;br /&gt;
&lt;br /&gt;
Scripts should include comments at the top describing the purpose of the script.  Scripts without comments at the top will not show up on the server.&lt;br /&gt;
&lt;br /&gt;
After uploading a script, a key that allows you to delete/update the script will be saved to C:/Games/lich/keys&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sortable list==&lt;br /&gt;
The repository script has an in game GUI available that allows sorting by date, tags, etc. &lt;br /&gt;
&amp;lt;CODE&amp;gt;;repo gui&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Jinx (Repository alternative)==&lt;br /&gt;
&lt;br /&gt;
Jinx is a project that is an alternative form of script installation from the default ;repository. It can serve up scripts for download similar to the ;repo however it is not dependent on a single server that may be prone to outages. Any one can set up their own script library, and then users can add it as a source for the ;jinx script to search and download from.&lt;br /&gt;
&lt;br /&gt;
Jinx is installed in the default Lich5 package. Jinx can be downloaded and installed into your scripts folder from the Elanthia Online github&lt;br /&gt;
&lt;br /&gt;
https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&lt;br /&gt;
&lt;br /&gt;
Right-click the above link and save it into the scripts folder in your lich directory.&lt;br /&gt;
&lt;br /&gt;
Alternatively, the following command can be issued in game via lich to attempt to download the script to the proper directory for you (this command is for when the repository is down and the script cannot be downloaded naturally):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;e require &#039;open-uri&#039;;begin;jinx_remote = open(&amp;quot;https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&amp;quot;); jinx_local = File.open(File.join(SCRIPT_DIR, &#039;jinx.lic&#039;), &amp;quot;wb&amp;quot;); jinx_local.write(jinx_remote.read);ensure; jinx_remote.close(); jinx_local.close();end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once installed you can issue: &amp;lt;CODE&amp;gt;;jinx help&amp;lt;/CODE&amp;gt; for basic usage information.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Mirror===&lt;br /&gt;
In the event the main &amp;lt;code&amp;gt;;repository&amp;lt;/code&amp;gt; is unavailable, there is currently an actively maintained &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; repository that is a direct mirror.&lt;br /&gt;
&lt;br /&gt;
https://github.com/FarFigNewGut/lich_repo_mirror&lt;br /&gt;
&lt;br /&gt;
Scripts can be manually retrieved from this Github repository (they are all located in the lib folder). The repository is also packaged and published for use directly with Jinx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;jinx repo add ffnglichrepoarchive https://ffnglichrepoarchive.netlify.app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(You can use something shorter instead of &amp;quot;ffnglichrepoarchive&amp;quot; for the repo name if you&#039;d like.)&lt;br /&gt;
&lt;br /&gt;
Once it is setup as a source for &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; you can install any scripts from the repo with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# install script for the first time&lt;br /&gt;
;jinx script install &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update previously installed script&lt;br /&gt;
;jinx script update &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example if you wanted to download or update invdb.lic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded invdb.lic&lt;br /&gt;
;jinx script update invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do note, if a script is not available on the archive, it&#039;s likely because it belongs to Elanthia-Online and those scripts are not found within the archive, but under a default repo that is configured with jinx. To use it, you would do the following, using bigshot.lic as an example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install bigshot--repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded bigshot.lic&lt;br /&gt;
;jinx script update bigshot --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also leave the &amp;lt;code&amp;gt;--repo=&amp;lt;REPO_NAME&amp;gt;&amp;lt;/code&amp;gt; off to see all available options for a script that is found.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Offline Update Info===&lt;br /&gt;
At times the default Lich repository (accessed via &amp;lt;code&amp;gt;;repo&amp;lt;/code&amp;gt;) can go offline, below are some helpful commands to update core Lich related functionality using Jinx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# ensure running latest jinx.lic for newest compatibility&lt;br /&gt;
;jinx script update jinx.lic --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update spell-list.xml for new spells, cmans, cooldowns, etc&lt;br /&gt;
;jinx data update spell-list.xml --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update gameobj-data.xml for proper classification of NPCs and items&lt;br /&gt;
;jinx data update gameobj-data.xml --repo=core&lt;br /&gt;
&lt;br /&gt;
# update mapdb and associated missing map files for graphical use&lt;br /&gt;
;jinx data update mapdb.json --repo=core&lt;br /&gt;
&lt;br /&gt;
# update infomon for proper ingame tracking of skills, stats, spells, effects&lt;br /&gt;
;jinx script update infomon.lic --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Screenshot==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Repo-1.png|Repo&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=235571</id>
		<title>Lich:Script Repository</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=235571"/>
		<updated>2025-04-04T13:46:43Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Scripts maintained by Elanthia-Online */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
The repository, owned by Tillmen, is the most common location for downloading scripts that are not pre-installed with Lich. &lt;br /&gt;
&lt;br /&gt;
==How to Use the Repository==&lt;br /&gt;
&lt;br /&gt;
The repository has four basic commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;repository&lt;br /&gt;
&lt;br /&gt;
;repository download &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository info &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first shows a Help screen and is the root command for all others.&lt;br /&gt;
&lt;br /&gt;
The second, often shortened to &#039;;repo down&#039;, lets you download a specified script.&lt;br /&gt;
&lt;br /&gt;
Third, INFO provides information about whatever script is specified. If the author has been kind and thorough, this will tell you how to use the script and if it has any interdependencies.&lt;br /&gt;
&lt;br /&gt;
Fourth, LIST will list all scripts in the repository.&lt;br /&gt;
&lt;br /&gt;
==Updating Scripts==&lt;br /&gt;
The repository supports updates via prefedined scripts and the MapDatabase&lt;br /&gt;
To see a list of scripts you currently have set to updatable, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;. &lt;br /&gt;
For users on Lich 5+, you want &amp;lt;CODE&amp;gt;Lich: off&amp;lt;/CODE&amp;gt; to be displayed.&lt;br /&gt;
&lt;br /&gt;
To add a script to be updated, &amp;lt;CODE&amp;gt;;repo set-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
To view scripts you have set to be auto-updated, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
It is only recommended to set scripts from authors you trust to auto-update.&lt;br /&gt;
&lt;br /&gt;
If you want to remove, &amp;lt;CODE&amp;gt;;repo unset-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Popular Lich Scripts==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=popularscripts /&amp;gt;The following are a list of scripts that enhance or extend basic functions of Gemstone IV and can improve or streamline your gaming experience to a point where you can&#039;t think of ever going back. It&#039;s not all inclusive but contains a good starter set or some of the most popular scripts in use. &lt;br /&gt;
=== Core components installed with Lich ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generally speaking, the below scripts should not need to be updated manually by the user, especially if the user keeps up to date on the current lich version.&#039;&#039;&#039; &lt;br /&gt;
* [[Lich:Script Alias|alias]] - A default script used to create shortcuts in lich. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Autostart|autostart]] - A default script to handle which scripts run on startup. See wiki page for details.&lt;br /&gt;
* [[Script Go2|go2]] - Go2 is an intelligent travel script that is synchronized to many of the more complex scripts. Go2 uses a Room Number system and can intelligently plot routes between most any two rooms in all of Elanthia. Use can be as simple as &amp;lt;code&amp;gt;;go2 town&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;;go2 bank&amp;lt;/code&amp;gt; to head to the nearest town square or bank. Use &amp;lt;code&amp;gt;;go2 targets&amp;lt;/code&amp;gt; to see a list of pre-programmed locations broken down by towns. Or, use &amp;lt;code&amp;gt;;go2 save &amp;lt;new location name&amp;gt;=&amp;lt;new location room number&amp;gt;&amp;lt;/code&amp;gt; to create your own locations. Go2 is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Lich:Script Map|map]] - map (fork of Narost/XNarost) is an active map library that can display your location and allows Point-And-Click travel. Simply right click and choose a map, pick a room on it and click on it. map is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Script Repository|repository]] - A default script to view and dowload other scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Vars|vars]] - A default script to create and view variables for both users and scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Version|version]] - A default script to output your current lich version and other information. See wiki page for details.&lt;br /&gt;
&lt;br /&gt;
=== Scripts maintained by Elanthia-Online ===&lt;br /&gt;
* [[Lich:Script Bigshot|bigshot]] - A script for attacking and hunting routines. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;blackarts&#039;&#039;&#039; - A script for doing various [[alchemy]] tasks. &amp;lt;CODE&amp;gt;;blackarts setup&amp;lt;/CODE&amp;gt; for configuration details&lt;br /&gt;
* [[Lich:Script Ebounty|ebounty]] - A script to get and perform bounties. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecaster&#039;&#039;&#039; - Allows user to type just the spell number and have lich cast that spell. Usage syntax is &amp;lt;code&amp;gt;;ecaster setup&amp;lt;/code&amp;gt; for configuration. Set to autostart.&lt;br /&gt;
* &#039;&#039;&#039;echild&#039;&#039;&#039; - A child bounty script that monitors for and returns a child during bounty sessions. Add to autostart or your hunting script when performing a bounty.&lt;br /&gt;
* [[Lich:Script Ecleanse|ecleanse]] - A script for dealing with status conditions. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecure&#039;&#039;&#039; - A script for healing for empaths. Usage syntax is &amp;lt;code&amp;gt;;ecure setup&amp;lt;/code&amp;gt; for first usage.&lt;br /&gt;
* [[Lich:Script Eherbs|eherbs]] - A herb heaing and stocking script.  See wiki page for details.&lt;br /&gt;
* [[Lich:Script Eloot|eloot]] - A looting and loot management script. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;elogin&#039;&#039;&#039; - A script for command line login for your characters. . Usage syntax is &amp;lt;code&amp;gt;;elogin &amp;lt;charname&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;escortgo2&#039;&#039;&#039; - A script for bounty escorts. Usage syntax is &amp;lt;code&amp;gt;;escortgo2 help&amp;lt;/code&amp;gt; for relevant commands (replaces ;ego2)&lt;br /&gt;
* [[Lich:Script Ewaggle|ewaggle]] - A script for spelling yourself and others up. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ewander&#039;&#039;&#039; - The last of the Trifector of Travel, wander will move from room to room until it runs into a Boundary - a specified room number - or finds a room with a monster AND empty of players. Wander can be used to create a walled in hunting ground, letting you automatically move from room to room without having to use keystrokes. Use the &amp;lt;code&amp;gt;;ewander add&amp;lt;/code&amp;gt; command to add the room you are currently standing in to the Wander List. Note: Wander will NOT enter your boundary rooms. For example, adding Town Square East to the list and then executing ;ewander from within the confines of Moot Hall will send your character exploring every room in Moot, but unable to leave as TSE is a Boundary.&lt;br /&gt;
* [[Lich:Script foreach|foreach]] - A script for sending a series of commands for each item that matches its criteria. See wiki page for details.&lt;br /&gt;
* &#039;&#039;&#039;jbackup &#039;&#039;&#039; - A excellent backup and recovery tool that allows lich database and any additional file backup a user prefers. Set to autostart. &lt;br /&gt;
* &#039;&#039;&#039;ledger&#039;&#039;&#039; - A scripting for tracking your silver and bounty incoming across sessios and over time per character and account with a nice ascii discplay. Requires ascii_charts gem (installed by default with Lich 5.7.0+ full installer)&lt;br /&gt;
* &#039;&#039;&#039;signore &#039;&#039;&#039; - A script for using society powers &amp;lt;CODE&amp;gt;;signore setup&amp;lt;/CODE&amp;gt; for configuration&lt;br /&gt;
* &#039;&#039;&#039;resource&#039;&#039;&#039; - A script for determining your current player service bonus. &amp;lt;CODE&amp;gt; ;resource bonus &amp;lt;/CODE&amp;gt; Can also be used to determine the cost of enchanting with the syntanx ;Resource calc &amp;lt;starting enchant&amp;gt; &amp;lt;ending enchant&amp;gt; &amp;lt;cost per essence&amp;gt; as in &amp;lt;CODE&amp;gt;;resource calc 35 45 50&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;uberbar_eo &#039;&#039;&#039; - The most current Uberbar variant. This will provide a paperdoll with room number, resource information, etc inside wrayth. Set to autostart. Note- there is a small performance impact when using Uberbars.&lt;br /&gt;
&lt;br /&gt;
=== Other scripts that are popular ===&lt;br /&gt;
* &#039;&#039;&#039;character-planner &#039;&#039;&#039; - A script for planning out your character skills and training. &amp;lt;CODE&amp;gt;;character-planner&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;colmaster &#039;&#039;&#039; - A script for getting and performing COL tasks in Solhaven&lt;br /&gt;
* &#039;&#039;&#039;dirty-deeds &#039;&#039;&#039; - A script for getting deeds in IMT and WL. &amp;lt;CODE&amp;gt;;dirty-deeds setup&amp;lt;/CODE&amp;gt; for configuration  &lt;br /&gt;
* [[Script invdb|invdb]] - An inventory management database. See wiki page for details&lt;br /&gt;
* &#039;&#039;&#039;linktothefast&#039;&#039;&#039; - A complex script that provides highliting for Wryath links when links are disabled. This script can cause issues with [[STOW]] settings, so disable prior to adjusting those settings.&lt;br /&gt;
* [[Script LNet|lnet]] - An out of game, third party, not Simutronics controlled chat server. &amp;lt;CODE&amp;gt;;repo download lnet --author=elanthia-online&amp;lt;/CODE&amp;gt;. See wiki page for details &#039;&#039;&#039;LNET should be installed at your own risk&#039;&#039;&#039;. Simutronics has no control over lnet or policy enforcement there.&lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; - A script to peform repetitive set of commands. Usage syntax is &amp;lt;code&amp;gt;;multi; &amp;lt;number&amp;gt; &amp;lt;action&amp;gt;&amp;lt;/code&amp;gt; such as &amp;lt;code&amp;gt;;multi 10, get my diamond, drop my diamond&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;rogues&#039;&#039;&#039; - A script for rogue guild tasks &amp;lt;CODE&amp;gt;;rogues setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;sorter &#039;&#039;&#039; Sorter cleans up your bags and breaks down the the output of a LOOK command, sorting the results by type. Makes looking in your locker or backpack, and especially your gem pouch, infinitely easier. *Note* Sorter can mess up some other scripts that deal with inventory, so be cautious in usage. Elanthia-Online scripts like eloot disable sorter when performing relevant functions&lt;br /&gt;
* &#039;&#039;&#039;stat-maximizer&#039;&#039;&#039; - A script for configuring character stats. &amp;lt;CODE&amp;gt;;stat-maximizer&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;tpick&#039;&#039;&#039; - A script for lockpicking &amp;lt;CODE&amp;gt;;tpick setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;volnstep &#039;&#039;&#039; - A script for performing voln tasks in Wehnimer&#039;s Landing&lt;br /&gt;
* &#039;&#039;&#039;warrior&#039;&#039;&#039; - A script for warrior guild tasks &amp;lt;CODE&amp;gt;;warrior setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
&amp;lt;section end=popularscripts /&amp;gt;&amp;lt;!--- Add any additional popular scripts to the list ABOVE this line. ---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Help Output==&lt;br /&gt;
&amp;lt;PRE&amp;gt;Usage:&lt;br /&gt;
&lt;br /&gt;
   ;repository list [alpha]            lists all scripts available for download (optionally in alphabetial order)&lt;br /&gt;
   ;repository sync [alpha]            lists only new and/or updated scripts&lt;br /&gt;
   ;repository info &amp;lt;script name&amp;gt;      shows the comments at the top of the script&lt;br /&gt;
   ;repository download &amp;lt;script name&amp;gt;  downloads the script&lt;br /&gt;
   ;repository upload &amp;lt;script name&amp;gt;    uploads the script&lt;br /&gt;
   ;repository delete &amp;lt;script name&amp;gt;    deletes the script from the server&lt;br /&gt;
&lt;br /&gt;
Scripts should include comments at the top describing the purpose of the script.  Scripts without comments at the top will not show up on the server.&lt;br /&gt;
&lt;br /&gt;
After uploading a script, a key that allows you to delete/update the script will be saved to C:/Games/lich/keys&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sortable list==&lt;br /&gt;
The repository script has an in game GUI available that allows sorting by date, tags, etc. &lt;br /&gt;
&amp;lt;CODE&amp;gt;;repo gui&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Jinx (Repository alternative)==&lt;br /&gt;
&lt;br /&gt;
Jinx is a project that is an alternative form of script installation from the default ;repository. It can serve up scripts for download similar to the ;repo however it is not dependent on a single server that may be prone to outages. Any one can set up their own script library, and then users can add it as a source for the ;jinx script to search and download from.&lt;br /&gt;
&lt;br /&gt;
Jinx is installed in the default Lich5 package. Jinx can be downloaded and installed into your scripts folder from the Elanthia Online github&lt;br /&gt;
&lt;br /&gt;
https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&lt;br /&gt;
&lt;br /&gt;
Right-click the above link and save it into the scripts folder in your lich directory.&lt;br /&gt;
&lt;br /&gt;
Alternatively, the following command can be issued in game via lich to attempt to download the script to the proper directory for you (this command is for when the repository is down and the script cannot be downloaded naturally):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;e require &#039;open-uri&#039;;begin;jinx_remote = open(&amp;quot;https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&amp;quot;); jinx_local = File.open(File.join(SCRIPT_DIR, &#039;jinx.lic&#039;), &amp;quot;wb&amp;quot;); jinx_local.write(jinx_remote.read);ensure; jinx_remote.close(); jinx_local.close();end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once installed you can issue: &amp;lt;CODE&amp;gt;;jinx help&amp;lt;/CODE&amp;gt; for basic usage information.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Mirror===&lt;br /&gt;
In the event the main &amp;lt;code&amp;gt;;repository&amp;lt;/code&amp;gt; is unavailable, there is currently an actively maintained &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; repository that is a direct mirror.&lt;br /&gt;
&lt;br /&gt;
https://github.com/FarFigNewGut/lich_repo_mirror&lt;br /&gt;
&lt;br /&gt;
Scripts can be manually retrieved from this Github repository (they are all located in the lib folder). The repository is also packaged and published for use directly with Jinx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;jinx repo add ffnglichrepoarchive https://ffnglichrepoarchive.netlify.app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(You can use something shorter instead of &amp;quot;ffnglichrepoarchive&amp;quot; for the repo name if you&#039;d like.)&lt;br /&gt;
&lt;br /&gt;
Once it is setup as a source for &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; you can install any scripts from the repo with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# install script for the first time&lt;br /&gt;
;jinx script install &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update previously installed script&lt;br /&gt;
;jinx script update &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example if you wanted to download or update invdb.lic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded invdb.lic&lt;br /&gt;
;jinx script update invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do note, if a script is not available on the archive, it&#039;s likely because it belongs to Elanthia-Online and those scripts are not found within the archive, but under a default repo that is configured with jinx. To use it, you would do the following, using bigshot.lic as an example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install bigshot--repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded bigshot.lic&lt;br /&gt;
;jinx script update bigshot --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also leave the &amp;lt;code&amp;gt;--repo=&amp;lt;REPO_NAME&amp;gt;&amp;lt;/code&amp;gt; off to see all available options for a script that is found.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Offline Update Info===&lt;br /&gt;
At times the default Lich repository (accessed via &amp;lt;code&amp;gt;;repo&amp;lt;/code&amp;gt;) can go offline, below are some helpful commands to update core Lich related functionality using Jinx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# ensure running latest jinx.lic for newest compatibility&lt;br /&gt;
;jinx script update jinx.lic --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update spell-list.xml for new spells, cmans, cooldowns, etc&lt;br /&gt;
;jinx data update spell-list.xml --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update gameobj-data.xml for proper classification of NPCs and items&lt;br /&gt;
;jinx data update gameobj-data.xml --repo=core&lt;br /&gt;
&lt;br /&gt;
# update mapdb and associated missing map files for graphical use&lt;br /&gt;
;jinx data update mapdb.json --repo=core&lt;br /&gt;
&lt;br /&gt;
# update infomon for proper ingame tracking of skills, stats, spells, effects&lt;br /&gt;
;jinx script update infomon.lic --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Screenshot==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Repo-1.png|Repo&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=235570</id>
		<title>Lich:Script Repository</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=235570"/>
		<updated>2025-04-04T13:46:20Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Scripts maintained by Elanthia-Online */ add ewander as replacement for wander&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
The repository, owned by Tillmen, is the most common location for downloading scripts that are not pre-installed with Lich. &lt;br /&gt;
&lt;br /&gt;
==How to Use the Repository==&lt;br /&gt;
&lt;br /&gt;
The repository has four basic commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;repository&lt;br /&gt;
&lt;br /&gt;
;repository download &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository info &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first shows a Help screen and is the root command for all others.&lt;br /&gt;
&lt;br /&gt;
The second, often shortened to &#039;;repo down&#039;, lets you download a specified script.&lt;br /&gt;
&lt;br /&gt;
Third, INFO provides information about whatever script is specified. If the author has been kind and thorough, this will tell you how to use the script and if it has any interdependencies.&lt;br /&gt;
&lt;br /&gt;
Fourth, LIST will list all scripts in the repository.&lt;br /&gt;
&lt;br /&gt;
==Updating Scripts==&lt;br /&gt;
The repository supports updates via prefedined scripts and the MapDatabase&lt;br /&gt;
To see a list of scripts you currently have set to updatable, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;. &lt;br /&gt;
For users on Lich 5+, you want &amp;lt;CODE&amp;gt;Lich: off&amp;lt;/CODE&amp;gt; to be displayed.&lt;br /&gt;
&lt;br /&gt;
To add a script to be updated, &amp;lt;CODE&amp;gt;;repo set-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
To view scripts you have set to be auto-updated, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
It is only recommended to set scripts from authors you trust to auto-update.&lt;br /&gt;
&lt;br /&gt;
If you want to remove, &amp;lt;CODE&amp;gt;;repo unset-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Popular Lich Scripts==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=popularscripts /&amp;gt;The following are a list of scripts that enhance or extend basic functions of Gemstone IV and can improve or streamline your gaming experience to a point where you can&#039;t think of ever going back. It&#039;s not all inclusive but contains a good starter set or some of the most popular scripts in use. &lt;br /&gt;
=== Core components installed with Lich ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generally speaking, the below scripts should not need to be updated manually by the user, especially if the user keeps up to date on the current lich version.&#039;&#039;&#039; &lt;br /&gt;
* [[Lich:Script Alias|alias]] - A default script used to create shortcuts in lich. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Autostart|autostart]] - A default script to handle which scripts run on startup. See wiki page for details.&lt;br /&gt;
* [[Script Go2|go2]] - Go2 is an intelligent travel script that is synchronized to many of the more complex scripts. Go2 uses a Room Number system and can intelligently plot routes between most any two rooms in all of Elanthia. Use can be as simple as &amp;lt;code&amp;gt;;go2 town&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;;go2 bank&amp;lt;/code&amp;gt; to head to the nearest town square or bank. Use &amp;lt;code&amp;gt;;go2 targets&amp;lt;/code&amp;gt; to see a list of pre-programmed locations broken down by towns. Or, use &amp;lt;code&amp;gt;;go2 save &amp;lt;new location name&amp;gt;=&amp;lt;new location room number&amp;gt;&amp;lt;/code&amp;gt; to create your own locations. Go2 is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Lich:Script Map|map]] - map (fork of Narost/XNarost) is an active map library that can display your location and allows Point-And-Click travel. Simply right click and choose a map, pick a room on it and click on it. map is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Script Repository|repository]] - A default script to view and dowload other scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Vars|vars]] - A default script to create and view variables for both users and scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Version|version]] - A default script to output your current lich version and other information. See wiki page for details.&lt;br /&gt;
&lt;br /&gt;
=== Scripts maintained by Elanthia-Online ===&lt;br /&gt;
* [[Lich:Script Bigshot|bigshot]] - A script for attacking and hunting routines. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;blackarts&#039;&#039;&#039; - A script for doing various [[alchemy]] tasks. &amp;lt;CODE&amp;gt;;blackarts setup&amp;lt;/CODE&amp;gt; for configuration details&lt;br /&gt;
* [[Lich:Script Ebounty|ebounty]] - A script to get and perform bounties. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecaster&#039;&#039;&#039; - Allows user to type just the spell number and have lich cast that spell. Usage syntax is &amp;lt;code&amp;gt;;ecaster setup&amp;lt;/code&amp;gt; for configuration. Set to autostart.&lt;br /&gt;
* &#039;&#039;&#039;echild&#039;&#039;&#039; - A child bounty script that monitors for and returns a child during bounty sessions. Add to autostart or your hunting script when performing a bounty.&lt;br /&gt;
* [[Lich:Script Ecleanse|ecleanse]] - A script for dealing with status conditions. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecure&#039;&#039;&#039; - A script for healing for empaths. Usage syntax is &amp;lt;code&amp;gt;;ecure setup&amp;lt;/code&amp;gt; for first usage.&lt;br /&gt;
* [[Lich:Script Eherbs|eherbs]] - A herb heaing and stocking script.  See wiki page for details.&lt;br /&gt;
* [[Lich:Script Eloot|eloot]] - A looting and loot management script. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;elogin&#039;&#039;&#039; - A script for command line login for your characters. . Usage syntax is &amp;lt;code&amp;gt;;elogin &amp;lt;charname&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;escortgo2&#039;&#039;&#039; - A script for bounty escorts. Usage syntax is &amp;lt;code&amp;gt;;escortgo2 help&amp;lt;/code&amp;gt; for relevant commands (replaces ;ego2)&lt;br /&gt;
* [[Lich:Script Ewaggle|ewaggle]] - A script for spelling yourself and others up. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ewander&#039;&#039;&#039; - The last of the Trifector of Travel, wander will move from room to room until it runs into a Boundary - a specified room number - or finds a room with a monster AND empty of players. Wander can be used to create a walled in hunting ground, letting you automatically move from room to room without having to use keystrokes. Use the &amp;lt;code&amp;gt;;wander add&amp;lt;/code&amp;gt; command to add the room you are currently standing in to the Wander List. Note: Wander will NOT enter your boundary rooms. For example, adding Town Square East to the list and then executing ;wander from within the confines of Moot Hall will send your character exploring every room in Moot, but unable to leave as TSE is a Boundary.&lt;br /&gt;
* [[Lich:Script foreach|foreach]] - A script for sending a series of commands for each item that matches its criteria. See wiki page for details.&lt;br /&gt;
* &#039;&#039;&#039;jbackup &#039;&#039;&#039; - A excellent backup and recovery tool that allows lich database and any additional file backup a user prefers. Set to autostart. &lt;br /&gt;
* &#039;&#039;&#039;ledger&#039;&#039;&#039; - A scripting for tracking your silver and bounty incoming across sessios and over time per character and account with a nice ascii discplay. Requires ascii_charts gem (installed by default with Lich 5.7.0+ full installer)&lt;br /&gt;
* &#039;&#039;&#039;signore &#039;&#039;&#039; - A script for using society powers &amp;lt;CODE&amp;gt;;signore setup&amp;lt;/CODE&amp;gt; for configuration&lt;br /&gt;
* &#039;&#039;&#039;resource&#039;&#039;&#039; - A script for determining your current player service bonus. &amp;lt;CODE&amp;gt; ;resource bonus &amp;lt;/CODE&amp;gt; Can also be used to determine the cost of enchanting with the syntanx ;Resource calc &amp;lt;starting enchant&amp;gt; &amp;lt;ending enchant&amp;gt; &amp;lt;cost per essence&amp;gt; as in &amp;lt;CODE&amp;gt;;resource calc 35 45 50&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;uberbar_eo &#039;&#039;&#039; - The most current Uberbar variant. This will provide a paperdoll with room number, resource information, etc inside wrayth. Set to autostart. Note- there is a small performance impact when using Uberbars.&lt;br /&gt;
&lt;br /&gt;
=== Other scripts that are popular ===&lt;br /&gt;
* &#039;&#039;&#039;character-planner &#039;&#039;&#039; - A script for planning out your character skills and training. &amp;lt;CODE&amp;gt;;character-planner&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;colmaster &#039;&#039;&#039; - A script for getting and performing COL tasks in Solhaven&lt;br /&gt;
* &#039;&#039;&#039;dirty-deeds &#039;&#039;&#039; - A script for getting deeds in IMT and WL. &amp;lt;CODE&amp;gt;;dirty-deeds setup&amp;lt;/CODE&amp;gt; for configuration  &lt;br /&gt;
* [[Script invdb|invdb]] - An inventory management database. See wiki page for details&lt;br /&gt;
* &#039;&#039;&#039;linktothefast&#039;&#039;&#039; - A complex script that provides highliting for Wryath links when links are disabled. This script can cause issues with [[STOW]] settings, so disable prior to adjusting those settings.&lt;br /&gt;
* [[Script LNet|lnet]] - An out of game, third party, not Simutronics controlled chat server. &amp;lt;CODE&amp;gt;;repo download lnet --author=elanthia-online&amp;lt;/CODE&amp;gt;. See wiki page for details &#039;&#039;&#039;LNET should be installed at your own risk&#039;&#039;&#039;. Simutronics has no control over lnet or policy enforcement there.&lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; - A script to peform repetitive set of commands. Usage syntax is &amp;lt;code&amp;gt;;multi; &amp;lt;number&amp;gt; &amp;lt;action&amp;gt;&amp;lt;/code&amp;gt; such as &amp;lt;code&amp;gt;;multi 10, get my diamond, drop my diamond&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;rogues&#039;&#039;&#039; - A script for rogue guild tasks &amp;lt;CODE&amp;gt;;rogues setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;sorter &#039;&#039;&#039; Sorter cleans up your bags and breaks down the the output of a LOOK command, sorting the results by type. Makes looking in your locker or backpack, and especially your gem pouch, infinitely easier. *Note* Sorter can mess up some other scripts that deal with inventory, so be cautious in usage. Elanthia-Online scripts like eloot disable sorter when performing relevant functions&lt;br /&gt;
* &#039;&#039;&#039;stat-maximizer&#039;&#039;&#039; - A script for configuring character stats. &amp;lt;CODE&amp;gt;;stat-maximizer&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;tpick&#039;&#039;&#039; - A script for lockpicking &amp;lt;CODE&amp;gt;;tpick setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;volnstep &#039;&#039;&#039; - A script for performing voln tasks in Wehnimer&#039;s Landing&lt;br /&gt;
* &#039;&#039;&#039;warrior&#039;&#039;&#039; - A script for warrior guild tasks &amp;lt;CODE&amp;gt;;warrior setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
&amp;lt;section end=popularscripts /&amp;gt;&amp;lt;!--- Add any additional popular scripts to the list ABOVE this line. ---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Help Output==&lt;br /&gt;
&amp;lt;PRE&amp;gt;Usage:&lt;br /&gt;
&lt;br /&gt;
   ;repository list [alpha]            lists all scripts available for download (optionally in alphabetial order)&lt;br /&gt;
   ;repository sync [alpha]            lists only new and/or updated scripts&lt;br /&gt;
   ;repository info &amp;lt;script name&amp;gt;      shows the comments at the top of the script&lt;br /&gt;
   ;repository download &amp;lt;script name&amp;gt;  downloads the script&lt;br /&gt;
   ;repository upload &amp;lt;script name&amp;gt;    uploads the script&lt;br /&gt;
   ;repository delete &amp;lt;script name&amp;gt;    deletes the script from the server&lt;br /&gt;
&lt;br /&gt;
Scripts should include comments at the top describing the purpose of the script.  Scripts without comments at the top will not show up on the server.&lt;br /&gt;
&lt;br /&gt;
After uploading a script, a key that allows you to delete/update the script will be saved to C:/Games/lich/keys&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sortable list==&lt;br /&gt;
The repository script has an in game GUI available that allows sorting by date, tags, etc. &lt;br /&gt;
&amp;lt;CODE&amp;gt;;repo gui&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Jinx (Repository alternative)==&lt;br /&gt;
&lt;br /&gt;
Jinx is a project that is an alternative form of script installation from the default ;repository. It can serve up scripts for download similar to the ;repo however it is not dependent on a single server that may be prone to outages. Any one can set up their own script library, and then users can add it as a source for the ;jinx script to search and download from.&lt;br /&gt;
&lt;br /&gt;
Jinx is installed in the default Lich5 package. Jinx can be downloaded and installed into your scripts folder from the Elanthia Online github&lt;br /&gt;
&lt;br /&gt;
https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&lt;br /&gt;
&lt;br /&gt;
Right-click the above link and save it into the scripts folder in your lich directory.&lt;br /&gt;
&lt;br /&gt;
Alternatively, the following command can be issued in game via lich to attempt to download the script to the proper directory for you (this command is for when the repository is down and the script cannot be downloaded naturally):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;e require &#039;open-uri&#039;;begin;jinx_remote = open(&amp;quot;https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&amp;quot;); jinx_local = File.open(File.join(SCRIPT_DIR, &#039;jinx.lic&#039;), &amp;quot;wb&amp;quot;); jinx_local.write(jinx_remote.read);ensure; jinx_remote.close(); jinx_local.close();end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once installed you can issue: &amp;lt;CODE&amp;gt;;jinx help&amp;lt;/CODE&amp;gt; for basic usage information.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Mirror===&lt;br /&gt;
In the event the main &amp;lt;code&amp;gt;;repository&amp;lt;/code&amp;gt; is unavailable, there is currently an actively maintained &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; repository that is a direct mirror.&lt;br /&gt;
&lt;br /&gt;
https://github.com/FarFigNewGut/lich_repo_mirror&lt;br /&gt;
&lt;br /&gt;
Scripts can be manually retrieved from this Github repository (they are all located in the lib folder). The repository is also packaged and published for use directly with Jinx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;jinx repo add ffnglichrepoarchive https://ffnglichrepoarchive.netlify.app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(You can use something shorter instead of &amp;quot;ffnglichrepoarchive&amp;quot; for the repo name if you&#039;d like.)&lt;br /&gt;
&lt;br /&gt;
Once it is setup as a source for &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; you can install any scripts from the repo with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# install script for the first time&lt;br /&gt;
;jinx script install &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update previously installed script&lt;br /&gt;
;jinx script update &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example if you wanted to download or update invdb.lic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded invdb.lic&lt;br /&gt;
;jinx script update invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do note, if a script is not available on the archive, it&#039;s likely because it belongs to Elanthia-Online and those scripts are not found within the archive, but under a default repo that is configured with jinx. To use it, you would do the following, using bigshot.lic as an example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install bigshot--repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded bigshot.lic&lt;br /&gt;
;jinx script update bigshot --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also leave the &amp;lt;code&amp;gt;--repo=&amp;lt;REPO_NAME&amp;gt;&amp;lt;/code&amp;gt; off to see all available options for a script that is found.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Offline Update Info===&lt;br /&gt;
At times the default Lich repository (accessed via &amp;lt;code&amp;gt;;repo&amp;lt;/code&amp;gt;) can go offline, below are some helpful commands to update core Lich related functionality using Jinx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# ensure running latest jinx.lic for newest compatibility&lt;br /&gt;
;jinx script update jinx.lic --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update spell-list.xml for new spells, cmans, cooldowns, etc&lt;br /&gt;
;jinx data update spell-list.xml --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update gameobj-data.xml for proper classification of NPCs and items&lt;br /&gt;
;jinx data update gameobj-data.xml --repo=core&lt;br /&gt;
&lt;br /&gt;
# update mapdb and associated missing map files for graphical use&lt;br /&gt;
;jinx data update mapdb.json --repo=core&lt;br /&gt;
&lt;br /&gt;
# update infomon for proper ingame tracking of skills, stats, spells, effects&lt;br /&gt;
;jinx script update infomon.lic --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Screenshot==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Repo-1.png|Repo&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=235569</id>
		<title>Lich:Script Repository</title>
		<link rel="alternate" type="text/html" href="https://gswiki.play.net/index.php?title=Lich:Script_Repository&amp;diff=235569"/>
		<updated>2025-04-04T13:45:49Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: /* Other scripts that are popular */ remove wander as ewander now available&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{3rd-party}}&lt;br /&gt;
The repository, owned by Tillmen, is the most common location for downloading scripts that are not pre-installed with Lich. &lt;br /&gt;
&lt;br /&gt;
==How to Use the Repository==&lt;br /&gt;
&lt;br /&gt;
The repository has four basic commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;repository&lt;br /&gt;
&lt;br /&gt;
;repository download &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository info &amp;lt;scriptname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;repository list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first shows a Help screen and is the root command for all others.&lt;br /&gt;
&lt;br /&gt;
The second, often shortened to &#039;;repo down&#039;, lets you download a specified script.&lt;br /&gt;
&lt;br /&gt;
Third, INFO provides information about whatever script is specified. If the author has been kind and thorough, this will tell you how to use the script and if it has any interdependencies.&lt;br /&gt;
&lt;br /&gt;
Fourth, LIST will list all scripts in the repository.&lt;br /&gt;
&lt;br /&gt;
==Updating Scripts==&lt;br /&gt;
The repository supports updates via prefedined scripts and the MapDatabase&lt;br /&gt;
To see a list of scripts you currently have set to updatable, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;. &lt;br /&gt;
For users on Lich 5+, you want &amp;lt;CODE&amp;gt;Lich: off&amp;lt;/CODE&amp;gt; to be displayed.&lt;br /&gt;
&lt;br /&gt;
To add a script to be updated, &amp;lt;CODE&amp;gt;;repo set-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
To view scripts you have set to be auto-updated, &amp;lt;CODE&amp;gt;;repo show-updatable&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
It is only recommended to set scripts from authors you trust to auto-update.&lt;br /&gt;
&lt;br /&gt;
If you want to remove, &amp;lt;CODE&amp;gt;;repo unset-updatable &amp;lt;scriptname&amp;gt;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Popular Lich Scripts==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=popularscripts /&amp;gt;The following are a list of scripts that enhance or extend basic functions of Gemstone IV and can improve or streamline your gaming experience to a point where you can&#039;t think of ever going back. It&#039;s not all inclusive but contains a good starter set or some of the most popular scripts in use. &lt;br /&gt;
=== Core components installed with Lich ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Generally speaking, the below scripts should not need to be updated manually by the user, especially if the user keeps up to date on the current lich version.&#039;&#039;&#039; &lt;br /&gt;
* [[Lich:Script Alias|alias]] - A default script used to create shortcuts in lich. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Autostart|autostart]] - A default script to handle which scripts run on startup. See wiki page for details.&lt;br /&gt;
* [[Script Go2|go2]] - Go2 is an intelligent travel script that is synchronized to many of the more complex scripts. Go2 uses a Room Number system and can intelligently plot routes between most any two rooms in all of Elanthia. Use can be as simple as &amp;lt;code&amp;gt;;go2 town&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;;go2 bank&amp;lt;/code&amp;gt; to head to the nearest town square or bank. Use &amp;lt;code&amp;gt;;go2 targets&amp;lt;/code&amp;gt; to see a list of pre-programmed locations broken down by towns. Or, use &amp;lt;code&amp;gt;;go2 save &amp;lt;new location name&amp;gt;=&amp;lt;new location room number&amp;gt;&amp;lt;/code&amp;gt; to create your own locations. Go2 is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Lich:Script Map|map]] - map (fork of Narost/XNarost) is an active map library that can display your location and allows Point-And-Click travel. Simply right click and choose a map, pick a room on it and click on it. map is distributed as part of a default Lich installation.&lt;br /&gt;
* [[Script Repository|repository]] - A default script to view and dowload other scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Vars|vars]] - A default script to create and view variables for both users and scripts. See wiki page for details.&lt;br /&gt;
* [[Lich:Script Version|version]] - A default script to output your current lich version and other information. See wiki page for details.&lt;br /&gt;
&lt;br /&gt;
=== Scripts maintained by Elanthia-Online ===&lt;br /&gt;
* [[Lich:Script Bigshot|bigshot]] - A script for attacking and hunting routines. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;blackarts&#039;&#039;&#039; - A script for doing various [[alchemy]] tasks. &amp;lt;CODE&amp;gt;;blackarts setup&amp;lt;/CODE&amp;gt; for configuration details&lt;br /&gt;
* [[Lich:Script Ebounty|ebounty]] - A script to get and perform bounties. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecaster&#039;&#039;&#039; - Allows user to type just the spell number and have lich cast that spell. Usage syntax is &amp;lt;code&amp;gt;;ecaster setup&amp;lt;/code&amp;gt; for configuration. Set to autostart.&lt;br /&gt;
* &#039;&#039;&#039;echild&#039;&#039;&#039; - A child bounty script that monitors for and returns a child during bounty sessions. Add to autostart or your hunting script when performing a bounty.&lt;br /&gt;
* [[Lich:Script Ecleanse|ecleanse]] - A script for dealing with status conditions. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;ecure&#039;&#039;&#039; - A script for healing for empaths. Usage syntax is &amp;lt;code&amp;gt;;ecure setup&amp;lt;/code&amp;gt; for first usage.&lt;br /&gt;
* [[Lich:Script Eherbs|eherbs]] - A herb heaing and stocking script.  See wiki page for details.&lt;br /&gt;
* [[Lich:Script Eloot|eloot]] - A looting and loot management script. See wiki page for details. &lt;br /&gt;
* &#039;&#039;&#039;elogin&#039;&#039;&#039; - A script for command line login for your characters. . Usage syntax is &amp;lt;code&amp;gt;;elogin &amp;lt;charname&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;escortgo2&#039;&#039;&#039; - A script for bounty escorts. Usage syntax is &amp;lt;code&amp;gt;;escortgo2 help&amp;lt;/code&amp;gt; for relevant commands (replaces ;ego2)&lt;br /&gt;
* [[Lich:Script Ewaggle|ewaggle]] - A script for spelling yourself and others up. See wiki page for details. &lt;br /&gt;
* [[Lich:Script foreach|foreach]] - A script for sending a series of commands for each item that matches its criteria. See wiki page for details.&lt;br /&gt;
* &#039;&#039;&#039;jbackup &#039;&#039;&#039; - A excellent backup and recovery tool that allows lich database and any additional file backup a user prefers. Set to autostart. &lt;br /&gt;
* &#039;&#039;&#039;ledger&#039;&#039;&#039; - A scripting for tracking your silver and bounty incoming across sessios and over time per character and account with a nice ascii discplay. Requires ascii_charts gem (installed by default with Lich 5.7.0+ full installer)&lt;br /&gt;
* &#039;&#039;&#039;signore &#039;&#039;&#039; - A script for using society powers &amp;lt;CODE&amp;gt;;signore setup&amp;lt;/CODE&amp;gt; for configuration&lt;br /&gt;
* &#039;&#039;&#039;resource&#039;&#039;&#039; - A script for determining your current player service bonus. &amp;lt;CODE&amp;gt; ;resource bonus &amp;lt;/CODE&amp;gt; Can also be used to determine the cost of enchanting with the syntanx ;Resource calc &amp;lt;starting enchant&amp;gt; &amp;lt;ending enchant&amp;gt; &amp;lt;cost per essence&amp;gt; as in &amp;lt;CODE&amp;gt;;resource calc 35 45 50&amp;lt;/CODE&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;uberbar_eo &#039;&#039;&#039; - The most current Uberbar variant. This will provide a paperdoll with room number, resource information, etc inside wrayth. Set to autostart. Note- there is a small performance impact when using Uberbars.&lt;br /&gt;
&lt;br /&gt;
=== Other scripts that are popular ===&lt;br /&gt;
* &#039;&#039;&#039;character-planner &#039;&#039;&#039; - A script for planning out your character skills and training. &amp;lt;CODE&amp;gt;;character-planner&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;colmaster &#039;&#039;&#039; - A script for getting and performing COL tasks in Solhaven&lt;br /&gt;
* &#039;&#039;&#039;dirty-deeds &#039;&#039;&#039; - A script for getting deeds in IMT and WL. &amp;lt;CODE&amp;gt;;dirty-deeds setup&amp;lt;/CODE&amp;gt; for configuration  &lt;br /&gt;
* [[Script invdb|invdb]] - An inventory management database. See wiki page for details&lt;br /&gt;
* &#039;&#039;&#039;linktothefast&#039;&#039;&#039; - A complex script that provides highliting for Wryath links when links are disabled. This script can cause issues with [[STOW]] settings, so disable prior to adjusting those settings.&lt;br /&gt;
* [[Script LNet|lnet]] - An out of game, third party, not Simutronics controlled chat server. &amp;lt;CODE&amp;gt;;repo download lnet --author=elanthia-online&amp;lt;/CODE&amp;gt;. See wiki page for details &#039;&#039;&#039;LNET should be installed at your own risk&#039;&#039;&#039;. Simutronics has no control over lnet or policy enforcement there.&lt;br /&gt;
* &#039;&#039;&#039;multi&#039;&#039;&#039; - A script to peform repetitive set of commands. Usage syntax is &amp;lt;code&amp;gt;;multi; &amp;lt;number&amp;gt; &amp;lt;action&amp;gt;&amp;lt;/code&amp;gt; such as &amp;lt;code&amp;gt;;multi 10, get my diamond, drop my diamond&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;rogues&#039;&#039;&#039; - A script for rogue guild tasks &amp;lt;CODE&amp;gt;;rogues setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;sorter &#039;&#039;&#039; Sorter cleans up your bags and breaks down the the output of a LOOK command, sorting the results by type. Makes looking in your locker or backpack, and especially your gem pouch, infinitely easier. *Note* Sorter can mess up some other scripts that deal with inventory, so be cautious in usage. Elanthia-Online scripts like eloot disable sorter when performing relevant functions&lt;br /&gt;
* &#039;&#039;&#039;stat-maximizer&#039;&#039;&#039; - A script for configuring character stats. &amp;lt;CODE&amp;gt;;stat-maximizer&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;tpick&#039;&#039;&#039; - A script for lockpicking &amp;lt;CODE&amp;gt;;tpick setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
* &#039;&#039;&#039;volnstep &#039;&#039;&#039; - A script for performing voln tasks in Wehnimer&#039;s Landing&lt;br /&gt;
* &#039;&#039;&#039;warrior&#039;&#039;&#039; - A script for warrior guild tasks &amp;lt;CODE&amp;gt;;warrior setup&amp;lt;/CODE&amp;gt; for configuration &lt;br /&gt;
&amp;lt;section end=popularscripts /&amp;gt;&amp;lt;!--- Add any additional popular scripts to the list ABOVE this line. ---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Help Output==&lt;br /&gt;
&amp;lt;PRE&amp;gt;Usage:&lt;br /&gt;
&lt;br /&gt;
   ;repository list [alpha]            lists all scripts available for download (optionally in alphabetial order)&lt;br /&gt;
   ;repository sync [alpha]            lists only new and/or updated scripts&lt;br /&gt;
   ;repository info &amp;lt;script name&amp;gt;      shows the comments at the top of the script&lt;br /&gt;
   ;repository download &amp;lt;script name&amp;gt;  downloads the script&lt;br /&gt;
   ;repository upload &amp;lt;script name&amp;gt;    uploads the script&lt;br /&gt;
   ;repository delete &amp;lt;script name&amp;gt;    deletes the script from the server&lt;br /&gt;
&lt;br /&gt;
Scripts should include comments at the top describing the purpose of the script.  Scripts without comments at the top will not show up on the server.&lt;br /&gt;
&lt;br /&gt;
After uploading a script, a key that allows you to delete/update the script will be saved to C:/Games/lich/keys&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sortable list==&lt;br /&gt;
The repository script has an in game GUI available that allows sorting by date, tags, etc. &lt;br /&gt;
&amp;lt;CODE&amp;gt;;repo gui&amp;lt;/CODE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Jinx (Repository alternative)==&lt;br /&gt;
&lt;br /&gt;
Jinx is a project that is an alternative form of script installation from the default ;repository. It can serve up scripts for download similar to the ;repo however it is not dependent on a single server that may be prone to outages. Any one can set up their own script library, and then users can add it as a source for the ;jinx script to search and download from.&lt;br /&gt;
&lt;br /&gt;
Jinx is installed in the default Lich5 package. Jinx can be downloaded and installed into your scripts folder from the Elanthia Online github&lt;br /&gt;
&lt;br /&gt;
https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&lt;br /&gt;
&lt;br /&gt;
Right-click the above link and save it into the scripts folder in your lich directory.&lt;br /&gt;
&lt;br /&gt;
Alternatively, the following command can be issued in game via lich to attempt to download the script to the proper directory for you (this command is for when the repository is down and the script cannot be downloaded naturally):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;e require &#039;open-uri&#039;;begin;jinx_remote = open(&amp;quot;https://raw.githubusercontent.com/elanthia-online/scripts/master/scripts/jinx.lic&amp;quot;); jinx_local = File.open(File.join(SCRIPT_DIR, &#039;jinx.lic&#039;), &amp;quot;wb&amp;quot;); jinx_local.write(jinx_remote.read);ensure; jinx_remote.close(); jinx_local.close();end&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
once installed you can issue: &amp;lt;CODE&amp;gt;;jinx help&amp;lt;/CODE&amp;gt; for basic usage information.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Mirror===&lt;br /&gt;
In the event the main &amp;lt;code&amp;gt;;repository&amp;lt;/code&amp;gt; is unavailable, there is currently an actively maintained &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; repository that is a direct mirror.&lt;br /&gt;
&lt;br /&gt;
https://github.com/FarFigNewGut/lich_repo_mirror&lt;br /&gt;
&lt;br /&gt;
Scripts can be manually retrieved from this Github repository (they are all located in the lib folder). The repository is also packaged and published for use directly with Jinx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
;jinx repo add ffnglichrepoarchive https://ffnglichrepoarchive.netlify.app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(You can use something shorter instead of &amp;quot;ffnglichrepoarchive&amp;quot; for the repo name if you&#039;d like.)&lt;br /&gt;
&lt;br /&gt;
Once it is setup as a source for &amp;lt;code&amp;gt;;jinx&amp;lt;/code&amp;gt; you can install any scripts from the repo with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# install script for the first time&lt;br /&gt;
;jinx script install &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update previously installed script&lt;br /&gt;
;jinx script update &amp;lt;script name&amp;gt; --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example if you wanted to download or update invdb.lic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded invdb.lic&lt;br /&gt;
;jinx script update invdb --repo=ffnglichrepoarchive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do note, if a script is not available on the archive, it&#039;s likely because it belongs to Elanthia-Online and those scripts are not found within the archive, but under a default repo that is configured with jinx. To use it, you would do the following, using bigshot.lic as an example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# first install&lt;br /&gt;
;jinx script install bigshot--repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update if you had previously downloaded bigshot.lic&lt;br /&gt;
;jinx script update bigshot --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also leave the &amp;lt;code&amp;gt;--repo=&amp;lt;REPO_NAME&amp;gt;&amp;lt;/code&amp;gt; off to see all available options for a script that is found.&lt;br /&gt;
&lt;br /&gt;
===Jinx Lich Repository Offline Update Info===&lt;br /&gt;
At times the default Lich repository (accessed via &amp;lt;code&amp;gt;;repo&amp;lt;/code&amp;gt;) can go offline, below are some helpful commands to update core Lich related functionality using Jinx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
# ensure running latest jinx.lic for newest compatibility&lt;br /&gt;
;jinx script update jinx.lic --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update spell-list.xml for new spells, cmans, cooldowns, etc&lt;br /&gt;
;jinx data update spell-list.xml --repo=elanthia-online&lt;br /&gt;
&lt;br /&gt;
# update gameobj-data.xml for proper classification of NPCs and items&lt;br /&gt;
;jinx data update gameobj-data.xml --repo=core&lt;br /&gt;
&lt;br /&gt;
# update mapdb and associated missing map files for graphical use&lt;br /&gt;
;jinx data update mapdb.json --repo=core&lt;br /&gt;
&lt;br /&gt;
# update infomon for proper ingame tracking of skills, stats, spells, effects&lt;br /&gt;
;jinx script update infomon.lic --repo=elanthia-online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==In-game Screenshot==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Repo-1.png|Repo&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Third-Party Software}}&lt;/div&gt;</summary>
		<author><name>WHIGHTCNIGHT</name></author>
	</entry>
	<entry>
		<id>https://gswiki.play.net/index.php?title=Lich:Software/Installation&amp;diff=235191</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=235191"/>
		<updated>2025-03-27T15:06:28Z</updated>

		<summary type="html">&lt;p&gt;WHIGHTCNIGHT: updated version to 5.11.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.11.1 supporting Ruby 3.4 - published March 27, 2025&#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.6.0 or newer====&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 --library=update.rb&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and restart lich.&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.5 or older====&lt;br /&gt;
Does not work for Lich 4 upgrades, please do a full new install if on Lich 4.&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 --snapshot&amp;lt;/CODE&amp;gt;&lt;br /&gt;
# Quit and close out of the game.&lt;br /&gt;
# Download the full release [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip]&lt;br /&gt;
# Extract the zip file over your existing Lich5 installation, choosing to overwrite existing files.&lt;br /&gt;
# Restart lich.&lt;br /&gt;
# Congratulations - you&#039;re now running on the latest version of Lich!&lt;br /&gt;
&lt;br /&gt;
===Both Ruby 3.4 &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 Ruby4Lich5old. (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 3.4 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;
&#039;&#039;&#039;The following only pertains to Apple Silicon based Macs. If you have an Intel based Mac, you can use the normal Windows installation procedures instead.&#039;&#039;&#039;&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 causes Wrayth scripts not to run.  Turning compatibility mode off in the rubyw file fixes this issue if it was enabled.&lt;br /&gt;
&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 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/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.2-1/rubyinstaller-devkit-3.4.2-1-x86.exe Ruby 3.4.2 x86 (32bit) Installer] and use default options presented during install&lt;br /&gt;
# Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)&amp;lt;pre&amp;gt;gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r --no-document&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Download and extract the Lich5 latest [https://github.com/elanthia-online/lich-5/releases/latest/download/lich-5.zip lich-5.zip] to somewhere you want it stored (usually desktop)&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;
&amp;lt;/div&amp;gt;&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;
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&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.3.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 3.4.2 -v&lt;br /&gt;
rbenv global 3.4.2&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:&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;
gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to use LNet with newer versions of Ruby, you&#039;ll need to downgrade the default version of REXML to be 3.3.1 or older due to Tillmen&#039;s LNet server not supporting the newer version currently:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gem install rexml:&#039;&amp;lt;3.3.2&#039; &amp;amp;&amp;amp; gem uninstall rexml:&#039;&amp;gt;3.3.1&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install Lich and Profanity:&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;
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;
&amp;lt;/div&amp;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 38 &amp;amp; 39 use Ruby 3.2.2, while Fedora 40 uses Ruby 3.3.0. 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 curl gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \&lt;br /&gt;
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \&lt;br /&gt;
ruby ruby-devel sqlite-devel unzip zlib-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Perform Ruby Gem Installations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gem install rake&lt;br /&gt;
$ gem update&lt;br /&gt;
$ gem install ascii_charts concurrent-ruby curses gtk3 jwt logger mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo tzinfo-data webrick xmpp4r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Download Lich &amp;amp; Profanity:&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;
git clone https://github.com/elanthia-online/ProfanityFE.git&lt;br /&gt;
&amp;lt;/pre&amp;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.11.1&#039;&#039;&#039; (current)&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>WHIGHTCNIGHT</name></author>
	</entry>
</feed>