Avalon
Avalon is an official front end for GemStone IV, for use with Mac OS X. Though it does not have a point-and-click interface, it provides direct compatibility with user-developed plugins. In versions newer than and including 4.2.2, Avalon has a built-in script engine that can run scripts written with the Wizard or StormFront formats.
Avalon is also the Mac frontend for DragonRealms, and has slightly different windows and information palettes to work with the mechanics of DragonRealms.
Avalon is available for download at: https://www.play.net/gs4/play/avalon-info.asp
Script Engine
Avalon has a built in scripting engine, which is based on the original Mac Wizard and Windows Wizard frontends, and should be compatible with scripts that are written for StormFront. Scripts should be placed in your ~/Documents/Simutronics/Scripts folder, and have the cmd extension. Scripts are started by starting a command with the script command character (a period by default), followed by the name of the script (with no extension). Only one script can be running at a time. Scripts can be ended by using the script character followed by a single k. Scripts can be executed from sub-folders by specifying the path relative to the Scripts folder in the script name.
The script commands for Avalon are:
- counter - Perform a math command on the 'c' variable. Math commands are:
- set
- add
- subtract
- multiply
- divide
- echo - Output any text following the command directly to the game window
- exit - Immediately ends script execution
- goto - Move the script execution line to the matching label
- labels are set by using a word followed by a colon (:) on a line
- if_n - Replace n with an integer 0-9 and only execute the following command if that argument was set when the script was started
- match - Takes a single word for a label, and then text to match
- matchwait - Pause script execution until text received from the game triggers a previously declared match
- nextroom - Pause execution until a new room description is received
- move - Enter a command and immediately wait for a new room description
- pause - If followed by an integer value, script execution will be paused for that duration
- put - Send any following text to the game as if the player had entered it into the command line
- save - Save the following text in the special 's' variable
- savevariable - synonym for save
- wait - If the character is in Round Time, halt script execution until that Round Time is up. If the character is not, halt script execution until Avalon receives any text from the game
- waitfor - Stop execution until text from the game matches the argument given
- waitrt - Wait until Avalon receives Round Time data from the game
Variables can be used in the arguments for a command and will be replaced at execution time by their value. Variables should be wrapped percent signs, ie, %s%. Integer variables 0-9 are set when the script is started and filled with any arguments following the script name.
Plugins
- YASSE - a scripting plugin. Also provides a lot of built-in support for DragonRealms
- YASSE lite - a stripped down version of the original YASSE, just the scripting engine with the other features removed
- Avalon Oxide - a GemStone-specific plugin that provides a window for a cleaner viewing of status information (HP, mana, spirit, stance, directions, etc)
All of these plugins are open source, and licensed under the GPL.