The official GemStone IV encyclopedia.
< Lich:Software
Revision as of 11:20, 6 May 2024 by HORIBU1 (talk | contribs) (updated to 5.9.2)
Jump to navigation Jump to search

Lich:Software/Installation is a third party script and is not maintained by Simutronics. Simutronics is not responsible for the accuracy of the information presented on this page, nor is it liable for issues stemming from the use of the application on players' personal devices.


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.

Installing the Latest Stable Release

The latest stable lich version is 5.9.2 supporting Ruby 3.3 - published May 6, 2024

In-Place Upgrade

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're currently on Lich 4, able to check by running the command ;e echo LICH_VERSION, go to the upgrade from Lich 4 section.

For each section, please follow the directions/commands one at a time.

Lich 5 Only

Lich 5.6.0 or newer

  1. Backup existing Lich 5 folder
  2. Run this command in-game ;lich5-update --library=update.rb
  3. Quit and restart lich.
  4. Run this command in-game ;lich5-update --update
  5. Quit and restart lich.
  6. Congratulations - you're now running on the latest version of Lich!

Lich 5.5 or older

Does not work for Lich 4 upgrades, please do a full new install if on Lich 4.

  1. Backup existing Lich 5 folder
  2. Run this command in-game ;lich5-update --snapshot
  3. Quit and close out of the game.
  4. Download the full release
  5. Extract the zip file over your existing Lich5 installation, choosing to overwrite existing files.
  6. Restart lich.
  7. Congratulations - you're now running on the latest version of Lich!

Both Ruby 3.3 & Lich 5

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.

  1. Logout of all characters
  2. Backup existing Lich 5 folder
  3. Uninstall existing Ruby4Lich5 installs from Programs & Features control panel, or alternatively, rename your existing Ruby4Lich5 folder to Ruby4Lich5old. (Defaults to C:\Ruby4Lich5)
  4. Download the latest Ruby4Lich5.exe Installer
  5. Run the installer and be sure to have both Ruby and Lich 5 option selected
  6. Congratulations - you're now running on the latest version of Lich & Ruby!

Ruby 3.3 Only

Use this to upgrade to the newest version of Ruby only if you're already on the latest version of Lich5 and now want to update Ruby afterwards. If you're not already on the latest version of Lich5, please use previous section steps instead.

  1. Logout of all instances/characters
  2. Backup existing Lich 5 folder
  3. Uninstall your existing Ruby4Lich5 install via Programs & Features (ensure it's now gone, default location was C:\Ruby4Lich5)
  4. Download the latest Ruby4Lich5.exe Installer
  5. Run the new installer and choose to only install Ruby Only
  6. Congratulations - you're now running on the latest version Ruby!

Windows New Installation

These instructions are not for DragonRealms. For those scroll to the bottom.

For Windows 11/ 10 / 8 / 7 users: you can download the Ruby4Lich5.exe Installer and install everything you need automatically. Click on the Ruby4Lich5.exe 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. If you have never played before, follow the 'New Installation' instructions. If you have played before, and have used Lich before, follow the 'Upgrade Installation' instructions.

New Installation for Lich 5 (11/14/2023)

  1. Please log into the game of your choice through the Simutronics website first. 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've logged in, log out and continue.
  2. Download and Run the Ruby4Lich5.exe Installer. You will receive the Microsoft Warning because this is not distributed through the MS Store. Click on 'More Info' and then select the 'Run Anyway' button.
  3. The installation may take a few minutes, especially on non-SSD harddrives.
  4. 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's Game Entry window.
  5. 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.
  6. 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.

Upgrade Installation for Lich 5 from Lich 4 (11/14/2023)

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.

Additional assistance in installation can be found in the scripting channel of the GemStone Discord.


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.

Native Avalon

Players with Macs can use 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.

Parallels Windows

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.

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.

[Click to Expand]

The following steps are to be done AFTER you've successfully installed Wrayth/WizardFE and can login normally without Lich5 on the machine. Once you've done that and can successful connect normally, then follow these steps:

  1. Download and install Ruby 3.3.1 x86 (32bit) Installer and use default options presented during install
  2. Open a Command Prompt and issue the following command to install the necessary gems, this process will take awhile (at least 30 mins)
    gem install ascii_charts concurrent-ruby curses ftools gtk3 json jwt mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo webrick xmpp4r --no-document
  3. Download and extract the Lich5 latest to somewhere you want it stored (usually desktop)
  4. Double click the lich.rbw file that is now located in the extracted Lich5 location you did above. Login and play as usual.

Chromebook & Debian variants

[Click to Expand]

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).

Update the list of available software and make sure some requirements are installed:

sudo apt-get -y update
sudo apt-get -y install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libsqlite3-dev git

Install rbenv, a Ruby version manager. Add it to the PATH so that it will work outside of its own directory, and set it up to work when you launch the shell (terminal):

git clone ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

Run the shell's launch script now to enable those two changes and get rbenv working:

source ~/.bashrc

Download the tools to let rbenv install Ruby on its own, then install Ruby 3.3.1 and set it to be our default version of Ruby system-wide:

git clone ~/.rbenv/plugins/ruby-build
rbenv install 3.3.1 -v
rbenv global 3.3.1

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:

echo "gem: --no-document" > ~/.gemrc
gem install ascii_charts concurrent-ruby curses gtk3 jwt mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo webrick xmpp4r

Install Lich and Profanity:

cd ~
git clone
git clone
mkdir lich-5/scripts
mkdir lich-5/data
curl > lich-5/scripts/alias.lic
curl > lich-5/scripts/autostart.lic
curl > lich-5/scripts/ewaggle.lic
curl > lich-5/scripts/go2.lic
curl > lich-5/scripts/jinx.lic
curl > lich-5/scripts/lich5-update.lic
curl > lich-5/scripts/log.lic
curl > lich-5/scripts/map.lic
curl > lich-5/scripts/repository.lic
curl > lich-5/scripts/vars.lic
curl > lich-5/scripts/version.lic
curl > lich-5/data/effect-list.xml

Please refer to the Profanity FE page for initial configuration and additional instructions.


[Click to Expand]

Currently supported versions of Fedora 38 & 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.

1. Update The Base Installation:

$ sudo dnf -y update
$ sudo dnf -y install vim git

2. Install required Ruby and Development packages:

$ sudo dnf install -y autoconf bison gcc gdbm gdbm-devel glib2-devel gobject-introspection-devel \
libyaml-devel libffi-devel make ncurses-devel openssl-devel readline-devel redhat-rpm-config \
ruby ruby-devel sqlite-devel unzip zlib-devel

3. Perform Ruby Gem Installations:

$ gem install rake
$ gem update
$ gem install ascii_charts concurrent-ruby curses gtk3 jwt mechanize nokogiri redis sequel sqlite3 terminal-table tomlib tzinfo webrick xmpp4r

4. Download Lich & Profanity:

cd ~
git clone
git clone
mkdir lich-5/scripts
mkdir lich-5/data
curl > lich-5/scripts/alias.lic
curl > lich-5/scripts/autostart.lic
curl > lich-5/scripts/ewaggle.lic
curl > lich-5/scripts/go2.lic
curl > lich-5/scripts/jinx.lic
curl > lich-5/scripts/lich5-update.lic
curl > lich-5/scripts/log.lic
curl > lich-5/scripts/map.lic
curl > lich-5/scripts/repository.lic
curl > lich-5/scripts/vars.lic
curl > lich-5/scripts/version.lic
curl > lich-5/data/effect-list.xml

Popular Scripts

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't think of ever going back. It's not all inclusive but contains a good starter set or some of the most popular scripts in use.

Core components installed with Lich

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.

  • 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 ;go2 town or ;go2 bank to head to the nearest town square or bank. Use ;go2 targets to see a list of pre-programmed locations broken down by towns. Or, use ;go2 save <new location name>=<new location room number> to create your own locations. Go2 is distributed as part of a default Lich installation.
  • 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.
  • alias - A default script used to create shortcuts in lich. See wiki page for details.
  • vars - A default script to create and view variables for both users and scripts. See wiki page for details.
  • autostart - A default script to handle which scripts run on startup. See wiki page for details.
  • repository - A default script to view and dowload other scripts. See wiki page for details.
  • version - A default script to output your current lich version and other information. See wiki page for details.

Scripts maintained by Elanthia-Online

  • bigshot - A script for attacking and hunting routines. See wiki page for details.
  • blackarts - A script for doing various alchemy tasks. ;blackarts setup for configuration details
  • ewaggle - A script for spelling yourself and others up. See wiki page for details.
  • ebounty - A script to get and perform bounties. See wiki page for details.
  • eloot - A looting and loot management script. See wiki page for details.
  • ecleanse - A script for dealing with status conditions. See wiki page for details.
  • eherbs - A herb heaing and stocking script. See wiki page for details.
  • ecure - A script for healing for empaths. Usage syntax is ;ecure setup for first usage.
  • elogin - A script for command line login for your characters. . Usage syntax is ;elogin <charname>
  • echild - 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.
  • foreach - A script for sending a series of commands for each item that matches its criteria. See wiki page for details.
  • jbackup - A excellent backup and recovery tool that allows lich database and any additional file backup a user prefers. Set to autostart.
  • ledger - 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)
  • signore - A script for using society powers ;signore setup for configuration
  • resource - A script for determining your current player service bonus. ;resource bonus Can also be used to determine the cost of enchanting with the syntanx ;Resource calc <starting enchant> <ending enchant> <cost per essence> as in ;resource calc 35 45 50
  • ecaster - Allows user to type just the spell number and have lich cast that spell. Usage syntax is ;ecaster setup for configuration. Set to autostart.

Other scripts that are popular

  • invdb - An inventory management database. See wiki page for details
  • lnet - An out of game, third party, not Simutronics controlled chat server. ;repo download lnet --author=elanthia-online. See wiki page for details LNET should be installed at your own risk. Simutronics has no control over lnet or policy enforcement there.
  • multi - A script to peform repetitive set of commands. Usage syntax is ;multi; <number> <action> such as ;multi 10, get my diamond, drop my diamond
  • ego2 - A script for bounty escorts. Usage syntax is ;ego2 help for relevant commands.
  • wander - 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 ;wander add 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.
  • sorter 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
  • linktothefast - 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.
  • uberbar_eo - 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.
  • dirty-deeds - A script for getting deeds in IMT and WL. ;dirty-deeds setup for configuration
  • colmaster - A script for getting and performing COL tasks in Solhaven
  • volnstep - A script for performing voln tasks in Wehnimer's Landing
  • character-planner - A script for planning out your character skills and training. ;character-planner for configuration
  • stat-maximizer - A script for configuring character stats. ;stat-maximizer for configuration
  • tpick - A script for lockpicking ;tpick setup for configuration
  • warrior - A script for warrior guild tasks ;warrior setup for configuration
  • rogues - A script for rogue guild tasks ;rogues setup for configuration

Ecosystem Information

Lich Changelog

[Click to Expand]

5.9.2 (current)

-o- [GS4] - [group.rb] bugfix: proper leader detection from GROUP output
-o- [GS4] - [char.rb] bugfix: add back depracted Char.maxvitals with msging to switch to new Char.max_vitals methods


-o- [GS4] - [group.rb] bugfix: group.check syntax change
-o- [GS4] - [spell.rb] bugfix: affordable? Char.mana parenthesis logic


-o- [All] -  feat: sqlite3 gem syntax code cleanup PR#553
-o- [All] - [lich.rbw] bugfix: remove unused Setting, GameSetting, CharSetting PR#542
-o- [All] - [lich.rbw] bugfix: scrub login key from error message popups PR#548
-o- [All] - [messaging.rb] bugfix: color mismatch WizardFE white txt PR#554
-o- [All] - [lich.rb] feat: add new Lich.deprecated method to aid in deprecating older API calls PR#523
-o- [GS4] - [char.rb] feat: log method_missing calls PR#552
-o- [GS4] - [char.rb] feat: add missing global_def related methods PR#523
-o- [GS4] - [global_defs.rb] feat: deprecate various Char module methods PR#523
-o- [GS4] - [spellsong.rb] bugfix: cache spellsong duration calc PR#551
-o- [GS4] - [effects.rb] feat: Effects module breakout PR#549
-o- [GS4] - [group.rb][disk.rb] feat: Group & Disk class PR#532
-o- [GS4] - [activespell.rb] feat: add duration change messaging, off by default, see ;help for details PR#487


-o- [All] - [lich.rbw] feat: add Game:Character to debug log file ouput
-o- [All] - [init.rb] feat: add milliseconds to debug filename
-o- [GS4] - [lich.rbw] bugfix: reorder parsing of $SERVERSTRING to avoid certain conflicts
-o- [GS4] - [parser.rb] bugfix: update for new Empath resource and sleep/bind messaging
-o- [GS4] - [status.rb] bugfix: bound? calmed? and sleeping? support for spellnames flag being off
-o- [GS4] - [xmlparser.rb] bugfix: additional creature dying messaging to check against XML dead not being sent
-o- [GS4] - [gameobj.rb] bugfix: remove sorcerer arms and animates from GameObj.targets


-o- [All] - Ruby 3.3 compatibility
-o- [All] - [lich.rbw] feat: adds .sources for up/downstream hooks
-o- [All] - [lich.rbw] bugfix: don't use WINE for custom frontends
-o- [GS4] - [char.rb] bugfix: add back Char.stance
-o- [GS4] - [claim.rb] feat: new module and associated changes to xmlparser
-o- [GS4] - [experience.rb] feat: percent experience options
-o- [GS4] - [parser.rb] bugfix: allow for negative TNL exp value
-o- [GS4] - [parser.rb] bugfix: allow hyphenated last names in character names
-o- [GS4] - [parser.rb] feat: update resource matching for new Bard service
-o- [GS4] - [stash.rb] bugfix: catch more shield removal messages
-o- [GS4] - [util.rb] bugfix: underscore issue for PSMs


-o- Supports Ruby 3.2 - security enhancements and huge speed improvements for regex
-o- New libraries/modules/classes: Account, HMR (Hot Module Reloading)
-o- GS4 Infomon now baked into Lich5 as a library, no more need to run standalone script
-o- New GS4 libraries/modules/classes: Ascension, Bounty, Currency, Experience, Resources, Society, Status, Warcry
-o- Updates to existing libraries/modules/classes: Armor, Util, Weapon, Spell, GameObj, Messaging
-o- Several Bugfixes for lots of things
-o- Lots of code cleanup


-o- Fix for XML errors
-o- Adds the DR Plat instance for Frostbite FE
-o- Adds ‘ball’ as the noun used for ‘ball and chain’
-o- Adds the movement result ‘slip in the mud and fall flat’
-o- Corrects stamina cost for the feature Dispel Magic
-o- Plus all the latest script updates from Elanthia-Online!


-o- Fix for XML to limit login errors (DR)
-o- Fix for XMLData.active_spells to properly register wizard 'recovery' spell cooldowns
-o- Messaging updates to remove error in Wizard FE encodings
-o- Corrects for error in detecting PSM skill changes (cman) via warrior / rogue guild lessons
-o- Deprecates LNet script from master repository
-o- Miscellaneous small bug squashing


-o- (DragonRealms) Support for Genie and Frostbite frontends
-o- (GemStone) Changed methods to improve ;go2 speed and reduce lich.db3 calls
-o- (GemStone) Updates to support silver_count function
-o- (Both) Changed method for updating lich ecosystem


-o- Support for DragonRealms
-o- Updated support for scripts like BigShot
-o- Providing the LichID and UID on Profanity
-o- Spell.force_incant, .force_channel, and .force_evoke
-o- Standardized message method for script authors
-o- Sundry small improvements / fixes and changes
-o- And the creme de la creme - a custom directory


-o- Simu Room IDs (formally called 'unique ID' or 'uid' 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. 
-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
-o- REQUESTS: Drop 5 minute timeout function from Lich
-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!)
-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
-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
-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
-o- Various other small tidbits to help ease maintenance and future development
-o- PLEASE NOTE:  This update is required for the newest Bigshot (released today!) and for future eloot and eherbs scripts (release RSN)


-o- Added support for Wrayth (renamed Stormfront) installations 
-o- Converted Linux | WINE login methods to 'method 0', does not use Simu launcher


-o- Support for STOWing items irrespective of special item scripts
-o- Improved query support for Effects and CMans
-o- Fix Lich bug to respect the 'groupmovement' flag in game
-o- Fix Lich round time calculations (more aggressive timing)
-o- Dark Mode is now a thing
-o- Lich4 Style GUI layout available
-o- Several file location changes to support future code change efforts


-o- Benefit: Monks with Mental Acuity (all 3 of you) rejoice - stamina casting!
-o- Benefit: PSM3 included, no charge. No hair remaining, either!
-o- Benefit: Ok, stay seated: Some of your various SF spell duration windows may work. . . better? Yes, not perfect, but better. No pictures, please!
-o- Updated infomon that properly detects Cloak of Shadows on those pesky sorcerers, and the Raise Dead Cooldown periods for those wondrous clerics.
-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're set! If not - ;jinx script install lich5-update --repo=elanthia-online


-o- Updated the method used to log onto SIMU servers.
-o- Added the Animalist item specifics to Lich5's empty and fill hands routines
-o- Improved Invoker messages for Avalon and Wizard FEs (no change for SF FE)
-o- Improved cleanup and store methods when player EXIT's or QUIT's game
-o- Crafted two new methods (stash_hands and equip_hands) for future script use
-o- Some behind-the-scenes cleanup to improve maintaining the Lich5 ecosystem
-o- Add Spell Active improvements
-o- Add PSM and Ranger improvements


Third-Party Software - edit
Lich Installation: Lich
Downloadable Lich Scripts: Go2 | Map | Repository | Popular Scripts